[Scummvm-cvs-logs] CVS: scummvm/scumm camera.cpp,2.1,2.2 intern.h,2.96,2.97 scumm.h,1.220,1.221

Max Horn fingolfin at users.sourceforge.net
Thu May 29 16:51:05 CEST 2003


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

Modified Files:
	camera.cpp intern.h scumm.h 
Log Message:
more camera spliting

Index: camera.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/camera.cpp,v
retrieving revision 2.1
retrieving revision 2.2
diff -u -d -r2.1 -r2.2
--- camera.cpp	29 May 2003 12:55:27 -0000	2.1
+++ camera.cpp	29 May 2003 23:44:23 -0000	2.2
@@ -147,166 +147,167 @@
 }
 
 void Scumm::moveCamera() {
-	if (_features & GF_AFTER_V7) {
-		ScummVM::Point old = camera._cur;
-		Actor *a = NULL;
+	int pos = camera._cur.x;
+	int actorx, t;
+	Actor *a = NULL;
 
-		if (camera._follows) {
-			a = derefActor(camera._follows, "moveCamera");
-			if (abs(camera._cur.x - a->x) > VAR(VAR_CAMERA_THRESHOLD_X) ||
-					abs(camera._cur.y - a->y) > VAR(VAR_CAMERA_THRESHOLD_Y)) {
-				camera._movingToActor = true;
-				if (VAR(VAR_CAMERA_THRESHOLD_X) == 0)
-					camera._cur.x = a->x;
-				if (VAR(VAR_CAMERA_THRESHOLD_Y) == 0)
-					camera._cur.y = a->y;
-				clampCameraPos(&camera._cur);
-			}
-		} else {
-			camera._movingToActor = false;
-		}
+	camera._cur.x &= 0xFFF8;
 
-		if (camera._movingToActor) {
-			VAR(VAR_CAMERA_DEST_X) = camera._dest.x = a->x;
-			VAR(VAR_CAMERA_DEST_Y) = camera._dest.y = a->y;
-		}
+	if (camera._cur.x < VAR(VAR_CAMERA_MIN_X)) {
+		if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
+			camera._cur.x = (short) VAR(VAR_CAMERA_MIN_X);
+		else
+			camera._cur.x += 8;
+		cameraMoved();
+		return;
+	}
 
-		assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
+	if (camera._cur.x > VAR(VAR_CAMERA_MAX_X)) {
+		if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
+			camera._cur.x = (short) VAR(VAR_CAMERA_MAX_X);
+		else
+			camera._cur.x -= 8;
+		cameraMoved();
+		return;
+	}
 
-		clampCameraPos(&camera._dest);
+	if (camera._mode == CM_FOLLOW_ACTOR) {
+		a = derefActor(camera._follows, "moveCamera");
 
-		if (camera._cur.x < camera._dest.x) {
-			camera._cur.x += (short) VAR(VAR_CAMERA_SPEED_X);
-			if (camera._cur.x > camera._dest.x)
-				camera._cur.x = camera._dest.x;
-		}
+		actorx = a->x;
+		t = (actorx >> 3) - _screenStartStrip;
 
-		if (camera._cur.x > camera._dest.x) {
-			camera._cur.x -= (short) VAR(VAR_CAMERA_SPEED_X);
-			if (camera._cur.x < camera._dest.x)
-				camera._cur.x = camera._dest.x;
+		if (t < camera._leftTrigger || t > camera._rightTrigger) {
+			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) {
+				if (t > 35)
+					camera._dest.x = actorx + 80;
+				if (t < 5)
+					camera._dest.x = actorx - 80;
+			} else
+				camera._movingToActor = true;
 		}
+	}
 
-		if (camera._cur.y < camera._dest.y) {
-			camera._cur.y += (short) VAR(VAR_CAMERA_SPEED_Y);
-			if (camera._cur.y > camera._dest.y)
-				camera._cur.y = camera._dest.y;
-		}
+	if (camera._movingToActor) {
+		a = derefActor(camera._follows, "moveCamera(2)");
+		camera._dest.x = a->x;
+	}
 
-		if (camera._cur.y > camera._dest.y) {
-			camera._cur.y -= (short) VAR(VAR_CAMERA_SPEED_Y);
-			if (camera._cur.y < camera._dest.y)
-				camera._cur.y = camera._dest.y;
-		}
+	if (camera._dest.x < VAR(VAR_CAMERA_MIN_X))
+		camera._dest.x = (short) VAR(VAR_CAMERA_MIN_X);
 
-		if (camera._cur.x == camera._dest.x && camera._cur.y == camera._dest.y) {
+	if (camera._dest.x > VAR(VAR_CAMERA_MAX_X))
+		camera._dest.x = (short) VAR(VAR_CAMERA_MAX_X);
 
-			camera._movingToActor = false;
-			camera._accel.x = camera._accel.y = 0;
-			VAR(VAR_CAMERA_SPEED_X) = VAR(VAR_CAMERA_SPEED_Y) = 0;
-		} else {
+	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)
+			camera._cur.x += 8;
+		if (camera._cur.x > camera._dest.x)
+			camera._cur.x -= 8;
+	}
 
-			camera._accel.x += (short) VAR(VAR_CAMERA_ACCEL_X);
-			camera._accel.y += (short) VAR(VAR_CAMERA_ACCEL_Y);
+	/* a is set a bit above */
+	if (camera._movingToActor && (camera._cur.x >> 3) == (a->x >> 3)) {
+		camera._movingToActor = false;
+	}
 
-			VAR(VAR_CAMERA_SPEED_X) += camera._accel.x / 100;
-			VAR(VAR_CAMERA_SPEED_Y) += camera._accel.y / 100;
+	cameraMoved();
 
-			if (VAR(VAR_CAMERA_SPEED_X) < 8)
-				VAR(VAR_CAMERA_SPEED_X) = 8;
+	if (VAR_SCROLL_SCRIPT != 0xFF && VAR(VAR_SCROLL_SCRIPT) && pos != camera._cur.x) {
+		if (_features & GF_AFTER_V2)
+			VAR(VAR_CAMERA_POS_X) = camera._cur.x / 8;
+		else
+			VAR(VAR_CAMERA_POS_X) = camera._cur.x;
+		runScript(VAR(VAR_SCROLL_SCRIPT), 0, 0, 0);
+	}
+}
 
