* Add safetyhook, remove libudis86
Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com>
* Add modified CDetour
Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com>
* Add CDetour [Safetyhook] to build script
* Re-enable loader/core/corelogic, and fix new C++20 error
* Reenable all extensions (except dhooks)
* Make cstrike compile against new CDetour
* Remove unused variable in sdktools output?
* Make sdktools compile against new cdetour
* Downgrade to C++17
* remove auto
* fix compilation on linux
* Re-enable dhooks
* Re-authorise old compilers
* Fix invalid downgrade of std::optional
* readd libudis86 for dhooks only
---------
Co-authored-by: Kenzzer <kenzzer@users.noreply.github.com>
Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com>
The passflags are only supported by SourceHook for virtual hooks and are ignored for detours with DynamicDetours. This caused confusion, so throw an error when trying to set e.g. the DHookPass_ByRef flag on detour arguments.
We always created a new vector object instead of changing the passed in vector directly. This works for the function being called using our changed values - but the caller doesn't see the changed values if it's passing a vector by reference.
Only create a new vector if there isn't one being passed in and set the values directly in the passed in vector otherwise.
* DHooks: Allow setting CBaseEntity* param to NULL #1751
The param had to be a valid entity and wasn't allowed to be set to NULL. Behave similar to SetReturn which maps INVALID_ENT_REFERENCE (or -1) to NULL.
* Update include documentation