[Scummvm-cvs-logs] scummvm master -> 477d6233c3672d9a60cceea3570bc775df3d9253

fingolfin max at quendi.de
Thu Jun 2 18:33:38 CEST 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
86240bb0dc ENGINES: Get rid of some s(n)printf calls
477d6233c3 ENGINES: Change 2nd param of Engine::saveGameState to Common::String


Commit: 86240bb0dc0103e5099d23770cc04cfd907d2c61
    https://github.com/scummvm/scummvm/commit/86240bb0dc0103e5099d23770cc04cfd907d2c61
Author: Max Horn (max at quendi.de)
Date: 2011-06-02T09:31:58-07:00

Commit Message:
ENGINES: Get rid of some s(n)printf calls

Changed paths:
    engines/dialogs.cpp
    engines/engine.cpp
    engines/savestate.cpp
    engines/savestate.h



diff --git a/engines/dialogs.cpp b/engines/dialogs.cpp
index 75b2ca9..f9b1c1e 100644
--- a/engines/dialogs.cpp
+++ b/engines/dialogs.cpp
@@ -227,9 +227,9 @@ void MainMenuDialog::save() {
 		Common::String result(_saveDialog->getResultString());
 		if (result.empty()) {
 			// If the user was lazy and entered no save name, come up with a default name.
-			char buf[20];
-			snprintf(buf, 20, "Save %d", slot + 1);
-			_engine->saveGameState(slot, buf);
+			Common::String buf;
+			buf = Common::String::format("Save %d", slot + 1);
+			_engine->saveGameState(slot, buf.c_str());
 		} else {
 			_engine->saveGameState(slot, result.c_str());
 		}
diff --git a/engines/engine.cpp b/engines/engine.cpp
index b3cb8be..6c15331 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -206,12 +206,8 @@ void initGraphics(int width, int height, bool defaultTo1xScaler, const Graphics:
 
 	// Error out on size switch failure
 	if (gfxError & OSystem::kTransactionSizeChangeFailed) {
-		char buffer[16];
-		snprintf(buffer, 16, "%dx%d", width, height);
-
-		Common::String message = "Could not switch to resolution: '";
-		message += buffer;
-		message += "'.";
+		Common::String message;
+		message = Common::String::format("Could not switch to resolution: '%dx%d'.", width, height);
 
 		GUIErrorMessage(message);
 		error("%s", message.c_str());
diff --git a/engines/savestate.cpp b/engines/savestate.cpp
index 9ed8356..551c39b 100644
--- a/engines/savestate.cpp
+++ b/engines/savestate.cpp
@@ -52,20 +52,20 @@ void SaveStateDescriptor::setWriteProtectedFlag(bool state) {
 }
 
 void SaveStateDescriptor::setSaveDate(int year, int month, int day) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d.%.2d.%.4d", day, month, year);
+	Common::String buffer;
+	buffer = Common::String::format("%.2d.%.2d.%.4d", day, month, year);
 	setVal("save_date", buffer);
 }
 
 void SaveStateDescriptor::setSaveTime(int hour, int min) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d:%.2d", hour, min);
+	Common::String buffer;
+	buffer = Common::String::format("%.2d:%.2d", hour, min);
 	setVal("save_time", buffer);
 }
 
 void SaveStateDescriptor::setPlayTime(int hours, int minutes) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d:%.2d", hours, minutes);
+	Common::String buffer;
+	buffer = Common::String::format("%.2d:%.2d", hours, minutes);
 	setVal("play_time", buffer);
 }
 
diff --git a/engines/savestate.h b/engines/savestate.h
index ce78bc4..df01732 100644
--- a/engines/savestate.h
+++ b/engines/savestate.h
@@ -49,9 +49,7 @@ public:
 	}
 
 	SaveStateDescriptor(int s, const Common::String &d) : _thumbnail() {
-		char buf[16];
-		sprintf(buf, "%d", s);
-		setVal("save_slot", buf);
+		setVal("save_slot", Common::String::format("%d", s));
 		setVal("description", d);
 	}
 


Commit: 477d6233c3672d9a60cceea3570bc775df3d9253
    https://github.com/scummvm/scummvm/commit/477d6233c3672d9a60cceea3570bc775df3d9253
Author: Max Horn (max at quendi.de)
Date: 2011-06-02T09:31:59-07:00

Commit Message:
ENGINES: Change 2nd param of Engine::saveGameState to Common::String

