aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Maps/Map.cpp14
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h11
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h2
-rw-r--r--src/server/game/Spells/SpellEffects.cpp5
6 files changed, 23 insertions, 18 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 214871e8fc9..71d05031483 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -3494,12 +3494,7 @@ void Map::SendZoneDynamicInfo(Player* player)
return;
if (uint32 music = itr->second.MusicId)
- {
- WorldPacket data(SMSG_PLAY_MUSIC, 4);
- data << uint32(music);
- data << player->GetGUID();
- player->SendDirectMessage(&data);
- }
+ player->SendDirectMessage(WorldPackets::Misc::PlayMusic(music).Write());
if (WeatherState weatherId = itr->second.WeatherId)
{
@@ -3530,12 +3525,7 @@ void Map::SetZoneMusic(uint32 zoneId, uint32 musicId)
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
if (Player* player = itr->GetSource())
if (player->GetZoneId() == zoneId)
- {
- WorldPacket data(SMSG_PLAY_MUSIC, 4);
- data << uint32(musicId);
- data << player->GetGUID();
- player->SendDirectMessage(&data);
- }
+ player->SendDirectMessage(WorldPackets::Misc::PlayMusic(musicId).Write());
}
}
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index b597e6e5de2..61a008f0e9b 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -354,3 +354,10 @@ WorldPacket const* WorldPackets::Misc::LevelUpInfo::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::Misc::PlayMusic::Write()
+{
+ _worldPacket << uint32(SoundKitID);
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index 5511660eced..58409ff4282 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -493,6 +493,17 @@ namespace WorldPackets
std::array<int32, MAX_STATS> StatDelta;
int32 Cp = 0;
};
+
+ class PlayMusic final : public ServerPacket
+ {
+ public:
+ PlayMusic() : ServerPacket(SMSG_PLAY_MUSIC, 4) { }
+ PlayMusic(uint32 soundKitID) : ServerPacket(SMSG_PLAY_MUSIC, 4), SoundKitID(soundKitID) { }
+
+ WorldPacket const* Write() override;
+
+ uint32 SoundKitID = 0;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index f7425d61b93..e8c0d20e516 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1603,7 +1603,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SKINNED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_VEHICLE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_DANCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ONE_SHOT_ANIM_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ORPHAN_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 165ed58da8a..c8549696753 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -1543,7 +1543,7 @@ enum OpcodeServer : uint32
SMSG_PLAYER_SKINNED = 0xBADD,
SMSG_PLAYER_VEHICLE_DATA = 0xBADD,
SMSG_PLAY_DANCE = 0xBADD,
- SMSG_PLAY_MUSIC = 0xBADD,
+ SMSG_PLAY_MUSIC = 0x1BBA,
SMSG_PLAY_OBJECT_SOUND = 0x1BB9,
SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0xBADD,
SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0xBADD,
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index d718ad4db08..06cf95c77d2 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5500,10 +5500,7 @@ void Spell::EffectPlayMusic(SpellEffIndex /*effIndex*/)
return;
}
- WorldPacket data(SMSG_PLAY_MUSIC, 4);
- data << uint32(soundid);
- data << unitTarget->GetGUID();
- unitTarget->ToPlayer()->GetSession()->SendPacket(&data);
+ unitTarget->ToPlayer()->GetSession()->SendPacket(WorldPackets::Misc::PlayMusic(soundid).Write());
}
void Spell::EffectSpecCount(SpellEffIndex /*effIndex*/)