/**
 * Do not edit this file.  Any changes will be overwritten by the gamedata
 * updater or by upgrading your SourceMod install.
 *
 * To override data in this file, create a subdirectory named "custom" and
 * place your own gamedata file(s) inside of it.  Such files will be parsed
 * after SM's own.
 *
 * For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod)
 */

"Games"
{
	"cstrike"
	{
		"Offsets"
		{
			//Offset of szClassName in CCSWeaponInfo
			"WeaponName"
			{
				"windows"		"6"
				"linux"			"6"
			}
			"WeaponPrice"
			{
				"windows"		"2308"
				"linux"			"2308"
			}
			//Offset into CheckWinLimit to find CT team score offset from gamerules. For mac this is an offset into CCSGameRules::Think
			"CTTeamScoreOffset"
			{
				"windows"	"25"
				"linux"		"23"
			}
			//Offset into CheckWinLimit to find T team score offset from gamerules. For mac this is an offset into CCSGameRules::Think
			"TTeamScoreOffset"
			{
				"windows"	"56"
				"linux"		"34"
			}
		}
		"Signatures"
		{
			"RoundRespawn"
			{
				"library"		"server"
				"windows"		"\x56\x8B\xF1\x8B\x06\xFF\x90\x2A\x04\x00\x00\x8B\x86\x2A\x0D\x00"
				"linux"			"@_ZN9CCSPlayer12RoundRespawnEv"
			}
			"SwitchTeam"
			{
				"library"		"server"
				"windows"		"\x83\xEC\x10\x56\x57\x8B\x7C\x24\x1C\x57\x8B\xF1\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\x85\xC0\x0F\x84\xEA\x00\x00\x00\x83\xFF\x03\x74\x09\x83\xFF\x02\x0F\x85\xDC\x00\x00\x00\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x3B\xF8\x0F\x84\xDC\x00\x00\x00\x57\x8B\xCE\xC6\x86\x2A\x2A"
				"linux"			"@_ZN9CCSPlayer10SwitchTeamEi"
			}
			"HandleCommand_Buy_Internal"
			{
				"library"		"server"
				"windows"		"\x81\xEC\x88\x01\x00\x00\x53\x56\x8B\xF1\x80\xBE\x8C\x00\x00\x00\x00\x57\x74\x07"
				"linux"			"@_ZN9CCSPlayer17HandleCommand_BuyEPKc"
			}
			"GetWeaponPrice"
			{
				"library"		"server"
				"windows"		"\x8B\x81\x08\x02\x00\x00\xC3"
				"linux"			"@_ZN13CCSWeaponInfo14GetWeaponPriceEv"
			}
			"CSWeaponDrop" //Wildcard first 6 bytes for CS:S DM
			{
				"library"		"server"
				"windows"		"\x2A\x2A\x2A\x2A\x2A\x2A\x53\x55\x56\x57\x8B\xBC\x24\x40\x01\x00\x00\x32\xDB\x85\xFF\x8B\xF1\x0F"
				"linux"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
			}
			"GetTranslatedWeaponAlias"
			{
				"library"		"server"
				"windows"		"\xA1\x58\x12\x4B\x22\x80\x38\x00\x53\x8B\x5C\x24\x08\x56\x57\xBF\x58\x12\x4B\x22\x74\x1F"
				"linux"			"@_Z24GetTranslatedWeaponAliasPKc"
			}
			"GetWeaponInfo"
			{
				"library"		"server"
				"windows"		"\x8B\x4C\x24\x04\x85\xC9\x75\x03\x33\xC0\xC3"
				"linux"			"@_Z13GetWeaponInfo10CSWeaponID"
			}
			"TerminateRound"
			{
				"windows"		"\x83\xEC\x18\x53\x55\x8B\xD9\x8B\x4C\x24\x28\x56\x57\x33\xF6\x8D"
				"linux"			"@_ZN12CCSGameRules14TerminateRoundEfi"
			}
			"AliasToWeaponID"
			{
				"library"	"server"
				"windows"	"\x56\x57\x8B\x7C\x24\x0C\x85\xFF\x74\x2A\x33\xF6\x39\x35\x2A\x2A\x2A\x2A\x74\x2A\xB8\x2A\x2A\x2A\x2A\x8D\xA4\x24\x00\x00\x00\x00\x8B\x00\x57"
				"linux"		"@_Z15AliasToWeaponIDPKc"
			}
			"WeaponIDToAlias"
			{
				"library"	"server"
				"windows"	"\x8B\x44\x24\x04\x83\xF8\x22"
				"linux"		"@_Z15WeaponIDToAliasi"
			}
			
			//For mac we use think since CheckWinLimit dosnt exist on mac.
			"CheckWinLimit"
			{
				"library"	"server"
				"windows"	"\xA1\x2A\x2A\x2A\x2A\x8B\x40\x2C\x85\xC0\x56\x8B\xF1\x74\x2A\x0F\xBF\x8E\x60\x02\x00\x00"
				"linux"		"@_ZN12CCSGameRules13CheckWinLimitEv"
			}			
			"SetModelFromClass"
			{
				"library"	"server"
				"windows"	"\x51\x53\x56\x57\x8B\xF9\xE8\x2A\x2A\x2A\x2A\x83\xF8\x02"
				"linux"		"@_ZN9CCSPlayer17SetModelFromClassEv"
			}
		}
	}
}
