Joshua
8695a16ccd
Merge 756433786c into 07c708a59e
2025-11-03 14:55:36 -05:00
Nick Hastings
994b382754
fix(sourcehook): Fix compilation issues with standalone SourceHook
2024-08-04 15:02:26 -04:00
Kenzzer
1097e2bebf
remove sourcehook generated file
2024-08-03 12:16:22 -04:00
Kenzzer
87fcaca024
make jit writer public
2024-08-03 12:00:32 -04:00
Mooshua
6112248775
Code review requested changes
...
- A few style improvements
- Add & correct some documentation
- Change AddHook signature to not allow DVP as an option (for now!)
- Fix cstdio not being pulled in on linux (bleh)
- Add some more static_asserts to make errors easier to interpret (yay)
2024-05-02 15:11:16 -07:00
Mooshua
6548671084
I love spreading misinformation
...
Turns out this isn't true. Yay! Less work for me :^)
2024-04-25 20:45:47 -07:00
Mooshua
916f4058bf
Grammar, fix reference handling, add missing typenames.
2024-04-25 10:04:40 -07:00
Mooshua
8abbfbb810
Remove dependency on ISourceHook** from MethodInvoker templates.
2024-04-24 19:59:59 -07:00
Mooshua
50772ffc46
Introduce varardic hook macros
...
This is a large refactor that splits our mega-template into a few smaller ones. First off, the PLUGIN_GLOBALVARS() helpers were put in the SourceHook namespace.
- HookHandlerImpl: Responsible for the lowered delegates (post-vafmt), can be used independently of other templates added here. Relies on parent HookManager class to handle the unlowered original invocation logic. (As a template parameter)
- HookCoreImpl: Adds a public interface & glue layer beterrn managers and HookHandlerImpl
- HookImpl: non-varardic hook manager
- FmtHookImpl: format-string hook manager
FmtHookImpl was tested by hooking IVEngineServer::ClientCommand.
2024-04-24 19:48:14 -07:00
Mooshua
d96b3adb0a
Hook->HookImpl, expose "public" hook template in PLUGIN_EXPOSE
...
This allows us to specify the SH pointer and the Plugin ID pointer in the template, so when the plugin uses Hook<> it doesn't have to touch g_PLID or g_SHPtr.
Also added a little struct that wraps ISourceHook->xHookById methods.
2024-04-24 00:05:15 -07:00
Mooshua
aa88f23880
Initial draft: Templated SourceHook
...
Introduces one massive template for generating SourceHook managers.
The goal is for this to simplify the definition of SourceHooks long-term by replacing macros with templates.
This introduces some new templates for metaprogramming, but they're hidden away in the SourceHook::metaprogramming namespace.
Tested on Windows 32 bit and Linux 32 bit TF2.
2024-04-23 22:55:25 -07:00
Kenzzer
37408219ba
Shut msvc
2024-02-07 22:03:17 -05:00
Benoist
2261ff4f9c
Fix sourcehook compilation warning ( #106 )
...
Fix sourcehook compilation warning.
Co-authored-by: Kenzzer <kenzzer@users.noreply.github.com>
2023-07-30 21:36:23 -07:00
David Anderson
270c8714e3
Add variadic versions of the SH_DECL_MANUALEXTERN macro family, and wrap the hardcoded macros around these.
2015-10-25 13:47:33 -07:00
David Anderson
4918d4ff4c
Add variadic versions of the SH_DECL_EXTERN macro family, and wrap the hardcoded macros around these.
2015-10-25 13:03:02 -07:00
David Anderson
fdd571fc06
Use C++11 variadic templates for sh_memfuncinfo.h.
2015-10-24 19:36:33 -07:00
David Anderson
196d28a45a
Remove extra, unused copies of sh_memfuncinfo.h.
2015-10-24 19:31:49 -07:00
David Anderson
2ce09bfa70
Use C++11 variadic templates for core FastDelegate.
2015-10-24 18:52:31 -07:00
David Anderson
edba55f4a8
Remove extra, unused copies of FastDelegate.h/sourcehook.h from the tree.
2015-10-24 18:22:01 -07:00
David Anderson
4a652ceea6
Use variadic templates for ExecutableClass (core changes).
2015-09-25 17:53:45 -07:00
David Anderson
4477448924
Replace SetOverrideResult/GetRecallIface with variadic templates.
2015-09-24 21:16:29 -07:00
Pavol Marko
31be74561d
Fixed hooking vtables with unaligned thunk entries, and returning references in manual hooks. (bug 4655, r=dvander)
2010-10-16 23:21:58 -07:00
David Anderson
2e4b4c9f62
Fixed SourceHook v5 includes in core to be usable on Mac OS X (bug 3514, r=ds).
2009-11-24 07:19:57 -06:00
Scott Ehlert
b90b93e849
Fixed issue with vsnprintf macro being defined under MSVC 9/2008 (bug 3887, r=dvander).
2009-11-14 00:49:35 -06:00
David Anderson
e19413dd5b
Some reorganization.
...
--HG--
rename : sourcemm/IPluginManager.h => core/IPluginManager.h
rename : sourcemm/ISmmAPI.h => core/ISmmAPI.h
rename : sourcemm/ISmmPlugin.h => core/ISmmPlugin.h
rename : sourcemm/ISmmPluginExt.h => core/ISmmPluginExt.h
rename : sourcemm/LICENSE.txt => core/LICENSE.txt
rename : sourcemm/Makefile => core/Makefile
rename : sourcemm/changelog.txt => core/changelog.txt
rename : sourcemm/episode1/console.cpp => core/episode1/console.cpp
rename : sourcemm/episode1/console.h => core/episode1/console.h
rename : sourcemm/episode1/convar_smm.h => core/episode1/convar_smm.h
rename : sourcemm/episode1/msvc8/sourcemm.sln => core/episode1/msvc8/sourcemm.sln
rename : sourcemm/episode1/msvc8/sourcemm.vcproj => core/episode1/msvc8/sourcemm.vcproj
rename : sourcemm/episode1/provider_ep1.cpp => core/episode1/provider_ep1.cpp
rename : sourcemm/episode1/provider_ep1.h => core/episode1/provider_ep1.h
rename : sourcemm/episode1/vsp_listener.cpp => core/episode1/vsp_listener.cpp
rename : sourcemm/episode1/vsp_listener.h => core/episode1/vsp_listener.h
rename : sourcemm/metamod.cpp => core/metamod.cpp
rename : sourcemm/metamod.h => core/metamod.h
rename : sourcemm/metamod_console.cpp => core/metamod_console.cpp
rename : sourcemm/metamod_console.h => core/metamod_console.h
rename : sourcemm/metamod_oslink.cpp => core/metamod_oslink.cpp
rename : sourcemm/metamod_oslink.h => core/metamod_oslink.h
rename : sourcemm/metamod_plugins.cpp => core/metamod_plugins.cpp
rename : sourcemm/metamod_plugins.h => core/metamod_plugins.h
rename : sourcemm/metamod_provider.h => core/metamod_provider.h
rename : sourcemm/metamod_util.cpp => core/metamod_util.cpp
rename : sourcemm/metamod_util.h => core/metamod_util.h
rename : sourcemm/episode2/console.cpp => core/provider/console.cpp
rename : sourcemm/episode2/console.h => core/provider/console.h
rename : sourcemm/episode2/msvc8/sourcemm.sln => core/provider/msvc8/sourcemm.sln
rename : sourcemm/episode2/msvc8/sourcemm.vcproj => core/provider/msvc8/sourcemm.vcproj
rename : sourcemm/episode2/msvc9/sourcemm.sln => core/provider/msvc9/sourcemm.sln
rename : sourcemm/episode2/msvc9/sourcemm.vcproj => core/provider/msvc9/sourcemm.vcproj
rename : sourcemm/episode2/provider_ep2.cpp => core/provider/provider_ep2.cpp
rename : sourcemm/episode2/provider_ep2.h => core/provider/provider_ep2.h
rename : sourcemm/episode2/vsp_listener.cpp => core/provider/vsp_listener.cpp
rename : sourcemm/episode2/vsp_listener.h => core/provider/vsp_listener.h
rename : sourcehook/FastDelegate.h => core/sourcehook/FastDelegate.h
rename : sourcehook/generate/FastDelegate.h => core/sourcehook/generate/FastDelegate.h
rename : sourcehook/generate/FastDelegate.hxx => core/sourcehook/generate/FastDelegate.hxx
rename : sourcehook/generate/generate => core/sourcehook/generate/generate
rename : sourcehook/generate/generate.bat => core/sourcehook/generate/generate.bat
rename : sourcehook/generate/sh_memfuncinfo.h => core/sourcehook/generate/sh_memfuncinfo.h
rename : sourcehook/generate/sh_memfuncinfo.hxx => core/sourcehook/generate/sh_memfuncinfo.hxx
rename : sourcehook/generate/shworker.bin => core/sourcehook/generate/shworker.bin
rename : sourcehook/generate/shworker.exe => core/sourcehook/generate/shworker.exe
rename : sourcehook/generate/shworker/Makefile => core/sourcehook/generate/shworker/Makefile
rename : sourcehook/generate/shworker/fd_hopter.cpp => core/sourcehook/generate/shworker/fd_hopter.cpp
rename : sourcehook/generate/shworker/msvc7/shworker.vcproj => core/sourcehook/generate/shworker/msvc7/shworker.vcproj
rename : sourcehook/generate/shworker/msvc8/shworker.vcproj => core/sourcehook/generate/shworker/msvc8/shworker.vcproj
rename : sourcehook/generate/shworker/shworker.cpp => core/sourcehook/generate/shworker/shworker.cpp
rename : sourcehook/generate/sourcehook.h => core/sourcehook/generate/sourcehook.h
rename : sourcehook/generate/sourcehook.hxx => core/sourcehook/generate/sourcehook.hxx
rename : sourcehook/sh_list.h => core/sourcehook/sh_list.h
rename : sourcehook/sh_memfuncinfo.h => core/sourcehook/sh_memfuncinfo.h
rename : sourcehook/sh_memory.h => core/sourcehook/sh_memory.h
rename : sourcehook/sh_pagealloc.h => core/sourcehook/sh_pagealloc.h
rename : sourcehook/sh_stack.h => core/sourcehook/sh_stack.h
rename : sourcehook/sh_string.h => core/sourcehook/sh_string.h
rename : sourcehook/sh_tinyhash.h => core/sourcehook/sh_tinyhash.h
rename : sourcehook/sh_vector.h => core/sourcehook/sh_vector.h
rename : sourcehook/sourcehook.cpp => core/sourcehook/sourcehook.cpp
rename : sourcehook/sourcehook.h => core/sourcehook/sourcehook.h
rename : sourcehook/sourcehook_hookmangen.cpp => core/sourcehook/sourcehook_hookmangen.cpp
rename : sourcehook/sourcehook_hookmangen.h => core/sourcehook/sourcehook_hookmangen.h
rename : sourcehook/sourcehook_hookmangen_x86.h => core/sourcehook/sourcehook_hookmangen_x86.h
rename : sourcehook/sourcehook_impl.h => core/sourcehook/sourcehook_impl.h
rename : sourcehook/sourcehook_impl_chook.h => core/sourcehook/sourcehook_impl_chook.h
rename : sourcehook/sourcehook_impl_chookidman.h => core/sourcehook/sourcehook_impl_chookidman.h
rename : sourcehook/sourcehook_impl_chookmaninfo.h => core/sourcehook/sourcehook_impl_chookmaninfo.h
rename : sourcehook/sourcehook_impl_ciface.h => core/sourcehook/sourcehook_impl_ciface.h
rename : sourcehook/sourcehook_impl_cproto.h => core/sourcehook/sourcehook_impl_cproto.h
rename : sourcehook/sourcehook_impl_cvfnptr.h => core/sourcehook/sourcehook_impl_cvfnptr.h
rename : sourcehook/sourcehook_pibuilder.h => core/sourcehook/sourcehook_pibuilder.h
rename : sourcehook/test/Makefile => core/sourcehook/test/Makefile
rename : sourcehook/test/generate.bat => core/sourcehook/test/generate.bat
rename : sourcehook/test/main.cpp => core/sourcehook/test/main.cpp
rename : sourcehook/test/msvc7/test.vcproj => core/sourcehook/test/msvc7/test.vcproj
rename : sourcehook/test/msvc8/test.vcproj => core/sourcehook/test/msvc8/test.vcproj
rename : sourcehook/test/sourcehook_test.h => core/sourcehook/test/sourcehook_test.h
rename : sourcehook/test/test1.cpp => core/sourcehook/test/test1.cpp
rename : sourcehook/test/test2.cpp => core/sourcehook/test/test2.cpp
rename : sourcehook/test/test3.cpp => core/sourcehook/test/test3.cpp
rename : sourcehook/test/test4.cpp => core/sourcehook/test/test4.cpp
rename : sourcehook/test/testbail.cpp => core/sourcehook/test/testbail.cpp
rename : sourcehook/test/testbail.h => core/sourcehook/test/testbail.h
rename : sourcehook/test/testbail2.cpp => core/sourcehook/test/testbail2.cpp
rename : sourcehook/test/testevents.h => core/sourcehook/test/testevents.h
rename : sourcehook/test/testhookmangen.cpp => core/sourcehook/test/testhookmangen.cpp
rename : sourcehook/test/testhookmangen.h => core/sourcehook/test/testhookmangen.h
rename : sourcehook/test/testhookmangen.hxx => core/sourcehook/test/testhookmangen.hxx
rename : sourcehook/test/testlist.cpp => core/sourcehook/test/testlist.cpp
rename : sourcehook/test/testmanual.cpp => core/sourcehook/test/testmanual.cpp
rename : sourcehook/test/testmulti.cpp => core/sourcehook/test/testmulti.cpp
rename : sourcehook/test/testrecall.cpp => core/sourcehook/test/testrecall.cpp
rename : sourcehook/test/testreentr.cpp => core/sourcehook/test/testreentr.cpp
rename : sourcehook/test/testref.cpp => core/sourcehook/test/testref.cpp
rename : sourcehook/test/testrefret.cpp => core/sourcehook/test/testrefret.cpp
rename : sourcehook/test/testvphooks.cpp => core/sourcehook/test/testvphooks.cpp
rename : sourcemm/svn_version.h => core/svn_version.h
rename : sourcemm/svn_version.tpl => core/svn_version.tpl
rename : sourcemm/version.rc => core/version.rc
2008-11-14 04:04:02 -06:00