aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-08-02 17:08:25 +0200
committerShauren <shauren.trinity@gmail.com>2016-08-02 17:08:25 +0200
commit6c78e7bcaa3cb3201e6dc22717254d97e87438a3 (patch)
tree4dd83294a4ed5c7146d0b19ab6dbd49a2bca0225 /src/server/game/Server
parentb8f91541cfd6e52755968d9ddfd02cd18280ee07 (diff)
Core/PacketIO: Implemented SMSG_DISPLAY_GAME_ERROR
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp16
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h14
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 31 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index 7a45e527699..a773741b690 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -626,3 +626,19 @@ WorldPacket const* WorldPackets::Misc::OverrideLight::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::Misc::DisplayGameError::Write()
+{
+ _worldPacket << uint32(Error);
+ _worldPacket.WriteBit(Arg.is_initialized());
+ _worldPacket.WriteBit(Arg2.is_initialized());
+ _worldPacket.FlushBits();
+
+ if (Arg)
+ _worldPacket << int32(*Arg);
+
+ if (Arg2)
+ _worldPacket << int32(*Arg2);
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index ffb4f6367a8..bf8c0549314 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -824,6 +824,20 @@ namespace WorldPackets
int32 TransitionMilliseconds = 0;
int32 OverrideLightID = 0;
};
+
+ class DisplayGameError final : public ServerPacket
+ {
+ public:
+ DisplayGameError(GameError error) : ServerPacket(SMSG_DISPLAY_GAME_ERROR, 4 + 1), Error(error) { }
+ DisplayGameError(GameError error, int32 arg) : ServerPacket(SMSG_DISPLAY_GAME_ERROR, 4 + 1 + 4), Error(error), Arg(arg) { }
+ DisplayGameError(GameError error, int32 arg1, int32 arg2) : ServerPacket(SMSG_DISPLAY_GAME_ERROR, 4 + 1 + 4 + 4), Error(error), Arg(arg1), Arg2(arg2) { }
+
+ WorldPacket const* Write() override;
+
+ GameError Error;
+ Optional<int32> Arg;
+ Optional<int32> Arg2;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 15c714d66aa..2bf36343e87 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1058,7 +1058,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISMOUNT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISMOUNT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPEL_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_GAME_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_GAME_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PLAYER_CHOICE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PROMOTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_QUEST_POPUP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);