diff options
Diffstat (limited to 'src/game-server/trade.cpp')
-rw-r--r-- | src/game-server/trade.cpp | 50 |
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); } |