From fbcd244b2fb65bd357d9fad0f5cc4d8d684f288f Mon Sep 17 00:00:00 2001 From: NoName <322016+Faq@users.noreply.github.com> Date: Sun, 5 Apr 2020 15:53:23 +0300 Subject: Core/PacketIO: Handle CMSG_REQUEST_PET_INFO for more cases (#24364) + vehicle + charm + possession from https://github.com/The-Cataclysm-Preservation-Project/TrinityCore/commit/87c6cc19e570623ab0d1d0ae569e0a51823d0200 --- src/server/game/Handlers/PetHandler.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index ca029b23e28..f39cc88e47e 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -904,5 +904,21 @@ void WorldSession::HandleLearnPreviewTalentsPet(WorldPacket& recvData) void WorldSession::HandleRequestPetInfoOpcode(WorldPacket& /*recvPacket*/) { - GetPlayer()->PetSpellInitialize(); + // Handle the packet CMSG_REQUEST_PET_INFO - sent when player does ingame /reload command + + // Packet sent when player has a pet + if (_player->GetPet()) + _player->PetSpellInitialize(); + else if (Unit* charm = _player->GetCharmed()) + { + // Packet sent when player has a possessed unit + if (charm->HasUnitState(UNIT_STATE_POSSESSED)) + _player->PossessSpellInitialize(); + // Packet sent when player controlling a vehicle + else if (charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED)) + _player->VehicleSpellInitialize(); + // Packet sent when player has a charmed unit + else + _player->CharmSpellInitialize(); + } } -- cgit v1.2.3