/**
 * 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"
{
	"csgo"
	{
		"Offsets"
		{
			//Offset of szClassName in CCSWeaponInfo 
			"WeaponName"
			{
				"windows"		"6"
				"linux"			"6"
				"mac"			"6"
			}
			//Econ update doesnt check this now but for what we use it hopefully its fine.
			"WeaponPrice"
			{
				"windows"		"2528"
				"linux"			"2528"
				"mac"			"2528"
			}
			//Offset into CheckRestartRound
			"CTTeamScoreOffset"
			{
				"windows"	"98"
				"linux"		"124"
				"mac"		"150"
			}
			//Offset into CheckRestartRound
			"TTeamScoreOffset"
			{
				"windows"	"122"
				"linux"		"159"
				"mac"		"185"
			}
			"ClanTagOffset"
			{
				"windows"	"12"
				"linux"		"41"
				"mac"		"22"
			}
			//Offset into HandleCommand_Buy_Internal
			"CCSPlayerInventoryOffset"
			{
				"windows"	"285"
				"linux"		"87"
				"mac"		"109"
			}
			"GetItemInLoadout"
			{
				"windows"	"8"
				"linux"		"9"
				"mac"		"9"
			}
		}
		"Signatures"
		{
			"RoundRespawn"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x08\x56\x8B\xF1\x8B\x0D\x2A\x2A\x2A\x2A\x57\x8B\x01\xFF\x50\x2A\x83"
				"linux"		"@_ZN9CCSPlayer12RoundRespawnEv"
				"mac"		"@_ZN9CCSPlayer12RoundRespawnEv"
			}
			"SwitchTeam"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x0C\x56\x8B\x75\x2A\x57\x8B\xF9\x85\xF6\x0F\x88\x2A\x2A\x2A\x2A\x3B\x35\x2A\x2A\x2A\x2A\x0F\x8D\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x83"
				"linux"		"@_ZN9CCSPlayer10SwitchTeamEi"
				"mac"		"@_ZN9CCSPlayer10SwitchTeamEi"
			}
			"HandleCommand_Buy_Internal"//Wildcard first 6 bytes for getting address for weapon price.
			{
				"library"		"server"
				"windows"		"\x2A\x2A\x2A\x2A\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x83\x3D\x2A\x2A\x2A\x2A\x00\x53\x56\x57\x8B\xF9"
				"linux"			"@_ZN9CCSPlayer26HandleCommand_Buy_InternalEPKcib"
				"mac"			"@_ZN9CCSPlayer26HandleCommand_Buy_InternalEPKcib"
			}
			"CSWeaponDrop"//Wildcard first 6 bytes for CS:S DM
			{
				"library"		"server"
				"windows"		"\x2A\x2A\x2A\x2A\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x56\x8B\x75\x2A\x57\x6A\x00\x68"
				"linux"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
				"mac"			"@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
			}
			"TerminateRound"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\x2A\x2A\x83\x2A\x2A\x53\x56\x8B\xF1\xF3\x0F\x2A\x2A\x2A\x2A\x57\x33\xFF\x89\x2A\x2A\x2A\xC7\x2A\x2A\x2A\x00\x00\x00\x00"
				"linux"			"@_ZN12CCSGameRules14TerminateRoundEfi"
				"mac"			"@_ZN12CCSGameRules14TerminateRoundEfi"
			}
			"GetTranslatedWeaponAlias"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\xEC\x08\x53\x33\xC0\x89\x4D\xF8\x56\x57\x89\x45\xFC\x33\xDB\x8B\xB3\x2A\x2A\x2A\x2A\x3B\xF1\x74\x2A\x8B\xF9\x90\x0F\xB6\x06\x0F\xB6\x17\x3B\xC2\x75\x2A\x85\xC0\x75\x2A\x8B\x45\xFC\x5F\x5E\x5B\x8B\x04\xC5\x2A\x2A\x2A\x2A\x8B\xE5\x5D\xC3\x85\xD2\x74\x2A\x8D\x48\xBF\x83\xF9\x19\x77\x2A\x83\xC0\x20\x8D\x4A\xBF\x83\xF9\x19\x77\x2A\x83\xC2\x20\x3B\xC2\x75\x2A\x0F\xB6\x46\x01\x83\xC6\x02\x0F\xB6\x57\x01\x83\xC7\x02\x3B\xC2\x75\x2A\x85\xC0\x75\x2A\x8B\x45\xFC\x5F\x5E\x5B\x8B\x04\xC5\x2A\x2A\x2A\x2A\x8B\xE5\x5D\xC3\x85\xD2\x74\x2A\x8D\x48\xBF\x83\xF9\x19\x77\x2A\x83\xC0\x20\x8D\x4A\xBF\x83\xF9\x19\x77\x2A\x83\xC2\x20\x3B\xC2\x0F\x84\x2A\x2A\x2A\x2A\x2B\xC2\x85\xC0\x74\x2A\xFF\x45\xFC\x83\xC3\x08\x8B\x4D\xF8\x81\xFB\xC0\x00\x00\x00\x0F\x82\x2A\x2A\x2A\x2A\x5F\x5E\x8B\xC1\x5B\x8B\xE5\x5D\xC3"
				"linux"			"@_Z24GetTranslatedWeaponAliasPKc"
				"mac"			"@_Z24GetTranslatedWeaponAliasPKc"
			}
			"GetWeaponInfo"
			{
				"library"		"server"
				"windows"		"\x55\x8B\xEC\x83\xEC\x08\x33\xC0\xEB\x2A\x8D\x9B\x00\x00\x00\x00\x39\x0C\xC5\x2A\x2A\x2A\x2A\x74\x2A\x40\x83\xF8\x38\x72\x2A\x33\xC0"
				"linux"			"@_Z13GetWeaponInfo10CSWeaponID"
				"mac"			"@_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\xE4\xF8\x83\xEC\x64\x53\x56\x57\x8B\xF9\x8B\x0D\x2A\x2A\x2A\x2A\x81\xF9"
				"linux"		"@_ZN12CCSGameRules17CheckRestartRoundEv"
				"mac"		"@_ZN12CCSGameRules17CheckRestartRoundEv"
			}
			"AliasToWeaponID"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x08\x57\x8B\xF9\x33\xC0"
				"linux"		"@_Z15AliasToWeaponIDPKc"
				"mac"		"@_Z15AliasToWeaponIDPKc"
			}
			"WeaponIDToAlias"
			{
				"library"	"server"
				"windows"	"\x33\xC0\x39\x0C\xC5\x2A\x2A\x2A\x2A\x74\x2A\x40\x83\xF8\x38\x72\x2A\x33\xC0\xC3\x6A\x5F"
				"linux"		"@_Z15WeaponIDToAliasi"
				"mac"		"@_Z15WeaponIDToAliasi"
			}
			"SetClanTag"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x8B\x55\x08\x85\xD2\x74\x2A\x8D\x81\x1C\x20\x00\x00"
				"linux"		"@_ZN9CCSPlayer10SetClanTagEPKc"
				"mac"		"@_ZN9CCSPlayer10SetClanTagEPKc"
			}
			//Wild card first 6 bytes since we call it and detour it.
			"GetAttributeInt"
			{
				"library"	"server"
				"windows"	"\x2A\x2A\x2A\x2A\x2A\x2A\x83\xEC\x1C\x53\x8B\x5D\x0C\xC7\x44\x24\x04\x00\x00\x00\x00\x56\x8B\xF1\x89\x74\x24\x0C\x57\x8B\x7D\x08\x85\xDB\x74\x2A\x80\x7B\x44\x00\x74\x2A\x57\xE8\x2A\x2A\x2A\x2A\x8B\xC8\xE8\x2A\x2A\x2A\x2A\x89\x44\x24\x14\xE8\x2A\x2A\x2A\x2A\x8B\x70\x08\xE8\x2A\x2A\x2A\x2A\x3B\x70\x08\x74\x2A\x57\xE8\x2A\x2A\x2A\x2A\x8B\xC8\xE8\x2A\x2A\x2A\x2A\xEB\x2A\x8B\x44\x24\x14\x85\xC0\x74\x2A\x89\x44\x24\x1C\x8D\x4C\x24\x18\x8D\x44\x24\x0C\xC7\x44\x24\x18\x2A\x2A\x2A\x2A\x89\x44\x24\x20\x8B\x03\x51\x8B\xCB\xC6\x44\x24\x28\x00\xFF\x50\x2A\x80\x7C\x24\x24\x00\x74\x2A\x8B\x44\x24\x0C"
				"linux"		"@_ZNK16FileWeaponInfo_t15GetAttributeIntEPKcPK13CEconItemView"
				"mac"		"@_ZNK16FileWeaponInfo_t15GetAttributeIntEPKcPK13CEconItemView"
			}
			"SetModelFromClass"
			{
				"library"	"server"
				"windows"	"\x55\x8B\xEC\x83\xEC\x08\x56\x57\x8B\xF9\xC7\x45\xFC\x2A\x2A\x2A\x2A\x8B\x87"
				"linux"		"@_ZN9CCSPlayer17SetModelFromClassEv"
				"mac"		"@_ZN9CCSPlayer17SetModelFromClassEv"
			}
		}
	}
	
	"csgo"
	{
		"Keys"
		{
			"AssistsBase"		"m_iFrags"
		}
		
		"Offsets"
		{
			"Assists"
			{
				"windows"	"4"
				"linux"		"4"
				"mac"		"4"
			}
		}
	}
	
	"csgo"
	{
		"Keys"
		{
			"CScoreBase"		"m_bIsHoldingLookAtWeapon"
		}
		
		"Offsets"
		{
			"CScore"
			{
				"windows"	"55"
				"linux"		"55"
				"mac"		"55"
			}
		}
	}
	
	"csgo"
	{
		"Keys"
		{
			"MVPsBase"		"m_bIsLookingAtWeapon"
		}
		
		"Offsets"
		{
			"MVPs"
			{
				"windows"	"16"
				"linux"		"16"
				"mac"		"16"
			}
		}
	}
}
