Skip to content

Commit

Permalink
ENGINES: Use MetaEngine consistently for getting autosave slot
Browse files Browse the repository at this point in the history
The autosave refactoring that was done in
7adad5a used g_engine for identifying the
autosave slot. This worked for in-game save/load, but doesn't fit when
called from the launcher.

Fix by passing MetaEngine to SaveStateDescriptor ctor and using it for this
query.

Amends 7adad5a.
  • Loading branch information
orgads committed Oct 19, 2021
1 parent ec5a71e commit 95dc779
Show file tree
Hide file tree
Showing 81 changed files with 165 additions and 160 deletions.
4 changes: 2 additions & 2 deletions engines/access/metaengine.cpp
Expand Up @@ -135,7 +135,7 @@ SaveStateList AccessMetaEngine::listSaves(const char *target) const {

if (in) {
if (Access::AccessEngine::readSavegameHeader(in, header))
saveList.push_back(SaveStateDescriptor(slot, header._saveName));
saveList.push_back(SaveStateDescriptor(this, slot, header._saveName));

delete in;
}
Expand Down Expand Up @@ -170,7 +170,7 @@ SaveStateDescriptor AccessMetaEngine::querySaveMetaInfos(const char *target, int
delete f;

// Create the return descriptor
SaveStateDescriptor desc(slot, header._saveName);
SaveStateDescriptor desc(this, slot, header._saveName);
desc.setThumbnail(header._thumbnail);
desc.setSaveDate(header._year, header._month, header._day);
desc.setSaveTime(header._hour, header._minute);
Expand Down
4 changes: 2 additions & 2 deletions engines/adl/metaengine.cpp
Expand Up @@ -136,7 +136,7 @@ SaveStateDescriptor AdlMetaEngine::querySaveMetaInfos(const char *target, int sl
return SaveStateDescriptor();
}

SaveStateDescriptor sd(slot, name);
SaveStateDescriptor sd(this, slot, name);

int year = inFile->readUint16BE();
int month = inFile->readByte();
Expand Down Expand Up @@ -198,7 +198,7 @@ SaveStateList AdlMetaEngine::listSaves(const char *target) const {
delete inFile;

int slotNum = atoi(fileName.c_str() + fileName.size() - 2);
SaveStateDescriptor sd(slotNum, name);
SaveStateDescriptor sd(this, slotNum, name);
saveList.push_back(sd);
}

Expand Down
6 changes: 3 additions & 3 deletions engines/agi/metaengine.cpp
Expand Up @@ -214,7 +214,7 @@ SaveStateList AgiMetaEngine::listSaves(const char *target) const {

delete in;

saveList.push_back(SaveStateDescriptor(slotNr, description));
saveList.push_back(SaveStateDescriptor(this, slotNr, description));
}
}
}
Expand Down Expand Up @@ -257,11 +257,11 @@ SaveStateDescriptor AgiMetaEngine::querySaveMetaInfos(const char *target, int sl
// broken description, ignore it
delete in;

SaveStateDescriptor descriptor(slotNr, "[broken saved game]");
SaveStateDescriptor descriptor(this, slotNr, "[broken saved game]");
return descriptor;
}

SaveStateDescriptor descriptor(slotNr, description);
SaveStateDescriptor descriptor(this, slotNr, description);

