"Games"
{
	/*
	 * "Keys" are used to map gamedata offset names to linux symbol.
	 * "Options" are used to mark validation options for windows signatures.
	 *     Current valid options are:
	 *         allowmultiple - don't warn if multiple matches are found
	 *         allowmidfunc  - don't warn if signature does not match the
	 *                         start of a function.
	 *     Multiple options can be specified, separating them with a comma.
	 *         ie. "allowmultiple,allowmidfunc"
	 */
	 
	"#default"
	{
		"Keys"
		{
			// SDKTools
			"GiveNamedItem"		"_ZN11CBasePlayer13GiveNamedItemEPKci"
			"RemovePlayerItem"		"_ZN11CBasePlayer16RemovePlayerItemEP17CBaseCombatWeapon"
			"Weapon_GetSlot"		"_ZNK20CBaseCombatCharacter14Weapon_GetSlotEi"
			"Ignite"			"_ZN14CBaseAnimating6IgniteEfbfb"
			"Extinguish" 			"_ZN14CBaseAnimating10ExtinguishEv"
			"Teleport"			"_ZN11CBaseEntity8TeleportEPK6VectorPK6QAngleS2_"
			"CommitSuicide" 	"_ZN11CBasePlayer13CommitSuicideEbb"
			"GetVelocity"				"_ZN11CBaseEntity11GetVelocityEP6VectorS1_"
			"EyeAngles"					"_ZN11CBasePlayer9EyeAnglesEv"
			"DispatchKeyValue"			"_ZN11CBaseEntity8KeyValueEPKcS1_"
			"DispatchKeyValueFloat"		"_ZN11CBaseEntity8KeyValueEPKcf"
			"DispatchKeyValueVector"	"_ZN11CBaseEntity8KeyValueEPKcRK6Vector"
			"SetEntityModel"			"_ZN11CBaseEntity8SetModelEPKc"
			"AcceptInput"				"_ZN11CBaseEntity11AcceptInputEPKcPS_S2_9variant_ti"
			"WeaponEquip"		"_ZN11CBasePlayer12Weapon_EquipEP17CBaseCombatWeapon"
			"Activate"			"_ZN11CBaseEntity8ActivateEv"
			"PlayerRunCmd"		"_ZN11CBasePlayer16PlayerRunCommandEP8CUserCmdP11IMoveHelper"
			
			// SDKHooks
			"EndTouch"			"_ZN11CBaseEntity8EndTouchEPS_"
			"FireBullets"		"_ZN11CBaseEntity11FireBulletsERK17FireBulletsInfo_t"
			"GroundEntChanged"	"_ZN11CBaseEntity35NetworkStateChanged_m_hGroundEntityEv"
			"OnTakeDamage"		"_ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo"
			"PreThink"			"_ZN11CBasePlayer8PreThinkEv"
			"PostThink"			"_ZN11CBasePlayer9PostThinkEv"
			"Reload"			"_ZN17CBaseCombatWeapon6ReloadEv"
			"SetTransmit"		"_ZN11CBaseEntity11SetTransmitEP18CCheckTransmitInfob"
			"ShouldCollide"		"_ZNK11CBaseEntity13ShouldCollideEii"
			"Spawn"				"_ZN11CBaseEntity5SpawnEv"
			"StartTouch"		"_ZN11CBaseEntity10StartTouchEPS_"
			"Think"				"_ZN11CBaseEntity5ThinkEv"
			"Touch"				"_ZN11CBaseEntity5TouchEPS_"
			"TraceAttack"		"_ZN11CBaseEntity11TraceAttackERK15CTakeDamageInfoRK6VectorP10CGameTrace"
			"UpdateOnRemove"	"_ZN11CBaseEntity14UpdateOnRemoveEv"
			"Use"				"_ZN11CBaseEntity3UseEPS_S0_8USE_TYPEf"
			"VPhysicsUpdate"	"_ZN11CBaseEntity14VPhysicsUpdateEP14IPhysicsObject"
			"Weapon_CanSwitchTo"	"_ZN20CBaseCombatCharacter18Weapon_CanSwitchToEP17CBaseCombatWeapon"
			"Weapon_CanUse"		"_ZN20CBaseCombatCharacter13Weapon_CanUseEP17CBaseCombatWeapon"
			"Weapon_Drop"		"_ZN20CBaseCombatCharacter11Weapon_DropEP17CBaseCombatWeaponPK6VectorS4_"
			"Weapon_Equip"		"_ZN11CBasePlayer12Weapon_EquipEP17CBaseCombatWeapon"
			"Weapon_Switch"		"_ZN20CBaseCombatCharacter13Weapon_SwitchEP17CBaseCombatWeaponi"
			
			// CEntity extras
			"FVisible"			"_ZN20CBaseCombatCharacter8FVisibleEP11CBaseEntityiPS1_"
			"VPhysicsTakeDamage"	"_ZN11CBaseEntity18VPhysicsTakeDamageERK15CTakeDamageInfo"
			"VPhysicsGetObjectList"	"_ZN11CBaseEntity21VPhysicsGetObjectListEPP14IPhysicsObjecti"
			"GetClientEyeAngles"	"_ZN11CBaseEntity9EyeAnglesEv"
			"WeaponSwitch"		"_ZN20CBaseCombatCharacter13Weapon_SwitchEP17CBaseCombatWeaponi"
			"CanSpeakVoiceCommand"	"_ZN22CBaseMultiplayerPlayer20CanSpeakVoiceCommandEv"
			"IsReadyToSpawn"		"_ZN11CBasePlayer14IsReadyToSpawnEv"
			"OnTakeDamage_Alive"	"_ZN20CBaseCombatCharacter18OnTakeDamage_AliveERK15CTakeDamageInfo"
			"Jump"				"_ZN11CBasePlayer4JumpEv"
			"ProcessUserCmds"		"_ZN11CBasePlayer15ProcessUsercmdsEP8CUserCmdiiib"
			"GetSoundEmissionOrigin"	"_ZNK11CBaseEntity22GetSoundEmissionOriginEv"
			"GetServerClass"	"_ZN11CBaseEntity14GetServerClassEv"
			"StudioFrameAdvance"	"_ZN14CBaseAnimating18StudioFrameAdvanceEv"
			"ShouldGib"		"_ZN20CBaseCombatCharacter9ShouldGibERK15CTakeDamageInfo"
			"GetRadius"		"_ZN13CTFBaseRocket9GetRadiusEv"
			"DeflectPlayer"		"_ZN13CTFWeaponBase13DeflectPlayerEP9CTFPlayerS1_R6VectorS3_S3_"
		}
		
		"Options"
		{
			"CreateGameRulesObject"		"allowmultiple,allowmidfunc"
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox_valve"
			"engine"	"left4dead2"
			"engine"	"alienswarm"
			"engine"	"csgo"
		}
		
		"Keys"
		{
			"GetMaxHealth"	"_ZNK11CBaseEntity12GetMaxHealthEv"
		}
	}

	"#default"
	{
		"#supported"
		{
			"game"	"tf"
		}

		"Keys"
		{
			"ForceRespawn"			"_ZN9CTFPlayer12ForceRespawnEv"
			"GiveNamedItemTF"		"_ZN9CTFPlayer13GiveNamedItemEPKciP13CEconItemViewb"
			"EquipWearable"			"_ZN11CBasePlayer13EquipWearableEP13CEconWearable"
			"RemoveWearable"		"_ZN11CBasePlayer14RemoveWearableEP13CEconWearable"
			"GrenadeDetonate"		"_ZN12CBaseGrenade8DetonateEv"
		}
	}

	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead"
			"game"	"left4dead2"
		}

		"Keys"
		{
			"GiveNamedItem"		"_ZN9CCSPlayer13GiveNamedItemEPKci"
		}
	}

	"#default"
	{
		"#supported"
		{
			"game"	"nucleardawn"
		}
		"Keys"
		{
			"GiveNamedItem"		"_ZN9CNDPlayer13GiveNamedItemEPKcib"
		}
	}

	"#default"
	{
		"#supported"
		{
			"engine"	"csgo"
		}
		
		"Keys"
		{
			"Teleport"	"_ZN11CBaseEntity8TeleportEPK6VectorPK6QAngleS2_b"
			"GiveNamedItem"	"_ZN11CBasePlayer13GiveNamedItemEPKcib"
		}
	}
}
