aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorGolrag <golrag.jeremy@gmail.com>2015-04-17 09:33:41 +0200
committerGolrag <golrag.jeremy@gmail.com>2015-04-17 11:45:07 +0200
commit82a33c7fa868d5ace7f855dba26b5f41c12bab6e (patch)
tree304c6bacc7d02b8027fd33b2f6d0ac0f3b35ada3 /src/server
parent280a0b8e35ccf2fde55199938dffb2851892eaa2 (diff)
Core/PacketIO: SMSG_PLAY_SOUND
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp10
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp19
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp8
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h1
-rw-r--r--src/server/game/Entities/Object/Object.cpp8
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp8
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp6
11 files changed, 42 insertions, 42 deletions
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index f281b36e810..dc1b666a921 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -29,6 +29,7 @@
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
#include "WorldPacket.h"
+#include "MiscPackets.h"
Battlefield::Battlefield()
{
@@ -344,14 +345,9 @@ void Battlefield::EndBattle(bool endByTimer)
SendInitWorldStatesToAll();
}
-void Battlefield::DoPlaySoundToAll(uint32 SoundID)
+void Battlefield::DoPlaySoundToAll(uint32 soundID)
{
- WorldPacket data;
- data.Initialize(SMSG_PLAY_SOUND, 4 + 8);
- data << uint32(SoundID);
- data << uint64(0);
-
- BroadcastPacketToWar(&data);
+ BroadcastPacketToWar(WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID).Write());
}
bool Battlefield::HasPlayer(Player* player) const
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index d25d88ec389..c9dbee66445 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -39,6 +39,7 @@
#include "WorldPacket.h"
#include "Transport.h"
#include "BattlegroundPackets.h"
+#include "MiscPackets.h"
namespace Trinity
{
@@ -667,22 +668,18 @@ void Battleground::SendChatMessage(Creature* source, uint8 textId, WorldObject*
sCreatureTextMgr->SendChat(source, textId, target);
}
-void Battleground::PlaySoundToAll(uint32 SoundID)
+void Battleground::PlaySoundToAll(uint32 soundID)
{
- WorldPacket data;
- sBattlegroundMgr->BuildPlaySoundPacket(&data, SoundID);
- SendPacketToAll(&data);
+ SendPacketToAll(WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID).Write());
}
-void Battleground::PlaySoundToTeam(uint32 SoundID, uint32 TeamID)
+void Battleground::PlaySoundToTeam(uint32 soundID, uint32 teamID)
{
- WorldPacket data;
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
- if (Player* player = _GetPlayerForTeam(TeamID, itr, "PlaySoundToTeam"))
- {
- sBattlegroundMgr->BuildPlaySoundPacket(&data, SoundID);
- player->SendDirectMessage(&data);
- }
+ {
+ if (Player* player = _GetPlayerForTeam(teamID, itr, "PlaySoundToTeam"))
+ player->SendDirectMessage(WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID).Write());
+ }
}
void Battleground::CastSpellOnTeam(uint32 SpellID, uint32 TeamID)
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 71ec756f793..b1b98063771 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -48,6 +48,7 @@
#include "Formulas.h"
#include "DisableMgr.h"
#include "Opcodes.h"
+#include "MiscPackets.h"
/*********************************************************/
/*** BATTLEGROUND MANAGER ***/
@@ -212,13 +213,6 @@ void BattlegroundMgr::BuildBattlegroundStatusFailed(WorldPackets::Battleground::
battlefieldStatus->ClientID = *errorGuid;
}
-void BattlegroundMgr::BuildPlaySoundPacket(WorldPacket* data, uint32 soundid)
-{
- data->Initialize(SMSG_PLAY_SOUND, 4 + 8);
- *data << uint32(soundid);
- *data << uint64(0);
-}
-
void BattlegroundMgr::BuildPlayerLeftBattlegroundPacket(WorldPacket* data, ObjectGuid guid)
{
data->Initialize(SMSG_BATTLEGROUND_PLAYER_LEFT, 8);
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h
index 5f4fe41437c..55afad9e6c6 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.h
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.h
@@ -92,7 +92,6 @@ class BattlegroundMgr
void BuildBattlegroundStatusActive(WorldPackets::Battleground::BattlefieldStatusActive* battlefieldStatus, Battleground* bg, Player* player, uint32 ticketId, uint32 joinTime, uint32 arenaType);
void BuildBattlegroundStatusQueued(WorldPackets::Battleground::BattlefieldStatusQueued* battlefieldStatus, Battleground* bg, Player* player, uint32 ticketId, uint32 joinTime, uint32 avgWaitTime, uint32 arenaType, bool asGroup);
void BuildBattlegroundStatusFailed(WorldPackets::Battleground::BattlefieldStatusFailed* battlefieldStatus, Battleground* bg, Player* pPlayer, uint32 ticketId, uint32 arenaType, GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid = nullptr);
- void BuildPlaySoundPacket(WorldPacket* data, uint32 soundId);
void SendAreaSpiritHealerQueryOpcode(Player* player, Battleground* bg, ObjectGuid guid);
/* Battlegrounds */
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index e3869761118..a4a2b965f3e 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -53,6 +53,7 @@
#include "Battleground.h"
#include "Chat.h"
#include "GameObjectPackets.h"
+#include "MiscPackets.h"
Object::Object()
{
@@ -3167,13 +3168,10 @@ void WorldObject::PlayDistanceSound(uint32 sound_id, Player* target /*= NULL*/)
void WorldObject::PlayDirectSound(uint32 sound_id, Player* target /*= NULL*/)
{
- WorldPacket data(SMSG_PLAY_SOUND, 4 + 8);
- data << uint32(sound_id);
- data << GetGUID();
if (target)
- target->SendDirectMessage(&data);
+ target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write());
else
- SendMessageToSet(&data, true);
+ SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write(), true);
}
void WorldObject::DestroyForNearbyPlayers()
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index 068b91436b0..49f6d8501cf 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -431,3 +431,11 @@ void WorldPackets::Misc::ObjectUpdateRescued::Read()
{
_worldPacket >> ObjectGUID;
}
+
+WorldPacket const* WorldPackets::Misc::PlaySound::Write()
+{
+ _worldPacket << int32(SoundKitID);
+ _worldPacket << SourceObjectGuid;
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index d4c197a7b38..c79fb5ba762 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -594,6 +594,18 @@ namespace WorldPackets
ObjectGuid ObjectGUID;
};
+
+ class PlaySound final : public ServerPacket
+ {
+ public:
+ PlaySound() : ServerPacket(SMSG_PLAY_SOUND, 20) { }
+ PlaySound(ObjectGuid sourceObjectGuid, int32 soundKitID) : ServerPacket(SMSG_PLAY_SOUND, 20), SourceObjectGuid(sourceObjectGuid), SoundKitID(soundKitID) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid SourceObjectGuid;
+ int32 SoundKitID = 0;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 4bd42c94472..33918658385 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1484,7 +1484,7 @@ void OpcodeTable::Initialize()
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);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_UNHANDLED, 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_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 71b96c3d5bc..281504b9aaf 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -25,6 +25,7 @@
#include "GridNotifiersImpl.h"
#include "CreatureTextMgr.h"
#include "ChatPackets.h"
+#include "MiscPackets.h"
class CreatureTextBuilder
{
@@ -334,13 +335,10 @@ void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType,
if (!sound || !source)
return;
- WorldPacket data(SMSG_PLAY_SOUND, 4 + 8);
- data << uint32(sound);
- data << source->GetGUID();
- SendNonChatPacket(source, &data, msgType, whisperTarget, range, team, gmOnly);
+ SendNonChatPacket(source, WorldPackets::Misc::PlaySound(source->GetGUID(), sound).Write(), msgType, whisperTarget, range, team, gmOnly);
}
-void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly)
+void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket const* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly)
{
switch (msgType)
{
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 75650d0b169..307f6ece4f8 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -112,7 +112,7 @@ class CreatureTextMgr
CreatureTextRepeatIds GetRepeatGroup(Creature* source, uint8 textGroup) const;
void SetRepeatId(Creature* source, uint8 textGroup, uint8 id);
- static void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly);
+ static void SendNonChatPacket(WorldObject* source, WorldPacket const* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly);
static float GetRangeForChatType(ChatMsg msgType);
CreatureTextMap mTextMap;
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index a63c300f685..9e537e42d20 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -37,6 +37,7 @@
#include "MMapFactory.h"
#include "DisableMgr.h"
#include "SpellHistory.h"
+#include "MiscPackets.h"
class misc_commandscript : public CommandScript
{
@@ -2567,10 +2568,7 @@ public:
return false;
}
- WorldPacket data(SMSG_PLAY_SOUND, 4 + 8);
- data << uint32(soundId);
- data << handler->GetSession()->GetPlayer()->GetGUID();
- sWorld->SendGlobalMessage(&data);
+ sWorld->SendGlobalMessage(WorldPackets::Misc::PlaySound(handler->GetSession()->GetPlayer()->GetGUID(), soundId).Write());
handler->PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId);
return true;