diff options
author | Johannes Schickel | 2016-01-26 16:54:57 +0100 |
---|---|---|
committer | Johannes Schickel | 2016-01-26 17:00:38 +0100 |
commit | a74341508fc0bf4f49f4df3c546637020b36840e (patch) | |
tree | bfb3b9d9abac525678b2b11bc1875be40e52f5f4 /engines | |
parent | b2ab29587b5de62a5cebaac7e7e5946c457af08e (diff) | |
download | scummvm-rg350-a74341508fc0bf4f49f4df3c546637020b36840e.tar.gz scummvm-rg350-a74341508fc0bf4f49f4df3c546637020b36840e.tar.bz2 scummvm-rg350-a74341508fc0bf4f49f4df3c546637020b36840e.zip |
KYRA: Cleanup listing of actual save slots in GUI::updateSaveFileList.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/kyra/gui.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/engines/kyra/gui.cpp b/engines/kyra/gui.cpp index e95d78c54d..d9c2f9183d 100644 --- a/engines/kyra/gui.cpp +++ b/engines/kyra/gui.cpp @@ -47,23 +47,16 @@ GUI::~GUI() { } void GUI::updateSaveFileList(Common::String targetName, bool excludeQuickSaves) { - Common::String pattern = targetName + ".???"; + Common::String pattern = targetName + ".###"; Common::StringArray saveFileList = _vm->_saveFileMan->listSavefiles(pattern); _saveSlots.clear(); for (Common::StringArray::const_iterator i = saveFileList.begin(); i != saveFileList.end(); ++i) { - char s1 = 0, s2 = 0, s3 = 0; - s1 = (*i)[i->size() - 3]; - s2 = (*i)[i->size() - 2]; - s3 = (*i)[i->size() - 1]; - if (!Common::isDigit(s1) || !Common::isDigit(s2) || !Common::isDigit(s3)) + // The last 3 digits of the filename correspond to the save slot. + const int slotNum = atoi(i->c_str() + i->size() - 3); + if (excludeQuickSaves && slotNum >= 990) continue; - s1 -= '0'; - s2 -= '0'; - s3 -= '0'; - if (excludeQuickSaves && s1 == 9 && s2 == 9) - continue; - _saveSlots.push_back(s1 * 100 + s2 * 10 + s3); + _saveSlots.push_back(slotNum); } if (_saveSlots.begin() == _saveSlots.end()) |