reapi_gamedll_const.inc

#if defined _reapi_gamedll_const_included
	#endinput
#endif

#define _reapi_gamedll_const_included

/**
* Returns true if round has ended by expired time
*
* @note Use this for hookchain RG_RoundEnd with the parameter ScenarioEventEndRound:event
*/
#define IsRoundExpireEvent(%0) (((1 << _:(%0) + _:ScenarioEventEndRound:0) & ((1 << _:ROUND_TARGET_SAVED) | (1 << _:ROUND_HOSTAGE_NOT_RESCUED) | (1 << _:ROUND_TERRORISTS_NOT_ESCAPED) | (1 << _:ROUND_VIP_NOT_ESCAPED) | (1 << _:ROUND_GAME_OVER))) != 0)

/**
* suppress warning: 200 on amxmodx 1.8.2
*/
#if AMXX_VERSION_NUM < 183
	#define RG_CBaseAnimating_ResetSequenceInfo RG_CBaseAnimating_ResetSequence
	#define RG_CBasePlayer_Observer_IsValidTarget RG_CBasePlayer_Observer_IsValid
	#define RG_CSGameRules_FShouldSwitchWeapon RG_CSGameRules_ShouldSwitchWpn
	#define RG_CSGameRules_GetNextBestWeapon RG_CSGameRules_GetNextBestWpn
	#define RG_CSGameRules_FlPlayerFallDamage RG_CSGameRules_PlayerFallDmg
	#define RG_CSGameRules_FPlayerCanTakeDamage RG_CSGameRules_PlayerCanTakeDmg
	#define RG_CSGameRules_FPlayerCanRespawn RG_CSGameRules_PlayerCanRespawn
	#define RG_CSGameRules_GetPlayerSpawnSpot RG_CSGameRules_PlayerSpawnSpot
	#define RG_CSGameRules_ClientUserInfoChanged RG_CSGameRules_UserInfoChanged
	#define RG_CSGameRules_CanHavePlayerItem RG_CSGameRules_CanPlayerItem
	#define RG_CSGameRules_DeadPlayerWeapons RG_CSGameRules_DeadPlayerWpn
	#define RG_CSGameRules_CheckMapConditions RG_CSGameRules_CheckMapCond
	#define RG_CSGameRules_CheckWinConditions RG_CSGameRules_CheckWinCond
	#define RG_CSGameRules_CanPlayerHearPlayer RG_CSGameRules_CanPlrHearPlr
	#define RG_CBasePlayer_SetClientUserInfoModel RG_CBasePlayer_SetUserInfoModel
	#define RG_CBasePlayer_SetClientUserInfoName RG_CBasePlayer_SetUserInfoName
	#define m_Shield_hEntToIgnoreTouchesFrom m_Shield_EntToIgnoreTouchesFrom
	#define RG_CBasePlayer_RemoveSpawnProtection RG_CBasePlayer_RemoveProtection
	#define RG_CBasePlayer_SetSpawnProtection RG_CBasePlayer_SetProtection
	#define RG_CBasePlayerWeapon_DefaultDeploy RG_CBaseWeapon_DefDeploy
	#define RG_CBasePlayerWeapon_DefaultReload RG_CBaseWeapon_DefReload
	#define RG_CBasePlayerWeapon_DefaultShotgunReload RG_CBaseWeapon_DefShotgunReload
	#define RG_CBasePlayer_Observer_SetMode RG_CBasePlayer_Observer_SetMod
	#define RG_CBasePlayer_Observer_FindNextPlayer RG_CBasePlayer_Observer_FindNxt
#endif

/**
* enum UnifiedSignals
*/
enum UnifiedSignals
{
	US_Signal,
	US_State
};

/**
* enum AccountSet
*/
enum AccountSet
{
	AS_SET, // Setts the value of the account
	AS_ADD  // Adds a value to the account
};

/**
* Weapon info types for use with rg_set_weapon_info/rg_get_weapon_info()
*/
enum WpnInfo
{
	/*
	* Description:      -
	* Return type:      enum WeaponIdType
	* Get params:       rg_get_weapon_info(const weapon_name[], WI_ID);
	* Set params:       -
	*/
	WI_ID,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_COST);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_COST, const value);
	*/
	WI_COST,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_CLIP_COST);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_CLIP_COST, const value);
	*/
	WI_CLIP_COST,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_BUY_CLIP_SIZE);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_BUY_CLIP_SIZE, const value);
	*/
	WI_BUY_CLIP_SIZE,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_GUN_CLIP_SIZE);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_GUN_CLIP_SIZE, const value);
	*/
	WI_GUN_CLIP_SIZE,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_MAX_ROUNDS);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_MAX_ROUNDS, const value);
	*/
	WI_MAX_ROUNDS,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_weapon_info(const weapon_id, WI_AMMO_TYPE);
	* Set params:       rg_set_weapon_info(const weapon_id, WI_AMMO_TYPE, const value);
	*/
	WI_AMMO_TYPE,

	/*
	* Description:      -
	* Return type:      -
	* Get params:       rg_get_weapon_info(const weapon_id, WI_AMMO_NAME, const output[], maxlenght);
	* Set params:       -
	*/
	WI_AMMO_NAME,

	/*
	* Description:      -
	* Return type:      -
	* Get params:       rg_get_weapon_info(const weapon_id, WI_NAME, const output[], maxlenght);
	* Set params:       -
	*/
	WI_NAME
};

