[Scummvm-git-logs] scummvm master -> 39ffcf7a1bbe56f42f977c81bf089a36803d8158

dreammaster dreammaster at scummvm.org
Mon Jun 5 02:18:01 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:
032cd3f4eb TITANIC: Simplify DVector fn1
39ffcf7a1b TITANIC: Simplifications in lockMarker2


Commit: 032cd3f4eb84fb63d47e72c66812fdf6decf1026
    https://github.com/scummvm/scummvm/commit/032cd3f4eb84fb63d47e72c66812fdf6decf1026
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-06-04T20:17:11-04:00

Commit Message:
TITANIC: Simplify DVector fn1

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


diff --git a/engines/titanic/star_control/dvector.cpp b/engines/titanic/star_control/dvector.cpp
index b4a9ede..6e962fe 100644
--- a/engines/titanic/star_control/dvector.cpp
+++ b/engines/titanic/star_control/dvector.cpp
@@ -40,11 +40,12 @@ double DVector::getDistance(const DVector &src) {
 	return sqrt((src._x - _x) * (src._x - _x) + (src._y - _y) * (src._y - _y) + (src._z - _z) * (src._z - _z));
 }
 
-DVector *DVector::fn1(DVector &dest, const DMatrix &m) {
+DVector DVector::fn1(const DMatrix &m) {
+	DVector dest;
 	dest._x = m._row3._x * _z + m._row2._x * _y + _x * m._row1._x + m._row4._x;
 	dest._y = m._row2._y * _y + m._row3._y * _z + m._row1._y * _x + m._row4._y;
 	dest._z = m._row3._z * _z + m._row2._z * _y + m._row1._z * _x + m._row4._z;
-	return &dest;
+	return dest;
 }
 
 void DVector::fn2(double val) {
diff --git a/engines/titanic/star_control/dvector.h b/engines/titanic/star_control/dvector.h
index cb0d8fb..b4fb21b 100644
--- a/engines/titanic/star_control/dvector.h
+++ b/engines/titanic/star_control/dvector.h
@@ -48,7 +48,7 @@ public:
 	 */
 	double getDistance(const DVector &src);
 
-	DVector *fn1(DVector &dest, const DMatrix &m);
+	DVector fn1(const DMatrix &m);
 	void fn2(double val);
 	DVector fn3() const;
 	DMatrix fn4(const DVector &v);
diff --git a/engines/titanic/star_control/star_camera.cpp b/engines/titanic/star_control/star_camera.cpp
index 9b11043..c12d794 100644
--- a/engines/titanic/star_control/star_camera.cpp
+++ b/engines/titanic/star_control/star_camera.cpp
@@ -321,23 +321,15 @@ void CStarCamera::setViewportAngle(const FPoint &angles) {
 		tempV7._x = m3._row3._x * 1000000.0 + tempV3._x;
 
 		mrow3 = tempV8;
-		DVector *v = tempV3.fn1(tempV9, subX);
-		tempV3 = *v;
-		v = mrow1.fn1(tempV10, subX);
-		mrow1 = *v;
-		v = mrow2.fn1(tempV11, subX);
-		mrow2 = *v;
-		v = mrow3.fn1(tempV12, subX);
-		mrow3 = *v;
-
-		v = tempV3.fn1(tempV13, m1);
-		tempV3 = *v;
-		v = mrow1.fn1(tempV14, m1);
-		mrow1 = *v;
-		v = mrow2.fn1(tempV15, m1);
-		mrow2 = *v;
-		v = mrow3.fn1(tempV16, m1);
-		mrow3 = *v;
+		tempV3 = tempV3.fn1(subX);
+		mrow1 = mrow1.fn1(subX);
+		mrow2 = mrow2.fn1(subX);
+		mrow3 = mrow3.fn1(subX);
+
+		tempV3 = tempV3.fn1(m1);
+		mrow1 = mrow1.fn1(m1);
+		mrow2 = mrow2.fn1(m1);
+		mrow3 = mrow3.fn1(m1);
 
 		mrow1 -= tempV3;
 		mrow2 -= tempV3;
@@ -500,16 +492,11 @@ void CStarCamera::lockMarker2(CViewport *viewport, const FVector &v) {
 	tempV3._z = m5._row3._z * 1000000.0 + m4._row1._z;
 	m4._row4 = tempV3;
 
-	DVector *dv = tempV2.fn1(tempV3, m2);
-	tempV3 = *dv;
-	dv = m4._row1.fn1(tempV3, m2);
-	m4._row1 = *dv;
-	dv = m4._row3.fn1(tempV3, m2);
-	m4._row3 = *dv;
-	dv = m4._row2.fn1(tempV3, m2);
-	m4._row2 = *dv;
-	dv = m4._row4.fn1(tempV3, m2);
-	m4._row4 = *dv;
+	tempV3 = tempV2.fn1(m2);
+	m4._row1 = m4._row1.fn1(m2);
+	m4._row2 = m4._row2.fn1(m2);
+	m4._row3 = m4._row3.fn1(m2);
+	m4._row4 = m4._row4.fn1(m2);
 
 	// Find the angle that gives the minimum distance
 	DVector tempV5;
@@ -530,25 +517,16 @@ void CStarCamera::lockMarker2(CViewport *viewport, const FVector &v) {
 	m4._row2.fn2((double)minDegree);
 	m4._row3.fn2((double)minDegree);
 	m4._row4.fn2((double)minDegree);
-	dv = m4._row1.fn1(tempV3, m1);
-	m4._row1 = *dv;
-	dv = m4._row3.fn1(tempV3, m1);
-	m4._row3 = *dv;
-	dv = m4._row2.fn1(tempV3, m1);
-	m4._row2 = *dv;
-	dv = m4._row4.fn1(tempV3, m1);
-	m4._row4 = *dv;
-
-	m4._row3._x -= m4._row1._x;
-	m4._row3._y -= m4._row1._y;
-	m4._row3._z -= m4._row1._z;
+	m4._row1 = m4._row1.fn1(m1);
+	m4._row2 = m4._row2.fn1(m1);
+	m4._row3 = m4._row3.fn1(m1);
+	m4._row4 = m4._row4.fn1(m1);
+
+	m4._row3 -= m4._row1;
 	m4._row2._x -= m4._row1._x;
 	m4._row2._y -= m4._row1._y;
 	m4._row2._z = m4._row2._z - m4._row1._z;
-
-	m4._row4._x = m4._row4._x - m4._row1._x;
-	m4._row4._y = m4._row4._y - m4._row1._y;
-	m4._row4._z = m4._row4._z - m4._row1._z;
+	m4._row4 -= m4._row1;
 
 	m4._row3.normalize();
 	m4._row2.normalize();


Commit: 39ffcf7a1bbe56f42f977c81bf089a36803d8158
    https://github.com/scummvm/scummvm/commit/39ffcf7a1bbe56f42f977c81bf089a36803d8158
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-06-04T20:17:51-04:00

Commit Message:
TITANIC: Simplifications in lockMarker2

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


diff --git a/engines/titanic/star_control/star_camera.cpp b/engines/titanic/star_control/star_camera.cpp
index c12d794..d45f4f0 100644
--- a/engines/titanic/star_control/star_camera.cpp
+++ b/engines/titanic/star_control/star_camera.cpp
@@ -459,11 +459,10 @@ void CStarCamera::lockMarker2(CViewport *viewport, const FVector &v) {
 
 	DMatrix m1;
 	DVector tempV1 = _matrix._row1;
-	DMatrix m2(0, tempV1);
+	DMatrix m2(X_AXIS, tempV1);
 
 	tempV1 = v - _matrix._row1;
 	m1 = tempV1.fn5();
-
 	m1 = m1.fn4(m2);
 	m2 = m1.fn1();
 
@@ -476,14 +475,8 @@ void CStarCamera::lockMarker2(CViewport *viewport, const FVector &v) {
 
 	FMatrix m5 = viewport->getOrientation();
 	DVector tempV3, tempV4;
-	tempV4._x = m5._row1._x * 1000000.0 + m4._row1._x;
-	tempV4._y = m5._row1._y * 1000000.0 + m4._row1._y;
-	tempV4._z = m5._row1._z * 1000000.0 + m4._row1._z;
-	tempV3._x = m5._row2._x * 1000000.0 + m4._row1._x;
-	tempV3._y = m5._row2._y * 1000000.0 + m4._row1._y;
-	tempV3._z = m5._row2._z * 1000000.0 + m4._row1._z;
-	m4._row3 = tempV4;
-	m4._row2 = tempV3;
+	m4._row3 = tempV4 = m5._row1 * 1000000.0 + m4._row1;
+	m4._row2 = tempV3 = m5._row2 * 1000000.0 + m4._row1;
 
 	tempV4._x = m5._row3._x * 1000000.0;
 	tempV4._y = m5._row3._y * 1000000.0;





More information about the Scummvm-git-logs mailing list