Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
PlayerTrade.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
Player.h
"
7
#include "
Item.h
"
8
#include "
WorldSession.h
"
9
10
void
Player::TradeCancel
(
bool
sendback,
TradeStatus
status
/*= TRADE_STATUS_CANCELLED*/
)
11
{
12
if
(
m_trade
)
13
{
14
Player
* trader =
m_trade
->GetTrader();
15
16
// send yellow "Trade canceled" message to both traders
17
if
(sendback)
18
GetSession
()->
SendCancelTrade
(status);
19
20
trader->
GetSession
()->
SendCancelTrade
(status);
21
22
// cleanup
23
delete
m_trade
;
24
m_trade
= NULL;
25
delete
trader->
m_trade
;
26
trader->
m_trade
= NULL;
27
}
28
}
29
30
void
Player::UpdateSoulboundTradeItems
()
31
{
32
if
(
m_itemSoulboundTradeable
.empty())
33
return
;
34
35
// also checks for garbage data
36
for
(ItemDurationList::iterator itr =
m_itemSoulboundTradeable
.begin(); itr !=
m_itemSoulboundTradeable
.end();)
37
{
38
ASSERT
(*itr);
39
if
((*itr)->GetOwnerGUID() !=
GetGUID
())
40
{
41
m_itemSoulboundTradeable
.erase(itr++);
42
continue
;
43
}
44
if
((*itr)->CheckSoulboundTradeExpire())
45
{
46
m_itemSoulboundTradeable
.erase(itr++);
47
continue
;
48
}
49
++itr;
50
}
51
}
52
53
void
Player::AddTradeableItem
(
Item
* item)
54
{
55
m_itemSoulboundTradeable
.push_back(item);
56
}
57
59
void
Player::RemoveTradeableItem
(
Item
* item)
60
{
61
m_itemSoulboundTradeable
.remove(item);
62
}
ASSERT
#define ASSERT
Definition
Errors.h:29
Item.h
Player.h
TradeStatus
TradeStatus
Definition
SharedDefines.h:4090
WorldSession.h
Item
Definition
Item.h:202
Object::GetGUID
uint64 GetGUID() const
Definition
Object.h:119
Player::m_itemSoulboundTradeable
ItemDurationList m_itemSoulboundTradeable
Definition
Player.h:3423
Player::m_trade
TradeData * m_trade
Definition
Player.h:3437
Player::TradeCancel
void TradeCancel(bool sendback, TradeStatus status=TRADE_STATUS_CANCELLED)
Definition
PlayerTrade.cpp:10
Player::UpdateSoulboundTradeItems
void UpdateSoulboundTradeItems()
Definition
PlayerTrade.cpp:30
Player::RemoveTradeableItem
void RemoveTradeableItem(Item *item)
Definition
PlayerTrade.cpp:59
Player::GetSession
WorldSession * GetSession() const
Definition
Player.h:2417
Player::AddTradeableItem
void AddTradeableItem(Item *item)
Definition
PlayerTrade.cpp:53
Player::Player
Player(WorldSession *session)
Definition
Player.cpp:507
WorldSession::SendCancelTrade
void SendCancelTrade(TradeStatus status)
Definition
TradeHandler.cpp:596
src
server
game
Entities
Player
PlayerTrade.cpp
Generated on
for Project SkyFire Core by
1.17.0