/**
* Item's info types for use with rg_set_[global_]iteminfo/rg_get_[global_]iteminfo()
*/
enum ItemInfo
{
	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iSlot);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iSlot, const value);
	*/
	ItemInfo_iSlot,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iPosition);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iPosition, const value);
	*/
	ItemInfo_iPosition,

	/*
	* Description:      -
	* Return type:      -
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_pszAmmo1, const output[], maxlenght);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_pszAmmo1, const value[]);
	*/
	ItemInfo_pszAmmo1,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iMaxAmmo1);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iMaxAmmo1, const value);
	*/
	ItemInfo_iMaxAmmo1,

	/*
	* Description:      -
	* Return type:      -
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_pszAmmo2, const output[], maxlenght);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_pszAmmo2, const value[]);
	*/
	ItemInfo_pszAmmo2,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iMaxAmmo2);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iMaxAmmo2, const value);
	*/
	ItemInfo_iMaxAmmo2,

	/*
	* Description:      -
	* Return type:      -
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_pszName, const output[], maxlenght);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_pszName, const value[]);
	*/
	ItemInfo_pszName,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iMaxClip);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iMaxClip, const value);
	*/
	ItemInfo_iMaxClip,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iId);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iId, const value);
	*/
	ItemInfo_iId,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iFlags);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iFlags, const value);
	*/
	ItemInfo_iFlags,

	/*
	* Description:      -
	* Return type:      int
	* Get params:       rg_get_iteminfo(const ent, ItemInfo_iWeight);
	* Set params:       rg_set_iteminfo(const ent, ItemInfo_iWeight, const value);
	*/
	ItemInfo_iWeight
};

/**
* Use with rg_give_item
*/
enum GiveType
{
	GT_APPEND,          // Just give item
	GT_REPLACE,         // Give the item and remove all other weapons from the slot
	GT_DROP_AND_REPLACE // Give the item and drop all other weapons from the slot
};

/**
* MenuChooseTeam
*/
enum MenuChooseTeam
{
	MenuChoose_T = 1,
	MenuChoose_CT,
	MenuChoose_VIP,

	MenuChoose_AutoSelect = 5,
	MenuChoose_Spec,
};

/**
* VGUIMenu
*/
enum VGUIMenu
{
	VGUI_Menu_Team = 2,
	VGUI_Menu_MapBriefing = 4,

	VGUI_Menu_Class_T = 26,
	VGUI_Menu_Class_CT,
	VGUI_Menu_Buy,
	VGUI_Menu_Buy_Pistol,
	VGUI_Menu_Buy_ShotGun,
	VGUI_Menu_Buy_Rifle,
	VGUI_Menu_Buy_SubMachineGun,
	VGUI_Menu_Buy_MachineGun,
	VGUI_Menu_Buy_Item,
};

/**
* GamedllFunc
*/
enum GamedllFunc
{
	/*
	* Description:      -
	* Return type:      int
	* Params:           (const pObserver)
	*/
	RG_GetForceCamera = BEGIN_FUNC_REGION(gamedll),

	/*
	* Description:      -
	* Params:           (const index, const inflictor, const attacker, const Float:fadeTime, const Float:fadeHold, const alpha, Float:color[3])
	*/
	RG_PlayerBlind,

	/*
	* Description:      -
	* Params:           (const index, inflictor, attacker, Float:vecSrc[3], Float:vecSpot[3], tracehandle)
	*/
	RG_RadiusFlash_TraceLine,

	/*
	* Description:      -
	* Params:           (WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
	*/
	RG_RoundEnd,

	/*
	* Description:      -
	* Params:           (const playerIndex)
	*/
	RG_PM_Move,

	/*
	* Description:      -
	* Params:           (const playerIndex)
	*/
	RG_PM_AirMove,

	/*
	* Description:      -
	* Params:           (const index, const slot)
	*/
	RG_HandleMenu_ChooseAppearance,

	/*
	* Description:      -
	* Params:           (const index, const MenuChooseTeam:slot)
	*/
	RG_HandleMenu_ChooseTeam,

	/*
	* Description:      -
	* Params:           (const index, const bitsSlots, const iDisplayTime, const iNeedMore, pszText[])
	*/
	RG_ShowMenu,

	/*
	* Description:      -
	* Params:           (const index, VGUIMenu:menuType, const bitsSlots, szOldMenu[])
	*/
	RG_ShowVGUIMenu,

	/*
	* Description:      The player buys ammo.
	* Return type:      bool
	* Params:           (const index, const weapon_entity, const bool:blinkMoney)
	*/
	RG_BuyGunAmmo,

	/*
	* Description:      -
	* Return type:      CBaseEntity * (Entity index of weapon)
	* Params:           (const index, const WeaponIdType:weaponID)
	*/
	RG_BuyWeaponByWeaponID,

	/*
	* Description:      Called when a player throws the hegrenade.
	* Return type:      CGrenade * (Entity index of hegrenade)
	* Params:           (const index, Float:vecStart[3], Float:vecVelocity[3], Float:time, const team, const usEvent)
	*/
	RG_ThrowHeGrenade,

	/*
	* Description:      Called when a player throws the flashbang.
	* Return type:      CGrenade * (Entity index of flashbang)
	* Params:           (const index, Float:vecStart[3], Float:vecVelocity[3], Float:time)
	*/
	RG_ThrowFlashbang,

