Add project files.
This commit is contained in:
71
L2BotDll/Versions/Interlude/GameStructs/L2ParamStack.cpp
Normal file
71
L2BotDll/Versions/Interlude/GameStructs/L2ParamStack.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
#include "pch.h"
|
||||
#include "L2ParamStack.h"
|
||||
|
||||
namespace Interlude
|
||||
{
|
||||
void(__thiscall* L2ParamStack::__Ctor)(L2ParamStack* This, int) = 0;
|
||||
void(__thiscall* L2ParamStack::__Dtor)(L2ParamStack* This) = 0;
|
||||
int(__thiscall* L2ParamStack::__PushBack)(L2ParamStack* This, void*) = 0;
|
||||
void* (__thiscall* L2ParamStack::__Top)(L2ParamStack* This) = 0;
|
||||
void** (__thiscall* L2ParamStack::__GetBuffer)(L2ParamStack* This) = 0;
|
||||
int (__thiscall* L2ParamStack::__GetBufferSize)(L2ParamStack* This) = 0;
|
||||
int (__thiscall* L2ParamStack::__GetTotalBufferSize)(L2ParamStack* This) = 0;
|
||||
HMODULE L2ParamStack::_hModule = 0;
|
||||
|
||||
L2ParamStack::L2ParamStack(int size)
|
||||
{
|
||||
Init();
|
||||
(*__Ctor)(this, size);
|
||||
}
|
||||
|
||||
L2ParamStack::~L2ParamStack()
|
||||
{
|
||||
Init();
|
||||
(*__Dtor)(this);
|
||||
}
|
||||
|
||||
int L2ParamStack::PushBack(void* val)
|
||||
{
|
||||
Init();
|
||||
return (*__PushBack)(this, val);
|
||||
}
|
||||
|
||||
void* L2ParamStack::Top()
|
||||
{
|
||||
Init();
|
||||
return (*__Top)(this);
|
||||
}
|
||||
|
||||
void** L2ParamStack::GetBuffer()
|
||||
{
|
||||
Init();
|
||||
return (__GetBuffer)(this);
|
||||
}
|
||||
|
||||
int L2ParamStack::GetBufferSize()
|
||||
{
|
||||
Init();
|
||||
return (__GetBufferSize)(this);
|
||||
}
|
||||
|
||||
int L2ParamStack::GetTotalBufferSize()
|
||||
{
|
||||
Init();
|
||||
return (__GetTotalBufferSize)(this);
|
||||
}
|
||||
|
||||
void L2ParamStack::Init()
|
||||
{
|
||||
// todo exceptions
|
||||
if (_hModule == 0) {
|
||||
_hModule = GetModuleHandleA("Core.dll");
|
||||
(FARPROC&)__Ctor = GetProcAddress(_hModule, "??0L2ParamStack@@QAE@H@Z");
|
||||
(FARPROC&)__Dtor = GetProcAddress(_hModule, "??1L2ParamStack@@QAE@XZ");
|
||||
(FARPROC&)__PushBack = GetProcAddress(_hModule, "?PushBack@L2ParamStack@@QAEHPAX@Z");
|
||||
(FARPROC&)__Top = GetProcAddress(_hModule, "?Top@L2ParamStack@@QAEPAXXZ");
|
||||
(FARPROC&)__GetBuffer = GetProcAddress(_hModule, "?GetBuffer@L2ParamStack@@QAEPAPAXXZ");
|
||||
(FARPROC&)__GetBufferSize = GetProcAddress(_hModule, "?GetBufferSize@L2ParamStack@@QAEHXZ");
|
||||
(FARPROC&)__GetTotalBufferSize = GetProcAddress(_hModule, "?GetTotalBufferSize@L2ParamStack@@QAEHXZ");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user