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-01-06 15:26:56 +0000
committerStijn Buys <ingar@osirion.org>2013-01-06 15:26:56 +0000
commitcafb6d40174459819b33ffc5e3d5e96762375619 (patch)
treef7df6dfc414e339ba466f9c151b759d921c9849a /src/game/base/game.cc
parent4701580b1d6d1ec71733096122ffa5979a1fe075 (diff)
Set the item::Mountable flag where required,
removed the Weapon::stackable() attribute.
Diffstat (limited to 'src/game/base/game.cc')
-rw-r--r--src/game/base/game.cc30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/game/base/game.cc b/src/game/base/game.cc
index efb89fe..b115d70 100644
--- a/src/game/base/game.cc
+++ b/src/game/base/game.cc
@@ -498,10 +498,14 @@ void Game::func_give(core::Player *player, const std::string &args)
}
}
if (amount < 0) {
- if (weapon->stackable()) {
- amount = max;
- } else {
- amount = 1;
+ switch (weapon->subtype()) {
+ case Weapon::Mine:
+ case Weapon::Ammo:
+ amount = max;
+ break;
+ default:
+ amount = 1;
+ break;
}
}
@@ -512,7 +516,7 @@ void Game::func_give(core::Player *player, const std::string &args)
core::Item *item = 0;
- if (weapon->stackable()) {
+ if ( (weapon->subtype() == Weapon::Ammo) || (weapon->subtype() == Weapon::Mine)) {
item = player->control()->inventory()->find(weapon);
if (!item) {
item = new core::Item(weapon);
@@ -2141,10 +2145,20 @@ bool Game::load_zone(core::Zone *zone)
item = new core::Item(weapon);
item->set_amount(-1);
item->set_price(weapon->price());
- if (!weapon->stackable()) {
- item->set_flag(core::Item::Unique);
- }
item->set_flag(core::Item::Unrestricted);
+
+ switch (weapon->subtype()) {
+ case Weapon::Cannon:
+ item->set_flag(core::Item::Unique);
+ item->set_flag(core::Item::Mountable);
+ break;
+ case Weapon::Turret:
+ item->set_flag(core::Item::Unique);
+ item->set_flag(core::Item::Mountable);
+ break;
+ default:
+ break;
+ }
inventory->add(item);
}
} else {