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/savegame.cc
parent4701580b1d6d1ec71733096122ffa5979a1fe075 (diff)
Set the item::Mountable flag where required,
removed the Weapon::stackable() attribute.
Diffstat (limited to 'src/game/base/savegame.cc')
-rw-r--r--src/game/base/savegame.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/game/base/savegame.cc b/src/game/base/savegame.cc
index 6d492d0..616b85f 100644
--- a/src/game/base/savegame.cc
+++ b/src/game/base/savegame.cc
@@ -212,12 +212,20 @@ void SaveGame::load_game(core::Player *player, filesystem::IniFile & inifile)
if (item->info()->type() == Weapon::infotype()) {
const Weapon *weapon = static_cast<const Weapon *>(item->info());
-
+ item->set_price(weapon->price());
item->set_flag(core::Item::Unrestricted);
- if (weapon->stackable()) {
- item->unset_flag(core::Item::Unique);
- } else {
- item->set_flag(core::Item::Unique);
+
+ 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;
}
}
}