aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/star_control
diff options
context:
space:
mode:
authorPaul Gilbert2016-07-02 19:48:40 -0400
committerPaul Gilbert2016-07-15 19:26:40 -0400
commit2ff4d3ed66bd839fb3534429a645291b8ccbec67 (patch)
tree87fe1222e69cfe80e9c809e15b6ff1c43708e645 /engines/titanic/star_control
parent46ec1a004bf68d238e5cb141de7dbb426dbd3249 (diff)
downloadscummvm-rg350-2ff4d3ed66bd839fb3534429a645291b8ccbec67.tar.gz
scummvm-rg350-2ff4d3ed66bd839fb3534429a645291b8ccbec67.tar.bz2
scummvm-rg350-2ff4d3ed66bd839fb3534429a645291b8ccbec67.zip
TITANIC: Adding starfield points loading
Diffstat (limited to 'engines/titanic/star_control')
-rw-r--r--engines/titanic/star_control/star_array.cpp (renamed from engines/titanic/star_control/star_control_sub10.cpp)24
-rw-r--r--engines/titanic/star_control/star_array.h (renamed from engines/titanic/star_control/star_control_sub10.h)25
-rw-r--r--engines/titanic/star_control/star_control_sub1.cpp1
-rw-r--r--engines/titanic/star_control/star_control_sub1.h4
4 files changed, 44 insertions, 10 deletions
diff --git a/engines/titanic/star_control/star_control_sub10.cpp b/engines/titanic/star_control/star_array.cpp
index ca32f5e7dc..1af608db51 100644
--- a/engines/titanic/star_control/star_control_sub10.cpp
+++ b/engines/titanic/star_control/star_array.cpp
@@ -20,9 +20,31 @@
*
*/
-#include "titanic/star_control/star_control_sub10.h"
+#include "titanic/star_control/star_array.h"
+#include "titanic/titanic.h"
namespace Titanic {
+#define ARRAY_COUNT 876
+
+CStarArray::CStarArray() {
+}
+
+void CStarArray::initialize() {
+ // Get a reference to the starfield points resource
+ Common::SeekableReadStream *stream = g_vm->_filesManager->getResource("STARFIELD/POINTS");
+ assert(stream && stream->size() == (12 * ARRAY_COUNT));
+
+ _data.resize(ARRAY_COUNT);
+ for (int idx = 0; idx < ARRAY_COUNT; ++idx) {
+ // Get the next set of values
+ int v1 = stream->readUint32LE();
+ int v2 = stream->readUint32LE();
+ stream->readUint32LE();
+
+ // Pre-process them
+ // TODO
+ }
+}
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub10.h b/engines/titanic/star_control/star_array.h
index af4ad17c6e..859db60ed1 100644
--- a/engines/titanic/star_control/star_control_sub10.h
+++ b/engines/titanic/star_control/star_array.h
@@ -20,19 +20,30 @@
*
*/
-#ifndef TITANIC_STAR_CONTROL_SUB10_H
-#define TITANIC_STAR_CONTROL_SUB10_H
+#ifndef TITANIC_STAR_ARRAY_H
+#define TITANIC_STAR_ARRAY_H
+
+#include "common/array.h"
namespace Titanic {
-class CStarControlSub10 {
+class CStarArray {
+ struct CStarArrayEntry {
+ double _v1;
+ double _v2;
+ double _v3;
+ };
private:
- int _field0;
- int _field4;
+ Common::Array<CStarArrayEntry> _data;
public:
- CStarControlSub10() : _field0(0), _field4(0) {}
+ CStarArray();
+
+ /**
+ * Initialize the array
+ */
+ void initialize();
};
} // End of namespace Titanic
-#endif /* TITANIC_STAR_CONTROL_SUB10_H */
+#endif /* TITANIC_STAR_ARRAY_H */
diff --git a/engines/titanic/star_control/star_control_sub1.cpp b/engines/titanic/star_control/star_control_sub1.cpp
index 6adc9a64d0..5edbab1e86 100644
--- a/engines/titanic/star_control/star_control_sub1.cpp
+++ b/engines/titanic/star_control/star_control_sub1.cpp
@@ -43,6 +43,7 @@ void CStarControlSub1::load(SimpleFile *file, int param) {
bool CStarControlSub1::initDocument() {
warning("CStarControlSub1::initDocument");
+ _starArray.initialize();
return true;
}
diff --git a/engines/titanic/star_control/star_control_sub1.h b/engines/titanic/star_control/star_control_sub1.h
index 2e76a1ff41..0e99b4ef72 100644
--- a/engines/titanic/star_control/star_control_sub1.h
+++ b/engines/titanic/star_control/star_control_sub1.h
@@ -23,12 +23,12 @@
#ifndef TITANIC_STAR_CONTROL_SUB1_H
#define TITANIC_STAR_CONTROL_SUB1_H
+#include "titanic/star_control/star_array.h"
#include "titanic/star_control/star_control_sub2.h"
#include "titanic/star_control/star_control_sub5.h"
#include "titanic/star_control/star_control_sub7.h"
#include "titanic/star_control/star_control_sub8.h"
#include "titanic/star_control/star_control_sub9.h"
-#include "titanic/star_control/star_control_sub10.h"
namespace Titanic {
@@ -37,7 +37,7 @@ private:
CStarControlSub7 _sub7;
CStarControlSub8 _sub8;
CStarControlSub9 _sub9;
- CStarControlSub10 _sub10;
+ CStarArray _starArray;
CStarControlSub5 _sub5;
int _field7DA8;
int _field7DAC;