summaryrefslogtreecommitdiff
path: root/src/game-server/character.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-14 13:38:18 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-14 13:38:18 +0000
commita88aa0a9af24962f8eea11e039fcf34dade66037 (patch)
treea894a129129ef3ddefcdbcd9e660461170b7c50e /src/game-server/character.cpp
parent4c7acd2de27714caab933f8fc2d65a3d4a622336 (diff)
downloadmanaserv-a88aa0a9af24962f8eea11e039fcf34dade66037.tar.gz
manaserv-a88aa0a9af24962f8eea11e039fcf34dade66037.tar.bz2
manaserv-a88aa0a9af24962f8eea11e039fcf34dade66037.tar.xz
manaserv-a88aa0a9af24962f8eea11e039fcf34dade66037.zip
Involved money in trade handler.
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r--src/game-server/character.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/game-server/character.cpp b/src/game-server/character.cpp
index a1670389..913e05ef 100644
--- a/src/game-server/character.cpp
+++ b/src/game-server/character.cpp
@@ -156,15 +156,31 @@ BuySell *Character::getBuySell() const
void Character::setTrading(Trade *t)
{
- cancelTransaction();
- mTransactionHandler = t;
- mTransaction = TRANS_TRADE;
+ if (t)
+ {
+ cancelTransaction();
+ mTransactionHandler = t;
+ mTransaction = TRANS_TRADE;
+ }
+ else
+ {
+ assert(mTransaction == TRANS_NONE || mTransaction == TRANS_TRADE);
+ mTransaction = TRANS_NONE;
+ }
}
void Character::setBuySell(BuySell *t)
{
- cancelTransaction();
- mTransactionHandler = t;
- mTransaction = TRANS_BUYSELL;
+ if (t)
+ {
+ cancelTransaction();
+ mTransactionHandler = t;
+ mTransaction = TRANS_BUYSELL;
+ }
+ else
+ {
+ assert(mTransaction == TRANS_NONE || mTransaction == TRANS_BUYSELL);
+ mTransaction = TRANS_NONE;
+ }
}