	/*
	* Description:      Called when a player throws the smokegrenade.
	* Return type:      CGrenade * (Entity index of smokegrenade)
	* Params:           (const index, Float:vecStart[3], Float:vecVelocity[3], Float:time, const usEvent)
	*/
	RG_ThrowSmokeGrenade,

	/*
	* Description:      Called when a player plant's the bomb on the ground.
	* Return type:      CGrenade * (Entity index of bomb)
	* Params:           (const index, Float:vecStart[3], Float:vecVelocity[3])
	*/
	RG_PlantBomb,

	/*
	* Description:      Called when a player hit to entity.
	* Return type:      bool
	* Params:           (Float:vecSrc[3], Float:vecEnd[3], index, entity)
	*/
	RG_IsPenetrableEntity,

	/*
	* Description:      -
	* Return type:      CGib * (Entity index of gib)
	* Params:           (pevVictim)
	*/
	RG_SpawnHeadGib,

	/*
	* Description:      -
	* Params:           (pevVictim, cGibs, human)
	*/
	RG_SpawnRandomGibs,

	/*
	* Description:      Called when a player drops a weapon (usually manual drop or death)
	* Return type:      CWeaponBox * (Entity index of weaponbox)
	* Params:           (const weaponent, const owner, modelName[], Float:origin[3], Float:angles[3], Float:velocity[3], Float:lifeTime, bool:packAmmo)
	*/
	RG_CreateWeaponBox,

	/*
	* Description:      Called when a player is on a ladder.
	* Params:           (const pLadder, const playerIndex)
	*/
	RG_PM_LadderMove,

	/*
	* Description:      Called on every frame after a player jumps on water for a short period of time
	* Params:           (const playerIndex)
	*/
	RG_PM_WaterJump,

	/*
	* Description:      Called when a player jumps on water for the first time
	* Params:           (const playerIndex)
	*/
	RG_PM_CheckWaterJump,

	/*
	* Description:      Called on every frame while player presses jump button
	* Params:           (const playerIndex)
	*/
	RG_PM_Jump,

	/*
	* Description:      Called on every frame to check player ducking
	* Params:           (const playerIndex)
	*/
	RG_PM_Duck,

	/*
	* Description:      Called whenever player tries to unduck
	* Params:           (const playerIndex)
	*/
	RG_PM_UnDuck,

	/*
	* Description:      Called whenever player emits an step sound
	* Params:           (step, Float:fvol, const playerIndex)
	*/
	RG_PM_PlayStepSound,

	/*
	* Description:      Called whenever player is on air (not touching floor)
	* Params:           (Float:wishdir[3], Float:wishspeed, Float:accel, const playerIndex)
	*/
	RG_PM_AirAccelerate,

	/*
	* Description:      Called when game clears multidamage data (before TraceAttack)
	* Params:           ()
	*/
	RG_ClearMultiDamage,

	/*
	* Description:      Called inside TraceAttack to store entity damage to multidamage data
	* Params:           (const pevInflictor, const pEntity, Float:flDamage, bitsDamageType)
	*/
	RG_AddMultiDamage,

	/*
	* Description:      Called after game finished a bullet tracing for applying damage cached on multidamage data
	* Params:           (const pevInflictor, const pevAttacker)
	*/
	RG_ApplyMultiDamage,

	/*
	* Description:      Called when player buys an item from buy menu (Nightvision, Kevlar, etc.)
	* Params:           (const pPlayer, iSlot)
	*/
	RG_BuyItem,
};

/**
* GamedllFunc CBaseAnimating
*/
enum GamedllFunc_CBaseAnimating
{
	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBaseAnimating_ResetSequenceInfo = BEGIN_FUNC_REGION(animating)
};

/**
* GamedllFunc CGrenade
*/
enum GamedllFunc_CGrenade
{
	/*
	* Description:      Called when a player goes to start defuse the bomb.
	* Params:           (const this, const player)
	*/
	RG_CGrenade_DefuseBombStart = BEGIN_FUNC_REGION(grenade),

	/*
	* Description:      Called when a player has ended to defuses the bomb or when the previous defuser has taken off or been killed.
	* Params:           (const this, const player, bool:bDefused)
	*/
	RG_CGrenade_DefuseBombEnd,

	/*
	* Description:      Called when a hegrenade detonates.
	* Params:           (const this, tracehandle, const bitsDamageType)
	*/
	RG_CGrenade_ExplodeHeGrenade,

	/*
	* Description:      Called when a flashbang detonates.
	* Params:           (const this, tracehandle, const bitsDamageType)
	*/
	RG_CGrenade_ExplodeFlashbang,

	/*
	* Description:      Called when a smokegrenade detonates.
	* Params:           (const this)
	*/
	RG_CGrenade_ExplodeSmokeGrenade,

	/*
	* Description:      Called when a C4 goes to explodes.
	* Params:           (const this, tracehandle, const bitsDamageType)
	*/
	RG_CGrenade_ExplodeBomb,
};

/**
* GamedllFunc CWeaponBox
*/
enum GamedllFunc_CWeaponBox
{
	/*
	* Description:      Called when a player dies to pack up the appropriate weapons and ammo items, and creates a weaponbox that falls to floor with sets specify the model or when a player drop the item.
	* Params:           (const this, const szModelName[])
	*/
	RG_CWeaponBox_SetModel = BEGIN_FUNC_REGION(weaponbox),
};

