diff options
Diffstat (limited to 'game/shared/cstrike/cs_weapon_parse.h')
| -rw-r--r-- | game/shared/cstrike/cs_weapon_parse.h | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/game/shared/cstrike/cs_weapon_parse.h b/game/shared/cstrike/cs_weapon_parse.h new file mode 100644 index 0000000..33bf0e4 --- /dev/null +++ b/game/shared/cstrike/cs_weapon_parse.h @@ -0,0 +1,192 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef CS_WEAPON_PARSE_H +#define CS_WEAPON_PARSE_H +#ifdef _WIN32 +#pragma once +#endif + + +#include "weapon_parse.h" +#include "networkvar.h" + + +//-------------------------------------------------------------------------------------------------------- +enum CSWeaponType +{ + WEAPONTYPE_KNIFE=0, + WEAPONTYPE_PISTOL, + WEAPONTYPE_SUBMACHINEGUN, + WEAPONTYPE_RIFLE, + WEAPONTYPE_SHOTGUN, + WEAPONTYPE_SNIPER_RIFLE, + WEAPONTYPE_MACHINEGUN, + WEAPONTYPE_C4, + WEAPONTYPE_GRENADE, + WEAPONTYPE_UNKNOWN + +}; + + +//-------------------------------------------------------------------------------------------------------- +enum CSWeaponID +{ + WEAPON_NONE = 0, + + 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_AWP, + WEAPON_MP5NAVY, + WEAPON_M249, + WEAPON_M3, + WEAPON_M4A1, + WEAPON_TMP, + WEAPON_G3SG1, + WEAPON_FLASHBANG, + WEAPON_DEAGLE, + WEAPON_SG552, + WEAPON_AK47, + WEAPON_KNIFE, + WEAPON_P90, + + WEAPON_SHIELDGUN, // BOTPORT: Is this still needed? + + WEAPON_KEVLAR, + WEAPON_ASSAULTSUIT, + WEAPON_NVG, + + WEAPON_MAX, // number of weapons weapon index +}; + +#define MAX_EQUIPMENT (WEAPON_MAX - WEAPON_KEVLAR) + +void PrepareEquipmentInfo( void ); + +//-------------------------------------------------------------------------------------------------------- +const char * WeaponClassAsString( CSWeaponType weaponType ); + +//-------------------------------------------------------------------------------------------------------- +CSWeaponType WeaponClassFromString( const char* weaponType ); + +//-------------------------------------------------------------------------------------------------------- +CSWeaponType WeaponClassFromWeaponID( CSWeaponID weaponID ); + +//-------------------------------------------------------------------------------------------------------- +const char * WeaponIdAsString( CSWeaponID weaponID ); + +//-------------------------------------------------------------------------------------------------------- +CSWeaponID WeaponIdFromString( const char *szWeaponName ); + + +//-------------------------------------------------------------------------------------------------------- +class CCSWeaponInfo : public FileWeaponInfo_t +{ +public: + DECLARE_CLASS_GAMEROOT( CCSWeaponInfo, FileWeaponInfo_t ); + + CCSWeaponInfo(); + + virtual void Parse( ::KeyValues *pKeyValuesData, const char *szWeaponName ); + + int GetRealWeaponPrice( void ) { return m_iWeaponPrice; } + + +public: + + float m_flMaxSpeed; // How fast the player can run while this is his primary weapon. + + CSWeaponType m_WeaponType; + + bool m_bFullAuto; // is this a fully automatic weapon? + + int m_iTeam; // Which team can have this weapon. TEAM_UNASSIGNED if both can have it. + float m_flBotAudibleRange; // How far away a bot can hear this weapon. + float m_flArmorRatio; + + int m_iCrosshairMinDistance; + int m_iCrosshairDeltaDistance; + + bool m_bCanUseWithShield; + + char m_WrongTeamMsg[32]; // Reference to a string describing the error if someone tries to buy + // this weapon but they're on the wrong team to have it. + // Zero-length if no specific message for this weapon. + + char m_szAnimExtension[16]; + char m_szShieldViewModel[64]; + + char m_szAddonModel[MAX_WEAPON_STRING]; // If this is set, it is used as the addon model. Otherwise, szWorldModel is used. + char m_szDroppedModel[MAX_WEAPON_STRING]; // Alternate dropped model, if different from the szWorldModel the player holds + char m_szSilencerModel[MAX_WEAPON_STRING]; // Alternate model with silencer attached + + int m_iMuzzleFlashStyle; + float m_flMuzzleScale; + + // Parameters for FX_FireBullets: + int m_iPenetration; + int m_iDamage; + float m_flRange; + float m_flRangeModifier; + int m_iBullets; + float m_flCycleTime; + + // Variables that control how fast the weapon's accuracy changes as it is fired. + bool m_bAccuracyQuadratic; + float m_flAccuracyDivisor; + float m_flAccuracyOffset; + float m_flMaxInaccuracy; + + // variables for new accuracy model + float m_fSpread[2]; + float m_fInaccuracyCrouch[2]; + float m_fInaccuracyStand[2]; + float m_fInaccuracyJump[2]; + float m_fInaccuracyLand[2]; + float m_fInaccuracyLadder[2]; + float m_fInaccuracyImpulseFire[2]; + float m_fInaccuracyMove[2]; + float m_fRecoveryTimeStand; + float m_fRecoveryTimeCrouch; + float m_fInaccuracyReload; + float m_fInaccuracyAltSwitch; + + // Delay until the next idle animation after shooting. + float m_flTimeToIdleAfterFire; + float m_flIdleInterval; + + int GetWeaponPrice( void ) const; + int GetDefaultPrice( void ); + int GetPrevousPrice( void ); + void SetWeaponPrice( int iPrice ) { m_iWeaponPrice = iPrice; } + void SetDefaultPrice( int iPrice ) { m_iDefaultPrice = iPrice; } + void SetPreviousPrice( int iPrice ) { m_iPreviousPrice = iPrice; } + +private: + + int m_iWeaponPrice; + int m_iDefaultPrice; + int m_iPreviousPrice; + +}; + + +#endif // CS_WEAPON_PARSE_H |