aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/gui.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2016-01-26 16:54:57 +0100
committerJohannes Schickel2016-01-26 17:00:38 +0100
commita74341508fc0bf4f49f4df3c546637020b36840e (patch)
treebfb3b9d9abac525678b2b11bc1875be40e52f5f4 /engines/kyra/gui.cpp
parentb2ab29587b5de62a5cebaac7e7e5946c457af08e (diff)
downloadscummvm-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/kyra/gui.cpp')
-rw-r--r--engines/kyra/gui.cpp17
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())