summaryrefslogtreecommitdiff
path: root/src/game-server/gamehandler.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-13 20:44:25 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-13 20:44:25 +0000
commit01e3326de8fc03cf9f61fd1b288cd4f16915484c (patch)
tree583a1be3466994767dad82a77fab21b85d9356a7 /src/game-server/gamehandler.cpp
parentd95c2fbf8fc3fd45b03e27aa802f7886cd930a5e (diff)
downloadmanaserv-01e3326de8fc03cf9f61fd1b288cd4f16915484c.tar.gz
manaserv-01e3326de8fc03cf9f61fd1b288cd4f16915484c.tar.bz2
manaserv-01e3326de8fc03cf9f61fd1b288cd4f16915484c.tar.xz
manaserv-01e3326de8fc03cf9f61fd1b288cd4f16915484c.zip
Implemented buy/sell handler.
Diffstat (limited to 'src/game-server/gamehandler.cpp')
-rw-r--r--src/game-server/gamehandler.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/game-server/gamehandler.cpp b/src/game-server/gamehandler.cpp
index 17ce6dee..7e860ab1 100644
--- a/src/game-server/gamehandler.cpp
+++ b/src/game-server/gamehandler.cpp
@@ -21,12 +21,13 @@
* $Id$
*/
-#include "game-server/gamehandler.hpp"
-
#include <cassert>
#include <map>
+#include "game-server/gamehandler.hpp"
+
#include "game-server/accountconnection.hpp"
+#include "game-server/buysell.hpp"
#include "game-server/inventory.hpp"
#include "game-server/item.hpp"
#include "game-server/itemmanager.hpp"
@@ -335,7 +336,7 @@ void GameHandler::processMessage(NetComputer *comp, MessageIn &message)
}
Character *q = findCharacterNear(computer.character, id);
- if (!q || q->getTrading())
+ if (!q || q->isBusy())
{
result.writeShort(GPMSG_TRADE_CANCEL);
break;
@@ -366,7 +367,14 @@ void GameHandler::processMessage(NetComputer *comp, MessageIn &message)
}
} break;
-
+ case PGMSG_NPC_BUYSELL:
+ {
+ BuySell *t = computer.character->getBuySell();
+ if (!t) break;
+ int id = message.readShort();
+ int amount = message.readShort();
+ t->perform(id, amount);
+ } break;
// The following messages should be handled by the chat server, not the game server.
#if 0