#define LTClientShellOffset 0x498a08#define FORCEINLINE __forceinline
class cObject
{
public:
char spacer00[ 4 ];
D3DXVECTOR3 Maxes;
D3DXVECTOR3 Mins;
char spacer01[ 196 ];
D3DXVECTOR3 Position;
public:
FORCEINLINE D3DXVECTOR3 GetMins( void )
{
return ( this != nullptr ) ? Mins : D3DXVECTOR3( 0, 0, 0 );
}
FORCEINLINE D3DXVECTOR3 GetMaxes( void )
{
return ( this != nullptr ) ? Maxes : D3DXVECTOR3( 0, 0, 0 );
}
FORCEINLINE D3DXVECTOR3 GetPos( void )
{
return ( this != nullptr ) ? Position : D3DXVECTOR3( 0, 0, 0 );
}
};
class cPlayerInfo
{
public:
UINT uiLocalIndex;
cObject* pObject;
BYTE ucClientID;
BYTE ucTeamID;
char szName[ 14 ];
LPVOID pPlayerFX;
char spacer01[ 10 ];
int iState;
int iRank;
char spacer02[ 10 ];
WORD usHealth;
char spacer03[ 1166 ];
public:
FORCEINLINE bool IsValid( void )
{
return ( this != nullptr && pObject != nullptr && pPlayerFX != nullptr ) ? true : false;
}
};
class cILTClientShellStub
{
public:
char spacer00[ 8 ];
LPVOID pCamera;
char spacer01[ 64 ];
bool bIsAlive;
char spacer02[ 7 ];
LPVOID pLTPlayerClient;
bool bInGame;
char spacer03[ 29667 ];/*NA*/
//char spacer03[ 29675 ];/*PH*/
cPlayerInfo PlayerList[ 16 ];
public:
FORCEINLINE cPlayerInfo* GetPlayerByIndex( UINT uiIndex )
{
return &PlayerList[ uiIndex ];
}
FORCEINLINE cPlayerInfo* GetLocalPlayer( void )
{
return &PlayerList[ PlayerList[ 0 ].uiLocalIndex ];
}
};