[Scummvm-cvs-logs] scummvm master -> 829e281546338db9c12f55d4744c9a260df96f55

dreammaster dreammaster at scummvm.org
Mon Sep 16 01:24:42 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
829e281546 TSAGE: Fix for R2R balloon calculation


Commit: 829e281546338db9c12f55d4744c9a260df96f55
    https://github.com/scummvm/scummvm/commit/829e281546338db9c12f55d4744c9a260df96f55
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-09-15T16:23:45-07:00

Commit Message:
TSAGE: Fix for R2R balloon calculation

Changed paths:
    engines/tsage/ringworld2/ringworld2_scenes2.cpp



diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
index eabf330..81c936d 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
@@ -4790,8 +4790,10 @@ void Scene2900::Map::redraw(Rect *updateRect) {
 }
 
 void Scene2900::Map::synchronize(Serializer &s) {
-	s.syncAsUint16LE(_mapWidth);
-	s.syncAsUint16LE(_mapHeight);
+	s.syncAsUint16LE(_resNum);
+	if (s.isLoading())
+		load(_resNum);
+
 	s.syncAsSint16LE(_xV);
 	s.syncAsSint16LE(_yV);
 	_bounds.synchronize(s);
@@ -5088,10 +5090,10 @@ void Scene2900::dispatch() {
 		} else {
 			_field416 = true;
 			_altitudeChanging = false;
-			_field41C += R2_GLOBALS._balloonAltitude / 48;
-			_field426 = 100 - (_field41C * 25);
+			_field426 = 100 - ((R2_GLOBALS._balloonAltitude / 48) + _field41C) * 25;
 		}
 
+		// Zooming/altitude balloon change
 		if (_field425 == _field426) {
 			_field416 = false;
 		} else {
@@ -5138,6 +5140,7 @@ void Scene2900::dispatch() {
 		R2_GLOBALS._player.setPosition(_balloonScreenPos);
 
 		if ((_balloonLocation.x % 100) == 50 && (_balloonLocation.y % 100) == 50 && !_field416) {
+			// At an altitude change point, so calculate new altitude
 			_newAltitude = R2_GLOBALS._balloonAltitude;
 			if (_altitudeChanging) {
 				_newAltitude += _altitudeMajorChange * 48;
@@ -5159,9 +5162,10 @@ void Scene2900::dispatch() {
 			if (balloonData[R2_GLOBALS._balloonAltitude].v3 > 0) {
 				_newAltitude += 48;
 			} else if (balloonData[R2_GLOBALS._balloonAltitude].v3 < 0) {
-				_newAltitude += 208;
+				_newAltitude -= 48;
 			}
 
+			assert(_newAltitude < 193);
 			R2_GLOBALS._balloonAltitude = _newAltitude;
 			if (R2_GLOBALS._balloonAltitude == 189) {
 				// Finally reached landing point






More information about the Scummvm-git-logs mailing list