/**
* GamedllFunc CBasePlayer
*/
enum GamedllFunc_CBasePlayer
{
	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_Spawn = BEGIN_FUNC_REGION(player),

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_Precache,

	/*
	* Description:      -
	* Return type:      int
	* Params:           (const this)
	*/
	RG_CBasePlayer_ObjectCaps,

	/*
	* Description:      -
	* Return type:      int
	* Params:           (const this)
	*/
	RG_CBasePlayer_Classify,

	/*
	* Description:      -
	* Params:           (const this, pevAttacker, Float:flDamage, Float:vecDir[3], tracehandle, bitsDamageType)
	*/
	RG_CBasePlayer_TraceAttack,

	/*
	* Description:      -
	* Return type:      int
	* Params:           (const this, pevInflictor, pevAttacker, Float:flDamage, bitsDamageType)
	*/
	RG_CBasePlayer_TakeDamage,

	/*
	* Description:      -
	* Params:           (const this, Float:flHealth, bitsDamageType)
	*/
	RG_CBasePlayer_TakeHealth,

	/*
	* Description:      -
	* Params:           (const this, pevAttacker, iGib)
	*/
	RG_CBasePlayer_Killed,

	/*
	* Description:      -
	* Params:           (const this, score, bAllowNegativeScore)
	*/
	RG_CBasePlayer_AddPoints,

	/*
	* Description:      -
	* Params:           (const this, score, bAllowNegativeScore)
	*/
	RG_CBasePlayer_AddPointsToTeam,

	/*
	* Description:      -
	* Return type:      BOOL
	* Params:           (const this, const pItem)
	*/
	RG_CBasePlayer_AddPlayerItem,

	/*
	* Description:      -
	* Return type:      BOOL
	* Params:           (const this, const pItem)
	*/
	RG_CBasePlayer_RemovePlayerItem,

	/*
	* Description:      -
	* Return type:      int
	* Params:           (const this, iAmount, szName[], iMax)
	*/
	RG_CBasePlayer_GiveAmmo,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_ResetMaxSpeed,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_Jump,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_Duck,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_PreThink,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_PostThink,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_UpdateClientData,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_ImpulseCommands,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_RoundRespawn,

	/*
	* Description:      -
	* Params:           (const this, Float:flUntilTime, Float:flHoldTime, Float:flFadeTime, iAlpha)
	*/
	RG_CBasePlayer_Blind,

	/*
	* Description:      -
	* Params:           (const this, infobuffer[], szNewModel[])
	*/
	RG_CBasePlayer_SetClientUserInfoModel,

	/*
	* Description:      -
	* Params:           (const this, infobuffer[], szNewName[])
	*/
	RG_CBasePlayer_SetClientUserInfoName,

	/*
	* Description:      -
	* Params:           (const this, iPlayerIndex, bool:bSameTeam)
	*/
	RG_CBasePlayer_Observer_IsValidTarget,

	/*
	* Description:      -
	* Params:           (const this, PLAYER_ANIM:playerAnim)
	*/
	RG_CBasePlayer_SetAnimation,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CBasePlayer_GiveDefaultItems,

	/*
	* Description:      -
	* Return type:      CBaseEntity * (Entity index of item)
	* Params:           (const this, const pszName[])
	*/
	RG_CBasePlayer_GiveNamedItem,

	/*
	* Description:      -
	* Params:           (const this, amount, RewardType:type, bool:bTrackChange)
	*/
	RG_CBasePlayer_AddAccount,

	/*
	* Description:      -
	* Params:           (const this, bool:bDeploy)
	*/
	RG_CBasePlayer_GiveShield,

	/*
	* Description:      -
	* Return type:      CBaseEntity * (Entity index of item)
	* Params:           (const this, const pszItemName[])
	*/
	RG_CBasePlayer_DropPlayerItem,

	/*
	* Description:      -
	* Params:           (const this, ItemID:item, ItemRestType:type)
	*/
	RG_CBasePlayer_HasRestrictItem,

	/*
	* Description:      Called when a player throws the shield on the ground.
	* Return type:      CBaseEntity * (Entity index of shield)
	* Params:           (const this, bool:deploy)
	*/
	RG_CBasePlayer_DropShield,

	/*
	* Description:      Called on spawn, the attempt to equip a player.
	* Params:           (const this, bool:addDefault, bool:equipGame)
	*/
	RG_CBasePlayer_OnSpawnEquip,

	/*
	* Description:      The player uses a radio message.
	*                   Called on self-radio uses, throwing grenades or on freeze time end.
	* Params:           (const this, const msg_id[], const msg_verbose[], pitch, bool:showIcon)
	*/
	RG_CBasePlayer_Radio,

	/*
	* Description:      VIP player got to the point of rescue.
	* Params:           (const this)
	*/
	RG_CBasePlayer_Disappear,

	/*
	* Description:      Makes a random player the VIP.
	* Params:           (const this)
	*/
	RG_CBasePlayer_MakeVIP,

	/*
	* Description:      Makes a random player the bomber.
	* Return type:      bool
	* Params:           (const this)
	*/
	RG_CBasePlayer_MakeBomber,

	/*
	* Description:      The player goes into observer mode.
	* Params:           (const this, Float:vecPosition[3], Float:vecViewAngle[3])
	*/
	RG_CBasePlayer_StartObserver,

