diff options
Diffstat (limited to 'engines/cge')
-rw-r--r-- | engines/cge/cge.h | 2 | ||||
-rw-r--r-- | engines/cge/cge_main.cpp | 12 | ||||
-rw-r--r-- | engines/cge/detection.cpp | 6 |
3 files changed, 5 insertions, 15 deletions
diff --git a/engines/cge/cge.h b/engines/cge/cge.h index d3f8a93c1d..668224d2f7 100644 --- a/engines/cge/cge.h +++ b/engines/cge/cge.h @@ -246,7 +246,7 @@ public: void mainLoop(); void handleFrame(); void saveGame(int slotNumber, const Common::String &desc); - static bool readSavegameHeader(Common::InSaveFile *in, SavegameHeader &header); + WARN_UNUSED_RESULT static bool readSavegameHeader(Common::InSaveFile *in, SavegameHeader &header, bool skipThumbnail = true); void switchMusic(); void selectPocket(int n); void expandSprite(Sprite *spr); diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp index b60f201cb0..fcbbf34a4d 100644 --- a/engines/cge/cge_main.cpp +++ b/engines/cge/cge_main.cpp @@ -242,10 +242,6 @@ bool CGEEngine::loadGame(int slotNumber, SavegameHeader *header, bool tiny) { delete readStream; return true; } - - // Delete the thumbnail - saveHeader.thumbnail->free(); - delete saveHeader.thumbnail; } // Get in the savegame @@ -424,9 +420,7 @@ void CGEEngine::syncGame(Common::SeekableReadStream *readStream, Common::WriteSt } } -bool CGEEngine::readSavegameHeader(Common::InSaveFile *in, SavegameHeader &header) { - header.thumbnail = nullptr; - +WARN_UNUSED_RESULT bool CGEEngine::readSavegameHeader(Common::InSaveFile *in, SavegameHeader &header, bool skipThumbnail) { // Get the savegame version header.version = in->readByte(); if (header.version > kSavegameVersion) @@ -439,9 +433,9 @@ bool CGEEngine::readSavegameHeader(Common::InSaveFile *in, SavegameHeader &heade header.saveName += ch; // Get the thumbnail - header.thumbnail = Graphics::loadThumbnail(*in); - if (!header.thumbnail) + if (!Graphics::loadThumbnail(*in, header.thumbnail, skipThumbnail)) { return false; + } // Read in save date/time header.saveYear = in->readSint16LE(); diff --git a/engines/cge/detection.cpp b/engines/cge/detection.cpp index 482591bf50..cae2e036b9 100644 --- a/engines/cge/detection.cpp +++ b/engines/cge/detection.cpp @@ -221,10 +221,6 @@ SaveStateList CGEMetaEngine::listSaves(const char *target) const { // Valid savegame if (CGE::CGEEngine::readSavegameHeader(file, header)) { saveList.push_back(SaveStateDescriptor(slotNum, header.saveName)); - if (header.thumbnail) { - header.thumbnail->free(); - delete header.thumbnail; - } } } else { // Must be an original format savegame @@ -253,7 +249,7 @@ SaveStateDescriptor CGEMetaEngine::querySaveMetaInfos(const char *target, int sl f->read(buffer, kSavegameStrSize + 1); bool hasHeader = !strncmp(buffer, CGE::savegameStr, kSavegameStrSize + 1) && - CGE::CGEEngine::readSavegameHeader(f, header); + CGE::CGEEngine::readSavegameHeader(f, header, false); delete f; if (!hasHeader) { |