2019-06-20 13:22:44 +02:00
|
|
|
#pragma once
|
2020-03-28 15:47:52 +01:00
|
|
|
|
|
|
|
enum AnimationId;
|
|
|
|
enum eWeaponFire;
|
|
|
|
enum eWeaponType;
|
2019-06-20 13:22:44 +02:00
|
|
|
|
|
|
|
class CWeaponInfo {
|
2019-06-21 20:16:51 +02:00
|
|
|
// static CWeaponInfo(&ms_apWeaponInfos)[14];
|
|
|
|
static CWeaponInfo ms_apWeaponInfos[14];
|
2019-06-20 13:22:44 +02:00
|
|
|
public:
|
|
|
|
eWeaponFire m_eWeaponFire;
|
|
|
|
float m_fRange;
|
|
|
|
uint32 m_nFiringRate;
|
|
|
|
uint32 m_nReload;
|
|
|
|
uint32 m_nAmountofAmmunition;
|
|
|
|
uint32 m_nDamage;
|
|
|
|
float m_fSpeed;
|
|
|
|
float m_fRadius;
|
|
|
|
float m_fLifespan;
|
|
|
|
float m_fSpread;
|
|
|
|
CVector m_vecFireOffset;
|
|
|
|
AnimationId m_AnimToPlay;
|
|
|
|
AnimationId m_Anim2ToPlay;
|
|
|
|
float m_fAnimLoopStart;
|
|
|
|
float m_fAnimLoopEnd;
|
|
|
|
float m_fAnimFrameFire;
|
|
|
|
float m_fAnim2FrameFire;
|
|
|
|
int32 m_nModelId;
|
|
|
|
// flags
|
|
|
|
uint8 m_bUseGravity : 1;
|
|
|
|
uint8 m_bSlowsDown : 1;
|
|
|
|
uint8 m_bDissipates : 1;
|
|
|
|
uint8 m_bRandSpeed : 1;
|
|
|
|
uint8 m_bExpands : 1;
|
|
|
|
uint8 m_bExplodes : 1;
|
|
|
|
uint8 m_bCanAim : 1;
|
|
|
|
uint8 m_bCanAimWithArm : 1;
|
|
|
|
uint8 m_b1stPerson : 1;
|
|
|
|
uint8 m_bHeavy : 1;
|
|
|
|
uint8 m_bThrow : 1;
|
|
|
|
|
2019-06-21 20:16:51 +02:00
|
|
|
static void Initialise(void);
|
|
|
|
static void LoadWeaponData(void);
|
2019-06-20 13:22:44 +02:00
|
|
|
static CWeaponInfo *GetWeaponInfo(eWeaponType weaponType);
|
2019-06-21 20:16:51 +02:00
|
|
|
static eWeaponFire FindWeaponFireType(char *name);
|
|
|
|
static eWeaponType FindWeaponType(char *name);
|
|
|
|
static void Shutdown(void);
|
2019-06-20 13:22:44 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
static_assert(sizeof(CWeaponInfo) == 0x54, "CWeaponInfo: error");
|