From 0ecdd8bc98ba583bbee801b838d785c6f881d7df Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 9 Oct 2010 20:23:01 +0000 Subject: removed physics references, transfer inventory on ship aquisition --- src/game/base/shipmodel.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/game/base/shipmodel.cc') diff --git a/src/game/base/shipmodel.cc b/src/game/base/shipmodel.cc index 6ff6c43..9133d28 100644 --- a/src/game/base/shipmodel.cc +++ b/src/game/base/shipmodel.cc @@ -224,6 +224,12 @@ void ShipModel::buy(core::EntityControlable *buyer, core::Entity *seller) assert(seller_item->info() == this); } + // check if there's enough space available to transfer inventory + if (player->control() && (maxcargo() < player->control()->inventory()->capacity_used())) { + player->send("^WNot enough cargo space to transfer inventory!"); + return; + } + // check price if (price() > player->credits()) { player->send("^WCan not afford transaction!"); @@ -243,6 +249,14 @@ void ShipModel::buy(core::EntityControlable *buyer, core::Entity *seller) ship->set_state(core::Entity::Docked); ship->get_axis().assign(seller->axis()); ship->get_axis().change_direction(180.0f); + + // transfer inventory + for (core::Inventory::Items::iterator it = player->control()->inventory()->items().begin(); + it != player->control()->inventory()->items().end(); it++) { + ship->inventory()->add(new core::Item(*(*it))); + } + ship->inventory()->set_dirty(); + player->set_control(ship); player->set_view(seller); -- cgit v1.2.3