diff options
author | NoName <322016+Faq@users.noreply.github.com> | 2020-04-05 15:53:23 +0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-31 21:56:33 +0100 |
commit | 25e68fc5c20c2a331711ef74dbc6686d08e256ec (patch) | |
tree | ee73b9e65603f2d8a6e1ddce8f4262270f4d294a /src/server/game/Handlers/PetHandler.cpp | |
parent | a95c836b3b0cdf24347fdcf1507a5de8dfdc8734 (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
(cherry picked from commit fbcd244b2fb65bd357d9fad0f5cc4d8d684f288f)
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index da0e46c5a1d..0ae1b56ac3c 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -764,5 +764,21 @@ void WorldSession::SendPetNameInvalid(uint32 error, const std::string& name, Dec void WorldSession::HandleRequestPetInfo(WorldPackets::Pet::RequestPetInfo& /*requestPetInfo*/) { - 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->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasUnitFlag(UNIT_FLAG_POSSESSED)) + _player->VehicleSpellInitialize(); + // Packet sent when player has a charmed unit + else + _player->CharmSpellInitialize(); + } } |