aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/star_control/star_control_sub13.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/star_control/star_control_sub13.cpp')
-rw-r--r--engines/titanic/star_control/star_control_sub13.cpp37
1 files changed, 22 insertions, 15 deletions
diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
index a8599a7654..a69937bfb8 100644
--- a/engines/titanic/star_control/star_control_sub13.cpp
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -26,8 +26,7 @@
namespace Titanic {
CStarControlSub13::CStarControlSub13(void *src) :
- _field0(0), _field4(0), _field8(0), _fieldC0(0),
- _fieldC4(0), _fieldC8(0), _fieldCC(0), _fieldD0(0) {
+ _fieldC0(0), _fieldC4(0), _fieldC8(0), _fieldCC(0), _fieldD0(0) {
if (src) {
setup(src);
} else {
@@ -46,9 +45,7 @@ CStarControlSub13::CStarControlSub13(void *src) :
CStarControlSub13::CStarControlSub13(CStarControlSub13 *src) :
_matrix(&src->_matrix), _sub1(&src->_sub1), _sub2(&src->_sub2) {
- _field0 = src->_field0;
- _field4 = src->_field4;
- _field8 = src->_field8;
+ _position = src->_position;
_fieldC = src->_fieldC;
_field10 = src->_field10;
_field14 = src->_field14;
@@ -87,9 +84,9 @@ void CStarControlSub13::copyFrom(const void *src) {
}
void CStarControlSub13::load(SimpleFile *file, int param) {
- _field0 = file->readFloat();
- _field4 = file->readFloat();
- _field8 = file->readFloat();
+ _position._x = file->readFloat();
+ _position._y = file->readFloat();
+ _position._z = file->readFloat();
_fieldC = file->readFloat();
_field10 = file->readFloat();
_field14 = file->readFloat();
@@ -109,9 +106,9 @@ void CStarControlSub13::load(SimpleFile *file, int param) {
}
void CStarControlSub13::save(SimpleFile *file, int indent) {
- file->writeFloatLine(_field0, indent);
- file->writeFloatLine(_field4, indent);
- file->writeFloatLine(_field8, indent);
+ file->writeFloatLine(_position._x, indent);
+ file->writeFloatLine(_position._y, indent);
+ file->writeFloatLine(_position._z, indent);
file->writeFloatLine(_fieldC, indent);
file->writeFloatLine(_field10, indent);
file->writeFloatLine(_field14, indent);
@@ -125,12 +122,18 @@ void CStarControlSub13::save(SimpleFile *file, int indent) {
_matrix.save(file, indent);
}
-void CStarControlSub13::fn10(const void *src) {
- error("TODO: CStarControlSub13::fn10");
+void CStarControlSub13::setPosition(const FVector &v) {
+ _position = v;
+ _fieldD4 = 0;
}
-void CStarControlSub13::fn11(const FVector *v) {
- _matrix.fn1(v);
+void CStarControlSub13::setMatrix(const FMatrix &m) {
+ _matrix = m;
+ _fieldD4 = 0;
+}
+
+void CStarControlSub13::fn11(const FVector &v) {
+ _matrix.fn1(&v);
_fieldD4 = 0;
}
@@ -176,4 +179,8 @@ void CStarControlSub13::fn13(double v1, double v2) {
_field24 = v2 ? 2 : 0;
}
+void CStarControlSub13::getMatrix(FMatrix *matrix) {
+ *matrix = _matrix;
+}
+
} // End of namespace Titanic