diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-08-02 17:08:25 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-08-02 17:08:25 +0200 |
| commit | 6c78e7bcaa3cb3201e6dc22717254d97e87438a3 (patch) | |
| tree | 4dd83294a4ed5c7146d0b19ab6dbd49a2bca0225 /src/server/game/Server | |
| parent | b8f91541cfd6e52755968d9ddfd02cd18280ee07 (diff) | |
Core/PacketIO: Implemented SMSG_DISPLAY_GAME_ERROR
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 14 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
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); |
