diff --git a/world/client.cpp b/world/client.cpp index a245f88a7..5f47d36eb 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -906,6 +906,15 @@ bool Client::HandleDeleteCharacterPacket(const EQApplicationPacket *app) { return true; } +bool Client::HandleZoneChangePacket(const EQApplicationPacket *app) { + // HoT sends this to world while zoning and wants it echoed back. + if(ClientVersionBit & BIT_RoFAndLater) + { + QueuePacket(app); + } + return true; +} + bool Client::HandlePacket(const EQApplicationPacket *app) { EmuOpcode opcode = app->GetOpcode(); @@ -981,6 +990,11 @@ bool Client::HandlePacket(const EQApplicationPacket *app) { eqs->Close(); return true; } + case OP_ZoneChange: + { + // HoT sends this to world while zoning and wants it echoed back. + return HandleZoneChangePacket(app); + } case OP_LoginUnknown1: case OP_LoginUnknown2: case OP_CrashDump: @@ -988,16 +1002,9 @@ bool Client::HandlePacket(const EQApplicationPacket *app) { case OP_LoginComplete: case OP_ApproveWorld: case OP_WorldClientReady: - { - return true; - } - case OP_ZoneChange: - { - // HoT sends this to world while zoning and wants it echoed back. - if(ClientVersionBit & BIT_RoFAndLater) - { - QueuePacket(app); - } + { + // Essentially we are just 'eating' these packets, indicating + // they are handled. return true; } default: diff --git a/world/client.h b/world/client.h index bdef569f1..877ec17a0 100644 --- a/world/client.h +++ b/world/client.h @@ -106,6 +106,7 @@ private: bool HandleCharacterCreatePacket(const EQApplicationPacket *app); bool HandleEnterWorldPacket(const EQApplicationPacket *app); bool HandleDeleteCharacterPacket(const EQApplicationPacket *app); + bool HandleZoneChangePacket(const EQApplicationPacket *app); EQStreamInterface* const eqs; };