aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2017-04-15 22:21:01 -0400
committerPaul Gilbert2017-04-15 22:21:01 -0400
commit93c2ca3c94fc97dd32b03f486244064216a80019 (patch)
tree4c9ccefe2e023dc84356c0ba7b27a8ced0d9d67d
parent074e466f914022901e26a12988b5e9c24e9a74c8 (diff)
downloadscummvm-rg350-93c2ca3c94fc97dd32b03f486244064216a80019.tar.gz
scummvm-rg350-93c2ca3c94fc97dd32b03f486244064216a80019.tar.bz2
scummvm-rg350-93c2ca3c94fc97dd32b03f486244064216a80019.zip
TITANIC: Renaming methods for setting camera movement
-rw-r--r--engines/titanic/star_control/base_stars.cpp2
-rw-r--r--engines/titanic/star_control/base_stars.h6
-rw-r--r--engines/titanic/star_control/star_camera.cpp4
-rw-r--r--engines/titanic/star_control/star_camera.h7
-rw-r--r--engines/titanic/star_control/star_control_sub2.cpp4
-rw-r--r--engines/titanic/star_control/star_control_sub20.h7
-rw-r--r--engines/titanic/star_control/star_control_sub21.cpp4
-rw-r--r--engines/titanic/star_control/star_control_sub21.h2
-rw-r--r--engines/titanic/star_control/star_control_sub23.cpp25
-rw-r--r--engines/titanic/star_control/star_control_sub23.h6
-rw-r--r--engines/titanic/star_control/star_control_sub24.cpp14
-rw-r--r--engines/titanic/star_control/star_control_sub24.h7
-rw-r--r--engines/titanic/star_control/star_control_sub27.cpp26
-rw-r--r--engines/titanic/star_control/star_control_sub27.h7
14 files changed, 72 insertions, 49 deletions
diff --git a/engines/titanic/star_control/base_stars.cpp b/engines/titanic/star_control/base_stars.cpp
index dbe239ec39..12fa566d99 100644
--- a/engines/titanic/star_control/base_stars.cpp
+++ b/engines/titanic/star_control/base_stars.cpp
@@ -544,7 +544,7 @@ void CBaseStars::draw4(CSurfaceArea *surfaceArea, CStarCamera *camera, CStarClos
}
}
-int CBaseStars::baseFn1(CSurfaceArea *surfaceArea, CStarCamera *camera,
+int CBaseStars::findStar(CSurfaceArea *surfaceArea, CStarCamera *camera,
const Common::Point &pt) {
CStarRef1 ref(this, pt);
ref.process(surfaceArea, camera);
diff --git a/engines/titanic/star_control/base_stars.h b/engines/titanic/star_control/base_stars.h
index 34bec4b6dc..e77b20ec08 100644
--- a/engines/titanic/star_control/base_stars.h
+++ b/engines/titanic/star_control/base_stars.h
@@ -144,7 +144,11 @@ public:
*/
const CBaseStarEntry *getDataPtr(int index) const;
- int baseFn1(CSurfaceArea *surfaceArea, CStarCamera *camera,
+ /**
+ * Checks for the presence of a star at a given position on the
+ * screen given the specified camera view, and returns it's index
+ */
+ int findStar(CSurfaceArea *surfaceArea, CStarCamera *camera,
const Common::Point &pt);
int baseFn2(CSurfaceArea *surfaceArea, CStarCamera *camera);
diff --git a/engines/titanic/star_control/star_camera.cpp b/engines/titanic/star_control/star_camera.cpp
index 651dbddd9a..8f091821ab 100644
--- a/engines/titanic/star_control/star_camera.cpp
+++ b/engines/titanic/star_control/star_camera.cpp
@@ -116,11 +116,11 @@ void CStarCamera::proc13(CStarControlSub13 *dest) {
*dest = _sub13;
}
-void CStarCamera::proc14(FVector &v) {
+void CStarCamera::setDestination(const FVector &v) {
FMatrix matrix = _sub13.getMatrix();
FVector vector = _sub13._position;
- _handlerP->proc9(vector, v, matrix);
+ _handlerP->moveTo(vector, v, matrix);
}
void CStarCamera::proc15(CErrorCode *errorCode) {
diff --git a/engines/titanic/star_control/star_camera.h b/engines/titanic/star_control/star_camera.h
index 6a0cd2c6d4..194079a0fc 100644
--- a/engines/titanic/star_control/star_camera.h
+++ b/engines/titanic/star_control/star_camera.h
@@ -78,7 +78,12 @@ public:
virtual void proc11();
virtual void proc12(StarMode mode, double v2);
virtual void proc13(CStarControlSub13 *dest);
- virtual void proc14(FVector &v);
+
+ /**
+ * Sets the destination to move the camera to
+ */
+ virtual void setDestination(const FVector &v);
+
virtual void proc15(CErrorCode *errorCode);
virtual void proc16();
virtual void proc17();
diff --git a/engines/titanic/star_control/star_control_sub2.cpp b/engines/titanic/star_control/star_control_sub2.cpp
index 221efa9772..2416d3cb24 100644
--- a/engines/titanic/star_control/star_control_sub2.cpp
+++ b/engines/titanic/star_control/star_control_sub2.cpp
@@ -38,11 +38,11 @@ bool CStarControlSub2::loadYale(int v1) {
bool CStarControlSub2::selectStar(CSurfaceArea *surfaceArea,
CStarCamera *camera, const Common::Point &pt, void *handler) {
- int index = baseFn1(surfaceArea, camera, pt);
+ int index = findStar(surfaceArea, camera, pt);
if (index == -1) {
return false;
} else if (!handler) {
- camera->proc14(_data[index]._position);
+ camera->setDestination(_data[index]._position);
return true;
} else {
error("no handler ever passed in original");
diff --git a/engines/titanic/star_control/star_control_sub20.h b/engines/titanic/star_control/star_control_sub20.h
index ce3149939b..102773f1d6 100644
--- a/engines/titanic/star_control/star_control_sub20.h
+++ b/engines/titanic/star_control/star_control_sub20.h
@@ -56,7 +56,12 @@ public:
virtual void proc6();
virtual void proc7();
virtual void proc8(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2) {}
- virtual void proc9(FVector &v1, FVector &v2, FMatrix &matrix) {}
+
+ /**
+ * Start a movement to a given specified destination
+ */
+ virtual void moveTo(const FVector &srcV, const FVector &destV, const FMatrix &srcM) {}
+
virtual void proc10(const FVector &v1, const FVector &v2, const FVector &v3, const FMatrix &m) {}
virtual void proc11(CErrorCode &errorCode, FVector &v, FMatrix &m);
virtual void setVector(CStarVector *sv);
diff --git a/engines/titanic/star_control/star_control_sub21.cpp b/engines/titanic/star_control/star_control_sub21.cpp
index c96e29c7e7..6c5608eb27 100644
--- a/engines/titanic/star_control/star_control_sub21.cpp
+++ b/engines/titanic/star_control/star_control_sub21.cpp
@@ -31,11 +31,11 @@ CStarControlSub21::CStarControlSub21(const CStar20Data *src) :
CStarControlSub20(src) {
}
-void CStarControlSub21::proc9(FVector &v1, FVector &v2, FMatrix &matrix) {
+void CStarControlSub21::moveTo(const FVector &srcV, const FVector &destV, const FMatrix &srcM) {
if (isLocked())
decLockCount();
- _sub24.proc4(v1, v2, matrix);
+ _sub24.setPath(srcV, destV, srcM);
}
void CStarControlSub21::proc10(const FVector &v1, const FVector &v2, const FVector &v3, const FMatrix &m) {
diff --git a/engines/titanic/star_control/star_control_sub21.h b/engines/titanic/star_control/star_control_sub21.h
index 17e0a427a6..3776121d96 100644
--- a/engines/titanic/star_control/star_control_sub21.h
+++ b/engines/titanic/star_control/star_control_sub21.h
@@ -35,7 +35,7 @@ public:
CStarControlSub21(const CStar20Data *src);
virtual ~CStarControlSub21() {}
- virtual void proc9(FVector &v1, FVector &v2, FMatrix &matrix);
+ virtual void moveTo(const FVector &srcV, const FVector &destV, const FMatrix &srcM);
virtual void proc10(const FVector &v1, const FVector &v2, const FVector &v3, const FMatrix &m);
virtual void proc11(CErrorCode &errorCode, FVector &v, FMatrix &m);
};
diff --git a/engines/titanic/star_control/star_control_sub23.cpp b/engines/titanic/star_control/star_control_sub23.cpp
index 7b329e77e7..792c3a2304 100644
--- a/engines/titanic/star_control/star_control_sub23.cpp
+++ b/engines/titanic/star_control/star_control_sub23.cpp
@@ -25,7 +25,7 @@
namespace Titanic {
-CStarControlSub23::CStarControlSub23() : _row1(0.0, 1000000.0, 0.0) {
+CStarControlSub23::CStarControlSub23() : _srcPos(0.0, 1000000.0, 0.0) {
_field4 = 0;
_active = false;
_field24 = 0.0;
@@ -42,10 +42,10 @@ CStarControlSub23::CStarControlSub23() : _row1(0.0, 1000000.0, 0.0) {
}
void CStarControlSub23::proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2) {
- _row1 = v1;
- _row2 = v2;
- _row3 = _row2 - _row1;
- _field24 = _row3.normalize();
+ _srcPos = v1;
+ _destPos = v2;
+ _posDelta = _destPos - _srcPos;
+ _field24 = _posDelta.normalize();
_active = false;
_field34 = 0;
@@ -57,20 +57,19 @@ void CStarControlSub23::proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2
}
void CStarControlSub23::proc3(const FMatrix &m1, const FMatrix &m2) {
- _row1.clear();
- _row2.clear();
+ _srcPos.clear();
+ _destPos.clear();
_moveDelayCtr = 1.0;
_field24 = 0.0;
_active = false;
_field34 = 0;
}
-void CStarControlSub23::proc4(FVector &v1, FVector &v2, FMatrix &m) {
- _row1 = v1;
- _row2 = v2;
- FVector vector = _row2 - _row1;
- _row3 = vector;
- _field24 = _row3.normalize();
+void CStarControlSub23::setPath(const FVector &srcV, const FVector &destV, const FMatrix &srcM) {
+ _srcPos = srcV;
+ _destPos = destV;
+ _posDelta = _destPos - _srcPos;
+ _field24 = _posDelta.normalize();
_active = false;
_field34 = 0;
diff --git a/engines/titanic/star_control/star_control_sub23.h b/engines/titanic/star_control/star_control_sub23.h
index ee8cd2f4d4..8016d6f56f 100644
--- a/engines/titanic/star_control/star_control_sub23.h
+++ b/engines/titanic/star_control/star_control_sub23.h
@@ -34,9 +34,9 @@ class CStarControlSub23 {
protected:
int _field4;
bool _active;
- FVector _row1, _row2;
+ FVector _srcPos, _destPos;
double _field24;
- FVector _row3;
+ FVector _posDelta;
int _field34;
double _field38;
double _field3C;
@@ -55,7 +55,7 @@ public:
virtual void proc2(FVector &v1, FVector &v2, FMatrix &m1, FMatrix &m2);
virtual void proc3(const FMatrix &m1, const FMatrix &m2);
- virtual void proc4(FVector &v1, FVector &v2, FMatrix &m);
+ virtual void setPath(const FVector &srcV, const FVector &destV, const FMatrix &srcM);
virtual int proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) { return 2; }
virtual void proc6(int val1, int val2, float val);
diff --git a/engines/titanic/star_control/star_control_sub24.cpp b/engines/titanic/star_control/star_control_sub24.cpp
index 43670406a1..d716079e31 100644
--- a/engines/titanic/star_control/star_control_sub24.cpp
+++ b/engines/titanic/star_control/star_control_sub24.cpp
@@ -34,8 +34,8 @@ void CStarControlSub24::proc3(const FMatrix &m1, const FMatrix &m2) {
_active = true;
}
-void CStarControlSub24::proc4(FVector &v1, FVector &v2, FMatrix &m) {
- CStarControlSub23::proc4(v1, v2, m);
+void CStarControlSub24::setPath(const FVector &srcV, const FVector &destV, const FMatrix &srcM) {
+ CStarControlSub23::setPath(srcV, destV, srcM);
if (_field24 > 8000.0) {
_active = true;
@@ -43,8 +43,8 @@ void CStarControlSub24::proc4(FVector &v1, FVector &v2, FMatrix &m) {
proc6(120, 4, _field24 - 8000.0);
}
- FVector row3 = m._row3;
- double mult = _row3._x * row3._x + _row3._y * row3._y+ _row3._z * row3._z;
+ FVector row3 = srcM._row3;
+ double mult = _posDelta._x * row3._x + _posDelta._y * row3._y+ _posDelta._z * row3._z;
_moveDelayCtr = 1.0;
bool flag = false;
@@ -59,7 +59,7 @@ void CStarControlSub24::proc4(FVector &v1, FVector &v2, FMatrix &m) {
if (!flag) {
const FVector *tv;
FVector tempV1, tempV2;
- FVector::addAndNormalize(tempV1, row3, _row3);
+ FVector::addAndNormalize(tempV1, row3, _posDelta);
tv = FVector::addAndNormalize(tempV2, row3, tempV1);
tempV1 = *tv;
@@ -71,7 +71,7 @@ void CStarControlSub24::proc4(FVector &v1, FVector &v2, FMatrix &m) {
FMatrix m1;
m1.fn1(tempV1);
- _sub25.fn1(m, m1);
+ _sub25.fn1(srcM, m1);
_moveDelayCtr = 0.0;
_moveDelayInc = 0.1;
@@ -99,7 +99,7 @@ int CStarControlSub24::proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) {
}
v2 = m._row3;
- v3 = _row2 - v;
+ v3 = _destPos - v;
v3.normalize();
double val = m._row3._x * v3._x + m._row3._y * v3._y + m._row3._z * v3._z;
diff --git a/engines/titanic/star_control/star_control_sub24.h b/engines/titanic/star_control/star_control_sub24.h
index 16f53610ec..f3d38ef13b 100644
--- a/engines/titanic/star_control/star_control_sub24.h
+++ b/engines/titanic/star_control/star_control_sub24.h
@@ -32,7 +32,12 @@ public:
virtual ~CStarControlSub24() {}
virtual void proc3(const FMatrix &m1, const FMatrix &m2);
- virtual void proc4(FVector &v1, FVector &v2, FMatrix &m);
+
+ /**
+ * Sets the path to animate movement between
+ */
+ virtual void setPath(const FVector &srcV, const FVector &destV, const FMatrix &srcM);
+
virtual int proc5(CErrorCode &errorCode, FVector &v, FMatrix &m);
};
diff --git a/engines/titanic/star_control/star_control_sub27.cpp b/engines/titanic/star_control/star_control_sub27.cpp
index a300b51db0..cedaf9f421 100644
--- a/engines/titanic/star_control/star_control_sub27.cpp
+++ b/engines/titanic/star_control/star_control_sub27.cpp
@@ -59,23 +59,23 @@ int CStarControlSub27::proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) {
if (_field40 >= 0) {
double powVal = _powers[_field40];
- v += _row3 * powVal;
- fn1(v);
+ v += _posDelta * powVal;
+ getVectorOnPath(v);
--_field40;
errorCode.set();
return 1;
} else if (_field44 > 0) {
- v += _row3 * _field38;
- fn1(v);
+ v += _posDelta * _field38;
+ getVectorOnPath(v);
--_field44;
errorCode.set();
return 1;
} else if (_field48 >= 0) {
double powVal = _powers[31 - _field48];
- v += _row3 * powVal;
- fn1(v);
+ v += _posDelta * powVal;
+ getVectorOnPath(v);
--_field48;
errorCode.set();
@@ -86,19 +86,19 @@ int CStarControlSub27::proc5(CErrorCode &errorCode, FVector &v, FMatrix &m) {
}
}
-void CStarControlSub27::fn1(FVector &v) const {
- double distance = _row1.getDistance(v);
+void CStarControlSub27::getVectorOnPath(FVector &v) const {
+ double distance = _posDelta.getDistance(v);
distance /= _field24;
if (distance <= 0.0) {
- v = _row1;
+ v = _srcPos;
} else if (distance >= 1.0) {
- v = _row2;
+ v = _destPos;
} else {
v = FVector(
- (_row2._x - _row1._x) * distance + _row1._x,
- (_row2._y - _row1._y) * distance + _row1._y,
- (_row2._z - _row1._z) * distance + _row1._z
+ (_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 ff4136c1c5..929544b815 100644
--- a/engines/titanic/star_control/star_control_sub27.h
+++ b/engines/titanic/star_control/star_control_sub27.h
@@ -29,7 +29,12 @@ namespace Titanic {
class CStarControlSub27 : public CStarControlSub23 {
private:
- void fn1(FVector &v) const;
+ /**
+ * Given a vector, figures out how far is from the movement source, and
+ * 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;
public:
virtual ~CStarControlSub27() {}