@@ -213,7 +213,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
213213 bRequiredInitLoaded = false ;
214214 }
215215
216- loadEventsFromFileHook.AddGlobal (g_pCGameEventManagerVTable);
216+ loadEventsFromFileHook.AddGlobal ((IGameEventManager2*)& g_pCGameEventManagerVTable);
217217
218218 g_pCEntitySystemVTable = (CEntitySystem*)modules::server->FindVirtualTable (" CGameEntitySystem" );
219219 if (!g_pCEntitySystemVTable)
@@ -222,7 +222,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
222222 bRequiredInitLoaded = false ;
223223 }
224224
225- spawnHook.AddGlobal (g_pCEntitySystemVTable);
225+ spawnHook.AddGlobal ((CEntitySystem*)& g_pCEntitySystemVTable);
226226
227227 int offset = g_GameConfig->GetOffset (" IGameTypes_CreateWorkshopMapGroup" );
228228 if (offset == -1 )
@@ -249,7 +249,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
249249 }
250250
251251 getTouchingListHook.Configure (offset);
252- getTouchingListHook.AddGlobal (g_pCVPhys2WorldVTable);
252+ getTouchingListHook.AddGlobal ((CVPhys2World*)& g_pCVPhys2WorldVTable);
253253
254254 g_pCCSPlayer_MovementServicesVTable = (CCSPlayer_MovementServices*)modules::server->FindVirtualTable (" CCSPlayer_MovementServices" );
255255 if (!g_pCCSPlayer_MovementServicesVTable)
@@ -266,7 +266,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
266266 }
267267
268268 checkMovingGroundHook.Configure (offset);
269- checkMovingGroundHook.AddGlobal (g_pCCSPlayer_MovementServicesVTable);
269+ checkMovingGroundHook.AddGlobal ((CCSPlayer_MovementServices*)& g_pCCSPlayer_MovementServicesVTable);
270270
271271 g_pCCSPlayer_WeaponServicesVTable = (CCSPlayer_WeaponServices*)modules::server->FindVirtualTable (" CCSPlayer_WeaponServices" );
272272 if (!g_pCCSPlayer_WeaponServicesVTable)
@@ -283,7 +283,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
283283 }
284284
285285 dropWeaponHook.Configure (offset);
286- dropWeaponHook.AddGlobal (g_pCCSPlayer_WeaponServicesVTable);
286+ dropWeaponHook.AddGlobal ((CCSPlayer_WeaponServices*)& g_pCCSPlayer_WeaponServicesVTable);
287287
288288 g_pCCSGameRulesVTable = (CCSGameRules*)modules::server->FindVirtualTable (" CCSGameRules" );
289289 if (!g_pCCSGameRulesVTable)
@@ -300,7 +300,8 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
300300 }
301301
302302 goToIntermissionHook.Configure (offset);
303- goToIntermissionHook.AddGlobal (g_pCCSGameRulesVTable);
303+ // TODO: this crashes, borked in khook for some reason
304+ // goToIntermissionHook.AddGlobal((CCSGameRules*)&g_pCCSGameRulesVTable);
304305
305306 g_pCGamePlayerEquipVTable = (CGamePlayerEquip*)modules::server->FindVirtualTable (" CGamePlayerEquip" );
306307 if (!g_pCGamePlayerEquipVTable)
@@ -317,7 +318,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
317318 }
318319
319320 playerEquipUseHook.Configure (offset);
320- playerEquipUseHook.AddGlobal (g_pCGamePlayerEquipVTable);
321+ playerEquipUseHook.AddGlobal ((CGamePlayerEquip*)& g_pCGamePlayerEquipVTable);
321322
322323 offset = g_GameConfig->GetOffset (" CBaseEntity::Precache" );
323324 if (offset == -1 )
@@ -327,7 +328,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
327328 }
328329
329330 playerEquipPrecacheHook.Configure (offset);
330- playerEquipPrecacheHook.AddGlobal (g_pCGamePlayerEquipVTable);
331+ playerEquipPrecacheHook.AddGlobal ((CGamePlayerEquip*)& g_pCGamePlayerEquipVTable);
331332
332333 g_pTriggerGravityVTable = (CTriggerGravity*)modules::server->FindVirtualTable (" CTriggerGravity" );
333334 if (!g_pTriggerGravityVTable)
@@ -337,7 +338,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
337338 }
338339
339340 triggerGravityPrecacheHook.Configure (offset);
340- triggerGravityPrecacheHook.AddGlobal (g_pTriggerGravityVTable);
341+ triggerGravityPrecacheHook.AddGlobal ((CTriggerGravity*)& g_pTriggerGravityVTable);
341342
342343 offset = g_GameConfig->GetOffset (" CBaseEntity::EndTouch" );
343344 if (offset == -1 )
@@ -347,7 +348,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
347348 }
348349
349350 triggerGravityEndTouchHook.Configure (offset);
350- triggerGravityEndTouchHook.AddGlobal (g_pTriggerGravityVTable);
351+ triggerGravityEndTouchHook.AddGlobal ((CTriggerGravity*)& g_pTriggerGravityVTable);
351352
352353 g_pCCSPlayerPawnVTable = (CCSPlayerPawn*)modules::server->FindVirtualTable (" CCSPlayerPawn" );
353354 if (!g_pCCSPlayerPawnVTable)
@@ -364,7 +365,7 @@ bool CS2Fixes::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
364365 }
365366
366367 onTakeDamageAliveHook.Configure (offset);
367- onTakeDamageAliveHook.AddGlobal (g_pCCSPlayerPawnVTable);
368+ onTakeDamageAliveHook.AddGlobal ((CCSPlayerPawn*)& g_pCCSPlayerPawnVTable);
368369
369370 if (!bRequiredInitLoaded)
370371 {
@@ -461,19 +462,19 @@ bool CS2Fixes::Unload(char* error, size_t maxlen)
461462 startupServerHook.Remove (g_pNetworkServerService);
462463 checkTransmitHook.Remove (g_pSource2GameEntities);
463464 dispatchConCommandHook.Remove (g_pCVar);
464- loadEventsFromFileHook.RemoveGlobal (g_pCGameEventManagerVTable);
465- spawnHook.RemoveGlobal (g_pCEntitySystemVTable);
465+ loadEventsFromFileHook.RemoveGlobal ((IGameEventManager2*)& g_pCGameEventManagerVTable);
466+ spawnHook.RemoveGlobal ((CEntitySystem*)& g_pCEntitySystemVTable);
466467 setGameSpawnGroupMgrHook.Remove (GetNetworkGameServer ());
467468 createWorkshopMapGroupHook.Remove (g_pGameTypes);
468- getTouchingListHook.RemoveGlobal (g_pCVPhys2WorldVTable);
469- checkMovingGroundHook.RemoveGlobal (g_pCCSPlayer_MovementServicesVTable);
470- dropWeaponHook.RemoveGlobal (g_pCCSPlayer_WeaponServicesVTable);
471- goToIntermissionHook.RemoveGlobal (g_pCCSGameRulesVTable);
472- playerEquipUseHook.RemoveGlobal (g_pCGamePlayerEquipVTable);
473- playerEquipPrecacheHook.RemoveGlobal (g_pCGamePlayerEquipVTable);
474- triggerGravityPrecacheHook.RemoveGlobal (g_pTriggerGravityVTable);
475- triggerGravityEndTouchHook.RemoveGlobal (g_pTriggerGravityVTable);
476- onTakeDamageAliveHook.RemoveGlobal (g_pCCSPlayerPawnVTable);
469+ getTouchingListHook.RemoveGlobal ((CVPhys2World*)& g_pCVPhys2WorldVTable);
470+ checkMovingGroundHook.RemoveGlobal ((CCSPlayer_MovementServices*)& g_pCCSPlayer_MovementServicesVTable);
471+ dropWeaponHook.RemoveGlobal ((CCSPlayer_WeaponServices*)& g_pCCSPlayer_WeaponServicesVTable);
472+ goToIntermissionHook.RemoveGlobal ((CCSGameRules*)& g_pCCSGameRulesVTable);
473+ playerEquipUseHook.RemoveGlobal ((CGamePlayerEquip*)& g_pCGamePlayerEquipVTable);
474+ playerEquipPrecacheHook.RemoveGlobal ((CGamePlayerEquip*)& g_pCGamePlayerEquipVTable);
475+ triggerGravityPrecacheHook.RemoveGlobal ((CTriggerGravity*)& g_pTriggerGravityVTable);
476+ triggerGravityEndTouchHook.RemoveGlobal ((CTriggerGravity*)& g_pTriggerGravityVTable);
477+ onTakeDamageAliveHook.RemoveGlobal ((CCSPlayerPawn*)& g_pCCSPlayerPawnVTable);
477478
478479 ConVar_Unregister ();
479480
@@ -583,8 +584,8 @@ KHook::Return<void> CS2Fixes::Hook_DispatchConCommand(ICvar* pThis, ConCommandRe
583584
584585 if (!bGagged && !bSilent && !bFlooding)
585586 {
586- auto originalFunc = *(std::function< void (ConCommandRef, const CCommandContext&, const CCommand&)>*) KHook::GetOriginalFunction ();
587- originalFunc ( cmdHandle, ctx, args);
587+ // TODO: upstream issue
588+ // KHook::CallOriginal(&ICvar::DispatchConCommand, pThis, cmdHandle, ctx, args);
588589 }
589590 else if (bFlooding)
590591 {
@@ -732,8 +733,8 @@ KHook::Return<void> CS2Fixes::Hook_PostEventAbstract(IGameEventSystem* pThis, CS
732733
733734 uint64 clientMask = *(uint64*)clients & g_playerManager->GetSilenceSoundMask ();
734735
735- auto originalFunc = *(std::function< void (CSplitScreenSlot, bool , int , const uint64*, INetworkMessageInternal*, const CNetMessage*, unsigned long , NetChannelBufType_t)>*) KHook::GetOriginalFunction ();
736- originalFunc ( nSlot, bLocalOnly, nClientCount, &clientMask, pEvent, msg, nSize, bufType);
736+ // TODO: upstream issue
737+ // KHook::CallOriginal(&IGameEventSystem::PostEventAbstract, pThis, nSlot, bLocalOnly, nClientCount, &clientMask, pEvent, msg, nSize, bufType);
737738
738739 msg->set_weapon_id (weapon_id);
739740 msg->set_sound_type (sound_type);
@@ -912,7 +913,6 @@ KHook::Return<bool> CS2Fixes::Hook_ClientConnect(IServerGameClients* pThis, CPla
912913 if (!g_playerManager->OnClientConnected (slot, xuid, pszNetworkID))
913914 return {KHook::Action::Supersede, false };
914915
915- // TODO: verify true return isn't needed
916916 return {KHook::Action::Ignore};
917917}
918918
@@ -1081,11 +1081,11 @@ KHook::Return<void> CS2Fixes::Hook_ApplyGameSettings(IServerGameDLL* pThis, KeyV
10811081 return {KHook::Action::Ignore};
10821082}
10831083
1084- KHook::Return<void > CS2Fixes::Hook_CreateWorkshopMapGroup (IGameTypes* pThis, const char * name, CUtlStringList& mapList)
1084+ KHook::Return<void > CS2Fixes::Hook_CreateWorkshopMapGroup (IGameTypes* pThis, const char * name, const CUtlStringList& mapList)
10851085{
1086- // TODO: does this even work? just guessing how param override might work in khook..
1086+ // TODO: this isn't working even with recall, upstream issue?
10871087 if (g_cvarVoteManagerEnable.Get () && g_pMapVoteSystem->IsMapListLoaded ())
1088- mapList = g_pMapVoteSystem->CreateWorkshopMapGroup ();
1088+ KHook::Recall (KHook::Return< void >{KHook::Action::Ignore}, pThis, name, g_pMapVoteSystem->CreateWorkshopMapGroup () );
10891089
10901090 return {KHook::Action::Ignore};
10911091}
@@ -1126,7 +1126,6 @@ KHook::Return<bool> CS2Fixes::Hook_OnTakeDamage_Alive(CCSPlayerPawn* pPawn, CTak
11261126 pPawn->DropMapWeapons ();
11271127 }
11281128
1129- // TODO: verify true return isn't needed
11301129 return {KHook::Action::Ignore};
11311130}
11321131
@@ -1240,7 +1239,6 @@ KHook::Return<int> CS2Fixes::Hook_LoadEventsFromFile(IGameEventManager2* pThis,
12401239{
12411240 ExecuteOnce (g_gameEventManager = pThis);
12421241
1243- // TODO: verify 0 return isn't needed
12441242 return {KHook::Action::Ignore};
12451243}
12461244
0 commit comments