[Scummvm-cvs-logs] SF.net SVN: scummvm:[49096] scummvm/trunk/engines/cine

sev at users.sourceforge.net sev at users.sourceforge.net
Wed May 19 14:34:12 CEST 2010


Revision: 49096
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49096&view=rev
Author:   sev
Date:     2010-05-19 12:34:10 +0000 (Wed, 19 May 2010)

Log Message:
-----------
Implement FR #2841445: FW: Restart doesn't work

Modified Paths:
--------------
    scummvm/trunk/engines/cine/cine.cpp
    scummvm/trunk/engines/cine/cine.h
    scummvm/trunk/engines/cine/main_loop.cpp
    scummvm/trunk/engines/cine/various.cpp
    scummvm/trunk/engines/cine/various.h

Modified: scummvm/trunk/engines/cine/cine.cpp
===================================================================
--- scummvm/trunk/engines/cine/cine.cpp	2010-05-19 12:17:59 UTC (rev 49095)
+++ scummvm/trunk/engines/cine/cine.cpp	2010-05-19 12:34:10 UTC (rev 49096)
@@ -90,13 +90,20 @@
 	}
 	g_saveFileMan = _saveFileMan;
 
-	initialize();
+	_restartRequested = false;
 
-	CursorMan.showMouse(true);
-	mainLoop(1);
+	do {
+		initialize();
 
-	delete renderer;
-	delete[] collisionPage;
+		_restartRequested = false;
+
+		CursorMan.showMouse(true);
+		mainLoop(1);
+
+		delete renderer;
+		delete[] collisionPage;
+	} while (_restartRequested);
+
 	delete g_sound;
 
 	return Common::kNoError;
@@ -186,7 +193,7 @@
 	currentDatName[0] = 0;
 
 	_preLoad = false;
-	if (ConfMan.hasKey("save_slot")) {
+	if (ConfMan.hasKey("save_slot") && !_restartRequested) {
 		char saveNameBuffer[256];
 
 		sprintf(saveNameBuffer, "%s.%1d", _targetName.c_str(), ConfMan.getInt("save_slot"));

Modified: scummvm/trunk/engines/cine/cine.h
===================================================================
--- scummvm/trunk/engines/cine/cine.h	2010-05-19 12:17:59 UTC (rev 49095)
+++ scummvm/trunk/engines/cine/cine.h	2010-05-19 12:34:10 UTC (rev 49096)
@@ -134,6 +134,8 @@
 	StringPtrHashMap _volumeEntriesMap;
 	TextHandler _textHandler;
 
+	bool _restartRequested;
+
 private:
 	void initialize();
 	void resetEngine();

Modified: scummvm/trunk/engines/cine/main_loop.cpp
===================================================================
--- scummvm/trunk/engines/cine/main_loop.cpp	2010-05-19 12:17:59 UTC (rev 49095)
+++ scummvm/trunk/engines/cine/main_loop.cpp	2010-05-19 12:34:10 UTC (rev 49096)
@@ -422,7 +422,7 @@
 
 		manageEvents();
 
-	} while (!shouldQuit() && _danKeysPressed != 7);
+	} while (!shouldQuit() && !_restartRequested);
 
 	hideMouse();
 	g_sound->stopMusic();

Modified: scummvm/trunk/engines/cine/various.cpp
===================================================================
--- scummvm/trunk/engines/cine/various.cpp	2010-05-19 12:17:59 UTC (rev 49095)
+++ scummvm/trunk/engines/cine/various.cpp	2010-05-19 12:34:10 UTC (rev 49096)
@@ -78,7 +78,6 @@
 uint16 menuCommandLen;
 bool _paletteNeedUpdate;
 uint16 _messageLen;
-byte _danKeysPressed;
 
 int16 playerCommand;
 
@@ -375,7 +374,7 @@
 			{
 				getMouseData(mouseUpdateStatus, (uint16 *)&mouseButton, (uint16 *)&mouseX, (uint16 *)&mouseY);
 				if (!makeMenuChoice(confirmMenu, 2, mouseX, mouseY + 8, 100)) {
-					//reinitEngine();
+					_restartRequested = true;
 				}
 				break;
 			}

Modified: scummvm/trunk/engines/cine/various.h
===================================================================
--- scummvm/trunk/engines/cine/various.h	2010-05-19 12:17:59 UTC (rev 49095)
+++ scummvm/trunk/engines/cine/various.h	2010-05-19 12:34:10 UTC (rev 49096)
@@ -92,7 +92,6 @@
 extern uint16 menuCommandLen;
 extern bool _paletteNeedUpdate;
 extern uint16 _messageLen;
-extern byte _danKeysPressed;
 
 extern int16 playerCommand;
 


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