aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-02-01 19:34:30 +0100
committerShauren <shauren.trinity@gmail.com>2025-02-01 20:00:41 +0100
commite492944b901f3f088e624a888660cf7b0d3279ec (patch)
tree2c8baa1f2625f96568353199902d6e8ac55e345e /src/server/game/Handlers/ItemHandler.cpp
parent41e48ff2e1464e0ea1271b4b171d2ea4460c41eb (diff)
Core/Misc: Reduce code differences between branches
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index ec546fcbf97..bd12131c11b 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -549,28 +549,12 @@ void WorldSession::HandleBuyItemInSlotOpcode(WorldPacket& recvData)
else
return; // cheating
- uint8 bag = NULL_BAG; // init for case invalid bagGUID
-
- // find bag slot by bag guid
- if (bagguid == _player->GetGUID())
+ uint8 bag = NULL_BAG;
+ if (bagguid == GetPlayer()->GetGUID()) // The client sends the player guid when trying to store an item in the default backpack
bag = INVENTORY_SLOT_BAG_0;
+ else if (Item* bagItem = _player->GetItemByGuid(bagguid))
+ bag = bagItem->GetSlot();
else
- {
- for (int i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i)
- {
- if (Bag* pBag = _player->GetBagByPos(i))
- {
- if (bagguid == pBag->GetGUID())
- {
- bag = i;
- break;
- }
- }
- }
- }
-
- // bag not found, cheating?
- if (bag == NULL_BAG)
return;
GetPlayer()->BuyItemFromVendorSlot(vendorguid, slot, item, count, bag, bagslot);