summaryrefslogtreecommitdiffstats
path: root/src/game-server/trade.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/trade.cpp')
-rw-r--r--src/game-server/trade.cpp50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/game-server/trade.cpp b/src/game-server/trade.cpp
index 042719b..9e9e05f 100644
--- a/src/game-server/trade.cpp
+++ b/src/game-server/trade.cpp
@@ -37,31 +37,31 @@
* TRADE_AGREE_WAIT : One player has agreed, waiting for the other one
*/
-Trade::Trade(Character *c1, Character *c2):
+Trade::Trade(Being *c1, Being *c2):
mChar1(c1), mChar2(c2), mMoney1(0), mMoney2(0), mState(TRADE_INIT), mCurrencyId(ATTR_GP)
{
MessageOut msg(GPMSG_TRADE_REQUEST);
msg.writeInt16(c1->getPublicID());
- c2->getClient()->send(msg);
- c1->setTrading(this);
- c2->setTrading(this);
+ c2->getComponent<CharacterComponent>()->getClient()->send(msg);
+ c1->getComponent<CharacterComponent>()->setTrading(this);
+ c2->getComponent<CharacterComponent>()->setTrading(this);
}
Trade::~Trade()
{
- mChar1->setTrading(NULL);
- mChar2->setTrading(NULL);
+ mChar1->getComponent<CharacterComponent>()->setTrading(nullptr);
+ mChar2->getComponent<CharacterComponent>()->setTrading(nullptr);
}
void Trade::cancel()
{
MessageOut msg(GPMSG_TRADE_CANCEL);
- mChar1->getClient()->send(msg);
- mChar2->getClient()->send(msg);
+ mChar1->getComponent<CharacterComponent>()->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
delete this;
}
-bool Trade::request(Character *c, int id)
+bool Trade::request(Being *c, int id)
{
//The trade isn't confirmed, the player which is request is the same.
if (mState != TRADE_INIT || c != mChar2 || mChar1->getPublicID() != id)
@@ -79,8 +79,8 @@ bool Trade::request(Character *c, int id)
//Telling both player that the trade has started
MessageOut msg(GPMSG_TRADE_START);
- mChar1->getClient()->send(msg);
- mChar2->getClient()->send(msg);
+ mChar1->getComponent<CharacterComponent>()->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
return true;
}
@@ -99,7 +99,7 @@ bool Trade::perform(TradedItems items, Inventory &inv1, Inventory &inv2)
return true;
}
-void Trade::agree(Character *c)
+void Trade::agree(Being *c)
{
// No player agreed
if (mState == TRADE_CONFIRMED)
@@ -116,7 +116,7 @@ void Trade::agree(Character *c)
// Send the other player that the first player has confirmed
MessageOut msg(GPMSG_TRADE_AGREED);
- mChar2->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
return;
}
@@ -148,12 +148,12 @@ void Trade::agree(Character *c)
}
MessageOut msg(GPMSG_TRADE_COMPLETE);
- mChar1->getClient()->send(msg);
- mChar2->getClient()->send(msg);
+ mChar1->getComponent<CharacterComponent>()->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
delete this;
}
-void Trade::confirm(Character *c)
+void Trade::confirm(Being *c)
{
if (mState == TRADE_CONFIRMED || mState == TRADE_AGREE_WAIT)
return;
@@ -173,7 +173,7 @@ void Trade::confirm(Character *c)
//Send the other player that the first player has confirmed
MessageOut msg(GPMSG_TRADE_CONFIRM);
- mChar2->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
return;
}
@@ -185,11 +185,11 @@ void Trade::confirm(Character *c)
mState = TRADE_CONFIRMED;
MessageOut msg(GPMSG_TRADE_BOTH_CONFIRM);
- mChar1->getClient()->send(msg);
- mChar2->getClient()->send(msg);
+ mChar1->getComponent<CharacterComponent>()->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
}
-void Trade::setMoney(Character *c, int amount)
+void Trade::setMoney(Being *c, int amount)
{
//If the player has already confirmed, exit.
if ((mState != TRADE_RUN && (mState != TRADE_CONFIRM_WAIT || c != mChar1))
@@ -205,26 +205,26 @@ void Trade::setMoney(Character *c, int amount)
if (c == mChar1)
{
mMoney1 = amount;
- mChar2->getClient()->send(msg);
+ mChar2->getComponent<CharacterComponent>()->getClient()->send(msg);
}
else
{
assert(c == mChar2);
mMoney2 = amount;
- mChar1->getClient()->send(msg);
+ mChar1->getComponent<CharacterComponent>()->getClient()->send(msg);
}
// Go back to normal run.
mState = TRADE_RUN;
}
-void Trade::addItem(Character *c, int slot, int amount)
+void Trade::addItem(Being *c, int slot, int amount)
{
//If the player has already confirmed, exit.
if ((mState != TRADE_RUN && (mState != TRADE_CONFIRM_WAIT || c != mChar1))
|| amount < 0) return;
- Character *other;
+ Being *other;
TradedItems *items;
if (c == mChar1)
{
@@ -258,5 +258,5 @@ void Trade::addItem(Character *c, int slot, int amount)
MessageOut msg(GPMSG_TRADE_ADD_ITEM);
msg.writeInt16(id);
msg.writeInt8(amount);
- other->getClient()->send(msg);
+ other->getComponent<CharacterComponent>()->getClient()->send(msg);
}