/**
 * 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"
{
	//No mac binary yet so no mac gamedata
	"csgo"
	{
		"Offsets"
		{
			//Offset of szClassName in CCSWeaponInfo 
			"WeaponName"
			{
				"windows"		"6"
				"linux"			"6"
			}
			"WeaponPrice"
			{
				"windows"		"2700"
				"linux"			"2700"
			}
			//Offset into CheckRestartRound
			//Only Windows/Linux for now.
			"CTTeamScoreOffset"
			{
				"windows"	"97"
				"linux"		"124"
			}
			//Offset into CheckRestartRound
			//Only Windows/Linux for now.
			"TTeamScoreOffset"
			{
				"windows"	"119"
				"linux"		"159"
			}
			//Offset into IncrementNumMVPs to find MVP count offset from player
			//Only Windows/Linux for now.
			"MVPCountOffset"
			{
				"windows"	"46"
				"linux"		"47"
			}
		}
		"Signatures"
		{
			"RoundRespawn"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x2A\x56\x8B\xF1\x8B\x0D\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x84\xC0\x75"
				"linux"		"@_ZN9CCSPlayer12RoundRespawnEv"
			}
			"SwitchTeam"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x2A\x56\x57\x8B\x7D\x2A\x57\x8B\xF1\xE8\x2A\x2A\x2A\x2A\x83\xC4"
				"linux"		"@_ZN9CCSPlayer10SwitchTeamEi"
			}
			"HandleCommand_Buy_Internal"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x81\xEC\x2A\x2A\x00\x00\x53\x56\x8B\xF1\x80\xBE\x2A\x2A\x00\x00\x00"
				"linux"			"@_ZN9CCSPlayer26HandleCommand_Buy_InternalEPKc"
			}
			"CSWeaponDrop"//Wildcard first 6 bytes for CS:S DM
			{
				"library"		"server"
				"windows"		"\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x53\x56\x8B\x2A\x2A\x32\xDB\x57\x8B\xF9\x85\xF6\x0F\x84"
				"linux"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
			}
			"TerminateRound"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\xEC\x2A\x53\x8B\x2A\x2A\x56\x57\x33\xFF"
				"linux"			"@_ZN12CCSGameRules14TerminateRoundEfi"
			}
			"GetTranslatedWeaponAlias"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x56\x57\x8B\x2A\x2A\x33\xF6\x8D\x9B\x2A\x2A\x2A\x2A\x8B\x04\xF5\x2A\x2A\x2A\x2A\x57\x50\xE8\x2A\x2A\x2A\x2A\x83\xC4\x2A\x85\xC0\x74\x2A\x46\x83\xFE\x2A\x72\x2A\x8B\xC7\x5F\x5E\x5D\xC3"
				"linux"			"@_Z24GetTranslatedWeaponAliasPKc"
			}
			"GetWeaponInfo"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x8B\x4D\x2A\x33\xC0\x85\xC9\x74"
				"linux"			"@_Z13GetWeaponInfo10CSWeaponID"
			}
			//In CS:GO this is actually CCSGameRules::CheckRestartRound(void) but to keep same gamedata as cs:s.
			"CheckWinLimit"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x2A\x56\x57\x8B\xF9\x8B\x0D\x2A\x2A\x2A\x2A\x81\xF9\x2A\x2A\x2A\x2A\x75\x2A\x8B"
				"linux"		"@_ZN12CCSGameRules17CheckRestartRoundEv"
			}
			"IncrementNumMVPs"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x8B\x50\x2A\x57\x8B\xF9\xB9\x2A\x2A\x2A\x2A\xFF\xD2\x85\xC0\x74\x2A\x68"
				"linux"		"@_ZN9CCSPlayer16IncrementNumMVPsE13CSMvpReason_t"
			}
			"AliasToWeaponID"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x56\x57\x8B\x2A\x2A\x85\xFF\x74\x2A\x33\xF6\x8B\xFF"
				"linux"		"@_Z15AliasToWeaponIDPKc"
			}
		}
	}
}
