diff options
Diffstat (limited to 'src/game/base/savegame.cc')
-rw-r--r-- | src/game/base/savegame.cc | 18 |
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; } } } |