gamedata/sdktools.games.txt
author Scott Ehlert <ds@alliedmods.net>
Sun Jul 15 08:00:26 2007 +0000 (2007-07-15)
changeset 1116 40cc5e9f0f1b
parent 1068 3dc3b1fd2796
child 1151 71424ad456bc
permissions -rw-r--r--
Removed strange debugging code
     1 "Games"
     2 {
     3 	/* General Temp Entities */
     4 	"#default"
     5 	{
     6 		"#supported"
     7 		{
     8 			"game"		"cstrike"
     9 			"game"		"dod"
    10 			"game"		"hl2mp"
    11 			"game"		"ship"
    12 			"game"		"!Dystopia"
    13 			"game"		"!Insurgency"
    14 			"game"		"!Pirates, Vikings and Knights II"
    15 			"game"		"!SourceForts v1.9.2"
    16 		}
    17 
    18 		"Offsets"
    19 		{
    20 			/* Offset into CBaseTempEntity constructor */
    21 			"s_pTempEntities"
    22 			{
    23 				"windows"	"17"
    24 				"linux"		"27"
    25 			}
    26 			"GetTEName"
    27 			{
    28 				"windows"	"4"
    29 				"linux"		"4"
    30 			}
    31 			"GetTENext"
    32 			{
    33 				"windows"	"8"
    34 				"linux"		"8"
    35 			}
    36 			"TE_GetServerClass"
    37 			{
    38 				"windows"	"1"
    39 				"linux"		"1"
    40 			}
    41 		}
    42 
    43 		"Signatures"
    44 		{
    45 			"CBaseTempEntity"
    46 			{
    47 				"library"	"server"
    48 				"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"
    49 				"linux"		"@_ZN15CBaseTempEntityC2EPKc"
    50 			}
    51 		}
    52 	}
    53 	
    54 	/* General GameRules */
    55 	"#default"
    56 	{
    57 		"#supported"
    58 		{
    59 			"game"		"cstrike"
    60 			"game"		"dod"
    61 			"game"		"garrysmod"
    62 			"game"		"hl2mp"
    63 			"game"		"ship"
    64 			"game"		"!Dystopia"
    65 			"game"		"!Insurgency"
    66 			"game"		"!Pirates, Vikings and Knights II"
    67 			"game"		"!SourceForts v1.9.2"
    68 		}
    69 		
    70 		"Offsets"
    71 		{
    72 			/* Offset into CreateGameRulesObject */
    73 			"g_pGameRules"
    74 			{
    75 				"windows"	"2"
    76 			}
    77 		}
    78 		
    79 		"Signatures"
    80 		{
    81 			/* This signature sometimes has multiple matches, but this
    82 			 * does not matter as g_pGameRules is involved in all of them.
    83 			 * The same g_pGameRules offset applies to each match.
    84 			 *
    85 			 * Sometimes this block of bytes is at the beginning of the static
    86 			 * CreateGameRulesObject function and sometimes it is in the middle
    87 			 * of an entirely different function. This depends on the game.
    88 			 */
    89 			"CreateGameRulesObject"
    90 			{
    91 				"library"	"server"
    92 				"windows"	"\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
    93 			}
    94 			"g_pGameRules"
    95 			{
    96 				"library"	"server"
    97 				"linux"		"@g_pGameRules"
    98 			}
    99 		}
   100 	}
   101 
   102 	/* Counter-Strike: Source */
   103 	"cstrike"
   104 	{
   105 		"Offsets"
   106 		{
   107 			"GiveNamedItem"
   108 			{
   109 				"windows"	"329"
   110 				"linux"		"330"
   111 			}
   112 			"RemovePlayerItem"
   113 			{
   114 				"windows"	"226"
   115 				"linux"		"227"
   116 			}
   117 			"Weapon_GetSlot"
   118 			{
   119 				"windows"	"224"
   120 				"linux"		"225"
   121 			}
   122 			"Ignite"
   123 			{
   124 				"windows"	"188"
   125 				"linux"		"189"
   126 			}
   127 			"Extinguish"
   128 			{
   129 				"windows"	"189"
   130 				"linux"		"190"
   131 			}
   132 			"Teleport"
   133 			{
   134 				"windows"	"98"
   135 				"linux"		"99"
   136 			}
   137 		}
   138 	}
   139 
   140 	/* Day of Defeat */
   141 	"dod"
   142 	{
   143 		"Offsets"
   144 		{
   145 			"GiveNamedItem"
   146 			{
   147 				"windows"	"328"
   148 				"linux"		"330"
   149 			}
   150 			"RemovePlayerItem"
   151 			{
   152 				"windows"	"226"
   153 				"linux"		"227"
   154 			}
   155 			"Weapon_GetSlot"
   156 			{
   157 				"windows"	"224"
   158 				"linux"		"225"
   159 			}
   160 			"Ignite"
   161 			{
   162 				"windows"	"188"
   163 				"linux"		"189"
   164 			}
   165 			"Extinguish"
   166 			{
   167 				"windows"	"189"
   168 				"linux"		"190"
   169 			}
   170 			"Teleport"
   171 			{
   172 				"windows"	"98"
   173 				"linux"		"99"
   174 			}
   175 		}
   176 	}
   177 	
   178 	/* Half-Life 2: Deathmatch */
   179 	"hl2mp"
   180 	{
   181 		"Offsets"
   182 		{
   183 			"GiveNamedItem"
   184 			{
   185 				"windows"	"327"
   186 				"linux"		"328"
   187 			}
   188 			"RemovePlayerItem"
   189 			{
   190 				"windows"	"225"
   191 				"linux"		"226"
   192 			}
   193 			"Weapon_GetSlot"
   194 			{
   195 				"windows"	"223"
   196 				"linux"		"224"
   197 			}
   198 			"Ignite"
   199 			{
   200 				"windows"	"187"
   201 				"linux"		"188"
   202 			}
   203 			"Extinguish"
   204 			{
   205 				"windows"	"188"
   206 				"linux"		"189"
   207 			}
   208 			"Teleport"
   209 			{
   210 				"windows"	"97"
   211 				"linux"		"98"
   212 			}
   213 		}
   214 	}
   215 	
   216 	/* The Ship */
   217 	"ship"
   218 	{
   219 		"Offsets"
   220 		{
   221 			/* CBasePlayer */
   222 			"GiveNamedItem"
   223 			{
   224 				"windows"	"316"
   225 				"linux"		"317"
   226 			}
   227 			"RemovePlayerItem"
   228 			{
   229 				"windows"	"220"
   230 				"linux"		"221"
   231 			}
   232 			"Weapon_GetSlot"
   233 			{
   234 				"windows"	"218"
   235 				"linux"		"219"
   236 			}
   237 			"Ignite"
   238 			{
   239 				"windows"	"180"
   240 				"linux"		"181"
   241 			}
   242 			"Extinguish"
   243 			{
   244 				"windows"	"181"
   245 				"linux"		"182"
   246 			}
   247 			"Teleport"
   248 			{
   249 				"windows"	"100"
   250 				"linux"		"101"
   251 			}
   252 			
   253 			/* Temp Entities */
   254 			"TE_GetServerClass"
   255 			{
   256 				"windows"	"0"
   257 				"linux"		"0"
   258 			}
   259 		}
   260 	}
   261 	
   262 	/* Dsytopia */
   263 	"!Dystopia"
   264 	{
   265 
   266 		"Offsets"
   267 		{
   268 			/* CBasePlayer */
   269 			"GiveNamedItem"
   270 			{
   271 				"windows"	"331"
   272 				"linux"		"332"
   273 			}
   274 			"RemovePlayerItem"
   275 			{
   276 				"windows"	"229"
   277 				"linux"		"230"
   278 			}
   279 			"Weapon_GetSlot"
   280 			{
   281 				"windows"	"227"
   282 				"linux"		"228"
   283 			}
   284 			"Ignite"
   285 			{
   286 				"windows"	"191"
   287 				"linux"		"192"
   288 			}
   289 			"Extinguish"
   290 			{
   291 				"windows"	"192"
   292 				"linux"		"193"
   293 			}
   294 			"Teleport"
   295 			{
   296 				"windows"	"100"
   297 				"linux"		"101"
   298 			}
   299 
   300 			/* Offset into CBaseTempEntity constructor.
   301 			 * On Windows Dsytopia is heavily inlined; we use the function 
   302 			 * surrounding "aCouldnTFindTem" in IDA instead.
   303 			 */
   304 			"s_pTempEntities"
   305 			{
   306 				"windows"	"70"
   307 				"linux"		"29"
   308 			}
   309 		}
   310 
   311 		"Signatures"
   312 		{
   313 			/* On Windows Dsytopia is heavily inlined; we use the function 
   314 			 * surrounding "aCouldnTFindTem" in IDA instead.
   315 			 */
   316 			"CBaseTempEntity"
   317 			{
   318 				"library"	"server"
   319 				"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"
   320 			}
   321 
   322 			/* Dystopia always has to be different, doesn't it
   323 			 *
   324 			 * This is very similar to the general signature, except that
   325 			 * it does "mov edx, [eax+2Ch]" before making a call rather than
   326 			 * doing "call dword ptr [eax+2Ch]"
   327 			 */
   328 			"CreateGameRulesObject"
   329 			{
   330 				"library"	"server"
   331 				"windows"	"\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
   332 			}
   333 		}
   334 	}
   335 
   336 	/* Insurgency */
   337 	"!Insurgency"
   338 	{
   339 		"Offsets"
   340 		{
   341 			/* CBasePlayer */
   342 			"Ignite"
   343 			{
   344 				"windows"	"174"
   345 				"linux"		"175"
   346 			}
   347 			"Extinguish"
   348 			{
   349 				"windows"	"175"
   350 				"linux"		"176"
   351 			}
   352 			"Teleport"
   353 			{
   354 				"windows"	"90"
   355 				"linux"		"91"
   356 			}
   357 
   358 			/* Temp Entities */
   359 			"s_pTempEntities"
   360 			{
   361 				"linux"		"28"
   362 			}
   363 		}
   364 	}
   365 	
   366 	/* Pirates, Vikings and Knights II */
   367 	"!Pirates, Vikings and Knights II"
   368 	{
   369 		"Offsets"
   370 		{
   371 			/* CBasePlayer */
   372 			"GiveNamedItem"
   373 			{
   374 				"windows"	"328"
   375 				"linux"		"329"
   376 			}
   377 			"RemovePlayerItem"
   378 			{
   379 				"windows"	"226"
   380 				"linux"		"227"
   381 			}
   382 			"Weapon_GetSlot"
   383 			{
   384 				"windows"	"224"
   385 				"linux"		"225"
   386 			}
   387 			"Ignite"
   388 			{
   389 				"windows"	"188"
   390 				"linux"		"189"
   391 			}
   392 			"Extinguish"
   393 			{
   394 				"windows"	"189"
   395 				"linux"		"190"
   396 			}
   397 			"Teleport"
   398 			{
   399 				"windows"	"98"
   400 				"linux"		"99"
   401 			}
   402 			
   403 			/* Temp Entities */
   404 			"s_pTempEntities"
   405 			{
   406 				"linux"		"29"
   407 			}
   408 		}
   409 	}
   410 
   411 	/* SourceForts 1.9.2 */
   412 	"!SourceForts v1.9.2"
   413 	{
   414 		"Offsets"
   415 		{
   416 			/* CBasePlayer */
   417 			"GiveNamedItem"
   418 			{
   419 				"windows"	"294"
   420 				"linux"		"295"
   421 			}
   422 			"RemovePlayerItem"
   423 			{
   424 				"windows"	"207"
   425 				"linux"		"208"
   426 			}
   427 			"Weapon_GetSlot"
   428 			{
   429 				"windows"	"205"
   430 				"linux"		"206"
   431 			}
   432 			"Ignite"
   433 			{
   434 				"windows"	"170"
   435 				"linux"		"171"
   436 			}
   437 			"Extinguish"
   438 			{
   439 				"windows"	"171"
   440 				"linux"		"172"
   441 			}
   442 			"Teleport"
   443 			{
   444 				"windows"	"90"
   445 				"linux"		"91"
   446 			}
   447 
   448 			/* Temp Entities */
   449 			"s_pTempEntities"
   450 			{
   451 				"linux"		"29"
   452 			}
   453 			"TE_GetServerClass"
   454 			{
   455 				"windows"	"0"
   456 				"linux"		"0"
   457 			}
   458 		}
   459 	}
   460 }