"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_hGroundEntityEPv"
			"OnTakeDamage"		"_ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo"
			"PreThink"			"_ZN11CBasePlayer8PreThinkEv"
			"PostConstructor"	"_ZN11CBaseEntity15PostConstructorEPKc"
			"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"		"_ZN9CTFPlayer9ShouldGibERK15CTakeDamageInfob"
			"GetRadius"		"_ZN13CTFBaseRocket9GetRadiusEv"
			"DeflectPlayer"		"_ZN13CTFWeaponBase13DeflectPlayerEP9CTFPlayerS1_R6VectorS3_S3_"
			"GetDataDescMap"	"_ZN11CBaseEntity14GetDataDescMapEv"

			// CSSDM
			"IPointsForKill"	"_ZN14CTeamplayRules14IPointsForKillEP11CBasePlayerS1_"
			"RemoveAllItems"	"_ZN11CBasePlayer14RemoveAllItemsEb"
			"GiveAmmo"		"_ZN20CBaseCombatCharacter8GiveAmmoEiib"
			
			// NapalmLagFix
			"RadiusDamage"	"_ZN10CGameRules12RadiusDamageERK15CTakeDamageInfoRK6VectorfiP11CBaseEntity"
			
			// V
			"CTFFlameThrower::FireProjectile"	"_ZN16CTFWeaponBaseGun14FireProjectileEP9CTFPlayer"
			"CTFFlameThrower::FireFlameRocket"	"_ZN16CTFWeaponBaseGun15FireFlameRocketEP9CTFPlayer"
			"CTFPlayer::GetMaxHealth"			"_ZNK11CBaseEntity12GetMaxHealthEv"
			"CBaseEntity::GetBaseEntity"		"_ZN11CBaseEntity13GetBaseEntityEv"
			"RocketTouch"				"_ZN13CTFBaseRocket11RocketTouchEP11CBaseEntity"
			"SRocketTouch"                           "_ZN13CTFBaseRocket11RocketTouchEP11CBaseEntity"
			
			// V V
			"CBaseEntity::GetModelIndex"    "_ZNK11CBaseEntity13GetModelIndexEv"
			"CBaseEntity::SetModelIndex"    "_ZN11CBaseEntity13SetModelIndexEi"
			"CBaseEntity::GetServerClass"   "_ZN11CBaseEntity14GetServerClassEv"
			"CBaseEntity::GetDataDescMap"   "_ZN11CBaseEntity14GetDataDescMapEv"
			"CBaseEntity::ShouldCollide"    "_ZNK11CBaseEntity13ShouldCollideEii"
			"CBaseEntity::ShouldTransmit"   "_ZN11CBaseEntity14ShouldTransmitEPK18CCheckTransmitInfo"
			"CBaseEntity::UpdateTransmitState"      "_ZN11CBaseEntity19UpdateTransmitStateEv"
			"CBaseEntity::SetTransmit"      "_ZN11CBaseEntity11SetTransmitEP18CCheckTransmitInfob"
			"CBaseEntity::Spawn"    "_ZN11CBaseEntity5SpawnEv"
			"CBaseEntity::SetModel" "_ZN11CBaseEntity8SetModelEPKc"
			"CBaseEntity::KeyValue" "_ZN11CBaseEntity8KeyValueEPKcS1_"
			"CBaseEntity::Activate" "_ZN11CBaseEntity8ActivateEv"
			"CBaseEntity::SetParent"        "_ZN11CBaseEntity9SetParentEPS_i"
			"CBaseEntity::AcceptInput"      "_ZN11CBaseEntity11AcceptInputEPKcPS_S2_9variant_ti"
			"CBaseEntity::Think"    "_ZN11CBaseEntity5ThinkEv"
			"CBaseEntity::GetResponseSystem"        "_ZN11CBaseEntity17GetResponseSystemEv"
			"CBaseEntity::OnTakeDamage"     "_ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo"
			"CBaseEntity::Event_Killed"     "_ZN11CBaseEntity12Event_KilledERK15CTakeDamageInfo"
			"CBaseEntity::ChangeTeam"       "_ZN11CBaseEntity10ChangeTeamEi"
			"CBaseEntity::Use"      "_ZN11CBaseEntity3UseEPS_S0_8USE_TYPEf"
			"CBaseEntity::Touch"    "_ZN11CBaseEntity5TouchEPS_"
			"CBaseEntity::Blocked"  "_ZN11CBaseEntity7BlockedEPS_"
			"CBaseEntity::UpdateOnRemove"   "_ZN11CBaseEntity14UpdateOnRemoveEv"
			"CBaseEntity::Teleport" "_ZN11CBaseEntity8TeleportEPK6VectorPK6QAngleS2_"
			"CBaseEntity::CreateVPhysics"   "_ZN11CBaseEntity14CreateVPhysicsEv"
			"CBaseEntity::ForceVPhysicsCollide"     "_ZN11CBaseEntity20ForceVPhysicsCollideEPS_"
			"CBaseEntity::VPhysicsDestroyObject"    "_ZN11CBaseEntity21VPhysicsDestroyObjectEv"
			"CBaseEntity::VPhysicsUpdate"   "_ZN11CBaseEntity14VPhysicsUpdateEP14IPhysicsObject"
			"CBaseEntity::VPhysicsTakeDamage"       "_ZN11CBaseEntity18VPhysicsTakeDamageERK15CTakeDamageInfo"
			"CBaseEntity::VPhysicsCollision"        "_ZN11CBaseEntity17VPhysicsCollisionEiP21gamevcollisionevent_t"
			"CBaseEntity::VPhysicsFriction" "_ZN11CBaseEntity16VPhysicsFrictionEP14IPhysicsObjectfii"
			"CBaseEntity::VPhysicsGetObjectList"    "_ZN11CBaseEntity21VPhysicsGetObjectListEPP14IPhysicsObjecti"
			"CBaseEntity::PhysicsSolidMaskForEntity"        "_ZNK11CBaseEntity25PhysicsSolidMaskForEntityEv"
			"CBaseAnimating::StudioFrameAdvance"    "_ZN14CBaseAnimating18StudioFrameAdvanceEv"
			"CBaseAnimating::GetBoneTransform"      "_ZN14CBaseAnimating16GetBoneTransformEiR11matrix3x4_t"
			"CBaseAnimating::SetupBones"    "_ZN14CBaseAnimating10SetupBonesEP11matrix3x4_ti"
			"CBaseAnimating::DispatchAnimEvents"    "_ZN14CBaseAnimating18DispatchAnimEventsEPS_"
			"CBaseAnimating::HandleAnimEvent"       "_ZN14CBaseAnimating15HandleAnimEventEP11animevent_t"
			"CBaseAnimating::GetAttachment" "_ZN14CBaseAnimating13GetAttachmentEiR11matrix3x4_t"
			"CBasePlayer::PlayScene"        "_ZN9CTFPlayer9PlaySceneEPKcfP11AI_ResponseP16IRecipientFilter"
			"CBasePlayer::GiveAmmo" "_ZN9CTFPlayer8GiveAmmoEiib"
			"CBasePlayer::Weapon_Equip"     "_ZN11CBasePlayer12Weapon_EquipEP17CBaseCombatWeapon"
			"CBasePlayer::Weapon_Switch"    "_ZN9CTFPlayer13Weapon_SwitchEP17CBaseCombatWeaponi"
			"CBasePlayer::RemovePlayerItem" "_ZN11CBasePlayer16RemovePlayerItemEP17CBaseCombatWeapon"
			"CBasePlayer::ForceRespawn"     "_ZN9CTFPlayer12ForceRespawnEv"
			"CBasePlayer::PreThink" "_ZN9CTFPlayer8PreThinkEv"
			"CBasePlayer::PostThink"        "_ZN9CTFPlayer9PostThinkEv"
			"CTFPlayer::EquipWearable"      "_ZN11CBasePlayer13EquipWearableEP13CEconWearable"
			"CTFPlayer::RemoveWearable"     "_ZN11CBasePlayer14RemoveWearableEP13CEconWearable"
			"CBasePlayer::PlayerRunCommand" "_ZN9CTFPlayer16PlayerRunCommandEP8CUserCmdP11IMoveHelper"
			"CBasePlayer::CalculateTeamBalanceScore"        "_ZN9CTFPlayer25CalculateTeamBalanceScoreEv"
			"CTFBaseRocket::GetWeaponID"    "_ZNK13CTFBaseRocket11GetWeaponIDEv"
			"CBaseCombatWeapon::ItemPostFrame"      "_ZN17CBaseCombatWeapon13ItemPostFrameEv"
			"CBaseCombatWeapon::Reload"     "_ZN17CBaseCombatWeapon6ReloadEv"
			"CBaseCombatWeapon::PrimaryAttack"      "_ZN17CBaseCombatWeapon13PrimaryAttackEv"
			"CBaseCombatWeapon::SecondaryAttack"    "_ZN17CBaseCombatWeapon15SecondaryAttackEv"
			"CBaseCombatWeapon::GetViewModel"       "_ZNK17CBaseCombatWeapon12GetViewModelEi"
			"CBaseCombatWeapon::GetWorldModel"      "_ZNK17CBaseCombatWeapon13GetWorldModelEv"
			"CBaseCombatWeapon::GetMaxClip1"        "_ZNK17CBaseCombatWeapon11GetMaxClip1Ev"
			"CBaseCombatWeapon::GetMaxClip2"        "_ZNK17CBaseCombatWeapon11GetMaxClip2Ev"
			"CBaseCombatWeapon::GetDefaultClip1"    "_ZNK17CBaseCombatWeapon15GetDefaultClip1Ev"
			"CBaseCombatWeapon::GetDefaultClip2"    "_ZNK17CBaseCombatWeapon15GetDefaultClip2Ev"
			"CBaseCombatWeapon::GetEncryptionKey"   "_ZN17CBaseCombatWeapon16GetEncryptionKeyEv"
			"CGameRules::CanHaveAmmo"       "_ZN10CGameRules11CanHaveAmmoEP20CBaseCombatCharacterPKc"
			"CGameRules::GetNextLevelName"  "_ZN15CMultiplayRules16GetNextLevelNameEPcib"
			"CGameRules::ChangeLevel"       "_ZN15CMultiplayRules11ChangeLevelEv"
			"CGameRules::GoToIntermission"  "_ZN12CTFGameRules16GoToIntermissionEv"
			"CGameRules::PlayerMayCapturePoint"     "_ZN12CTFGameRules21PlayerMayCapturePointEP11CBasePlayeriPci"
			"CTeamplayRoundBasedRules::SetWinningTeam"      "_ZN24CTeamplayRoundBasedRules14SetWinningTeamEiibbb"
			"CTeamplayRoundBasedRules::SetStalemate"        "_ZN24CTeamplayRoundBasedRules12SetStalemateEibb"
			"CTeamplayRoundBasedRules::SetScrambleTeams"    "_ZN14CTeamplayRules16SetScrambleTeamsEb"
			"CTeamplayRoundBasedRules::CleanUpMap"		"_ZN12CTFGameRules10CleanUpMapEv"
		}
		
		"Options"
		{
			"CreateGameRulesObject"		"allowmultiple,allowmidfunc"
			"TakeOverBot"				"allowmidfunc"
			"OnVersusRoundStart"		"allowmidfunc"
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox_valve"
			"engine"	"css"
			"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"	"css"
			"engine"	"orangebox_valve"
		}

		"Keys"
		{
			"TraceAttack"	"_ZN11CBaseEntity11TraceAttackERK15CTakeDamageInfoRK6VectorP10CGameTraceP15CDmgAccumulator"
		}
	}

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

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

	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead2"
		}
		
		"Keys"
		{
			"GiveNamedItem"		"_ZN9CCSPlayer13GiveNamedItemEPKciP11CBaseEntity"
		}
	}

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

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

	"#default"
	{
		"#supported"
		{
			"game"		"synergy"
		}

		"Keys"
		{
			"GiveNamedItem" "_ZN11CBasePlayer13GiveNamedItemEPKcib"
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"original"
		}
		
		"Keys"
		{
			"CommitSuicide"	"_ZN11CBasePlayer13CommitSuicideEv"
			"DispatchKeyValueVector"	"_ZN11CBaseEntity8KeyValueEPKc6Vector"
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"csgo"
		}
		"Keys"
		{
			"OnTakeDamage_Offset1"					"TakeDmgPatch1"
			"OnTakeDamage_Offset2"					"TakeDmgPatch2"
			"OnTakeDamage_Byte_Win1"				"74"
			"OnTakeDamage_Byte_Win2"				"75"
			"OnTakeDamage_Byte_Lin1"				"0F"
			"OnTakeDamage_Byte_Lin2"				"0F"
			"WantsLagComp_Offset"					"LagCompPatch"
			"WantsLagComp_Byte_Win"					"75"
			"WantsLagComp_Byte_Lin"					"0F"
			"CalcDominationAndRevenge_Offset"		"CalcDomRevPatch"
			"CalcDominationAndRevenge_Byte_Win"		"0F"
			"CalcDominationAndRevenge_Byte_Lin"		"74"
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"css"
		}
		"Keys"
		{
			"OnTakeDamage_Offset1"					"TakeDmgPatch1"
			"OnTakeDamage_Offset2"					"TakeDmgPatch2"
			"OnTakeDamage_Byte_Win1"				"75"
			"OnTakeDamage_Byte_Win2"				"75"
			"OnTakeDamage_Byte_Lin1"				"0F"
			"OnTakeDamage_Byte_Lin2"				"0F"
			"WantsLagComp_Offset"					"LagCompPatch"
			"WantsLagComp_Byte_Win"					"75"
			"WantsLagComp_Byte_Lin"					"0F"
			"CalcDominationAndRevenge_Offset"		"CalcDomRevPatch"
			"CalcDominationAndRevenge_Byte_Win"		"0F"
			"CalcDominationAndRevenge_Byte_Lin"		"74"
		}
	}
}
