aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/star_control/camera_mover.h3
-rw-r--r--engines/titanic/star_control/star_camera.cpp28
-rw-r--r--engines/titanic/star_control/star_control_sub22.cpp5
-rw-r--r--engines/titanic/star_control/star_control_sub22.h3
-rw-r--r--engines/titanic/star_control/star_control_sub23.h5
-rw-r--r--engines/titanic/star_control/star_control_sub27.cpp35
-rw-r--r--engines/titanic/star_control/star_control_sub27.h7
-rw-r--r--engines/titanic/star_control/viewport.cpp28
-rw-r--r--engines/titanic/star_control/viewport.h6
9 files changed, 63 insertions, 57 deletions
diff --git a/engines/titanic/star_control/camera_mover.h b/engines/titanic/star_control/camera_mover.h
index 6577801d34..1121640578 100644
--- a/engines/titanic/star_control/camera_mover.h
+++ b/engines/titanic/star_control/camera_mover.h
@@ -55,7 +55,8 @@ public:
virtual void proc5();
virtual void proc6();
virtual void proc7();
- virtual void proc8(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2) {}
+ virtual void proc8(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation) {}
/**
* Start a movement to a given specified destination
diff --git a/engines/titanic/star_control/star_camera.cpp b/engines/titanic/star_control/star_camera.cpp
index ede73b349e..5c7f9910a7 100644
--- a/engines/titanic/star_control/star_camera.cpp
+++ b/engines/titanic/star_control/star_camera.cpp
@@ -117,10 +117,10 @@ void CStarCamera::proc13(CViewport *dest) {
}
void CStarCamera::setDestination(const FVector &v) {
- FMatrix matrix = _viewport.getMatrix();
- FVector vector = _viewport._position;
+ FMatrix orientation = _viewport.getOrientation();
+ FVector oldPos = _viewport._position;
- _mover->moveTo(vector, v, matrix);
+ _mover->moveTo(oldPos, v, orientation);
}
void CStarCamera::updatePosition(CErrorCode *errorCode) {
@@ -129,7 +129,7 @@ void CStarCamera::updatePosition(CErrorCode *errorCode) {
if (!_newOrientation)
_newOrientation = new FMatrix();
- *_priorOrientation = _viewport.getMatrix();
+ *_priorOrientation = _viewport.getOrientation();
*_newOrientation = *_priorOrientation;
FVector priorPos = _viewport._position;
@@ -237,7 +237,7 @@ void CStarCamera::setViewportAngle(const FPoint &angles) {
FPose subY(Y_AXIS, angles._x);
FPose sub(subX, subY);
- FMatrix m1 = _viewport.getMatrix();
+ FMatrix m1 = _viewport.getOrientation();
FVector tempV1 = _viewport._position;
FVector tempV2, tempV3, tempV4, tempV5, tempV6;
tempV2._y = m1._row1._y * 100000.0;
@@ -332,7 +332,7 @@ void CStarCamera::setViewportAngle(const FPoint &angles) {
subX = m1.fn1();
subX = subX.fn4(subY);
- FMatrix m3 = _viewport.getMatrix();
+ FMatrix m3 = _viewport.getOrientation();
tempV2 = _viewport._position;
multV._x = m3._row1._x * 1000000.0;
multV._y = m3._row1._y * 1000000.0;
@@ -466,12 +466,12 @@ void CStarCamera::deleteHandler() {
void CStarCamera::fn1(CViewport *viewport, const FVector &v) {
if (_matrixRow == 1) {
- FMatrix m1 = viewport->getMatrix();
- FMatrix m2 = _viewport.getMatrix();
- FVector v1 = viewport->_position;
- FVector v2 = _viewport._position;
+ FMatrix newOr = viewport->getOrientation();
+ FMatrix oldOr = _viewport.getOrientation();
+ FVector newPos = viewport->_position;
+ FVector oldPos = _viewport._position;
- _mover->proc8(v2, v1, m2, m1);
+ _mover->proc8(oldPos, newPos, oldOr, newOr);
CStarVector *sv = new CStarVector(this, v);
_mover->setVector(sv);
}
@@ -491,7 +491,7 @@ void CStarCamera::fn2(FVector v1, FVector v2, FVector v3) {
v3.normalize();
tempV.normalize();
- FMatrix matrix = _viewport.getMatrix();
+ FMatrix matrix = _viewport.getOrientation();
const FVector &pos = _viewport._position;
_mover->proc10(v3, tempV, pos, matrix);
@@ -521,7 +521,7 @@ void CStarCamera::fn3(CViewport *viewport, const FVector &v) {
m4._row3 = DVector(0.0, 0.0, 0.0);
m4._row4 = DVector(0.0, 0.0, 0.0);
- FMatrix m5 = viewport->getMatrix();
+ 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;
@@ -595,7 +595,7 @@ void CStarCamera::fn3(CViewport *viewport, const FVector &v) {
m5.set(m4._row3, m4._row2, m4._row4);
FVector tempV6 = m4._row1;
- FMatrix m6 = _viewport.getMatrix();
+ FMatrix m6 = _viewport.getOrientation();
_mover->proc8(_viewport._position, tempV6, m6, m5);
CStarVector *sv = new CStarVector(this, v);
diff --git a/engines/titanic/star_control/star_control_sub22.cpp b/engines/titanic/star_control/star_control_sub22.cpp
index 3e88a32f25..c0b0c10867 100644
--- a/engines/titanic/star_control/star_control_sub22.cpp
+++ b/engines/titanic/star_control/star_control_sub22.cpp
@@ -29,11 +29,12 @@ CStarControlSub22::CStarControlSub22(const CNavigationInfo *src) :
CCameraMover(src) {
}
-void CStarControlSub22::proc8(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2) {
+void CStarControlSub22::proc8(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation) {
if (isLocked())
decLockCount();
- _sub27.proc2(v1, v2, m1, m2);
+ _sub27.proc2(oldPos, newPos, oldOrientation, newOrientation);
incLockCount();
}
diff --git a/engines/titanic/star_control/star_control_sub22.h b/engines/titanic/star_control/star_control_sub22.h
index dbb644bc01..8907cdba9c 100644
--- a/engines/titanic/star_control/star_control_sub22.h
+++ b/engines/titanic/star_control/star_control_sub22.h
@@ -35,7 +35,8 @@ public:
CStarControlSub22(const CNavigationInfo *src);
virtual ~CStarControlSub22() {}
- virtual void proc8(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2);
+ virtual void proc8(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation);
/**
* Update the passed position and orientation matrix
diff --git a/engines/titanic/star_control/star_control_sub23.h b/engines/titanic/star_control/star_control_sub23.h
index 8016d6f56f..00adb4332a 100644
--- a/engines/titanic/star_control/star_control_sub23.h
+++ b/engines/titanic/star_control/star_control_sub23.h
@@ -53,10 +53,11 @@ public:
CStarControlSub23();
virtual ~CStarControlSub23() {}
- virtual void proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2);
+ virtual void proc2(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation);
virtual void proc3(const FMatrix &m1, const FMatrix &m2);
virtual void setPath(const FVector &srcV, const FVector &destV, const FMatrix &srcM);
- virtual int proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) { return 2; }
+ virtual int proc5(CErrorCode &errorCode, FVector &pos, FMatrix &orientation) { return 2; }
virtual void proc6(int val1, int val2, float val);
bool isActive() const { return _active; }
diff --git a/engines/titanic/star_control/star_control_sub27.cpp b/engines/titanic/star_control/star_control_sub27.cpp
index cedaf9f421..d48333f125 100644
--- a/engines/titanic/star_control/star_control_sub27.cpp
+++ b/engines/titanic/star_control/star_control_sub27.cpp
@@ -25,8 +25,9 @@
namespace Titanic {
-void CStarControlSub27::proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2) {
- CStarControlSub23::proc2(v1, v2, m1, m2);
+void CStarControlSub27::proc2(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation) {
+ CStarControlSub23::proc2(oldPos, newPos, oldOrientation, newOrientation);
double factor = _field24;
if (_field24 > 0.0) {
@@ -35,8 +36,8 @@ void CStarControlSub27::proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2
proc6(120, 4, _field24);
}
- if (m1 != m2) {
- _sub25.fn1(m1, m2);
+ if (newPos != oldPos) {
+ _sub25.fn1(oldOrientation, newOrientation);
_moveDelayCtr = 0.0;
if (_field4C == 0) {
@@ -49,33 +50,33 @@ void CStarControlSub27::proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2
}
}
-int CStarControlSub27::proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) {
+int CStarControlSub27::proc5(CErrorCode &errorCode, FVector &pos, FMatrix &orientation) {
if (!_active)
return 0;
_moveDelayCtr += _moveDelayInc;
- _sub25.fn2(_moveDelayCtr, m);
+ _sub25.fn2(_moveDelayCtr, orientation);
errorCode.set();
if (_field40 >= 0) {
double powVal = _powers[_field40];
- v += _posDelta * powVal;
- getVectorOnPath(v);
+ pos += _posDelta * powVal;
+ getVectorOnPath(pos);
--_field40;
errorCode.set();
return 1;
} else if (_field44 > 0) {
- v += _posDelta * _field38;
- getVectorOnPath(v);
+ pos += _posDelta * _field38;
+ getVectorOnPath(pos);
--_field44;
errorCode.set();
return 1;
} else if (_field48 >= 0) {
double powVal = _powers[31 - _field48];
- v += _posDelta * powVal;
- getVectorOnPath(v);
+ pos += _posDelta * powVal;
+ getVectorOnPath(pos);
--_field48;
errorCode.set();
@@ -86,16 +87,16 @@ int CStarControlSub27::proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) {
}
}
-void CStarControlSub27::getVectorOnPath(FVector &v) const {
- double distance = _posDelta.getDistance(v);
+void CStarControlSub27::getVectorOnPath(FVector &pos) const {
+ double distance = _posDelta.getDistance(pos);
distance /= _field24;
if (distance <= 0.0) {
- v = _srcPos;
+ pos = _srcPos;
} else if (distance >= 1.0) {
- v = _destPos;
+ pos = _destPos;
} else {
- v = FVector(
+ pos = FVector(
(_destPos._x - _srcPos._x) * distance + _srcPos._x,
(_destPos._y - _srcPos._y) * distance + _srcPos._y,
(_destPos._z - _srcPos._z) * distance + _srcPos._z
diff --git a/engines/titanic/star_control/star_control_sub27.h b/engines/titanic/star_control/star_control_sub27.h
index 929544b815..311cf786c0 100644
--- a/engines/titanic/star_control/star_control_sub27.h
+++ b/engines/titanic/star_control/star_control_sub27.h
@@ -34,12 +34,13 @@ private:
* returns a vector on the proper point along the path to the destination
* with that same distance from the source.
*/
- void getVectorOnPath(FVector &v) const;
+ void getVectorOnPath(FVector &pos) const;
public:
virtual ~CStarControlSub27() {}
- virtual void proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2);
- virtual int proc5(CErrorCode &errorCode, FVector &v, FMatrix &m);
+ virtual void proc2(FVector &oldPos, FVector &newPos,
+ FMatrix &oldOrientation, FMatrix &newOrientation);
+ virtual int proc5(CErrorCode &errorCode, FVector &pos, FMatrix &orientation);
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/viewport.cpp b/engines/titanic/star_control/viewport.cpp
index 535f2f19fc..c312f5769f 100644
--- a/engines/titanic/star_control/viewport.cpp
+++ b/engines/titanic/star_control/viewport.cpp
@@ -39,7 +39,7 @@ CViewport::CViewport() {
}
CViewport::CViewport(CViewport *src) :
- _matrix(src->_matrix), _currentPose(src->_currentPose), _rawPose(src->_rawPose) {
+ _orientation(src->_orientation), _currentPose(src->_currentPose), _rawPose(src->_rawPose) {
_position = src->_position;
_fieldC = src->_fieldC;
_field10 = src->_field10;
@@ -79,7 +79,7 @@ void CViewport::load(SimpleFile *file, int param) {
for (int idx = 0; idx < 5; ++idx)
_valArray[idx] = file->readFloat();
- _matrix.load(file, param);
+ _orientation.load(file, param);
_flag = false;
}
@@ -97,7 +97,7 @@ void CViewport::save(SimpleFile *file, int indent) {
for (int idx = 0; idx < 5; ++idx)
file->writeFloatLine(_valArray[idx], indent);
- _matrix.save(file, indent);
+ _orientation.save(file, indent);
}
void CViewport::setPosition(const FVector &v) {
@@ -112,12 +112,12 @@ void CViewport::setPosition(const FPose &pose) {
}
void CViewport::setOrientation(const FMatrix &m) {
- _matrix = m;
+ _orientation = m;
_flag = false;
}
void CViewport::fn11(const FVector &v) {
- _matrix.fn1(v);
+ _orientation.fn1(v);
_flag = false;
}
@@ -146,7 +146,7 @@ void CViewport::set1C(double v) {
}
void CViewport::fn12() {
- _matrix.identity();
+ _orientation.identity();
FPose m1(X_AXIS, g_vm->getRandomNumber(359));
FPose m2(Y_AXIS, g_vm->getRandomNumber(359));
@@ -156,7 +156,7 @@ void CViewport::fn12() {
FPose s2(s1, m3);
m1.copyFrom(s2);
- _matrix.fn2(m1);
+ _orientation.fn2(m1);
_flag = false;
}
@@ -174,14 +174,14 @@ void CViewport::fn13(StarMode mode, double val) {
}
void CViewport::reposition(double factor) {
- _position._x = _matrix._row3._x * factor + _position._x;
- _position._y = _matrix._row3._y * factor + _position._y;
- _position._z = _matrix._row3._z * factor + _position._z;
+ _position._x = _orientation._row3._x * factor + _position._x;
+ _position._y = _orientation._row3._y * factor + _position._y;
+ _position._z = _orientation._row3._z * factor + _position._z;
_flag = false;
}
void CViewport::fn15(const FMatrix &matrix) {
- _matrix.fn3(matrix);
+ _orientation.fn3(matrix);
_flag = false;
}
@@ -246,7 +246,7 @@ void CViewport::fn19(double *v1, double *v2, double *v3, double *v4) {
void CViewport::reset() {
const double FACTOR = 2 * M_PI / 360.0;
- _rawPose.copyFrom(_matrix);
+ _rawPose.copyFrom(_orientation);
_rawPose._vector = _position;
_currentPose = _rawPose.fn4();
@@ -257,8 +257,8 @@ void CViewport::reset() {
_flag = true;
}
-const FMatrix &CViewport::getMatrix() const {
- return _matrix;
+const FMatrix &CViewport::getOrientation() const {
+ return _orientation;
}
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/viewport.h b/engines/titanic/star_control/viewport.h
index f0e6eab814..41dfb740f2 100644
--- a/engines/titanic/star_control/viewport.h
+++ b/engines/titanic/star_control/viewport.h
@@ -41,7 +41,7 @@ private:
double _field1C;
int _width;
int _height;
- FMatrix _matrix;
+ FMatrix _orientation;
FPose _currentPose;
FPose _rawPose;
FPoint _center;
@@ -102,9 +102,9 @@ public:
void fn19(double *v1, double *v2, double *v3, double *v4);
/**
- * Returns the instance's matrix
+ * Returns the viewport's orientation
*/
- const FMatrix &getMatrix() const;
+ const FMatrix &getOrientation() const;
void setC(double v);
void set10(double v);