[Scummvm-cvs-logs] SF.net SVN: scummvm: [28441] scummvm/trunk/engines/agi

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sat Aug 4 08:18:28 CEST 2007


Revision: 28441
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28441&view=rev
Author:   eriktorbjorn
Date:     2007-08-03 23:18:28 -0700 (Fri, 03 Aug 2007)

Log Message:
-----------
Tell the user if saving a game fails. (I haven't tested the saveGameSimple()
function, since I don't know when it's used.) This should fix bug #1767237
("AGI: Saving games to non existing path").

Modified Paths:
--------------
    scummvm/trunk/engines/agi/agi.h
    scummvm/trunk/engines/agi/saveload.cpp

Modified: scummvm/trunk/engines/agi/agi.h
===================================================================
--- scummvm/trunk/engines/agi/agi.h	2007-08-04 05:58:37 UTC (rev 28440)
+++ scummvm/trunk/engines/agi/agi.h	2007-08-04 06:18:28 UTC (rev 28441)
@@ -156,6 +156,7 @@
 	errNoLoopsInView,
 	errViewDataError,
 	errNoGameList,
+	errIOError,
 
 	errUnk = 127
 };

Modified: scummvm/trunk/engines/agi/saveload.cpp
===================================================================
--- scummvm/trunk/engines/agi/saveload.cpp	2007-08-04 05:58:37 UTC (rev 28440)
+++ scummvm/trunk/engines/agi/saveload.cpp	2007-08-04 06:18:28 UTC (rev 28441)
@@ -55,6 +55,7 @@
 	int i;
 	struct ImageStackElement *ptr = _imageStack;
 	Common::OutSaveFile *out;
+	int result = errOK;
 
 	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::saveGame(%s, %s)", fileName, description);
 	if (!(out = _saveFileMan->openForSaving(fileName))) {
@@ -206,14 +207,15 @@
 	out->writeSint16BE(_gfx->getAGIPalFileNum());
 
 	out->finalize();
-	if (out->ioFailed())
+	if (out->ioFailed()) {
 		warning("Can't write file '%s'. (Disk full?)", fileName);
-	else
+		result = errIOError;
+	} else
 		debugC(1, kDebugLevelMain | kDebugLevelSavegame, "Saved game %s in file %s", description, fileName);
 	
 	delete out;
 	debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName);
-	return errOK;
+	return result;
 }
 
 int AgiEngine::loadGame(const char *fileName, bool checkId) {
@@ -751,20 +753,24 @@
 	sprintf(fileName, "%s", getSavegameFilename(slot));
 	debugC(8, kDebugLevelMain | kDebugLevelResources, "file is [%s]", fileName);
 
-	saveGame(fileName, desc);
+	int result = saveGame(fileName, desc);
 
-	messageBox("Game saved.");
+	if (result == errOK)
+		messageBox("Game saved.");
+	else
+		messageBox("Error saving game.");
 
-	return errOK;
+	return result;
 }
 
 int AgiEngine::saveGameSimple() {
 	char fileName[MAX_PATH];
 
 	sprintf(fileName, "%s", getSavegameFilename(0));
-	saveGame(fileName, "Default savegame");
-
-	return errOK;
+	int result = saveGame(fileName, "Default savegame");
+	if (result != errOK)
+		messageBox("Error saving game.");
+	return result;
 }
 
 int AgiEngine::loadGameDialog() {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list