Files
l4d2-internal-base2/l4d2/game/modules.h
2022-10-26 17:08:42 +08:00

43 lines
1.2 KiB
C++

#pragma once
namespace Game
{
struct Modules_t
{
explicit Modules_t(HMODULE handle);
explicit Modules_t(const std::string& name);
private:
Hikari::ModuleInfo_t _info{};
void* _interface_list{};
public:
Hikari::Address_t FindPattern(const char* pattern, bool relative = false) const;
Hikari::Address_t GetVTablePointer(const std::string& vtable) const;
void* GetInterfaceList() const
{
return this->_interface_list;
}
Hikari::ModuleInfo_t Info()
{
return this->_info;
}
};
namespace Modules
{
inline std::unique_ptr<Modules_t> Client;
inline std::unique_ptr<Modules_t> Engine;
inline std::unique_ptr<Modules_t> Direct9;
inline std::unique_ptr<Modules_t> MaterialSystem;
inline std::unique_ptr<Modules_t> StudioRender;
inline std::unique_ptr<Modules_t> VStdLib;
inline std::unique_ptr<Modules_t> MatSurface;
inline std::unique_ptr<Modules_t> VGui;
inline std::unique_ptr<Modules_t> Server;
inline std::unique_ptr<Modules_t> shaderapidx9;
}
}