-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Karol Szuster edited this page Apr 26, 2022
·
3 revisions
Anubis is a plugin/DLL manager that sits between the Half-Life Engine and an HL Game mod, allowing the mod-like DLL plugins to add functionality to the HL server or game mod. Its goal is to provide modern C++ API to interact with the engine as well as the game library.
- Wraps (Re)HLDS structs around C++ classes, conversion to C types happens under the hood
-
edict_t
->IEdict
-
cvar_t
->ICvar
- ...
-
- Engine & Game funcs are based on the hookchains
void someFunc(hookchain *hook, int param1, int param2) { // some pre stuff hook->callNext(param1, param2); // calls next hook in chain // some post stuff }
void someFunc(hookchain *hook, int param1, int param2) { // some pre stuff hook->callOriginal(param1, param2); // omits next hooks and calls original game or engine func // some post stuff }
- Out-of-the-box support for game specific entities
- Executing member functions of entities
- Hooking the game entities' virtual functions
- for Half-Life offsets of the entity virtual functions are used
- for Counter-Strike and Counter-Strike:Condition Zero ReGameDLL_CS is used
- for other games there's no support as of now, there's plan to add for Day of Defeat and Team Fortress Classic
- Hooking non virtual member functions of entities (not ready yet)
- Exposes ReHLDS funcs
- not all are currently exposed, more will be added later if neccessary