diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-11-10 05:08:29 +0000 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-11-10 05:08:29 +0000 |
commit | 4552e6a67249f3c6791723ad1ef6d4921abb2d17 (patch) | |
tree | 61d267584fec24cf4b8fc7c7b9f8f9e3f74fb3e9 /src | |
parent | 6586cae13c680dd7c41e4a1339418112fd7c8877 (diff) |
Core/Packets: CMSG_CANCEL_TRADE handler
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/TradeHandler.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Server/Packets/TradePackets.h | 37 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 7 |
4 files changed, 47 insertions, 3 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index 3e4e3306e7c..07c6264c808 100644 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -29,6 +29,7 @@ #include "SocialMgr.h" #include "Language.h" #include "AccountMgr.h" +#include "TradePackets.h" void WorldSession::SendTradeStatus(TradeStatusInfo const& info) { @@ -655,7 +656,7 @@ void WorldSession::SendCancelTrade() SendTradeStatus(info); } -void WorldSession::HandleCancelTradeOpcode(WorldPacket& /*recvPacket*/) +void WorldSession::HandleCancelTradeOpcode(WorldPackets::Trade::CancelTrade& /*cancelTrade*/) { // sent also after LOGOUT COMPLETE if (_player) // needed because STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT diff --git a/src/server/game/Server/Packets/TradePackets.h b/src/server/game/Server/Packets/TradePackets.h new file mode 100644 index 00000000000..e63a22eaebc --- /dev/null +++ b/src/server/game/Server/Packets/TradePackets.h @@ -0,0 +1,37 @@ +/* +* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at your +* option) any later version. +* +* This program is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +* more details. +* +* You should have received a copy of the GNU General Public License along +* with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef TradePackets_h__ +#define TradePackets_h__ + +#include "Packet.h" + +namespace WorldPackets +{ + namespace Trade + { + class CancelTrade final : public ClientPacket + { + public: + CancelTrade(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_TRADE, std::move(packet) { } + + void Read() override { } + }; + } +} + +#endif // TradePackets_h__ diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 57d6abe49e6..3177177bf3d 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -20,6 +20,7 @@ #include "WorldSession.h" #include "Packets/CharacterPackets.h" #include "Packets/GuildPackets.h" +#include "Packets/TradePackets.h" template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)> class PacketHandler : public OpcodeHandler @@ -195,7 +196,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_CANCEL_MOUNT_AURA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelMountAuraOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CANCEL_QUEUED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CANCEL_TEMP_ENCHANTMENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTempEnchantmentOpcode); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CANCEL_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTradeOpcode); + DEFINE_HANDLER(CMSG_CANCEL_TRADE, STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT, PROCESS_THREADUNSAFE, WorldPackets::Trade::CancelTrade, &WorldSession::HandleCancelTradeOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_CAST_SPELL, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleCastSpellOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANGEPLAYER_DIFFICULTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index bf496077c36..d672ff29db1 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -95,6 +95,11 @@ namespace WorldPackets { class QueryGuildInfo; } + + namespace Trade + { + class CancelTrade; + } } enum AccountDataType @@ -687,7 +692,7 @@ class WorldSession void HandleAcceptTradeOpcode(WorldPacket& recvPacket); void HandleBeginTradeOpcode(WorldPacket& recvPacket); void HandleBusyTradeOpcode(WorldPacket& recvPacket); - void HandleCancelTradeOpcode(WorldPacket& recvPacket); + void HandleCancelTradeOpcode(WorldPackets::Trade::CancelTrade& cancelTrade); void HandleClearTradeItemOpcode(WorldPacket& recvPacket); void HandleIgnoreTradeOpcode(WorldPacket& recvPacket); void HandleInitiateTradeOpcode(WorldPacket& recvPacket); |