diff options
| -rw-r--r-- | engines/agi/agi.h | 10 | ||||
| -rw-r--r-- | engines/agi/cycle.cpp | 4 | ||||
| -rw-r--r-- | engines/agi/preagi.h | 4 | ||||
| -rw-r--r-- | engines/agi/saveload.cpp | 59 | 
4 files changed, 35 insertions, 42 deletions
| diff --git a/engines/agi/agi.h b/engines/agi/agi.h index 447e55eaa5..c2af0c5c6e 100644 --- a/engines/agi/agi.h +++ b/engines/agi/agi.h @@ -809,8 +809,8 @@ public:  	virtual void replayImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,  		int16 p4, int16 p5, int16 p6, int16 p7) = 0;  	virtual void releaseImageStack() = 0; -	virtual	int saveGame(const char *fileName, const char *saveName) = 0; -	virtual int loadGame(const char *fileName, bool checkId = true) = 0; +	virtual	int saveGame(Common::String fileName, Common::String saveName) = 0; +	virtual int loadGame(Common::String fileName, bool checkId = true) = 0;  	int _soundemu; @@ -881,13 +881,13 @@ public:  	StringData _stringdata; -	void getSavegameFilename(int num, char *fileName); +	Common::String getSavegameFilename(int num);  	void getSavegameDescription(int num, char *buf, bool showEmpty = true);  	int selectSlot(); -	int saveGame(const char *fileName, const char *saveName); +	int saveGame(Common::String fileName, Common::String saveName); +	int loadGame(Common::String fileName, bool checkId = true);  	int saveGameDialog();  	int saveGameSimple(); -	int loadGame(const char *fileName, bool checkId = true);  	int loadGameDialog();  	int loadGameSimple(); diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp index f77ef79f29..e6f122f9f6 100644 --- a/engines/agi/cycle.cpp +++ b/engines/agi/cycle.cpp @@ -361,9 +361,7 @@ int AgiEngine::playGame() {  		}  		if (shouldPerformAutoSave(_lastSaveTime)) { -			char fileName[MAXPATHLEN]; -			getSavegameFilename(0, fileName); -			saveGame(fileName, "Autosave"); +			saveGame(getSavegameFilename(0), "Autosave");  		}  	} while (!(shouldQuit() || _restartGame)); diff --git a/engines/agi/preagi.h b/engines/agi/preagi.h index 14ff483d9f..6f534c37f6 100644 --- a/engines/agi/preagi.h +++ b/engines/agi/preagi.h @@ -73,8 +73,8 @@ protected:  	void replayImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,  		int16 p4, int16 p5, int16 p6, int16 p7) {}  	void releaseImageStack() {} -	int saveGame(const char *fileName, const char *saveName) { return -1; } -	int loadGame(const char *fileName, bool checkId = true) { return -1; } +	int saveGame(Common::String fileName, Common::String saveName) { return -1; } +	int loadGame(Common::String fileName, bool checkId = true) { return -1; }  	// Game  	Common::String getTargetName() { return _targetName; } diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp index 648cb6f835..f919a9a7e4 100644 --- a/engines/agi/saveload.cpp +++ b/engines/agi/saveload.cpp @@ -53,22 +53,22 @@ namespace Agi {  static const uint32 AGIflag = MKTAG('A','G','I',':'); -int AgiEngine::saveGame(const char *fileName, const char *description) { +int AgiEngine::saveGame(Common::String fileName, Common::String description) {  	char gameIDstring[8] = "gameIDX";  	int i;  	Common::OutSaveFile *out;  	int result = errOK; -	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::saveGame(%s, %s)", fileName, description); +	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::saveGame(%s, %s)", fileName.c_str(), description);  	if (!(out = _saveFileMan->openForSaving(fileName))) { -		warning("Can't create file '%s', game not saved", fileName); +		warning("Can't create file '%s', game not saved", fileName.c_str());  		return errBadFileOpen;  	} else { -		debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for writing", fileName); +		debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for writing", fileName.c_str());  	}  	out->writeUint32BE(AGIflag); -	out->write(description, 31); +	out->write(description.c_str(), 31);  	out->writeByte(SAVEGAME_VERSION);  	debugC(5, kDebugLevelMain | kDebugLevelSavegame, "Writing save game version (%d)", SAVEGAME_VERSION); @@ -239,33 +239,33 @@ int AgiEngine::saveGame(const char *fileName, const char *description) {  	out->finalize();  	if (out->err()) { -		warning("Can't write file '%s'. (Disk full?)", fileName); +		warning("Can't write file '%s'. (Disk full?)", fileName.c_str());  		result = errIOError;  	} else -		debugC(1, kDebugLevelMain | kDebugLevelSavegame, "Saved game %s in file %s", description, fileName); +		debugC(1, kDebugLevelMain | kDebugLevelSavegame, "Saved game %s in file %s", description, fileName.c_str());  	delete out; -	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName); +	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName.c_str());  	_lastSaveTime = _system->getMillis();  	return result;  } -int AgiEngine::loadGame(const char *fileName, bool checkId) { +int AgiEngine::loadGame(Common::String fileName, bool checkId) {  	char description[31], saveVersion, loadId[8];  	int i, vtEntries = MAX_VIEWTABLE;  	uint8 t;  	int16 parm[7];  	Common::InSaveFile *in; -	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::loadGame(%s)", fileName); +	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::loadGame(%s)", fileName.c_str());  	if (!(in = _saveFileMan->openForLoading(fileName))) { -		warning("Can't open file '%s', game not loaded", fileName); +		warning("Can't open file '%s', game not loaded", fileName.c_str());  		return errBadFileOpen;  	} else { -		debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName); +		debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName.c_str());  	}  	uint32 typea = in->readUint32BE(); @@ -527,7 +527,7 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {  		_gfx->setAGIPal(in->readSint16BE());  	delete in; -	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName); +	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName.c_str());  	setflag(fRestoreJustRan, true); @@ -546,28 +546,27 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {  #define NUM_SLOTS 100  #define NUM_VISIBLE_SLOTS 12 -void AgiEngine::getSavegameFilename(int num, char *fileName) { +Common::String AgiEngine::getSavegameFilename(int num) {  	Common::String saveLoadSlot = _targetName;  	saveLoadSlot += Common::String::format(".%.3d", num); -	strcpy(fileName, saveLoadSlot.c_str()); +	return saveLoadSlot;  }  void AgiEngine::getSavegameDescription(int num, char *buf, bool showEmpty) { -	char fileName[MAXPATHLEN];  	Common::InSaveFile *in; +	Common::String fileName = getSavegameFilename(num);  	debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Current game id is %s", _targetName.c_str()); -	getSavegameFilename(num, fileName);  	if (!(in = _saveFileMan->openForLoading(fileName))) { -		debugC(4, kDebugLevelMain | kDebugLevelSavegame, "File %s does not exist", fileName); +		debugC(4, kDebugLevelMain | kDebugLevelSavegame, "File %s does not exist", fileName.c_str());  		if (showEmpty)  			strcpy(buf, "        (empty slot)");  		else  			*buf = 0;  	} else { -		debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName); +		debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName.c_str());  		uint32 type = in->readUint32BE(); @@ -783,7 +782,6 @@ getout:  }  int AgiEngine::saveGameDialog() { -	char fileName[MAXPATHLEN];  	char *desc;  	const char *buttons[] = { "Do as I say!", "I regret", NULL };  	char dstr[200]; @@ -853,14 +851,14 @@ int AgiEngine::saveGameDialog() {  		return errOK;  	} -	getSavegameFilename(_firstSlot + slot, fileName); -	debugC(8, kDebugLevelMain | kDebugLevelResources, "file is [%s]", fileName); +	Common::String fileName = getSavegameFilename(_firstSlot + slot); +	debugC(8, kDebugLevelMain | kDebugLevelResources, "file is [%s]", fileName.c_str());  	// Make sure all graphics was blitted to screen. This fixes bug  	// #2960567: "AGI: Ego partly erased in Load/Save thumbnails"  	_gfx->doUpdate(); -	int result = saveGame(fileName, desc); +	int result = saveGame(fileName.c_str(), desc);  	if (result == errOK)  		messageBox("Game saved."); @@ -871,17 +869,15 @@ int AgiEngine::saveGameDialog() {  }  int AgiEngine::saveGameSimple() { -	char fileName[MAXPATHLEN]; -	getSavegameFilename(0, fileName); +	Common::String fileName = getSavegameFilename(0); -	int result = saveGame(fileName, "Default savegame"); +	int result = saveGame(fileName.c_str(), "Default savegame");  	if (result != errOK)  		messageBox("Error saving game.");  	return result;  }  int AgiEngine::loadGameDialog() { -	char fileName[MAXPATHLEN];  	int rc, slot = 0;  	int hm, vm, hp, vp;	// box margins  	int w; @@ -908,9 +904,9 @@ int AgiEngine::loadGameDialog() {  		return errOK;  	} -	getSavegameFilename(_firstSlot + slot, fileName); +	Common::String fileName = getSavegameFilename(_firstSlot + slot); -	if ((rc = loadGame(fileName)) == errOK) { +	if ((rc = loadGame(fileName.c_str())) == errOK) {  		messageBox("Game restored.");  		_game.exitAllLogics = 1;  		_menu->enableAll(); @@ -922,16 +918,15 @@ int AgiEngine::loadGameDialog() {  }  int AgiEngine::loadGameSimple() { -	char fileName[MAXPATHLEN];  	int rc = 0; -	getSavegameFilename(0, fileName); +	Common::String fileName = getSavegameFilename(0);  	_sprites->eraseBoth();  	_sound->stopSound();  	closeWindow(); -	if ((rc = loadGame(fileName)) == errOK) { +	if ((rc = loadGame(fileName.c_str())) == errOK) {  		messageBox("Game restored.");  		_game.exitAllLogics = 1;  		_menu->enableAll(); | 
