[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.73,2.74 script.cpp,1.77,1.78 scummvm.cpp,2.127,2.128

Max Horn fingolfin at users.sourceforge.net
Thu May 8 08:59:04 CEST 2003


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

Modified Files:
	gfx.cpp script.cpp scummvm.cpp 
Log Message:
fixed various cases of bad var access

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.73
retrieving revision 2.74
diff -u -d -r2.73 -r2.74
--- gfx.cpp	8 May 2003 15:48:47 -0000	2.73
+++ gfx.cpp	8 May 2003 15:58:29 -0000	2.74
@@ -2145,7 +2145,7 @@
 		camera._cur.x &= 0xFFF8;
 
 		if (camera._cur.x < VAR(VAR_CAMERA_MIN_X)) {
-			if (VAR(VAR_CAMERA_FAST_X))
+			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
 				camera._cur.x = VAR(VAR_CAMERA_MIN_X);
 			else
 				camera._cur.x += 8;
@@ -2154,7 +2154,7 @@
 		}
 
 		if (camera._cur.x > VAR(VAR_CAMERA_MAX_X)) {
-			if (VAR(VAR_CAMERA_FAST_X))
+			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
 				camera._cur.x = VAR(VAR_CAMERA_MAX_X);
 			else
 				camera._cur.x -= 8;
@@ -2169,7 +2169,7 @@
 			t = (actorx >> 3) - _screenStartStrip;
 
 			if (t < camera._leftTrigger || t > camera._rightTrigger) {
-				if (VAR(VAR_CAMERA_FAST_X)) {
+				if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) {
 					if (t > 35)
 						camera._dest.x = actorx + 80;
 					if (t < 5)
@@ -2190,7 +2190,7 @@
 		if (camera._dest.x > VAR(VAR_CAMERA_MAX_X))
 			camera._dest.x = VAR(VAR_CAMERA_MAX_X);
 
-		if (VAR(VAR_CAMERA_FAST_X)) {
+		if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) {
 			camera._cur.x = camera._dest.x;
 		} else {
 			if (camera._cur.x < camera._dest.x)

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- script.cpp	8 May 2003 15:48:48 -0000	1.77
+++ script.cpp	8 May 2003 15:58:30 -0000	1.78
@@ -784,12 +784,17 @@
 void Scumm::checkAndRunSentenceScript() {
 	int i;
 	ScriptSlot *ss;
+	int sentenceScript;
+	if (_features & GF_AFTER_V2)
+		sentenceScript = 2;
+	else
+		sentenceScript = VAR(VAR_SENTENCE_SCRIPT);
 
 	memset(_localParamList, 0, sizeof(_localParamList));
-	if (isScriptInUse(VAR(VAR_SENTENCE_SCRIPT))) {
+	if (isScriptInUse(sentenceScript)) {
 		ss = vm.slot;
 		for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
-			if (ss->number == VAR(VAR_SENTENCE_SCRIPT) && ss->status != ssDead && ss->freezeCount == 0)
+			if (ss->number == sentenceScript && ss->status != ssDead && ss->freezeCount == 0)
 				return;
 	}
 
@@ -806,8 +811,8 @@
 	_localParamList[1] = _sentence[_sentenceNum].unk4;
 	_localParamList[2] = _sentence[_sentenceNum].unk3;
 	_currentScript = 0xFF;
-	if (VAR(VAR_SENTENCE_SCRIPT))
-		runScript(VAR(VAR_SENTENCE_SCRIPT), 0, 0, _localParamList);
+	if (sentenceScript)
+		runScript(sentenceScript, 0, 0, _localParamList);
 }
 
 void Scumm::runInputScript(int a, int cmd, int mode) {

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.127
retrieving revision 2.128
diff -u -d -r2.127 -r2.128
--- scummvm.cpp	8 May 2003 15:48:49 -0000	2.127
+++ scummvm.cpp	8 May 2003 15:58:30 -0000	2.128
@@ -845,10 +845,12 @@
 	// that it will be in a different state each time you run the program.
 	_rnd.getRandomNumber(2);
 
-	VAR(VAR_TMR_1) += delta;
-	VAR(VAR_TMR_2) += delta;
-	VAR(VAR_TMR_3) += delta;
-	VAR(VAR_TMR_4) += delta;
+	if (!(_features & GF_AFTER_V2)) {
+		VAR(VAR_TMR_1) += delta;
+		VAR(VAR_TMR_2) += delta;
+		VAR(VAR_TMR_3) += delta;
+		VAR(VAR_TMR_4) += delta;
+	}
 
 	if (delta > 15)
 		delta = 15;
@@ -1047,7 +1049,8 @@
 	/* show or hide mouse */
 	_system->show_mouse(_cursor.state > 0);
 
-	VAR(VAR_TIMER) = 0;
+	if (!(_features & GF_AFTER_V2))
+		VAR(VAR_TIMER) = 0;
 	return VAR(VAR_TIMER_NEXT);
 
 }





More information about the Scummvm-git-logs mailing list