This repository has been archived on 2024-06-01. You can view files and clone it, but cannot push or open issues or pull requests.
cathook/include/sharedobj.hpp
2018-03-29 19:08:31 +02:00

58 lines
1.1 KiB
C++
Executable File

/*
* sharedobj.h
*
* Created on: Oct 3, 2016
* Author: nullifiedcat
*/
#ifndef SHAREDOBJ_HPP_
#define SHAREDOBJ_HPP_
#include <string>
#include <vector>
struct link_map;
typedef void *(*fn_CreateInterface_t)(const char *, int *);
namespace sharedobj
{
bool LocateSharedObject(std::string &name, std::string &out_full_path);
class SharedObject
{
public:
SharedObject(const char *_file, bool _factory);
void Load();
char *Pointer(uintptr_t offset) const;
void *CreateInterface(const std::string &interface);
public:
std::string file;
std::string path;
bool factory{ false };
bool constructed{ false };
fn_CreateInterface_t fptr{ nullptr };
link_map *lmap{ nullptr };
};
SharedObject &steamclient();
SharedObject &client();
SharedObject &engine();
SharedObject &vstdlib();
SharedObject &tier0();
SharedObject &inputsystem();
SharedObject &materialsystem();
#if ENABLE_VISUALS == 1
SharedObject &vguimatsurface();
SharedObject &vgui2();
SharedObject &studiorender();
SharedObject &libsdl();
#endif
void LoadAllSharedObjects();
}
#endif /* SHAREDOBJ_HPP_ */