[Scummvm-cvs-logs] CVS: scummvm/sword1 logic.cpp,1.42,1.43 sworddefs.h,1.14,1.15

Robert Göffringmann lavosspawn at users.sourceforge.net
Wed Nov 24 13:04:09 CET 2004


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

Modified Files:
	logic.cpp sworddefs.h 
Log Message:
fix for bug 928791: BS1: 'Freeze' at hospital

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/logic.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- logic.cpp	15 Nov 2004 08:23:09 -0000	1.42
+++ logic.cpp	24 Nov 2004 21:03:20 -0000	1.43
@@ -1215,8 +1215,11 @@
 //send an instruction to mega we're talking to and wait
 //until it has finished before returning to script
 int Logic::fnTheyDoWeWait(Object *cpt, int32 id, int32 tar, int32 instruc, int32 param1, int32 param2, int32 param3, int32 x) {
-	Object *target;
-	target = _objMan->fetchObject(tar);
+	// workaround for scriptbug #928791: Freeze at hospital
+	// in at least one game version, a script forgets to set sam_returning back to zero
+	if ((tar == SAM) && (instruc == INS_talk) && (param2 == 2162856))
+		_scriptVars[SAM_RETURNING] = 0;
+	Object *target = _objMan->fetchObject(tar);
 	target->o_down_flag = instruc; // instruction for the mega
 	target->o_ins1 = param1;
 	target->o_ins2 = param2;

Index: sworddefs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/sworddefs.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- sworddefs.h	7 Mar 2004 19:14:32 -0000	1.14
+++ sworddefs.h	24 Nov 2004 21:03:21 -0000	1.15
@@ -50,6 +50,11 @@
 #define LOGIC_new_script 15
 #define LOGIC_pause_for_event 16
 
+#define SCRIPT_CONT 1
+#define SCRIPT_STOP 0
+
+#define INS_talk 1
+
 #define TOTAL_pockets 52
 #define TOTAL_subjects (375-256+1)
 #define BASE_SUBJECT 256
@@ -111,12 +116,6 @@
 	#pragma END_PACK_STRUCTS
 #endif
 
-/*struct RSprite {
-	Header header;
-	uint32 totalSprites;
-	uint32 spriteOffset[2];			//2 is arbitrary number
-}*/
-
 enum Language {
 	BS1_ENGLISH = 0,
 	BS1_FRENCH,
@@ -127,12 +126,11 @@
 	BS1_PORT
 };
 
-#define SCRIPT_CONT 1
-#define SCRIPT_STOP 0
-
+#define SAM 2162689
 #define PLAYER 8388608
-#define NICO 8454144
 #define GEORGE 8388608
+#define NICO 8454144
+
 #define UP 0
 #define UP_RIGHT 1
 #define U_R 1





More information about the Scummvm-git-logs mailing list