void SaveLoadMenu::addSavedGameItems(WidgetListBox *listBox) { Common::FileList dirs; Common::UString savesDir = Common::FilePath::normalize(ConfigMan.getString("path") + "/saves"); dirs.addSubDirectories(savesDir); Common::UString slotTextFormat = TalkMan.getString(1594); dirs.sort(true); for (Common::FileList::const_iterator it = dirs.begin(); it != dirs.end(); ++it) { Common::UString saveDir = *it; Common::UString baseName; try { baseName = getBaseNameFromDirectory(saveDir); } catch (Common::Exception &e) { e.add("Failed to get save base name from directory \"%s\"", saveDir.c_str()); printException(e, "WARNING: "); continue; } if (_type == kSaveLoadMenuTypeSave && !baseName.contains("Game")) continue; _saveDirs.push_back(saveDir); SavedGame *save = SavedGame::load(saveDir); uint32 timePlayed = save->getTimePlayed(); Common::UString slotText(slotTextFormat); slotText.replaceAll("Game <CUSTOM0>", baseName); slotText.replaceAll("<CUSTOM1>", Common::composeString(timePlayed / 3600)); slotText.replaceAll("<CUSTOM2>", Common::composeString(timePlayed % 3600 / 60)); if (baseName.contains("Game")) slotText += "\r\n" + save->getName(); delete save; listBox->addItem(slotText); } }