diff --git a/gamedata/sdktools.games/engine.bgt.txt b/gamedata/sdktools.games/engine.bgt.txt index fe4accc0..a7c3530c 100644 --- a/gamedata/sdktools.games/engine.bgt.txt +++ b/gamedata/sdktools.games/engine.bgt.txt @@ -60,36 +60,6 @@ } } - /* General GameRules */ - "#default" - { - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - } - } - /* IServer interface pointer */ "#default" { @@ -231,5 +201,11 @@ "windows" "377" } } + + "Keys" + { + "GameRulesProxy" "CPMGameRulesProxy" + "GameRulesDataTable" "pm_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/engine.contagion.txt b/gamedata/sdktools.games/engine.contagion.txt index 3695d25e..697bb724 100644 --- a/gamedata/sdktools.games/engine.contagion.txt +++ b/gamedata/sdktools.games/engine.contagion.txt @@ -98,42 +98,6 @@ } } } - - /* General GameRules */ - "#default" - { - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - "g_pGameRules" - { - "library" "server" - "linux" "@g_pGameRules" - "mac" "@g_pGameRules" - } - } - } /* IServer interface pointer */ "#default" @@ -291,6 +255,7 @@ "Keys" { "GameRulesProxy" "CTerrorGameRulesProxy" + "GameRulesDataTable" "contagion_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/engine.csgo.txt b/gamedata/sdktools.games/engine.csgo.txt index 893ffe1a..19ca6dc5 100644 --- a/gamedata/sdktools.games/engine.csgo.txt +++ b/gamedata/sdktools.games/engine.csgo.txt @@ -90,39 +90,8 @@ { "Keys" { - "GameRulesProxy" "CCSGameRulesProxy" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50" - } - "g_pGameRules" - { - "library" "server" - "linux" "@g_pGameRules" - "mac" "@g_pGameRules" - } + "GameRulesProxy" "CCSGameRulesProxy" + "GameRulesDataTable" "cs_gamerules_data" } } diff --git a/gamedata/sdktools.games/engine.css.txt b/gamedata/sdktools.games/engine.css.txt index 9c6aa777..eaae257c 100644 --- a/gamedata/sdktools.games/engine.css.txt +++ b/gamedata/sdktools.games/engine.css.txt @@ -73,42 +73,6 @@ } } - /* 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" - } - } - } - /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/engine.darkm.txt b/gamedata/sdktools.games/engine.darkm.txt index 01ce287b..0af568c2 100644 --- a/gamedata/sdktools.games/engine.darkm.txt +++ b/gamedata/sdktools.games/engine.darkm.txt @@ -117,41 +117,6 @@ } } - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "!Might and Magic Multiplayer" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50" - } - } - } - /* IServer interface pointer */ "#default" { @@ -307,5 +272,11 @@ "windows" "\x83\xEC\x44\x56\x8B\xF1\x8B\x8E\x2A\x00\x00\x00\x85\xC9" } } + + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/engine.dota.txt b/gamedata/sdktools.games/engine.dota.txt index 74c96577..2713e866 100644 --- a/gamedata/sdktools.games/engine.dota.txt +++ b/gamedata/sdktools.games/engine.dota.txt @@ -96,39 +96,7 @@ "Keys" { "GameRulesProxy" "CDOTAGamerulesProxy" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "3" - "linux" "9" - } - } - - "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" "\x51\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x06\x8B\x01\x6A\x01\xFF\x10\xC7\x05\x2A\x2A\x2A\x2A\x00\x00\x00\x00\xE8" - "linux" "\x55\x89\xE5\x56\x53\x83\xEC\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B" - } - "g_pGameRules" - { - "library" "server" - "mac" "@g_pGameRules" - } + "GameRulesDataTable" "dota_gamerules_data" } } diff --git a/gamedata/sdktools.games/engine.ep2valve.txt b/gamedata/sdktools.games/engine.ep2valve.txt index 47772302..765f774a 100644 --- a/gamedata/sdktools.games/engine.ep2valve.txt +++ b/gamedata/sdktools.games/engine.ep2valve.txt @@ -88,50 +88,6 @@ } } - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "dod" - "game" "tf" - "game" "garrysmod" - "game" "hl2mp" - } - - "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" - } - } - } - /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/engine.eye.txt b/gamedata/sdktools.games/engine.eye.txt index d203e71b..a600d8ff 100644 --- a/gamedata/sdktools.games/engine.eye.txt +++ b/gamedata/sdktools.games/engine.eye.txt @@ -15,7 +15,8 @@ { "Keys" { - "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" } } @@ -77,41 +78,6 @@ } } - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "eye" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - } - } - /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/engine.l4d.txt b/gamedata/sdktools.games/engine.l4d.txt index e053407d..e8dd87fa 100644 --- a/gamedata/sdktools.games/engine.l4d.txt +++ b/gamedata/sdktools.games/engine.l4d.txt @@ -20,7 +20,8 @@ "SlapSound1" "player/damage1.wav" "SlapSound2" "player/damage2.wav" - "GameRulesProxy" "CTerrorGameRulesProxy" + "GameRulesProxy" "CTerrorGameRulesProxy" + "GameRulesDataTable" "terror_gamerules_data" } } @@ -96,47 +97,6 @@ } } - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "left4dead" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - "g_pGameRules" - { - "library" "server" - "linux" "@g_pGameRules" - "mac" "@g_pGameRules" - } - } - } - /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/engine.l4d2.txt b/gamedata/sdktools.games/engine.l4d2.txt index 1a0a3090..4a6e8502 100644 --- a/gamedata/sdktools.games/engine.l4d2.txt +++ b/gamedata/sdktools.games/engine.l4d2.txt @@ -21,48 +21,6 @@ "SlapSound2" "player/damage2.wav" } } - - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "left4dead2" - "game" "nucleardawn" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - "g_pGameRules" - { - "library" "server" - "linux" "@g_pGameRules" - "mac" "@g_pGameRules" - } - } - } /* EntityFactoryDictionary function */ "#default" diff --git a/gamedata/sdktools.games/engine.swarm.txt b/gamedata/sdktools.games/engine.swarm.txt index 3c5e1954..73e443ac 100644 --- a/gamedata/sdktools.games/engine.swarm.txt +++ b/gamedata/sdktools.games/engine.swarm.txt @@ -71,42 +71,6 @@ } } - /* General GameRules */ - "#default" - { - "#supported" - { - "game" "swarm" - "game" "dinodday" - } - - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } - } - } - /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/game.alienswarm.txt b/gamedata/sdktools.games/game.alienswarm.txt index 9be83258..7d48eddb 100644 --- a/gamedata/sdktools.games/game.alienswarm.txt +++ b/gamedata/sdktools.games/game.alienswarm.txt @@ -45,7 +45,8 @@ "Keys" { - "GameRulesProxy" "CAlienSwarmProxy" + "GameRulesProxy" "CAlienSwarmProxy" + "GameRulesDataTable" "asw_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.bg2.txt b/gamedata/sdktools.games/game.bg2.txt index 44018928..521042e0 100644 --- a/gamedata/sdktools.games/game.bg2.txt +++ b/gamedata/sdktools.games/game.bg2.txt @@ -119,5 +119,10 @@ "linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" } } + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/game.cspromod.txt b/gamedata/sdktools.games/game.cspromod.txt index 6f41dfad..5df3fdff 100644 --- a/gamedata/sdktools.games/game.cspromod.txt +++ b/gamedata/sdktools.games/game.cspromod.txt @@ -76,5 +76,11 @@ "linux" "376" } } + + "Keys" + { + "GameRulesProxy" "CSP_GameRulesProxy" + "GameRulesDataTable" "csp_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/game.cstrike.txt b/gamedata/sdktools.games/game.cstrike.txt index 9bb6d4ac..5fe178e6 100644 --- a/gamedata/sdktools.games/game.cstrike.txt +++ b/gamedata/sdktools.games/game.cstrike.txt @@ -21,7 +21,8 @@ "SlapSound2" "player/damage2.wav" "SlapSound3" "player/damage3.wav" - "GameRulesProxy" "CCSGameRulesProxy" + "GameRulesProxy" "CCSGameRulesProxy" + "GameRulesDataTable" "cs_gamerules_data" } "Offsets" diff --git a/gamedata/sdktools.games/game.dinodday.txt b/gamedata/sdktools.games/game.dinodday.txt index 2185a839..13c4de17 100644 --- a/gamedata/sdktools.games/game.dinodday.txt +++ b/gamedata/sdktools.games/game.dinodday.txt @@ -65,7 +65,8 @@ "Keys" { - "GameRulesProxy" "CDDDGameRulesProxy" + "GameRulesProxy" "CDDDGameRulesProxy" + "GameRulesDataTable" "ddd_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.dod.txt b/gamedata/sdktools.games/game.dod.txt index 51b8a9cc..a2920da1 100644 --- a/gamedata/sdktools.games/game.dod.txt +++ b/gamedata/sdktools.games/game.dod.txt @@ -110,7 +110,8 @@ "Keys" { - "GameRulesProxy" "CDODGameRulesProxy" + "GameRulesProxy" "CDODGameRulesProxy" + "GameRulesDataTable" "dod_gamerules_data" } } } diff --git a/gamedata/sdktools.games/game.dystopia.txt b/gamedata/sdktools.games/game.dystopia.txt index e078674c..f2e6ae41 100644 --- a/gamedata/sdktools.games/game.dystopia.txt +++ b/gamedata/sdktools.games/game.dystopia.txt @@ -104,18 +104,12 @@ "library" "server" "windows" "\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A" } - - /* Dystopia always has to be different, doesn't it - * - * This is very similar to the general signature, except that - * it does "mov edx, [eax+2Ch]" before making a call rather than - * doing "call dword ptr [eax+2Ch]" - */ - "CreateGameRulesObject" - { - "library" "server" - "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - } + } + + "Keys" + { + "GameRulesProxy" "CDYSGameRulesProxy" + "GameRulesDataTable" "dys_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.empires.txt b/gamedata/sdktools.games/game.empires.txt index de52228f..0b2ec871 100644 --- a/gamedata/sdktools.games/game.empires.txt +++ b/gamedata/sdktools.games/game.empires.txt @@ -74,43 +74,6 @@ } } - /* General GameRules */ - "#default" - { - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "2" - "linux" "1" - } - } - - "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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" - "linux" "\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B\x10\x89" - } - "g_pGameRules" - { - "library" "server" - "mac" "@g_pGameRules" - } - } - } - /* CBaseEntityOutput::FireOutput */ "#default" { @@ -194,7 +157,8 @@ "Keys" { - "GameRulesProxy" "CEmpGameRulesProxy" + "GameRulesProxy" "CEmpGameRulesProxy" + "GameRulesDataTable" "sdk_gamerules_data" } } } diff --git a/gamedata/sdktools.games/game.ff.txt b/gamedata/sdktools.games/game.ff.txt index 3d56f824..44ac05e2 100644 --- a/gamedata/sdktools.games/game.ff.txt +++ b/gamedata/sdktools.games/game.ff.txt @@ -110,11 +110,6 @@ "Signatures" { - "CreateGameRulesObject" - { - "library" "server" - "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x09\x8B\x01\x8B\x50\x2C\x6A\x01" - } "FindEntityByClassname" { "library" "server" @@ -140,7 +135,8 @@ "Keys" { - "GameRulesProxy" "CFFGameRulesProxy" + "GameRulesProxy" "CFFGameRulesProxy" + "GameRulesDataTable" "ff_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.fof.txt b/gamedata/sdktools.games/game.fof.txt index c0e83f74..25fcaa56 100644 --- a/gamedata/sdktools.games/game.fof.txt +++ b/gamedata/sdktools.games/game.fof.txt @@ -73,42 +73,6 @@ } } - /* 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" { @@ -220,5 +184,11 @@ "mac" "253" } } + + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/game.gesource.txt b/gamedata/sdktools.games/game.gesource.txt index db511994..e77f166c 100644 --- a/gamedata/sdktools.games/game.gesource.txt +++ b/gamedata/sdktools.games/game.gesource.txt @@ -105,5 +105,10 @@ "linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" } } + "Keys" + { + "GameRulesProxy" "CGEMPGameRulesProxy" + "GameRulesDataTable" "gemp_gamerules_data" + } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.hl2mp.txt b/gamedata/sdktools.games/game.hl2mp.txt index edcf1ee1..0598f5a3 100644 --- a/gamedata/sdktools.games/game.hl2mp.txt +++ b/gamedata/sdktools.games/game.hl2mp.txt @@ -107,5 +107,11 @@ "mac" "252" } } + + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/game.ios.txt b/gamedata/sdktools.games/game.ios.txt index a5cf3566..231166f5 100644 --- a/gamedata/sdktools.games/game.ios.txt +++ b/gamedata/sdktools.games/game.ios.txt @@ -103,5 +103,11 @@ "linux" "347" } } + + "Keys" + { + "GameRulesProxy" "CSDKGameRulesProxy" + "GameRulesDataTable" "sdk_gamerules_data" + } } } diff --git a/gamedata/sdktools.games/game.left4dead2.txt b/gamedata/sdktools.games/game.left4dead2.txt index f12bab4f..b9b59b5e 100644 --- a/gamedata/sdktools.games/game.left4dead2.txt +++ b/gamedata/sdktools.games/game.left4dead2.txt @@ -214,7 +214,8 @@ "Keys" { - "GameRulesProxy" "CTerrorGameRulesProxy" + "GameRulesProxy" "CTerrorGameRulesProxy" + "GameRulesDataTable" "terror_gamerules_data" } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.neotokyo.txt b/gamedata/sdktools.games/game.neotokyo.txt index ebc3d423..feca7075 100644 --- a/gamedata/sdktools.games/game.neotokyo.txt +++ b/gamedata/sdktools.games/game.neotokyo.txt @@ -81,5 +81,10 @@ "windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x6A\x00" } } + "Keys" + { + "GameRulesProxy" "CNEOGameRulesProxy" + "GameRulesDataTable" "neo_gamerules_data" + } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.nucleardawn.txt b/gamedata/sdktools.games/game.nucleardawn.txt index fefe5cd5..e87ea894 100644 --- a/gamedata/sdktools.games/game.nucleardawn.txt +++ b/gamedata/sdktools.games/game.nucleardawn.txt @@ -234,7 +234,8 @@ "Keys" { - "GameRulesProxy" "CNuclearDawnRulesProxy" + "GameRulesProxy" "CNuclearDawnRulesProxy" + "GameRulesDataTable" "nd_gamerules_data" } "Signatures" diff --git a/gamedata/sdktools.games/game.pvkii.txt b/gamedata/sdktools.games/game.pvkii.txt index 85430473..9845a72d 100644 --- a/gamedata/sdktools.games/game.pvkii.txt +++ b/gamedata/sdktools.games/game.pvkii.txt @@ -13,42 +13,7 @@ { /* Pirates, Vikings and Knights II */ - /* GameRules */ - "#default" - { - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "5" - "linux" "9" - } - } - - "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" - "linux" "\x55\x89\xE5\x56\x53\x83\xEC\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B\x10\x89" - } - "g_pGameRules" - { - "library" "server" - "mac" "@g_pGameRules" - } - } - } + /* CBaseEntityOutput::FireOutput */ "pvkii" @@ -164,7 +129,8 @@ "Keys" { - "GameRulesProxy" "CPVK2GameRulesProxy" + "GameRulesProxy" "CPVK2GameRulesProxy" + "GameRulesDataTable" "pvk2_gamerules_data" } "Signatures" diff --git a/gamedata/sdktools.games/game.rnlbeta.txt b/gamedata/sdktools.games/game.rnlbeta.txt index 96b483e5..11659d05 100644 --- a/gamedata/sdktools.games/game.rnlbeta.txt +++ b/gamedata/sdktools.games/game.rnlbeta.txt @@ -102,5 +102,10 @@ "windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6" } } + "Keys" + { + "GameRulesProxy" "CRnLGameRulesProxy" + "GameRulesDataTable" "rnl_gamerules_data" + } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.sourceforts.txt b/gamedata/sdktools.games/game.sourceforts.txt index 405b20a0..4b957220 100644 --- a/gamedata/sdktools.games/game.sourceforts.txt +++ b/gamedata/sdktools.games/game.sourceforts.txt @@ -103,5 +103,10 @@ "linux" "347" } } + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.synergy.txt b/gamedata/sdktools.games/game.synergy.txt index b52712dd..56c9b5dc 100644 --- a/gamedata/sdktools.games/game.synergy.txt +++ b/gamedata/sdktools.games/game.synergy.txt @@ -74,43 +74,6 @@ } } - /* General GameRules */ - "#default" - { - "Offsets" - { - /* Offset into CreateGameRulesObject */ - "g_pGameRules" - { - "windows" "5" - "linux" "1" - } - } - - "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" - "linux" "\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B\x10\x89" - } - "g_pGameRules" - { - "library" "server" - "mac" "@g_pGameRules" - } - } - } - /* CBaseEntityOutput::FireOutput */ "#default" { @@ -222,5 +185,11 @@ "mac" "425" } } + + "Keys" + { + "GameRulesProxy" "CNHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } } } \ No newline at end of file diff --git a/gamedata/sdktools.games/game.zm.txt b/gamedata/sdktools.games/game.zm.txt index f7b700ad..cc88bb8b 100644 --- a/gamedata/sdktools.games/game.zm.txt +++ b/gamedata/sdktools.games/game.zm.txt @@ -87,10 +87,6 @@ "windows" "25" "linux" "26" } - "g_pGameRules" - { - "windows" "7" - } "WeaponEquip" { "windows" "198" @@ -107,6 +103,12 @@ "linux" "348" } } + + "Keys" + { + "GameRulesProxy" "CHL2MPGameRulesProxy" + "GameRulesDataTable" "hl2mp_gamerules_data" + } "Signatures" { @@ -128,16 +130,6 @@ "windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x18\x8B\x01\xFF\x50\x08\x8B\x08\x81\xE1\xFF\x0F\x00\x00\x83\xC1\x01\xC1\xE1\x04\x8B\x3C\x31\xEB\x06\x8B\xBE\x04\x00\x01\x00\x85\xFF\x74\x3A\x8B\x5C\x24\x18\x8B\x2D\x6C\xE5\x73\x22\x8D\x9B\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x0C\x68\xFC\xFB\x56\x22\xFF\xD5\x83\xC4\x04\xEB\x11\x39" "linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" } - "CreateGameRulesObject" - { - "library" "server" - "windows" "\x55\x8B\xEC\x83\xEC\x10\xA1\x2A\x2A\x2A\x2A\x89\x45\xF4\x8B\x4D\xF4\x89\x4D\xF8\x83\x7D\xF8\x00" - } - "g_pGameRules" - { - "library" "server" - "linux" "@g_pGameRules" - } } } }