| author | Nicholas Hastings <skamonkey@gmail.com> |
| Wed Aug 14 14:20:57 2013 -0400 (2013-08-14) | |
| changeset 4008 | 490b01aa0683 |
| parent 3681 | b34e7dac29fe |
| child 4155 | d3b572b67222 |
| permissions | -rw-r--r-- |
| fyrenmoo@2690 | 1 |
/** |
| fyrenmoo@2690 | 2 |
* Do not edit this file. Any changes will be overwritten by the gamedata |
| fyrenmoo@2690 | 3 |
* updater or by upgrading your SourceMod install. |
| fyrenmoo@2690 | 4 |
* |
| fyrenmoo@2690 | 5 |
* To override data in this file, create a subdirectory named "custom" and |
| fyrenmoo@2690 | 6 |
* place your own gamedata file(s) inside of it. Such files will be parsed |
| fyrenmoo@2690 | 7 |
* after SM's own. |
| fyrenmoo@2690 | 8 |
* |
| fyrenmoo@2690 | 9 |
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod) |
| fyrenmoo@2690 | 10 |
*/ |
| fyrenmoo@2690 | 11 |
|
| fyrenmoo@2690 | 12 |
"Games" |
| fyrenmoo@2690 | 13 |
{
|
| fyrenmoo@2690 | 14 |
/* General Temp Entities */ |
| fyrenmoo@2690 | 15 |
"#default" |
| fyrenmoo@2690 | 16 |
{
|
| fyrenmoo@2690 | 17 |
"#supported" |
| fyrenmoo@2690 | 18 |
{
|
| fyrenmoo@2690 | 19 |
"game" "ageofchivalry" |
| skamonkey@2755 | 20 |
"game" "empires" |
| skamonkey@2764 | 21 |
"game" "synergy" |
| skamonkey@2881 | 22 |
"game" "bg2" |
| skamonkey@2930 | 23 |
"game" "pvkii" |
| skamonkey@2938 | 24 |
"game" "gesource" |
| skamonkey@3092 | 25 |
"game" "fas" |
| skamonkey@3098 | 26 |
"game" "fistful_of_frags" |
| skamonkey@3190 | 27 |
"game" "cspromod" |
| skamonkey@3451 | 28 |
"game" "ag2" |
| fyrenmoo@2690 | 29 |
} |
| fyrenmoo@2690 | 30 |
|
| fyrenmoo@2690 | 31 |
"Offsets" |
| fyrenmoo@2690 | 32 |
{
|
| fyrenmoo@2690 | 33 |
/* Offset into CBaseTempEntity constructor */ |
| fyrenmoo@2690 | 34 |
"s_pTempEntities" |
| fyrenmoo@2690 | 35 |
{
|
| fyrenmoo@2690 | 36 |
"windows" "17" |
| fyrenmoo@2690 | 37 |
} |
| fyrenmoo@2690 | 38 |
"GetTEName" |
| fyrenmoo@2690 | 39 |
{
|
| fyrenmoo@2690 | 40 |
"windows" "4" |
| fyrenmoo@2690 | 41 |
"linux" "4" |
| fyrenmoo@2690 | 42 |
} |
| fyrenmoo@2690 | 43 |
"GetTENext" |
| fyrenmoo@2690 | 44 |
{
|
| fyrenmoo@2690 | 45 |
"windows" "8" |
| fyrenmoo@2690 | 46 |
"linux" "8" |
| fyrenmoo@2690 | 47 |
} |
| fyrenmoo@2690 | 48 |
"TE_GetServerClass" |
| fyrenmoo@2690 | 49 |
{
|
| fyrenmoo@2690 | 50 |
"windows" "0" |
| fyrenmoo@2690 | 51 |
"linux" "0" |
| fyrenmoo@2690 | 52 |
} |
| fyrenmoo@2690 | 53 |
} |
| fyrenmoo@2690 | 54 |
|
| fyrenmoo@2690 | 55 |
"Signatures" |
| fyrenmoo@2690 | 56 |
{
|
| fyrenmoo@2690 | 57 |
"CBaseTempEntity" |
| fyrenmoo@2690 | 58 |
{
|
| fyrenmoo@2690 | 59 |
"library" "server" |
| fyrenmoo@2690 | 60 |
"windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00" |
| fyrenmoo@2690 | 61 |
} |
| fyrenmoo@2690 | 62 |
"s_pTempEntities" |
| fyrenmoo@2690 | 63 |
{
|
| fyrenmoo@2690 | 64 |
"library" "server" |
| fyrenmoo@2690 | 65 |
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE" |
| fyrenmoo@2690 | 66 |
} |
| fyrenmoo@2690 | 67 |
} |
| fyrenmoo@2690 | 68 |
} |
| fyrenmoo@2690 | 69 |
|
| skamonkey@3353 | 70 |
/* CGlobalEntityList */ |
| skamonkey@3353 | 71 |
"#default" |
| skamonkey@3353 | 72 |
{
|
| skamonkey@3353 | 73 |
"#supported" |
| skamonkey@3353 | 74 |
{
|
| skamonkey@3353 | 75 |
"game" "ageofchivalry" |
| skamonkey@3353 | 76 |
"game" "pvkii" |
| skamonkey@3353 | 77 |
"game" "fistful_of_frags" |
| skamonkey@3353 | 78 |
"game" "cspromod" |
| skamonkey@3451 | 79 |
"game" "ag2" |
| skamonkey@3353 | 80 |
} |
| skamonkey@3353 | 81 |
|
| skamonkey@3353 | 82 |
"Signatures" |
| skamonkey@3353 | 83 |
{
|
| skamonkey@3353 | 84 |
/* Functions in CGlobalEntityList */ |
| skamonkey@3353 | 85 |
"FindEntityByClassname" |
| skamonkey@3353 | 86 |
{
|
| skamonkey@3353 | 87 |
"library" "server" |
| skamonkey@3353 | 88 |
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x19\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x83\xC0\x01\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03" |
| skamonkey@3353 | 89 |
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" |
| skamonkey@3353 | 90 |
} |
| skamonkey@3353 | 91 |
} |
| skamonkey@3353 | 92 |
} |
| skamonkey@3353 | 93 |
|
| fyrenmoo@2690 | 94 |
/* General GameRules */ |
| fyrenmoo@2690 | 95 |
"#default" |
| fyrenmoo@2690 | 96 |
{
|
| fyrenmoo@2690 | 97 |
"#supported" |
| fyrenmoo@2690 | 98 |
{
|
| fyrenmoo@2690 | 99 |
"game" "ageofchivalry" |
| skamonkey@2754 | 100 |
"game" "zps" |
| skamonkey@2755 | 101 |
"game" "empires" |
| skamonkey@2764 | 102 |
"game" "synergy" |
| skamonkey@2881 | 103 |
"game" "bg2" |
| skamonkey@2930 | 104 |
"game" "pvkii" |
| skamonkey@2938 | 105 |
"game" "gesource" |
| skamonkey@3017 | 106 |
"game" "RnLBeta" |
| skamonkey@3029 | 107 |
"game" "obsidian" |
| skamonkey@3092 | 108 |
"game" "fas" |
| skamonkey@3098 | 109 |
"game" "fistful_of_frags" |
| skamonkey@3190 | 110 |
"game" "cspromod" |
| skamonkey@3451 | 111 |
"game" "ag2" |
| skamonkey@3453 | 112 |
"game" "nmrih" |
| fyrenmoo@2690 | 113 |
} |
| fyrenmoo@2690 | 114 |
|
| fyrenmoo@2690 | 115 |
"Offsets" |
| fyrenmoo@2690 | 116 |
{
|
| fyrenmoo@2690 | 117 |
/* Offset into CreateGameRulesObject */ |
| fyrenmoo@2690 | 118 |
"g_pGameRules" |
| fyrenmoo@2690 | 119 |
{
|
| fyrenmoo@2690 | 120 |
"windows" "2" |
| fyrenmoo@2690 | 121 |
} |
| fyrenmoo@2690 | 122 |
} |
| fyrenmoo@2690 | 123 |
|
| fyrenmoo@2690 | 124 |
"Signatures" |
| fyrenmoo@2690 | 125 |
{
|
| fyrenmoo@2690 | 126 |
/* This signature sometimes has multiple matches, but this |
| fyrenmoo@2690 | 127 |
* does not matter as g_pGameRules is involved in all of them. |
| fyrenmoo@2690 | 128 |
* The same g_pGameRules offset applies to each match. |
| fyrenmoo@2690 | 129 |
* |
| fyrenmoo@2690 | 130 |
* Sometimes this block of bytes is at the beginning of the static |
| fyrenmoo@2690 | 131 |
* CreateGameRulesObject function and sometimes it is in the middle |
| fyrenmoo@2690 | 132 |
* of an entirely different function. This depends on the game. |
| fyrenmoo@2690 | 133 |
*/ |
| fyrenmoo@2690 | 134 |
"CreateGameRulesObject" |
| fyrenmoo@2690 | 135 |
{
|
| fyrenmoo@2690 | 136 |
"library" "server" |
| fyrenmoo@2690 | 137 |
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" |
| fyrenmoo@2690 | 138 |
} |
| fyrenmoo@2690 | 139 |
"g_pGameRules" |
| fyrenmoo@2690 | 140 |
{
|
| fyrenmoo@2690 | 141 |
"library" "server" |
| fyrenmoo@2690 | 142 |
"linux" "@g_pGameRules" |
| fyrenmoo@2690 | 143 |
} |
| fyrenmoo@2690 | 144 |
} |
| fyrenmoo@2690 | 145 |
} |
| fyrenmoo@2690 | 146 |
|
| fyrenmoo@2690 | 147 |
/* IServer interface pointer */ |
| fyrenmoo@2690 | 148 |
"#default" |
| fyrenmoo@2690 | 149 |
{
|
| fyrenmoo@2690 | 150 |
"Keys" |
| fyrenmoo@2690 | 151 |
{
|
| fyrenmoo@2690 | 152 |
/* Signature for the beginning of IVEngineServer::CreateFakeClient. |
| fyrenmoo@2690 | 153 |
* |
| fyrenmoo@2690 | 154 |
* The engine binary is not actually scanned in order to look for |
| fyrenmoo@2690 | 155 |
* this. SourceHook is used to used to determine the address of the |
| fyrenmoo@2690 | 156 |
* function and this signature is used to verify that it contains |
| fyrenmoo@2690 | 157 |
* the expected code. A pointer to sv (IServer interface) is used |
| fyrenmoo@2690 | 158 |
* here. |
| fyrenmoo@2690 | 159 |
*/ |
| fyrenmoo@2690 | 160 |
"CreateFakeClient_Windows" "\x8B\x44\x24\x2A\x50\xB9\x2A\x2A\x2A\x2A\xE8" |
| fyrenmoo@2690 | 161 |
} |
| fyrenmoo@2690 | 162 |
|
| fyrenmoo@2690 | 163 |
"Offsets" |
| fyrenmoo@2690 | 164 |
{
|
| fyrenmoo@2690 | 165 |
/* Offset into IVEngineServer::CreateFakeClient */ |
| fyrenmoo@2690 | 166 |
"sv" |
| fyrenmoo@2690 | 167 |
{
|
| fyrenmoo@2690 | 168 |
"windows" "6" |
| fyrenmoo@2690 | 169 |
} |
| fyrenmoo@2690 | 170 |
} |
| fyrenmoo@2690 | 171 |
|
| fyrenmoo@2690 | 172 |
"Signatures" |
| fyrenmoo@2690 | 173 |
{
|
| fyrenmoo@2690 | 174 |
/* CBaseServer object for IServer interface */ |
| fyrenmoo@2690 | 175 |
"sv" |
| fyrenmoo@2690 | 176 |
{
|
| fyrenmoo@2690 | 177 |
"library" "engine" |
| fyrenmoo@2690 | 178 |
"linux" "@sv" |
| fyrenmoo@2690 | 179 |
} |
| fyrenmoo@2690 | 180 |
} |
| fyrenmoo@2690 | 181 |
} |
| fyrenmoo@2690 | 182 |
|
| fyrenmoo@2690 | 183 |
/* EntityFactoryDictionary function */ |
| fyrenmoo@2690 | 184 |
"#default" |
| fyrenmoo@2690 | 185 |
{
|
| fyrenmoo@2690 | 186 |
"Signatures" |
| fyrenmoo@2690 | 187 |
{
|
| fyrenmoo@2690 | 188 |
"EntityFactory" |
| fyrenmoo@2690 | 189 |
{
|
| fyrenmoo@2690 | 190 |
"library" "server" |
| fyrenmoo@2690 | 191 |
"windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3" |
| fyrenmoo@2690 | 192 |
"linux" "@_Z23EntityFactoryDictionaryv" |
| fyrenmoo@2690 | 193 |
} |
| fyrenmoo@2690 | 194 |
} |
| fyrenmoo@2690 | 195 |
} |
| fyrenmoo@2690 | 196 |
|
| fyrenmoo@2690 | 197 |
/* CBaseEntityOutput::FireOutput */ |
| fyrenmoo@2690 | 198 |
"#default" |
| fyrenmoo@2690 | 199 |
{
|
| fyrenmoo@2690 | 200 |
"#supported" |
| fyrenmoo@2690 | 201 |
{
|
| fyrenmoo@2690 | 202 |
"game" "ageofchivalry" |
| skamonkey@3190 | 203 |
"game" "cspromod" |
| skamonkey@3451 | 204 |
"game" "ag2" |
| fyrenmoo@2690 | 205 |
} |
| fyrenmoo@2690 | 206 |
"Signatures" |
| fyrenmoo@2690 | 207 |
{
|
| fyrenmoo@2690 | 208 |
"FireOutput" |
| fyrenmoo@2690 | 209 |
{
|
| fyrenmoo@2690 | 210 |
"library" "server" |
| fyrenmoo@2690 | 211 |
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6" |
| fyrenmoo@2690 | 212 |
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" |
| fyrenmoo@2690 | 213 |
} |
| fyrenmoo@2690 | 214 |
} |
| fyrenmoo@2690 | 215 |
} |
| fyrenmoo@2690 | 216 |
|
| fyrenmoo@2690 | 217 |
/* SetUserInfo data */ |
| fyrenmoo@2690 | 218 |
"#default" |
| fyrenmoo@2690 | 219 |
{
|
| fyrenmoo@2690 | 220 |
"Offsets" |
| fyrenmoo@2690 | 221 |
{
|
| fyrenmoo@2690 | 222 |
/** |
| fyrenmoo@2690 | 223 |
* CBaseClient::SetUserCVar(char const*,char const*); |
| fyrenmoo@2690 | 224 |
* Linux offset straight from VTable dump. |
| pred@2746 | 225 |
* Windows offset is crazy. Found the windows SetName function using string "(%d)%-0.*s" |
| fyrenmoo@2690 | 226 |
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1) |
| fyrenmoo@2690 | 227 |
*/ |
| fyrenmoo@2690 | 228 |
"SetUserCvar" |
| fyrenmoo@2690 | 229 |
{
|
| fyrenmoo@2690 | 230 |
"windows" "17" |
| fyrenmoo@2690 | 231 |
"linux" "55" |
| fyrenmoo@2690 | 232 |
} |
| fyrenmoo@2690 | 233 |
/** |
| fyrenmoo@2690 | 234 |
* Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. |
| fyrenmoo@2690 | 235 |
* Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. |
| fyrenmoo@2690 | 236 |
* Linux: mov byte ptr [esi+98h], 0 |
| fyrenmoo@2690 | 237 |
* Win: mov byte ptr [esi+0A4h], 0 |
| fyrenmoo@2690 | 238 |
*/ |
| fyrenmoo@2690 | 239 |
"InfoChanged" |
| fyrenmoo@2690 | 240 |
{
|
| fyrenmoo@2690 | 241 |
"windows" "140" |
| fyrenmoo@2690 | 242 |
"linux" "140" |
| fyrenmoo@2690 | 243 |
} |
| fyrenmoo@2690 | 244 |
} |
| fyrenmoo@2690 | 245 |
} |
| fyrenmoo@2690 | 246 |
} |