[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