[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