gamedata/sdktools.games.txt
author David Anderson <dvander@alliedmods.net>
Wed Jul 25 01:18:11 2007 +0000 (2007-07-25)
changeset 1163 0bb03cb6277b
parent 1151 71424ad456bc
child 1169 47a8892d2c81
permissions -rw-r--r--
- added MenuAction_DisplayItem callback for plugins
- fixed various bugs in MenuAction_Display
- added an "access" parameter for IMenuManager. better to do this now than later, even though it's not used yet
- hard bumped menu api to change the OnMenuDisplayItem callback. sorry!
     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 			"CommitSuicide"
   138 			{
   139 				"windows"	"357"
   140 				"linux"		"358"
   141 			}
   142 		}
   143 	}
   144 
   145 	/* Day of Defeat */
   146 	"dod"
   147 	{
   148 		"Offsets"
   149 		{
   150 			"GiveNamedItem"
   151 			{
   152 				"windows"	"328"
   153 				"linux"		"330"
   154 			}
   155 			"RemovePlayerItem"
   156 			{
   157 				"windows"	"226"
   158 				"linux"		"227"
   159 			}
   160 			"Weapon_GetSlot"
   161 			{
   162 				"windows"	"224"
   163 				"linux"		"225"
   164 			}
   165 			"Ignite"
   166 			{
   167 				"windows"	"188"
   168 				"linux"		"189"
   169 			}
   170 			"Extinguish"
   171 			{
   172 				"windows"	"189"
   173 				"linux"		"190"
   174 			}
   175 			"Teleport"
   176 			{
   177 				"windows"	"98"
   178 				"linux"		"99"
   179 			}
   180 			"CommitSuicide"
   181 			{
   182 				"windows"	"356"
   183 				"linux"		"357"
   184 			}
   185 		}
   186 	}
   187 	
   188 	/* Half-Life 2: Deathmatch */
   189 	"hl2mp"
   190 	{
   191 		"Offsets"
   192 		{
   193 			"GiveNamedItem"
   194 			{
   195 				"windows"	"327"
   196 				"linux"		"328"
   197 			}
   198 			"RemovePlayerItem"
   199 			{
   200 				"windows"	"225"
   201 				"linux"		"226"
   202 			}
   203 			"Weapon_GetSlot"
   204 			{
   205 				"windows"	"223"
   206 				"linux"		"224"
   207 			}
   208 			"Ignite"
   209 			{
   210 				"windows"	"187"
   211 				"linux"		"188"
   212 			}
   213 			"Extinguish"
   214 			{
   215 				"windows"	"188"
   216 				"linux"		"189"
   217 			}
   218 			"Teleport"
   219 			{
   220 				"windows"	"97"
   221 				"linux"		"98"
   222 			}
   223 			"CommitSuicide"
   224 			{
   225 				"windows"	"356"
   226 				"linux"		"357"
   227 			}
   228 		}
   229 	}
   230 	
   231 	/* The Ship */
   232 	"ship"
   233 	{
   234 		"Offsets"
   235 		{
   236 			/* CBasePlayer */
   237 			"GiveNamedItem"
   238 			{
   239 				"windows"	"316"
   240 				"linux"		"317"
   241 			}
   242 			"RemovePlayerItem"
   243 			{
   244 				"windows"	"220"
   245 				"linux"		"221"
   246 			}
   247 			"Weapon_GetSlot"
   248 			{
   249 				"windows"	"218"
   250 				"linux"		"219"
   251 			}
   252 			"Ignite"
   253 			{
   254 				"windows"	"180"
   255 				"linux"		"181"
   256 			}
   257 			"Extinguish"
   258 			{
   259 				"windows"	"181"
   260 				"linux"		"182"
   261 			}
   262 			"Teleport"
   263 			{
   264 				"windows"	"100"
   265 				"linux"		"101"
   266 			}
   267 			"CommitSuicide"
   268 			{
   269 				"windows"	"343"
   270 				"linux"		"344"
   271 			}
   272 			
   273 			/* Temp Entities */
   274 			"TE_GetServerClass"
   275 			{
   276 				"windows"	"0"
   277 				"linux"		"0"
   278 			}
   279 		}
   280 	}
   281 	
   282 	/* Dsytopia */
   283 	"!Dystopia"
   284 	{
   285 
   286 		"Offsets"
   287 		{
   288 			/* CBasePlayer */
   289 			"GiveNamedItem"
   290 			{
   291 				"windows"	"331"
   292 				"linux"		"332"
   293 			}
   294 			"RemovePlayerItem"
   295 			{
   296 				"windows"	"229"
   297 				"linux"		"230"
   298 			}
   299 			"Weapon_GetSlot"
   300 			{
   301 				"windows"	"227"
   302 				"linux"		"228"
   303 			}
   304 			"Ignite"
   305 			{
   306 				"windows"	"191"
   307 				"linux"		"192"
   308 			}
   309 			"Extinguish"
   310 			{
   311 				"windows"	"192"
   312 				"linux"		"193"
   313 			}
   314 			"Teleport"
   315 			{
   316 				"windows"	"100"
   317 				"linux"		"101"
   318 			}
   319 			"CommitSuicide"
   320 			{
   321 				"windows"	"360"
   322 				"linux"		"361"
   323 			}
   324 
   325 			/* Offset into CBaseTempEntity constructor.
   326 			 * On Windows Dsytopia is heavily inlined; we use the function 
   327 			 * surrounding "aCouldnTFindTem" in IDA instead.
   328 			 */
   329 			"s_pTempEntities"
   330 			{
   331 				"windows"	"70"
   332 				"linux"		"29"
   333 			}
   334 		}
   335 
   336 		"Signatures"
   337 		{
   338 			/* On Windows Dsytopia is heavily inlined; we use the function 
   339 			 * surrounding "aCouldnTFindTem" in IDA instead.
   340 			 */
   341 			"CBaseTempEntity"
   342 			{
   343 				"library"	"server"
   344 				"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"
   345 			}
   346 
   347 			/* Dystopia always has to be different, doesn't it
   348 			 *
   349 			 * This is very similar to the general signature, except that
   350 			 * it does "mov edx, [eax+2Ch]" before making a call rather than
   351 			 * doing "call dword ptr [eax+2Ch]"
   352 			 */
   353 			"CreateGameRulesObject"
   354 			{
   355 				"library"	"server"
   356 				"windows"	"\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
   357 			}
   358 		}
   359 	}
   360 
   361 	/* Insurgency */
   362 	"!Insurgency"
   363 	{
   364 		"Offsets"
   365 		{
   366 			/* CBasePlayer */
   367 			"Ignite"
   368 			{
   369 				"windows"	"174"
   370 				"linux"		"175"
   371 			}
   372 			"Extinguish"
   373 			{
   374 				"windows"	"175"
   375 				"linux"		"176"
   376 			}
   377 			"Teleport"
   378 			{
   379 				"windows"	"90"
   380 				"linux"		"91"
   381 			}
   382 
   383 			/* Temp Entities */
   384 			"s_pTempEntities"
   385 			{
   386 				"linux"		"28"
   387 			}
   388 		}
   389 	}
   390 	
   391 	/* Pirates, Vikings and Knights II */
   392 	"!Pirates, Vikings and Knights II"
   393 	{
   394 		"Offsets"
   395 		{
   396 			/* CBasePlayer */
   397 			"GiveNamedItem"
   398 			{
   399 				"windows"	"328"
   400 				"linux"		"329"
   401 			}
   402 			"RemovePlayerItem"
   403 			{
   404 				"windows"	"226"
   405 				"linux"		"227"
   406 			}
   407 			"Weapon_GetSlot"
   408 			{
   409 				"windows"	"224"
   410 				"linux"		"225"
   411 			}
   412 			"Ignite"
   413 			{
   414 				"windows"	"188"
   415 				"linux"		"189"
   416 			}
   417 			"Extinguish"
   418 			{
   419 				"windows"	"189"
   420 				"linux"		"190"
   421 			}
   422 			"Teleport"
   423 			{
   424 				"windows"	"98"
   425 				"linux"		"99"
   426 			}
   427 			"CommitSuicide"
   428 			{
   429 				"windows"	"356"
   430 				"linux"		"357"
   431 			}
   432 			
   433 			/* Temp Entities */
   434 			"s_pTempEntities"
   435 			{
   436 				"linux"		"29"
   437 			}
   438 		}
   439 	}
   440 
   441 	/* SourceForts 1.9.2 */
   442 	"!SourceForts v1.9.2"
   443 	{
   444 		"Offsets"
   445 		{
   446 			/* CBasePlayer */
   447 			"GiveNamedItem"
   448 			{
   449 				"windows"	"294"
   450 				"linux"		"295"
   451 			}
   452 			"RemovePlayerItem"
   453 			{
   454 				"windows"	"207"
   455 				"linux"		"208"
   456 			}
   457 			"Weapon_GetSlot"
   458 			{
   459 				"windows"	"205"
   460 				"linux"		"206"
   461 			}
   462 			"Ignite"
   463 			{
   464 				"windows"	"170"
   465 				"linux"		"171"
   466 			}
   467 			"Extinguish"
   468 			{
   469 				"windows"	"171"
   470 				"linux"		"172"
   471 			}
   472 			"Teleport"
   473 			{
   474 				"windows"	"90"
   475 				"linux"		"91"
   476 			}
   477 
   478 			/* Temp Entities */
   479 			"s_pTempEntities"
   480 			{
   481 				"linux"		"29"
   482 			}
   483 			"TE_GetServerClass"
   484 			{
   485 				"windows"	"0"
   486 				"linux"		"0"
   487 			}
   488 		}
   489 	}
   490 }