Changed paths:
    engines/agi/agi.h
    engines/agi/saveload.cpp
    engines/cine/cine.h
    engines/cine/detection.cpp
    engines/cine/saveload.cpp
    engines/cruise/cruise.cpp
    engines/cruise/cruise.h
    engines/cruise/menu.cpp
    engines/dialogs.cpp
    engines/draci/draci.cpp
    engines/draci/draci.h
    engines/engine.cpp
    engines/engine.h
    engines/hugo/hugo.cpp
    engines/hugo/hugo.h
    engines/lure/lure.h
    engines/mohawk/myst.cpp
    engines/mohawk/myst.h
    engines/mohawk/riven.cpp
    engines/mohawk/riven.h
    engines/queen/queen.cpp
    engines/queen/queen.h
    engines/saga/detection.cpp
    engines/saga/saga.h
    engines/sci/detection.cpp
    engines/sci/engine/savegame.cpp
    engines/sci/engine/savegame.h
    engines/sci/sci.h
    engines/scumm/input.cpp
    engines/scumm/saveload.cpp
    engines/scumm/scumm.cpp
    engines/scumm/scumm.h
    engines/sky/detection.cpp
    engines/sky/sky.h
    engines/sword1/detection.cpp
    engines/sword1/sword1.h
    engines/sword2/sword2.cpp
    engines/sword2/sword2.h
    engines/sword25/sword25.h
    engines/teenagent/teenagent.cpp
    engines/teenagent/teenagent.h
    engines/tinsel/detection.cpp
    engines/tinsel/tinsel.h
    engines/toon/toon.h
    engines/touche/saveload.cpp
    engines/touche/touche.h
    engines/tsage/tsage.cpp
    engines/tsage/tsage.h
    engines/tucker/saveload.cpp
    engines/tucker/tucker.h



diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index a42148b..0155caf 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -807,7 +807,7 @@ public:
 	virtual ~AgiEngine();
 
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 
 private:
 	uint32 _lastTick;
diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp
index deda186..7eaf13d 100644
--- a/engines/agi/saveload.cpp
+++ b/engines/agi/saveload.cpp
@@ -1017,10 +1017,10 @@ Common::Error AgiEngine::loadGameState(int slot) {
 	}
 }
 