char saveVersion = in->readByte();
if (saveVersion >= 4) {
Expand Down
2 changes: 1 addition & 1 deletion engines/agos/metaengine.cpp
Expand Up @@ -128,7 +128,7 @@ SaveStateList AgosMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveFileMan->openForLoading(*file);
if (in) {
saveDesc = file->c_str();
saveList.push_back(SaveStateDescriptor(slotNum, saveDesc));
saveList.push_back(SaveStateDescriptor(this, slotNum, saveDesc));
delete in;
}
}
Expand Down
4 changes: 2 additions & 2 deletions engines/ags/metaengine.cpp
Expand Up @@ -69,7 +69,7 @@ SaveStateList AGSMetaEngine::listSaves(const char *target) const {
if (slotNum > maxSlot)
continue;

SaveStateDescriptor desc(slotNum, rich_media_header.getSaveName());
SaveStateDescriptor desc(this, slotNum, rich_media_header.getSaveName());
saveList.push_back(desc);
}
}
Expand Down Expand Up @@ -111,7 +111,7 @@ SaveStateDescriptor AGSMetaEngine::querySaveMetaInfos(const char *target, int sl
rich_media_header.ReadFromFile(&saveFile);

if (rich_media_header.dwMagicNumber == RM_MAGICNUMBER) {
SaveStateDescriptor desc(slot, rich_media_header.getSaveName());
SaveStateDescriptor desc(this, slot, rich_media_header.getSaveName());

// Thumbnail handling
if (rich_media_header.dwThumbnailOffsetLowerDword != 0 &&
Expand Down
4 changes: 2 additions & 2 deletions engines/avalanche/metaengine.cpp
Expand Up @@ -126,7 +126,7 @@ SaveStateList AvalancheMetaEngine::listSaves(const char *target) const {
file->read(name, nameSize);
name[nameSize] = 0;

saveList.push_back(SaveStateDescriptor(slotNum, name));
saveList.push_back(SaveStateDescriptor(this, slotNum, name));
delete[] name;
delete file;
}
Expand Down Expand Up @@ -172,7 +172,7 @@ SaveStateDescriptor AvalancheMetaEngine::querySaveMetaInfos(const char *target,
description += actChar;
}

SaveStateDescriptor desc(slot, description);
SaveStateDescriptor desc(this, slot, description);

Graphics::Surface *thumbnail;
if (!Graphics::loadThumbnail(*f, thumbnail)) {
Expand Down
4 changes: 2 additions & 2 deletions engines/bbvs/metaengine.cpp
Expand Up @@ -87,7 +87,7 @@ SaveStateList BbvsMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str());
if (in) {
if (Bbvs::BbvsEngine::readSaveHeader(in, header) == Bbvs::BbvsEngine::kRSHENoError) {
saveList.push_back(SaveStateDescriptor(slotNum, header.description));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.description));
}
delete in;
}
Expand All @@ -107,7 +107,7 @@ SaveStateDescriptor BbvsMetaEngine::querySaveMetaInfos(const char *target, int s
error = Bbvs::BbvsEngine::readSaveHeader(in, header, false);
delete in;
if (error == Bbvs::BbvsEngine::kRSHENoError) {
SaveStateDescriptor desc(slot, header.description);
SaveStateDescriptor desc(this, slot, header.description);
desc.setThumbnail(header.thumbnail);
desc.setSaveDate(header.saveDate & 0xFFFF, (header.saveDate >> 16) & 0xFF, (header.saveDate >> 24) & 0xFF);
desc.setSaveTime((header.saveTime >> 16) & 0xFF, (header.saveTime >> 8) & 0xFF);
Expand Down
4 changes: 2 additions & 2 deletions engines/bladerunner/savefile.cpp
Expand Up @@ -50,7 +50,7 @@ SaveStateList SaveFileManager::list(const Common::String &target) {
readHeader(*saveFile, header);

int slotNum = atoi(fileName->c_str() + fileName->size() - 3);
saveList.push_back(SaveStateDescriptor(slotNum, header._name));
saveList.push_back(SaveStateDescriptor(nullptr, slotNum, header._name));

delete saveFile;
}
Expand All @@ -75,7 +75,7 @@ SaveStateDescriptor SaveFileManager::queryMetaInfos(const Common::String &target
}
delete saveFile;

SaveStateDescriptor desc(slot, header._name);
SaveStateDescriptor desc(nullptr, slot, header._name);
desc.setThumbnail(header._thumbnail);
desc.setSaveDate(header._year, header._month, header._day);
desc.setSaveTime(header._hour, header._minute);
Expand Down
2 changes: 1 addition & 1 deletion engines/buried/metaengine.cpp
Expand Up @@ -106,7 +106,7 @@ SaveStateList BuriedMetaEngine::listSaves(const char *target) const {
for (int j = 0; j < 4; j++)
desc.deleteLastChar();

saveList.push_back(SaveStateDescriptor(i, desc));
saveList.push_back(SaveStateDescriptor(this, i, desc));
}

return saveList;
Expand Down
8 changes: 4 additions & 4 deletions engines/cge/metaengine.cpp
Expand Up @@ -94,11 +94,11 @@ SaveStateList CGEMetaEngine::listSaves(const char *target) const {
if (!strncmp(buffer, CGE::savegameStr, kSavegameStrSize + 1)) {
// Valid savegame
if (CGE::CGEEngine::readSavegameHeader(file, header)) {
saveList.push_back(SaveStateDescriptor(slotNum, header.saveName));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.saveName));
}
} else {
// Must be an original format savegame
saveList.push_back(SaveStateDescriptor(slotNum, "Unknown"));
saveList.push_back(SaveStateDescriptor(this, slotNum, "Unknown"));
}

delete file;
Expand Down Expand Up @@ -128,11 +128,11 @@ SaveStateDescriptor CGEMetaEngine::querySaveMetaInfos(const char *target, int sl

if (!hasHeader) {
// Original savegame perhaps?
SaveStateDescriptor desc(slot, "Unknown");
SaveStateDescriptor desc(this, slot, "Unknown");
return desc;
} else {
// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
SaveStateDescriptor desc(this, slot, header.saveName);
desc.setThumbnail(header.thumbnail);
desc.setSaveDate(header.saveYear, header.saveMonth, header.saveDay);
desc.setSaveTime(header.saveHour, header.saveMinutes);
Expand Down
8 changes: 4 additions & 4 deletions engines/cge2/metaengine.cpp
Expand Up @@ -94,11 +94,11 @@ SaveStateList CGE2MetaEngine::listSaves(const char *target) const {
if (!strncmp(buffer, kSavegameStr, kSavegameStrSize + 1)) {
// Valid savegame
if (CGE2::CGE2Engine::readSavegameHeader(file, header)) {
saveList.push_back(SaveStateDescriptor(slotNum, header.saveName));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.saveName));
}
} else {
// Must be an original format savegame
saveList.push_back(SaveStateDescriptor(slotNum, "Unknown"));
saveList.push_back(SaveStateDescriptor(this, slotNum, "Unknown"));
}

delete file;
Expand Down Expand Up @@ -128,11 +128,11 @@ SaveStateDescriptor CGE2MetaEngine::querySaveMetaInfos(const char *target, int s

if (!hasHeader) {
// Original savegame perhaps?
SaveStateDescriptor desc(slot, "Unknown");
SaveStateDescriptor desc(this, slot, "Unknown");
return desc;
} else {
// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
SaveStateDescriptor desc(this, slot, header.saveName);
desc.setThumbnail(header.thumbnail);
desc.setSaveDate(header.saveYear, header.saveMonth, header.saveDay);
desc.setSaveTime(header.saveHour, header.saveMinutes);
Expand Down
8 changes: 4 additions & 4 deletions engines/cine/metaengine.cpp
Expand Up @@ -127,7 +127,7 @@ SaveStateList CineMetaEngine::listSaves(const char *target) const {
strncpy(saveDesc, saveNames[slotNum], SAVEGAME_NAME_LEN);
saveDesc[sizeof(CommandeType) - 1] = 0;

SaveStateDescriptor saveStateDesc(slotNum, saveDesc);
SaveStateDescriptor saveStateDesc(this, slotNum, saveDesc);

if (saveStateDesc.getDescription().empty()) {
if (saveStateDesc.isAutosave()) {
Expand All @@ -150,7 +150,7 @@ SaveStateList CineMetaEngine::listSaves(const char *target) const {

// No saving on empty autosave slot
if (!foundAutosave) {
SaveStateDescriptor desc(getAutosaveSlot(), _("Empty autosave"));
SaveStateDescriptor desc(this, getAutosaveSlot(), _("Empty autosave"));
saveList.push_back(desc);
}

Expand Down Expand Up @@ -179,7 +179,7 @@ SaveStateDescriptor CineMetaEngine::querySaveMetaInfos(const char *target, int s

if (f) {
// Create the return descriptor
SaveStateDescriptor desc(slot, Common::U32String());
SaveStateDescriptor desc(this, slot, Common::U32String());

ExtendedSavegameHeader header;
if (readSavegameHeader(f.get(), &header, false)) {
Expand Down Expand Up @@ -213,7 +213,7 @@ SaveStateDescriptor CineMetaEngine::querySaveMetaInfos(const char *target, int s

// No saving on empty autosave slot
if (slot == getAutosaveSlot()) {
return SaveStateDescriptor(slot, _("Empty autosave"));
return SaveStateDescriptor(this, slot, _("Empty autosave"));
}

return SaveStateDescriptor();
Expand Down
2 changes: 1 addition & 1 deletion engines/composer/metaengine.cpp
Expand Up @@ -116,7 +116,7 @@ SaveStateList ComposerMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveFileMan->openForLoading(*file);
if (in) {
saveDesc = getSaveName(in);
saveList.push_back(SaveStateDescriptor(slotNum, saveDesc));
saveList.push_back(SaveStateDescriptor(this, slotNum, saveDesc));
delete in;
}
}
Expand Down
4 changes: 2 additions & 2 deletions engines/cruise/metaengine.cpp
Expand Up @@ -85,7 +85,7 @@ SaveStateList CruiseMetaEngine::listSaves(const char *target) const {
if (in) {
Cruise::CruiseSavegameHeader header;
if (Cruise::readSavegameHeader(in, header))
saveList.push_back(SaveStateDescriptor(slotNum, header.saveName));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.saveName));
delete in;
}
}
Expand Down Expand Up @@ -114,7 +114,7 @@ SaveStateDescriptor CruiseMetaEngine::querySaveMetaInfos(const char *target, int
delete f;

// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
SaveStateDescriptor desc(this, slot, header.saveName);
desc.setThumbnail(header.thumbnail);

return desc;
Expand Down
2 changes: 1 addition & 1 deletion engines/cryomni3d/metaengine.cpp
Expand Up @@ -113,7 +113,7 @@ SaveStateList CryOmni3DMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveMan->openForLoading(*file);
if (in) {
if (in->read(saveName, kSaveDescriptionLen) == kSaveDescriptionLen) {
saveList.push_back(SaveStateDescriptor(slotNum - 1, saveName));
saveList.push_back(SaveStateDescriptor(this, slotNum - 1, saveName));
}
delete in;
}
Expand Down
4 changes: 2 additions & 2 deletions engines/dm/metaengine.cpp
Expand Up @@ -77,7 +77,7 @@ class DMMetaEngine : public AdvancedMetaEngine {
Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str());
if (in) {
if (DM::readSaveGameHeader(in, &header))
saveList.push_back(SaveStateDescriptor(slotNum, header._descr.getDescription()));
saveList.push_back(SaveStateDescriptor(this, slotNum, header._descr.getDescription()));
delete in;
}
}
Expand All @@ -99,7 +99,7 @@ class DMMetaEngine : public AdvancedMetaEngine {
delete in;

if (successfulRead) {
SaveStateDescriptor desc(slot, header._descr.getDescription());
SaveStateDescriptor desc(this, slot, header._descr.getDescription());

return header._descr;
}
Expand Down
4 changes: 2 additions & 2 deletions engines/draci/metaengine.cpp
Expand Up @@ -70,7 +70,7 @@ SaveStateList DraciMetaEngine::listSaves(const char *target) const {
if (in) {
Draci::DraciSavegameHeader header;
if (Draci::readSavegameHeader(in, header)) {
saveList.push_back(SaveStateDescriptor(slotNum, header.saveName));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.saveName));
}
delete in;
}
Expand Down Expand Up @@ -100,7 +100,7 @@ SaveStateDescriptor DraciMetaEngine::querySaveMetaInfos(const char *target, int
delete f;

// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
SaveStateDescriptor desc(this, slot, header.saveName);
desc.setThumbnail(header.thumbnail);

int day = (header.date >> 24) & 0xFF;
Expand Down
4 changes: 2 additions & 2 deletions engines/dragons/metaengine.cpp
Expand Up @@ -80,7 +80,7 @@ SaveStateList DragonsMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str());
if (in) {
if (Dragons::DragonsEngine::readSaveHeader(in, header) == Dragons::kRSHENoError) {
saveList.push_back(SaveStateDescriptor(slotNum, header.description));
saveList.push_back(SaveStateDescriptor(this, slotNum, header.description));
}
delete in;
}
Expand All @@ -99,7 +99,7 @@ SaveStateDescriptor DragonsMetaEngine::querySaveMetaInfos(const char *target, in
error = Dragons::DragonsEngine::readSaveHeader(in, header, false);
delete in;
if (error == Dragons::kRSHENoError) {
SaveStateDescriptor desc(slot, header.description);
SaveStateDescriptor desc(this, slot, header.description);
desc.setThumbnail(header.thumbnail);
desc.setSaveDate(header.saveDate & 0xFFFF, (header.saveDate >> 16) & 0xFF, (header.saveDate >> 24) & 0xFF);
desc.setSaveTime((header.saveTime >> 16) & 0xFF, (header.saveTime >> 8) & 0xFF);
Expand Down
2 changes: 1 addition & 1 deletion engines/drascula/metaengine.cpp
Expand Up @@ -124,7 +124,7 @@ SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, i

Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName);

SaveStateDescriptor desc(slot, Common::U32String());
SaveStateDescriptor desc(this, slot, Common::U32String());
if (in) {
desc = Drascula::loadMetaData(in, slot, false);
if (desc.getSaveSlot() != slot) {
Expand Down
4 changes: 2 additions & 2 deletions engines/dreamweb/metaengine.cpp
Expand Up @@ -92,7 +92,7 @@ SaveStateList DreamWebMetaEngine::listSaves(const char *target) const {
delete stream;

int slotNum = atoi(file.c_str() + file.size() - 2);
SaveStateDescriptor sd(slotNum, name);
SaveStateDescriptor sd(this, slotNum, name);
saveList.push_back(sd);
}

Expand Down Expand Up @@ -123,7 +123,7 @@ SaveStateDescriptor DreamWebMetaEngine::querySaveMetaInfos(const char *target, i
for (i = 0; i < descSize; i++)
saveName += (char)in->readByte();

SaveStateDescriptor desc(slot, saveName);
SaveStateDescriptor desc(this, slot, saveName);

// Check if there is a ScummVM data block
if (header.len(6) == SCUMMVM_BLOCK_MAGIC_SIZE) {
Expand Down
2 changes: 1 addition & 1 deletion engines/dreamweb/saveload.cpp
Expand Up @@ -728,7 +728,7 @@ uint DreamWebEngine::scanForNames() {
delete stream;

int slotNum = atoi(file.c_str() + file.size() - 2);
SaveStateDescriptor sd(slotNum, name);
SaveStateDescriptor sd(getMetaEngine(), slotNum, name);
saveList.push_back(sd);
if (slotNum < 21)
Common::strlcpy(&_saveNames[17 * slotNum + 1], name, 16); // the first character is unused
Expand Down
2 changes: 1 addition & 1 deletion engines/glk/metaengine.cpp
Expand Up @@ -249,7 +249,7 @@ SaveStateList GlkMetaEngine::listSaves(const char *target) const {
if (in) {
Common::String saveName;
if (Glk::QuetzalReader::getSavegameDescription(in, saveName))
saveList.push_back(SaveStateDescriptor(slot, saveName));
saveList.push_back(SaveStateDescriptor(this, slot, saveName));

delete in;
}
Expand Down
4 changes: 2 additions & 2 deletions engines/gnap/metaengine.cpp
Expand Up @@ -88,7 +88,7 @@ SaveStateList GnapMetaEngine::listSaves(const char *target) const {

if (in) {
if (Gnap::GnapEngine::readSavegameHeader(in, header))
saveList.push_back(SaveStateDescriptor(slot, header._saveName));
saveList.push_back(SaveStateDescriptor(this, slot, header._saveName));
delete in;
}
}
Expand Down Expand Up @@ -117,7 +117,7 @@ SaveStateDescriptor GnapMetaEngine::querySaveMetaInfos(const char *target, int s
while ((ch = (char)file->readByte()) != '\0')
saveName += ch;

SaveStateDescriptor desc(slot, saveName);
SaveStateDescriptor desc(this, slot, saveName);

if (version != 1) {
Graphics::Surface *thumbnail;
Expand Down

0 comments on commit 95dc779

Please sign in to comment.