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.
193 lines
5.0 KiB
193 lines
5.0 KiB
5 years ago
|
//========= 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
|