diff options
Diffstat (limited to 'engines/scumm/he/script_v80he.cpp')
-rw-r--r-- | engines/scumm/he/script_v80he.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/scumm/he/script_v80he.cpp b/engines/scumm/he/script_v80he.cpp index a0a6ab1ef2..aa78757c53 100644 --- a/engines/scumm/he/script_v80he.cpp +++ b/engines/scumm/he/script_v80he.cpp @@ -466,8 +466,17 @@ void ScummEngine_v80he::o80_readConfigFile() { copyScriptString(option, sizeof(option)); copyScriptString(section, sizeof(section)); copyScriptString(filename, sizeof(filename)); + r = convertFilePath(filename); + if (_game.id == GID_TREASUREHUNT) { + // WORKAROUND: Remove invalid characters + if (!strcmp((char *)section, "Blue'sTreasureHunt-Disc1")) + memcpy(section, "BluesTreasureHunt-Disc1\0", 24); + else if (!strcmp((char *)section, "Blue'sTreasureHunt-Disc2")) + memcpy(section, "BluesTreasureHunt-Disc2\0", 24); + } + Common::ConfigFile ConfFile; if (!strcmp((char *)filename + r, "map.ini")) ConfFile.loadFromFile((const char *)filename + r); @@ -528,6 +537,14 @@ void ScummEngine_v80he::o80_writeConfigFile() { r = convertFilePath(filename); + if (_game.id == GID_TREASUREHUNT) { + // WORKAROUND: Remove invalid characters + if (!strcmp((char *)section, "Blue'sTreasureHunt-Disc1")) + memcpy(section, "BluesTreasureHunt-Disc1\0", 24); + else if (!strcmp((char *)section, "Blue'sTreasureHunt-Disc2")) + memcpy(section, "BluesTreasureHunt-Disc2\0", 24); + } + Common::ConfigFile ConfFile; ConfFile.loadFromSaveFile((const char *)filename + r); ConfFile.setKey((char *)option, (char *)section, (char *)string); |