#define FIREFLAG_FIREKEY 0x00000100
#define FIREFLAG_SHOOT 0x00000001
class CClientWeapon
{
public:
char unknown4[8]; //0x0004
union //0x000C
{
HOBJECT hObj;
LTObjectInfo* ObjInfo;
};
char unknown16[4]; //0x0010
ModAttachment Muzzle; //0x0014
ModAttachment Scope; //0x0040
ModAttachment Magazine; //0x006C
uint32 nWeaponID; //0x0098
uint32 nAmmoID; //0x009C
CWeaponRecord* pRecord; //0x00A0
CWeaponAmmoInfo* pAmmo; //0x00A4
LTVector Pos; //0x00A8
char unknown180[8]; //0x00B4
float fAccuracy; //0x00BC
uint32 LastShootTicks; //0x00C0
char unknown196[8]; //0x00C4
float fMovePerturb; //0x00CC
float fShootPerturb; //0x00D0
uint32 LastFireType; //0x00D4
char unknown216[8]; //0x00D8
uint32 nFireFlags; //0x00E0
uint32 nAmmoInClip; //0x00E4
uint32 nClipSize; //0x00E8
WeaponState nState; //0x00EC
HMODELANIM hSelectAnim; //0x00F0
HMODELANIM hDeselectAnim; //0x00F4
HMODELANIM hReloadAnim; //0x00F8
HMODELANIM hReload1Anim; //0x00FC
HMODELANIM hPreReloadAnim; //0x0100
HMODELANIM hPostReloadAnim; //0x0104
HMODELANIM hDryFireAnim; //0x0108
HMODELANIM hIdle0Anim; //0x010C
HMODELANIM hIdle1Anim; //0x0110
HMODELANIM hFire0Anim; //0x0114
HMODELANIM hFire1Anim; //0x0118
HMODELANIM hAltFire0Anim; //0x011C
HMODELANIM hAltFire1Anim; //0x0120
HMODELANIM hPreFireAnim; //0x0124
HMODELANIM hPostFireAnim; //0x0128
HMODELANIM hPreRushAnim; //0x012C
HMODELANIM hRushAnim; //0x0130
HMODELANIM hPostRushAnim; //0x0134
char unknown312[140]; //0x0138
uint32 ConsecutiveShots; //0x01C4
union //0x01C8
{
HOBJECT hLastPlayerHitObj; //0x01C8
LTObjectInfo* pLastPlayerHitObjInfo; //0x01C8
};
DWORD HitInfo; //0x01CC & 0x100 == 1 if object is valid
HMODELNODE hHitNode; //0x01D0
LTVector vLastHitPos; //0x01D4
LTVector vDir; //0x01E0
char unknown492[20]; //0x01EC
BYTE unknown512; //0x0200
BYTE FireMode; //0x0201
BYTE unknown514; //0x0202
BYTE unknown515; //0x0203
uint32 LastFireTime1; //0x0204
uint32 LastFireTime2; //0x0208
float Multiplier; //0x020C
uint32 nIndex; //0x0210
char unknown532[8]; //0x0214
uint32 LastFireTime; //0x021C
};

