[Scummvm-cvs-logs] SF.net SVN: scummvm: [29524] scummvm/trunk/engines/lure

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sat Nov 17 01:19:45 CET 2007


Revision: 29524
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29524&view=rev
Author:   dreammaster
Date:     2007-11-16 16:19:45 -0800 (Fri, 16 Nov 2007)

Log Message:
-----------
Bugfixes to restoring or restarting a game from the Restore/Restart dialog

Modified Paths:
--------------
    scummvm/trunk/engines/lure/game.cpp
    scummvm/trunk/engines/lure/room.cpp
    scummvm/trunk/engines/lure/room.h

Modified: scummvm/trunk/engines/lure/game.cpp
===================================================================
--- scummvm/trunk/engines/lure/game.cpp	2007-11-17 00:19:27 UTC (rev 29523)
+++ scummvm/trunk/engines/lure/game.cpp	2007-11-17 00:19:45 UTC (rev 29524)
@@ -135,18 +135,21 @@
 	screen.setPaletteEmpty();
 
 	// Flag for starting game
-	setState(GS_RESTART);       
+	setState(GS_RESTART); 
+	bool initialRestart = true;
 
 	while (!events.quitFlag) {
 		
 		if ((_state & GS_RESTART) != 0) {
 			res.reset();
+			if (!initialRestart) room.reset();
 
 			setState(0);
 			Script::execute(STARTUP_SCRIPT);
 
-			int bootParam = ConfMan.getInt("boot_param");
+			int bootParam = initialRestart ? ConfMan.getInt("boot_param") : 0;
 			handleBootParam(bootParam);
+			initialRestart = false;
 		}
 
 		room.update();
@@ -1003,6 +1006,9 @@
 
 	_soundFlag = stream->readByte() != 0;
 	menu.getMenu(2).entries()[2] = sl.getString(_soundFlag ? S_SOUND_ON : S_SOUND_OFF);
+
+	// Reset game state flags
+	setState(0);
 }
 
 

Modified: scummvm/trunk/engines/lure/room.cpp
===================================================================
--- scummvm/trunk/engines/lure/room.cpp	2007-11-17 00:19:27 UTC (rev 29523)
+++ scummvm/trunk/engines/lure/room.cpp	2007-11-17 00:19:45 UTC (rev 29524)
@@ -85,6 +85,7 @@
 	_numLayers = 0;
 	_showInfo = false;
 	_isExit = false;
+	_roomNumber = 0;
 	_destRoomNumber = 0;
 	_cursorState = CS_NONE;
 
@@ -532,7 +533,7 @@
 	_roomData = res.getRoom(newRoomNumber);
 	if (!_roomData)
 		error("Tried to change to non-existant room: %d", newRoomNumber);
-	bool leaveFlag = (_layers[0] && (newRoomNumber != _roomNumber) && (_roomNumber != 0));
+	bool leaveFlag = (newRoomNumber != _roomNumber) && (_roomNumber != 0);
 
 	_roomNumber = _roomData->roomNumber;
 	_descId = _roomData->descId;

Modified: scummvm/trunk/engines/lure/room.h
===================================================================
--- scummvm/trunk/engines/lure/room.h	2007-11-17 00:19:27 UTC (rev 29523)
+++ scummvm/trunk/engines/lure/room.h	2007-11-17 00:19:45 UTC (rev 29524)
@@ -127,6 +127,7 @@
 	char *statusLine() { return _statusLine; }
 	void saveToStream(Common::WriteStream *stream);
 	void loadFromStream(Common::ReadStream *stream);
+	void reset() { _roomNumber = 999; }
 };
 
 } // end of namespace Lure


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