Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2013-11-11 00:41:33 +0000
committerStijn Buys <ingar@osirion.org>2013-11-11 00:41:33 +0000
commit7bdab72e2ddf145a4692ae92b22110c2e7febe67 (patch)
tree1d23b5cd5bdb6770b76e1a68ed651d30d6cab22c /src/game/base/station.cc
parent8039544940b6145dcc8c63bcd4e06073ed61801e (diff)
Support for station weapons.
Diffstat (limited to 'src/game/base/station.cc')
-rw-r--r--src/game/base/station.cc49
1 files changed, 24 insertions, 25 deletions
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();
+ }
}
}
}