mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-22 16:04:17 +00:00
Consolidate state and building entity classes (#989)
This commit is contained in:

committed by
GitHub

parent
73bb37596e
commit
133a312aee
@@ -1,134 +0,0 @@
|
||||
#ifndef ACT1STATE_H
|
||||
#define ACT1STATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
class LegoNamedTexture;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7028
|
||||
// SIZE 0x26c
|
||||
class Act1State : public LegoState {
|
||||
public:
|
||||
enum ElevatorFloor {
|
||||
c_floor1 = 1,
|
||||
c_floor2,
|
||||
c_floor3
|
||||
};
|
||||
|
||||
enum {
|
||||
e_unk953 = 953,
|
||||
e_unk954 = 954,
|
||||
e_unk955 = 955,
|
||||
};
|
||||
|
||||
// SIZE 0x4c
|
||||
class NamedPlane {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10033800
|
||||
NamedPlane() {}
|
||||
|
||||
inline void SetName(const char* p_name) { m_name = p_name; }
|
||||
inline const MxString* GetName() const { return &m_name; }
|
||||
|
||||
// FUNCTION: LEGO1 0x100344d0
|
||||
MxResult Serialize(LegoFile* p_file)
|
||||
{
|
||||
if (p_file->IsWriteMode()) {
|
||||
p_file->WriteString(m_name);
|
||||
p_file->WriteVector3(m_point1);
|
||||
p_file->WriteVector3(m_point2);
|
||||
p_file->WriteVector3(m_point3);
|
||||
}
|
||||
else if (p_file->IsReadMode()) {
|
||||
p_file->ReadString(m_name);
|
||||
p_file->ReadVector3(m_point1);
|
||||
p_file->ReadVector3(m_point2);
|
||||
p_file->ReadVector3(m_point3);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
private:
|
||||
MxString m_name; // 0x00
|
||||
Mx3DPointFloat m_point1; // 0x10
|
||||
Mx3DPointFloat m_point2; // 0x24
|
||||
Mx3DPointFloat m_point3; // 0x38
|
||||
};
|
||||
|
||||
Act1State();
|
||||
|
||||
// FUNCTION: LEGO1 0x100338a0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0154
|
||||
return "Act1State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100338b0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
void FUN_10034660();
|
||||
void FUN_100346a0();
|
||||
void FUN_10034b60();
|
||||
void FUN_10034d00();
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
inline MxU32 GetUnknown18() { return m_unk0x018; }
|
||||
inline ElevatorFloor GetElevatorFloor() { return (ElevatorFloor) m_elevFloor; }
|
||||
inline MxU8 GetUnknown21() { return m_unk0x021; }
|
||||
|
||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x018 = p_unk0x18; }
|
||||
inline void SetElevatorFloor(ElevatorFloor p_elevFloor) { m_elevFloor = p_elevFloor; }
|
||||
inline void SetUnknown21(MxU8 p_unk0x21) { m_unk0x021 = p_unk0x21; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10033960
|
||||
// Act1State::`scalar deleting destructor'
|
||||
|
||||
MxS32* m_unk0x008; // 0x008 FIXME: count for m_unk0x008
|
||||
MxS16 m_unk0x00c; // 0x00c
|
||||
undefined2 m_unk0x00e; // 0x00e
|
||||
undefined2 m_unk0x010; // 0x010
|
||||
undefined m_unk0x012; // 0x012
|
||||
MxS32 m_unk0x014; // 0x014
|
||||
MxU32 m_unk0x018; // 0x018
|
||||
MxS16 m_elevFloor; // 0x01c
|
||||
MxBool m_unk0x01e; // 0x01e
|
||||
MxBool m_unk0x01f; // 0x01f
|
||||
MxBool m_planeActive; // 0x020
|
||||
undefined m_unk0x021; // 0x021
|
||||
MxBool m_unk0x022; // 0x022
|
||||
undefined m_unk0x023; // 0x023
|
||||
NamedPlane m_unk0x024; // 0x024
|
||||
NamedPlane m_unk0x070; // 0x070
|
||||
NamedPlane m_unk0x0bc; // 0x0bc
|
||||
NamedPlane m_unk0x108; // 0x108
|
||||
LegoNamedTexture* m_unk0x154; // 0x154
|
||||
LegoNamedTexture* m_unk0x158; // 0x158
|
||||
LegoNamedTexture* m_unk0x15c; // 0x15c
|
||||
MxCore* m_unk0x160; // 0x160
|
||||
NamedPlane m_unk0x164; // 0x164
|
||||
LegoNamedTexture* m_unk0x1b0; // 0x1b0
|
||||
LegoNamedTexture* m_unk0x1b4; // 0x1b4
|
||||
MxCore* m_unk0x1b8; // 0x1b8
|
||||
NamedPlane m_unk0x1bc; // 0x1bc
|
||||
LegoNamedTexture* m_unk0x208; // 0x208
|
||||
MxCore* m_unk0x20c; // 0x20c
|
||||
NamedPlane m_unk0x210; // 0x210
|
||||
LegoNamedTexture* m_unk0x25c; // 0x25c
|
||||
LegoNamedTexture* m_unk0x260; // 0x260
|
||||
LegoNamedTexture* m_unk0x264; // 0x264
|
||||
MxCore* m_unk0x268; // 0x268
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x10033a70
|
||||
// Act1State::NamedPlane::~NamedPlane
|
||||
|
||||
#endif // ACT1STATE_H
|
@@ -1,8 +1,41 @@
|
||||
#ifndef ACT3_H
|
||||
#define ACT3_H
|
||||
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4fc8
|
||||
// SIZE 0x0c
|
||||
class Act3State : public LegoState {
|
||||
public:
|
||||
inline Act3State() { m_unk0x08 = 0; }
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e300
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03f0
|
||||
return "Act3State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e310
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act3State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e2f0
|
||||
MxBool IsSerializable() override { return FALSE; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e3c0
|
||||
// Act3State::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x08() { return m_unk0x08; }
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d9628
|
||||
// SIZE 0x4274
|
||||
class Act3 : public LegoWorld {
|
||||
|
@@ -1,36 +0,0 @@
|
||||
#ifndef ACT3STATE_H
|
||||
#define ACT3STATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4fc8
|
||||
// SIZE 0x0c
|
||||
class Act3State : public LegoState {
|
||||
public:
|
||||
inline Act3State() { m_unk0x08 = 0; }
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e300
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03f0
|
||||
return "Act3State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e310
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act3State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e3c0
|
||||
// Act3State::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x08() { return m_unk0x08; }
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
};
|
||||
|
||||
#endif // ACT3STATE_H
|
@@ -2,8 +2,63 @@
|
||||
#define AMBULANCE_H
|
||||
|
||||
#include "islepathactor.h"
|
||||
#include "legostate.h"
|
||||
|
||||
class AmbulanceMissionState;
|
||||
// VTABLE: LEGO1 0x100d72a0
|
||||
// SIZE 0x24
|
||||
class AmbulanceMissionState : public LegoState {
|
||||
public:
|
||||
AmbulanceMissionState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10037600
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00e8
|
||||
return "AmbulanceMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037610
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id)
|
||||
{
|
||||
switch (p_id) {
|
||||
case 1:
|
||||
return m_score1;
|
||||
case 2:
|
||||
return m_score2;
|
||||
case 3:
|
||||
return m_score3;
|
||||
case 4:
|
||||
return m_score4;
|
||||
case 5:
|
||||
return m_score5;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100376c0
|
||||
// AmbulanceMissionState::`scalar deleting destructor'
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
MxU16 m_unk0x10; // 0x10
|
||||
MxU16 m_unk0x12; // 0x12
|
||||
MxU16 m_unk0x14; // 0x14
|
||||
MxU16 m_unk0x16; // 0x16
|
||||
MxU16 m_unk0x18; // 0x18
|
||||
MxU16 m_score1; // 0x1a
|
||||
MxU16 m_score2; // 0x1c
|
||||
MxU16 m_score3; // 0x1e
|
||||
MxU16 m_score4; // 0x20
|
||||
MxU16 m_score5; // 0x22
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d71a8
|
||||
// SIZE 0x184
|
||||
|
@@ -1,62 +0,0 @@
|
||||
#ifndef AMBULANCEMISSIONSTATE_H
|
||||
#define AMBULANCEMISSIONSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d72a0
|
||||
// SIZE 0x24
|
||||
class AmbulanceMissionState : public LegoState {
|
||||
public:
|
||||
AmbulanceMissionState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10037600
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00e8
|
||||
return "AmbulanceMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037610
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id)
|
||||
{
|
||||
switch (p_id) {
|
||||
case 1:
|
||||
return m_score1;
|
||||
case 2:
|
||||
return m_score2;
|
||||
case 3:
|
||||
return m_score3;
|
||||
case 4:
|
||||
return m_score4;
|
||||
case 5:
|
||||
return m_score5;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100376c0
|
||||
// AmbulanceMissionState::`scalar deleting destructor'
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
MxU16 m_unk0x10; // 0x10
|
||||
MxU16 m_unk0x12; // 0x12
|
||||
MxU16 m_unk0x14; // 0x14
|
||||
MxU16 m_unk0x16; // 0x16
|
||||
MxU16 m_unk0x18; // 0x18
|
||||
MxU16 m_score1; // 0x1a
|
||||
MxU16 m_score2; // 0x1c
|
||||
MxU16 m_score3; // 0x1e
|
||||
MxU16 m_score4; // 0x20
|
||||
MxU16 m_score5; // 0x22
|
||||
};
|
||||
|
||||
#endif // AMBULANCEMISSIONSTATE_H
|
@@ -1,71 +0,0 @@
|
||||
#ifndef ANIMSTATE_H
|
||||
#define ANIMSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// SIZE 0x30
|
||||
struct ModelInfo {
|
||||
char* m_name; // 0x00
|
||||
MxU8 m_unk0x04; // 0x04
|
||||
float m_location[3]; // 0x08
|
||||
float m_direction[3]; // 0x14
|
||||
float m_up[3]; // 0x20
|
||||
MxU8 m_unk0x2c; // 0x2c
|
||||
};
|
||||
|
||||
// SIZE 0x30
|
||||
struct AnimInfo {
|
||||
char* m_name; // 0x00
|
||||
MxU32 m_objectId; // 0x04
|
||||
MxS16 m_location; // 0x08
|
||||
MxBool m_unk0x0a; // 0x0a
|
||||
MxU8 m_unk0x0b; // 0x0b
|
||||
MxU8 m_unk0x0c; // 0x0c
|
||||
MxU8 m_unk0x0d; // 0x0d
|
||||
float m_unk0x10[4]; // 0x10
|
||||
MxU8 m_modelCount; // 0x20
|
||||
MxU16 m_unk0x22; // 0x22
|
||||
ModelInfo* m_models; // 0x24
|
||||
MxS8 m_unk0x28; // 0x28
|
||||
MxBool m_unk0x29; // 0x29
|
||||
MxS8 m_unk0x2a[3]; // 0x2a
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8d80
|
||||
// SIZE 0x1c
|
||||
class AnimState : public LegoState {
|
||||
public:
|
||||
AnimState();
|
||||
~AnimState() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10065070
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0460
|
||||
return "AnimState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065080
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
void FUN_100651d0(MxU32, AnimInfo*, MxU32&);
|
||||
void FUN_10065240(MxU32, AnimInfo*, MxU32);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10065130
|
||||
// AnimState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
void* m_unk0x10; // 0x10
|
||||
undefined4 m_unk0x14; // 0x14
|
||||
void* m_unk0x18; // 0x18
|
||||
};
|
||||
|
||||
#endif // ANIMSTATE_H
|
@@ -1,29 +0,0 @@
|
||||
#ifndef BEACHHOUSEENTITY_H
|
||||
#define BEACHHOUSEENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a18
|
||||
// SIZE 0x68
|
||||
class BeachHouseEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ee80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0314
|
||||
return "BeachHouseEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ee90
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f970
|
||||
// BeachHouseEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // BEACHHOUSEENTITY_H
|
166
LEGO1/lego/legoomni/include/buildings.h
Normal file
166
LEGO1/lego/legoomni/include/buildings.h
Normal file
@@ -0,0 +1,166 @@
|
||||
#ifndef BUILDINGS_H
|
||||
#define BUILDINGS_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d48a8
|
||||
// SIZE 0x68
|
||||
class RaceStandsEntity : public BuildingEntity {
|
||||
// FUNCTION: LEGO1 0x1000efa0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0300
|
||||
return "RaceStandsEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000efb0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f9e0
|
||||
// RaceStandsEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a18
|
||||
// SIZE 0x68
|
||||
class BeachHouseEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ee80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0314
|
||||
return "BeachHouseEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ee90
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f970
|
||||
// BeachHouseEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4ab0
|
||||
// SIZE 0x68
|
||||
class PoliceEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ed60
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0328
|
||||
return "PoliceEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ed70
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PoliceEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f900
|
||||
// PoliceEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4b90
|
||||
// SIZE 0x68
|
||||
class InfoCenterEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ea00
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f035c
|
||||
return "InfoCenterEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ea10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f7b0
|
||||
// InfoCenterEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5068
|
||||
// SIZE 0x68
|
||||
class HospitalEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ec40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0338
|
||||
return "HospitalEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ec50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f820
|
||||
// HospitalEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5200
|
||||
// SIZE 0x68
|
||||
class JailEntity : public BuildingEntity {
|
||||
// FUNCTION: LEGO1 0x1000f0c0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0300
|
||||
return "RaceStandsEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f0d0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JailEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100154f0
|
||||
MxLong VTable0x50(MxParam& p_param) override { return 0; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000fac0
|
||||
// JailEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5258
|
||||
// SIZE 0x68
|
||||
class GasStationEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000eb20
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0348
|
||||
return "GasStationEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000eb30
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f890
|
||||
// GasStationEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // BUILDINGS_H
|
@@ -4,6 +4,27 @@
|
||||
#include "decomp.h"
|
||||
#include "legorace.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4b70
|
||||
// SIZE 0x2c
|
||||
class CarRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dd30
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f009c
|
||||
return "CarRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dd40
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, CarRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f740
|
||||
// CarRaceState::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5e50
|
||||
// SIZE 0x154
|
||||
class CarRace : public LegoRace {
|
||||
|
@@ -1,27 +0,0 @@
|
||||
#ifndef CARRACESTATE_H
|
||||
#define CARRACESTATE_H
|
||||
|
||||
#include "racestate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4b70
|
||||
// SIZE 0x2c
|
||||
class CarRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dd30
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f009c
|
||||
return "CarRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dd40
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, CarRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f740
|
||||
// CarRaceState::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // CARRACESTATE_H
|
@@ -1,7 +1,7 @@
|
||||
#ifndef CAVEENTITY_H
|
||||
#define CAVEENTITY_H
|
||||
|
||||
#include "racestandsentity.h"
|
||||
#include "buildings.h"
|
||||
|
||||
// No overrides, uses vtable from RaceStandsEntity
|
||||
// SIZE 0x68
|
||||
|
@@ -3,12 +3,55 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
#include "radio.h"
|
||||
|
||||
class GasStationState;
|
||||
class MxStillPresenter;
|
||||
|
||||
// VTABLE: LEGO1 0x100d46e0
|
||||
// SIZE 0x24
|
||||
class GasStationState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x04
|
||||
struct Unknown0x14 {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
};
|
||||
|
||||
GasStationState();
|
||||
|
||||
// FUNCTION: LEGO1 0x100061d0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0174
|
||||
return "GasStationState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100061e0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006290
|
||||
// GasStationState::`scalar deleting destructor'
|
||||
|
||||
void FUN_10006430(undefined4);
|
||||
void FUN_10006490();
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
undefined4 m_unk0x08[3]; // 0x08
|
||||
Unknown0x14 m_unk0x14; // 0x14
|
||||
MxS16 m_unk0x18; // 0x18
|
||||
MxS16 m_unk0x1a; // 0x1a
|
||||
MxS16 m_unk0x1c; // 0x1c
|
||||
MxS16 m_unk0x1e; // 0x1e
|
||||
MxS16 m_unk0x20; // 0x20
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4650
|
||||
// SIZE 0x128
|
||||
class GasStation : public LegoWorld {
|
||||
|
@@ -1,29 +0,0 @@
|
||||
#ifndef GASSTATIONENTITY_H
|
||||
#define GASSTATIONENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5258
|
||||
// SIZE 0x68
|
||||
class GasStationEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000eb20
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0348
|
||||
return "GasStationEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000eb30
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f890
|
||||
// GasStationEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // GASSTATIONENTITY_H
|
@@ -1,50 +0,0 @@
|
||||
#ifndef GASSTATIONSTATE_H
|
||||
#define GASSTATIONSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d46e0
|
||||
// SIZE 0x24
|
||||
class GasStationState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x04
|
||||
struct Unknown0x14 {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
};
|
||||
|
||||
GasStationState();
|
||||
|
||||
// FUNCTION: LEGO1 0x100061d0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0174
|
||||
return "GasStationState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100061e0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006290
|
||||
// GasStationState::`scalar deleting destructor'
|
||||
|
||||
void FUN_10006430(undefined4);
|
||||
void FUN_10006490();
|
||||
|
||||
friend class GasStation;
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08[3]; // 0x08
|
||||
Unknown0x14 m_unk0x14; // 0x14
|
||||
MxS16 m_unk0x18; // 0x18
|
||||
MxS16 m_unk0x1a; // 0x1a
|
||||
MxS16 m_unk0x1c; // 0x1c
|
||||
MxS16 m_unk0x1e; // 0x1e
|
||||
MxS16 m_unk0x20; // 0x20
|
||||
};
|
||||
|
||||
#endif // GASSTATIONSTATE_H
|
@@ -2,9 +2,46 @@
|
||||
#define HELICOPTER_H
|
||||
|
||||
#include "islepathactor.h"
|
||||
#include "legostate.h"
|
||||
#include "realtime/matrix.h"
|
||||
|
||||
class HelicopterState;
|
||||
// VTABLE: LEGO1 0x100d5418
|
||||
// SIZE 0x0c
|
||||
class HelicopterState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000e0d0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0144
|
||||
return "HelicopterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0e0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0b0
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0c0
|
||||
MxBool SetFlag() override
|
||||
{
|
||||
m_unk0x08 = 0;
|
||||
return TRUE;
|
||||
} // vtable+0x18
|
||||
|
||||
inline void SetUnknown8(MxU32 p_unk0x08) { m_unk0x08 = p_unk0x08; }
|
||||
inline MxU32 GetUnkown8() { return m_unk0x08; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e190
|
||||
// HelicopterState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
MxU32 m_unk0x08; // 0x08
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d40f8
|
||||
// SIZE 0x230
|
||||
|
@@ -1,44 +0,0 @@
|
||||
#ifndef HELICOPTERSTATE_H
|
||||
#define HELICOPTERSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5418
|
||||
// SIZE 0x0c
|
||||
class HelicopterState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000e0d0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0144
|
||||
return "HelicopterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0e0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0b0
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0c0
|
||||
MxBool SetFlag() override
|
||||
{
|
||||
m_unk0x08 = 0;
|
||||
return TRUE;
|
||||
} // vtable+0x18
|
||||
|
||||
inline void SetUnknown8(MxU32 p_unk0x08) { m_unk0x08 = p_unk0x08; }
|
||||
inline MxU32 GetUnkown8() { return m_unk0x08; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e190
|
||||
// HelicopterState::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
MxU32 m_unk0x08; // 0x08
|
||||
};
|
||||
|
||||
#endif // HELICOPTERSTATE_H
|
@@ -4,13 +4,54 @@
|
||||
#include "actionsfwd.h"
|
||||
#include "decomp.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
class HospitalState;
|
||||
class LegoControlManagerEvent;
|
||||
class MxEndActionNotificationParam;
|
||||
class MxStillPresenter;
|
||||
|
||||
// VTABLE: LEGO1 0x100d97a0
|
||||
// SIZE 0x18
|
||||
class HospitalState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x04
|
||||
struct Unknown0x08 {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
};
|
||||
|
||||
HospitalState();
|
||||
~HospitalState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076400
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0480
|
||||
return "HospitalState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076410
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100764c0
|
||||
// HospitalState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Unknown0x08 m_unk0x08; // 0x08
|
||||
MxS16 m_unk0x0c; // 0x0c
|
||||
MxS16 m_unk0x0e; // 0x0e
|
||||
MxS16 m_unk0x10; // 0x10
|
||||
MxS16 m_unk0x12; // 0x12
|
||||
MxS16 m_unk0x14; // 0x14
|
||||
MxS16 m_unk0x16; // 0x16
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d9730
|
||||
// SIZE 0x12c
|
||||
class Hospital : public LegoWorld {
|
||||
|
@@ -1,29 +0,0 @@
|
||||
#ifndef HOSPITALENTITY_H
|
||||
#define HOSPITALENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5068
|
||||
// SIZE 0x68
|
||||
class HospitalEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ec40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0338
|
||||
return "HospitalEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ec50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f820
|
||||
// HospitalEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // HOSPITALENTITY_H
|
@@ -1,49 +0,0 @@
|
||||
#ifndef HOSPITALSTATE_H
|
||||
#define HOSPITALSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d97a0
|
||||
// SIZE 0x18
|
||||
class HospitalState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x04
|
||||
struct Unknown0x08 {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
};
|
||||
|
||||
HospitalState();
|
||||
~HospitalState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076400
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0480
|
||||
return "HospitalState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076410
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100764c0
|
||||
// HospitalState::`scalar deleting destructor'
|
||||
|
||||
friend class Hospital;
|
||||
|
||||
private:
|
||||
Unknown0x08 m_unk0x08; // 0x08
|
||||
MxS16 m_unk0x0c; // 0x0c
|
||||
MxS16 m_unk0x0e; // 0x0e
|
||||
MxS16 m_unk0x10; // 0x10
|
||||
MxS16 m_unk0x12; // 0x12
|
||||
MxS16 m_unk0x14; // 0x14
|
||||
MxS16 m_unk0x16; // 0x16
|
||||
};
|
||||
|
||||
#endif // HOSPITALSTATE_H
|
@@ -3,15 +3,65 @@
|
||||
|
||||
#include "actionsfwd.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
#include "mxrect32.h"
|
||||
#include "radio.h"
|
||||
|
||||
class InfocenterState;
|
||||
class MxNotificationParam;
|
||||
class MxStillPresenter;
|
||||
class LegoControlManagerEvent;
|
||||
|
||||
// VTABLE: LEGO1 0x100d93a8
|
||||
// SIZE 0x94
|
||||
class InfocenterState : public LegoState {
|
||||
public:
|
||||
InfocenterState();
|
||||
~InfocenterState() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x10071840
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04dc
|
||||
return "InfocenterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071850
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfocenterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071830
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
inline MxS16 GetMaxNameLength() { return sizeOfArray(m_letters); }
|
||||
inline MxStillPresenter* GetNameLetter(MxS32 p_index) { return m_letters[p_index]; }
|
||||
inline void SetNameLetter(MxS32 p_index, MxStillPresenter* p_letter) { m_letters[p_index] = p_letter; }
|
||||
inline MxBool HasRegistered() { return m_letters[0] != NULL; }
|
||||
inline Playlist& GetExitDialogueAct1() { return m_exitDialogueAct1; }
|
||||
inline Playlist& GetExitDialogueAct23() { return m_exitDialogueAct23; }
|
||||
inline Playlist& GetReturnDialogue(LegoGameState::Act p_act) { return m_returnDialogue[p_act]; }
|
||||
inline Playlist& GetLeaveDialogue(LegoGameState::Act p_act) { return m_leaveDialogue[p_act]; }
|
||||
inline Playlist& GetBricksterDialogue() { return m_bricksterDialogue; }
|
||||
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
||||
|
||||
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10071900
|
||||
// InfocenterState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Playlist m_exitDialogueAct1; // 0x08
|
||||
Playlist m_exitDialogueAct23; // 0x14
|
||||
Playlist m_returnDialogue[3]; // 0x20
|
||||
Playlist m_leaveDialogue[3]; // 0x44
|
||||
Playlist m_bricksterDialogue; // 0x68
|
||||
MxU32 m_unk0x74; // 0x74
|
||||
MxStillPresenter* m_letters[7]; // 0x78
|
||||
};
|
||||
|
||||
// SIZE 0x18
|
||||
struct InfocenterMapEntry {
|
||||
// FUNCTION: LEGO1 0x1006ec80
|
||||
|
@@ -1,29 +0,0 @@
|
||||
#ifndef INFOCENTERENTITY_H
|
||||
#define INFOCENTERENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4b90
|
||||
// SIZE 0x68
|
||||
class InfoCenterEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ea00
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f035c
|
||||
return "InfoCenterEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ea10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f7b0
|
||||
// InfoCenterEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // INFOCENTERENTITY_H
|
@@ -1,59 +0,0 @@
|
||||
#ifndef INFOCENTERSTATE_H
|
||||
#define INFOCENTERSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
|
||||
class MxStillPresenter;
|
||||
|
||||
// VTABLE: LEGO1 0x100d93a8
|
||||
// SIZE 0x94
|
||||
class InfocenterState : public LegoState {
|
||||
public:
|
||||
InfocenterState();
|
||||
~InfocenterState() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x10071840
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04dc
|
||||
return "InfocenterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071850
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfocenterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071830
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
inline MxS16 GetMaxNameLength() { return sizeOfArray(m_letters); }
|
||||
inline MxStillPresenter* GetNameLetter(MxS32 p_index) { return m_letters[p_index]; }
|
||||
inline void SetNameLetter(MxS32 p_index, MxStillPresenter* p_letter) { m_letters[p_index] = p_letter; }
|
||||
inline MxBool HasRegistered() { return m_letters[0] != NULL; }
|
||||
inline Playlist& GetExitDialogueAct1() { return m_exitDialogueAct1; }
|
||||
inline Playlist& GetExitDialogueAct23() { return m_exitDialogueAct23; }
|
||||
inline Playlist& GetReturnDialogue(LegoGameState::Act p_act) { return m_returnDialogue[p_act]; }
|
||||
inline Playlist& GetLeaveDialogue(LegoGameState::Act p_act) { return m_leaveDialogue[p_act]; }
|
||||
inline Playlist& GetBricksterDialogue() { return m_bricksterDialogue; }
|
||||
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
||||
|
||||
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10071900
|
||||
// InfocenterState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
Playlist m_exitDialogueAct1; // 0x08
|
||||
Playlist m_exitDialogueAct23; // 0x14
|
||||
Playlist m_returnDialogue[3]; // 0x20
|
||||
Playlist m_leaveDialogue[3]; // 0x44
|
||||
Playlist m_bricksterDialogue; // 0x68
|
||||
MxU32 m_unk0x74; // 0x74
|
||||
MxStillPresenter* m_letters[7]; // 0x78
|
||||
};
|
||||
|
||||
#endif // INFOCENTERSTATE_H
|
@@ -3,16 +3,17 @@
|
||||
|
||||
#include "actionsfwd.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
#include "radio.h"
|
||||
|
||||
class Act1State;
|
||||
class Ambulance;
|
||||
class Bike;
|
||||
class DuneBuggy;
|
||||
class Helicopter;
|
||||
class Jetski;
|
||||
class JukeBoxEntity;
|
||||
class LegoNamedTexture;
|
||||
class Motocycle;
|
||||
class MxType19NotificationParam;
|
||||
class Pizza;
|
||||
@@ -21,6 +22,132 @@ class RaceCar;
|
||||
class SkateBoard;
|
||||
class TowTrack;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7028
|
||||
// SIZE 0x26c
|
||||
class Act1State : public LegoState {
|
||||
public:
|
||||
enum ElevatorFloor {
|
||||
c_floor1 = 1,
|
||||
c_floor2,
|
||||
c_floor3
|
||||
};
|
||||
|
||||
enum {
|
||||
e_unk953 = 953,
|
||||
e_unk954 = 954,
|
||||
e_unk955 = 955,
|
||||
};
|
||||
|
||||
// SIZE 0x4c
|
||||
class NamedPlane {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10033800
|
||||
NamedPlane() {}
|
||||
|
||||
inline void SetName(const char* p_name) { m_name = p_name; }
|
||||
inline const MxString* GetName() const { return &m_name; }
|
||||
|
||||
// FUNCTION: LEGO1 0x100344d0
|
||||
MxResult Serialize(LegoFile* p_file)
|
||||
{
|
||||
if (p_file->IsWriteMode()) {
|
||||
p_file->WriteString(m_name);
|
||||
p_file->WriteVector3(m_point1);
|
||||
p_file->WriteVector3(m_point2);
|
||||
p_file->WriteVector3(m_point3);
|
||||
}
|
||||
else if (p_file->IsReadMode()) {
|
||||
p_file->ReadString(m_name);
|
||||
p_file->ReadVector3(m_point1);
|
||||
p_file->ReadVector3(m_point2);
|
||||
p_file->ReadVector3(m_point3);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
private:
|
||||
MxString m_name; // 0x00
|
||||
Mx3DPointFloat m_point1; // 0x10
|
||||
Mx3DPointFloat m_point2; // 0x24
|
||||
Mx3DPointFloat m_point3; // 0x38
|
||||
};
|
||||
|
||||
Act1State();
|
||||
|
||||
// FUNCTION: LEGO1 0x100338a0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0154
|
||||
return "Act1State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100338b0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
void FUN_10034660();
|
||||
void FUN_100346a0();
|
||||
void FUN_10034b60();
|
||||
void FUN_10034d00();
|
||||
|
||||
inline MxU32 GetUnknown18() { return m_unk0x018; }
|
||||
inline ElevatorFloor GetElevatorFloor() { return (ElevatorFloor) m_elevFloor; }
|
||||
inline MxU8 GetUnknown21() { return m_unk0x021; }
|
||||
|
||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x018 = p_unk0x18; }
|
||||
inline void SetElevatorFloor(ElevatorFloor p_elevFloor) { m_elevFloor = p_elevFloor; }
|
||||
inline void SetUnknown21(MxU8 p_unk0x21) { m_unk0x021 = p_unk0x21; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10033960
|
||||
// Act1State::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
MxS32* m_unk0x008; // 0x008 FIXME: count for m_unk0x008
|
||||
MxS16 m_unk0x00c; // 0x00c
|
||||
undefined2 m_unk0x00e; // 0x00e
|
||||
undefined2 m_unk0x010; // 0x010
|
||||
undefined m_unk0x012; // 0x012
|
||||
MxS32 m_unk0x014; // 0x014
|
||||
MxU32 m_unk0x018; // 0x018
|
||||
MxS16 m_elevFloor; // 0x01c
|
||||
MxBool m_unk0x01e; // 0x01e
|
||||
MxBool m_unk0x01f; // 0x01f
|
||||
MxBool m_planeActive; // 0x020
|
||||
undefined m_unk0x021; // 0x021
|
||||
MxBool m_unk0x022; // 0x022
|
||||
undefined m_unk0x023; // 0x023
|
||||
NamedPlane m_unk0x024; // 0x024
|
||||
NamedPlane m_unk0x070; // 0x070
|
||||
NamedPlane m_unk0x0bc; // 0x0bc
|
||||
NamedPlane m_unk0x108; // 0x108
|
||||
LegoNamedTexture* m_unk0x154; // 0x154
|
||||
LegoNamedTexture* m_unk0x158; // 0x158
|
||||
LegoNamedTexture* m_unk0x15c; // 0x15c
|
||||
MxCore* m_unk0x160; // 0x160
|
||||
NamedPlane m_unk0x164; // 0x164
|
||||
LegoNamedTexture* m_unk0x1b0; // 0x1b0
|
||||
LegoNamedTexture* m_unk0x1b4; // 0x1b4
|
||||
MxCore* m_unk0x1b8; // 0x1b8
|
||||
NamedPlane m_unk0x1bc; // 0x1bc
|
||||
LegoNamedTexture* m_unk0x208; // 0x208
|
||||
MxCore* m_unk0x20c; // 0x20c
|
||||
NamedPlane m_unk0x210; // 0x210
|
||||
LegoNamedTexture* m_unk0x25c; // 0x25c
|
||||
LegoNamedTexture* m_unk0x260; // 0x260
|
||||
LegoNamedTexture* m_unk0x264; // 0x264
|
||||
MxCore* m_unk0x268; // 0x268
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x10033a70
|
||||
// Act1State::NamedPlane::~NamedPlane
|
||||
|
||||
// VTABLE: LEGO1 0x100d6fb8
|
||||
// SIZE 0x140
|
||||
class Isle : public LegoWorld {
|
||||
|
@@ -1,29 +0,0 @@
|
||||
#ifndef JAILENTITY_H
|
||||
#define JAILENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5200
|
||||
// SIZE 0x68
|
||||
class JailEntity : public BuildingEntity {
|
||||
// FUNCTION: LEGO1 0x1000f0c0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0300
|
||||
return "RaceStandsEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f0d0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JailEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100154f0
|
||||
MxLong VTable0x50(MxParam& p_param) override { return 0; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000fac0
|
||||
// JailEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // JAILENTITY_H
|
@@ -3,6 +3,27 @@
|
||||
|
||||
#include "legorace.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4fa8
|
||||
// SIZE 0x2c
|
||||
class JetskiRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dc40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00ac
|
||||
return "JetskiRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dc50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JetskiRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f680
|
||||
// JetskiRaceState::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4fe8
|
||||
// SIZE 0x144
|
||||
class JetskiRace : public LegoRace {
|
||||
|
@@ -1,27 +0,0 @@
|
||||
#ifndef JETSKIRACESTATE_H
|
||||
#define JETSKIRACESTATE_H
|
||||
|
||||
#include "racestate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4fa8
|
||||
// SIZE 0x2c
|
||||
class JetskiRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dc40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00ac
|
||||
return "JetskiRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dc50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JetskiRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f680
|
||||
// JetskiRaceState::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // JETSKIRACESTATE_H
|
@@ -3,10 +3,46 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
class JukeBoxState;
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a90
|
||||
// SIZE 0x10
|
||||
class JukeBoxState : public LegoState {
|
||||
public:
|
||||
enum Music {
|
||||
e_pasquell = 0,
|
||||
e_right,
|
||||
e_decal,
|
||||
e_wallis,
|
||||
e_nelson,
|
||||
e_torpedos
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f310
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f02bc
|
||||
return "JukeBoxState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f320
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JukeBoxState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f300
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f3d0
|
||||
// JukeBoxState::`scalar deleting destructor'
|
||||
|
||||
Music m_music; // 0x08
|
||||
MxU32 m_active; // 0x0c
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8958
|
||||
// SIZE 0x104
|
||||
|
@@ -1,41 +0,0 @@
|
||||
#ifndef JUKEBOXSTATE_H
|
||||
#define JUKEBOXSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a90
|
||||
// SIZE 0x10
|
||||
class JukeBoxState : public LegoState {
|
||||
public:
|
||||
enum Music {
|
||||
e_pasquell = 0,
|
||||
e_right,
|
||||
e_decal,
|
||||
e_wallis,
|
||||
e_nelson,
|
||||
e_torpedos
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f310
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f02bc
|
||||
return "JukeBoxState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f320
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JukeBoxState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f3d0
|
||||
// JukeBoxState::`scalar deleting destructor'
|
||||
|
||||
Music m_music; // 0x08
|
||||
MxU32 m_active; // 0x0c
|
||||
};
|
||||
|
||||
#endif // JUKEBOXSTATE_H
|
@@ -2,8 +2,43 @@
|
||||
#define LEGOACT2_H
|
||||
|
||||
#include "act2brick.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a70
|
||||
// SIZE 0x10
|
||||
class LegoAct2State : public LegoState {
|
||||
public:
|
||||
~LegoAct2State() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0428
|
||||
return "LegoAct2State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df90
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df70
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e040
|
||||
// LegoAct2State::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x08() { return m_unk0x08; }
|
||||
inline void SetUnknown0x0c(undefined p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined m_unk0x0c; // 0x0c
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d82e0
|
||||
// SIZE 0x1154
|
||||
class LegoAct2 : public LegoWorld {
|
||||
|
@@ -1,38 +0,0 @@
|
||||
#ifndef LEGOACT2STATE_H
|
||||
#define LEGOACT2STATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4a70
|
||||
// SIZE 0x10
|
||||
class LegoAct2State : public LegoState {
|
||||
public:
|
||||
~LegoAct2State() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0428
|
||||
return "LegoAct2State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df90
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e040
|
||||
// LegoAct2State::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x08() { return m_unk0x08; }
|
||||
inline void SetUnknown0x0c(undefined p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined m_unk0x0c; // 0x0c
|
||||
};
|
||||
|
||||
#endif // LEGOACT2STATE_H
|
@@ -4,11 +4,11 @@
|
||||
#include "actionsfwd.h"
|
||||
#include "decomp.h"
|
||||
#include "legolocations.h"
|
||||
#include "legostate.h"
|
||||
#include "legotraninfolist.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
|
||||
class AnimState;
|
||||
class LegoAnimPresenter;
|
||||
class LegoEntity;
|
||||
class LegoExtraActor;
|
||||
@@ -18,9 +18,73 @@ class LegoPathBoundary;
|
||||
class LegoROIList;
|
||||
struct LegoUnknown100db7f4;
|
||||
class LegoWorld;
|
||||
struct ModelInfo;
|
||||
class MxDSAction;
|
||||
|
||||
// SIZE 0x30
|
||||
struct ModelInfo {
|
||||
char* m_name; // 0x00
|
||||
MxU8 m_unk0x04; // 0x04
|
||||
float m_location[3]; // 0x08
|
||||
float m_direction[3]; // 0x14
|
||||
float m_up[3]; // 0x20
|
||||
MxU8 m_unk0x2c; // 0x2c
|
||||
};
|
||||
|
||||
// SIZE 0x30
|
||||
struct AnimInfo {
|
||||
char* m_name; // 0x00
|
||||
MxU32 m_objectId; // 0x04
|
||||
MxS16 m_location; // 0x08
|
||||
MxBool m_unk0x0a; // 0x0a
|
||||
MxU8 m_unk0x0b; // 0x0b
|
||||
MxU8 m_unk0x0c; // 0x0c
|
||||
MxU8 m_unk0x0d; // 0x0d
|
||||
float m_unk0x10[4]; // 0x10
|
||||
MxU8 m_modelCount; // 0x20
|
||||
MxU16 m_unk0x22; // 0x22
|
||||
ModelInfo* m_models; // 0x24
|
||||
MxS8 m_unk0x28; // 0x28
|
||||
MxBool m_unk0x29; // 0x29
|
||||
MxS8 m_unk0x2a[3]; // 0x2a
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8d80
|
||||
// SIZE 0x1c
|
||||
class AnimState : public LegoState {
|
||||
public:
|
||||
AnimState();
|
||||
~AnimState() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10065070
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0460
|
||||
return "AnimState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065080
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
void FUN_100651d0(MxU32, AnimInfo*, MxU32&);
|
||||
void FUN_10065240(MxU32, AnimInfo*, MxU32);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10065130
|
||||
// AnimState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
void* m_unk0x10; // 0x10
|
||||
undefined4 m_unk0x14; // 0x14
|
||||
void* m_unk0x18; // 0x18
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8c18
|
||||
// SIZE 0x500
|
||||
class LegoAnimationManager : public MxCore {
|
||||
|
@@ -1,8 +1,54 @@
|
||||
#ifndef LEGOCARBUILD_H
|
||||
#define LEGOCARBUILD_H
|
||||
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d66e0
|
||||
// SIZE 0x50
|
||||
class LegoVehicleBuildState : public LegoState {
|
||||
public:
|
||||
LegoVehicleBuildState(char* p_classType);
|
||||
|
||||
// FUNCTION: LEGO1 0x10025ff0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
return this->m_className.GetData();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10026000
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100260a0
|
||||
// LegoVehicleBuildState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Playlist m_unk0x08[4]; // 0x08
|
||||
|
||||
// This can be one of the following:
|
||||
// * LegoRaceCarBuildState
|
||||
// * LegoCopterBuildState
|
||||
// * LegoDuneCarBuildState
|
||||
// * LegoJetskiBuildState
|
||||
MxString m_className; // 0x38
|
||||
|
||||
// Known States:
|
||||
// * 1 == enter(ing) build screen
|
||||
// * 3 == cutscene/dialogue
|
||||
// * 6 == exit(ing) build screen
|
||||
MxU32 m_animationState; // 0x48
|
||||
undefined m_unk0x4c; // 0x4c
|
||||
MxBool m_unk0x4d; // 0x4d
|
||||
MxBool m_unk0x4e; // 0x4e
|
||||
MxU8 m_placedPartCount; // 0x4f
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d6658
|
||||
// SIZE 0x34c
|
||||
class LegoCarBuild : public LegoWorld {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#ifndef LEGOCARBUILDANIMPRESENTER_H
|
||||
#define LEGOCARBUILDANIMPRESENTER_H
|
||||
#ifndef LEGOCARBUILDPRESENTER_H
|
||||
#define LEGOCARBUILDPRESENTER_H
|
||||
|
||||
#include "anim/legoanim.h"
|
||||
#include "legoanimpresenter.h"
|
||||
@@ -59,4 +59,4 @@ private:
|
||||
undefined4 m_unk0x14c; // 0x14c
|
||||
};
|
||||
|
||||
#endif // LEGOCARBUILDANIMPRESENTER_H
|
||||
#endif // LEGOCARBUILDPRESENTER_H
|
@@ -2,10 +2,60 @@
|
||||
#define LEGORACE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
#include "mxrect32.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5e30
|
||||
// SIZE 0x2c
|
||||
class RaceState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x06
|
||||
struct Entry {
|
||||
public:
|
||||
inline MxS16 GetUnknown0x02() { return m_unk0x02; }
|
||||
inline MxU16 GetScore() { return m_score; }
|
||||
|
||||
// TODO: Possibly private
|
||||
MxU8 m_id; // 0x00
|
||||
MxS16 m_unk0x02; // 0x02
|
||||
MxU16 m_score; // 0x04
|
||||
};
|
||||
|
||||
RaceState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10016010
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f07d0
|
||||
return "RaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10016020
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
Entry* GetState(MxU8 p_id);
|
||||
|
||||
inline undefined4 GetUnknown0x28() { return m_unk0x28; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f6f0
|
||||
// RaceState::~RaceState
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100160d0
|
||||
// RaceState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Entry m_state[5]; // 0x08
|
||||
undefined4 m_unk0x28; // 0x28
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5db0
|
||||
// SIZE 0x144
|
||||
class LegoRace : public LegoWorld {
|
||||
|
@@ -1,52 +0,0 @@
|
||||
#ifndef LEGOVEHICLEBUILDSTATE_H
|
||||
#define LEGOVEHICLEBUILDSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d66e0
|
||||
// SIZE 0x50
|
||||
class LegoVehicleBuildState : public LegoState {
|
||||
public:
|
||||
LegoVehicleBuildState(char* p_classType);
|
||||
|
||||
// FUNCTION: LEGO1 0x10025ff0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
return this->m_className.GetData();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10026000
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100260a0
|
||||
// LegoVehicleBuildState::`scalar deleting destructor'
|
||||
|
||||
// private:
|
||||
Playlist m_unk0x08[4]; // 0x08
|
||||
|
||||
// This can be one of the following:
|
||||
// * LegoRaceCarBuildState
|
||||
// * LegoCopterBuildState
|
||||
// * LegoDuneCarBuildState
|
||||
// * LegoJetskiBuildState
|
||||
MxString m_className; // 0x38
|
||||
|
||||
// Known States:
|
||||
// * 1 == enter(ing) build screen
|
||||
// * 3 == cutscene/dialogue
|
||||
// * 6 == exit(ing) build screen
|
||||
MxU32 m_animationState; // 0x48
|
||||
undefined m_unk0x4c; // 0x4c
|
||||
MxBool m_unk0x4d; // 0x4d
|
||||
MxBool m_unk0x4e; // 0x4e
|
||||
MxU8 m_placedPartCount; // 0x4f
|
||||
};
|
||||
|
||||
#endif // LEGOVEHICLEBUILDSTATE_H
|
@@ -3,11 +3,52 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "isleactor.h"
|
||||
#include "legostate.h"
|
||||
|
||||
class Act1State;
|
||||
class PizzaMissionState;
|
||||
class SkateBoard;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7408
|
||||
// SIZE 0xb0
|
||||
class PizzaMissionState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x20
|
||||
struct Entry {
|
||||
public:
|
||||
undefined2 m_unk0x00; // 0x00
|
||||
MxU8 m_id; // 0x02
|
||||
undefined m_unk0x03[0x15]; // 0x03
|
||||
MxU16 m_score; // 0x18
|
||||
undefined m_unk0x18[6]; // 0x1a
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x10039290
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00d4
|
||||
return "PizzaMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100392a0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id) { return GetState(p_id)->m_score; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10039350
|
||||
// PizzaMissionState::`scalar deleting destructor'
|
||||
|
||||
Entry* GetState(MxU8 p_id);
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
Entry m_state[5]; // 0x10
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d7380
|
||||
// SIZE 0x9c
|
||||
class Pizza : public IsleActor {
|
||||
|
@@ -1,47 +0,0 @@
|
||||
#ifndef PIZZAMISSIONSTATE_H
|
||||
#define PIZZAMISSIONSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// SIZE 0x20
|
||||
struct PizzaMissionStateEntry {
|
||||
public:
|
||||
undefined2 m_unk0x00; // 0x00
|
||||
MxU8 m_id; // 0x02
|
||||
undefined m_unk0x03[0x15]; // 0x03
|
||||
MxU16 m_score; // 0x18
|
||||
undefined m_unk0x18[6]; // 0x1a
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d7408
|
||||
// SIZE 0xb0
|
||||
class PizzaMissionState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10039290
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00d4
|
||||
return "PizzaMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100392a0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id) { return GetState(p_id)->m_score; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10039350
|
||||
// PizzaMissionState::`scalar deleting destructor'
|
||||
|
||||
PizzaMissionStateEntry* GetState(MxU8 p_id);
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
PizzaMissionStateEntry m_state[5]; // 0x10
|
||||
};
|
||||
|
||||
#endif // PIZZAMISSIONSTATE_H
|
@@ -3,10 +3,51 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "isleactor.h"
|
||||
#include "legostate.h"
|
||||
|
||||
class PizzeriaState;
|
||||
class PizzaMissionState;
|
||||
|
||||
// VTABLE: LEGO1 0x100d5ee8
|
||||
// SIZE 0x58
|
||||
class PizzeriaState : public LegoState {
|
||||
public:
|
||||
// SIZE 0x14
|
||||
struct StateStruct {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
undefined4 m_unk0x04; // 0x04
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
};
|
||||
|
||||
PizzeriaState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c20
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0370
|
||||
return "PizzeriaState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c30
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10017ce0
|
||||
// PizzeriaState::`scalar deleting destructor'
|
||||
|
||||
MxU32 FUN_10017d70();
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Playlist m_unk0x08[5]; // 0x08
|
||||
StateStruct m_unk0x44; // 0x44
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5520
|
||||
// SIZE 0x84
|
||||
class Pizzeria : public IsleActor {
|
||||
|
@@ -1,46 +0,0 @@
|
||||
#ifndef PIZZERIASTATE_H
|
||||
#define PIZZERIASTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// SIZE 0x14
|
||||
struct PizzeriaStateStruct {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
undefined4 m_unk0x04; // 0x04
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5ee8
|
||||
// SIZE 0x58
|
||||
class PizzeriaState : public LegoState {
|
||||
public:
|
||||
PizzeriaState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c20
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0370
|
||||
return "PizzeriaState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c30
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10017ce0
|
||||
// PizzeriaState::`scalar deleting destructor'
|
||||
|
||||
MxU32 FUN_10017d70();
|
||||
|
||||
private:
|
||||
Playlist m_unk0x08[5]; // 0x08
|
||||
PizzeriaStateStruct m_unk0x44; // 0x44
|
||||
};
|
||||
|
||||
#endif // PIZZERIASTATE_H
|
@@ -3,13 +3,49 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
#include "radio.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
class LegoEventNotificationParam;
|
||||
class MxDSAction;
|
||||
class PoliceState;
|
||||
|
||||
// VTABLE: LEGO1 0x100d8af0
|
||||
// SIZE 0x10
|
||||
class PoliceState : public LegoState {
|
||||
public:
|
||||
PoliceState();
|
||||
~PoliceState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e860
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0444
|
||||
return "PoliceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e870
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005e920
|
||||
// PoliceState::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x0c() { return m_unk0x0c; }
|
||||
inline void SetUnknown0x0c(undefined4 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
void FUN_1005ea40();
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
PoliceScript::Script m_policeScript; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8a80
|
||||
// SIZE 0x110
|
||||
|
@@ -1,29 +0,0 @@
|
||||
#ifndef POLICEENTITY_H
|
||||
#define POLICEENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4ab0
|
||||
// SIZE 0x68
|
||||
class PoliceEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ed60
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0328
|
||||
return "PoliceEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ed70
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PoliceEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override; // vtable+0x50
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f900
|
||||
// PoliceEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // POLICEENTITY_H
|
@@ -1,43 +0,0 @@
|
||||
#ifndef POLICESTATE_H
|
||||
#define POLICESTATE_H
|
||||
|
||||
#include "actionsfwd.h"
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d8af0
|
||||
// SIZE 0x10
|
||||
class PoliceState : public LegoState {
|
||||
public:
|
||||
PoliceState();
|
||||
~PoliceState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e860
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0444
|
||||
return "PoliceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e870
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005e920
|
||||
// PoliceState::`scalar deleting destructor'
|
||||
|
||||
inline undefined4 GetUnknown0x0c() { return m_unk0x0c; }
|
||||
inline void SetUnknown0x0c(undefined4 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
void FUN_1005ea40();
|
||||
|
||||
private:
|
||||
PoliceScript::Script m_policeScript; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
};
|
||||
|
||||
#endif // POLICESTATE_H
|
@@ -1,28 +0,0 @@
|
||||
#ifndef RACESTANDSENTITY_H
|
||||
#define RACESTANDSENTITY_H
|
||||
|
||||
#include "buildingentity.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d48a8
|
||||
// SIZE 0x68
|
||||
class RaceStandsEntity : public BuildingEntity {
|
||||
// FUNCTION: LEGO1 0x1000efa0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0300
|
||||
return "RaceStandsEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000efb0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxLong VTable0x50(MxParam& p_param) override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f9e0
|
||||
// RaceStandsEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
#endif // RACESTANDSENTITY_H
|
@@ -1,54 +0,0 @@
|
||||
#ifndef RACESTATE_H
|
||||
#define RACESTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// SIZE 0x06
|
||||
struct RaceStateEntry {
|
||||
public:
|
||||
inline MxS16 GetUnknown0x02() { return m_unk0x02; }
|
||||
inline MxU16 GetScore() { return m_score; }
|
||||
|
||||
// TODO: Possibly private
|
||||
MxU8 m_id; // 0x00
|
||||
MxS16 m_unk0x02; // 0x02
|
||||
MxU16 m_score; // 0x04
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d5e30
|
||||
// SIZE 0x2c
|
||||
class RaceState : public LegoState {
|
||||
public:
|
||||
RaceState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10016010
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f07d0
|
||||
return "RaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10016020
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
RaceStateEntry* GetState(MxU8 p_id);
|
||||
|
||||
inline undefined4 GetUnknown0x28() { return m_unk0x28; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f6f0
|
||||
// RaceState::~RaceState
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100160d0
|
||||
// RaceState::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
RaceStateEntry m_state[5]; // 0x08
|
||||
undefined4 m_unk0x28; // 0x28
|
||||
};
|
||||
|
||||
#endif // RACESTATE_H
|
@@ -1,11 +1,50 @@
|
||||
#ifndef RADIO_H
|
||||
#define RADIO_H
|
||||
|
||||
#include "legostate.h"
|
||||
#include "mxcore.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
class MxAtomId;
|
||||
class MxEndActionNotificationParam;
|
||||
class RadioState;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6d28
|
||||
// SIZE 0x30
|
||||
class RadioState : public LegoState {
|
||||
public:
|
||||
RadioState();
|
||||
|
||||
// FUNCTION: LEGO1 0x1002cf60
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04f8
|
||||
return "RadioState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1002cf70
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RadioState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002d020
|
||||
// RadioState::`scalar deleting destructor'
|
||||
|
||||
inline MxBool IsActive() { return m_active; }
|
||||
|
||||
inline void SetActive(MxBool p_active) { m_active = p_active; }
|
||||
|
||||
undefined4 FUN_1002d090();
|
||||
MxBool FUN_1002d0c0(const MxAtomId& p_atom, MxU32 p_objectId);
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
Playlist m_unk0x08[3]; // 0x08
|
||||
MxS16 m_unk0x2c; // 0x2c
|
||||
MxBool m_active; // 0x2e
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d6d10
|
||||
// SIZE 0x10
|
||||
|
@@ -1,45 +0,0 @@
|
||||
#ifndef RADIOSTATE_H
|
||||
#define RADIOSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
class MxAtomId;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6d28
|
||||
// SIZE 0x30
|
||||
class RadioState : public LegoState {
|
||||
public:
|
||||
RadioState();
|
||||
|
||||
// FUNCTION: LEGO1 0x1002cf60
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04f8
|
||||
return "RadioState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1002cf70
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RadioState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002d020
|
||||
// RadioState::`scalar deleting destructor'
|
||||
|
||||
inline MxBool IsActive() { return m_active; }
|
||||
|
||||
inline void SetActive(MxBool p_active) { m_active = p_active; }
|
||||
|
||||
undefined4 FUN_1002d090();
|
||||
MxBool FUN_1002d0c0(const MxAtomId& p_atom, MxU32 p_objectId);
|
||||
|
||||
private:
|
||||
Playlist m_unk0x08[3]; // 0x08
|
||||
MxS16 m_unk0x2c; // 0x2c
|
||||
MxBool m_active; // 0x2e
|
||||
};
|
||||
|
||||
#endif // RADIOSTATE_H
|
@@ -2,11 +2,49 @@
|
||||
#define SCORE_H
|
||||
|
||||
#include "legogamestate.h"
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
class MxEndActionNotificationParam;
|
||||
class ScoreState;
|
||||
|
||||
// VTABLE: LEGO1 0x100d53f8
|
||||
// SIZE 0x0c
|
||||
class ScoreState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000de40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0084
|
||||
return "ScoreState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000de50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, ScoreState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000de20
|
||||
MxBool IsSerializable() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x1000de30
|
||||
MxBool SetFlag() override
|
||||
{
|
||||
m_playCubeTutorial = TRUE;
|
||||
return TRUE;
|
||||
} // vtable+0x18
|
||||
|
||||
inline MxBool GetTutorialFlag() { return m_playCubeTutorial; }
|
||||
inline void SetTutorialFlag(MxBool p_playCubeTutorial) { m_playCubeTutorial = p_playCubeTutorial; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000df00
|
||||
// ScoreState::`scalar deleting destructor'
|
||||
|
||||
// TODO: Most likely getters/setters are not used according to BETA.
|
||||
|
||||
MxBool m_playCubeTutorial; // 0x08
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d4018
|
||||
// SIZE 0x104
|
||||
|
@@ -1,36 +0,0 @@
|
||||
#ifndef SCORESTATE_H
|
||||
#define SCORESTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d53f8
|
||||
// SIZE 0x0c
|
||||
class ScoreState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000de40
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0084
|
||||
return "ScoreState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000de50
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, ScoreState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxBool IsSerializable() override; // vtable+0x14
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
|
||||
inline MxBool GetTutorialFlag() { return m_playCubeTutorial; }
|
||||
inline void SetTutorialFlag(MxBool p_playCubeTutorial) { m_playCubeTutorial = p_playCubeTutorial; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000df00
|
||||
// ScoreState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
MxBool m_playCubeTutorial; // 0x08
|
||||
};
|
||||
|
||||
#endif // SCORESTATE_H
|
@@ -3,8 +3,64 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "islepathactor.h"
|
||||
#include "legostate.h"
|
||||
|
||||
class TowTrackMissionState;
|
||||
// VTABLE: LEGO1 0x100d7fd8
|
||||
// SIZE 0x28
|
||||
class TowTrackMissionState : public LegoState {
|
||||
public:
|
||||
TowTrackMissionState();
|
||||
|
||||
// FUNCTION: LEGO1 0x1004dfa0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00bc
|
||||
return "TowTrackMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004dfb0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, TowTrackMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id)
|
||||
{
|
||||
switch (p_id) {
|
||||
case 1:
|
||||
return m_score1;
|
||||
case 2:
|
||||
return m_score2;
|
||||
case 3:
|
||||
return m_score3;
|
||||
case 4:
|
||||
return m_score4;
|
||||
case 5:
|
||||
return m_score5;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004e060
|
||||
// TowTrackMissionState::`scalar deleting destructor'
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
MxU8 m_unk0x10; // 0x10
|
||||
MxU16 m_unk0x12; // 0x12
|
||||
MxU16 m_unk0x14; // 0x14
|
||||
MxU16 m_unk0x16; // 0x16
|
||||
MxU16 m_unk0x18; // 0x18
|
||||
MxU16 m_unk0x1a; // 0x1a
|
||||
MxU16 m_score1; // 0x1c
|
||||
MxU16 m_score2; // 0x1e
|
||||
MxU16 m_score3; // 0x20
|
||||
MxU16 m_score4; // 0x22
|
||||
MxU16 m_score5; // 0x24
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d7ee0
|
||||
// SIZE 0x180
|
||||
|
@@ -1,63 +0,0 @@
|
||||
#ifndef TOWTRACKMISSIONSTATE_H
|
||||
#define TOWTRACKMISSIONSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d7fd8
|
||||
// SIZE 0x28
|
||||
class TowTrackMissionState : public LegoState {
|
||||
public:
|
||||
TowTrackMissionState();
|
||||
|
||||
// FUNCTION: LEGO1 0x1004dfa0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00bc
|
||||
return "TowTrackMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004dfb0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, TowTrackMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetScore(MxU8 p_id)
|
||||
{
|
||||
switch (p_id) {
|
||||
case 1:
|
||||
return m_score1;
|
||||
case 2:
|
||||
return m_score2;
|
||||
case 3:
|
||||
return m_score3;
|
||||
case 4:
|
||||
return m_score4;
|
||||
case 5:
|
||||
return m_score5;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004e060
|
||||
// TowTrackMissionState::`scalar deleting destructor'
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
MxU8 m_unk0x10; // 0x10
|
||||
MxU16 m_unk0x12; // 0x12
|
||||
MxU16 m_unk0x14; // 0x14
|
||||
MxU16 m_unk0x16; // 0x16
|
||||
MxU16 m_unk0x18; // 0x18
|
||||
MxU16 m_unk0x1a; // 0x1a
|
||||
MxU16 m_score1; // 0x1c
|
||||
MxU16 m_score2; // 0x1e
|
||||
MxU16 m_score3; // 0x20
|
||||
MxU16 m_score4; // 0x22
|
||||
MxU16 m_score5; // 0x24
|
||||
};
|
||||
|
||||
#endif // TOWTRACKMISSIONSTATE_H
|
Reference in New Issue
Block a user