[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