Essas Classes Estão Corretas ?

Estou tendo um problema na função e acho q seria estas classes, Elas estão corretas ou esta faltando algo ?

Code:
class cClientWeapon
{
public:
	char unknown1[0xE0];
	__int32 fireWeapon; //0x00E0

	void Fire(bool fire = true)
	{
		if(fire) fireWeapon = 1;
	}
};//Size=0x00E4

class cClientWeaponMgr
{
public:
	cClientWeapon** WeaponList; //0x0000
	__int32 MaxWeapons; //0x0004
	__int32 WeapIndex; //0x0008
	cClientWeapon* CurrentWeapon; //0x000C
	BYTE WeaponsEnabled; //0x0010
	BYTE WeaponsVisible; //0x0011
	char unknown1[16];
	__int32 nCurrentWeaponID; //0x0020
};//Size=0x0024

class cPlayerMgrs
{
public:
 char _0x0000[24];
 cClientWeaponMgr * WeaponMgr; //0x0018 
 char _0x001C[16];
 __int32 playerFlags; //0x002C 
 char _0x0030[24];
 float Pitch; //0x0048 
 float Yaw; //0x004C 
 float Roll; //0x0050 
 char _0x0054[232];
 __int32 * CameraObject; //0x013C 
 char _0x0140[2816];

 __inline cClientWeapon* GetCurrentWeapon()
 {
  if( WeaponMgr && WeaponMgr->CurrentWeapon )
   return WeaponMgr->CurrentWeapon;

  return NULL;
 }
};

class cPlayerMgr
{
public:
	char unknown1[24];
	cClientWeaponMgr* WeaponMgr; //0x0018
	char unknown2[56];
	float Pitch; //0x0054
	float Yaw; //0x0058
	float Roll; //0x005C
	char unknown3[220];
	__int32* CameraObject; //0x013C	
};//Size=0x0138