aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorMitchesD <majklprofik@seznam.cz>2016-10-01 13:48:16 +0200
committerShauren <shauren.trinity@gmail.com>2016-10-01 13:48:16 +0200
commitad3da9c971640c4ecc00cf4794ccc08057da7d38 (patch)
treedd17307ceb82d116f37e1aea5443e3c4e0914f19 /src/server/game/Server/Packets
parent20f0db0e470342f6d599818f207ce1a6d9dcbadc (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.cpp22
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h22
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;
+ };
}
}