	/*
	* Description:      Called when a player enters the game.
	* Return type:      bool
	* Params:           (const this)
	*/
	RG_CBasePlayer_GetIntoGame,

	/*
	* Description:      Called when a player dying and goes into observer mode like StartObserver
	* Params:           (const this)
	*/
	RG_CBasePlayer_StartDeathCam,

	/*
	* Description:      Called when a player goes switch to opposite team after auto-teambalance or caused by 3rd-party things.
	* @note             This doesn't register the event when a player switched manually
	* Params:           (const this)
	*/
	RG_CBasePlayer_SwitchTeam,

	/*
	* Description:      Can a player switch to team?
	* Return type:      bool
	* Params:           (const this, TeamName:teamToSwap)
	*/
	RG_CBasePlayer_CanSwitchTeam,

	/*
	* Description:      Called when a player throws the grenade.
	* Return type:      CGrenade * (Entity index of grenade)
	* Params:           (const this, const grenade, Float:vecSrc[3], Float:vecThrow[3], Float:time, const usEvent)
	*/
	RG_CBasePlayer_ThrowGrenade,

	/*
	* Description:      Called when a player's set protection.
	* Return type:      void
	* Params:           (const this, Float:time)
	*/
	RG_CBasePlayer_SetSpawnProtection,

	/*
	* Description:      Called when a player's remove protection.
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayer_RemoveSpawnProtection,

	/*
	* Description:      Called when the game prints hint message into DHUD.
	* Return type:      bool
	* Params:           (const this, const message[], Float:duration, bool:bDisplayIfPlayerDead, bool:bOverride)
	*/
	RG_CBasePlayer_HintMessageEx,

	/*
	* Description:      Called when a player press use and if a suitable candidate is not found.
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayer_UseEmpty,

	/*
	* Description:      Called when a idle player is removed from server.
	* Return type:      void
	* Params:           (const this, const reason[])
	*/
	RG_CBasePlayer_DropIdlePlayer,

	/*
	* Description:      Called when a client attempt to change the observer mode.
	* Params:           (const this, iMode)
	*/
	RG_CBasePlayer_Observer_SetMode,

	/*
	* Description:      Called when a client attempt to find the next observer.
	* Return type:      void
	* Params:           (const this, bool bReverse, name[])
	*/
	RG_CBasePlayer_Observer_FindNextPlayer,

	/*
	* Description:      Called when a client emits a "pain sound" after received damage.
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayer_Pain,

	/*
	* Description:      Called when a client emits a "death sound" after death.
	* Return type:      void
	* Params:           (const this, lastHitGroup, bool:hasArmour)
	*/
	RG_CBasePlayer_DeathSound,

	/*
	* Description:      Called when a client "thinks for the join status".
	*                   (permanently called on each call of "CBasePlayer::PreThink", and only when he is not assigned as specatator or not playing)
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayer_JoiningThink,

	/*
	* Description:      Called every client frame to check time based damage
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayer_CheckTimeBasedDamage,

	/*
	* Description:      Called when game selects a spawn point (info_player_start/deathmatch) to position the player
	* Return type:      edict_t * (Entity index of selected spawn point)
	* Params:           (const this)
	*/
	RG_CBasePlayer_EntSelectSpawnPoint,
};

/**
* GamedllFunc CBasePlayer
*/
enum GamedllFunc_CBasePlayerWeapon
{
	/*
	* Description:      -
	* Return type:      BOOL
	* Params:           (const this)
	*/
	RG_CBasePlayerWeapon_CanDeploy = BEGIN_FUNC_REGION(weapon),

	/*
	* Description:      -
	* Return type:      BOOL
	* Params:           (const this, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal)
	*/
	RG_CBasePlayerWeapon_DefaultDeploy,

	/*
	* Description:      -
	* Return type:      int
	* Params:           (const this, iClipSize, iAnim, Float:fDelay)
	*/
	RG_CBasePlayerWeapon_DefaultReload,

	/*
	* Description:      -
	* Return type:      bool
	* Params:           (const this, iAnim, iStartAnim, Float:fDelay, Float:fStartDelay, const pszReloadSound1[], const pszReloadSound2[])
	*/
	RG_CBasePlayerWeapon_DefaultShotgunReload,

	/*
	* Description:      Called every client frame (PlayerPostThink) for the player's active weapon
	* Return type:      void
	* Params:           (const this)
	*/
	RG_CBasePlayerWeapon_ItemPostFrame,

	/*
	* Description:      Called whenever player fires a weapon and shakes player screen (punchangles altering)
	* @note             Weapons that use KickBack: AK47, AUG, FAMAS, GALIL, M249, M4A1, MAC10, MP5NAVY, P90, SG552, TMP, UMP45
	* Return type:      void
	* Params:           (const this, Float:up_base, Float:lateral_base, Float:up_modifier, Float:lateral_modifier, Float:p_max, Float:lateral_max, direction_change)
	*/
	RG_CBasePlayerWeapon_KickBack,

	/*
	* Description:      Called whenever game sends an animation to his current holder (player)
	* @note             This is often called for all animations in exception of "fire" and "idle" sequences (both called via client prediction)
	* Return type:      void
	* Params:           (const this, iAnim, skiplocal)
	*/
	RG_CBasePlayerWeapon_SendWeaponAnim,
};

/**
* GamedllFunc CGib
*/
enum GamedllFunc_CGib
{
	/*
	* Description:      -
	* Params:           (const this, const szGibModel[])
	*/
	RG_CGib_Spawn = BEGIN_FUNC_REGION(gib),

