New Lt Client-NA

Posts 16–19 of 19 · Page 2 of 2
or use a class

Code:
class CLTBase
{
public:
	/*0x00*/	CL***ient* pL***ient;
	/*0x04*/	LTRESULT (*GetTcpIpAddress)(char* sAddress, uint32 dwBufferSize, uint16 &hostPort); 
	/*0x08*/	LTRESULT (*SendTo)(ILTMessage_Read *pMsg, const char *pAddr, uint16 nPort); 
	/*0x0C*/	LTRESULT (*StartPing)(const char *pAddr, uint16 nPort, uint32 *pPingID); 
	/*0x10*/	LTRESULT (*GetPingStatus)(uint32 nPingID, uint32 *pStatus, uint32 *pLatency);
	/*0x14*/	LTRESULT (*RemovePing)(uint32 nPingID); 
	/*0x18*/	HOBJECT (*GetMainWorldModel)(); 
	/*0x1C*/	void (*function8)(); 
	/*0x20*/	void (*function9)(); 
	/*0x24*/	void (*function10)(); 
	/*0x28*/	void (*function11)(); 
	/*0x2C*/	void (*function12)(); 
	/*0x30*/	void (*function13)(); 
	/*0x34*/	void (*function14)(); 
	/*0x38*/	void (*function15)();
	/*0x3C*/	void (*function16)();
	/*0x40*/	void (*function17)();
	/*0x44*/	void (*function18)(); 
	/*0x48*/	void (*function19)();  
	/*0x4C*/	void (*function20)(); 
	/*0x50*/	LTRESULT (*GetSoundTimer)(HLTSOUND hSound, LTFLOAT *fTimer); 
	/*0x54*/	void (*function22)(); //keine funktion
	/*0x58*/	void (*function23)(); //keine funktion
	/*0x5C*/	void (*function24)(); //
	/*0x60*/	void (*function25)();
	/*0x64*/	bool (*IntersectSegment)(IntersectQuery& Query, IntersectInfo *pInfo);
	/*0x68*/	bool (*IntersectSegmentAgainst)(IntersectQuery& Query, IntersectInfo *pInfo, HOBJECT hObject); //drawd3d
	/*0x6C*/	void (*function28)(); //GetSourceWorldOffset
	/*0x70*/	void (*function29)();
	/*0x74*/	void (*function30)(); 
	/*0x78*/	void (*function31)();
	/*0x7C*/	LTRESULT (*GetGameMode)(int *mode);
	/*0x80*/	void (*function32)(); 
	/*0x84*/	LTRESULT (*GetLocalClientID)(DWORD* pid); 
	/*0x88*/	void (*Disconnect)(); 
	/*0x8C*/	bool (*IsConnected)();
	/*0x90*/	void (*ShutDown)(); 
	/*0x94*/	void (*ShutdownWithMessage)(const wchar_t *pMsg, ...); //
	/*0x98*/	void (*function39)(); 
	/*0x9C*/	void (*function40)(); 
	/*0xA0*/	void (*function41)(); 
	/*0xA4*/	void (*function42)(); 
	/*0xA8*/	void (*function43)(); 
	/*0xAC*/	void (*function421)(); 
	/*0xB0*/	void (*function44)(); 
	/*0xB4*/	void (*function45)(); 
	/*0xB8*/	void (*function46)(); 
	/*0xBC*/	void (*function47)(); 
	/*0xC0*/	void (*function48)(); 
	/*0xC4*/	void (*function49)(); 
	/*0xC8*/	void (*function50)(); 
	/*0xCC*/	void (*function51)(); 
	/*0xD0*/	void (*function52)(); 
	/*0xD4*/	void (*function53)(); 
	/*0xD8*/	void (*function54)(); 
	/*0xDC*/	LTRESULT (*SetRenderMode)(RMode *pMode); 
	/*0xE0*/	void (*function56)(); 
	/*0xE4*/	void (*function57)(); 
	/*0xE8*/	void (*function58)(); 
	/*0xEC*/	void (*function59)(); 
	/*0xF0*/	void (*function60)(); 
	/*0xF4*/	void (*function61)(); 
	/*0xF8*/	void (*function62)(); 
	/*0xFC*/	void (*function63)(); 
	/*0x100*/	LTRESULT (*RegisterConsoleProgram)(const char *pName, ConsoleProgramFn fn);   
	/*0x104*/	LTRESULT (*UnregisterConsoleProgram)(const char* pName); 
	/*0x108*/	void (*function66)();
	/*0x10C*/	void (*function67)(); 
	/*0x110*/	void (*function68)(); 
	/*0x114*/	void (*function69)(); 
	/*0x118*/	void (*function70)(); 
	/*0x11C*/	void (*function71)(); 
	/*0x120*/	void (*function72)(); 
	/*0x124*/	void (*function73)(); 
	/*0x128*/	void (*function74)(); 
	/*0x12C*/	void (*function75)(); 
	/*0x130*/	void (*function76)(); 
	/*0x134*/	void (*function77)(); 
	/*0x138*/	void (*function78)(); 
	/*0x13C*/	void (*function79)(); 
	/*0x140*/	void (*function80)(); 
	/*0x144*/	void (*function81)(); 
	/*0x148*/	void (*function82)(); 
	/*0x14C*/	void (*function83)(); 
	/*0x150*/	void (*function84)(); 
	/*0x154*/	void (*function85)(); 
	/*0x158*/	void (*function86)(); 
	/*0x15C*/	void (*function87)(); 
	/*0x160*/	void (*function88)(); 
	/*0x164*/	void (*function89)(); 
	/*0x168*/	void (*function90)(); 
	/*0x16C*/	void (*function91)(); 
	/*0x170*/	void (*function92)(); 
	/*0x174*/	void (*function93)(); 
	/*0x178*/	void (*function94)(); 
	/*0x17C*/	void (*function95)(); 
	/*0x180*/	void (*function96)(); 
	/*0x184*/	void (*function97)(); 
	/*0x188*/	void (*function98)(); 
	/*0x18C*/	void (*function99)(); 
	/*0x190*/	void (*function100)(); 
	/*0x194*/	void (*function101)(); 
	/*0x198*/	void (*function102)(); 
	/*0x19C*/	void (*function103)(); 
	/*0x1A0*/	void (*function104)(); 
	/*0x1A4*/	void (*function105)(); 
	/*0x1A8*/	void (*function106)(); 
	/*0x1AC*/	void (*function107)(); 
	/*0x1B0*/	void (*function108)(); 
	/*0x1B4*/	void (*function109)(); 
	/*0x1B8*/	void (*function110)(); 
	/*0x1BC*/	void (*function111)(); 
	/*0x1C0*/	void (*function112)(); 
	/*0x1C4*/	void (*function113)(); 
	/*0x1C8*/	void (*function114)(); 
	/*0x1CC*/	void (*function115)(); 
	/*0x1D0*/	void (*function116)(); 
	/*0x1D4*/	void (*function117)(); 
	/*0x1D8*/	void (*function118)(); 
	/*0x1DC*/	void (*function119)(); 
	/*0x1E0*/	void (*function120)(); 
	/*0x1E4*/	void (*function121)(); 
	/*0x1E8*/	void (*function122)(); 
	/*0x1EC*/	void (*function123)(); 
	/*0x1F0*/	void (*function124)(); 
	/*0x1F4*/	void (*function125)(); 
	/*0x1F8*/	void (*function126)(); 
	/*0x1FC*/	void (*function127)(); 
	/*0x200*/	void (*function128)(); 
	/*0x204*/	HCONSOLEVAR (*GetConsoleVariable)(const char* pszVarName); 
	/*0x208*/	int (*RunConsoleCommand)(char* pszString);  //0x208
	/*0x20C*/	HLOCALOBJ (*Ge***ientObject)(); 
	/*0x210*/	void (*function132)(); 
	/*0x214*/	void (*function133)(); 
	/*0x218*/	void (*function134)(); 
	/*0x21C*/	void (*function135)(); 
	/*0x220*/	void (*function136)(); 
	/*0x224*/	void (*function137)(); 
	/*0x228*/	void (*function138)(); 
	/*0x22C*/	void (*function139)(); 
	/*0x230*/	void (*function140)(); 
	/*0x234*/	void (*function141)(); 
	/*0x238*/	void (*function142)(); 
	/*0x23C*/	void (*function143)(); 
	/*0x240*/	void (*function144)(); 
	/*0x244*/	void (*function145)(); 
	/*0x248*/	void (*function146)(); 
	/*0x24C*/	void (*function147)(); 
	/*0x250*/	void (*function148)(); 
	/*0x254*/	void (*function149)(); 
	/*0x258*/	void (*function150)(); 
	/*0x25C*/	void (*function151)(); 
	/*0x260*/	void (*function152)(); 
	/*0x264*/	void (*function153)(); 
	/*0x268*/	void (*function154)(); 
	/*0x26C*/	void (*function155)(); 
	/*0x270*/	void (*function156)(); 
	/*0x274*/	void (*function157)(); 
	/*0x278*/	void (*function158)(); 
	/*0x27C*/	void (*function159)(); 
	/*0x280*/	void (*function160)(); 
	/*0x284*/	void (*function161)(); 
	/*0x288*/	void (*function162)(); 
	/*0x28C*/	void (*function163)(); 
	/*0x290*/	void (*function164)(); 
	/*0x294*/	void (*function165)(); 
	/*0x298*/	void (*function166)(); 
	/*0x29C*/	void (*function167)(); 
	/*0x2A0*/	void (*function168)(); 
	/*0x2A4*/	void (*function169)(); 
	/*0x2A8*/	void (*function170)(); 
	/*0x2AC*/	void (*function171)(); 
	/*0x2B0*/	void (*function172)(); 
	/*0x2B4*/	void (*function173)(); 
	/*0x2B8*/	void (*function174)(); 
	/*0x2BC*/	void (*function175)(); 
	/*0x2C0*/	LTRESULT (*GetServiceList)(NetService* &pListHead); 
	/*0x2C4*/	void (*SelectService)(); 
	/*0x2C8*/	void (*function178)(); 
	/*0x2CC*/	void (*function179)(); 
	/*0x2D0*/	void (*function180)(); 
	/*0x2D4*/	LTRESULT (*IsLobbyLaunched)(const char* sDriver); 
	/*0x2D8*/	LTRESULT (*GetLobbyLaunchInfo)(const char* sDriver, void** ppLobbyLaunchData); 
	/*0x2DC*/	void (*function183)(); 
	/*0x2E0*/	LTRESULT (*GetVersionInfoExt)(LTVERSIONINFOEXT* pVersionInfo); 
	/*0x2E4*/	void (*function185)(); 
	/*0x2E8*/	void (*function186)(); 
	/*0x2EC*/	void (*function187)(); 
	/*0x2F0*/	void (*function188)(); 
	/*0x2F4*/	void (*function199)(); 
	/*0x2F8*/	void (*function200)(); 
};
Code:
CLTBase *g_pLTBase = (CLTBase*)address;
g_pLTBase->RunConsoleCommand(...);
Quote Originally Posted by mmbob View Post
We couldnt do ret 4 because that doesnt adjust esp to get the arguments off the stack... plus you really cant use ret in an inline asm block unless you want to screw up the stack.
Well... yeh it does. returns control back to calling function and resets the stack. Atleast in stdcall this would be handled inside the function, but since this code seems to be clearing up the stack outside the function I guess its a cdecl function, but I suppose the part about not returning in inline makes sense. pop esp, would do the trick as well I supposed.

@BigBoy: That is much cleaner, I think I will use that way from now on. That way there's less of a chance to screw up.

@Gordon: A class is very nice too!
^^ listen to the boss.

=P Lol, i might need this.Thnx!!
ugh wth is this i dont code so i wouldn't know.
Posts 16–19 of 19 · Page 2 of 2
This thread is closed for replies.

Similar Threads

Tags

None

Talk with us