diff options
-rw-r--r-- | engines/hugo/detection.cpp | 13 | ||||
-rw-r--r-- | engines/hugo/file.cpp | 39 | ||||
-rw-r--r-- | engines/hugo/hugo.h | 3 |
3 files changed, 23 insertions, 32 deletions
diff --git a/engines/hugo/detection.cpp b/engines/hugo/detection.cpp index d19eee0041..0064a39434 100644 --- a/engines/hugo/detection.cpp +++ b/engines/hugo/detection.cpp @@ -189,21 +189,14 @@ REGISTER_PLUGIN_STATIC(HUGO, PLUGIN_TYPE_ENGINE, Hugo::HugoMetaEngine); namespace Hugo { void HugoEngine::initGame(const HugoGameDescription *gd) { - char tmpStr[8]; - _gameType = gd->gameType; _platform = gd->desc.platform; _packedFl = (getFeatures() & GF_PACKED); _gameVariant = _gameType - 1 + ((_platform == Common::kPlatformWindows) ? 0 : 3); -//Generate filenames - if (gd->desc.platform == Common::kPlatformWindows) - sprintf(tmpStr, "%s%c", gd->desc.gameid, 'w'); - else - sprintf(tmpStr, "%s%c", gd->desc.gameid, 'd'); - - sprintf(_initFilename, "%s-00.SAV", tmpStr); - sprintf(_saveFilename, "%s-%s.SAV", tmpStr, "%d"); + // Generate filenames + _initFilename = _targetName + "-00.SAV"; + _saveFilename = _targetName + "-%d.SAV"; } } // End of namespace Hugo diff --git a/engines/hugo/file.cpp b/engines/hugo/file.cpp index 1cc84e77c8..68271b1f4e 100644 --- a/engines/hugo/file.cpp +++ b/engines/hugo/file.cpp @@ -318,15 +318,16 @@ void FileManager::saveGame(int16 slot, const char *descrip) { debugC(1, kDebugFile, "saveGame(%d, %s)", slot, descrip); // Get full path of saved game file - note test for INITFILE - char path[256]; // Full path of saved game + Common::String path; // Full path of saved game + if (slot == -1) - sprintf(path, "%s", _vm._initFilename); + path = _vm._initFilename; else - sprintf(path, _vm._saveFilename, slot); + path = Common::String::printf(_vm._saveFilename.c_str(), slot); - Common::WriteStream *out = 0; - if (!(out = _vm.getSaveFileManager()->openForSaving(path))) { - warning("Can't create file '%s', game not saved", path); + Common::WriteStream *out = _vm.getSaveFileManager()->openForSaving(path); + if (!out) { + warning("Can't create file '%s', game not saved", path.c_str()); return; } @@ -389,14 +390,15 @@ void FileManager::restoreGame(int16 slot) { _vm.initStatus(); // Get full path of saved game file - note test for INITFILE - char path[256]; // Full path of saved game + Common::String path; // Full path of saved game + if (slot == -1) - sprintf(path, "%s", _vm._initFilename); + path = _vm._initFilename; else - sprintf(path, _vm._saveFilename, slot); + path = Common::String::printf(_vm._saveFilename.c_str(), slot); - Common::SeekableReadStream *in = 0; - if (!(in = _vm.getSaveFileManager()->openForLoading(path))) + Common::SeekableReadStream *in = _vm.getSaveFileManager()->openForLoading(path); + if (!in) return; // Check version, can't restore from different versions @@ -473,20 +475,17 @@ void FileManager::initSavedGame() { // The net result is a valid INITFILE, with status.savesize initialized. debugC(1, kDebugFile, "initSavedGame"); - // Get full path of INITFILE - char path[256]; // Full path of INITFILE - sprintf(path, "%s", _vm._initFilename); - // Force save of initial game if (_vm.getGameStatus().initSaveFl) saveGame(-1, ""); // If initial game doesn't exist, create it - Common::SeekableReadStream *in = 0; - if (!(in = _vm.getSaveFileManager()->openForLoading(path))) { + Common::SeekableReadStream *in = _vm.getSaveFileManager()->openForLoading(_vm._initFilename); + if (!in) { saveGame(-1, ""); - if (!(in = _vm.getSaveFileManager()->openForLoading(path))) { - Utils::Error(WRITE_ERR, "%s", path); + in = _vm.getSaveFileManager()->openForLoading(_vm._initFilename); + if (!in) { + Utils::Error(WRITE_ERR, "%s", _vm._initFilename.c_str()); return; } } @@ -497,7 +496,7 @@ void FileManager::initSavedGame() { // Check sanity - maybe disk full or path set to read-only drive? if (_vm.getGameStatus().saveSize == -1) - Utils::Error(WRITE_ERR, "%s", path); + Utils::Error(WRITE_ERR, "%s", _vm._initFilename.c_str()); } void FileManager::openPlaybackFile(bool playbackFl, bool recordFl) { diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h index b86a0da268..1d3657b473 100644 --- a/engines/hugo/hugo.h +++ b/engines/hugo/hugo.h @@ -142,8 +142,7 @@ public: const char *_episode; const char *_picDir; - char _initFilename[20]; - char _saveFilename[20]; + Common::String _initFilename, _saveFilename; command_t _statusLine; command_t _scoreLine; |