Core/Packets: added SMSG_PLAY_SPEAKERBOT_SOUND packet class

This commit is contained in:
joschiwald
2016-12-03 16:45:30 +01:00
parent e66acf820b
commit 7ee0e2ad08
5 changed files with 30 additions and 12 deletions

View File

@@ -2978,23 +2978,20 @@ bool WorldObject::IsInPhase(WorldObject const* obj) const
return Trinity::Containers::Intersects(_phases.begin(), _phases.end(), obj->GetPhases().begin(), obj->GetPhases().end());
}
void WorldObject::PlayDistanceSound(uint32 sound_id, Player* target /*= NULL*/)
void WorldObject::PlayDistanceSound(uint32 soundId, Player* target /*= nullptr*/)
{
WorldPacket data(SMSG_PLAY_SPEAKERBOT_SOUND, 4 + 8);
data << uint32(sound_id);
data << GetGUID();
if (target)
target->SendDirectMessage(&data);
target->SendDirectMessage(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write());
else
SendMessageToSet(&data, true);
SendMessageToSet(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write(), true);
}
void WorldObject::PlayDirectSound(uint32 sound_id, Player* target /*= NULL*/)
void WorldObject::PlayDirectSound(uint32 soundId, Player* target /*= nullptr*/)
{
if (target)
target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write());
target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), soundId).Write());
else
SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write(), true);
SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), soundId).Write(), true);
}
void WorldObject::DestroyForNearbyPlayers()

View File

@@ -610,8 +610,8 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
virtual uint8 getLevelForTarget(WorldObject const* /*target*/) const { return 1; }
void PlayDistanceSound(uint32 sound_id, Player* target = NULL);
void PlayDirectSound(uint32 sound_id, Player* target = NULL);
void PlayDistanceSound(uint32 soundId, Player* target = nullptr);
void PlayDirectSound(uint32 soundId, Player* target = nullptr);
virtual void SaveRespawnTime() { }
void AddObjectToRemoveList();

View File

@@ -442,6 +442,14 @@ WorldPacket const* WorldPackets::Misc::PlaySound::Write()
return &_worldPacket;
}
WorldPacket const* WorldPackets::Misc::PlaySpeakerbotSound::Write()
{
_worldPacket << SourceObjectGUID;
_worldPacket << int32(SoundKitID);
return &_worldPacket;
}
void WorldPackets::Misc::FarSight::Read()
{
Enable = _worldPacket.ReadBit();

View File

@@ -611,6 +611,19 @@ namespace WorldPackets
int32 SoundKitID = 0;
};
class TC_GAME_API PlaySpeakerbotSound final : public ServerPacket
{
public:
PlaySpeakerbotSound() : ServerPacket(SMSG_PLAY_SPEAKERBOT_SOUND, 20) { }
PlaySpeakerbotSound(ObjectGuid const& sourceObjectGUID, int32 soundKitID)
: ServerPacket(SMSG_PLAY_SPEAKERBOT_SOUND, 20), SourceObjectGUID(sourceObjectGUID), SoundKitID(soundKitID) { }
WorldPacket const* Write() override;
ObjectGuid SourceObjectGUID;
int32 SoundKitID = 0;
};
class CompleteCinematic final : public ClientPacket
{
public:

View File

@@ -1505,7 +1505,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ORPHAN_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);