-Common::Error AgiEngine::saveGameState(int slot, const char *desc) {
+Common::Error AgiEngine::saveGameState(int slot, const Common::String &desc) {
 	char saveLoadSlot[12];
 	sprintf(saveLoadSlot, "%s.%.3d", _targetName.c_str(), slot);
-	if (saveGame(saveLoadSlot, desc) == errOK)
+	if (saveGame(saveLoadSlot, desc.c_str()) == errOK)
 		return Common::kNoError;
 	else
 		return Common::kUnknownError;
diff --git a/engines/cine/cine.h b/engines/cine/cine.h
index 371ea0d..55376dc 100644
--- a/engines/cine/cine.h
+++ b/engines/cine/cine.h
@@ -126,7 +126,7 @@ public:
 	int modifyGameSpeed(int speedChange);
 	int getTimerDelay() const;
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canLoadGameStateCurrently();
 	bool canSaveGameStateCurrently();
 
@@ -148,7 +148,7 @@ private:
 	void resetEngine();
 	bool loadPlainSaveFW(Common::SeekableReadStream &in, CineSaveGameFormat saveGameFormat);
 	bool loadTempSaveOS(Common::SeekableReadStream &in);
-	bool makeLoad(char *saveName);
+	bool makeLoad(const Common::String &saveName);
 	void makeSaveFW(Common::OutSaveFile &out);
 	void makeSaveOS(Common::OutSaveFile &out);
 	void makeSave(char *saveFileName);
diff --git a/engines/cine/detection.cpp b/engines/cine/detection.cpp
index 64eee45..7383661 100644
--- a/engines/cine/detection.cpp
+++ b/engines/cine/detection.cpp
@@ -232,16 +232,16 @@ Common::Error CineEngine::loadGameState(int slot) {
 	return gameLoaded ? Common::kNoError : Common::kUnknownError;
 }
 
-Common::Error CineEngine::saveGameState(int slot, const char *desc) {
+Common::Error CineEngine::saveGameState(int slot, const Common::String &desc) {
 	// Load savegame descriptions from index file
 	loadSaveDirectory();
 
 	// Set description for selected slot making sure it ends with a trailing zero
-	strncpy(currentSaveName[slot], desc, 20);
+	strncpy(currentSaveName[slot], desc.c_str(), 20);
 	currentSaveName[slot][sizeof(CommandeType) - 1] = 0;
 
 	// Update savegame descriptions
-	Common::String indexFile = Common::String::format("%s.dir", _targetName.c_str());
+	Common::String indexFile = _targetName + ".dir";
 
 	Common::OutSaveFile *fHandle = _saveFileMan->openForSaving(indexFile);
 	if (!fHandle) {
diff --git a/engines/cine/saveload.cpp b/engines/cine/saveload.cpp
index e51d07b..0ea1a23 100644
--- a/engines/cine/saveload.cpp
+++ b/engines/cine/saveload.cpp
@@ -765,7 +765,7 @@ bool CineEngine::loadPlainSaveFW(Common::SeekableReadStream &in, CineSaveGameFor
 	return !(in.eos() || in.err());
 }
 
-bool CineEngine::makeLoad(char *saveName) {
+bool CineEngine::makeLoad(const Common::String &saveName) {
 	Common::SharedPtr<Common::InSaveFile> saveFile(_saveFileMan->openForLoading(saveName));
 
 	if (!saveFile) {
diff --git a/engines/cruise/cruise.cpp b/engines/cruise/cruise.cpp
index b57e0ab..cf01d9b 100644
--- a/engines/cruise/cruise.cpp
+++ b/engines/cruise/cruise.cpp
@@ -209,7 +209,7 @@ bool CruiseEngine::canLoadGameStateCurrently() {
 	return playerMenuEnabled != 0;
 }
 
-Common::Error CruiseEngine::saveGameState(int slot, const char *desc) {
+Common::Error CruiseEngine::saveGameState(int slot, const Common::String &desc) {
 	return saveSavegameData(slot, desc);
 }
 
diff --git a/engines/cruise/cruise.h b/engines/cruise/cruise.h
index 44e3f26..900f677 100644
--- a/engines/cruise/cruise.h
+++ b/engines/cruise/cruise.h
@@ -71,7 +71,6 @@ private:
 	void initialize();
 	void deinitialize();
 	bool loadLanguageStrings();
-	bool makeLoad(char *saveName);
 	void mainLoop();
 	int processInput();
 protected:
@@ -100,7 +99,7 @@ public:
 	static const char *getSavegameFile(int saveGameIdx);
 	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 syncSoundSettings();
 
diff --git a/engines/cruise/menu.cpp b/engines/cruise/menu.cpp
index bb81797..e763e2b 100644
--- a/engines/cruise/menu.cpp
+++ b/engines/cruise/menu.cpp
@@ -228,7 +228,7 @@ static void handleSaveLoad(bool saveFlag) {
 				result = Common::String::format("Save %d", slot + 1);
 			}
 
-			_vm->saveGameState(slot, result.c_str());
+			_vm->saveGameState(slot, result);
 		}
 	}
 
diff --git a/engines/dialogs.cpp b/engines/dialogs.cpp
index f9b1c1e..3fd8671 100644
--- a/engines/dialogs.cpp
+++ b/engines/dialogs.cpp
@@ -229,9 +229,9 @@ void MainMenuDialog::save() {
 			// If the user was lazy and entered no save name, come up with a default name.
 			Common::String buf;
 			buf = Common::String::format("Save %d", slot + 1);
-			_engine->saveGameState(slot, buf.c_str());
+			_engine->saveGameState(slot, buf);
 		} else {
-			_engine->saveGameState(slot, result.c_str());
+			_engine->saveGameState(slot, result);
 		}
 
 		close();
diff --git a/engines/draci/draci.cpp b/engines/draci/draci.cpp
index a5236b5..67e0436 100644
--- a/engines/draci/draci.cpp
+++ b/engines/draci/draci.cpp
@@ -461,7 +461,7 @@ bool DraciEngine::canLoadGameStateCurrently() {
 		(_game->getLoopSubstatus() == kOuterLoop);
 }
 
-Common::Error DraciEngine::saveGameState(int slot, const char *desc) {
+Common::Error DraciEngine::saveGameState(int slot, const Common::String &desc) {
 	return saveSavegameData(slot, desc, *this);
 }
 
diff --git a/engines/draci/draci.h b/engines/draci/draci.h
index f99bdd5..55ebff0 100644
--- a/engines/draci/draci.h
+++ b/engines/draci/draci.h
@@ -70,7 +70,7 @@ public:
 	static Common::String getSavegameFile(int saveGameIdx);
 	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();
 
 	GUI::Debugger *getDebugger() { return _console; }
diff --git a/engines/engine.cpp b/engines/engine.cpp
index 6c15331..210b0b4 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -470,7 +470,7 @@ bool Engine::canLoadGameStateCurrently() {
 	return false;
 }
 
-Common::Error Engine::saveGameState(int slot, const char *desc) {
+Common::Error Engine::saveGameState(int slot, const Common::String &desc) {
 	// Do nothing by default
 	return Common::kNoError;
 }
diff --git a/engines/engine.h b/engines/engine.h
index 375df2b..d7d971a 100644
--- a/engines/engine.h
+++ b/engines/engine.h
@@ -196,7 +196,7 @@ public:
 	 * @param desc	a description for the savestate, entered by the user
 	 * @return returns kNoError on success, else an error code.
 	 */
-	virtual Common::Error saveGameState(int slot, const char *desc);
+	virtual Common::Error saveGameState(int slot, const Common::String &desc);
 
 	/**
 	 * Indicates whether a game state can be saved.
diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp
index a08dbc0..10d61f2 100644
--- a/engines/hugo/hugo.cpp
+++ b/engines/hugo/hugo.cpp
@@ -130,7 +130,7 @@ void HugoEngine::setMaxScore(const int newScore) {
 	_maxscore = newScore;
 }
 
-Common::Error HugoEngine::saveGameState(int slot, const char *desc) {
+Common::Error HugoEngine::saveGameState(int slot, const Common::String &desc) {
 	return (_file->saveGame(slot, desc) ? Common::kWritingFailed : Common::kNoError);
 }
 
diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h
index b5b8d5e..81d194f 100644
--- a/engines/hugo/hugo.h
+++ b/engines/hugo/hugo.h
@@ -301,7 +301,7 @@ public:
 	void adjustScore(const int adjustment);
 	int getMaxScore() const;
 	void setMaxScore(const int newScore);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	Common::Error loadGameState(int slot);
 	bool hasFeature(EngineFeature f) const;
 	const char *getCopyrightString() const;
diff --git a/engines/lure/lure.h b/engines/lure/lure.h
index 7a67c8b..34bb9f1 100644
--- a/engines/lure/lure.h
+++ b/engines/lure/lure.h
@@ -123,7 +123,7 @@ public:
 	virtual Common::Error loadGameState(int slot) {
 		return loadGame(slot) ? Common::kReadingFailed : Common::kNoError;
 	}
-	virtual Common::Error saveGameState(int slot, const char *desc) {
+	virtual Common::Error saveGameState(int slot, const Common::String &desc) {
 		Common::String s(desc);
 		return saveGame(slot, s) ? Common::kReadingFailed : Common::kNoError;
 	}
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index 4f9c3a8..b60f8bd 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -1168,7 +1168,7 @@ Common::Error MohawkEngine_Myst::loadGameState(int slot) {
 	return Common::kUnknownError;
 }
 
-Common::Error MohawkEngine_Myst::saveGameState(int slot, const char *desc) {
+Common::Error MohawkEngine_Myst::saveGameState(int slot, const Common::String &desc) {
 	Common::StringArray saveList = _gameState->generateSaveGameList();
 
 	if ((uint)slot < saveList.size())
diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h
index 5edf774..ebcc3b4 100644
--- a/engines/mohawk/myst.h
+++ b/engines/mohawk/myst.h
@@ -193,7 +193,7 @@ public:
 	bool canLoadGameStateCurrently();
 	bool canSaveGameStateCurrently();
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool hasFeature(EngineFeature f) const;
 
 private:
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index f407e65..57a0ac7 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -727,7 +727,7 @@ Common::Error MohawkEngine_Riven::loadGameState(int slot) {
 	return _saveLoad->loadGame(_saveLoad->generateSaveGameList()[slot]) ? Common::kNoError : Common::kUnknownError;
 }
 
-Common::Error MohawkEngine_Riven::saveGameState(int slot, const char *desc) {
+Common::Error MohawkEngine_Riven::saveGameState(int slot, const Common::String &desc) {
 	Common::StringArray saveList = _saveLoad->generateSaveGameList();
 
 	if ((uint)slot < saveList.size())
diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h
index e01e038..c80f497 100644
--- a/engines/mohawk/riven.h
+++ b/engines/mohawk/riven.h
@@ -126,7 +126,7 @@ public:
 	bool canLoadGameStateCurrently() { return true; }
 	bool canSaveGameStateCurrently() { return true; }
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool hasFeature(EngineFeature f) const;
 
 	typedef void (*TimerProc)(MohawkEngine_Riven *vm);
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 3c1826c..bd0dea4 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -318,7 +318,7 @@ bool QueenEngine::canLoadOrSave() const {
 	return !_input->cutawayRunning() && !(_resource->isDemo() || _resource->isInterview());
 }
 
-Common::Error QueenEngine::saveGameState(int slot, const char *desc) {
+Common::Error QueenEngine::saveGameState(int slot, const Common::String &desc) {
 	debug(3, "Saving game to slot %d", slot);
 	char name[20];
 	Common::Error err = Common::kNoError;
@@ -341,7 +341,7 @@ Common::Error QueenEngine::saveGameState(int slot, const char *desc) {
 		file->writeUint32BE(0);
 		file->writeUint32BE(dataSize);
 		char description[32];
-		Common::strlcpy(description, desc, sizeof(description));
+		Common::strlcpy(description, desc.c_str(), sizeof(description));
 		file->write(description, sizeof(description));
 
 		// write save data
diff --git a/engines/queen/queen.h b/engines/queen/queen.h
index 5affe8e..bb299e2 100644
--- a/engines/queen/queen.h
+++ b/engines/queen/queen.h
@@ -112,7 +112,7 @@ public:
 	void update(bool checkPlayerInput = false);
 
 	bool canLoadOrSave() const;
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	Common::Error loadGameState(int slot);
 	void makeGameStateName(int slot, char *buf) const;
 	int getGameStateSlot(const char *filename) const;
diff --git a/engines/saga/detection.cpp b/engines/saga/detection.cpp
index b23baf4..4e544e4 100644
--- a/engines/saga/detection.cpp
+++ b/engines/saga/detection.cpp
@@ -363,8 +363,8 @@ Common::Error SagaEngine::loadGameState(int slot) {
 	return Common::kNoError;	// TODO: return success/failure
 }
 
-Common::Error SagaEngine::saveGameState(int slot, const char *desc) {
-	save(calcSaveFileName((uint)slot), desc);
+Common::Error SagaEngine::saveGameState(int slot, const Common::String &desc) {
+	save(calcSaveFileName((uint)slot), desc.c_str());
 	return Common::kNoError;	// TODO: return success/failure
 }
 
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 6d33979..23258e1 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -654,7 +654,7 @@ public:
 
 	const Common::Rect &getDisplayClip() const { return _displayClip;}
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canLoadGameStateCurrently();
 	bool canSaveGameStateCurrently();
 	const GameDisplayInfo &getDisplayInfo();
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index 61e6cc9..100b71e 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -748,7 +748,7 @@ Common::Error SciEngine::loadGameState(int slot) {
 	}
 }
 
-Common::Error SciEngine::saveGameState(int slot, const char *desc) {
+Common::Error SciEngine::saveGameState(int slot, const Common::String &desc) {
 	Common::String fileName = Common::String::format("%s.%03d", _targetName.c_str(), slot);
 	Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
 	Common::OutSaveFile *out = saveFileMan->openForSaving(fileName);
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 65b5e60..e43c709 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -805,7 +805,7 @@ void SegManager::reconstructClones() {
 #pragma mark -
 
 
-bool gamestate_save(EngineState *s, Common::WriteStream *fh, const char* savename, const char *version) {
+bool gamestate_save(EngineState *s, Common::WriteStream *fh, const Common::String &savename, const Common::String &version) {
 	TimeDate curTime;
 	g_system->getTimeAndDate(curTime);
 
diff --git a/engines/sci/engine/savegame.h b/engines/sci/engine/savegame.h
index ff5bc52..fbd77eb 100644
--- a/engines/sci/engine/savegame.h
+++ b/engines/sci/engine/savegame.h
@@ -79,7 +79,7 @@ struct SavegameMetadata {
  * @param savename	The description of the savegame
  * @return 0 on success, 1 otherwise
  */
-bool gamestate_save(EngineState *s, Common::WriteStream *save, const char *savename, const char *version);
+bool gamestate_save(EngineState *s, Common::WriteStream *save, const Common::String &savename, const Common::String &version);
 
 /**
  * Restores a game state from a directory.
diff --git a/engines/sci/sci.h b/engines/sci/sci.h
index a340447..77718e4 100644
--- a/engines/sci/sci.h
+++ b/engines/sci/sci.h
@@ -221,7 +221,7 @@ public:
 	virtual GUI::Debugger *getDebugger();
 	Console *getSciDebugger();
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canLoadGameStateCurrently();
 	bool canSaveGameStateCurrently();
 	void syncSoundSettings();
diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp
index ff85bd0..07c5257 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 f5d219c..19834cb 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 e8dd6cb..c0c477a 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 d1804d3..6e75f47 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
diff --git a/engines/sky/detection.cpp b/engines/sky/detection.cpp
index 6844d2e..e974f5a 100644
--- a/engines/sky/detection.cpp
+++ b/engines/sky/detection.cpp
@@ -282,7 +282,7 @@ Common::Error SkyEngine::loadGameState(int slot) {
 	return (result == GAME_RESTORED) ? Common::kNoError : Common::kUnknownError;
 }
 
-Common::Error SkyEngine::saveGameState(int slot, const char *desc) {
+Common::Error SkyEngine::saveGameState(int slot, const Common::String &desc) {
 	if (slot == 0)
 		return Common::kWritePermissionDenied;	// we can't overwrite the auto save
 
diff --git a/engines/sky/sky.h b/engines/sky/sky.h
index 0b5f4c5..cd8a650 100644
--- a/engines/sky/sky.h
+++ b/engines/sky/sky.h
@@ -87,7 +87,7 @@ public:
 	static bool isCDVersion();
 
 	Common::Error loadGameState(int slot);
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canLoadGameStateCurrently();
 	bool canSaveGameStateCurrently();
 
diff --git a/engines/sword1/detection.cpp b/engines/sword1/detection.cpp
index b02cadc..48c3a0d 100644
--- a/engines/sword1/detection.cpp
+++ b/engines/sword1/detection.cpp
@@ -336,8 +336,8 @@ bool SwordEngine::canLoadGameStateCurrently() {
 	return (mouseIsActive() && !_control->isPanelShown()); // Disable GMM loading when game panel is shown
 }
 
-Common::Error SwordEngine::saveGameState(int slot, const char *desc) {
-	_control->setSaveDescription(slot, desc);
+Common::Error SwordEngine::saveGameState(int slot, const Common::String &desc) {
+	_control->setSaveDescription(slot, desc.c_str());
 	_control->saveGameToFile(slot);
 	return Common::kNoError;	// TODO: return success/failure
 }
diff --git a/engines/sword1/sword1.h b/engines/sword1/sword1.h
index c83cb76..2d6db21 100644
--- a/engines/sword1/sword1.h
+++ b/engines/sword1/sword1.h
@@ -110,7 +110,7 @@ protected:
 
 	Common::Error loadGameState(int slot);
 	bool canLoadGameStateCurrently();
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canSaveGameStateCurrently();
 
 private:
diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index 99ffd55..87c7c12 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -773,8 +773,8 @@ uint32 Sword2Engine::getMillis() {
 	return _system->getMillis();
 }
 
-Common::Error Sword2Engine::saveGameState(int slot, const char *desc) {
-	uint32 saveVal = saveGame(slot, (const byte *)desc);
+Common::Error Sword2Engine::saveGameState(int slot, const Common::String &desc) {
+	uint32 saveVal = saveGame(slot, (const byte *)desc.c_str());
 
 	if (saveVal == SR_OK)
 		return Common::kNoError;
diff --git a/engines/sword2/sword2.h b/engines/sword2/sword2.h
index ee9ea9f..ef5c2b2 100644
--- a/engines/sword2/sword2.h
+++ b/engines/sword2/sword2.h
@@ -164,7 +164,7 @@ public:
 	void setSubtitles(bool b) { _useSubtitles = b; }
 
 	// GMM Loading/Saving
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 	bool canSaveGameStateCurrently();
 	Common::Error loadGameState(int slot);
 	bool canLoadGameStateCurrently();
diff --git a/engines/sword25/sword25.h b/engines/sword25/sword25.h
index 5d11aa6..1254ea1 100644
--- a/engines/sword25/sword25.h
+++ b/engines/sword25/sword25.h
@@ -82,7 +82,7 @@ protected:
 // 	void pauseEngineIntern(bool pause);	// TODO: Implement this!!!
 // 	void syncSoundSettings();	// TODO: Implement this!!!
 // 	Common::Error loadGameState(int slot);	// TODO: Implement this?
-// 	Common::Error saveGameState(int slot, const char *desc);	// TODO: Implement this?
+// 	Common::Error saveGameState(int slot, const Common::String &desc);	// TODO: Implement this?
 // 	bool canLoadGameStateCurrently();	// TODO: Implement this?
 // 	bool canSaveGameStateCurrently();	// TODO: Implement this?
 
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp
index f076dbc..ce8862f 100644
--- a/engines/teenagent/teenagent.cpp
+++ b/engines/teenagent/teenagent.cpp
@@ -240,7 +240,7 @@ Common::Error TeenAgentEngine::loadGameState(int slot) {
 	return Common::kNoError;
 }
 
-Common::Error TeenAgentEngine::saveGameState(int slot, const char *desc) {
+Common::Error TeenAgentEngine::saveGameState(int slot, const Common::String &desc) {
 	debug(0, "saving to slot %d", slot);
 	Common::ScopedPtr<Common::OutSaveFile> out(_saveFileMan->openForSaving(Common::String::format("teenagent.%02d", slot)));
 	if (!out)
@@ -253,7 +253,7 @@ Common::Error TeenAgentEngine::saveGameState(int slot, const char *desc) {
 	res->dseg.set_word(0x64B1, pos.y);
 
 	assert(res->dseg.size() >= 0x6478 + 0x777a);
-	strncpy((char *)res->dseg.ptr(0x6478), desc, 0x16);
+	strncpy((char *)res->dseg.ptr(0x6478), desc.c_str(), 0x16);
 	out->write(res->dseg.ptr(0x6478), 0x777a);
 	if (!Graphics::saveThumbnail(*out))
 		warning("saveThumbnail failed");
diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h
index bc802da..a054f72 100644
--- a/engines/teenagent/teenagent.h
+++ b/engines/teenagent/teenagent.h
@@ -56,7 +56,7 @@ public:
 
 	virtual Common::Error run();
 	virtual Common::Error loadGameState(int slot);
-	virtual Common::Error saveGameState(int slot, const char *desc);
+	virtual Common::Error saveGameState(int slot, const Common::String &desc);
 	virtual bool canLoadGameStateCurrently() { return true; }
 	virtual bool canSaveGameStateCurrently() { return !scene_busy; }
 	virtual bool hasFeature(EngineFeature f) const;
diff --git a/engines/tinsel/detection.cpp b/engines/tinsel/detection.cpp
index 27b16c5..0f0e3cd 100644
--- a/engines/tinsel/detection.cpp
+++ b/engines/tinsel/detection.cpp
@@ -410,7 +410,7 @@ Common::Error TinselEngine::loadGameState(int slot) {
 }
 
 #if 0
-Common::Error TinselEngine::saveGameState(int slot, const char *desc) {
+Common::Error TinselEngine::saveGameState(int slot, const Common::String &desc) {
 	Common::String saveName = _vm->getSavegameFilename((int16)(slot + 1));
 	char saveDesc[SG_DESC_LEN];
 	Common::strlcpy(saveDesc, desc, SG_DESC_LEN);
diff --git a/engines/tinsel/tinsel.h b/engines/tinsel/tinsel.h
index d0875f9..30b0607 100644
--- a/engines/tinsel/tinsel.h
+++ b/engines/tinsel/tinsel.h
@@ -169,7 +169,7 @@ protected:
 	virtual bool hasFeature(EngineFeature f) const;
 	Common::Error loadGameState(int slot);
 #if 0
-	Common::Error saveGameState(int slot, const char *desc);
+	Common::Error saveGameState(int slot, const Common::String &desc);
 #endif
 	bool canLoadGameStateCurrently();
 #if 0
diff --git a/engines/toon/toon.h b/engines/toon/toon.h
index 1eaa502..02828f2 100644
--- a/engines/toon/toon.h
+++ b/engines/toon/toon.h
@@ -318,7 +318,7 @@ public:
 		return _shouldQuit;
 	}
 
-	Common::Error saveGameState(int slot, const char *desc) {
+	Common::Error saveGameState(int slot, const Common::String &desc) {
 		
 		return (saveGame(slot, desc) ? Common::kWritingFailed : Common::kNoError);
 	}
diff --git a/engines/touche/saveload.cpp b/engines/touche/saveload.cpp
index 334f75a..7732c6d 100644
--- a/engines/touche/saveload.cpp
+++ b/engines/touche/saveload.cpp
@@ -319,7 +319,7 @@ void ToucheEngine::loadGameStateData(Common::ReadStream *stream) {
 	debug(0, "Loaded state, current episode %d", _currentEpisodeNum);
 }
 
-Common::Error ToucheEngine::saveGameState(int num, const char *description) {
+Common::Error ToucheEngine::saveGameState(int num, const Common::String &description) {
 	bool saveOk = false;
 	Common::String gameStateFileName = generateGameStateFileName(_targetName.c_str(), num);
 	Common::OutSaveFile *f = _saveFileMan->openForSaving(gameStateFileName);
@@ -328,7 +328,7 @@ Common::Error ToucheEngine::saveGameState(int num, const char *description) {
 		f->writeUint16LE(0);
 		char headerDescription[kGameStateDescriptionLen];
 		memset(headerDescription, 0, kGameStateDescriptionLen);
-		strncpy(headerDescription, description, kGameStateDescriptionLen - 1);
+		strncpy(headerDescription, description.c_str(), kGameStateDescriptionLen - 1);
 		f->write(headerDescription, kGameStateDescriptionLen);
 		saveGameStateData(f);
 		f->finalize();
diff --git a/engines/touche/touche.h b/engines/touche/touche.h
index c8d7504..7e1aa3a 100644
--- a/engines/touche/touche.h
+++ b/engines/touche/touche.h
@@ -513,7 +513,7 @@ protected:
 
 	void saveGameStateData(Common::WriteStream *stream);
 	void loadGameStateData(Common::ReadStream *stream);
-	virtual Common::Error saveGameState(int num, const char *description);
+	virtual Common::Error saveGameState(int num, const Common::String &description);
 	virtual Common::Error loadGameState(int num);
 	virtual bool canLoadGameStateCurrently();
 	virtual bool canSaveGameStateCurrently();
diff --git a/engines/tsage/tsage.cpp b/engines/tsage/tsage.cpp
index 6fae978..50ce0ce 100644
--- a/engines/tsage/tsage.cpp
+++ b/engines/tsage/tsage.cpp
@@ -124,7 +124,7 @@ Common::Error TSageEngine::loadGameState(int slot) {
 /**
  * Save the game to the given slot index, and with the given name
  */
-Common::Error TSageEngine::saveGameState(int slot, const char *desc) {
+Common::Error TSageEngine::saveGameState(int slot, const Common::String &desc) {
 	return _saver->save(slot, desc);
 }
 
diff --git a/engines/tsage/tsage.h b/engines/tsage/tsage.h
index e3d3725..563fdfc 100644
--- a/engines/tsage/tsage.h
+++ b/engines/tsage/tsage.h
@@ -83,7 +83,7 @@ public:
 	virtual bool canLoadGameStateCurrently();
 	virtual bool canSaveGameStateCurrently();
 	virtual Common::Error loadGameState(int slot);
-	virtual Common::Error saveGameState(int slot, const char *desc);
+	virtual Common::Error saveGameState(int slot, const Common::String &desc);
 	Common::String generateSaveName(int slot);
 
 	void initialize();
diff --git a/engines/tucker/saveload.cpp b/engines/tucker/saveload.cpp
index 754e8de..9a2e979 100644
--- a/engines/tucker/saveload.cpp
+++ b/engines/tucker/saveload.cpp
@@ -101,7 +101,7 @@ Common::Error TuckerEngine::loadGameState(int num) {
 	return ret;
 }
 
-Common::Error TuckerEngine::saveGameState(int num, const char *description) {
+Common::Error TuckerEngine::saveGameState(int num, const Common::String &description) {
 	Common::Error ret = Common::kNoError;
 	Common::String gameStateFileName = generateGameStateFileName(_targetName.c_str(), num);
 	Common::OutSaveFile *f = _saveFileMan->openForSaving(gameStateFileName);
diff --git a/engines/tucker/tucker.h b/engines/tucker/tucker.h
index b011d65..e676369 100644
--- a/engines/tucker/tucker.h
+++ b/engines/tucker/tucker.h
@@ -565,7 +565,7 @@ protected:
 
 	template <class S> void saveOrLoadGameStateData(S &s);
 	virtual Common::Error loadGameState(int num);
-	virtual Common::Error saveGameState(int num, const char *description);
+	virtual Common::Error saveGameState(int num, const Common::String &description);
 	virtual bool canLoadGameStateCurrently();
 	virtual bool canSaveGameStateCurrently();
 






More information about the Scummvm-git-logs mailing list