[Scummvm-git-logs] scummvm master -> 9583083c73e28add4c759843cf2fcd893d0936eb

dreammaster dreammaster at scummvm.org
Sat Jun 3 02:32:22 CEST 2017


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

Summary:
26ee9caebf TITANIC: Fix calculations in CStarCamera fn2
9583083c73 TITANIC: Simplify DVector fn4


Commit: 26ee9caebfed56c660df4ca9bbb09696f15baf65
    https://github.com/scummvm/scummvm/commit/26ee9caebfed56c660df4ca9bbb09696f15baf65
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-06-02T20:29:51-04:00

Commit Message:
TITANIC: Fix calculations in CStarCamera fn2

Changed paths:
    engines/titanic/star_control/star_camera.cpp
    engines/titanic/star_control/star_view.cpp


diff --git a/engines/titanic/star_control/star_camera.cpp b/engines/titanic/star_control/star_camera.cpp
index fae519e..392c53e 100644
--- a/engines/titanic/star_control/star_camera.cpp
+++ b/engines/titanic/star_control/star_camera.cpp
@@ -479,20 +479,32 @@ void CStarCamera::fn1(CViewport *viewport, const FVector &v) {
 }
 
 void CStarCamera::fn2(FVector v1, FVector v2, FVector v3) {
+	// Calculations only done when the first marker is locked on
 	if (_matrixRow == -1) {
 		FVector tempV;
+		double val1, val2, val3, val4, val5;
+		double val6, val7, val8, val9;
+
+		val1 = _viewport._centerVector._y * v1._x;
 		tempV._z = _viewport._field10;
+		val2 = _viewport._centerVector._y * tempV._z * v3._x;
+		val3 = _viewport._centerVector._z * v1._y;
+		val4 = _viewport._centerVector._z * tempV._z;
+		val5 = val1 * v1._z / _viewport._centerVector._x;
 		v3._z = v1._z;
-		tempV._x = _viewport._centerVector._z * v1._y * v1._z / _viewport._centerVector._x;
-		v3._y = _viewport._centerVector._y * tempV._z * v3._x / _viewport._centerVector._x;
-		v3._x = _viewport._centerVector._y * v1._x * v1._z / _viewport._centerVector._x - _viewport._valArray[2];
-		tempV._y = _viewport._centerVector._z * tempV._z * v3._y / _viewport._centerVector._x;
-		tempV._x = tempV._x - _viewport._valArray[2];
+		val6 = val4 * v3._y;
+		val7 = val3 * v1._z / _viewport._centerVector._x;
+		val8 = val6 / _viewport._centerVector._x;
+		val9 = val2 / _viewport._centerVector._x;
+		v3._x = val5 - _viewport._valArray[2];
+		v3._y = val7;
+		tempV._x = val9 - _viewport._valArray[2];
+		tempV._y = val8;
 
 		v3.normalize();
 		tempV.normalize();
 
-		FMatrix matrix = _viewport.getOrientation();
+		DMatrix matrix = _viewport.getOrientation();
 		const FVector &pos = _viewport._position;
 		_mover->proc10(v3, tempV, pos, matrix);
 
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index 7772469..9b292d7 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -379,7 +379,7 @@ void CStarView::lockStar() {
 	if (_starField && !_showingPhoto) {
 		CSurfaceArea surfaceArea(_videoSurface);
 		FVector v1, v2, v3;
-		double val = _starField->fn5(&surfaceArea, &_camera, v1, v2, v3);
+			double val = _starField->fn5(&surfaceArea, &_camera, v1, v2, v3);
 
 		if (val > -1.0) {
 			v1 -= surfaceArea._centroid;


Commit: 9583083c73e28add4c759843cf2fcd893d0936eb
    https://github.com/scummvm/scummvm/commit/9583083c73e28add4c759843cf2fcd893d0936eb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-06-02T20:32:12-04:00

Commit Message:
TITANIC: Simplify DVector fn4

Changed paths:
    engines/titanic/star_control/dvector.cpp
    engines/titanic/star_control/dvector.h
    engines/titanic/star_control/star_control_sub21.cpp


diff --git a/engines/titanic/star_control/dvector.cpp b/engines/titanic/star_control/dvector.cpp
index 0dab5bb..55030d2 100644
--- a/engines/titanic/star_control/dvector.cpp
+++ b/engines/titanic/star_control/dvector.cpp
@@ -77,7 +77,7 @@ DVector DVector::fn3() const {
 	return dest;
 }
 
-void DVector::fn4(const DVector &v, DMatrix &m) {
+DMatrix DVector::fn4(const DVector &v) {
 	const double FACTOR = 180.0 / M_PI;
 	DMatrix matrix1, matrix2, matrix3, matrix4;
 	DMatrix dest;
@@ -94,7 +94,7 @@ void DVector::fn4(const DVector &v, DMatrix &m) {
 	matrix3 = matrix1.fn4(matrix2);
 	matrix4 = matrix1.fn1();
 
-	m = matrix4.fn4(matrix3);
+	return matrix4.fn4(matrix3);
 }
 
 DMatrix DVector::fn5() const {
diff --git a/engines/titanic/star_control/dvector.h b/engines/titanic/star_control/dvector.h
index d967206..cb0d8fb 100644
--- a/engines/titanic/star_control/dvector.h
+++ b/engines/titanic/star_control/dvector.h
@@ -51,7 +51,7 @@ public:
 	DVector *fn1(DVector &dest, const DMatrix &m);
 	void fn2(double val);
 	DVector fn3() const;
-	void fn4(const DVector &v, DMatrix &m);
+	DMatrix fn4(const DVector &v);
 	DMatrix fn5() const;
 
 	/**
diff --git a/engines/titanic/star_control/star_control_sub21.cpp b/engines/titanic/star_control/star_control_sub21.cpp
index 86109a1..2dc90d5 100644
--- a/engines/titanic/star_control/star_control_sub21.cpp
+++ b/engines/titanic/star_control/star_control_sub21.cpp
@@ -47,11 +47,10 @@ void CStarControlSub21::proc10(const FVector &v1, const FVector &v2, const FVect
 
 	DVector vector1 = v1;
 	DVector vector2 = v2;
-	DMatrix matrix1, matrix2 = m, matrix3;
-	vector2.fn4(vector1, matrix1);
-	FMatrix matrix4 = matrix1.fn4(matrix2);
+	DMatrix matrix1 = vector2.fn4(vector1);
+	FMatrix matrix2 = matrix1.fn4(m);
 
-	_sub24.proc3(m, matrix4);
+	_sub24.proc3(m, matrix2);
 	incLockCount();
 }
 





More information about the Scummvm-git-logs mailing list