-			if (VAR(VAR_CAMERA_SPEED_Y) < 8)
-				VAR(VAR_CAMERA_SPEED_Y) = 8;
+void Scumm_v7::moveCamera() {
+	ScummVM::Point old = camera._cur;
+	Actor *a = NULL;
 
+	if (camera._follows) {
+		a = derefActor(camera._follows, "moveCamera");
+		if (abs(camera._cur.x - a->x) > VAR(VAR_CAMERA_THRESHOLD_X) ||
+				abs(camera._cur.y - a->y) > VAR(VAR_CAMERA_THRESHOLD_Y)) {
+			camera._movingToActor = true;
+			if (VAR(VAR_CAMERA_THRESHOLD_X) == 0)
+				camera._cur.x = a->x;
+			if (VAR(VAR_CAMERA_THRESHOLD_Y) == 0)
+				camera._cur.y = a->y;
+			clampCameraPos(&camera._cur);
 		}
+	} else {
+		camera._movingToActor = false;
+	}
 
-		cameraMoved();
+	if (camera._movingToActor) {
+		VAR(VAR_CAMERA_DEST_X) = camera._dest.x = a->x;
+		VAR(VAR_CAMERA_DEST_Y) = camera._dest.y = a->y;
+	}
 
-		if (camera._cur.x != old.x || camera._cur.y != old.y) {
-			VAR(VAR_CAMERA_POS_X) = camera._cur.x;
-			VAR(VAR_CAMERA_POS_Y) = camera._cur.y;
+	assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
 
-			if (VAR(VAR_SCROLL_SCRIPT))
-				runScript(VAR(VAR_SCROLL_SCRIPT), 0, 0, 0);
-		}
-	} else {
-		int pos = camera._cur.x;
-		int actorx, t;
-		Actor *a = NULL;
+	clampCameraPos(&camera._dest);
 
-		camera._cur.x &= 0xFFF8;
+	if (camera._cur.x < camera._dest.x) {
+		camera._cur.x += (short) VAR(VAR_CAMERA_SPEED_X);
+		if (camera._cur.x > camera._dest.x)
+			camera._cur.x = camera._dest.x;
+	}
 
-		if (camera._cur.x < VAR(VAR_CAMERA_MIN_X)) {
-			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
-				camera._cur.x = (short) VAR(VAR_CAMERA_MIN_X);
-			else
-				camera._cur.x += 8;
-			cameraMoved();
-			return;
-		}
+	if (camera._cur.x > camera._dest.x) {
+		camera._cur.x -= (short) VAR(VAR_CAMERA_SPEED_X);
+		if (camera._cur.x < camera._dest.x)
+			camera._cur.x = camera._dest.x;
+	}
 
-		if (camera._cur.x > VAR(VAR_CAMERA_MAX_X)) {
-			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X))
-				camera._cur.x = (short) VAR(VAR_CAMERA_MAX_X);
-			else
-				camera._cur.x -= 8;
-			cameraMoved();
-			return;
-		}
+	if (camera._cur.y < camera._dest.y) {
+		camera._cur.y += (short) VAR(VAR_CAMERA_SPEED_Y);
+		if (camera._cur.y > camera._dest.y)
+			camera._cur.y = camera._dest.y;
+	}
 
