public:
auto GetActor(int entityId) { return Call<IActor * (__thiscall*)(PVOID, int)>(this, 0x78)(this, entityId); }
};
enum EFRAMEWORKLISTENERPRIORITY
{
FRAMEWORKLISTENERPRIORITY_DEFAULT,
FRAMEWORKLISTENERPRIORITY_GAME,
FRAMEWORKLISTENERPRIORITY_HUD,
FRAMEWORKLISTENERPRIORITY_MENU
}; // хук
struct IGameFrameworkListener
{
virtual ~IGameFrameworkListener() {};
virtual void OnPostUpdate(float fDeltaTime) {};
virtual void OnSaveGame(struct ISaveGame* pSaveGame) {};
virtual void OnLoadGame(struct ILoadGame* pLoadGame) {};
virtual void OnLevelEnd(const char* nextLevel) {};
virtual void OnActionEvent(struct SActionEvent& event) {};
virtual void OnPreRender();
}; // хук
struct IGameFramework {
public:
auto GetIEntitySystem() { return (CEntitySystem*)
(uint64)((uint64)this + 0x30); }
auto GetActorSystem() { return Call<IActorSystem * (__fastcall*)(PVOID)>(this, 200)(this); }
void RegisterListener(IGameFrameworkListener* pGameListener, const char* name, EFRAMEWORKLISTENERPRIORITY pGamePriority)
{
vtable<void, IGameFrameworkListener*, const char*, EFRAMEWORKLISTENERPRIORITY>(this, 0x360, pGameListener, name, pGamePriority);
} // хук
IActor* GetClientActor()
{
IActor* Local_Actor = 0;
bool bGetActorResult = Call<bool(__fastcall*)(PVOID, IActor**)>(this, 0x470)(this, &Local_Actor); //sp_difficulty (2 lines above)
if (!bGetActorResult) Local_Actor = 0;
return Local_Actor