diff --git a/src/Components/Modules/Party.cpp b/src/Components/Modules/Party.cpp index a52c915f..413fc90a 100644 --- a/src/Components/Modules/Party.cpp +++ b/src/Components/Modules/Party.cpp @@ -191,6 +191,15 @@ namespace Components return PartyEnable.get(); } + __declspec(naked) void PartyMigrate_HandlePacket() + { + __asm + { + mov eax, 0; + retn; + } + } + Party::Party() { if (ZoneBuilder::IsEnabled()) @@ -201,6 +210,9 @@ namespace Components PartyEnable = Dvar::Register("party_enable", Dedicated::IsEnabled(), Game::DVAR_NONE, "Enable party system"); Dvar::Register("xblive_privatematch", true, Game::DVAR_INIT, ""); + // Kill the party migrate handler - it's not necessary and has apparently been used in the past for trickery? + Utils::Hook(0x46AB70, PartyMigrate_HandlePacket, HOOK_JUMP).install()->quick(); + // various changes to SV_DirectConnect-y stuff to allow non-party joinees Utils::Hook::Set(0x460D96, 0x90E9); Utils::Hook::Set(0x460F0A, 0xEB);