|
|
//========= 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
|