[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