ILLUSIONS: Refactor savegame thumbnail logic to be inline with rest of tree

This commit is contained in:
Eric Fry 2018-06-28 23:23:49 +10:00 committed by Eugene Sandulenko
parent 8e43261d13
commit 02eaa4c83d
3 changed files with 7 additions and 9 deletions

View file

@ -147,7 +147,7 @@ SaveStateList IllusionsMetaEngine::listSaves(const char *target) const {
if (slotNum >= 0 && slotNum <= 999) { if (slotNum >= 0 && slotNum <= 999) {
Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str()); Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str());
if (in) { if (in) {
if (Illusions::IllusionsEngine::readSaveHeader(in, false, header) == Illusions::IllusionsEngine::kRSHENoError) { if (Illusions::IllusionsEngine::readSaveHeader(in, header) == Illusions::IllusionsEngine::kRSHENoError) {
saveList.push_back(SaveStateDescriptor(slotNum, header.description)); saveList.push_back(SaveStateDescriptor(slotNum, header.description));
} }
delete in; delete in;
@ -164,7 +164,7 @@ SaveStateDescriptor IllusionsMetaEngine::querySaveMetaInfos(const char *target,
if (in) { if (in) {
Illusions::IllusionsEngine::SaveHeader header; Illusions::IllusionsEngine::SaveHeader header;
Illusions::IllusionsEngine::kReadSaveHeaderError error; Illusions::IllusionsEngine::kReadSaveHeaderError error;
error = Illusions::IllusionsEngine::readSaveHeader(in, true, header); error = Illusions::IllusionsEngine::readSaveHeader(in, header, false);
delete in; delete in;
if (error == Illusions::IllusionsEngine::kRSHENoError) { if (error == Illusions::IllusionsEngine::kRSHENoError) {
SaveStateDescriptor desc(slot, header.description); SaveStateDescriptor desc(slot, header.description);

View file

@ -244,7 +244,7 @@ public:
const char *getSavegameFilename(int num); const char *getSavegameFilename(int num);
bool existsSavegame(int num); bool existsSavegame(int num);
static Common::String getSavegameFilename(const Common::String &target, int num); static Common::String getSavegameFilename(const Common::String &target, int num);
static kReadSaveHeaderError readSaveHeader(Common::SeekableReadStream *in, bool loadThumbnail, SaveHeader &header); static kReadSaveHeaderError readSaveHeader(Common::SeekableReadStream *in, SaveHeader &header, bool skipThumbnail = true);
}; };

View file

@ -31,7 +31,7 @@ namespace Illusions {
#define ILLUSIONS_SAVEGAME_VERSION 0 #define ILLUSIONS_SAVEGAME_VERSION 0
IllusionsEngine::kReadSaveHeaderError IllusionsEngine::readSaveHeader(Common::SeekableReadStream *in, bool loadThumbnail, SaveHeader &header) { IllusionsEngine::kReadSaveHeaderError IllusionsEngine::readSaveHeader(Common::SeekableReadStream *in, SaveHeader &header, bool skipThumbnail) {
header.version = in->readUint32LE(); header.version = in->readUint32LE();
if (header.version > ILLUSIONS_SAVEGAME_VERSION) if (header.version > ILLUSIONS_SAVEGAME_VERSION)
@ -43,10 +43,8 @@ IllusionsEngine::kReadSaveHeaderError IllusionsEngine::readSaveHeader(Common::Se
header.description += (char)in->readByte(); header.description += (char)in->readByte();
} }
if (loadThumbnail) { if (!Graphics::loadThumbnail(*in, header.thumbnail, skipThumbnail)) {
Graphics::loadThumbnail(*in, header.thumbnail); return kRSHEIoError;
} else {
Graphics::skipThumbnail(*in);
} }
// Not used yet, reserved for future usage // Not used yet, reserved for future usage
@ -110,7 +108,7 @@ bool IllusionsEngine::loadgame(const char *filename) {
SaveHeader header; SaveHeader header;
kReadSaveHeaderError errorCode = readSaveHeader(in, false, header); kReadSaveHeaderError errorCode = readSaveHeader(in, header);
if (errorCode != kRSHENoError) { if (errorCode != kRSHENoError) {
warning("Error loading savegame '%s'", filename); warning("Error loading savegame '%s'", filename);