diff options
Diffstat (limited to 'game/shared/cstrike/cs_shareddefs.h')
| -rw-r--r-- | game/shared/cstrike/cs_shareddefs.h | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/game/shared/cstrike/cs_shareddefs.h b/game/shared/cstrike/cs_shareddefs.h new file mode 100644 index 0000000..3e41431 --- /dev/null +++ b/game/shared/cstrike/cs_shareddefs.h @@ -0,0 +1,261 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Shared CS definitions. +// +//=============================================================================// + +#ifndef CS_SHAREDDEFS_H +#define CS_SHAREDDEFS_H +#ifdef _WIN32 +#pragma once +#endif + +/*======================*/ +// Menu stuff // +/*======================*/ + +#include <game/client/iviewport.h> + +//============================================================================= +// HPE_BEGIN: +// Including Achievement ID Definitions +//============================================================================= + +#include "cs_achievementdefs.h" + +//============================================================================= +// HPE_END +//============================================================================= + +// CS-specific viewport panels +#define PANEL_CLASS_CT "class_ct" +#define PANEL_CLASS_TER "class_ter" + +// Buy sub menus +#define MENU_PISTOL "menu_pistol" +#define MENU_SHOTGUN "menu_shotgun" +#define MENU_RIFLE "menu_rifle" +#define MENU_SMG "menu_smg" +#define MENU_MACHINEGUN "menu_mg" +#define MENU_EQUIPMENT "menu_equip" + + +#define MAX_HOSTAGES 12 +#define MAX_HOSTAGE_RESCUES 4 + + + + +#define CSTRIKE_DEFAULT_AVATAR "avatar_default_64" +#define CSTRIKE_DEFAULT_T_AVATAR "avatar_default-t_64" +#define CSTRIKE_DEFAULT_CT_AVATAR "avatar_default_64" + +extern const float CS_PLAYER_SPEED_RUN; +extern const float CS_PLAYER_SPEED_VIP; +extern const float CS_PLAYER_SPEED_WALK; +extern const float CS_PLAYER_SPEED_SHIELD; +extern const float CS_PLAYER_SPEED_STOPPED; +extern const float CS_PLAYER_SPEED_OBSERVER; + +extern const float CS_PLAYER_SPEED_DUCK_MODIFIER; +extern const float CS_PLAYER_SPEED_WALK_MODIFIER; +extern const float CS_PLAYER_SPEED_CLIMB_MODIFIER; + + +template< class T > +class CUtlVectorInitialized : public CUtlVector< T > +{ +public: + CUtlVectorInitialized( T* pMemory, int numElements ) : CUtlVector< T >( pMemory, numElements ) + { + this->SetSize( numElements ); + } +}; + +extern CUtlVectorInitialized< const char * > CTPlayerModels; +extern CUtlVectorInitialized< const char * > TerroristPlayerModels; + + +// These go in CCSPlayer::m_iAddonBits and get sent to the client so it can create +// grenade models hanging off players. +#define ADDON_FLASHBANG_1 0x001 +#define ADDON_FLASHBANG_2 0x002 +#define ADDON_HE_GRENADE 0x004 +#define ADDON_SMOKE_GRENADE 0x008 +#define ADDON_C4 0x010 +#define ADDON_DEFUSEKIT 0x020 +#define ADDON_PRIMARY 0x040 +#define ADDON_PISTOL 0x080 +#define ADDON_PISTOL2 0x100 +#define NUM_ADDON_BITS 9 + + +// Indices of each weapon slot. +#define WEAPON_SLOT_RIFLE 0 // (primary slot) +#define WEAPON_SLOT_PISTOL 1 // (secondary slot) +#define WEAPON_SLOT_KNIFE 2 +#define WEAPON_SLOT_GRENADES 3 +#define WEAPON_SLOT_C4 4 + +#define WEAPON_SLOT_FIRST 0 +#define WEAPON_SLOT_LAST 4 + + +// CS Team IDs. +#define TEAM_TERRORIST 2 +#define TEAM_CT 3 +#define TEAM_MAXCOUNT 4 // update this if we ever add teams (unlikely) + +#define MAX_CLAN_TAG_LENGTH 16 // max for new tags is actually 12, this allows some backward compat. + +//============================================================================= +// HPE_BEGIN: +// [menglish] CS specific death animation time now that freeze cam is implemented +// in order to linger on the players body less +// [tj] The number of times you must kill a given player to be dominating them +// [menglish] Flags to use upon player death +//============================================================================= + +// [menglish] CS specific death animation time now that freeze cam is implemented +// in order to linger on the players body less +#define CS_DEATH_ANIMATION_TIME 0.8 + +// [tj] The number of times you must kill a given player to be dominating them +// Should always be more than 1 +#define CS_KILLS_FOR_DOMINATION 4 + +#define CS_DEATH_DOMINATION 0x0001 // killer is dominating victim +#define CS_DEATH_REVENGE 0x0002 // killer got revenge on victim +//============================================================================= +// HPE_END +//============================================================================= + + +//-------------- +// CSPort Specific damage flags +//-------------- +#define DMG_HEADSHOT (DMG_LASTGENERICFLAG<<1) + + +// The various states the player can be in during the join game process. +enum CSPlayerState +{ + // Happily running around in the game. + // You can't move though if CSGameRules()->IsFreezePeriod() returns true. + // This state can jump to a bunch of other states like STATE_PICKINGCLASS or STATE_DEATH_ANIM. + STATE_ACTIVE=0, + + // This is the state you're in when you first enter the server. + // It's switching between intro cameras every few seconds, and there's a level info + // screen up. + STATE_WELCOME, // Show the level intro screen. + + // During these states, you can either be a new player waiting to join, or + // you can be a live player in the game who wants to change teams. + // Either way, you can't move while choosing team or class (or while any menu is up). + STATE_PICKINGTEAM, // Choosing team. + STATE_PICKINGCLASS, // Choosing class. + + STATE_DEATH_ANIM, // Playing death anim, waiting for that to finish. + STATE_DEATH_WAIT_FOR_KEY, // Done playing death anim. Waiting for keypress to go into observer mode. + STATE_OBSERVER_MODE, // Noclipping around, watching players, etc. + NUM_PLAYER_STATES +}; + + +enum e_RoundEndReason +{ + Invalid_Round_End_Reason = -1, + Target_Bombed, + VIP_Escaped, + VIP_Assassinated, + Terrorists_Escaped, + CTs_PreventEscape, + Escaping_Terrorists_Neutralized, + Bomb_Defused, + CTs_Win, + Terrorists_Win, + Round_Draw, + All_Hostages_Rescued, + Target_Saved, + Hostages_Not_Rescued, + Terrorists_Not_Escaped, + VIP_Not_Escaped, + Game_Commencing, + RoundEndReason_Count +}; + +#define PUSHAWAY_THINK_INTERVAL (1.0f / 20.0f) + +enum +{ + CS_CLASS_NONE=0, + + // Terrorist classes (keep in sync with FIRST_T_CLASS/LAST_T_CLASS). + CS_CLASS_PHOENIX_CONNNECTION, + CS_CLASS_L337_KREW, + CS_CLASS_ARCTIC_AVENGERS, + CS_CLASS_GUERILLA_WARFARE, + + // CT classes (keep in sync with FIRST_CT_CLASS/LAST_CT_CLASS). + CS_CLASS_SEAL_TEAM_6, + CS_CLASS_GSG_9, + CS_CLASS_SAS, + CS_CLASS_GIGN, + + CS_NUM_CLASSES +}; + +//============================================================================= +// HPE_BEGIN: +// [menglish] List of equipment dropped by players with freeze panel callouts +//============================================================================= +enum +{ + DROPPED_C4, + DROPPED_DEFUSE, + DROPPED_WEAPON, + DROPPED_GRENADE, // This could be an HE greande, flashbang, or smoke + DROPPED_COUNT +}; +//============================================================================= +// HPE_END +//============================================================================= + + +//============================================================================= +// +// MVP reasons +// +enum CSMvpReason_t +{ + CSMVP_UNDEFINED = 0, + CSMVP_ELIMINATION, + CSMVP_BOMBPLANT, + CSMVP_BOMBDEFUSE, + CSMVP_HOSTAGERESCUE, +}; + + +// Keep these in sync with CSClasses. +#define FIRST_T_CLASS CS_CLASS_PHOENIX_CONNNECTION +#define LAST_T_CLASS CS_CLASS_GUERILLA_WARFARE + +#define FIRST_CT_CLASS CS_CLASS_SEAL_TEAM_6 +#define LAST_CT_CLASS CS_CLASS_GIGN + +#define CS_MUZZLEFLASH_NONE -1 +#define CS_MUZZLEFLASH_NORM 0 +#define CS_MUZZLEFLASH_X 1 + +class CCSClassInfo +{ +public: + const char *m_pClassName; +}; + +const CCSClassInfo* GetCSClassInfo( int i ); + +extern const char *pszWinPanelCategoryHeaders[]; + +#endif // CS_SHAREDDEFS_H |