aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorMax Horn2011-06-02 14:11:38 +0200
committerMax Horn2011-06-02 18:31:59 +0200
commit477d6233c3672d9a60cceea3570bc775df3d9253 (patch)
tree741ffe9dcb35fd2c9de405b7da74e572451c8304 /engines/scumm
parent86240bb0dc0103e5099d23770cc04cfd907d2c61 (diff)
downloadscummvm-rg350-477d6233c3672d9a60cceea3570bc775df3d9253.tar.gz
scummvm-rg350-477d6233c3672d9a60cceea3570bc775df3d9253.tar.bz2
scummvm-rg350-477d6233c3672d9a60cceea3570bc775df3d9253.zip
ENGINES: Change 2nd param of Engine::saveGameState to Common::String
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/input.cpp2
-rw-r--r--engines/scumm/saveload.cpp19
-rw-r--r--engines/scumm/scumm.cpp3
-rw-r--r--engines/scumm/scumm.h6
4 files changed, 14 insertions, 16 deletions
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