From 75274ebd6ba90784f5aa837b7e5ea97fc6bfb720 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 20 Oct 2012 16:35:26 +0000 Subject: Item id based inventory, support for weapon dealers. --- src/game/base/station.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/game/base/station.cc') diff --git a/src/game/base/station.cc b/src/game/base/station.cc index 6493348..31e6b3e 100644 --- a/src/game/base/station.cc +++ b/src/game/base/station.cc @@ -6,6 +6,7 @@ #include "base/game.h" #include "base/station.h" +#include "base/weapon.h" #include "sys/sys.h" namespace game @@ -32,12 +33,21 @@ void Station::upkeep(const unsigned long timestamp) if (deplete > 0) { bool dirty = false; - for (core::Inventory::Items::iterator it = inventory()->items().begin(); it != inventory()->items().end(); it++) { + 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 (dirty) { -- cgit v1.2.3