diff options
| author | MitchesD <majklprofik@seznam.cz> | 2016-10-01 13:48:16 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-10-01 13:48:16 +0200 |
| commit | ad3da9c971640c4ecc00cf4794ccc08057da7d38 (patch) | |
| tree | dd17307ceb82d116f37e1aea5443e3c4e0914f19 /src/server/game/Server/Packets | |
| parent | 20f0db0e470342f6d599818f207ce1a6d9dcbadc (diff) | |
Core/Player: Implemented account wide mounts
Closes #17369
Diffstat (limited to 'src/server/game/Server/Packets')
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 22 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 22 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index a773741b690..6cde22d5130 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -642,3 +642,25 @@ WorldPacket const* WorldPackets::Misc::DisplayGameError::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Misc::AccountMountUpdate::Write() +{ + _worldPacket.WriteBit(IsFullUpdate); + _worldPacket << uint32(Mounts->size()); + + for (auto const& spell : *Mounts) + { + _worldPacket << int32(spell.first); + _worldPacket.WriteBits(spell.second, 2); + } + + _worldPacket.FlushBits(); + + return &_worldPacket; +} + +void WorldPackets::Misc::MountSetFavorite::Read() +{ + _worldPacket >> MountSpellID; + IsFavorite = _worldPacket.ReadBit(); +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index bf8c0549314..e4aa5ebd026 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -838,6 +838,28 @@ namespace WorldPackets Optional<int32> Arg; Optional<int32> Arg2; }; + + class AccountMountUpdate final : public ServerPacket + { + public: + AccountMountUpdate() : ServerPacket(SMSG_ACCOUNT_MOUNT_UPDATE) { } + + WorldPacket const* Write() override; + + bool IsFullUpdate = false; + MountContainer const* Mounts = nullptr; + }; + + class MountSetFavorite final : public ClientPacket + { + public: + MountSetFavorite(WorldPacket&& packet) : ClientPacket(CMSG_MOUNT_SET_FAVORITE, std::move(packet)) { } + + void Read() override; + + uint32 MountSpellID = 0; + bool IsFavorite = false; + }; } } |
