aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/star_control/star_control_sub21.cpp1
-rw-r--r--engines/titanic/star_control/star_control_sub22.cpp17
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