From de4eaa0de9565da604fa3b6e2b4b59efe117fd7a Mon Sep 17 00:00:00 2001 From: Meji Date: Wed, 29 Sep 2021 22:26:25 +0200 Subject: Core/BattlePets: Misc fixes (#26964) * Define BattlePetSpeciesFlags enum class. * Define BattlePetDbFlags enum class. * Added check to prevent the pet from being caged if its species has flag BattlePetSpeciesFlags::NotTradable. * Added check to prevent the pet from being caged if it's in battle pet slots. * Added check to prevent the pet from being caged if its health is below maximum health. * Only add pet if the species has flag BattlePetSpeciesFlags::WellKnown. * Added function to check flag BattlePetSpeciesFlags::LegacyAccountUnique to avoid learning copies of unique pets. * Implemented CMSG_BATTLE_PET_CLEAR_FANFARE. --- src/server/game/Server/Packets/BattlePetPackets.cpp | 5 +++++ src/server/game/Server/Packets/BattlePetPackets.h | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'src/server/game/Server/Packets') diff --git a/src/server/game/Server/Packets/BattlePetPackets.cpp b/src/server/game/Server/Packets/BattlePetPackets.cpp index f664e92ea0f..e241e985367 100644 --- a/src/server/game/Server/Packets/BattlePetPackets.cpp +++ b/src/server/game/Server/Packets/BattlePetPackets.cpp @@ -140,6 +140,11 @@ void WorldPackets::BattlePet::BattlePetSetFlags::Read() ControlType = _worldPacket.ReadBits(2); } +void WorldPackets::BattlePet::BattlePetClearFanfare::Read() +{ + _worldPacket >> PetGuid; +} + void WorldPackets::BattlePet::CageBattlePet::Read() { _worldPacket >> PetGuid; diff --git a/src/server/game/Server/Packets/BattlePetPackets.h b/src/server/game/Server/Packets/BattlePetPackets.h index 2cc13908abc..9ad402a16fa 100644 --- a/src/server/game/Server/Packets/BattlePetPackets.h +++ b/src/server/game/Server/Packets/BattlePetPackets.h @@ -158,6 +158,16 @@ namespace WorldPackets uint8 ControlType = 0; }; + class BattlePetClearFanfare final : public ClientPacket + { + public: + BattlePetClearFanfare(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PET_CLEAR_FANFARE, std::move(packet)) { } + + void Read() override; + + ObjectGuid PetGuid; + }; + class CageBattlePet final : public ClientPacket { public: -- cgit v1.2.3