You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
5.0 KiB
192 lines
5.0 KiB
//========= 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
|
|
|