/**
 * 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"
				"mac"			"6"
			}
			"WeaponPrice"
			{
				"windows"		"2308"
				"linux"			"2308"
				"mac"			"2308"
			}
			//Offset into SetClanTag to find clan tag's offset from player
			"ClanTagOffset"
			{
				"windows"	"24"
				"linux"		"29"
				"mac"		"18"
			}
			//Offset into CheckWinLimit to find CT team score offset from gamerules. For mac this is an offset into CCSGameRules::Think
			"CTTeamScoreOffset"
			{
				"windows"	"18"
				"linux"		"27"
				"mac"		"205"
			}
			//Offset into CheckWinLimit to find T team score offset from gamerules. For mac this is an offset into CCSGameRules::Think
			"TTeamScoreOffset"
			{
				"windows"	"56"
				"linux"		"38"
				"mac"		"216"
			}
		}
		"Signatures"
		{
			"RoundRespawn"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x51\x89\x2A\x2A\x8B\x2A\x2A\x8B\x10\x8B"
				"linux"		"@_ZN9CCSPlayer12RoundRespawnEv"
				"mac"		"@_ZN9CCSPlayer12RoundRespawnEv"
			}
			"SwitchTeam"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x2A\x89\x4D\x2A\x8B\x45\x2A\x50\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\x85\xC0\x74"
				"linux"		"@_ZN9CCSPlayer10SwitchTeamEi"
				"mac"		"@_ZN9CCSPlayer10SwitchTeamEi"
			}
			"HandleCommand_Buy_Internal"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\xEC\x2A\x89\x4D\x2A\x6A\x00\x8B\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x0F\xB6\xC0\x85\xC0\x74"
				"linux"			"@_ZN9CCSPlayer26HandleCommand_Buy_InternalEPKc"
				"mac"			"@_ZN9CCSPlayer26HandleCommand_Buy_InternalEPKc"
			}
			"GetWeaponPrice"
			{
				"library"		"server"
				"windows"		"\x8B\x81\x04\x09\x00\x00\xC3"
				"linux"			"@_ZNK13CCSWeaponInfo14GetWeaponPriceEv"
				"mac"			"@_ZNK13CCSWeaponInfo14GetWeaponPriceEv"
			}
			"CSWeaponDrop"//Wildcard first 6 bytes for CS:S DM
			{
				"library"		"server"
				"windows"		"\x2A\x2A\x2A\x2A\x2A\x2A\x01\x00\x00\x89\x4D\xFC\xC6\x45\x2A\x2A\x8B\x4D\x2A\xE8\x2A\x2A\x2A\x2A\x0F\xB6\xC0"
				"linux"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
				"mac"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
			}
			"TerminateRound"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\xEC\x2A\x8B\x45\x0C\x53\x56\x57\x33\xF6"
				"linux"			"@_ZN12CCSGameRules14TerminateRoundEfi"
				"mac"			"@_ZN12CCSGameRules14TerminateRoundEfi"
			}
			"GetTranslatedWeaponAlias"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x56\x57\x8B\x7D\x2A\x33\xF6\x8D\x9B\x00\x00\x00\x00\x57\xFF\x34\xF5\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x08\x85\xC0\x74\x2A\x46\x83\xFE\x1A\x72\x2A\x8B\xC7\x5F\x5E\x5D\xC3"
				"linux"			"@_Z24GetTranslatedWeaponAliasPKc"
				"mac"			"@_Z24GetTranslatedWeaponAliasPKc"
			}
			"GetWeaponInfo"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x8B\x4D\x08\x85\xC9\x75\x2A\x33\xC0\x5D\xC3\x83\x2A\x2A\x7C\x2A\x69\xC9"
				"linux"			"@_Z13GetWeaponInfo10CSWeaponID"
				"mac"			"@_Z13GetWeaponInfo10CSWeaponID"
			}
			"SetClanTag"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x51\x89\x2A\x2A\x83\x2A\x2A\x2A\x74\x2A\x6A\x2A\x8B\x2A\x2A\x50"
				"linux"		"@_ZN9CCSPlayer10SetClanTagEPKc"
				"mac"		"@_ZN9CCSPlayer10SetClanTagEPKc"
			}
			"AliasToWeaponID"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x56\x57\x8B\x7D\x08\x85\xFF\x74\x2A\x33\xF6\x8B\xFF"
				"linux"		"@_Z15AliasToWeaponIDPKc"
				"mac"		"@_Z15AliasToWeaponIDPKc"
			}
			"WeaponIDToAlias"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x8B\x4D\x08\x33\xC0\xEB\x2A\x8D\x9B\x00\x00\x00\x00\x39\x0C\xC5\x2A\x2A\x2A\x2A\x74\x2A\x40\x83\xF8\x26\x72\x2A\x33\xC0\x5D"
				"linux"		"@_Z15WeaponIDToAliasi"
				"mac"		"@_Z15WeaponIDToAliasi"
			}
			
			//For mac we use think since CheckWinLimit dosnt exist on mac.
			"CheckWinLimit"
			{
				"library"	"server"
				"windows"	"\xA1\x2A\x2A\x2A\x2A\x56\x8B\xF1\x8B\x48\x30\x85\xC9\x74\x2A\x0F"
				"linux"		"@_ZN12CCSGameRules13CheckWinLimitEv"
				"mac"		"@_ZN12CCSGameRules5ThinkEv"
			}
			"SetModelFromClass"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x34\x89\x4D\xFC\x8B\x4D\xFC\xE8\x2A\x2A\x2A\x2A\x83\xF8\x02"
				"linux"		"@_ZN9CCSPlayer17SetModelFromClassEv"
				"mac"		"@_ZN9CCSPlayer17SetModelFromClassEv"
			}
		}
	}
	
	"cstrike"
	{
		"Keys"
		{
			"MVPsBase"		"m_bPlayerDominatingMe"
		}
		
		"Offsets"
		{
			"MVPs"
			{
				/* factors in 66 (size of m_bPlayerDominatingMe array (bool size * (65 maxplayers + 1)))
				... plus another 3 because alignment(?) lolidk */
				"windows"	"69"
				"linux"		"69"
				"mac"		"69"
			}
		}
	}
}
