mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-01 15:09:47 +00:00
TITANIC: Added remaining CStarControlSub12 virtual methods
This commit is contained in:
parent
020655a6f3
commit
3ee3784073
@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
#include "titanic/star_control/fvector.h"
|
||||
#include "titanic/star_control/star_control_sub6.h"
|
||||
#include "common/algorithm.h"
|
||||
#include "common/textconsole.h"
|
||||
|
||||
@ -63,7 +64,7 @@ void FVector::fn4(FVector *dest, const FVector *v1, const FVector *v2) {
|
||||
*dest = tempVector;
|
||||
}
|
||||
|
||||
void FVector::fn5(FVector *dest, const void *v) const {
|
||||
void FVector::fn5(FVector *dest, const CStarControlSub6 *sub6) const {
|
||||
error("TODO: FVector::fn5");
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
namespace Titanic {
|
||||
|
||||
class CStarControlSub6;
|
||||
|
||||
/**
|
||||
* Floating point vector class.
|
||||
* @remarks TODO: See if it can be merged with DVector
|
||||
@ -46,7 +48,7 @@ public:
|
||||
double getDistance(const FVector *src) const;
|
||||
|
||||
static void fn4(FVector *dest, const FVector *v1, const FVector *v2);
|
||||
void fn5(FVector *dest, const void *v) const;
|
||||
void fn5(FVector *dest, const CStarControlSub6 *sub6) const;
|
||||
|
||||
/**
|
||||
* Returns true if the passed vector equals this one
|
||||
|
@ -30,13 +30,13 @@ FMatrix *CStarControlSub12::_matrix1;
|
||||
FMatrix *CStarControlSub12::_matrix2;
|
||||
|
||||
CStarControlSub12::CStarControlSub12(void *val1, void *val2) :
|
||||
_field4(-1), _handlerP(nullptr), _field108(0),
|
||||
_currentIndex(-1), _handlerP(nullptr), _field108(0),
|
||||
_sub13(val1) {
|
||||
setupHandler(val2);
|
||||
}
|
||||
|
||||
CStarControlSub12::CStarControlSub12(CStarControlSub13 *src) :
|
||||
_field4(-1), _handlerP(nullptr), _field108(0), _sub13(src) {
|
||||
_currentIndex(-1), _handlerP(nullptr), _field108(0), _sub13(src) {
|
||||
}
|
||||
|
||||
void CStarControlSub12::init() {
|
||||
@ -146,6 +146,98 @@ void CStarControlSub12::proc15(int v) {
|
||||
}
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc16() {
|
||||
_handlerP->proc4();
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc17() {
|
||||
_handlerP->proc5();
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc18() {
|
||||
_handlerP->proc6();
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc19() {
|
||||
_handlerP->proc7();
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc20(double v) {
|
||||
if (!isLocked())
|
||||
_sub13.fn14(v);
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc21(CStarControlSub6 &sub6) {
|
||||
if (!isLocked()) {
|
||||
_sub13.setPosition(sub6);
|
||||
set108();
|
||||
}
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc22(FMatrix &m) {
|
||||
if (!isLocked())
|
||||
_sub13.fn15(m);
|
||||
}
|
||||
|
||||
CStarControlSub6 CStarControlSub12::proc23() {
|
||||
return _sub13.getSub1();
|
||||
}
|
||||
|
||||
CStarControlSub6 CStarControlSub12::proc24() {
|
||||
return _sub13.getSub2();
|
||||
}
|
||||
|
||||
double CStarControlSub12::proc25() const {
|
||||
return _sub13._field10;
|
||||
}
|
||||
|
||||
double CStarControlSub12::proc26() const {
|
||||
return _sub13._field14;
|
||||
}
|
||||
|
||||
int CStarControlSub12::proc27() const {
|
||||
return _sub13._field24;
|
||||
}
|
||||
|
||||
FVector CStarControlSub12::proc28(int index, const void *v2) {
|
||||
error("TODO: CStarControlSub12::proc28");
|
||||
return FVector();
|
||||
}
|
||||
|
||||
FVector CStarControlSub12::proc29(const FVector &v) {
|
||||
return _sub13.fn16(v);
|
||||
}
|
||||
|
||||
FVector CStarControlSub12::proc30(int index, const FVector &v) {
|
||||
return _sub13.fn17(index, v);
|
||||
}
|
||||
|
||||
FVector CStarControlSub12::proc31(int index, const FVector &v) {
|
||||
return _sub13.fn18(index, v);
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc32(double v1, double v2) {
|
||||
error("TODO: CStarControlSub12::proc32");
|
||||
}
|
||||
|
||||
bool CStarControlSub12::setArrayVector(const FVector &v) {
|
||||
if (_currentIndex >= 2)
|
||||
return false;
|
||||
|
||||
error("TODO: CStarControlSub12::setArrayVector");
|
||||
}
|
||||
|
||||
bool CStarControlSub12::proc35() {
|
||||
if (_currentIndex == -1)
|
||||
return false;
|
||||
|
||||
error("TODO: CStarControlSub12::proc35");
|
||||
}
|
||||
|
||||
void CStarControlSub12::proc36(double *v1, double *v2, double *v3, double *v4) {
|
||||
_sub13.fn19(v1, v2, v3, v4);
|
||||
}
|
||||
|
||||
void CStarControlSub12::load(SimpleFile *file, int param) {
|
||||
_sub13.load(file, param);
|
||||
}
|
||||
@ -157,7 +249,7 @@ void CStarControlSub12::save(SimpleFile *file, int indent) {
|
||||
bool CStarControlSub12::setupHandler(void *src) {
|
||||
CStarControlSub20 *handler = nullptr;
|
||||
|
||||
switch (_field4) {
|
||||
switch (_currentIndex) {
|
||||
case -1:
|
||||
handler = new CStarControlSub21(src);
|
||||
break;
|
||||
|
@ -31,18 +31,12 @@
|
||||
namespace Titanic {
|
||||
|
||||
class CStarControlSub12 {
|
||||
struct ArrayEntry {
|
||||
int _field0;
|
||||
int _field4;
|
||||
int _field8;
|
||||
ArrayEntry() : _field0(0), _field4(0), _field8(0) {}
|
||||
};
|
||||
private:
|
||||
static FMatrix *_matrix1;
|
||||
static FMatrix *_matrix2;
|
||||
private:
|
||||
int _field4;
|
||||
ArrayEntry _array[3];
|
||||
int _currentIndex;
|
||||
FVector _array[3];
|
||||
CStarControlSub20 *_handlerP;
|
||||
CStarControlSub13 _sub13;
|
||||
int _field108;
|
||||
@ -83,6 +77,27 @@ public:
|
||||
virtual void proc13(CStarControlSub13 *dest);
|
||||
virtual void proc14(int v);
|
||||
virtual void proc15(int v);
|
||||
virtual void proc16();
|
||||
virtual void proc17();
|
||||
virtual void proc18();
|
||||
virtual void proc19();
|
||||
virtual void proc20(double v);
|
||||
virtual void proc21(CStarControlSub6 &sub6);
|
||||
virtual void proc22(FMatrix &m);
|
||||
virtual CStarControlSub6 proc23();
|
||||
virtual CStarControlSub6 proc24();
|
||||
virtual double proc25() const;
|
||||
virtual double proc26() const;
|
||||
virtual int proc27() const;
|
||||
virtual FVector proc28(int index, const void *v2);
|
||||
virtual FVector proc29(const FVector &v);
|
||||
virtual FVector proc30(int index, const FVector &v);
|
||||
virtual FVector proc31(int index, const FVector &v);
|
||||
virtual void proc32(double v1, double v2);
|
||||
virtual int getCurrentIndex() const { return _currentIndex; }
|
||||
virtual bool setArrayVector(const FVector &v);
|
||||
virtual bool proc35();
|
||||
virtual void proc36(double *v1, double *v2, double *v3, double *v4);
|
||||
|
||||
/**
|
||||
* Load the data for the class from file
|
||||
|
@ -127,6 +127,13 @@ void CStarControlSub13::setPosition(const FVector &v) {
|
||||
_fieldD4 = 0;
|
||||
}
|
||||
|
||||
void CStarControlSub13::setPosition(const CStarControlSub6 &sub6) {
|
||||
FVector vector;
|
||||
_position.fn5(&vector, &sub6);
|
||||
_position = sub6._matrix._row1;
|
||||
_fieldD4 = 0;
|
||||
}
|
||||
|
||||
void CStarControlSub13::setMatrix(const FMatrix &m) {
|
||||
_matrix = m;
|
||||
_fieldD4 = 0;
|
||||
@ -179,6 +186,50 @@ void CStarControlSub13::fn13(double v1, double v2) {
|
||||
_field24 = v2 ? 2 : 0;
|
||||
}
|
||||
|
||||
void CStarControlSub13::fn14(double v) {
|
||||
error("TODO: CStarControlSub13::fn14");
|
||||
}
|
||||
|
||||
void CStarControlSub13::fn15(FMatrix &matrix) {
|
||||
_matrix.fn3(&matrix);
|
||||
_fieldD4 = 0;
|
||||
}
|
||||
|
||||
CStarControlSub6 CStarControlSub13::getSub1() {
|
||||
if (!_fieldD4)
|
||||
reset();
|
||||
|
||||
return _sub1;
|
||||
}
|
||||
|
||||
CStarControlSub6 CStarControlSub13::getSub2() {
|
||||
if (!_fieldD4)
|
||||
reset();
|
||||
|
||||
return _sub2;
|
||||
}
|
||||
|
||||
FVector CStarControlSub13::fn16(const FVector &v) {
|
||||
error("TODO: CStarControlSub13::fn16");
|
||||
}
|
||||
|
||||
FVector CStarControlSub13::fn17(int index, const FVector &v) {
|
||||
error("TODO: CStarControlSub13::fn17");
|
||||
}
|
||||
|
||||
FVector CStarControlSub13::fn18(int index, const FVector &v) {
|
||||
error("TODO: CStarControlSub13::fn17");
|
||||
}
|
||||
|
||||
void CStarControlSub13::fn19(double *v1, double *v2, double *v3, double *v4) {
|
||||
error("TODO: CStarControlSub13::fn19");
|
||||
}
|
||||
|
||||
void CStarControlSub13::reset() {
|
||||
const double FACTOR = 3.1415927 * 0.0055555557;
|
||||
error("TODO: CStarControlSub13::reset");
|
||||
}
|
||||
|
||||
void CStarControlSub13::getMatrix(FMatrix *matrix) {
|
||||
*matrix = _matrix;
|
||||
}
|
||||
|
@ -32,27 +32,29 @@ namespace Titanic {
|
||||
class CStarControlSub13 {
|
||||
private:
|
||||
double _fieldC;
|
||||
double _field10;
|
||||
double _field14;
|
||||
double _field18;
|
||||
double _field1C;
|
||||
int _width;
|
||||
int _height;
|
||||
int _field24;
|
||||
double _valArray[5];
|
||||
FMatrix _matrix;
|
||||
CStarControlSub6 _sub1;
|
||||
CStarControlSub6 _sub2;
|
||||
int _fieldC0;
|
||||
int _fieldC4;
|
||||
double _fieldC0;
|
||||
double _fieldC4;
|
||||
int _fieldC8;
|
||||
int _fieldCC;
|
||||
int _fieldD0;
|
||||
double _fieldD0;
|
||||
int _fieldD4;
|
||||
private:
|
||||
void setup(void *ptr);
|
||||
|
||||
void reset();
|
||||
public:
|
||||
FVector _position;
|
||||
double _field10;
|
||||
double _field14;
|
||||
int _field24;
|
||||
public:
|
||||
CStarControlSub13(void *ptr);
|
||||
CStarControlSub13(CStarControlSub13 *src);
|
||||
@ -74,6 +76,11 @@ public:
|
||||
*/
|
||||
void setPosition(const FVector &v);
|
||||
|
||||
/**
|
||||
* Sets the position
|
||||
*/
|
||||
void setPosition(const CStarControlSub6 &sub6);
|
||||
|
||||
/**
|
||||
* Sets the matrix
|
||||
*/
|
||||
@ -82,6 +89,14 @@ public:
|
||||
void fn11(const FVector &v);
|
||||
void fn12();
|
||||
void fn13(double v1, double v2);
|
||||
void fn14(double v);
|
||||
void fn15(FMatrix &matrix);
|
||||
CStarControlSub6 getSub1();
|
||||
CStarControlSub6 getSub2();
|
||||
FVector fn16(const FVector &v);
|
||||
FVector fn17(int index, const FVector &v);
|
||||
FVector fn18(int index, const FVector &v);
|
||||
void fn19(double *v1, double *v2, double *v3, double *v4);
|
||||
|
||||
/**
|
||||
* Makes a copy of the instance's matrix into the passed matrix
|
||||
|
@ -29,7 +29,6 @@ namespace Titanic {
|
||||
|
||||
class CStarControlSub6 {
|
||||
private:
|
||||
FMatrix _matrix;
|
||||
int _field24;
|
||||
int _field28;
|
||||
int _field2C;
|
||||
@ -38,6 +37,8 @@ private:
|
||||
public:
|
||||
static void init();
|
||||
static void deinit();
|
||||
public:
|
||||
FMatrix _matrix;
|
||||
public:
|
||||
CStarControlSub6();
|
||||
CStarControlSub6(int mode, double amount);
|
||||
|
Loading…
Reference in New Issue
Block a user