	/*
	* Description:      -
	* Params:           (const this, pOther)
	*/
	RG_CGib_BounceGibTouch,

	/*
	* Description:      -
	* Params:           (const this)
	*/
	RG_CGib_WaitTillLand,
};

/**
* GamedllFunc CBaseEntity
*/
enum GamedllFunc_CBaseEntity
{
	/*
	* Description:      -
	* Return type:      void
	* Params:           (pEntity, cShots, Float:vecSrc[3], Float:vecDirShooting[3], Float:vecSpread[3], Float:flDistance, iBulletType, iTracerFreq, iDamage, pevAttacker)

	*/
	RG_CBaseEntity_FireBullets = BEGIN_FUNC_REGION(cbaseentity),

	/*
	* Description:      -
	* Return type:      void
	* Params:           (pEntity, cShots, Float:vecSrc[3], Float:vecDirShooting[3], Float:vecSpread[3], Float:flDistance, iTracerFreq, iDamage, pevAttacker)
	*/
	RG_CBaseEntity_FireBuckshots,

	/*
	* Description:      -
	* Return type:      Vector [3]
	* Params:           (pEntity, Float:vecSrc[3], Float:vecDirShooting[3], Float:vecSpread, Float:flDistance, iPenetration, iBulletType, iDamage, Float:flRangeModifier, pevAttacker, bool:bPistol, shared_rand)
	*/
	RG_CBaseEntity_FireBullets3,
};

/**
* GamedllFunc CBotManager
*/
enum GamedllFunc_CBotManager
{
	/*
	* Description:      Called on each improved bot event
	* Return type:      void
	* Params:           (GameEventType:event, const pEntity, const pOther)

	*/
	RG_CBotManager_OnEvent = BEGIN_FUNC_REGION(botmanager),
}


/**
* GamedllFunc CSGameRules
*/
enum GamedllFunc_CSGameRules
{
	/*
	* Description:      Should the player switch to this weapon?
	* Return type:      BOOL
	* Params:           (const index, const weapon)
	*/
	RG_CSGameRules_FShouldSwitchWeapon = BEGIN_FUNC_REGION(gamerules),

	/*
	* Description:      I can't use this weapon anymore, get me the next best one.
	* Return type:      BOOL
	* Params:           (const index, const currentWeapon)
	*/
	RG_CSGameRules_GetNextBestWeapon,

	/*
	* Description:      -
	* Return type:      float
	* Params:           (const index)
	*/
	RG_CSGameRules_FlPlayerFallDamage,

	/*
	* Description:      Can this player take damage from this attacker?
	* Return type:      float
	* Params:           (const index, const attacker)
	*/
	RG_CSGameRules_FPlayerCanTakeDamage,

	/*
	* Description:      Called by CBasePlayer::Spawn just before releasing the player into the game.
	* Params:           (const index)
	*/
	RG_CSGameRules_PlayerSpawn,

	/*
	* Description:      Is this player allowed to respawn now?
	* Return type:      BOOL
	* Params:           (const index)
	*/
	RG_CSGameRules_FPlayerCanRespawn,

	/*
	* Description:      Place this player on his spawnspot and face him in the proper direction.
	* Return type:      edict_t * (Entity index of spawnspot)
	* Params:           (const index)
	*/
	RG_CSGameRules_GetPlayerSpawnSpot,

	/*
	* Description:      The player has changed userinfo; can change it now.
	* Params:           (const index, infobuffer[])
	*/
	RG_CSGameRules_ClientUserInfoChanged,

	/*
	* Description:      Called each time a player dies.
	* Params:           (const victim, const killer, const inflictor)
	*/
	RG_CSGameRules_PlayerKilled,

	/*
	* Description:      Call this from within a GameRules class to report an obituary.
	* Params:           (const victim, const killer, const inflictor)
	*/
	RG_CSGameRules_DeathNotice,

	/*
	* Description:      The player is touching a CBasePlayerItem, do I give it to him?
	* Return type:      BOOL
	* Params:           (const index, const item)
	*/
	RG_CSGameRules_CanHavePlayerItem,

	/*
	* Description:      What do I do with player's weapons when he's killed?
	* Return type:      int
	* Params:           (const index)
	*/
	RG_CSGameRules_DeadPlayerWeapons,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_ServerDeactivate,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_CheckMapConditions,

	/*
	* Description:      Recreate all the map entities from the map data (preserving their indices),
	*                   then remove everything else except the players.
	*                   Also get rid of all world decals.
	* Params:           ()
	*/
	RG_CSGameRules_CleanUpMap,

	/*
	* Description:      Call this on a new round or restart round with member m_bCompleteReset is TRUE
	* Params:           ()
	*/
	RG_CSGameRules_RestartRound,

	/*
	* Description:      Check if the scenario has been won/lost.
	* Params:           ()
	*/
	RG_CSGameRules_CheckWinConditions,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_RemoveGuns,

	/*
	* Description:      -
	* Return type:      CBasePlayer * (Entity index of player)
	* Params:           ()
	*/
	RG_CSGameRules_GiveC4,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_ChangeLevel,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_GoToIntermission,

	/*
	* Description:      -
	* Params:           ()
	*/
	RG_CSGameRules_BalanceTeams,

	/*
	* Description:      It's called when the freeze time ends.
	* Params:           ()
	*/
	RG_CSGameRules_OnRoundFreezeEnd,

