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.
111 lines
2.7 KiB
111 lines
2.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//============================================================================= |
|
#ifndef TF_WEAPON_PARSE_H |
|
#define TF_WEAPON_PARSE_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "weapon_parse.h" |
|
#include "networkvar.h" |
|
#include "tf_shareddefs.h" |
|
|
|
//============================================================================= |
|
// |
|
// TF Weapon Info |
|
// |
|
|
|
struct WeaponData_t |
|
{ |
|
int m_nDamage; |
|
int m_nBulletsPerShot; |
|
float m_flRange; |
|
float m_flSpread; |
|
float m_flPunchAngle; |
|
float m_flTimeFireDelay; // Time to delay between firing |
|
float m_flTimeIdle; // Time to idle after firing |
|
float m_flTimeIdleEmpty; // Time to idle after firing last bullet in clip |
|
float m_flTimeReloadStart; // Time to start into a reload (ie. shotgun) |
|
float m_flTimeReload; // Time to reload |
|
bool m_bDrawCrosshair; // Should the weapon draw a crosshair |
|
int m_iProjectile; // The type of projectile this mode fires |
|
int m_iAmmoPerShot; // How much ammo each shot consumes |
|
float m_flProjectileSpeed; // Start speed for projectiles (nail, etc.); NOTE: union with something non-projectile |
|
float m_flSmackDelay; // how long after swing should damage happen for melee weapons |
|
bool m_bUseRapidFireCrits; |
|
|
|
void Init( void ) |
|
{ |
|
m_nDamage = 0; |
|
m_nBulletsPerShot = 0; |
|
m_flRange = 0.0f; |
|
m_flSpread = 0.0f; |
|
m_flPunchAngle = 0.0f; |
|
m_flTimeFireDelay = 0.0f; |
|
m_flTimeIdle = 0.0f; |
|
m_flTimeIdleEmpty = 0.0f; |
|
m_flTimeReloadStart = 0.0f; |
|
m_flTimeReload = 0.0f; |
|
m_iProjectile = TF_PROJECTILE_NONE; |
|
m_iAmmoPerShot = 0; |
|
m_flProjectileSpeed = 0.0f; |
|
m_flSmackDelay = 0.0f; |
|
m_bUseRapidFireCrits = false; |
|
}; |
|
}; |
|
|
|
class CTFWeaponInfo : public FileWeaponInfo_t |
|
{ |
|
public: |
|
|
|
DECLARE_CLASS_GAMEROOT( CTFWeaponInfo, FileWeaponInfo_t ); |
|
|
|
CTFWeaponInfo(); |
|
~CTFWeaponInfo(); |
|
|
|
virtual void Parse( ::KeyValues *pKeyValuesData, const char *szWeaponName ); |
|
|
|
WeaponData_t const &GetWeaponData( int iWeapon ) const { return m_WeaponData[iWeapon]; } |
|
|
|
public: |
|
|
|
WeaponData_t m_WeaponData[2]; |
|
|
|
int m_iWeaponType; |
|
|
|
// Grenade. |
|
bool m_bGrenade; |
|
float m_flDamageRadius; |
|
float m_flPrimerTime; |
|
bool m_bLowerWeapon; |
|
bool m_bSuppressGrenTimer; |
|
|
|
// Skins |
|
bool m_bHasTeamSkins_Viewmodel; |
|
bool m_bHasTeamSkins_Worldmodel; |
|
|
|
// Muzzle flash |
|
char m_szMuzzleFlashModel[128]; |
|
float m_flMuzzleFlashModelDuration; |
|
char m_szMuzzleFlashParticleEffect[128]; |
|
|
|
// Tracer |
|
char m_szTracerEffect[128]; |
|
|
|
// Eject Brass |
|
bool m_bDoInstantEjectBrass; |
|
char m_szBrassModel[128]; |
|
|
|
// Explosion Effect |
|
char m_szExplosionSound[128]; |
|
char m_szExplosionEffect[128]; |
|
char m_szExplosionPlayerEffect[128]; |
|
char m_szExplosionWaterEffect[128]; |
|
|
|
bool m_bDontDrop; |
|
}; |
|
|
|
#endif // TF_WEAPON_PARSE_H
|
|
|