From 7bdab72e2ddf145a4692ae92b22110c2e7febe67 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 11 Nov 2013 00:41:33 +0000 Subject: Support for station weapons. --- src/game/base/station.cc | 49 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 25 deletions(-) (limited to 'src/game/base/station.cc') diff --git a/src/game/base/station.cc b/src/game/base/station.cc index 31e6b3e..6b451a9 100644 --- a/src/game/base/station.cc +++ b/src/game/base/station.cc @@ -12,7 +12,7 @@ namespace game { -Station::Station() : Entity() +Station::Station() : Platform() { entity_moduletypeid = station_enttype; set_flag(core::Entity::Dockable); @@ -26,32 +26,31 @@ Station::~Station() void Station::upkeep(const unsigned long timestamp) { - if (!inventory()) - return; - - const unsigned long deplete = (Game::g_deplete ? 1000 * (unsigned long) Game::g_deplete->value() : 0); - - if (deplete > 0) { - bool dirty = false; - for (core::Inventory::Items::iterator it = inventory()->items().begin(); it != inventory()->items().end(); ) { - core::Item *item = (*it); - if ((item->amount() > 0) && (item->timestamp() + deplete < timestamp)) { - item->dec_amount(1); - dirty = true; + if (inventory()) { + const unsigned long deplete = (Game::g_deplete ? 1000 * (unsigned long) Game::g_deplete->value() : 0); + + if (deplete > 0) { + bool dirty = false; + for (core::Inventory::Items::iterator it = inventory()->items().begin(); it != inventory()->items().end(); ) { + core::Item *item = (*it); + if ((item->amount() > 0) && (item->timestamp() + deplete < timestamp)) { + item->dec_amount(1); + dirty = true; + } + + if ((item->info()->type() == Weapon::infotype()) && (item->amount() == 0)) { + delete (item); + (*it) = 0; + inventory()->items().erase(it++); + dirty = true; + } else { + ++it; + } } - if ((item->info()->type() == Weapon::infotype()) && (item->amount() == 0)) { - delete (item); - (*it) = 0; - inventory()->items().erase(it++); - dirty = true; - } else { - ++it; - } - } - - if (dirty) { - inventory()->set_dirty(); + if (dirty) { + inventory()->set_dirty(); + } } } } -- cgit v1.2.3