aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-05 21:44:57 -0500
committerPaul Gilbert2016-03-05 21:44:57 -0500
commit20725a0edaa8e92d49a59328e6a63bfb97c4a57c (patch)
tree22adabae9f3aa12b7e6418a06814269002fdb303
parentf01bd1be9f6334a614cdd5ca7a7123b40c4397be (diff)
downloadscummvm-rg350-20725a0edaa8e92d49a59328e6a63bfb97c4a57c.tar.gz
scummvm-rg350-20725a0edaa8e92d49a59328e6a63bfb97c4a57c.tar.bz2
scummvm-rg350-20725a0edaa8e92d49a59328e6a63bfb97c4a57c.zip
TITANIC: Further work on CStarControl support classes and loading
-rw-r--r--engines/titanic/module.mk7
-rw-r--r--engines/titanic/star_control/star_control.cpp14
-rw-r--r--engines/titanic/star_control/star_control.h13
-rw-r--r--engines/titanic/star_control/star_control_sub1.cpp17
-rw-r--r--engines/titanic/star_control/star_control_sub1.h7
-rw-r--r--engines/titanic/star_control/star_control_sub11.cpp51
-rw-r--r--engines/titanic/star_control/star_control_sub11.h62
-rw-r--r--engines/titanic/star_control/star_control_sub12.cpp40
-rw-r--r--engines/titanic/star_control/star_control_sub12.h63
-rw-r--r--engines/titanic/star_control/star_control_sub13.cpp75
-rw-r--r--engines/titanic/star_control/star_control_sub13.h73
-rw-r--r--engines/titanic/star_control/star_control_sub14.cpp50
-rw-r--r--engines/titanic/star_control/star_control_sub14.h58
-rw-r--r--engines/titanic/star_control/star_control_sub15.cpp31
-rw-r--r--engines/titanic/star_control/star_control_sub15.h43
-rw-r--r--engines/titanic/star_control/star_control_sub3.cpp4
-rw-r--r--engines/titanic/star_control/star_control_sub3.h13
-rw-r--r--engines/titanic/star_control/star_control_sub8.h12
18 files changed, 632 insertions, 1 deletions
diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
index a8fd6eb839..b9f5b641ed 100644
--- a/engines/titanic/module.mk
+++ b/engines/titanic/module.mk
@@ -413,7 +413,12 @@ MODULE_OBJS := \
star_control/star_control_sub7.o \
star_control/star_control_sub8.o \
star_control/star_control_sub9.o \
- star_control/star_control_sub10.o
+ star_control/star_control_sub10.o \
+ star_control/star_control_sub11.o \
+ star_control/star_control_sub12.o \
+ star_control/star_control_sub13.o \
+ star_control/star_control_sub14.o \
+ star_control/star_control_sub15.o
# This module can be built as a plugin
ifeq ($(ENABLE_TITANIC), DYNAMIC_PLUGIN)
diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
index d6cd20a4a0..c8ee8c2d7b 100644
--- a/engines/titanic/star_control/star_control.cpp
+++ b/engines/titanic/star_control/star_control.cpp
@@ -20,10 +20,15 @@
*
*/
+#include "titanic/screen_manager.h"
#include "titanic/star_control/star_control.h"
namespace Titanic {
+CStarControl::CStarControl() : _fieldBC(0), _field80A0(0),
+ _field80A4(0), _field80A8(0), _field80AC(0), _field80B0(0) {
+}
+
void CStarControl::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
CGameObject::save(file, indent);
@@ -33,7 +38,16 @@ void CStarControl::load(SimpleFile *file) {
int val = file->readNumber();
if (!val) {
+ _sub1.load(file, 0);
+ if (!_sub1.initDocument())
+ error("Couldn't initialise the StarField document");
+
+ _sub11.load(file, 0);
+ CScreenManager *screenManager = CScreenManager::setCurrent();
+ if (!screenManager)
+ error("There's no screen manager during loading");
+ warning("TODO");
}
CGameObject::load(file);
diff --git a/engines/titanic/star_control/star_control.h b/engines/titanic/star_control/star_control.h
index c76e9be382..2a24e517fc 100644
--- a/engines/titanic/star_control/star_control.h
+++ b/engines/titanic/star_control/star_control.h
@@ -24,11 +24,24 @@
#define TITANIC_STAR_CONTROL_H
#include "titanic/core/game_object.h"
+#include "titanic/star_control/star_control_sub1.h"
+#include "titanic/star_control/star_control_sub11.h"
namespace Titanic {
class CStarControl : public CGameObject {
+private:
+ int _fieldBC;
+ CStarControlSub1 _sub1;
+ CStarControlSub11 _sub11;
+ int _field80A0;
+ int _field80A4;
+ int _field80A8;
+ int _field80AC;
+ int _field80B0;
public:
+ CStarControl();
+
/**
* Return the class name
*/
diff --git a/engines/titanic/star_control/star_control_sub1.cpp b/engines/titanic/star_control/star_control_sub1.cpp
index 7122347677..6adc9a64d0 100644
--- a/engines/titanic/star_control/star_control_sub1.cpp
+++ b/engines/titanic/star_control/star_control_sub1.cpp
@@ -29,4 +29,21 @@ CStarControlSub1::CStarControlSub1() :
_field7DB4(1), _field7DB8(0), _field7DBC(0) {
}
+void CStarControlSub1::load(SimpleFile *file, int param) {
+ if (!param) {
+ _sub7.load(file);
+ _sub8.load(file);
+ _field7DA8 = file->readNumber();
+ _field7DAC = file->readNumber();
+ _field7DB0 = file->readNumber();
+ _field7DB4 = file->readNumber();
+ _field7DBC = file->readNumber();
+ }
+}
+
+bool CStarControlSub1::initDocument() {
+ warning("CStarControlSub1::initDocument");
+ return true;
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub1.h b/engines/titanic/star_control/star_control_sub1.h
index ce160ebc89..2e76a1ff41 100644
--- a/engines/titanic/star_control/star_control_sub1.h
+++ b/engines/titanic/star_control/star_control_sub1.h
@@ -47,6 +47,13 @@ private:
int _field7DBC;
public:
CStarControlSub1();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ bool initDocument();
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub11.cpp b/engines/titanic/star_control/star_control_sub11.cpp
new file mode 100644
index 0000000000..a2bd7b2aa6
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub11.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/screen_manager.h"
+#include "titanic/star_control/star_control_sub11.h"
+
+namespace Titanic {
+
+CStarControlSub11::CStarControlSub11() :
+ _sub12(nullptr, nullptr), _sub13(nullptr),
+ _field4(0), _field8(0), _field20C(0), _field210(0),
+ _field214(0), _field218(0), _field21C(0) {
+ _sub12.proc3();
+}
+
+void CStarControlSub11::load(SimpleFile *file, int param) {
+ if (!param) {
+ _sub12.load(file, param);
+
+ int val = file->readNumber();
+ if (val)
+ _sub13.load(file, 0);
+
+ _field218 = file->readNumber();
+ _field21C = file->readNumber();
+ }
+}
+
+void CStarControlSub11::save(SimpleFile *file, int indent) const {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub11.h b/engines/titanic/star_control/star_control_sub11.h
new file mode 100644
index 0000000000..bff246f3fb
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub11.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB11_H
+#define TITANIC_STAR_CONTROL_SUB11_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub12.h"
+#include "titanic/star_control/star_control_sub13.h"
+#include "titanic/star_control/star_control_sub15.h"
+
+namespace Titanic {
+
+class CStarControlSub11 {
+private:
+ int _field0;
+ int _field4;
+ int _field8;
+ CStarControlSub12 _sub12;
+ CStarControlSub13 _sub13;
+ CStarControlSub15 _sub15;
+ int _field20C;
+ int _field210;
+ int _field214;
+ int _field218;
+ int _field21C;
+public:
+ CStarControlSub11();
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB11_H */
diff --git a/engines/titanic/star_control/star_control_sub12.cpp b/engines/titanic/star_control/star_control_sub12.cpp
new file mode 100644
index 0000000000..3e288e83c0
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub12.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub12.h"
+
+namespace Titanic {
+
+CStarControlSub12::CStarControlSub12(void *val1, void *val2) :
+ _field4(-1), _field2C(0), _field108(0),
+ _sub13(val1) {
+}
+
+void CStarControlSub12::load(SimpleFile *file, int param) {
+ _sub13.load(file, param);
+}
+
+void CStarControlSub12::save(SimpleFile *file, int indent) const {
+ _sub13.save(file, indent);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub12.h b/engines/titanic/star_control/star_control_sub12.h
new file mode 100644
index 0000000000..92192ec74b
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub12.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB12_H
+#define TITANIC_STAR_CONTROL_SUB12_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub13.h"
+
+namespace Titanic {
+
+class CStarControlSub12 {
+ struct ArrayEntry {
+ int _field0;
+ int _field4;
+ int _field8;
+ ArrayEntry() : _field0(0), _field4(0), _field8(0) {}
+ };
+private:
+ int _field4;
+ ArrayEntry _array[3];
+ int _field2C;
+ CStarControlSub13 _sub13;
+ int _field108;
+ int _field21C;
+public:
+ CStarControlSub12(void *val1, void *val2);
+
+ virtual void proc3() {}
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB12_H */
diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
new file mode 100644
index 0000000000..fbe40b9532
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -0,0 +1,75 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub13.h"
+
+namespace Titanic {
+
+CStarControlSub13::CStarControlSub13(void *ptr):
+ _field0(0), _field4(0), _field8(0), _fieldC0(0),
+ _fieldC4(0), _fieldC8(0), _fieldCC(0), _fieldD0(0) {
+ if (ptr) {
+ setup(ptr);
+ } else {
+ _fieldC = 0;
+ _field10 = 0x44480000;
+ _field14 = 0x461C4000;
+ _field18 = 0x41A00000;
+ _field1C = 0x41A00000;
+ _field20 = 600;
+ _field22 = 340;
+ _field24 = 0;
+ }
+
+ _fieldD4 = 0;
+}
+
+void CStarControlSub13::setup(void *ptr) {
+ // TODO
+}
+
+void CStarControlSub13::load(SimpleFile *file, int param) {
+ _field0 = file->readFloat();
+ _field4 = file->readFloat();
+ _field8 = file->readFloat();
+ _fieldC = file->readFloat();
+ _field10 = file->readFloat();
+ _field14 = file->readFloat();
+ _field18 = file->readFloat();
+ _field1C = file->readFloat();
+ _field20 = file->readNumber();
+ _field22 = _field20 >> 16;
+ _field24 = file->readNumber();
+
+ for (int idx = 0; idx < 5; ++idx)
+ _valArray[idx] = file->readFloat();
+
+ _sub14.load(file, param);
+ _fieldD4 = 0;
+}
+
+void CStarControlSub13::save(SimpleFile *file, int indent) const {
+ _sub14.save(file, indent);
+}
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub13.h b/engines/titanic/star_control/star_control_sub13.h
new file mode 100644
index 0000000000..983fa1c9d4
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub13.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB13_H
+#define TITANIC_STAR_CONTROL_SUB13_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub6.h"
+#include "titanic/star_control/star_control_sub14.h"
+
+namespace Titanic {
+
+class CStarControlSub13 {
+private:
+ double _field0;
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+ double _field18;
+ double _field1C;
+ int _field20;
+ int _field22;
+ int _field24;
+ double _valArray[5];
+ CStarControlSub14 _sub14;
+ CStarControlSub6 _sub1;
+ CStarControlSub6 _sub2;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+private:
+ void setup(void *ptr);
+public:
+ CStarControlSub13(void *ptr);
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB13_H */
diff --git a/engines/titanic/star_control/star_control_sub14.cpp b/engines/titanic/star_control/star_control_sub14.cpp
new file mode 100644
index 0000000000..3d02705af5
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub14.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub14.h"
+
+namespace Titanic {
+
+CStarControlSub14::CStarControlSub14() :
+ _field0(0x3F800000), _field4(0), _field8(0), _fieldC(0),
+ _field10(0x3F800000), _field14(0), _field18(0), _field1C(0),
+ _field20(0x3F800000) {
+}
+
+void CStarControlSub14::load(SimpleFile *file, int param) {
+ _field0 = file->readFloat();
+ _field4 = file->readFloat();
+ _field8 = file->readFloat();
+ _fieldC = file->readFloat();
+ _field10 = file->readFloat();
+ _field14 = file->readFloat();
+ _field18 = file->readFloat();
+ _field1C = file->readFloat();
+ _field20 = file->readFloat();
+}
+
+void CStarControlSub14::save(SimpleFile *file, int indent) const {
+
+}
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub14.h b/engines/titanic/star_control/star_control_sub14.h
new file mode 100644
index 0000000000..63a58bf9c6
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub14.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB14_H
+#define TITANIC_STAR_CONTROL_SUB14_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CStarControlSub14 {
+private:
+ double _field0;
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+ double _field18;
+ double _field1C;
+ double _field20;
+public:
+ CStarControlSub14();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB13_H */
diff --git a/engines/titanic/star_control/star_control_sub15.cpp b/engines/titanic/star_control/star_control_sub15.cpp
new file mode 100644
index 0000000000..07ed80ccc5
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub15.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub15.h"
+
+namespace Titanic {
+
+CStarControlSub15::CStarControlSub15() : _field4(-1),
+ _field8(32), _fieldC(0), _field10(0), _field14(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub15.h b/engines/titanic/star_control/star_control_sub15.h
new file mode 100644
index 0000000000..2151c5a622
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub15.h
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB15_H
+#define TITANIC_STAR_CONTROL_SUB15_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CStarControlSub15 {
+private:
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+public:
+ CStarControlSub15();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB15_H */
diff --git a/engines/titanic/star_control/star_control_sub3.cpp b/engines/titanic/star_control/star_control_sub3.cpp
index 72991b1f33..c65a308535 100644
--- a/engines/titanic/star_control/star_control_sub3.cpp
+++ b/engines/titanic/star_control/star_control_sub3.cpp
@@ -28,4 +28,8 @@ CStarControlSub3::CStarControlSub3() : _field4(0), _field8(0),
_fieldC(1), _field28(0), _field2C(0x3F800000) {
}
+void CStarControlSub3::proc2() {
+ error("TODO");
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub3.h b/engines/titanic/star_control/star_control_sub3.h
index cc214c328c..d6d1c30eed 100644
--- a/engines/titanic/star_control/star_control_sub3.h
+++ b/engines/titanic/star_control/star_control_sub3.h
@@ -23,6 +23,7 @@
#ifndef TITANIC_STAR_CONTROL_SUB3_H
#define TITANIC_STAR_CONTROL_SUB3_H
+#include "titanic/simple_file.h"
#include "titanic/star_control/star_control_sub4.h"
namespace Titanic {
@@ -38,6 +39,18 @@ protected:
public:
CStarControlSub3();
virtual ~CStarControlSub3() {}
+
+ virtual void proc2();
+ virtual int proc3() { return 1; }
+ virtual int proc4() { return 0; }
+ virtual int proc5() { return 0; }
+ virtual int proc6() { return 0; }
+ virtual int proc7() { return 1; }
+
+ virtual void load(SimpleFile *file) {}
+
+ virtual void proc9() {}
+
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub8.h b/engines/titanic/star_control/star_control_sub8.h
index 511bee47e7..c4b677c2ba 100644
--- a/engines/titanic/star_control/star_control_sub8.h
+++ b/engines/titanic/star_control/star_control_sub8.h
@@ -23,6 +23,8 @@
#ifndef TITANIC_STAR_CONTROL_SUB8_H
#define TITANIC_STAR_CONTROL_SUB8_H
+#include "titanic/simple_file.h"
+
namespace Titanic {
class CStarControlSub8 {
@@ -40,6 +42,16 @@ private:
StructEntry _array[3];
public:
CStarControlSub8();
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {}
};
} // End of namespace Titanic