diff options
| -rw-r--r-- | engines/scumm/camera.cpp | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/scumm/camera.cpp b/engines/scumm/camera.cpp index 03b5a64401..5aaa197310 100644 --- a/engines/scumm/camera.cpp +++ b/engines/scumm/camera.cpp @@ -103,11 +103,12 @@ void ScummEngine::moveCamera() {  	int pos = camera._cur.x;  	int t;  	Actor *a = NULL; +	const bool snapToX = (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X));  	camera._cur.x &= 0xFFF8;  	if (VAR_CAMERA_MIN_X != 0xFF && camera._cur.x < VAR(VAR_CAMERA_MIN_X)) { -		if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) +		if (snapToX)  			camera._cur.x = (short) VAR(VAR_CAMERA_MIN_X);  		else  			camera._cur.x += 8; @@ -116,7 +117,7 @@ void ScummEngine::moveCamera() {  	}  	if (VAR_CAMERA_MAX_X != 0xFF && camera._cur.x > VAR(VAR_CAMERA_MAX_X)) { -		if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) +		if (snapToX)  			camera._cur.x = (short) VAR(VAR_CAMERA_MAX_X);  		else  			camera._cur.x -= 8; @@ -131,8 +132,8 @@ void ScummEngine::moveCamera() {  		t = actorx / 8 - _screenStartStrip;  		if (t < camera._leftTrigger || t > camera._rightTrigger) { -			if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) { -				if (t > 35) +			if (snapToX) { +				if (t > 40-5)  					camera._dest.x = actorx + 80;  				if (t < 5)  					camera._dest.x = actorx - 80; @@ -152,7 +153,7 @@ void ScummEngine::moveCamera() {  	if (VAR_CAMERA_MAX_X != 0xFF && camera._dest.x > VAR(VAR_CAMERA_MAX_X))  		camera._dest.x = (short) VAR(VAR_CAMERA_MAX_X); -	if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) { +	if (snapToX) {  		camera._cur.x = camera._dest.x;  	} else {  		if (camera._cur.x < camera._dest.x) @@ -161,7 +162,7 @@ void ScummEngine::moveCamera() {  			camera._cur.x -= 8;  	} -	/* a is set a bit above */ +	/* Actor 'a' is set a bit above */  	if (camera._movingToActor && (camera._cur.x / 8) == (a->getPos().x / 8)) {  		camera._movingToActor = false;  	}  | 
