/**
 * 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"
{
	/* General Temp Entities */
	"#default"
	{
		"Offsets"
		{
			/* Offset into CBaseTempEntity constructor */
			"s_pTempEntities"
			{
				"windows"	"16"
				"linux"		"20"
			}
			"GetTEName"
			{
				"windows"	"4"
				"linux"		"4"
			}
			"GetTENext"
			{
				"windows"	"8"
				"linux"		"8"
			}
			"TE_GetServerClass"
			{
				"windows"	"0"
				"linux"		"0"
			}
		}

		"Signatures"
		{
			"CBaseTempEntity"
			{
				"library"	"server"
				"windows"	"\x55\x89\xE5\x89\xC8\x8B\x4D\x08\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04"
				"linux"		"\x55\x89\xE5\x56\xE8\x2A\x2A\x2A\x2A\x58\x81\xC0\xCF\x27\x58\x00"
			}
			"s_pTempEntities"
			{
				"library"	"server"
				"linux"		"@_ZN15CBaseTempEntity15s_pTempEntitiesE"
			}
		}
	}
	
	/* CGlobalEntityList */
	"#default"
	{
		"Signatures"
		{
			/* Functions in CGlobalEntityList */
			/* Search any functions with the "CAI_StandoffBehavior::PrescheduleThink" string, FindEntityByClassname is called with "ai_battle_line" string as a parameter */
			"FindEntityByClassname"
			{
				"library"	"server"
				"windows"	"\x55\x89\xE5\x53\x57\x56\x83\xEC\x08\x8B\x45\x2A\x85\xC0\x0F\x85"
				"linux"		"@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
			}
		}
	}
	
	/* CBaseEntityOutput::FireOutput */
	"#default"
	{
		"Signatures"
		{
			"FireOutput"
			{
				"library"	"server"
				"windows"	"\x55\x89\xE5\x53\x57\x56\x81\xEC\x10\x01\x00\x00\x8B\x71"
				"linux"		"@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
			}
			"LookupAttachment"
			{
				/* CBaseAnimating::LookupAttachment */
				/* Called in a function that has the "zipline" and "cable/cable.vmt" strings.
				 * Inside this function, search for a function call that passes the "zipline" string as the only parameter.
				 * That function is CBaseAnimating::LookupAttachment.
				 */
				"library"	"server"
				"windows"	"\x31\xC0\x80\xB9\x2A\x2A\x2A\x2A\x00\x0F\x85"
				"linux"		"@_ZN14CBaseAnimating16LookupAttachmentEPKc"
			}
		}
	}
	
	"synergy"
	{
		"Offsets"
		{
			"SetOwnerEntity"
			{
				"windows"	"17"
				"linux"		"18"
			}
			/* CBasePlayer */
			"GiveNamedItem"
			{
				"windows"	"408"
				"linux"		"409"
			}
			"RemovePlayerItem"
			{
				"windows"	"271"
				"linux"		"272"
			}
			"Weapon_GetSlot"
			{
				"windows"	"269"
				"linux"		"270"
			}
			"Ignite"
			{
				"windows"	"210"
				"linux"		"211"
			}
			"Extinguish"
			{
				"windows"	"214"
				"linux"		"215"
			}
			"Teleport"
			{
				"windows"	"109"
				"linux"		"110"
			}
			"CommitSuicide"
			{
				"windows"	"446"
				"linux"		"447"
			}
			"GetVelocity"
			{
				"windows"	"141"
				"linux"		"142"
			}
			"EyeAngles"
			{
				"windows"	"132"
				"linux"		"133"
			}
			"AcceptInput"
			{
				"windows"	"36"
				"linux"		"37"
			}
			"SetEntityModel"
			{
				"windows"	"24"
				"linux"		"25"
			}
			"WeaponEquip"
			{
				"windows"	"262"
				"linux"		"263"
			}
			"Activate"
			{
				"windows"	"33"
				"linux"		"34"
			}
			"RemoveAllItems"
			{
				"windows"	"349"
				"linux"		"350"
			}
			"PlayerRunCmd"
			{
				"windows"	"426"
				"linux"		"427"
			}
			"GiveAmmo"
			{
				"windows"	"253"
				"linux"		"254"
			}
			"GetAttachment"
			{
				"windows"	"206"
				"linux"		"207"
			}
		}
		
		"Keys"
		{
			"GameRulesProxy"		"CNHL2MPGameRulesProxy"
			"GameRulesDataTable"	"hl2mp_gamerules_data"
		}
	}
}
