Core/PacketIO: Implemented and enabled SMSG_STOP_SPEAKERBOT_SOUND

This commit is contained in:
Shauren
2024-03-02 00:07:47 +01:00
parent b496a6df34
commit 3f8f867425
5 changed files with 37 additions and 11 deletions

View File

@@ -3561,7 +3561,7 @@ void WorldObject::MovePositionToFirstCollision(Position &pos, float dist, float
}
}
void WorldObject::PlayDistanceSound(uint32 soundId, Player* target /*= nullptr*/)
void WorldObject::PlayDistanceSound(uint32 soundId, Player const* target /*= nullptr*/) const
{
if (target)
target->SendDirectMessage(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write());
@@ -3569,7 +3569,15 @@ void WorldObject::PlayDistanceSound(uint32 soundId, Player* target /*= nullptr*/
SendMessageToSet(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write(), true);
}
void WorldObject::PlayDirectSound(uint32 soundId, Player* target /*= nullptr*/, uint32 broadcastTextId /*= 0*/)
void WorldObject::StopDistanceSound(Player const* target /*= nullptr*/) const
{
if (target)
target->SendDirectMessage(WorldPackets::Misc::StopSpeakerbotSound(GetGUID()).Write());
else
SendMessageToSet(WorldPackets::Misc::StopSpeakerbotSound(GetGUID()).Write(), true);
}
void WorldObject::PlayDirectSound(uint32 soundId, Player const* target /*= nullptr*/, uint32 broadcastTextId /*= 0*/) const
{
if (target)
target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), soundId, broadcastTextId).Write());
@@ -3577,7 +3585,7 @@ void WorldObject::PlayDirectSound(uint32 soundId, Player* target /*= nullptr*/,
SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), soundId, broadcastTextId).Write(), true);
}
void WorldObject::PlayDirectMusic(uint32 musicId, Player* target /*= nullptr*/)
void WorldObject::PlayDirectMusic(uint32 musicId, Player const* target /*= nullptr*/) const
{
if (target)
target->SendDirectMessage(WorldPackets::Misc::PlayMusic(musicId).Write());
@@ -3585,7 +3593,7 @@ void WorldObject::PlayDirectMusic(uint32 musicId, Player* target /*= nullptr*/)
SendMessageToSet(WorldPackets::Misc::PlayMusic(musicId).Write(), true);
}
void WorldObject::PlayObjectSound(int32 soundKitId, ObjectGuid targetObjectGUID, Player* target /*= nullptr*/, int32 broadcastTextId /*= 0*/)
void WorldObject::PlayObjectSound(int32 soundKitId, ObjectGuid targetObjectGUID, Player const* target /*= nullptr*/, int32 broadcastTextId /*= 0*/) const
{
WorldPackets::Misc::PlayObjectSound pkt;
pkt.TargetObjectGUID = targetObjectGUID;

View File

@@ -578,10 +578,11 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
virtual uint8 GetLevelForTarget(WorldObject const* /*target*/) const { return 1; }
void PlayDistanceSound(uint32 soundId, Player* target = nullptr);
void PlayDirectSound(uint32 soundId, Player* target = nullptr, uint32 broadcastTextId = 0);
void PlayDirectMusic(uint32 musicId, Player* target = nullptr);
void PlayObjectSound(int32 soundKitId, ObjectGuid targetObject, Player* target = nullptr, int32 broadcastTextId = 0);
void PlayDistanceSound(uint32 soundId, Player const* target = nullptr) const;
void StopDistanceSound(Player const* target = nullptr) const;
void PlayDirectSound(uint32 soundId, Player const* target = nullptr, uint32 broadcastTextId = 0) const;
void PlayDirectMusic(uint32 musicId, Player const* target = nullptr) const;
void PlayObjectSound(int32 soundKitId, ObjectGuid targetObject, Player const* target = nullptr, int32 broadcastTextId = 0) const;
void AddObjectToRemoveList();

View File

@@ -525,6 +525,13 @@ WorldPacket const* WorldPackets::Misc::PlaySpeakerbotSound::Write()
return &_worldPacket;
}
WorldPacket const* WorldPackets::Misc::StopSpeakerbotSound::Write()
{
_worldPacket << SourceObjectGUID;
return &_worldPacket;
}
void WorldPackets::Misc::FarSight::Read()
{
Enable = _worldPacket.ReadBit();

View File

@@ -654,10 +654,9 @@ namespace WorldPackets
int32 BroadcastTextID = 0;
};
class TC_GAME_API PlaySpeakerbotSound final : public ServerPacket
class 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) { }
@@ -667,6 +666,17 @@ namespace WorldPackets
int32 SoundKitID = 0;
};
class StopSpeakerbotSound final : public ServerPacket
{
public:
StopSpeakerbotSound(ObjectGuid const& sourceObjectGUID)
: ServerPacket(SMSG_STOP_SPEAKERBOT_SOUND, 16), SourceObjectGUID(sourceObjectGUID) { }
WorldPacket const* Write() override;
ObjectGuid SourceObjectGUID;
};
class CompleteCinematic final : public ClientPacket
{
public:

View File

@@ -2073,7 +2073,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STARTER_BUILD_ACTIVATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STREAMING_MOVIES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUGGEST_INVITE_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);