AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
TradeHandler.cpp File Reference
#include "Chat.h"
#include "Item.h"
#include "Language.h"
#include "Log.h"
#include "ObjectAccessor.h"
#include "Opcodes.h"
#include "Player.h"
#include "RBAC.h"
#include "ScriptMgr.h"
#include "SocialMgr.h"
#include "Spell.h"
#include "SpellMgr.h"
#include "TC9Sidecar.h"
#include "World.h"
#include "WorldPacket.h"
#include "WorldSession.h"

Go to the source code of this file.

Functions

static void setAcceptTradeMode (TradeData *myTrade, TradeData *hisTrade, Item **myItems, Item **hisItems)
 
static void clearAcceptTradeMode (TradeData *myTrade, TradeData *hisTrade)
 
static void clearAcceptTradeMode (Item **myItems, Item **hisItems)
 

Function Documentation

◆ clearAcceptTradeMode() [1/2]

static void clearAcceptTradeMode ( Item **  myItems,
Item **  hisItems 
)
static
226{
227 // clear 'in-trade' flag
228 for (uint8 i = 0; i < TRADE_SLOT_TRADED_COUNT; ++i)
229 {
230 if (myItems[i])
231 myItems[i]->SetInTrade(false);
232 if (hisItems[i])
233 hisItems[i]->SetInTrade(false);
234 }
235}
std::uint8_t uint8
Definition Define.h:109
@ TRADE_SLOT_TRADED_COUNT
Definition TradeData.h:30
void SetInTrade(bool b=true)
Definition Item.h:259

References Item::SetInTrade(), and TRADE_SLOT_TRADED_COUNT.

◆ clearAcceptTradeMode() [2/2]

static void clearAcceptTradeMode ( TradeData myTrade,
TradeData hisTrade 
)
static
220{
221 myTrade->SetInAcceptProcess(false);
222 hisTrade->SetInAcceptProcess(false);
223}
void SetInAcceptProcess(bool state)
Definition TradeData.h:62

References TradeData::SetInAcceptProcess().

Referenced by WorldSession::HandleAcceptTradeOpcode().

◆ setAcceptTradeMode()

static void setAcceptTradeMode ( TradeData myTrade,
TradeData hisTrade,
Item **  myItems,
Item **  hisItems 
)
static
195{
196 myTrade->SetInAcceptProcess(true);
197 hisTrade->SetInAcceptProcess(true);
198
199 // store items in local list and set 'in-trade' flag
200 for (uint8 i = 0; i < TRADE_SLOT_TRADED_COUNT; ++i)
201 {
202 if (Item* item = myTrade->GetItem(TradeSlots(i)))
203 {
204 LOG_DEBUG("network.opcode", "player trade item {} bag: {} slot: {}", item->GetGUID().ToString(), item->GetBagSlot(), item->GetSlot());
205 //Can return nullptr
206 myItems[i] = item;
207 myItems[i]->SetInTrade();
208 }
209
210 if (Item* item = hisTrade->GetItem(TradeSlots(i)))
211 {
212 LOG_DEBUG("network.opcode", "partner trade item {} bag: {} slot: {}", item->GetGUID().ToString(), item->GetBagSlot(), item->GetSlot());
213 hisItems[i] = item;
214 hisItems[i]->SetInTrade();
215 }
216 }
217}
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
TradeSlots
Definition TradeData.h:28
Definition Item.h:220
Item * GetItem(TradeSlots slot) const
Definition TradeData.cpp:26

References TradeData::GetItem(), LOG_DEBUG, TradeData::SetInAcceptProcess(), Item::SetInTrade(), and TRADE_SLOT_TRADED_COUNT.

Referenced by WorldSession::HandleAcceptTradeOpcode().