[Scummvm-git-logs] scummvm master -> 9b77dc9420befe2f51141c1df381876cb1d7fc59

dreammaster dreammaster at scummvm.org
Sat Mar 18 02:01:20 CET 2017


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:
9b77dc9420 TITANIC: Finished CStarControlSub6 class


Commit: 9b77dc9420befe2f51141c1df381876cb1d7fc59
    https://github.com/scummvm/scummvm/commit/9b77dc9420befe2f51141c1df381876cb1d7fc59
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-03-17T21:01:15-04:00

Commit Message:
TITANIC: Finished CStarControlSub6 class

Changed paths:
    engines/titanic/star_control/star_control_sub13.cpp
    engines/titanic/star_control/star_control_sub6.cpp
    engines/titanic/star_control/star_control_sub6.h


diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
index 72badde..2b5776c 100644
--- a/engines/titanic/star_control/star_control_sub13.cpp
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -263,7 +263,7 @@ void CStarControlSub13::reset() {
 	_sub2._vector._x = _position._x;
 	_sub2._vector._y = _position._y;
 	_sub2._vector._z = _position._z;
-	_sub2.fn3(_sub1);
+	_sub2.fn4(&_sub1);
 
 	double widthV = (double)_width * 0.5;
 	double heightV = (double)_height * 0.5;
diff --git a/engines/titanic/star_control/star_control_sub6.cpp b/engines/titanic/star_control/star_control_sub6.cpp
index a93f128..21fb42c 100644
--- a/engines/titanic/star_control/star_control_sub6.cpp
+++ b/engines/titanic/star_control/star_control_sub6.cpp
@@ -159,8 +159,67 @@ CStarControlSub6 *CStarControlSub6::setup(CStarControlSub6 *dest, const CStarCon
 	return dest;
 }
 
-void CStarControlSub6::fn1(CStarControlSub6 *sub6) {
-	// TODO
+void CStarControlSub6::fn4(CStarControlSub6 *sub6) {
+	double v2, v3, v6, v7, v8, v9, v10, v11;
+	double v12, v13, v14, v15, v16, v17, v18;
+	
+	v16 = _row3._z * _row2._y;
+	v2 = _row1._x * v16;
+	v3 = 0.0;
+	v18 = v2;
+	if (v2 < 0.0) {
+		v3 = v18;
+		v2 = 0.0;
+	}
+	v6 = _row3._x * _row1._y * _row2._z;
+	if (v6 < 0.0)
+		v3 = v3 + v6;
+	else
+		v2 = v2 + v6;
+	v7 = _row3._y * _row1._z * _row2._x;
+	if (v7 < 0.0)
+		v3 = v3 + v7;
+	else
+		v2 = v2 + v7;
+	if (-(_row3._x * _row1._z * _row2._y) < 0.0)
+		v3 = v3 - _row3._x * _row1._z * _row2._y;
+	else
+		v2 = v2 - _row3._x * _row1._z * _row2._y;
+	if (-(_row1._y * _row2._x * _row3._z) < 0.0)
+		v3 = v3 - _row1._y * _row2._x * _row3._z;
+	else
+		v2 = v2 - _row1._y * _row2._x * _row3._z;
+	v17 = _row2._z * _row3._y;
+	if (-(_row1._x * v17) < 0.0)
+		v3 = v3 - _row1._x * v17;
+	else
+		v2 = v2 - _row1._x * v17;
+	v18 = v3 + v2;
+	assert(!(v18 == 0.0 || fabs(v18 / (v2 - v3)) < 1.0e-10));
+
+	v8 = 1.0 / v18;
+	v18 = v8;
+	sub6->_row1._x = (v16 - v17) * v8;
+	sub6->_row2._x = -(_row2._x * _row3._z - _row3._x * _row2._z) * v8;
+	sub6->_row3._x = (_row3._y * _row2._x - _row3._x * _row2._y) * v8;
+	sub6->_row1._y = -(_row1._y * _row3._z - _row3._y * _row1._z) * v8;
+	sub6->_row2._y = (_row1._x * _row3._z - _row3._x * _row1._z) * v8;
+	sub6->_row3._y = -(_row1._x * _row3._y - _row3._x * _row1._y) * v8;
+	sub6->_row1._z = (_row1._y * _row2._z - _row1._z * _row2._y) * v8;
+	sub6->_row2._z = -(_row1._x * _row2._z - _row1._z * _row2._x) * v8;
+	v9 = sub6->_row1._x;
+	v10 = sub6->_row2._y;
+	v11 = sub6->_row3._y;
+	v12 = sub6->_row1._z;
+	v13 = sub6->_row2._z;
+	sub6->_row3._z = (_row1._x * _row2._y - _row1._y * _row2._x) * v18;
+	v14 = v9;
+	v15 = sub6->_row3._z;
+	sub6->_vector._x = -(v14 * _vector._x
+		+ _vector._y * sub6->_row2._x
+		+ _vector._z * sub6->_row3._x);
+	sub6->_vector._y = -(_vector._x * sub6->_row1._y + v10 * _vector._y + v11 * _vector._z);
+	sub6->_vector._z = -(v12 * _vector._x + v13 * _vector._y + v15 * _vector._z);
 }
 
 } // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub6.h b/engines/titanic/star_control/star_control_sub6.h
index 27b9162..61548d1 100644
--- a/engines/titanic/star_control/star_control_sub6.h
+++ b/engines/titanic/star_control/star_control_sub6.h
@@ -62,7 +62,7 @@ public:
 	 */
 	void copyFrom(const FMatrix &src);
 
-	void fn1(CStarControlSub6 *sub6);
+	void fn4(CStarControlSub6 *sub6);
 };
 
 } // End of namespace Titanic





More information about the Scummvm-git-logs mailing list