/* * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * In addition, as a special exception, the author gives permission to * link the code of this program with the Half-Life Game Engine ("HL * Engine") and Modified Game Libraries ("MODs") developed by Valve, * L.L.C ("Valve"). You must obey the GNU General Public License in all * respects for all of the code used other than the HL Engine and MODs * from Valve. If you modify this file, you may extend this exception * to your version of the file, but you are not obligated to do so. If * you do not wish to do so, delete this exception statement from your * version. * */ #pragma once // custom enum enum ArmorType { ARMOR_NONE, // no armor ARMOR_KEVLAR, // body vest only ARMOR_VESTHELM, // vest and helmet }; enum ArmouryItemPack { ARMOURY_MP5NAVY, ARMOURY_TMP, ARMOURY_P90, ARMOURY_MAC10, ARMOURY_AK47, ARMOURY_SG552, ARMOURY_M4A1, ARMOURY_AUG, ARMOURY_SCOUT, ARMOURY_G3SG1, ARMOURY_AWP, ARMOURY_M3, ARMOURY_XM1014, ARMOURY_M249, ARMOURY_FLASHBANG, ARMOURY_HEGRENADE, ARMOURY_KEVLAR, ARMOURY_ASSAULT, ARMOURY_SMOKEGRENADE, ARMOURY_GLOCK18, ARMOURY_USP, ARMOURY_ELITE, ARMOURY_FIVESEVEN, ARMOURY_P228, ARMOURY_DEAGLE, ARMOURY_FAMAS, ARMOURY_SG550, ARMOURY_GALIL, ARMOURY_UMP45, ARMOURY_SHIELD }; struct AmmoInfo { const char *pszName; int iId; }; struct MULTIDAMAGE { CBaseEntity *pEntity; float amount; int type; }; enum ItemRestType { ITEM_TYPE_BUYING, // when a player buying items ITEM_TYPE_TOUCHED, // when the player touches with a weaponbox or armoury_entity ITEM_TYPE_EQUIPPED // when a entity game_player_equip gives item to player or default item's on player spawn }; // constant items #define ITEM_ID_ANTIDOTE 2 #define ITEM_ID_SECURITY 3 enum ItemID { ITEM_NONE = -1, ITEM_SHIELDGUN, ITEM_P228, ITEM_GLOCK, ITEM_SCOUT, ITEM_HEGRENADE, ITEM_XM1014, ITEM_C4, ITEM_MAC10, ITEM_AUG, ITEM_SMOKEGRENADE, ITEM_ELITE, ITEM_FIVESEVEN, ITEM_UMP45, ITEM_SG550, ITEM_GALIL, ITEM_FAMAS, ITEM_USP, ITEM_GLOCK18, ITEM_AWP, ITEM_MP5N, ITEM_M249, ITEM_M3, ITEM_M4A1, ITEM_TMP, ITEM_G3SG1, ITEM_FLASHBANG, ITEM_DEAGLE, ITEM_SG552, ITEM_AK47, ITEM_KNIFE, ITEM_P90, ITEM_NVG, ITEM_DEFUSEKIT, ITEM_KEVLAR, ITEM_ASSAULT, ITEM_LONGJUMP, ITEM_SODACAN, ITEM_HEALTHKIT, ITEM_ANTIDOTE, ITEM_BATTERY }; // custom enum enum RewardType { RT_NONE, RT_ROUND_BONUS, RT_PLAYER_RESET, RT_PLAYER_JOIN, RT_PLAYER_SPEC_JOIN, RT_PLAYER_BOUGHT_SOMETHING, RT_HOSTAGE_TOOK, RT_HOSTAGE_RESCUED, RT_HOSTAGE_DAMAGED, RT_HOSTAGE_KILLED, RT_TEAMMATES_KILLED, RT_ENEMY_KILLED, RT_INTO_GAME, RT_VIP_KILLED, RT_VIP_RESCUED_MYSELF }; enum PLAYER_ANIM { PLAYER_IDLE, PLAYER_WALK, PLAYER_JUMP, PLAYER_SUPERJUMP, PLAYER_DIE, PLAYER_ATTACK1, PLAYER_ATTACK2, PLAYER_FLINCH, PLAYER_LARGE_FLINCH, PLAYER_RELOAD, PLAYER_HOLDBOMB }; enum TeamName { UNASSIGNED, TERRORIST, CT, SPECTATOR, }; enum ModelName { MODEL_UNASSIGNED, MODEL_URBAN, MODEL_TERROR, MODEL_LEET, MODEL_ARCTIC, MODEL_GSG9, MODEL_GIGN, MODEL_SAS, MODEL_GUERILLA, MODEL_VIP, MODEL_MILITIA, MODEL_SPETSNAZ, MODEL_AUTO }; enum JoinState { JOINED, SHOWLTEXT, READINGLTEXT, SHOWTEAMSELECT, PICKINGTEAM, GETINTOGAME }; enum TrackCommands { CMD_SAY = 0, CMD_SAYTEAM, CMD_FULLUPDATE, CMD_VOTE, CMD_VOTEMAP, CMD_LISTMAPS, CMD_LISTPLAYERS, CMD_NIGHTVISION, COMMANDS_TO_TRACK, }; struct RebuyStruct { int m_primaryWeapon; int m_primaryAmmo; int m_secondaryWeapon; int m_secondaryAmmo; int m_heGrenade; int m_flashbang; int m_smokeGrenade; int m_defuser; int m_nightVision; ArmorType m_armor; }; enum ThrowDirection { THROW_NONE, THROW_FORWARD, THROW_BACKWARD, THROW_HITVEL, THROW_BOMB, THROW_GRENADE, THROW_HITVEL_MINUS_AIRVEL }; enum sbar_data { SBAR_ID_TARGETTYPE = 1, SBAR_ID_TARGETNAME, SBAR_ID_TARGETHEALTH, SBAR_END }; enum { WINSTATUS_CTS = 1, WINSTATUS_TERRORISTS, WINSTATUS_DRAW, }; // custom enum // used for EndRoundMessage() logged messages enum ScenarioEventEndRound { ROUND_NONE, ROUND_TARGET_BOMB, ROUND_VIP_ESCAPED, ROUND_VIP_ASSASSINATED, ROUND_TERRORISTS_ESCAPED, ROUND_CTS_PREVENT_ESCAPE, ROUND_ESCAPING_TERRORISTS_NEUTRALIZED, ROUND_BOMB_DEFUSED, ROUND_CTS_WIN, ROUND_TERRORISTS_WIN, ROUND_END_DRAW, ROUND_ALL_HOSTAGES_RESCUED, ROUND_TARGET_SAVED, ROUND_HOSTAGE_NOT_RESCUED, ROUND_TERRORISTS_NOT_ESCAPED, ROUND_VIP_NOT_ESCAPED, ROUND_GAME_COMMENCE, ROUND_GAME_RESTART, ROUND_GAME_OVER }; enum RewardRules { RR_CTS_WIN, RR_TERRORISTS_WIN, RR_TARGET_BOMB, RR_VIP_ESCAPED, RR_VIP_ASSASSINATED, RR_TERRORISTS_ESCAPED, RR_CTS_PREVENT_ESCAPE, RR_ESCAPING_TERRORISTS_NEUTRALIZED, RR_BOMB_DEFUSED, RR_BOMB_PLANTED, RR_BOMB_EXPLODED, RR_ALL_HOSTAGES_RESCUED, RR_TARGET_BOMB_SAVED, RR_HOSTAGE_NOT_RESCUED, RR_VIP_NOT_ESCAPED, RR_LOSER_BONUS_DEFAULT, RR_LOSER_BONUS_MIN, RR_LOSER_BONUS_MAX, RR_LOSER_BONUS_ADD, RR_RESCUED_HOSTAGE, RR_TOOK_HOSTAGE_ACC, RR_TOOK_HOSTAGE, RR_END }; // custom enum enum RewardAccount { REWARD_TARGET_BOMB = 3500, REWARD_VIP_ESCAPED = 3500, REWARD_VIP_ASSASSINATED = 3250, REWARD_TERRORISTS_ESCAPED = 3150, REWARD_CTS_PREVENT_ESCAPE = 3500, REWARD_ESCAPING_TERRORISTS_NEUTRALIZED = 3250, REWARD_BOMB_DEFUSED = 3250, REWARD_BOMB_PLANTED = 800, REWARD_BOMB_EXPLODED = 3250, REWARD_CTS_WIN = 3000, REWARD_TERRORISTS_WIN = 3000, REWARD_ALL_HOSTAGES_RESCUED = 2500, // the end round was by the expiration time REWARD_TARGET_BOMB_SAVED = 3250, REWARD_HOSTAGE_NOT_RESCUED = 3250, REWARD_VIP_NOT_ESCAPED = 3250, // loser bonus REWARD_LOSER_BONUS_DEFAULT = 1400, REWARD_LOSER_BONUS_MIN = 1500, REWARD_LOSER_BONUS_MAX = 3000, REWARD_LOSER_BONUS_ADD = 500, REWARD_RESCUED_HOSTAGE = 750, REWARD_KILLED_ENEMY = 300, REWARD_KILLED_VIP = 2500, REWARD_VIP_HAVE_SELF_RESCUED = 2500, REWARD_TAKEN_HOSTAGE = 1000, REWARD_TOOK_HOSTAGE_ACC = 100, REWARD_TOOK_HOSTAGE = 150, }; // custom enum enum PaybackForBadThing { PAYBACK_FOR_KILLED_TEAMMATES = -3300, }; // custom enum enum InfoMapBuyParam { BUYING_EVERYONE = 0, BUYING_ONLY_CTS, BUYING_ONLY_TERRORISTS, BUYING_NO_ONE, }; // weapon respawning return codes enum { GR_NONE = 0, GR_WEAPON_RESPAWN_YES, GR_WEAPON_RESPAWN_NO, GR_AMMO_RESPAWN_YES, GR_AMMO_RESPAWN_NO, GR_ITEM_RESPAWN_YES, GR_ITEM_RESPAWN_NO, GR_PLR_DROP_GUN_ALL, GR_PLR_DROP_GUN_ACTIVE, GR_PLR_DROP_GUN_NO, GR_PLR_DROP_AMMO_ALL, GR_PLR_DROP_AMMO_ACTIVE, GR_PLR_DROP_AMMO_NO, }; // custom enum enum { SCENARIO_BLOCK_TIME_EXPRIRED = (1 << 0), // flag "a" SCENARIO_BLOCK_NEED_PLAYERS = (1 << 1), // flag "b" SCENARIO_BLOCK_VIP_ESCAPE = (1 << 2), // flag "c" SCENARIO_BLOCK_PRISON_ESCAPE = (1 << 3), // flag "d" SCENARIO_BLOCK_BOMB = (1 << 4), // flag "e" SCENARIO_BLOCK_TEAM_EXTERMINATION = (1 << 5), // flag "f" SCENARIO_BLOCK_HOSTAGE_RESCUE = (1 << 6), // flag "g" }; // Player relationship return codes enum { GR_NOTTEAMMATE = 0, GR_TEAMMATE, GR_ENEMY, GR_ALLY, GR_NEUTRAL, }; enum WeaponIdType { WEAPON_NONE, WEAPON_P228, WEAPON_GLOCK, WEAPON_SCOUT, WEAPON_HEGRENADE, WEAPON_XM1014, WEAPON_C4, WEAPON_MAC10, WEAPON_AUG, WEAPON_SMOKEGRENADE, WEAPON_ELITE, WEAPON_FIVESEVEN, WEAPON_UMP45, WEAPON_SG550, WEAPON_GALIL, WEAPON_FAMAS, WEAPON_USP, WEAPON_GLOCK18, WEAPON_AWP, WEAPON_MP5N, WEAPON_M249, WEAPON_M3, WEAPON_M4A1, WEAPON_TMP, WEAPON_G3SG1, WEAPON_FLASHBANG, WEAPON_DEAGLE, WEAPON_SG552, WEAPON_AK47, WEAPON_KNIFE, WEAPON_P90, WEAPON_SHIELDGUN = 99 }; enum AutoBuyClassType { AUTOBUYCLASS_NONE = 0, AUTOBUYCLASS_PRIMARY = (1 << 0), AUTOBUYCLASS_SECONDARY = (1 << 1), AUTOBUYCLASS_AMMO = (1 << 2), AUTOBUYCLASS_ARMOR = (1 << 3), AUTOBUYCLASS_DEFUSER = (1 << 4), AUTOBUYCLASS_PISTOL = (1 << 5), AUTOBUYCLASS_SMG = (1 << 6), AUTOBUYCLASS_RIFLE = (1 << 7), AUTOBUYCLASS_SNIPERRIFLE = (1 << 8), AUTOBUYCLASS_SHOTGUN = (1 << 9), AUTOBUYCLASS_MACHINEGUN = (1 << 10), AUTOBUYCLASS_GRENADE = (1 << 11), AUTOBUYCLASS_NIGHTVISION = (1 << 12), AUTOBUYCLASS_SHIELD = (1 << 13), }; enum AmmoCostType { AMMO_338MAG_PRICE = 125, AMMO_357SIG_PRICE = 50, AMMO_45ACP_PRICE = 25, AMMO_50AE_PRICE = 40, AMMO_556MM_PRICE = 60, AMMO_57MM_PRICE = 50, AMMO_762MM_PRICE = 80, AMMO_9MM_PRICE = 20, AMMO_BUCKSHOT_PRICE = 65, }; // custom enum // the default amount of ammo that comes with each gun when it spawns enum ClipGiveDefault { P228_DEFAULT_GIVE = 13, GLOCK18_DEFAULT_GIVE = 20, SCOUT_DEFAULT_GIVE = 10, HEGRENADE_DEFAULT_GIVE = 1, XM1014_DEFAULT_GIVE = 7, C4_DEFAULT_GIVE = 1, MAC10_DEFAULT_GIVE = 30, AUG_DEFAULT_GIVE = 30, SMOKEGRENADE_DEFAULT_GIVE = 1, ELITE_DEFAULT_GIVE = 30, FIVESEVEN_DEFAULT_GIVE = 20, UMP45_DEFAULT_GIVE = 25, SG550_DEFAULT_GIVE = 30, GALIL_DEFAULT_GIVE = 35, FAMAS_DEFAULT_GIVE = 25, USP_DEFAULT_GIVE = 12, AWP_DEFAULT_GIVE = 10, MP5NAVY_DEFAULT_GIVE = 30, M249_DEFAULT_GIVE = 100, M3_DEFAULT_GIVE = 8, M4A1_DEFAULT_GIVE = 30, TMP_DEFAULT_GIVE = 30, G3SG1_DEFAULT_GIVE = 20, FLASHBANG_DEFAULT_GIVE = 1, DEAGLE_DEFAULT_GIVE = 7, SG552_DEFAULT_GIVE = 30, AK47_DEFAULT_GIVE = 30, /*KNIFE_DEFAULT_GIVE = 1,*/ P90_DEFAULT_GIVE = 50, }; enum ClipSizeType { P228_MAX_CLIP = 13, GLOCK18_MAX_CLIP = 20, SCOUT_MAX_CLIP = 10, XM1014_MAX_CLIP = 7, MAC10_MAX_CLIP = 30, AUG_MAX_CLIP = 30, ELITE_MAX_CLIP = 30, FIVESEVEN_MAX_CLIP = 20, UMP45_MAX_CLIP = 25, SG550_MAX_CLIP = 30, GALIL_MAX_CLIP = 35, FAMAS_MAX_CLIP = 25, USP_MAX_CLIP = 12, AWP_MAX_CLIP = 10, MP5N_MAX_CLIP = 30, M249_MAX_CLIP = 100, M3_MAX_CLIP = 8, M4A1_MAX_CLIP = 30, TMP_MAX_CLIP = 30, G3SG1_MAX_CLIP = 20, DEAGLE_MAX_CLIP = 7, SG552_MAX_CLIP = 30, AK47_MAX_CLIP = 30, P90_MAX_CLIP = 50, }; enum WeightWeapon { P228_WEIGHT = 5, GLOCK18_WEIGHT = 5, SCOUT_WEIGHT = 30, HEGRENADE_WEIGHT = 2, XM1014_WEIGHT = 20, C4_WEIGHT = 3, MAC10_WEIGHT = 25, AUG_WEIGHT = 25, SMOKEGRENADE_WEIGHT = 1, ELITE_WEIGHT = 5, FIVESEVEN_WEIGHT = 5, UMP45_WEIGHT = 25, SG550_WEIGHT = 20, GALIL_WEIGHT = 25, FAMAS_WEIGHT = 75, USP_WEIGHT = 5, AWP_WEIGHT = 30, MP5NAVY_WEIGHT = 25, M249_WEIGHT = 25, M3_WEIGHT = 20, M4A1_WEIGHT = 25, TMP_WEIGHT = 25, G3SG1_WEIGHT = 20, FLASHBANG_WEIGHT = 1, DEAGLE_WEIGHT = 7, SG552_WEIGHT = 25, AK47_WEIGHT = 25, P90_WEIGHT = 26, KNIFE_WEIGHT = 0, }; enum MaxAmmoType { MAX_AMMO_BUCKSHOT = 32, MAX_AMMO_9MM = 120, MAX_AMMO_556NATO = 90, MAX_AMMO_556NATOBOX = 200, MAX_AMMO_762NATO = 90, MAX_AMMO_45ACP = 100, MAX_AMMO_50AE = 35, MAX_AMMO_338MAGNUM = 30, MAX_AMMO_57MM = 100, MAX_AMMO_357SIG = 52, // custom MAX_AMMO_SMOKEGRENADE = 1, MAX_AMMO_HEGRENADE = 1, MAX_AMMO_FLASHBANG = 2, }; enum AmmoType { AMMO_NONE, AMMO_338MAGNUM, AMMO_762NATO, AMMO_556NATOBOX, AMMO_556NATO, AMMO_BUCKSHOT, AMMO_45ACP, AMMO_57MM, AMMO_50AE, AMMO_357SIG, AMMO_9MM, AMMO_FLASHBANG, AMMO_HEGRENADE, AMMO_SMOKEGRENADE, AMMO_C4, AMMO_MAX_TYPES }; enum WeaponClassType { WEAPONCLASS_NONE, WEAPONCLASS_KNIFE, WEAPONCLASS_PISTOL, WEAPONCLASS_GRENADE, WEAPONCLASS_SUBMACHINEGUN, WEAPONCLASS_SHOTGUN, WEAPONCLASS_MACHINEGUN, WEAPONCLASS_RIFLE, WEAPONCLASS_SNIPERRIFLE, WEAPONCLASS_MAX, }; enum AmmoBuyAmount { AMMO_338MAG_BUY = 10, AMMO_357SIG_BUY = 13, AMMO_45ACP_BUY = 12, AMMO_50AE_BUY = 7, AMMO_556NATO_BUY = 30, AMMO_556NATOBOX_BUY = 30, AMMO_57MM_BUY = 50, AMMO_762NATO_BUY = 30, AMMO_9MM_BUY = 30, AMMO_BUCKSHOT_BUY = 8, }; enum shieldgun_e { SHIELDGUN_IDLE, SHIELDGUN_SHOOT1, SHIELDGUN_SHOOT2, SHIELDGUN_SHOOT_EMPTY, SHIELDGUN_RELOAD, SHIELDGUN_DRAW, SHIELDGUN_DRAWN_IDLE, SHIELDGUN_UP, SHIELDGUN_DOWN, }; // custom enum shieldgren_e { SHIELDREN_IDLE = 4, SHIELDREN_UP, SHIELDREN_DOWN }; enum InventorySlotType { NONE_SLOT, PRIMARY_WEAPON_SLOT, PISTOL_SLOT, KNIFE_SLOT, GRENADE_SLOT, C4_SLOT, }; enum Bullet { BULLET_NONE, BULLET_PLAYER_9MM, BULLET_PLAYER_MP5, BULLET_PLAYER_357, BULLET_PLAYER_BUCKSHOT, BULLET_PLAYER_CROWBAR, BULLET_MONSTER_9MM, BULLET_MONSTER_MP5, BULLET_MONSTER_12MM, BULLET_PLAYER_45ACP, BULLET_PLAYER_338MAG, BULLET_PLAYER_762MM, BULLET_PLAYER_556MM, BULLET_PLAYER_50AE, BULLET_PLAYER_57MM, BULLET_PLAYER_357SIG, }; struct WeaponStruct { int m_type; int m_price; int m_side; int m_slot; int m_ammoPrice; }; struct AutoBuyInfoStruct { AutoBuyClassType m_class; char *m_command; char *m_classname; }; struct WeaponAliasInfo { char *alias; WeaponIdType id; }; struct WeaponBuyAliasInfo { char *alias; WeaponIdType id; char *failName; }; struct WeaponClassAliasInfo { char *alias; WeaponClassType id; }; struct WeaponSlotInfo { WeaponIdType id; InventorySlotType slot; const char *weaponName; }; enum hash_types_e { CLASSNAME };