-		if (camera._mode == CM_FOLLOW_ACTOR) {
-			a = derefActor(camera._follows, "moveCamera");
+	if (camera._cur.y > camera._dest.y) {
+		camera._cur.y -= (short) VAR(VAR_CAMERA_SPEED_Y);
+		if (camera._cur.y < camera._dest.y)
+			camera._cur.y = camera._dest.y;
+	}
 
-			actorx = a->x;
-			t = (actorx >> 3) - _screenStartStrip;
+	if (camera._cur.x == camera._dest.x && camera._cur.y == camera._dest.y) {
 
-			if (t < camera._leftTrigger || t > camera._rightTrigger) {
-				if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) {
-					if (t > 35)
-						camera._dest.x = actorx + 80;
-					if (t < 5)
-						camera._dest.x = actorx - 80;
-				} else
-					camera._movingToActor = true;
-			}
-		}
+		camera._movingToActor = false;
+		camera._accel.x = camera._accel.y = 0;
+		VAR(VAR_CAMERA_SPEED_X) = VAR(VAR_CAMERA_SPEED_Y) = 0;
+	} else {
 
-		if (camera._movingToActor) {
-			a = derefActor(camera._follows, "moveCamera(2)");
-			camera._dest.x = a->x;
-		}
+		camera._accel.x += (short) VAR(VAR_CAMERA_ACCEL_X);
+		camera._accel.y += (short) VAR(VAR_CAMERA_ACCEL_Y);
 
-		if (camera._dest.x < VAR(VAR_CAMERA_MIN_X))
-			camera._dest.x = (short) VAR(VAR_CAMERA_MIN_X);
+		VAR(VAR_CAMERA_SPEED_X) += camera._accel.x / 100;
+		VAR(VAR_CAMERA_SPEED_Y) += camera._accel.y / 100;
 
-		if (camera._dest.x > VAR(VAR_CAMERA_MAX_X))
-			camera._dest.x = (short) VAR(VAR_CAMERA_MAX_X);
+		if (VAR(VAR_CAMERA_SPEED_X) < 8)
+			VAR(VAR_CAMERA_SPEED_X) = 8;
 
-		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)
-				camera._cur.x += 8;
-			if (camera._cur.x > camera._dest.x)
-				camera._cur.x -= 8;
-		}
+		if (VAR(VAR_CAMERA_SPEED_Y) < 8)
+			VAR(VAR_CAMERA_SPEED_Y) = 8;
 
-		/* a is set a bit above */
-		if (camera._movingToActor && (camera._cur.x >> 3) == (a->x >> 3)) {
-			camera._movingToActor = false;
-		}
+	}
 
-		cameraMoved();
-	
-		if (VAR_SCROLL_SCRIPT != 0xFF && VAR(VAR_SCROLL_SCRIPT) && pos != camera._cur.x) {
-			if (_features & GF_AFTER_V2)
-				VAR(VAR_CAMERA_POS_X) = camera._cur.x / 8;
-			else
-				VAR(VAR_CAMERA_POS_X) = camera._cur.x;
+	cameraMoved();
+
+	if (camera._cur.x != old.x || camera._cur.y != old.y) {
+		VAR(VAR_CAMERA_POS_X) = camera._cur.x;
+		VAR(VAR_CAMERA_POS_Y) = camera._cur.y;
+
+		if (VAR(VAR_SCROLL_SCRIPT))
 			runScript(VAR(VAR_SCROLL_SCRIPT), 0, 0, 0);
-		}
 	}
 }
+
 
 void Scumm::cameraMoved() {
 	if (_features & GF_AFTER_V7) {

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.96
retrieving revision 2.97
diff -u -d -r2.96 -r2.97
--- intern.h	29 May 2003 12:55:28 -0000	2.96
+++ intern.h	29 May 2003 23:44:24 -0000	2.97
@@ -522,8 +522,9 @@
 	virtual void setupScummVars();
 
 	virtual void setCameraAt(int pos_x, int pos_y);
-	virtual void panCameraTo(int x, int y);
 	virtual void setCameraFollows(Actor *a);
+	virtual void moveCamera();
+	virtual void panCameraTo(int x, int y);
 };
 
 class Scumm_v8 : public Scumm_v7 {

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.220
retrieving revision 1.221
diff -u -d -r1.220 -r1.221
--- scumm.h	29 May 2003 12:55:28 -0000	1.220
+++ scumm.h	29 May 2003 23:44:24 -0000	1.221
@@ -816,12 +816,12 @@
 	void redrawBGStrip(int start, int num);	
 	void redrawBGAreas();	
 	
-	void moveCamera();
 	void cameraMoved();
 	void setCameraAtEx(int at);
 	virtual void setCameraAt(int pos_x, int pos_y);
-	virtual void panCameraTo(int x, int y);
 	virtual void setCameraFollows(Actor *a);
+	virtual void moveCamera();
+	virtual void panCameraTo(int x, int y);
 	void clampCameraPos(ScummVM::Point *pt);
 	void actorFollowCamera(int act);
 





More information about the Scummvm-git-logs mailing list