aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarbenium <carbenium@outlook.com>2016-02-02 01:06:44 +0100
committerCarbenium <carbenium@outlook.com>2016-02-02 01:06:44 +0100
commit391992ed80f3f91b95d19d5cab1b0b4e8f8fb8be (patch)
tree0c3187307734c5d565ad7cad499c663ea02f3636
parent6fbfc61de1931f1e70aee80249535436e368c113 (diff)
Core/PacketIO: Updated and enabled CMSG_ITEM_PURCHASE_REFUND
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp11
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp5
-rw-r--r--src/server/game/Server/Packets/ItemPackets.h10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h3
5 files changed, 22 insertions, 9 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 7a88c3a1315..c43c996614a 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -1083,20 +1083,17 @@ void WorldSession::HandleGetItemPurchaseData(WorldPackets::Item::GetItemPurchase
GetPlayer()->SendRefundInfo(item);
}
-void WorldSession::HandleItemRefund(WorldPacket &recvData)
+void WorldSession::HandleItemRefund(WorldPackets::Item::ItemPurchaseRefund& packet)
{
- ObjectGuid guid;
- recvData >> guid; // item guid
-
- Item* item = _player->GetItemByGuid(guid);
+ Item* item = _player->GetItemByGuid(packet.ItemGUID);
if (!item)
{
- TC_LOG_DEBUG("network", "Item refund: item not found!");
+ TC_LOG_DEBUG("network", "WorldSession::HandleItemRefund: Item (%s) not found!", packet.ItemGUID.ToString().c_str());
return;
}
// Don't try to refund item currently being disenchanted
- if (_player->GetLootGUID() == guid)
+ if (_player->GetLootGUID() == packet.ItemGUID)
return;
GetPlayer()->RefundItem(item);
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index ab25edcecf0..e627d80fdea 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -109,6 +109,11 @@ WorldPacket const* WorldPackets::Item::SetItemPurchaseData::Write()
return &_worldPacket;
}
+void WorldPackets::Item::ItemPurchaseRefund::Read()
+{
+ _worldPacket >> ItemGUID;
+}
+
WorldPacket const* WorldPackets::Item::ItemPurchaseRefundResult::Write()
{
_worldPacket << ItemGUID;
diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h
index ecf264b1fde..833d1bd9261 100644
--- a/src/server/game/Server/Packets/ItemPackets.h
+++ b/src/server/game/Server/Packets/ItemPackets.h
@@ -147,6 +147,16 @@ namespace WorldPackets
ObjectGuid ItemGUID;
};
+ class ItemPurchaseRefund final : public ClientPacket
+ {
+ public:
+ ItemPurchaseRefund(WorldPacket&& packet) : ClientPacket(CMSG_ITEM_PURCHASE_REFUND, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid ItemGUID;
+ };
+
class ItemPurchaseRefundResult final : public ServerPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index b9767a7299e..a017bf91210 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -422,7 +422,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_INSPECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::Inspect, &WorldSession::HandleInspectOpcode);
DEFINE_HANDLER(CMSG_INSPECT_PVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::InspectPVPRequest, &WorldSession::HandleInspectPVP);
DEFINE_HANDLER(CMSG_INSTANCE_LOCK_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Instance::InstanceLockResponse, &WorldSession::HandleInstanceLockResponse);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_ITEM_PURCHASE_REFUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefund );
+ DEFINE_HANDLER(CMSG_ITEM_PURCHASE_REFUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::ItemPurchaseRefund, &WorldSession::HandleItemRefund);
DEFINE_HANDLER(CMSG_ITEM_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::ItemTextQuery, &WorldSession::HandleItemTextQuery);
DEFINE_HANDLER(CMSG_JOIN_PET_BATTLE_QUEUE, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_JOIN_RATED_BATTLEGROUND, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index b539ff4391b..505e5faab4e 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -346,6 +346,7 @@ namespace WorldPackets
class BuyBackItem;
class DestroyItem;
class GetItemPurchaseData;
+ class ItemPurchaseRefund;
class RepairItem;
class ReadItem;
class SellItem;
@@ -1535,7 +1536,7 @@ class WorldSession
void HandleCancelTempEnchantmentOpcode(WorldPackets::Item::CancelTempEnchantment& cancelTempEnchantment);
void HandleGetItemPurchaseData(WorldPackets::Item::GetItemPurchaseData& packet);
- void HandleItemRefund(WorldPacket& recvData);
+ void HandleItemRefund(WorldPackets::Item::ItemPurchaseRefund& packet);
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData);