88
99#include " SMSM.hpp"
1010
11+ REDECL (Engine::startuse_callback);
12+ REDECL (Engine::enduse_callback);
13+
14+ DETOUR_COMMAND (Engine::startuse) {
15+ if (smsm.GetMode () == 6 ) { // SMO
16+ engine->Cbuf_AddText (0 , " script smo.move.use()" , 0 );
17+ } else {
18+ Engine::startuse_callback (args);
19+ }
20+ }
21+
22+ DETOUR_COMMAND (Engine::enduse) {
23+ if (smsm.GetMode () == 6 ) { // SMO
24+ engine->Cbuf_AddText (0 , " script smo.move.unuse()" , 0 );
25+ }
26+ Engine::enduse_callback (args);
27+ }
1128
1229Engine::Engine ()
1330 : Module()
@@ -54,6 +71,9 @@ bool Engine::Init()
5471 this ->PrecacheModel = this ->engineTool ->Original <_PrecacheModel>(Offsets::PrecacheModel);
5572 }
5673
74+ Command::Hook (" +use" , Engine::startuse_callback_hook, Engine::startuse_callback);
75+ Command::Hook (" -use" , Engine::enduse_callback_hook, Engine::enduse_callback);
76+
5777 return this ->hasLoaded = this ->engineClient
5878 && this ->engineTool
5979 && this ->hoststate
@@ -75,6 +95,9 @@ void Engine::Shutdown()
7595 if (this ->engineClient ) Interface::Delete (this ->engineClient );
7696 if (this ->engineTrace ) Interface::Delete (this ->engineTrace );
7797 if (this ->engineTool ) Interface::Delete (this ->engineTool );
98+
99+ Command::Unhook (" +use" , Engine::startuse_callback);
100+ Command::Unhook (" -use" , Engine::enduse_callback);
78101}
79102
80103Engine* engine;
0 commit comments