[Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.152,1.153 scummvm.cpp,2.343,2.344

Jamieson Christian jamieson630 at users.sourceforge.net
Sat Aug 16 14:46:01 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv1213/scummvm/scumm

Modified Files:
	script_v5.cpp scummvm.cpp 
Log Message:
Changed fix for hanging MI1 EGA Demo after
finding GFX regressions in Indy3. New fix
runs exit script immediately when nuking
the resource for the current room, and
resets the current room to 0 (nothing).

Again, a warning is output in case other
cases of nuking the current room are found
and have undesirable behavior as a result
of this change.

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -d -r1.152 -r1.153
--- script_v5.cpp	16 Aug 2003 15:13:15 -0000	1.152
+++ script_v5.cpp	16 Aug 2003 21:45:00 -0000	1.153
@@ -1461,12 +1461,7 @@
 	int room = getVarOrDirectByte(0x40);
 
 	a = derefActor(act, "o5_putActorInRoom");
-
-	if (room == 0 && a->room != _currentRoom && a->room != room && _currentRoom != room) {
-		warning ("o5_putActorInRoom (%d [%d], %d) ignored", act, a->room, room);
-		return;
-	}
-
+	
 	if (a->visible && _currentRoom != room && VAR(VAR_TALK_ACTOR) == a->number) {
 		clearMsgQueue();
 	}
@@ -1529,10 +1524,16 @@
 			ensureResourceLoaded(rtRoom, resid);
 		break;
 
+	case 8:											// nuke room
+		if (resid == _currentRoom) {
+			warning ("Nuking current room %d - exit script called early", resid);
+			runExitScript();
+			_currentRoom = 0;
+		}
+		// Fall through
 	case 5:											// nuke script
 	case 6:											// nuke sound
 	case 7:											// nuke costume
-	case 8:											// nuke room
 		if (_gameId == GID_ZAK256)
 			warning("o5_resourceRoutines %d should not occur in Zak256", op);
 		else

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.343
retrieving revision 2.344
diff -u -d -r2.343 -r2.344
--- scummvm.cpp	16 Aug 2003 17:08:22 -0000	2.343
+++ scummvm.cpp	16 Aug 2003 21:45:00 -0000	2.344
@@ -1761,7 +1761,8 @@
 	if (!(_features & GF_SMALL_HEADER) && VAR_NEW_ROOM != 0xFF)  // Disable for SH games. Overwrites
 		VAR(VAR_NEW_ROOM) = room; // gamevars, eg Zak cashcards
 
-	runExitScript();
+	if (_currentRoom)
+		runExitScript();
 	killScriptsAndResources();
 	clearEnqueue();
 	stopCycle(0);





More information about the Scummvm-git-logs mailing list