	/*
	* Description:      It's called when a player hears another player.
	* Return type:      bool
	* Params:           (const listener, const sender)
	*/
	RG_CSGameRules_CanPlayerHearPlayer,

	/*
	* Description:      Called every server frame to process game rules
	* Params:           ()
	*/
	RG_CSGameRules_Think,

	/*
	* Description:      Called each time player tries to join a team to ensure availability
	* Return type:      bool
	* Params:           (team_id)
	*/
	RG_CSGameRules_TeamFull,

	/*
	* Description:      Called each time player tries to join a team to ensure a fair distribution of players (based on mp_limitteams cvar)
	* Return type:      bool
	* Params:           (newTeam_id, curTeam_id)
	*/
	RG_CSGameRules_TeamStacked,

	/*
	* Description:      Called each time player gets a weapon linked to his inventory
	* Params:           (const pPlayer, const pWeapon)
	*/
	RG_CSGameRules_PlayerGotWeapon,
};

/**
* CSGameRules Members
*/
enum CSGameRules_Members
{
	/*
	* Description:      -
	* Member type:      BOOL
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_bFreezePeriod = BEGIN_MEMBER_REGION(gamerules),

	/*
	* Description:      -
	* Member type:      BOOL
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_bBombDropped,

	/*
	* Description:      -
	* Member type:      char *
	* Get params:       get_member_game(member, dest[], const lenght);
	* Set params:       set_member_game(member, const source[]);
	*/
	m_GameDesc,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_msgPlayerVoiceMask,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_msgRequestState,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_nMaxPlayers,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_UpdateInterval,

	/*
	* Description:      The global time when the round is supposed to end, if this is not 0.
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flRestartRoundTime,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flCheckWinConditions,

	/*
	* Description:      Time round has started.
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_fRoundStartTime,

	/*
	* Description:      How many seconds long this round is.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iRoundTime,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iRoundTimeSecs,

	/*
	* Description:      (From mp_freezetime) - How many seconds long the intro round (when players are frozen) is.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iIntroRoundTime,

	/*
	* Description:      The global time when the intro round ends and the real one starts (wrote the original "m_flRoundTime" comment for this variable).
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_fRoundStartTimeReal,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iAccountTerrorist,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iAccountCT,

	/*
	* Description:      The number of terrorists on the team (this is generated at the end of a round).
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumTerrorist,

	/*
	* Description:      The number of CTs on the team (this is generated at the end of a round).
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumCT,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumSpawnableTerrorist,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumSpawnableCT,

	/*
	* Description:      Number of Terrorist spawn points.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iSpawnPointCount_Terrorist,

	/*
	* Description:      Number of CT spawn points.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iSpawnPointCount_CT,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iHostagesRescued,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iHostagesTouched,

	/*
	* Description:      1 == CTs won last round, 2 == Terrorists did, 3 == Draw, no winner
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iRoundWinStatus,

	/*
	* Description:      -
	* Member type:      short
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumCTWins,

	/*
	* Description:      -
	* Member type:      short
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumTerroristWins,

	/*
	* Description:      Whether or not the bomb target has been bombed.
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bTargetBombed,

	/*
	* Description:      Whether or not the bomb has been defused.
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bBombDefused,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bMapHasBombTarget,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bMapHasBombZone,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bMapHasBuyZone,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bMapHasRescueZone,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bMapHasEscapeZone,

	/*
	* Description:      0 = uninitialized, 1 = has VIP safety zone, 2 = DOES not have VIP safetyzone
	* Member type:      qboolean
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_bMapHasVIPSafetyZone,

	/*
	* Description:      -
	* Member type:      BOOL
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_bMapHasCameras,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iC4Timer,

	/*
	* Description:      The current Terrorist who has the C4.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iC4Guy,

	/*
	* Description:      The amount of money the losing team gets. This scales up as they lose more rounds in a row.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iLoserBonus,

	/*
	* Description:      The number of rounds the CTs have lost in a row.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumConsecutiveCTLoses,

	/*
	* Description:      The number of rounds the Terrorists have lost in a row.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumConsecutiveTerroristLoses,

	/*
	* Description:      For the idle kick functionality. This is the max amount of time that the player has to be idle before being kicked.
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_fMaxIdlePeriod,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iLimitTeams,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bLevelInitialized,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bRoundTerminating,

	/*
	* Description:      Set to TRUE to have the scores reset next time round restarts.
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bCompleteReset,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flRequiredEscapeRatio,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumEscapers,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iHaveEscaped,

	/*
	* Description:      Who can and can't buy.
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bCTCantBuy,

	/*
	* Description:      Who can and can't buy.
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bTCantBuy,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flBombRadius,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iConsecutiveVIP,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iTotalGunCount,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iTotalGrenadeCount,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iTotalArmourCount,

	/*
	* Description:      Keeps track of the # of consecutive rounds that have gone by where one team outnumbers the other team by more than 2.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iUnBalancedRounds,

	/*
	* Description:      Keeps track of the # of consecutive rounds of escape played. Teams will be swapped after 8 rounds.
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iNumEscapeRounds,

	/*
	* Description:      -
	* Member type:      int [100]
	* Get params:       get_member_game(member, element);
	* Set params:       set_member_game(member, value, element);
	*/
	m_iMapVotes,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iLastPick,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iMaxMapTime,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iMaxRounds,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iTotalRoundsPlayed,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iMaxRoundsWon,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iStoredSpectValue,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flForceCameraValue,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flForceChaseCamValue,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flFadeToBlackValue,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_pVIP,

