diff options
author | Stijn Buys <ingar@osirion.org> | 2012-10-20 16:35:26 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2012-10-20 16:35:26 +0000 |
commit | 75274ebd6ba90784f5aa837b7e5ea97fc6bfb720 (patch) | |
tree | a5d51a87bf3f20833df18bc40a3254b946716afb /src/game/base/savegame.cc | |
parent | f01629dc14b1ee05b44d2e38b3dffbc1441fd85f (diff) |
Item id based inventory, support for weapon dealers.
Diffstat (limited to 'src/game/base/savegame.cc')
-rw-r--r-- | src/game/base/savegame.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/game/base/savegame.cc b/src/game/base/savegame.cc index 0057a50..e70e143 100644 --- a/src/game/base/savegame.cc +++ b/src/game/base/savegame.cc @@ -177,6 +177,14 @@ void SaveGame::load_game(core::Player *player, filesystem::IniFile & inifile) item->unset_flag(core::Item::Tradeable); } } + } else if (inifile.got_key_bool("unique", b)) { + if (item) { + if (b) { + item->set_flag(core::Item::Unique); + } else { + item->unset_flag(core::Item::Unique); + } + } } else { inifile.unknown_key(); } @@ -291,7 +299,12 @@ void SaveGame::inventory_to_stream(core::Inventory *inventory, std::ostream & os os << "label=" << item->info()->label() << std::endl; os << "amount=" << item->amount() << std::endl; os << "price=" << item->price() << std::endl; - os << "tradeable=" << (item->has_flag(core::Item::Tradeable) ? "yes" : "no") << std::endl; + if (item->has_flag(core::Item::Tradeable)) { + os << "tradeable=" << (item->has_flag(core::Item::Tradeable) ? "yes" : "no") << std::endl; + } + if (item->has_flag(core::Item::Unique)) { + os << "unique=" << (item->has_flag(core::Item::Unique) ? "yes" : "no") << std::endl; + } } } |