core: Add Insurgency support for amd64 Windows (#1295)

* Add basic Insurgency support on Windows x64

This allows SourceMod to load on x64 Insurgency. There are still a lot of variable truncation warnings that have to be dealt with.

* Fix 32bit builds

* Compile MySQL extension as well

The hack for __iob_func being removed from the core runtime, but required by the old mysql we're building against can be simplified a lot due to the `_ReturnAddress` intrinsic available since MSVC 2015.

* Don't include the offset we want to extract in the signature
This commit is contained in:
peace-maker
2020-08-06 19:53:06 -07:00
committed by GitHub
parent c5619f887d
commit 510bd261f8
13 changed files with 117 additions and 83 deletions
+1
View File
@@ -112,6 +112,7 @@
"GetDataDescMap"
{
"windows" "11"
"windows64" "11"
"linux" "12"
"linux64" "12"
"mac" "12"
+4 -1
View File
@@ -20,11 +20,13 @@
"gEntList"
{
"windows" "11"
"windows64" "13"
}
"EntInfo"
{
"windows" "4"
"windows" "4"
"windows64" "8"
"linux" "4"
"mac" "4"
}
@@ -36,6 +38,7 @@
{
"library" "server"
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
"windows64" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x48\x8D\x0D\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
}
"gEntList"
{
@@ -7,144 +7,168 @@
"Blocked"
{
"windows" "108"
"windows64" "108"
"linux" "109"
"mac" "109"
}
"EndTouch"
{
"windows" "106"
"windows64" "106"
"linux" "107"
"mac" "107"
}
"FireBullets"
{
"windows" "119"
"windows64" "119"
"linux" "120"
"mac" "120"
}
"GetMaxHealth"
{
"windows" "123"
"windows64" "123"
"linux" "124"
"mac" "124"
}
"GroundEntChanged"
{
"windows" "177"
"windows64" "177"
"linux" "179"
"mac" "179"
}
"OnTakeDamage"
{
"windows" "67"
"windows64" "67"
"linux" "68"
"mac" "68"
}
"OnTakeDamage_Alive"
{
"windows" "292"
"windows64" "292"
"linux" "293"
"mac" "293"
}
"PreThink"
{
"windows" "361"
"windows64" "361"
"linux" "362"
"mac" "362"
}
"PostThink"
{
"windows" "362"
"windows64" "362"
"linux" "363"
"mac" "363"
}
"Reload"
{
"windows" "284"
"windows64" "284"
"linux" "285"
"mac" "285"
}
"SetTransmit"
{
"windows" "20"
"windows64" "20"
"linux" "21"
"mac" "21"
}
"ShouldCollide"
{
"windows" "16"
"windows64" "16"
"linux" "17"
"mac" "17"
}
"Spawn"
{
"windows" "22"
"windows64" "22"
"linux" "23"
"mac" "23"
}
"StartTouch"
{
"windows" "104"
"windows64" "104"
"linux" "105"
"mac" "105"
}
"Think"
{
"windows" "51"
"windows64" "51"
"linux" "52"
"mac" "52"
}
"Touch"
{
"windows" "105"
"windows64" "105"
"linux" "106"
"mac" "106"
}
"TraceAttack"
{
"windows" "65"
"windows64" "65"
"linux" "66"
"mac" "66"
}
"Use"
{
"windows" "103"
"windows64" "103"
"linux" "104"
"mac" "104"
}
"VPhysicsUpdate"
{
"windows" "156"
"windows64" "156"
"linux" "157"
"mac" "157"
}
"Weapon_CanSwitchTo"
{
"windows" "286"
"windows64" "286"
"linux" "287"
"mac" "287"
}
"Weapon_CanUse"
{
"windows" "280"
"windows64" "280"
"linux" "281"
"mac" "281"
}
"Weapon_Drop"
{
"windows" "283"
"windows64" "283"
"linux" "284"
"mac" "284"
}
"Weapon_Equip"
{
"windows" "281"
"windows64" "281"
"linux" "282"
"mac" "282"
}
"Weapon_Switch"
{
"windows" "284"
"windows64" "284"
"linux" "285"
"mac" "285"
}
@@ -158,6 +182,7 @@
"EntityListeners"
{
"windows" "196644"
"windows64" "393272"
"linux" "196644"
"mac" "196644"
}
@@ -36,22 +36,26 @@
"s_pTempEntities"
{
"windows" "16"
"windows64" "17"
}
"GetTEName"
{
"windows" "4"
"windows64" "8"
"linux" "4"
"mac" "4"
}
"GetTENext"
{
"windows" "8"
"windows64" "16"
"linux" "8"
"mac" "8"
}
"TE_GetServerClass"
{
"windows" "0"
"windows64" "0"
"linux" "0"
"mac" "0"
}
@@ -63,6 +67,7 @@
{
"library" "server"
"windows" "\x55\x8B\xEC\x8B\x45\x08\x89\x41\x04\xC7\x01\x2A\x2A\x2A\x2A\xA1"
"windows64" "\x48\x8D\x05\x2A\x2A\x2A\x2A\x48\x89\x51\x08\x48\x89\x01\x48\x8B\x05"
}
"s_pTempEntities"
{
@@ -83,6 +88,7 @@
{
"library" "server"
"windows" "\x55\x8B\xEC\x53\x56\x8B\xF1\x8B\x4D\x08\x57\x85\xC9\x74\x26\x8B\x01\xFF\x50\x08\x8B\x00\x83\xF8\xFF\x75\x0E\xB8\xFF\x1F\x00\x00\x8D\x04\x40\x8B\x74\xC6\x10\xEB\x12\x0F\xB7\xC0\x8D\x04\x40\x8B\x74\xC6\x10\xEB\x06\x8B\xB6\x2A\x2A\x2A\x2A\x85\xF6\x74\x4C"
"windows64" "\x48\x89\x5C\x24\x08\x48\x89\x74\x24\x10\x57\x48\x83\xEC\x20\x49\x8B\xF0\x48\x8B\xF9\x48\x85\xD2\x74\x2A\x48\x8B\x02\x48\x8B\xCA\xFF\x50\x10\x8B\x08\xB8\xFF\x1F\x00\x00\x83\xF9\xFF\x74\x2A\x0F\xB7\xC1\x48\x98\x48\x8D\x1C\x40\x48\x03\xDB\x48\x8B\x5C\xDF\x20\xEB\x2A\x48\x8B\x99\x08\x00\x06\x00\x48\x85\xDB\x74\x2A\x66\x90\x48\x8B\x3B\x48\x85\xFF\x75\x2A\x48\x8D\x0D\xE9\xD8\x4C\x00"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
"mac" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
@@ -103,6 +109,7 @@
"g_pGameRules"
{
"windows" "5"
"windows64" "16"
}
}
@@ -120,6 +127,7 @@
{
"library" "server"
"windows" "\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x07\x8B"
"windows64" "\x48\x89\x5C\x24\x08\x57\x48\x83\xEC\x30\x48\x8B\xF9\x48\x8B\x0D\x2A\x2A\x2A\x2A\x48\x85\xC9"
}
"g_pGameRules"
{
@@ -139,6 +147,7 @@
{
"library" "server"
"windows" "\xA1\x2A\x2A\x2A\x2A\xA8\x01\x75\x1F\x83\xC8\x01\xB9\x2A\x2A\x2A\x2A\xA3\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8"
"windows64" "\x48\x83\xEC\x28\x8B\x05\x2A\x2A\x2A\x2A\xA8\x01\x75\x72"
"linux" "@_Z23EntityFactoryDictionaryv"
"mac" "@_Z23EntityFactoryDictionaryv"
}
@@ -154,6 +163,7 @@
{
"library" "server"
"windows" "\x55\x8B\xEC\x81\xEC\x20\x01\x00\x00\x53\x8B\xC1"
"windows64" "\x4C\x8B\xDC\x55\x56\x57\x41\x54\x41\x55\x41\x56\x41\x57\x49\x8D\xAB\x18\xFF\xFF\xFF"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
"mac" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
@@ -174,6 +184,7 @@
"SetUserCvar"
{
"windows" "22"
"windows64" "22"
"linux" "69"
"mac" "69"
}
@@ -185,6 +196,7 @@
"SetClientName"
{
"windows" "21"
"windows64" "21"
"linux" "68"
"mac" "68"
}
@@ -199,6 +211,7 @@
"InfoChanged"
{
"windows" "176"
"windows64" "208"
"linux" "176"
"mac" "176"
}
@@ -212,84 +225,98 @@
"GiveNamedItem"
{
"windows" "441"
"windows64" "441"
"linux" "442"
"mac" "442"
}
"RemovePlayerItem"
{
"windows" "290"
"windows64" "290"
"linux" "291"
"mac" "291"
}
"Weapon_GetSlot"
{
"windows" "288"
"windows64" "288"
"linux" "289"
"mac" "289"
}
"Ignite"
{
"windows" "223"
"windows64" "223"
"linux" "224"
"mac" "224"
}
"Extinguish"
{
"windows" "226"
"windows64" "226"
"linux" "227"
"mac" "227"
}
"Teleport"
{
"windows" "115"
"windows64" "115"
"linux" "116"
"mac" "116"
}
"CommitSuicide"
{
"windows" "490"
"windows64" "490"
"linux" "490"
"mac" "490"
}
"GetVelocity"
{
"windows" "140"
"windows64" "140"
"linux" "141"
"mac" "141"
}
"EyeAngles"
{
"windows" "131"
"windows64" "131"
"linux" "132"
"mac" "132"
}
"AcceptInput"
{
"windows" "40"
"windows64" "40"
"linux" "41"
"mac" "41"
}
"SetEntityModel"
{
"windows" "24"
"windows64" "24"
"linux" "25"
"mac" "25"
}
"WeaponEquip"
{
"windows" "281"
"windows64" "281"
"linux" "282"
"mac" "282"
}
"Activate"
{
"windows" "35"
"windows64" "35"
"linux" "36"
"mac" "36"
}
"PlayerRunCmd"
{
"windows" "460"
"windows64" "460"
"linux" "461"
"mac" "461"
}