Seaside/SpyCustom/sdk/cs_shareddefs.h
2021-06-16 18:45:17 +03:00

391 lines
8.9 KiB
C++

#ifndef CS_SHAREDDEFS_H
#define CS_SHAREDDEFS_H
#ifdef _WIN32
#pragma once
#endif
#if !defined (_GAMECONSOLE) && !defined( GC_DLL )
#endif
#include "cs_achievementdefs.h"
#define PANEL_CHOOSE_CLASS "choose_class"
#define CSTRIKE_VISUALS_DATA_BYTES 96
#define MAX_HOSTAGES 12
#define MAX_HOSTAGE_RESCUES 4
#define HOSTAGE_RULE_CAN_PICKUP 1
#define MAX_MATCH_STATS_ROUNDS 30
#define MATCH_STATS_TEAM_SWAP_ROUND 15
#define IRONSIGHT
#define GRENADE_UNDERHAND_FEATURE_ENABLED
#define GRENADE_DEFAULT_SIZE 2.0
#define CS_CONTROLLABLE_BOTS_ENABLED 1
#if !defined( CSTRIKE_DEMO_PRESSBUILD )
#define CSTRIKE_DEMO_PRESSBUILD 0
#endif
#if !defined( CSTRIKE_E3_BUILD )
#define CSTRIKE_E3_BUILD 0
#endif
#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_SHIELD;
extern const float CS_PLAYER_SPEED_STOPPED;
extern const float CS_PLAYER_SPEED_HAS_HOSTAGE;
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;
extern const float CS_PLAYER_HEAVYARMOR_FLINCH_MODIFIER;
extern const float CS_PLAYER_DUCK_SPEED_IDEAL;
#ifdef CSTRIKE15
#ifdef CLIENT_DLL
#define OLD_CROUCH_PROTOCOL_INDEX 13546
inline bool IsPreCrouchUpdateDemo(void) { return (engine->IsHLTV() || engine->IsPlayingDemo()) && engine->GetConnectionDataProtocol() <= OLD_CROUCH_PROTOCOL_INDEX; }
#endif
#endif
template< class T >
class CUtlVectorInitialized : public CUtlVector< T >
{
public:
CUtlVectorInitialized(T* pMemory, int numElements) : CUtlVector< T >(pMemory, numElements)
{
CUtlVector< T >::SetSize(numElements);
}
};
namespace TeamJoinFailedReason
{
enum Type
{
CHANGED_TOO_OFTEN,
BOTH_TEAMS_FULL,
TERRORISTS_FULL,
CTS_FULL,
CANT_JOIN_SPECTATOR,
HUMANS_CAN_ONLY_JOIN_TS,
HUMANS_CAN_ONLY_JOIN_CTS,
TOO_MANY_TS,
TOO_MANY_CTS,
};
};
#define CS_HOSTAGE_TRANSTIME_PICKUP 0.1
#define CS_HOSTAGE_TRANSTIME_DROP 0.25
#define CS_HOSTAGE_TRANSTIME_RESCUE 4.0
enum EHostageStates_t
{
k_EHostageStates_Idle = 0,
k_EHostageStates_BeingUntied,
k_EHostageStates_GettingPickedUp,
k_EHostageStates_BeingCarried,
k_EHostageStates_FollowingPlayer,
k_EHostageStates_GettingDropped,
k_EHostageStates_Rescued,
k_EHostageStates_Dead,
};
#define CONSTANT_UNITS_SMOKEGRENADERADIUS 166
#define CONSTANT_UNITS_GENERICGRENADERADIUS 115
const float SmokeGrenadeRadius = CONSTANT_UNITS_SMOKEGRENADERADIUS;
const float FlashbangGrenadeRadius = CONSTANT_UNITS_GENERICGRENADERADIUS;
const float HEGrenadeRadius = CONSTANT_UNITS_GENERICGRENADERADIUS;
const float MolotovGrenadeRadius = CONSTANT_UNITS_GENERICGRENADERADIUS;
const float DecoyGrenadeRadius = CONSTANT_UNITS_GENERICGRENADERADIUS;
#define ADDON_FLASHBANG_1 0x0001
#define ADDON_FLASHBANG_2 0x0002
#define ADDON_HE_GRENADE 0x0004
#define ADDON_SMOKE_GRENADE 0x0008
#define ADDON_C4 0x0010
#define ADDON_DEFUSEKIT 0x0020
#define ADDON_PRIMARY 0x0040
#define ADDON_PISTOL 0x0080
#define ADDON_PISTOL2 0x0100
#define ADDON_DECOY 0x0200
#define ADDON_KNIFE 0x0400
#define ADDON_MASK 0x0800
#define ADDON_TAGRENADE 0x1000
#define NUM_ADDON_BITS 13
#define ADDON_CLIENTSIDE_HOLIDAY_HAT ( 0x1 << NUM_ADDON_BITS )
#define ADDON_CLIENTSIDE_GHOST ( 0x2 << NUM_ADDON_BITS )
#define ADDON_CLIENTSIDE_ASSASSINATION_TARGET ( 0x4 << NUM_ADDON_BITS )
#define NUM_CLIENTSIDE_ADDON_BITS 3
#define WEAPON_SLOT_RIFLE 0
#define WEAPON_SLOT_PISTOL 1
#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
#define TEAM_TERRORIST 2
#define TEAM_CT 3
#define TEAM_MAXCOUNT 4
#define TEAM_TERRORIST_BASE0 TEAM_TERRORIST - 2
#define TEAM_CT_BASE0 TEAM_CT - 2
#define CS_DEATH_ANIMATION_TIME 0.5
#define CS_KILLS_FOR_DOMINATION 4
#define CS_DEATH_DOMINATION 0x0001
#define CS_DEATH_REVENGE 0x0002
#define DMG_HEADSHOT (DMG_LASTGENERICFLAG<<1)
struct PlayerViewmodelArmConfig
{
const char* szPlayerModelSearchSubStr;
const char* szSkintoneIndex;
const char* szAssociatedGloveModel;
const char* szAssociatedSleeveModel;
const char* szAssociatedSleeveModelEconOverride;
};
enum CSPlayerState
{
STATE_ACTIVE = 0,
STATE_WELCOME,
STATE_PICKINGTEAM,
STATE_PICKINGCLASS,
STATE_DEATH_ANIM,
STATE_DEATH_WAIT_FOR_KEY,
STATE_OBSERVER_MODE,
STATE_GUNGAME_RESPAWN,
STATE_DORMANT,
NUM_PLAYER_STATES
};
enum e_RoundEndReason
{
Invalid_Round_End_Reason = -1,
RoundEndReason_StillInProgress = 0,
Target_Bombed = 1,
VIP_Escaped = 2,
VIP_Assassinated = 3,
Terrorists_Escaped = 4,
CTs_PreventEscape = 5,
Escaping_Terrorists_Neutralized = 6,
Bomb_Defused = 7,
CTs_Win = 8,
Terrorists_Win = 9,
Round_Draw = 10,
All_Hostages_Rescued = 11,
Target_Saved = 12,
Hostages_Not_Rescued = 13,
Terrorists_Not_Escaped = 14,
VIP_Not_Escaped = 15,
Game_Commencing = 16,
Terrorists_Surrender = 17,
CTs_Surrender = 18,
Terrorists_Planted = 19,
CTs_ReachedHostage = 20,
RoundEndReason_Count = 21,
};
enum GamePhase
{
GAMEPHASE_WARMUP_ROUND,
GAMEPHASE_PLAYING_STANDARD,
GAMEPHASE_PLAYING_FIRST_HALF,
GAMEPHASE_PLAYING_SECOND_HALF,
GAMEPHASE_HALFTIME,
GAMEPHASE_MATCH_ENDED,
GAMEPHASE_MAX
};
enum GrenadeType_t
{
GRENADE_TYPE_EXPLOSIVE,
GRENADE_TYPE_FLASH,
GRENADE_TYPE_FIRE,
GRENADE_TYPE_DECOY,
GRENADE_TYPE_SMOKE,
GRENADE_TYPE_SENSOR,
GRENADE_TYPE_TOTAL,
};
#define PUSHAWAY_THINK_INTERVAL (1.0f / 20.0f)
#define GLOWUPDATE_DEFAULT_THINK_INTERVAL 0.2f
#define CS_MAX_PLAYER_MODELS 10
#define MAX_MODEL_STRING_SIZE 256
#define CS_CLASS_NONE 0
#define MAX_ENDMATCH_VOTE_PANELS 10
const PlayerViewmodelArmConfig* GetPlayerViewmodelArmConfigForPlayerModel(const char* szPlayerModel);
class PlayerModelInfo
{
public:
PlayerModelInfo();
#if !defined( CLIENT_DLL )
bool IsTClass(int classID);
bool IsCTClass(int classID);
int GetFirstTClass(void) const { return 1; }
int GetFirstCTClass(void) const { return m_NumTModels + 1; }
int GetFirstClass(void) const { return GetFirstTClass(); }
int GetLastTClass(void) const { return m_NumTModels; }
int GetLastCTClass(void) const { return m_NumTModels + m_NumCTModels; }
int GetLastClass(void) const { return GetLastCTClass(); }
int GetNextClassForTeam(int team);
const char* GetClassName(int classID);
const char* GetClassModelPath(int classID);
int GetNumTModels(void) const { return m_NumTModels; }
int GetNumCTModels(void) const { return m_NumCTModels; }
void InitializeForCurrentMap(void);
private:
void AddModel(const char* modelName);
void SetTViewModelArms(const char* modelName);
void SetCTViewModelArms(const char* modelName);
#endif
public:
static const char* g_customizationModelCT;
static const char* g_customizationModelT;
static const char* g_defaultTModel;
static const char* g_defaultCTModel;
static PlayerModelInfo* GetPtr(void) { return &s_PlayerModelInfo; }
private:
static PlayerModelInfo s_PlayerModelInfo;
#if !defined( CLIENT_DLL )
char m_ClassModelPaths[CS_MAX_PLAYER_MODELS][MAX_MODEL_STRING_SIZE];
char m_ClassNames[CS_MAX_PLAYER_MODELS][MAX_MODEL_STRING_SIZE];
char m_mapName[MAX_MODEL_STRING_SIZE];
int m_NumTModels;
int m_NumCTModels;
int m_NumModels;
int m_nNextClassT;
int m_nNextClassCT;
#endif
};
enum CSMvpReason_t
{
CSMVP_UNDEFINED = 0,
CSMVP_ELIMINATION,
CSMVP_BOMBPLANT,
CSMVP_BOMBDEFUSE,
CSMVP_HOSTAGERESCUE,
CSMVP_GUNGAMEWINNER,
};
#define CS_MUZZLEFLASH_NONE -1
#define CS_MUZZLEFLASH_NORM 0
#define CS_MUZZLEFLASH_X 1
extern const char* pszWinPanelCategoryHeaders[];
namespace AcquireResult
{
enum Type
{
Allowed,
InvalidItem,
AlreadyOwned,
AlreadyPurchased,
ReachedGrenadeTypeLimit,
ReachedGrenadeTotalLimit,
NotAllowedByTeam,
NotAllowedByMap,
NotAllowedByMode,
NotAllowedForPurchase,
NotAllowedByProhibition,
};
}
namespace AcquireMethod
{
enum Type
{
PickUp,
Buy,
};
}
namespace QuestProgress
{
enum Reason
{
QUEST_NONINITIALIZED,
QUEST_OK,
QUEST_NOT_ENOUGH_PLAYERS,
QUEST_WARMUP,
QUEST_NOT_CONNECTED_TO_STEAM,
QUEST_NONOFFICIAL_SERVER,
QUEST_NO_ENTITLEMENT,
QUEST_NO_QUEST,
QUEST_PLAYER_IS_BOT,
QUEST_WRONG_MAP,
QUEST_WRONG_MODE,
QUEST_NOT_SYNCED_WITH_SERVER,
QUEST_REASON_MAX,
};
const int QuestReasonBits = 4;
COMPILE_TIME_ASSERT(QUEST_REASON_MAX <= (1 << QuestReasonBits));
const char* ReasonString(Reason reason);
}
#endif