From 54d017023543d08e6405742d6f7bf0ff322776d9 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 28 Apr 2020 18:05:06 +0200 Subject: [PATCH] Core/Packets: converted SMSG_START_TIMER to packet class --- .../game/Battlegrounds/Battleground.cpp | 21 ++++++++++--------- .../game/Server/Packets/MiscPackets.cpp | 9 ++++++++ src/server/game/Server/Packets/MiscPackets.h | 12 +++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index be12e3889e..0959212365 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -468,14 +468,14 @@ inline void Battleground::_ProcessJoin(uint32 diff) { uint32 countdownMaxForBGType = isArena() ? ARENA_COUNTDOWN_MAX : BATTLEGROUND_COUNTDOWN_MAX; - WorldPacket data(SMSG_START_TIMER, 4+4+4); - data << uint32(0); // unk - data << uint32(countdownMaxForBGType - (GetElapsedTime() / 1000)); - data << uint32(countdownMaxForBGType); + WorldPackets::Misc::StartTimer packet; + packet.Type = 0; + packet.TimeLeft = countdownMaxForBGType - (GetElapsedTime() / IN_MILLISECONDS); + packet.TotalTime = countdownMaxForBGType; for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(itr->first)) - player->SendDirectMessage(&data); + player->SendDirectMessage(packet.Write()); m_CountdownTimer = 0; } @@ -1139,11 +1139,12 @@ void Battleground::AddPlayer(Player* player) player->CastSpell(player, SPELL_PREPARATION, true); // reduces all mana cost of spells. int32 countdownMaxForBGType = isArena() ? ARENA_COUNTDOWN_MAX : BATTLEGROUND_COUNTDOWN_MAX; - WorldPacket data(SMSG_START_TIMER, 4+4+4); - data << uint32(0); // unk - data << uint32(countdownMaxForBGType - (GetElapsedTime() / 1000)); - data << uint32(countdownMaxForBGType); - player->SendDirectMessage(&data); + + WorldPackets::Misc::StartTimer packet; + packet.Type = 0; + packet.TimeLeft = countdownMaxForBGType - (GetElapsedTime() / IN_MILLISECONDS); + packet.TotalTime = countdownMaxForBGType; + player->SendDirectMessage(packet.Write()); } } diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 702c5634f3..3a3791bd5f 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -232,3 +232,12 @@ WorldPacket const* WorldPackets::Misc::UnitHealthFrequent::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Misc::StartTimer::Write() +{ + _worldPacket << uint32(Type); + _worldPacket << uint32(TimeLeft); + _worldPacket << uint32(TotalTime); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index e347cacd33..94348c06cf 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -281,6 +281,18 @@ namespace WorldPackets ObjectGuid UnitGUID; int32 Health = 0; }; + + class StartTimer final : public ServerPacket + { + public: + StartTimer() : ServerPacket(SMSG_START_TIMER, 12) { } + + WorldPacket const* Write() override; + + uint32 Type = 0; + int32 TimeLeft = 0; + int32 TotalTime = 0; + }; } }