SUPERNOVA: Fix german save and load feature.
This commit is contained in:
parent
061d14e799
commit
28a70bb615
1 changed files with 10 additions and 10 deletions
|
@ -135,9 +135,9 @@ bool SupernovaMetaEngine::createInstance(OSystem *syst, Engine **engine, const A
|
||||||
SaveStateList SupernovaMetaEngine::listSaves(const char *target) const {
|
SaveStateList SupernovaMetaEngine::listSaves(const char *target) const {
|
||||||
Common::StringArray filenames;
|
Common::StringArray filenames;
|
||||||
Common::String pattern;
|
Common::String pattern;
|
||||||
if (!strcmp(target, "msn1"))
|
if (!strncmp(target, "msn1", 4))
|
||||||
pattern = Common::String::format("msn_save.###");
|
pattern = Common::String::format("msn_save.###");
|
||||||
if (!strcmp(target, "msn2"))
|
if (!strncmp(target, "msn2", 4))
|
||||||
pattern = Common::String::format("ms2_save.###");
|
pattern = Common::String::format("ms2_save.###");
|
||||||
|
|
||||||
filenames = g_system->getSavefileManager()->listSavefiles(pattern);
|
filenames = g_system->getSavefileManager()->listSavefiles(pattern);
|
||||||
|
@ -150,8 +150,8 @@ SaveStateList SupernovaMetaEngine::listSaves(const char *target) const {
|
||||||
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(*file);
|
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(*file);
|
||||||
if (savefile) {
|
if (savefile) {
|
||||||
uint saveHeader = savefile->readUint32LE();
|
uint saveHeader = savefile->readUint32LE();
|
||||||
if ((saveHeader == SAVEGAME_HEADER && !strcmp(target, "msn1")) ||
|
if ((saveHeader == SAVEGAME_HEADER && !strncmp(target, "msn1", 4)) ||
|
||||||
(saveHeader == SAVEGAME_HEADER2 && !strcmp(target, "msn2"))) {
|
(saveHeader == SAVEGAME_HEADER2 && !strncmp(target, "msn2", 4))) {
|
||||||
byte saveVersion = savefile->readByte();
|
byte saveVersion = savefile->readByte();
|
||||||
if (saveVersion <= SAVEGAME_VERSION) {
|
if (saveVersion <= SAVEGAME_VERSION) {
|
||||||
int saveFileDescSize = savefile->readSint16LE();
|
int saveFileDescSize = savefile->readSint16LE();
|
||||||
|
@ -172,25 +172,25 @@ SaveStateList SupernovaMetaEngine::listSaves(const char *target) const {
|
||||||
|
|
||||||
void SupernovaMetaEngine::removeSaveState(const char *target, int slot) const {
|
void SupernovaMetaEngine::removeSaveState(const char *target, int slot) const {
|
||||||
Common::String filename;
|
Common::String filename;
|
||||||
if (!strcmp(target, "msn1"))
|
if (!strncmp(target, "msn1", 4))
|
||||||
filename = Common::String::format("msn_save.%03d", slot);
|
filename = Common::String::format("msn_save.%03d", slot);
|
||||||
if (!strcmp(target, "msn2"))
|
if (!strncmp(target, "msn2", 4))
|
||||||
filename = Common::String::format("ms2_save.%03d", slot);
|
filename = Common::String::format("ms2_save.%03d", slot);
|
||||||
g_system->getSavefileManager()->removeSavefile(filename);
|
g_system->getSavefileManager()->removeSavefile(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveStateDescriptor SupernovaMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
|
SaveStateDescriptor SupernovaMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
|
||||||
Common::String fileName;
|
Common::String fileName;
|
||||||
if (!strcmp(target, "msn1"))
|
if (!strncmp(target, "msn1", 4))
|
||||||
fileName = Common::String::format("msn_save.%03d", slot);
|
fileName = Common::String::format("msn_save.%03d", slot);
|
||||||
if (!strcmp(target, "msn2"))
|
if (!strncmp(target, "msn2", 4))
|
||||||
fileName = Common::String::format("ms2_save.%03d", slot);
|
fileName = Common::String::format("ms2_save.%03d", slot);
|
||||||
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(fileName);
|
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(fileName);
|
||||||
|
|
||||||
if (savefile) {
|
if (savefile) {
|
||||||
uint saveHeader = savefile->readUint32LE();
|
uint saveHeader = savefile->readUint32LE();
|
||||||
if ((!strcmp(target, "msn1") && saveHeader != SAVEGAME_HEADER) ||
|
if ((!strncmp(target, "msn1", 4) && saveHeader != SAVEGAME_HEADER) ||
|
||||||
(!strcmp(target, "msn2") && saveHeader != SAVEGAME_HEADER2)) {
|
(!strncmp(target, "msn2", 4) && saveHeader != SAVEGAME_HEADER2)) {
|
||||||
delete savefile;
|
delete savefile;
|
||||||
return SaveStateDescriptor();
|
return SaveStateDescriptor();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue