summaryrefslogtreecommitdiff
path: root/src/game-server/gamehandler.cpp
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2011-08-26 21:48:00 +0800
committerYohann Ferreira <yohann.ferreira@orange.fr>2011-09-01 04:35:21 +0800
commit4f0ebc30c5a5d35226931ec8cc463dac13d979e5 (patch)
tree55cc6df475bdc251940c49a5f3d63dcc7326bbbc /src/game-server/gamehandler.cpp
parente892e5aeff8c45f2d0c9167afa5737178e66754c (diff)
downloadmanaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.gz
manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.bz2
manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.xz
manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.zip
Prevented char from picking up items when inventory is full.
Resolves: Mana-Mantis: #379.
Diffstat (limited to 'src/game-server/gamehandler.cpp')
-rw-r--r--src/game-server/gamehandler.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/game-server/gamehandler.cpp b/src/game-server/gamehandler.cpp
index 30a620cd..92971903 100644
--- a/src/game-server/gamehandler.cpp
+++ b/src/game-server/gamehandler.cpp
@@ -472,15 +472,20 @@ void GameHandler::handlePickup(GameClient &client, MessageIn &message)
{
Item *item = static_cast< Item * >(o);
ItemClass *ic = item->getItemClass();
- Inventory(client.character).insert(ic->getDatabaseID(),
- item->getAmount());
- GameState::remove(item);
- // log transaction
- std::stringstream str;
- str << "User picked up item " << ic->getDatabaseID()
- << " at " << opos.x << "x" << opos.y;
- accountHandler->sendTransaction(client.character->getDatabaseID(),
- TRANS_ITEM_PICKUP, str.str());
+ if (!Inventory(client.character).insert(ic->getDatabaseID(),
+ item->getAmount()))
+ {
+
+ GameState::remove(item);
+ // log transaction
+ std::stringstream str;
+ str << "User picked up item " << ic->getDatabaseID()
+ << " at " << opos.x << "x" << opos.y;
+ accountHandler->sendTransaction(
+ client.character->getDatabaseID(),
+ TRANS_ITEM_PICKUP, str.str()
+ );
+ }
break;
}
}