Moved SVC_Print::Process to a class method.

* Virtual Method Swap also points to the class method now with some dodgy memory dereferencing.
This commit is contained in:
PixieCore 2022-04-27 18:42:49 +02:00
parent 3736d71bb1
commit 1ea4dd6163
2 changed files with 7 additions and 4 deletions

View File

@ -12,11 +12,11 @@
#include "common/netmessages.h"
#include "engine/sys_utils.h"
bool HSVC_Print_Process(SVC_Print* thisptr)
bool SVC_Print::Process()
{
if (thisptr->m_szText)
if (this->m_szText)
{
DevMsg(eDLL_T::SERVER, thisptr->m_szText);
DevMsg(eDLL_T::SERVER, this->m_szText);
}
return true; // Original just return true also.
@ -24,7 +24,8 @@ bool HSVC_Print_Process(SVC_Print* thisptr)
void CNetMessages_Attach()
{
CMemory::HookVirtualMethod((uintptr_t)g_pSVC_Print_VTable, (LPVOID)HSVC_Print_Process, (LPVOID*)&SVC_Print_Process, 3);
auto SVCPrint = &SVC_Print::Process;
CMemory::HookVirtualMethod((uintptr_t)g_pSVC_Print_VTable, (LPVOID&)SVCPrint, (LPVOID*)&SVC_Print_Process, 3);
}
void CNetMessages_Detach()

View File

@ -17,6 +17,8 @@ public:
char padding[8];
const char* m_szText;
bool Process();
private:
char m_szTextBuffer[2048];
};