/**
 * 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"
{
	/* Dsytopia */
	"!Dystopia"
	{

		"Offsets"
		{
			/* CBasePlayer */
			"GiveNamedItem"
			{
				"windows"	"331"
				"linux"		"332"
			}
			"RemovePlayerItem"
			{
				"windows"	"229"
				"linux"		"230"
			}
			"Weapon_GetSlot"
			{
				"windows"	"227"
				"linux"		"228"
			}
			"Ignite"
			{
				"windows"	"191"
				"linux"		"192"
			}
			"Extinguish"
			{
				"windows"	"192"
				"linux"		"193"
			}
			"Teleport"
			{
				"windows"	"100"
				"linux"		"101"
			}
			"CommitSuicide"
			{
				"windows"	"360"
				"linux"		"361"
			}
			"GetVelocity"
			{
				"windows"	"128"
				"linux"		"129"
			}
			"EyeAngles"
			{
				"windows"	"120"
				"linux"		"121"
			}
			"AcceptInput"
			{
				"windows"	"35"
				"linux"		"36"
			}
			"SetEntityModel"
			{
				"windows"	"25"
				"linux"		"26"
			}
			"WeaponEquip"
			{
				"windows"	"220"
				"linux"		"221"
			}
			"Activate"
			{
				"windows"	"32"
				"linux"		"33"
			}

			/* Offset into CBaseTempEntity constructor.
			 * On Windows Dsytopia is heavily inlined; we use the function 
			 * surrounding "aCouldnTFindTem" in IDA instead.
			 */
			"s_pTempEntities"
			{
				"windows"	"70"
			}
		}

		"Signatures"
		{
			/* On Windows Dsytopia is heavily inlined; we use the function 
			 * surrounding "aCouldnTFindTem" in IDA instead.
			 */
			"CBaseTempEntity"
			{
				"library"	"server"
				"windows"	"\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A"
			}

			/* Dystopia always has to be different, doesn't it
			 *
			 * This is very similar to the general signature, except that
			 * it does "mov edx, [eax+2Ch]" before making a call rather than
			 * doing "call dword ptr [eax+2Ch]"
			 */
			"CreateGameRulesObject"
			{
				"library"	"server"
				"windows"	"\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
			}
		}
	}
}