Core/PacketIO: updated and enabled SMSG_PLAY_MUSIC

This commit is contained in:
MitchesD
2015-03-11 20:04:57 +01:00
parent 3439225f19
commit c6718dc120
6 changed files with 23 additions and 18 deletions

View File

@@ -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());
}
}

View File

@@ -354,3 +354,10 @@ WorldPacket const* WorldPackets::Misc::LevelUpInfo::Write()
return &_worldPacket;
}
WorldPacket const* WorldPackets::Misc::PlayMusic::Write()
{
_worldPacket << uint32(SoundKitID);
return &_worldPacket;
}

View File

@@ -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;
};
}
}

View File

@@ -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);

View File

@@ -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,

View File

@@ -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*/)