class cPlayerInfo
{
public:
__int32 Index; //0x0000
cObject* pObject; //0x0004
unsigned char bIsDead; //0x0008
char pad_0x0009[0x3]; //0x0009
__int32 TeamID; //0x000C
char pad_0x0010[0x8]; //0x0010
__int32 ClientID; //0x0018
char pad_0x001C[0xC]; //0x001C
char cName[16]; //0x0028
char pad_0x0038[0x8]; //0x0038
__int32 Kills; //0x0040
__int32 Deaths; //0x0044
__int32 KillCombo; //0x0048 --> Not Sure
__int32 TotalDeaths; //0x004C
__int32 TotalKills; //0x0050
char pad_0x0054[0x4]; //0x0054
__int32 Suicides; //0x0058
__int32 HeadShots; //0x005C
char pad_0x0060[0x174]; //0x0060
__int32 ExpReceived; //0x01D4 --> After game ended you get this.
__int32 GPReceived; //0x01D8 --> After game ended you get this.
char pad_0x01DC[0x178]; //0x01DC
cPlayerInfo* pPlayerPrev; //0x0354
cPlayerInfo* pPlayerNext; //0x0358
char pad_0x035C[0x2CE4]; //0x035C
};//Size=0x3040
class cObject
{
public:
char pad_0x0000[0x4]; //0x0000
D3DXVECTOR3 FeetPos; //0x0004
D3DXVECTOR3 HeadPos; //0x0010
char pad_0x001C[0xAC]; //0x001C
D3DXVECTOR3 RootPos; //0x00C8
char pad_0x00D4[0x330]; //0x00D4
};//Size=0x0404
class cPlayerMgr
{
public:
INT* CameraObject; //0x0000
char pad_0x0004[0x28]; //0x0004
D3DXVECTOR3 CameraPos; //0x002C
char pad_0x0038[0x4]; //0x0038
float Pitch; //0x003C
float Yaw; //0x0040
float Roll; //0x0044
char pad_0x0048[0x38]; //0x0048
};//Size=0x0080

class cClientWeapon
{
public:
char _0x0000[312];
__int32 FireWeapon; //0x0138
__int32 CurrentAmmo; //0x013C
char _0x0140[16];
__int32 WeaponReload; //0x0150
void Fire(bool fire = true)
{
if(fire)
FireWeapon = 1;
}
};//Size=0x0438
class cClientWeaponMgr
{
public:
cClientWeapon** WeaponList; //0x0000
char _0x0004[12];
cClientWeapon* CurrentWeapon; //0x0010
char _0x0014[44];
};//Size=0x0040
class cPlayerMgr
{
public:
char _0x0000[24];
cClientWeaponMgr *ClientWeaponManager; //0x0018
char _0x001C[56];
float Pitch; //0x0054
float Yaw; //0x0058
float Rool; //0x005C
char _0x0060[248];
__int32 *CameraObject; //0x0158
__inline cClientWeapon *GetCurrentWeapon(void)
{
if(ClientWeaponManager && ClientWeaponManager->CurrentWeapon)
return ClientWeaponManager->CurrentWeapon;
return NULL;
}
};//Size=0x015C
float Pitch; //0x0054 float Yaw; //0x0058
#define ADDR_PLAYERMANAGER 0x37ABABA4
373BAACA |. 68 F0757E37 PUSH CS.377E75F0 ; ASCII "CPlayerMgr::ResetCamera() fFovX : %f" 373BAACF |. 50 PUSH EAX 373BAAD0 |. 8B42 18 MOV EAX,DWORD PTR DS:[EDX+18] 373BAAD3 |. FFD0 CALL EAX 373BAAD5 |. 83C4 10 ADD ESP,10 373BAAD8 |. 833D 80D5A537 >CMP DWORD PTR DS:[37A5D580],0 373BAADF |. 74 08 JE SHORT CS.373BAAE9 373BAAE1 |. D905 84D5A537 FLD DWORD PTR DS:[37A5D584] 373BAAE7 |. EB 02 JMP SHORT CS.373BAAEB 373BAAE9 |> D9EE FLDZ 373BAAEB |> 833D 5CD5A537 >CMP DWORD PTR DS:[37A5D55C],0 373BAAF2 |. D95C24 0C FSTP DWORD PTR SS:[ESP+C] 373BAAF6 |. 74 08 JE SHORT CS.373BAB00 373BAAF8 |. D905 60D5A537 FLD DWORD PTR DS:[37A5D560] 373BAAFE |. EB 02 JMP SHORT CS.373BAB02 373BAB00 |> D9EE FLDZ 373BAB02 |> 8BB6 58010000 MOV ESI,DWORD PTR DS:[ESI+158] >>>>>>>> CameraObject 373BAB08 |. D95C24 08 FSTP DWORD PTR SS:[ESP+8]
___:371ACFAC ___:371ACFAC loc_371ACFAC: ; CODE XREF: sub_371ACE90+105j ___:371ACFAC cmp byte ptr [esi+5C8h], 0 ___:371ACFB3 jz short loc_371ACFCA ___:371ACFB5 mov eax, dword_37A7B548 ___:371ACFBA mov ecx, [eax] ___:371ACFBC mov edx, [ecx+18h] ___:371ACFBF push offset aSetfpchasing_0 ; "SetFpChasingINfo FPCHASINGUPDATE_BOMBPL"... ___:371ACFC4 push eax ___:371ACFC5 call edx ___:371ACFC7 add esp, 8 ___:371ACFCA ___:371ACFCA loc_371ACFCA: ; CODE XREF: sub_371ACE90+123j ___:371ACFCA mov ecx, dword_37ABABA4 ___:371ACFD0 call sub_373B7840 ___:371ACFD5 test eax, eax ___:371ACFD7 jz loc_371AD067 ___:371ACFDD mov ecx, dword_37ABABA4 ___:371ACFE3 mov eax, [ecx] ___:371ACFE5 mov edx, [eax+40h] ___:371ACFE8 mov esi, [esi+10h]