diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/star_control/star_control_sub21.cpp | 1 | ||||
-rw-r--r-- | engines/titanic/star_control/star_control_sub22.cpp | 17 |
2 files changed, 17 insertions, 1 deletions
diff --git a/engines/titanic/star_control/star_control_sub21.cpp b/engines/titanic/star_control/star_control_sub21.cpp index 681736dfac..c81d5911db 100644 --- a/engines/titanic/star_control/star_control_sub21.cpp +++ b/engines/titanic/star_control/star_control_sub21.cpp @@ -55,6 +55,7 @@ void CStarControlSub21::proc10(const FVector &v1, const FVector &v2, const FVect void CStarControlSub21::proc11(CErrorCode &errorCode, FVector &v, const FMatrix &m) { if (_sub24.get8()) { + decLockCount(); int val = _sub24.proc5(errorCode, v, m); if (val == 1) incLockCount(); diff --git a/engines/titanic/star_control/star_control_sub22.cpp b/engines/titanic/star_control/star_control_sub22.cpp index b76d96e47a..b5962bc225 100644 --- a/engines/titanic/star_control/star_control_sub22.cpp +++ b/engines/titanic/star_control/star_control_sub22.cpp @@ -38,7 +38,22 @@ void CStarControlSub22::proc8(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2 } void CStarControlSub22::proc11(CErrorCode &errorCode, FVector &v, const FMatrix &m) { - // TODO + if (_sub27.get8()) { + decLockCount(); + int val = _sub27.proc5(errorCode, v, m); + if (val == 1) + incLockCount(); + if (val == 2) { + proc7(); + if (_starVector) + _starVector->apply(); + } + } else if (_size != 0.0) { + v._x += m._row3._x * _size; + v._y += m._row3._y * _size; + v._z += m._row3._z * _size; + errorCode.set(); + } } } // End of namespace Titanic |