[Scummvm-cvs-logs] CVS: scummvm/sword1 logic.cpp,1.35,1.36 sworddefs.h,1.13,1.14

Robert G?ffringmann lavosspawn at users.sourceforge.net
Sun Mar 7 11:39:00 CET 2004


Update of /cvsroot/scummvm/scummvm/sword1
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12603/sword1

Modified Files:
	logic.cpp sworddefs.h 
Log Message:
work around script bug #911508 BS1: Crash when loading certain savegames

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/logic.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- logic.cpp	5 Mar 2004 07:39:28 -0000	1.35
+++ logic.cpp	7 Mar 2004 19:14:32 -0000	1.36
@@ -81,6 +81,16 @@
 	Object *compact = (Object*)_objMan->fetchObject(PLAYER);
 
 	if (SwordEngine::_systemVars.justRestoredGame) { // if we've just restored a game - we want George to be exactly as saved
+		// work around script bug #911508
+		if ((_scriptVars[SCREEN] == 25) && (_scriptVars[SAND_FLAG] == 4)) {
+			Object *cpt = _objMan->fetchObject(SAND_25);
+			Object *george = _objMan->fetchObject(PLAYER);
+			if (george->o_place == HOLDING_REPLICA_25) // is george holding the replica in his hands?
+				fnFullSetFrame(cpt, SAND_25, IMPFLRCDT, IMPFLR, 0, 0, 0, 0); // empty impression in floor			
+			else
+				fnFullSetFrame(cpt, SAND_25, IMPPLSCDT, IMPPLS, 0, 0, 0, 0); // impression filled with plaster
+		}
+
 		fnAddHuman(NULL, 0, 0, 0, 0, 0, 0, 0);
 		if (_scriptVars[GEORGE_WALKING]) { // except that if George was walking when we saveed the game
 			fnStandAt(compact, PLAYER, _scriptVars[CHANGE_X], _scriptVars[CHANGE_Y], _scriptVars[CHANGE_DIR], _scriptVars[CHANGE_STANCE], 0,0);

Index: sworddefs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/sworddefs.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- sworddefs.h	11 Jan 2004 15:47:41 -0000	1.13
+++ sworddefs.h	7 Mar 2004 19:14:32 -0000	1.14
@@ -1534,6 +1534,8 @@
 	POCKET_52
 };
 
+#define SAND_25 1638407
+#define HOLDING_REPLICA_25 1638408
 #define GMASTER_79 5177345
 #define SCR_std_off (0*0x10000 + 6)
 #define SCR_exit0 (0*0x10000 + 7)





More information about the Scummvm-git-logs mailing list