Okay so I have decided to start converting some of the C++ classes, As you probably know I dont use any classes except for my own built ones in the Delphi hacks, But I have come to realize these Delphi hacks could be alot more "useful" if I had some of the SDK classes to get easy access to common values for the game. I see some people talk about the classes changing so it's poinless me just converting from F.E.A.R SDK, I instead took a look at the classes in mmob C++ base and attemoted to convert some small classes to start with, But what I need to know are these classes outdated or will these be okay to convert and use?

C++ Classes
Code:
class c_player
{
public:
	char unknown1[4];
	__int32 ClientID;
	char unknown2[8];
	char Name[24];
	int* Object;
	__int32 Kills;
	__int32 Deaths;
	char unknown3[44];
	__int32 HeadShots;
	char unknown4[12];
	__int32 TeamID;
	char unknown5[4];
	bool isDead;
	char unknown6[507];
	c_player* Next;
};

class Something
{
public:
	bool bIsAlive;
};

class WepInfo
{
public:
	__int32 iBackPackABulletsLeft;
	__int32 i2ndaryBulletsLeft;
	__int32 Unknown1;
	__int32 iGrenadesLeft;
	__int32 iBackPackBBulletsLeft;
};

class Info
{
public:
	char unknown1[12];
	__int32 iHP;
	__int32 iAP;
	__int32 iMaxHP;
	__int32 iMaxAP;  
	WepInfo* gotoWepInfo;
	Something* goToSomething;
	char unknown2[364];
	float fStamina;
	__int32 iIsRunning;
	__int32 iIsJumping;
	__int32 iWeaponSlotInUse;
	char unknown3[44];
	c_player* goToPlayers;	
};

class LocalInfo
{
public:
	Info* goToInfoClass;
};

I have converted to Delphi:
Code:
interface
uses
 Windows;
 
Const
 ADDR_LOCALPTR = $378314F0;

type
 pSomething = ^Something;
 Something = Record
 iIsA****** Boolean;
end;

type
 pC_Player = ^C_Player;
 C_Player = Record
  Unknown1: array[0..3] of Char;
  ClientID: Integer;
  Unknown2: array[0..7] of Char;
  Name: array[0..23] of Char;
  Object1: ^Integer;
  Kills: Integer;
  Deaths: Integer;
  Unknown3: array[0..43] of Char;
  HeadShots: Integer;
  Unknown4: array[0..11] of Char;
  TeamID: Integer;
  Unknown5: array[0..3] of Char;
  isDead: Boolean;
  Next: pC_Player;
end;

type
 pWepInfo = ^WepInfo;
 WepInfo = Record
  iBackPackABulletsLeft: Integer;
  i2ndaryBulletsLeft: Integer;
  Unknown1: Integer;
  iGrenadesLeft: Integer;
  iBackPackBBulletsLeft: Integer;
end;

type
  pInfo = ^Info;
  Info = Record
   Unknown1: array[0..11] of Char;
   iHP: Integer;
   iAP: Integer;
   iMaxAP: Integer;
   gotoWepInfo: pWepInfo;
   gotoSomething: pSomething;
   Unknown2: array[0..362] of Char;
   fStamina: Single;
   iIsRunning: Integer;
   iIsJumping: Integer;
   iWeaponSlotInUse: Integer;
   Unknown3: array[0..43] of Char;
   gotoPlayers: pC_player;
end;

type
 pLocalInfo = ^LocalInfo;
 LocalInfo = Record
 gotoInfo: pInfo;
end;

Var
 pLocal: pLocalInfo;
 
implementation

end.
I am just having a problem at the moment typecasting it pLocalInfo (pointer to LocalInfo)
I have tried the following without success...
pLocal:= pLocalInfo(ADDR_LOCALPTR); //TypeCast to pLocalInfo
iKills:= pLocal.gotoInfo.gotoPlayers.Kills; /Failer...

Before I continue failing I thought I would just check to make sure that I am using the currently correct classes. Any help is appreciated