aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRat <gmstreetrat@gmail.com>2015-04-10 11:29:46 +0200
committerRat <gmstreetrat@gmail.com>2015-04-10 11:29:46 +0200
commite8b54b7ae823622cca5647b3571a7740c421aa41 (patch)
tree424a2ecf48c56bd4aeebaff82b68445218c96cd2 /src
parent48ac6a22557550bde14a2275b40a50f4a4e3125b (diff)
Core/Scenes: implemented some scene related packets for debug purposes
* small cleanup
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp17
-rw-r--r--src/server/game/Server/Packets/ScenePackets.cpp17
-rw-r--r--src/server/game/Server/Packets/ScenePackets.h31
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp9
-rw-r--r--src/server/game/Server/WorldSession.h12
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp28
-rw-r--r--src/server/worldserver/worldserver.conf.dist1
7 files changed, 97 insertions, 18 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index df5fae683fe..28f908eae16 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -32,6 +32,7 @@
#include "ScriptMgr.h"
#include "GameObjectAI.h"
#include "QuestPackets.h"
+#include "ScenePackets.h"
void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPackets::Quest::QuestGiverStatusQuery& packet)
{
@@ -644,3 +645,19 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPackets::Quest::Ques
SendPacket(response.Write());
}
+
+void WorldSession::HandleSceneTriggerEvent(WorldPackets::Scenes::SceneTriggerEvent& sceneTriggerEvent)
+{
+ TC_LOG_DEBUG("scenes", "HandleSceneTriggerEvent: SceneInstanceID: %u Event: %s", sceneTriggerEvent.SceneInstanceID, sceneTriggerEvent._Event);
+}
+
+void WorldSession::HandleScenePlaybackComplete(WorldPackets::Scenes::ScenePlaybackComplete& scenePlaybackComplete)
+{
+
+ TC_LOG_DEBUG("scenes", "HandleScenePlaybackComplete: SceneInstanceID: %u", scenePlaybackComplete.SceneInstanceID);
+}
+
+void WorldSession::HandleScenePlaybackCanceled(WorldPackets::Scenes::ScenePlaybackCanceled& scenePlaybackCanceled)
+{
+ TC_LOG_DEBUG("scenes", "HandleScenePlaybackCanceled: SceneInstanceID: %u", scenePlaybackCanceled.SceneInstanceID);
+}
diff --git a/src/server/game/Server/Packets/ScenePackets.cpp b/src/server/game/Server/Packets/ScenePackets.cpp
index d265107fc5e..df37156d9dd 100644
--- a/src/server/game/Server/Packets/ScenePackets.cpp
+++ b/src/server/game/Server/Packets/ScenePackets.cpp
@@ -28,3 +28,20 @@ WorldPacket const* WorldPackets::Scenes::PlayScene::Write()
return &_worldPacket;
}
+
+void WorldPackets::Scenes::SceneTriggerEvent::Read()
+{
+ uint32 len = _worldPacket.ReadBits(6);
+ _worldPacket >> SceneInstanceID;
+ _Event = _worldPacket.ReadString(len);
+}
+
+void WorldPackets::Scenes::ScenePlaybackComplete::Read()
+{
+ _worldPacket >> SceneInstanceID;
+}
+
+void WorldPackets::Scenes::ScenePlaybackCanceled::Read()
+{
+ _worldPacket >> SceneInstanceID;
+}
diff --git a/src/server/game/Server/Packets/ScenePackets.h b/src/server/game/Server/Packets/ScenePackets.h
index 1fddb1cfadf..0b8847167ea 100644
--- a/src/server/game/Server/Packets/ScenePackets.h
+++ b/src/server/game/Server/Packets/ScenePackets.h
@@ -39,6 +39,37 @@ namespace WorldPackets
ObjectGuid TransportGUID;
Position Location;
};
+
+ class SceneTriggerEvent final : public ClientPacket
+ {
+ public:
+ SceneTriggerEvent(WorldPacket&& packet) : ClientPacket(CMSG_SCENE_TRIGGER_EVENT, std::move(packet)) { }
+
+ void Read() override;
+
+ uint32 SceneInstanceID;
+ std::string _Event;
+ };
+
+ class ScenePlaybackComplete final : public ClientPacket
+ {
+ public:
+ ScenePlaybackComplete(WorldPacket&& packet) : ClientPacket(CMSG_SCENE_PLAYBACK_COMPLETE, std::move(packet)) { }
+
+ void Read() override;
+
+ uint32 SceneInstanceID;
+ };
+
+ class ScenePlaybackCanceled final : public ClientPacket
+ {
+ public:
+ ScenePlaybackCanceled(WorldPacket&& packet) : ClientPacket(CMSG_SCENE_PLAYBACK_CANCELED, std::move(packet)) { }
+
+ void Read() override;
+
+ uint32 SceneInstanceID;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 79570812b9c..25755dbaf8e 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -44,6 +44,7 @@
#include "Packets/QuestPackets.h"
#include "Packets/ReferAFriendPackets.h"
#include "Packets/ReputationPackets.h"
+#include "Packets/ScenePackets.h"
#include "Packets/SocialPackets.h"
#include "Packets/TalentPackets.h"
#include "Packets/TradePackets.h"
@@ -693,9 +694,9 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
DEFINE_HANDLER(CMSG_SAVE_EQUIPMENT_SET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::EquipmentSet::SaveEquipmentSet, &WorldSession::HandleEquipmentSetSave);
DEFINE_HANDLER(CMSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Guild::SaveGuildEmblem, &WorldSession::HandleSaveGuildEmblem);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_SCENE_PLAYBACK_CANCELED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_SCENE_PLAYBACK_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_SCENE_TRIGGER_EVENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_HANDLER(CMSG_SCENE_PLAYBACK_CANCELED, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Scenes::ScenePlaybackCanceled, &WorldSession::HandleScenePlaybackCanceled);
+ DEFINE_HANDLER(CMSG_SCENE_PLAYBACK_COMPLETE, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Scenes::ScenePlaybackComplete, &WorldSession::HandleScenePlaybackComplete);
+ DEFINE_HANDLER(CMSG_SCENE_TRIGGER_EVENT, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Scenes::SceneTriggerEvent, &WorldSession::HandleSceneTriggerEvent);
DEFINE_OPCODE_HANDLER_OLD(CMSG_SELF_RES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSelfResOpcode );
DEFINE_HANDLER(CMSG_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::SellItem, &WorldSession::HandleSellItemOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_SELL_WOW_TOKEN_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
@@ -1480,7 +1481,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_OBJECT_SOUND, STATUS_UNHANDLED, 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_NEVER, 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_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index f85a682eb4b..42a0f994ee1 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -367,6 +367,13 @@ namespace WorldPackets
class RequestForcedReactions;
}
+ namespace Scenes
+ {
+ class SceneTriggerEvent;
+ class ScenePlaybackComplete;
+ class ScenePlaybackCanceled;
+ }
+
namespace Social
{
class AddFriend;
@@ -1390,6 +1397,11 @@ class WorldSession
void HandleObjectUpdateFailedOpcode(WorldPacket& recvPacket);
void HandleRequestCategoryCooldowns(WorldPackets::Spells::RequestCategoryCooldowns& requestCategoryCooldowns);
+ // Scenes
+ void HandleSceneTriggerEvent(WorldPackets::Scenes::SceneTriggerEvent& sceneTriggerEvent);
+ void HandleScenePlaybackComplete(WorldPackets::Scenes::ScenePlaybackComplete& scenePlaybackComplete);
+ void HandleScenePlaybackCanceled(WorldPackets::Scenes::ScenePlaybackCanceled& scenePlaybackCanceled);
+
void SendSpellCategoryCooldowns();
// Compact Unit Frames (4.x)
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index d9fada1d76c..bfc61ad9f78 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -1437,10 +1437,10 @@ public:
if (!*args)
return false;
- int32 SceneID = 0;
- int32 PlaybackFlags = 0;
- int32 SceneInstanceID = 0;
- int32 SceneScriptPackageID = 0;
+ int32 sceneID = 0;
+ int32 playbackFlags = 0;
+ int32 sceneInstanceID = 0;
+ int32 sceneScriptPackageID = 0;
char* a = strtok((char*)args, " ");
char* b = strtok(NULL, " ");
@@ -1451,26 +1451,26 @@ public:
return false;
if (a)
- SceneID = atoi(a);
+ sceneID = atoi(a);
if (b)
- PlaybackFlags = atoi(b);
+ playbackFlags = atoi(b);
if (c)
- SceneInstanceID = atoi(c);
+ sceneInstanceID = atoi(c);
if (d)
- SceneScriptPackageID = atoi(d);
+ sceneScriptPackageID = atoi(d);
Player* me = handler->GetSession()->GetPlayer();
WorldPackets::Scenes::PlayScene packet;
- packet.SceneID = SceneID;
- packet.PlaybackFlags = PlaybackFlags;
- packet.SceneInstanceID = SceneInstanceID;
- packet.SceneScriptPackageID = SceneScriptPackageID;
+ packet.SceneID = sceneID;
+ packet.PlaybackFlags = playbackFlags;
+ packet.SceneInstanceID = sceneInstanceID;
+ packet.SceneScriptPackageID = sceneScriptPackageID;
packet.TransportGUID = me->GetTransGUID();
packet.Location = me->GetPosition();
- handler->GetSession()->SendPacket(packet.Write());
+ handler->GetSession()->SendPacket(packet.Write(), true);
- TC_LOG_DEBUG("network", "Sent SMSG_PLAY_SCENE to %s, SceneID: %d, PlaybackFlags: %d, SceneInstanceID: %d, SceneScriptPackageID: %d", me->GetName().c_str(), SceneID, PlaybackFlags, SceneInstanceID, SceneScriptPackageID);
+ TC_LOG_DEBUG("network", "Sent SMSG_PLAY_SCENE to %s, SceneID: %d, PlaybackFlags: %d, SceneInstanceID: %d, SceneScriptPackageID: %d", me->GetName().c_str(), sceneID, playbackFlags, sceneInstanceID, sceneScriptPackageID);
return true;
}
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index ba4bcd765e7..03dc96e2ccb 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -3350,6 +3350,7 @@ Logger.sql.updates=3,Console Server
#Logger.phase=3,Console Server
#Logger.pool=3,Console Server
#Logger.rbac=3,Console Server
+#Logger.scenes=3,Console Server
#Logger.scripts=3,Console Server
#Logger.scripts.ai=3,Console Server
#Logger.server.bnetserver=3,Console Server