aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp7
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
5 files changed, 18 insertions, 9 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d8b2e46974e..2aae0333ebf 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -25664,13 +25664,6 @@ void Player::ResyncRunes() const
GetSession()->SendPacket(data.Write());
}
-void Player::AddRunePower(uint8 index) const
-{
- WorldPacket data(SMSG_ADD_RUNE_POWER, 4);
- data << uint32(1 << index); // mask (0x00-0x3F probably)
- GetSession()->SendPacket(&data);
-}
-
void Player::InitRunes()
{
if (getClass() != CLASS_DEATH_KNIGHT)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 93dcfb4b593..7cbea6951f0 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2307,7 +2307,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint32 GetRuneBaseCooldown() const;
void SetRuneCooldown(uint8 index, uint32 cooldown);
void ResyncRunes() const;
- void AddRunePower(uint8 index) const;
void InitRunes();
void SendRespondInspectAchievements(Player* player) const;
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index c0bee056145..ec6d57f2748 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -875,6 +875,13 @@ WorldPacket const* WorldPackets::Spells::ResyncRunes::Write()
return &_worldPacket;
}
+WorldPacket const* WorldPackets::Spells::AddRunePower::Write()
+{
+ _worldPacket << uint32(AddedRunesMask);
+
+ return &_worldPacket;
+}
+
void WorldPackets::Spells::MissileTrajectoryCollision::Read()
{
_worldPacket >> Target;
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index 80c40f5c715..b1230459627 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -894,6 +894,16 @@ namespace WorldPackets
RuneData Runes;
};
+ class AddRunePower final : public ServerPacket
+ {
+ public:
+ AddRunePower() : ServerPacket(SMSG_ADD_RUNE_POWER, 4) { }
+
+ WorldPacket const* Write() override;
+
+ uint32 AddedRunesMask = 0;
+ };
+
class MissileTrajectoryCollision final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 6f528dce8dd..448b277aa16 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -876,7 +876,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_BATTLENET_FRIEND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_ITEM_PASSIVE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_LOSS_OF_CONTROL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADJUST_SPLINE_DURATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGETS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGET_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);