TITANIC: Adding starfield points loading
This commit is contained in:
parent
46ec1a004b
commit
2ff4d3ed66
6 changed files with 59 additions and 12 deletions
|
@ -52,7 +52,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define VERSION_NUMBER 1
|
#define VERSION_NUMBER 1
|
||||||
#define HEADER_SIZE 0x640
|
#define HEADER_SIZE 0x680
|
||||||
|
|
||||||
Common::File inputFile, outputFile;
|
Common::File inputFile, outputFile;
|
||||||
Common::PEResources res;
|
Common::PEResources res;
|
||||||
|
@ -422,6 +422,18 @@ void writeSentenceMappings(const char *name, uint offset, int numValues) {
|
||||||
dataOffset += size;
|
dataOffset += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void writeStarfieldPoints() {
|
||||||
|
outputFile.seek(dataOffset);
|
||||||
|
|
||||||
|
inputFile.seek(0x59DE4C - FILE_DIFF);
|
||||||
|
uint size = 876 * 12;
|
||||||
|
|
||||||
|
outputFile.write(inputFile, size);
|
||||||
|
writeEntryHeader("STARFIELD/POINTS", dataOffset, size);
|
||||||
|
dataOffset += size;
|
||||||
|
}
|
||||||
|
|
||||||
void writeHeader() {
|
void writeHeader() {
|
||||||
// Write out magic string
|
// Write out magic string
|
||||||
const char *MAGIC_STR = "SVTN";
|
const char *MAGIC_STR = "SVTN";
|
||||||
|
@ -451,6 +463,7 @@ void writeData() {
|
||||||
writeResource("STFONT", 153);
|
writeResource("STFONT", 153);
|
||||||
|
|
||||||
writeResource("STARFIELD", 132);
|
writeResource("STARFIELD", 132);
|
||||||
|
writeStarfieldPoints();
|
||||||
|
|
||||||
writeResource("TEXT", "STVOCAB.TXT");
|
writeResource("TEXT", "STVOCAB.TXT");
|
||||||
writeResource("TEXT", "JRQUOTES.TXT");
|
writeResource("TEXT", "JRQUOTES.TXT");
|
||||||
|
|
|
@ -420,13 +420,13 @@ MODULE_OBJS := \
|
||||||
star_control/star_control_sub1.o \
|
star_control/star_control_sub1.o \
|
||||||
star_control/star_control_sub2.o \
|
star_control/star_control_sub2.o \
|
||||||
star_control/base_star.o \
|
star_control/base_star.o \
|
||||||
|
star_control/star_array.o \
|
||||||
star_control/star_control_sub4.o \
|
star_control/star_control_sub4.o \
|
||||||
star_control/star_control_sub5.o \
|
star_control/star_control_sub5.o \
|
||||||
star_control/star_control_sub6.o \
|
star_control/star_control_sub6.o \
|
||||||
star_control/star_control_sub7.o \
|
star_control/star_control_sub7.o \
|
||||||
star_control/star_control_sub8.o \
|
star_control/star_control_sub8.o \
|
||||||
star_control/star_control_sub9.o \
|
star_control/star_control_sub9.o \
|
||||||
star_control/star_control_sub10.o \
|
|
||||||
star_control/star_view.o \
|
star_control/star_view.o \
|
||||||
star_control/star_control_sub12.o \
|
star_control/star_control_sub12.o \
|
||||||
star_control/star_control_sub13.o \
|
star_control/star_control_sub13.o \
|
||||||
|
|
|
@ -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 {
|
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
|
} // End of namespace Titanic
|
|
@ -20,19 +20,30 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TITANIC_STAR_CONTROL_SUB10_H
|
#ifndef TITANIC_STAR_ARRAY_H
|
||||||
#define TITANIC_STAR_CONTROL_SUB10_H
|
#define TITANIC_STAR_ARRAY_H
|
||||||
|
|
||||||
|
#include "common/array.h"
|
||||||
|
|
||||||
namespace Titanic {
|
namespace Titanic {
|
||||||
|
|
||||||
class CStarControlSub10 {
|
class CStarArray {
|
||||||
|
struct CStarArrayEntry {
|
||||||
|
double _v1;
|
||||||
|
double _v2;
|
||||||
|
double _v3;
|
||||||
|
};
|
||||||
private:
|
private:
|
||||||
int _field0;
|
Common::Array<CStarArrayEntry> _data;
|
||||||
int _field4;
|
|
||||||
public:
|
public:
|
||||||
CStarControlSub10() : _field0(0), _field4(0) {}
|
CStarArray();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the array
|
||||||
|
*/
|
||||||
|
void initialize();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // End of namespace Titanic
|
} // End of namespace Titanic
|
||||||
|
|
||||||
#endif /* TITANIC_STAR_CONTROL_SUB10_H */
|
#endif /* TITANIC_STAR_ARRAY_H */
|
|
@ -43,6 +43,7 @@ void CStarControlSub1::load(SimpleFile *file, int param) {
|
||||||
|
|
||||||
bool CStarControlSub1::initDocument() {
|
bool CStarControlSub1::initDocument() {
|
||||||
warning("CStarControlSub1::initDocument");
|
warning("CStarControlSub1::initDocument");
|
||||||
|
_starArray.initialize();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,12 +23,12 @@
|
||||||
#ifndef TITANIC_STAR_CONTROL_SUB1_H
|
#ifndef TITANIC_STAR_CONTROL_SUB1_H
|
||||||
#define 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_sub2.h"
|
||||||
#include "titanic/star_control/star_control_sub5.h"
|
#include "titanic/star_control/star_control_sub5.h"
|
||||||
#include "titanic/star_control/star_control_sub7.h"
|
#include "titanic/star_control/star_control_sub7.h"
|
||||||
#include "titanic/star_control/star_control_sub8.h"
|
#include "titanic/star_control/star_control_sub8.h"
|
||||||
#include "titanic/star_control/star_control_sub9.h"
|
#include "titanic/star_control/star_control_sub9.h"
|
||||||
#include "titanic/star_control/star_control_sub10.h"
|
|
||||||
|
|
||||||
namespace Titanic {
|
namespace Titanic {
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ private:
|
||||||
CStarControlSub7 _sub7;
|
CStarControlSub7 _sub7;
|
||||||
CStarControlSub8 _sub8;
|
CStarControlSub8 _sub8;
|
||||||
CStarControlSub9 _sub9;
|
CStarControlSub9 _sub9;
|
||||||
CStarControlSub10 _sub10;
|
CStarArray _starArray;
|
||||||
CStarControlSub5 _sub5;
|
CStarControlSub5 _sub5;
|
||||||
int _field7DA8;
|
int _field7DA8;
|
||||||
int _field7DAC;
|
int _field7DAC;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue