5252#include " tier0/memdbgon.h"
5353
5454CEWHandler* g_pEWHandler = nullptr ;
55-
56- KHook::Virtual baseButtonUseHook (g_pEWHandler, &CEWHandler::Hook_Use, nullptr );
57- KHook::Virtual physBoxUseHook (g_pEWHandler, &CEWHandler::Hook_Use, nullptr );
58- KHook::Virtual rotButtonUseHook (g_pEWHandler, &CEWHandler::Hook_Use, nullptr );
59- KHook::Virtual momentaryRotButtonUseHook (g_pEWHandler, &CEWHandler::Hook_Use, nullptr );
60- KHook::Virtual physicalButtonUseHook (g_pEWHandler, &CEWHandler::Hook_Use, nullptr );
61- KHook::Virtual triggerTeleportStartTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
62- KHook::Virtual triggerOnceStartTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
63- KHook::Virtual triggerMultipleStartTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
64- KHook::Virtual triggerTeleportTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
65- KHook::Virtual triggerOnceTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
66- KHook::Virtual triggerMultipleTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
67- KHook::Virtual triggerTeleportEndTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
68- KHook::Virtual triggerOnceEndTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
69- KHook::Virtual triggerMultipleEndTouchHook (g_pEWHandler, &CEWHandler::Hook_Touch, nullptr );
55+ CEWHooks g_pEWHooks;
56+
57+ KHook::Virtual baseButtonUseHook (&g_pEWHooks, &CEWHooks::Hook_Use, nullptr );
58+ KHook::Virtual physBoxUseHook (&g_pEWHooks, &CEWHooks::Hook_Use, nullptr );
59+ KHook::Virtual rotButtonUseHook (&g_pEWHooks, &CEWHooks::Hook_Use, nullptr );
60+ KHook::Virtual momentaryRotButtonUseHook (&g_pEWHooks, &CEWHooks::Hook_Use, nullptr );
61+ KHook::Virtual physicalButtonUseHook (&g_pEWHooks, &CEWHooks::Hook_Use, nullptr );
62+ KHook::Virtual triggerTeleportStartTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
63+ KHook::Virtual triggerOnceStartTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
64+ KHook::Virtual triggerMultipleStartTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
65+ KHook::Virtual triggerTeleportTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
66+ KHook::Virtual triggerOnceTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
67+ KHook::Virtual triggerMultipleTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
68+ KHook::Virtual triggerTeleportEndTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
69+ KHook::Virtual triggerOnceEndTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
70+ KHook::Virtual triggerMultipleEndTouchHook (&g_pEWHooks, &CEWHooks::Hook_Touch, nullptr );
7071
7172CBaseEntity* g_pCBaseButtonVTable = nullptr ;
7273CBaseEntity* g_pCPhysBoxVTable = nullptr ;
@@ -1356,9 +1357,6 @@ void CEWHandler::CreateHooks()
13561357 return ;
13571358 }
13581359
1359- // TODO: these hooks crash with khook for some reason
1360- return ;
1361-
13621360 baseButtonUseHook.Configure (offset);
13631361 baseButtonUseHook.AddGlobal ((CBaseEntity*)&g_pCBaseButtonVTable);
13641362
@@ -1444,12 +1442,12 @@ void CEWHandler::RemoveHooks()
14441442 triggerMultipleEndTouchHook.RemoveGlobal ((CBaseEntity*)&g_pCTriggerMultipleVTable);
14451443}
14461444
1447- KHook::Return<void > CEWHandler ::Hook_Touch (CBaseEntity* pThis, CBaseEntity* pOther)
1445+ KHook::Return<void > CEWHooks ::Hook_Touch (CBaseEntity* pThis, CBaseEntity* pOther)
14481446{
14491447 bool bFound = false ;
1450- for (int i = 0 ; i < (vecHookedTriggers).size (); i++)
1448+ for (int i = 0 ; i < (g_pEWHandler-> vecHookedTriggers ).size (); i++)
14511449 {
1452- if (vecHookedTriggers[i] == pThis->GetHandle ())
1450+ if (g_pEWHandler-> vecHookedTriggers [i] == pThis->GetHandle ())
14531451 {
14541452 bFound = true ;
14551453 break ;
@@ -1852,13 +1850,13 @@ void CEWHandler::RemoveUseEntity(CBaseEntity* pEnt)
18521850 }
18531851}
18541852
1855- KHook::Return<void > CEWHandler ::Hook_Use (CBaseEntity* pThis, InputData_t* pInput)
1853+ KHook::Return<void > CEWHooks ::Hook_Use (CBaseEntity* pThis, InputData_t* pInput)
18561854{
18571855 // Message("##### USE HOOK #####\n");
18581856 bool bFound = false ;
1859- for (int i = 0 ; i < (vecUseHookedEntities).size (); i++)
1857+ for (int i = 0 ; i < (g_pEWHandler-> vecUseHookedEntities ).size (); i++)
18601858 {
1861- if (vecUseHookedEntities[i] == pThis->GetHandle ())
1859+ if (g_pEWHandler-> vecUseHookedEntities [i] == pThis->GetHandle ())
18621860 {
18631861 bFound = true ;
18641862 break ;
@@ -1871,9 +1869,9 @@ KHook::Return<void> CEWHandler::Hook_Use(CBaseEntity* pThis, InputData_t* pInput
18711869 int index = pThis->entindex ();
18721870 int itemIndex = -1 ;
18731871 int handlerIndex = -1 ;
1874- for (int i = 0 ; i < (vecItems).size (); i++)
1872+ for (int i = 0 ; i < (g_pEWHandler-> vecItems ).size (); i++)
18751873 {
1876- int j = vecItems[i]->FindHandlerByEntIndex (index);
1874+ int j = g_pEWHandler-> vecItems [i]->FindHandlerByEntIndex (index);
18771875 if (j != -1 )
18781876 {
18791877 itemIndex = i;
@@ -1895,7 +1893,7 @@ KHook::Return<void> CEWHandler::Hook_Use(CBaseEntity* pThis, InputData_t* pInput
18951893 if (!pActivator || !pActivator->IsPawn ())
18961894 return returnVal;
18971895
1898- std::shared_ptr<EWItemInstance> pItem = vecItems[itemIndex];
1896+ std::shared_ptr<EWItemInstance> pItem = g_pEWHandler-> vecItems [itemIndex];
18991897 CCSPlayerPawn* pPawn = (CCSPlayerPawn*)pActivator;
19001898 CCSPlayerController* pController = pPawn->GetOriginalController ();
19011899
0 commit comments