From 477d6233c3672d9a60cceea3570bc775df3d9253 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 2 Jun 2011 14:11:38 +0200 Subject: ENGINES: Change 2nd param of Engine::saveGameState to Common::String --- engines/scumm/input.cpp | 2 +- engines/scumm/saveload.cpp | 19 +++++++++---------- engines/scumm/scumm.cpp | 3 +-- engines/scumm/scumm.h | 6 +++--- 4 files changed, 14 insertions(+), 16 deletions(-) (limited to 'engines/scumm') diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp index ff85bd0a61..07c52578c3 100644 --- a/engines/scumm/input.cpp +++ b/engines/scumm/input.cpp @@ -117,7 +117,7 @@ void ScummEngine::parseEvent(Common::Event event) { if (_saveLoadSlot == 0) _saveLoadSlot = 10; - sprintf(_saveLoadName, "Quicksave %d", _saveLoadSlot); + _saveLoadDescription = Common::String::format("Quicksave %d", _saveLoadSlot); _saveLoadFlag = (event.kbd.hasFlags(Common::KBD_ALT)) ? 1 : 2; _saveTemporaryState = false; } else if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_f) { diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index f5d219c721..19834cb35d 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -103,7 +103,7 @@ bool ScummEngine::canLoadGameStateCurrently() { return (VAR_MAINMENU_KEY == 0xFF || VAR(VAR_MAINMENU_KEY) != 0); } -Common::Error ScummEngine::saveGameState(int slot, const char *desc) { +Common::Error ScummEngine::saveGameState(int slot, const Common::String &desc) { requestSave(slot, desc); return Common::kNoError; } @@ -135,13 +135,11 @@ bool ScummEngine::canSaveGameStateCurrently() { } -void ScummEngine::requestSave(int slot, const char *name) { +void ScummEngine::requestSave(int slot, const Common::String &name) { _saveLoadSlot = slot; _saveTemporaryState = false; _saveLoadFlag = 1; // 1 for save - assert(name); - strncpy(_saveLoadName, name, sizeof(_saveLoadName)); - _saveLoadName[sizeof(_saveLoadName) - 1] = 0; + _saveLoadDescription = name; } void ScummEngine::requestLoad(int slot) { @@ -166,7 +164,7 @@ bool ScummEngine::saveState(Common::OutSaveFile *out, bool writeHeader) { SaveGameHeader hdr; if (writeHeader) { - memcpy(hdr.name, _saveLoadName, sizeof(hdr.name)); + Common::strlcpy(hdr.name, _saveLoadDescription.c_str(), sizeof(hdr.name)); saveSaveGameHeader(out, hdr); } #if !defined(__DS__) && !defined(__N64__) /* && !defined(__PLAYSTATION2__) */ @@ -387,7 +385,8 @@ bool ScummEngine::loadState(int slot, bool compat) { if (hdr.ver == VER(7)) hdr.ver = VER(8); - memcpy(_saveLoadName, hdr.name, sizeof(hdr.name)); + hdr.name[sizeof(hdr.name)-1] = 0; + _saveLoadDescription = hdr.name; // Unless specifically requested with _saveSound, we do not save the iMUSE // state for temporary state saves - such as certain cutscenes in DOTT, @@ -589,9 +588,9 @@ bool ScummEngine::loadState(int slot, bool compat) { } Common::String ScummEngine::makeSavegameName(const Common::String &target, int slot, bool temporary) { - char extension[6]; - snprintf(extension, sizeof(extension), ".%c%02d", temporary ? 'c' : 's', slot); - return (target + extension); + Common::String extension; + extension = Common::String::format(".%c%02d", temporary ? 'c' : 's', slot); + return target + extension; } void ScummEngine::listSavegames(bool *marks, int num) { diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index e8dd6cb548..c0c477a597 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -213,7 +213,6 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr) _saveLoadSlot = 0; _lastSaveTime = 0; _saveTemporaryState = false; - memset(_saveLoadName, 0, sizeof(_saveLoadName)); memset(_localScriptOffsets, 0, sizeof(_localScriptOffsets)); _scriptPointer = NULL; _scriptOrgPointer = NULL; @@ -2056,7 +2055,7 @@ void ScummEngine::scummLoop(int delta) { // Trigger autosave if necessary. if (!_saveLoadFlag && shouldPerformAutoSave(_lastSaveTime) && canSaveGameStateCurrently()) { _saveLoadSlot = 0; - sprintf(_saveLoadName, "Autosave %d", _saveLoadSlot); + _saveLoadDescription = Common::String::format("Autosave %d", _saveLoadSlot); _saveLoadFlag = 1; _saveTemporaryState = false; } diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h index d1804d323e..6e75f47d77 100644 --- a/engines/scumm/scumm.h +++ b/engines/scumm/scumm.h @@ -401,7 +401,7 @@ public: virtual Common::Error loadGameState(int slot); virtual bool canLoadGameStateCurrently(); - virtual Common::Error saveGameState(int slot, const char *desc); + virtual Common::Error saveGameState(int slot, const Common::String &desc); virtual bool canSaveGameStateCurrently(); virtual void pauseEngineIntern(bool pause); @@ -572,7 +572,7 @@ protected: uint32 _lastSaveTime; bool _saveTemporaryState; Common::String _saveLoadFileName; - char _saveLoadName[32]; + Common::String _saveLoadDescription; bool saveState(Common::OutSaveFile *out, bool writeHeader = true); bool saveState(int slot, bool compat); @@ -594,7 +594,7 @@ public: bool getSavegameName(int slot, Common::String &desc); void listSavegames(bool *marks, int num); - void requestSave(int slot, const char *name); + void requestSave(int slot, const Common::String &name); void requestLoad(int slot); // thumbnail + info stuff -- cgit v1.2.3