	/*
	* Description:      -
	* Member type:      int [5]
	* Get params:       get_member_game(member, element);
	* Set params:       set_member_game(member, value, element);
	*/
	m_pVIPQueue,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flIntermissionEndTime,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flIntermissionStartTime,


	/*
	* Description:      -
	* Member type:      BOOL
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iEndIntermissionButtonHit,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_tmNextPeriodicThink,

	/*
	* Description:      TRUE = the game commencing when there is at least one CT and T, FALSE = scoring will not start until both teams have players (deprecated name m_bFirstConnected)
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bGameStarted,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bInCareerGame,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_fCareerRoundMenuTime,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iCareerMatchWins,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, value);
	*/
	m_iRoundWinDifference,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_fCareerMatchMenuTime,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bSkipSpawn,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bSkipShowMenu,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bNeededPlayers,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flEscapeRatio,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flTimeLimit,

	/*
	* Description:      Stores the start time of the game.
	* @note             The time resets when the game is restarting or the game commencing.
	* Member type:      float
	* Get params:       Float:get_member_game(member);
	* Set params:       set_member_game(member, Float:value);
	*/
	m_flGameStartTime,

	/*
	* Description:      TRUE = goes balance team, otherwise FALSE
	* Member type:      bool
	* Get params:       get_member_game(member);
	* Set params:       set_member_game(member, bool:value);
	*/
	m_bTeamBalanced,
};

/**
* CBaseEntity Members
*/
enum CBaseEntity_Members
{
	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	currentammo = BEGIN_MEMBER_REGION(base),

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_buckshot,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_buckshot,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_9mm,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_9mm,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_556nato,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_556nato,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_556natobox,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_556natobox,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_762nato,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_762nato,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_45acp,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_45acp,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_50ae,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_50ae,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_338mag,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_338mag,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_57mm,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_57mm,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	maxammo_357sig,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	ammo_357sig,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flStartThrow,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flReleaseThrow,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iSwing,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	has_disconnected,
};

/**
* CBaseAnimating Members
*/
enum CBaseAnimating_Members
{
	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flFrameRate = BEGIN_MEMBER_REGION(animating),

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flGroundSpeed,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flLastEventCheck,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_fSequenceFinished,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_fSequenceLoops,
};

/**
* CBaseMonster Members
*/
enum CBaseMonster_Members
{
	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_Activity = BEGIN_MEMBER_REGION(basemonster),

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_IdealActivity,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_LastHitGroup,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_bitsDamageType,

	/*
	* Description:      -
	* Member type:      byte [8]
	* Get params:       get_member(index, member, TimeBasedDamage:element);
	* Set params:       set_member(index, member, value, TimeBasedDamage:element);
	*/
	m_rgbTimeBasedDamage,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_MonsterState,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_IdealMonsterState,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_afConditions,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_afMemory,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flNextAttack,

	/*
	* Description:      -
	* Member type:      class EHANDLE
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_hEnemy,

	/*
	* Description:      -
	* Member type:      class EHANDLE
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_hTargetEnt,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flFieldOfView,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_bloodColor,

	/*
	* Description:      -
	* Member type:      class Vector
	* Get params:       get_member(index, member, Float:output[3]);
	* Set params:       set_member(index, member, Float:dest[3]);
	*/
	m_HackedGunPos,

	/*
	* Description:      -
	* Member type:      class Vector
	* Get params:       get_member(index, member, Float:output[3]);
	* Set params:       set_member(index, member, Float:dest[3]);
	*/
	m_vecEnemyLKP,
};

/**
* CBasePlayer Members
*/
enum CBasePlayer_Members
{
	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	random_seed = BEGIN_MEMBER_REGION(player),

	/*
	* Description:      -
	* Member type:      unsigned short
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_usPlayerBleed,

	/*
	* Description:      -
	* Member type:      class EHANDLE
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_hObserverTarget,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flNextObserverInput,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iObserverWeapon,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iObserverC4State,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bObserverHasDefuser,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iObserverLastMode,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flFlinchTime,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flAnimTime,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bHighDamage,

	/*
	* Description:      Slow down the player based on the velocity modifier, applies when the player takes damage.
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flVelocityModifier,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iLastZoom,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bResumeZoom,

	/*
	* Description:      Delay to call EjectBrass function on M3, Scout and AWP (rest of weapons are client-side).
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flEjectBrass,

	/*
	* Description:      -
	* Member type:      enum ArmorType
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iKevlar,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bNotKilled,

	/*
	* Description:      -
	* Member type:      enum TeamName
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iTeam,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iAccount,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bHasPrimary,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flDeathThrowTime,

	/*
	* Description:      -
	* Member type:      int
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, value);
	*/
	m_iThrowDirection,

	/*
	* Description:      -
	* Member type:      float
	* Get params:       Float:get_member(index, member);
	* Set params:       set_member(index, member, Float:value);
	*/
	m_flLastTalk,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bJustConnected,

	/*
	* Description:      -
	* Member type:      bool
	* Get params:       get_member(index, member);
	* Set params:       set_member(index, member, bool:value);
	*/
	m_bContextHelp,

	/*
	* Description:      -
	* Member type:      enum JoinState
	* Get