diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 14 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 11 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 5 |
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*/) |