//struct ILevelSystem{};
struct CCryAction{
public:
const char* GetCurrentLevel()
{
//ILevelSystem* = *(ILevelSystem**)((DWORD64)this + 0xC0);
// current pattern: 40 53 48 83 EC 20 48 8B 05 ? ? ? ? 48 8B D9 4C 8B 09
return VIRTUAL<const char * (__thiscall*)(PVOID)>(this, 95)(this); // 0x2F8 -> decimal -> 760 / 8 = result
}
};
struct CGame
{
public:
CCryAction* GetCryAction() {
return *reinterpret_cast<CCryAction**>(this + 0x48);
}
}
void Release(){
SSystemGlobalEnvironment* pSsge = SSystemGlobalEnvironment::Singlenton(); if (!pSsge) return;
CRenderer pRenderer = pSsge->GetRender();
CGame* pGame = CGame::Singlenton(); if (!pGame) return;
CCryAction* pAction = pGame->GetCryAction(); if (!pAction) return;
const char* getlevelname = pAction->GetCurrentLevel();
pRenderer->DrawLabel(x, y, false, getlevelname);
}