diff --git a/gamedata/core.games/engine.sdk2013.txt b/gamedata/core.games/engine.sdk2013.txt index d89b1d25..498fb367 100644 --- a/gamedata/core.games/engine.sdk2013.txt +++ b/gamedata/core.games/engine.sdk2013.txt @@ -14,6 +14,13 @@ /* CGlobalEntityList */ "#default" { + /* These games have symbols stripped from the linux binaries */ + "#supported" + { + "game" "synergy" + "game" "empires" + } + "Offsets" { /* Offset into LevelShutdown */ @@ -46,4 +53,46 @@ } } } + + /* CGlobalEntityList */ + "#default" + { + /* These games do have symbols in the linux binaries */ + "#supported" + { + "game" "fof" + "game" "nmrih" + } + + "Offsets" + { + /* Offset into LevelShutdown */ + "gEntList" + { + "windows" "11" + } + + "EntInfo" + { + "windows" "4" + "linux" "4" + "mac" "4" + } + } + + "Signatures" + { + "LevelShutdown" + { + "library" "server" + "windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8" + } + "gEntList" + { + "library" "server" + "linux" "@gEntList" + "mac" "@gEntList" + } + } + } } diff --git a/gamedata/sdktools.games/engine.sdk2013.txt b/gamedata/sdktools.games/engine.sdk2013.txt index ce6cbf59..d08f3b8d 100644 --- a/gamedata/sdktools.games/engine.sdk2013.txt +++ b/gamedata/sdktools.games/engine.sdk2013.txt @@ -19,7 +19,6 @@ "game" "synergy" "game" "nmrih" "game" "empires" - "game" "fof" } "Offsets" @@ -74,7 +73,6 @@ "game" "synergy" "game" "nmrih" "game" "empires" - "game" "fof" } "Signatures" @@ -98,7 +96,6 @@ "game" "synergy" "game" "nmrih" "game" "empires" - "game" "fof" } "Offsets" @@ -194,7 +191,6 @@ { "game" "synergy" "game" "empires" - "game" "fof" } "Signatures" { diff --git a/gamedata/sdktools.games/game.fof.txt b/gamedata/sdktools.games/game.fof.txt index dd6e993c..4a5ba509 100644 --- a/gamedata/sdktools.games/game.fof.txt +++ b/gamedata/sdktools.games/game.fof.txt @@ -11,6 +11,119 @@ "Games" { + /* General Temp Entities */ + "#default" + { + "Offsets" + { + /* Offset into CBaseTempEntity constructor */ + "s_pTempEntities" + { + "windows" "16" + } + "GetTEName" + { + "windows" "4" + "linux" "4" + "mac" "4" + } + "GetTENext" + { + "windows" "8" + "linux" "8" + "mac" "8" + } + "TE_GetServerClass" + { + "windows" "0" + "linux" "0" + "mac" "0" + } + } + + "Signatures" + { + "CBaseTempEntity" + { + "library" "server" + "windows" "\x55\x8B\xEC\x8B\x45\x08\x89\x41\x04\xC7\x01\x2A\x2A\x2A\x2A\xA1" + } + "s_pTempEntities" + { + "library" "server" + "linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE" + "mac" "@_ZN15CBaseTempEntity15s_pTempEntitiesE" + } + } + } + + /* CGlobalEntityList */ + "#default" + { + "Signatures" + { + /* Functions in CGlobalEntityList */ + "FindEntityByClassname" + { + "library" "server" + "windows" "\x55\x8B\xEC\x53\x56\x57\x8B\xF9\x8B\x4D\x08\x85\xC9\x74\x15" + "linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" + "mac" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" + } + } + } + + /* General GameRules */ + "#default" + { + "Offsets" + { + /* Offset into CreateGameRulesObject */ + "g_pGameRules" + { + "windows" "5" + } + } + + "Signatures" + { + /* This signature sometimes has multiple matches, but this + * does not matter as g_pGameRules is involved in all of them. + * The same g_pGameRules offset applies to each match. + * + * Sometimes this block of bytes is at the beginning of the static + * CreateGameRulesObject function and sometimes it is in the middle + * of an entirely different function. This depends on the game. + */ + "CreateGameRulesObject" + { + "library" "server" + "windows" "\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x07" + } + "g_pGameRules" + { + "library" "server" + "linux" "@g_pGameRules" + "mac" "@g_pGameRules" + } + } + } + + /* CBaseEntityOutput::FireOutput */ + "#default" + { + "Signatures" + { + "FireOutput" + { + "library" "server" + "windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x33\xC5\x89\x45\xFC\x53\x8B\x5D\x20\x8B\xC1\x8B\x4D\x1C\x56\x57\x8B" + "linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" + "mac" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" + } + } + } + /* Fistful of Frags */ "#default" { @@ -67,8 +180,8 @@ "EyeAngles" { "windows" "131" - "linux" "123" - "mac" "123" + "linux" "132" + "mac" "132" } "AcceptInput" {