diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 14 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 27 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 40 |
3 files changed, 70 insertions, 11 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 42dfc34c6de..215a82d169c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -725,22 +725,14 @@ void Player::SendMirrorTimer(MirrorTimerType Type, uint32 MaxValue, uint32 Curre StopMirrorTimer(Type); return; } - WorldPacket data(SMSG_START_MIRROR_TIMER, (21)); - data << (uint32)Type; - data << CurrentValue; - data << MaxValue; - data << Regen; - data << (uint8)0; - data << (uint32)0; // spell id - SendDirectMessage(&data); + + SendDirectMessage(WorldPackets::Misc::StartMirrorTimer(Type, CurrentValue, MaxValue, Regen, 0, 0).Write()); } void Player::StopMirrorTimer(MirrorTimerType Type) { m_MirrorTimer[Type] = DISABLED_MIRROR_TIMER; - WorldPacket data(SMSG_STOP_MIRROR_TIMER, 4); - data << (uint32)Type; - SendDirectMessage(&data); + SendDirectMessage(WorldPackets::Misc::StopMirrorTimer(Type).Write()); } bool Player::IsImmuneToEnvironmentalDamage() const diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 1c83e7ac109..dd75cafc3b4 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -41,6 +41,33 @@ WorldPacket const* WorldPackets::Misc::BinderConfirm::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Misc::StartMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint32(Value); + _worldPacket << uint32(MaxValue); + _worldPacket << int32(Scale); + _worldPacket << uint8(Paused); + _worldPacket << uint32(SpellID); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::PauseMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint8(Paused); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::StopMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + + return &_worldPacket; +} + WorldPacket const* WorldPackets::Misc::InvalidatePlayer::Write() { _worldPacket << Guid; diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 8c7e1957c04..bd5726d3249 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -64,6 +64,46 @@ namespace WorldPackets ObjectGuid Unit; }; + class StartMirrorTimer final : public ServerPacket + { + public: + StartMirrorTimer() : ServerPacket(SMSG_START_MIRROR_TIMER, 21) { } + StartMirrorTimer(uint32 timer, uint32 value, uint32 maxValue, int32 scale, bool paused, uint32 spellID) : + ServerPacket(SMSG_START_MIRROR_TIMER, 21), Timer(timer), Value(value), MaxValue(maxValue), Scale(scale), Paused(paused), SpellID(spellID) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + uint32 Value = 0; + uint32 MaxValue = 0; + int32 Scale = 0; + bool Paused = false; + uint32 SpellID = 0; + }; + + class PauseMirrorTimer final : public ServerPacket + { + public: + PauseMirrorTimer() : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5) { } + PauseMirrorTimer(uint32 timer, bool paused) : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5), Timer(timer), Paused(paused) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + bool Paused = true; + }; + + class StopMirrorTimer final : public ServerPacket + { + public: + StopMirrorTimer() : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4) { } + StopMirrorTimer(uint32 timer) : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4), Timer(timer) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + }; + class InvalidatePlayer final : public ServerPacket { public: |