gamedata/sdktools.games/engine.dota.txt
author Nicholas Hastings <skamonkey@gmail.com>
Wed Aug 14 14:20:57 2013 -0400 (2013-08-14)
changeset 4008 490b01aa0683
parent 3923 c604c6143dfb
child 4216 048a7a0c0883
permissions -rw-r--r--
Updated some CS:GO gamedata.
skamonkey@3857
     1
/**
skamonkey@3857
     2
 * Do not edit this file.  Any changes will be overwritten by the gamedata
skamonkey@3857
     3
 * updater or by upgrading your SourceMod install.
skamonkey@3857
     4
 *
skamonkey@3857
     5
 * To override data in this file, create a subdirectory named "custom" and
skamonkey@3857
     6
 * place your own gamedata file(s) inside of it.  Such files will be parsed
skamonkey@3857
     7
 * after SM's own.
skamonkey@3857
     8
 *
skamonkey@3857
     9
 * For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod)
skamonkey@3857
    10
 */
skamonkey@3857
    11
skamonkey@3857
    12
"Games"
skamonkey@3857
    13
{
skamonkey@3857
    14
	/* Sounds */
skamonkey@3857
    15
	"#default"
skamonkey@3857
    16
	{
skamonkey@3857
    17
		"Keys"
skamonkey@3857
    18
		{
skamonkey@3857
    19
			"SlapSoundCount"	"7"
skamonkey@3857
    20
			"SlapSound1"		"vo/axe/axe_pain_01.mp3"
skamonkey@3857
    21
			"SlapSound1"		"vo/axe/axe_pain_02.mp3"
skamonkey@3857
    22
			"SlapSound1"		"vo/axe/axe_pain_03.mp3"
skamonkey@3857
    23
			"SlapSound1"		"vo/axe/axe_pain_04.mp3"
skamonkey@3857
    24
			"SlapSound1"		"vo/axe/axe_pain_05.mp3"
skamonkey@3857
    25
			"SlapSound1"		"vo/axe/axe_pain_06.mp3"
skamonkey@3857
    26
			"SlapSound1"		"vo/axe/axe_pain_07.mp3"
skamonkey@3857
    27
		}
skamonkey@3857
    28
	}
skamonkey@3857
    29
	
skamonkey@3857
    30
	/* General Temp Entities */
skamonkey@3857
    31
	"#default"
skamonkey@3857
    32
	{
skamonkey@3857
    33
		"Offsets"
skamonkey@3857
    34
		{
skamonkey@3857
    35
			//Offset into CBaseTempEntity constructor
skamonkey@3857
    36
			"s_pTempEntities"
skamonkey@3857
    37
			{
skamonkey@3857
    38
				"windows"	"1"
skamonkey@3857
    39
			}
skamonkey@3857
    40
			"GetTEName"
skamonkey@3857
    41
			{
skamonkey@3857
    42
				"windows"	"4"
skamonkey@3857
    43
			}
skamonkey@3857
    44
			"GetTENext"
skamonkey@3857
    45
			{
skamonkey@3857
    46
				"windows"	"8"
skamonkey@3857
    47
			}
skamonkey@3857
    48
			"TE_GetServerClass"
skamonkey@3857
    49
			{
skamonkey@3857
    50
				"windows"	"0"
skamonkey@3857
    51
			}
skamonkey@3857
    52
		}
skamonkey@3857
    53
skamonkey@3857
    54
		"Signatures"
skamonkey@3857
    55
		{
skamonkey@3857
    56
			"CBaseTempEntity"
skamonkey@3857
    57
			{
skamonkey@3857
    58
				"library"	"server"
skamonkey@3857
    59
				"windows"	"\xA1\x2A\x2A\x2A\x2A\xF3\x0F\x10\x15\x2A\x2A\x2A\x2A\xF3"
skamonkey@3857
    60
			}
skamonkey@3857
    61
		}
skamonkey@3857
    62
	}
skamonkey@3857
    63
skamonkey@3857
    64
	/* General GameRules */
skamonkey@3857
    65
	"#default"
skamonkey@3857
    66
	{
skamonkey@3857
    67
		"Keys"
skamonkey@3857
    68
		{
skamonkey@3857
    69
			"GameRulesProxy"	"CDOTAGamerulesProxy"
skamonkey@3857
    70
		}
skamonkey@3857
    71
		
skamonkey@3857
    72
		"Offsets"
skamonkey@3857
    73
		{
skamonkey@3857
    74
			/* Offset into CreateGameRulesObject */
skamonkey@3857
    75
			"g_pGameRules"
skamonkey@3857
    76
			{
matheusavs3@3923
    77
				"windows"	"3"
skamonkey@3857
    78
			}
skamonkey@3857
    79
		}
skamonkey@3857
    80
		
skamonkey@3857
    81
		"Signatures"
skamonkey@3857
    82
		{
skamonkey@3857
    83
			/* This signature sometimes has multiple matches, but this
skamonkey@3857
    84
			 * does not matter as g_pGameRules is involved in all of them.
skamonkey@3857
    85
			 * The same g_pGameRules offset applies to each match.
skamonkey@3857
    86
			 *
skamonkey@3857
    87
			 * Sometimes this block of bytes is at the beginning of the static
skamonkey@3857
    88
			 * CreateGameRulesObject function and sometimes it is in the middle
skamonkey@3857
    89
			 * of an entirely different function. This depends on the game.
skamonkey@3857
    90
			 */
skamonkey@3857
    91
			"CreateGameRulesObject"
skamonkey@3857
    92
			{
skamonkey@3857
    93
				"library"	"server"
matheusavs3@3923
    94
				"windows"	"\x51\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x08\x8B\x01\x8B\x10\x6A\x01\xFF\xD2\xC7\x05\x2A\x2A\x2A\x2A\x00\x00\x00\x00\xE8"
skamonkey@3857
    95
			}
skamonkey@3857
    96
			"g_pGameRules"
skamonkey@3857
    97
			{
skamonkey@3857
    98
				"library"	"server"
skamonkey@3857
    99
			}
skamonkey@3857
   100
		}
skamonkey@3857
   101
	}
skamonkey@3857
   102
skamonkey@3857
   103
	/* IServer interface pointer */
skamonkey@3857
   104
	"#default"
skamonkey@3857
   105
	{
skamonkey@3857
   106
		"Keys"
skamonkey@3857
   107
		{
skamonkey@3857
   108
			/* Signature for the beginning of IVEngineServer::CreateFakeClient.
skamonkey@3857
   109
			 *
skamonkey@3857
   110
			 * The engine binary is not actually scanned in order to look for
skamonkey@3857
   111
			 * this. SourceHook is used to used to determine the address of the
skamonkey@3857
   112
			 * function and this signature is used to verify that it contains
skamonkey@3857
   113
			 * the expected code. A pointer to sv (IServer interface) is used
skamonkey@3857
   114
			 * here.
skamonkey@3857
   115
			 */
skamonkey@3857
   116
			"CreateFakeClient_Windows"	"\x55\x8B\xEC\x8B\x2A\x2A\x56\x50\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0\x75"
skamonkey@3857
   117
		}
skamonkey@3857
   118
		
skamonkey@3857
   119
		"Offsets"
skamonkey@3857
   120
		{
skamonkey@3857
   121
			/* Offset into IVEngineServer::CreateFakeClient */
skamonkey@3857
   122
			"sv"
skamonkey@3857
   123
			{
skamonkey@3857
   124
				"windows"	"9"
skamonkey@3857
   125
			}
skamonkey@3857
   126
		}
skamonkey@3857
   127
	}
skamonkey@3857
   128
	
skamonkey@3857
   129
	/* Resource Entity override */
skamonkey@3857
   130
	"#default"
skamonkey@3857
   131
	{
skamonkey@3857
   132
		// Dota's player manager does not have DT_PlayerResource embedded, unlike most other games
skamonkey@3857
   133
		"Keys"
skamonkey@3857
   134
		{
skamonkey@3857
   135
			"ResourceEntityClassname"	"dota_player_manager"
skamonkey@3857
   136
		}
skamonkey@3857
   137
	}
skamonkey@3857
   138
	
skamonkey@3857
   139
	/* EntityFactoryDictionary function */
skamonkey@3857
   140
	"#default"
skamonkey@3857
   141
	{
skamonkey@3857
   142
		"Signatures"
skamonkey@3857
   143
		{
skamonkey@3857
   144
			"EntityFactoryFinder"
skamonkey@3857
   145
			{
skamonkey@3857
   146
				// EntityFactoryDictionary gets inlined on Windows in Dota 2. The pointer to the static factory becomes a global.
skamonkey@3857
   147
				"library"	"server"
skamonkey@3866
   148
				"windows"	"\x8B\x15\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x57\xB9\x2A\x2A\x2A\x2A\xFF\xD0\xC7"
skamonkey@3857
   149
				//"linux"		"@_Z23EntityFactoryDictionaryv"
skamonkey@3857
   150
				//"mac"		"@_Z23EntityFactoryDictionaryv"
skamonkey@3857
   151
			}
skamonkey@3857
   152
		}
skamonkey@3857
   153
		
skamonkey@3857
   154
		"Offsets"
skamonkey@3857
   155
		{
skamonkey@3857
   156
			"EntityFactoryOffset"
skamonkey@3857
   157
			{
skamonkey@3866
   158
				"windows" 	"2"
skamonkey@3857
   159
			}
skamonkey@3857
   160
		}
skamonkey@3857
   161
	}
skamonkey@3857
   162
skamonkey@3857
   163
	/* CBaseEntityOutput::FireOutput */
skamonkey@3857
   164
	"#default"
skamonkey@3857
   165
	{
skamonkey@3857
   166
		"Signatures"
skamonkey@3857
   167
		{
skamonkey@3857
   168
			"FireOutput"
skamonkey@3857
   169
			{
skamonkey@3857
   170
				"library"	"server"
skamonkey@3866
   171
				"windows"	"\x55\x8B\xEC\x83\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x8B\x45\x2A\x53\x8B\x58\x2A\x56\x57\xC7"
skamonkey@3857
   172
			}
skamonkey@3857
   173
		}
skamonkey@3857
   174
	}
skamonkey@3857
   175
	
skamonkey@3857
   176
	/* SetUserInfo data */
skamonkey@3857
   177
	"#default"
skamonkey@3857
   178
	{
skamonkey@3857
   179
		"Offsets"
skamonkey@3857
   180
		{
skamonkey@3857
   181
			/**
skamonkey@3857
   182
			 * CBaseClient::SetUserCVar(char  const*,char  const*);
skamonkey@3857
   183
			 * Linux offset straight from VTable dump.
skamonkey@3857
   184
			 * Windows offset is crazy. Found the windows SetName function using string "(%d)%-.*s" (aD_S in IDA)
skamonkey@3857
   185
			 * Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
skamonkey@3857
   186
			 */
skamonkey@3857
   187
			"SetUserCvar"
skamonkey@3857
   188
			{
skamonkey@3857
   189
				"windows"	"26"
skamonkey@3857
   190
			}
skamonkey@3857
   191
			/**
skamonkey@3857
   192
			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
skamonkey@3857
   193
			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end.
skamonkey@3857
   194
			 * Linux: 	mov     byte ptr [esi+0B0h], 0
skamonkey@3857
   195
			 * Win:		mov     byte ptr [esi+0B0h], 0
skamonkey@3857
   196
			 *
skamonkey@3857
   197
			 * L4D2: This has been moved into CBaseClient::UpdateUserSettings(), rest of the details are still relevant.
skamonkey@3857
   198
			 */
skamonkey@3857
   199
			"InfoChanged"
skamonkey@3857
   200
			{
skamonkey@3857
   201
				"windows"	"212"
skamonkey@3857
   202
			}
skamonkey@3857
   203
		}
skamonkey@3857
   204
	}
skamonkey@3857
   205
	
skamonkey@3857
   206
	"dota"
skamonkey@3857
   207
	{
skamonkey@3857
   208
		"Offsets"
skamonkey@3857
   209
		{
skamonkey@3857
   210
			"GiveNamedItem"
skamonkey@3857
   211
			{
skamonkey@3857
   212
				"windows"	"438"
skamonkey@3857
   213
			}
skamonkey@3857
   214
			"RemovePlayerItem"
skamonkey@3857
   215
			{
skamonkey@3857
   216
				"windows"	"300"
skamonkey@3857
   217
			}
skamonkey@3857
   218
			"Weapon_GetSlot"
skamonkey@3857
   219
			{
skamonkey@3857
   220
				"windows"	"289"
skamonkey@3857
   221
			}
skamonkey@3857
   222
			"Ignite"
skamonkey@3857
   223
			{
skamonkey@3857
   224
				"windows"	"231"
skamonkey@3857
   225
			}
skamonkey@3857
   226
			"Extinguish"
skamonkey@3857
   227
			{
skamonkey@3857
   228
				"windows"	"234"
skamonkey@3857
   229
			}
skamonkey@3857
   230
			"Teleport"
skamonkey@3857
   231
			{
skamonkey@3857
   232
				"windows"	"114"
skamonkey@3857
   233
			}
skamonkey@3857
   234
			"CommitSuicide"
skamonkey@3857
   235
			{
skamonkey@3857
   236
				"windows"	"482"
skamonkey@3857
   237
			}
skamonkey@3857
   238
			"GetVelocity"
skamonkey@3857
   239
			{
skamonkey@3857
   240
				"windows"	"147"
skamonkey@3857
   241
			}
skamonkey@3857
   242
			"EyeAngles"
skamonkey@3857
   243
			{
skamonkey@3857
   244
				"windows"	"138"
skamonkey@3857
   245
			}
skamonkey@3857
   246
			"AcceptInput"
skamonkey@3857
   247
			{
skamonkey@3857
   248
				"windows"	"41"
skamonkey@3857
   249
			}
skamonkey@3857
   250
			"SetEntityModel"
skamonkey@3857
   251
			{
skamonkey@3857
   252
				"windows"	"26"
skamonkey@3857
   253
			}
skamonkey@3857
   254
			"WeaponEquip"
skamonkey@3857
   255
			{
skamonkey@3857
   256
				"windows"	"292"
skamonkey@3857
   257
			}
skamonkey@3857
   258
			"Activate"
skamonkey@3857
   259
			{
skamonkey@3857
   260
				"windows"	"37"
skamonkey@3857
   261
			}
skamonkey@3857
   262
			"PlayerRunCmd"
skamonkey@3857
   263
			{
skamonkey@3857
   264
				"windows"	"458"
skamonkey@3857
   265
			}
skamonkey@3857
   266
		}
skamonkey@3857
   267
	}
skamonkey@3857
   268
}