diff options
Diffstat (limited to 'engines/wintermute/base/saveload.cpp')
-rw-r--r-- | engines/wintermute/base/saveload.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/engines/wintermute/base/saveload.cpp b/engines/wintermute/base/saveload.cpp index 6299cf6e01..e0f97f0d88 100644 --- a/engines/wintermute/base/saveload.cpp +++ b/engines/wintermute/base/saveload.cpp @@ -159,31 +159,27 @@ void SaveLoad::afterLoadScript(void *script, void *data) { } Common::String SaveLoad::getSaveSlotFilename(int slot) { + Common::String filename; BasePersistenceManager *pm = new BasePersistenceManager(); - Common::String filename = pm->getFilenameForSlot(slot); - delete pm; + if (pm) { + filename = pm->getFilenameForSlot(slot); + delete pm; + } debugC(kWintermuteDebugSaveGame, "getSaveSlotFileName(%d) = %s", slot, filename.c_str()); return filename; } -bool SaveLoad::getSaveSlotDescription(int slot, char *buffer) { - buffer[0] = '\0'; - +Common::String SaveLoad::getSaveSlotDescription(int slot) { + Common::String description; Common::String filename = getSaveSlotFilename(slot); BasePersistenceManager *pm = new BasePersistenceManager(); - if (!pm) { - return false; - } - - if (!(pm->initLoad(filename))) { + if (pm) { + if ((pm->initLoad(filename))) { + description = pm->_savedDescription; + } delete pm; - return false; } - - strcpy(buffer, pm->_savedDescription); - delete pm; - - return true; + return description; } bool SaveLoad::isSaveSlotUsed(int slot) { |