aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNoName <322016+Faq@users.noreply.github.com>2020-04-05 15:53:23 +0300
committerGitHub <noreply@github.com>2020-04-05 14:53:23 +0200
commitfbcd244b2fb65bd357d9fad0f5cc4d8d684f288f (patch)
tree41ee18fd55b7c97b1eb28cbf389e17db87f0fcce /src
parentd5f57342412608de5233d1e576eedb73e7bcd0f9 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/PetHandler.cpp18
1 files changed, 17 insertions, 1 deletions
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();
+ }
}