Skip to content

Commit

Permalink
Merge branch 'master' into beta10macro
Browse files Browse the repository at this point in the history
  • Loading branch information
foxtacles committed Jan 6, 2025
2 parents 570458d + 2cdbd1b commit fd656ed
Show file tree
Hide file tree
Showing 137 changed files with 4,726 additions and 4,268 deletions.
359 changes: 177 additions & 182 deletions CMakeLists.txt

Large diffs are not rendered by default.

24 changes: 17 additions & 7 deletions LEGO1/lego/legoomni/include/act2actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,23 @@ class Act2Actor : public LegoAnimActor {

Act2Actor();

void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override; // vtable+0x68
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
MxResult VTable0x9c() override; // vtable+0x9c
MxS32 VTable0xa0() override; // vtable+0xa0
void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30

// FUNCTION: LEGO1 0x1001a180
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override
{
if (m_unk0x1f) {
return 0;
}

return LegoAnimActor::VTable0x68(p_v1, p_v2, p_v3);
} // vtable+0x68

void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
MxResult VTable0x9c() override; // vtable+0x9c
MxS32 VTable0xa0() override; // vtable+0xa0

void FUN_10018980();
void FUN_10019250(MxFloat p_speed, MxFloat p_param2);
Expand Down
9 changes: 5 additions & 4 deletions LEGO1/lego/legoomni/include/act3.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Act3Brickster;
class Act3Cop;
class Act3Shark;
class Helicopter;
class MxQuaternionTransformer;

// Macros confirmed by BETA10
#define MAX_PIZZAS 20
Expand Down Expand Up @@ -53,6 +54,9 @@ class Act3State : public LegoState {
public:
Act3State() { m_unk0x08 = 0; }

// FUNCTION: LEGO1 0x1000e2f0
MxBool IsSerializable() override { return FALSE; }

// FUNCTION: LEGO1 0x1000e300
// FUNCTION: BETA10 0x10017e10
const char* ClassName() const override // vtable+0x0c
Expand All @@ -67,9 +71,6 @@ class Act3State : public LegoState {
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'

Expand Down Expand Up @@ -152,7 +153,7 @@ class Act3 : public LegoWorld {
const Matrix4& p_destination,
const Matrix4& p_startPosition,
const Matrix4& p_endPosition,
const UnknownMx4DPointFloat& p_unk0x1f4
const MxQuaternionTransformer& p_unk0x1f4
);

Act3State* m_state; // 0xf8
Expand Down
10 changes: 8 additions & 2 deletions LEGO1/lego/legoomni/include/ambulance.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,22 +29,28 @@ class AmbulanceMissionState : public LegoState {

MxResult Serialize(LegoFile* p_file) override; // vtable+0x1c

// FUNCTION: BETA10 0x10088770
MxS16 GetHighScore(MxU8 p_actorId)
{
switch (p_actorId) {
case LegoActor::c_pepper:
return m_peHighScore;
break;
case LegoActor::c_mama:
return m_maHighScore;
break;
case LegoActor::c_papa:
return m_paHighScore;
break;
case LegoActor::c_nick:
return m_niHighScore;
break;
case LegoActor::c_laura:
return m_laHighScore;
default:
return 0;
break;
}

return 0;
}

// FUNCTION: BETA10 0x100242d0
Expand Down
156 changes: 78 additions & 78 deletions LEGO1/lego/legoomni/include/buildings.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,152 +5,153 @@

class LegoEventNotificationParam;

// VTABLE: LEGO1 0x100d48a8
// VTABLE: BETA10 0x101bd818
// VTABLE: LEGO1 0x100d4b90
// VTABLE: BETA10 0x101bd610
// SIZE 0x68
class RaceStandsEntity : public BuildingEntity {
// FUNCTION: LEGO1 0x1000efa0
// FUNCTION: BETA10 0x100a9820
class InfoCenterEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000ea00
// FUNCTION: BETA10 0x100a9230
const char* ClassName() const override // vtable+0x0c
{
// at LEGO1 0x100f0300, needs no annotation
return "RaceStandsEntity";
// STRING: LEGO1 0x100f035c
return "InfoCenterEntity";
}

// FUNCTION: LEGO1 0x1000efb0
// FUNCTION: LEGO1 0x1000ea10
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override;
MxLong HandleClick(LegoEventNotificationParam& p_param) override; // vtable+0x50

// SYNTHETIC: LEGO1 0x1000f9e0
// RaceStandsEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f7b0
// InfoCenterEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d4a18
// VTABLE: BETA10 0x101bd7b0
// VTABLE: LEGO1 0x100d5258
// VTABLE: BETA10 0x101bd6e0
// SIZE 0x68
class BeachHouseEntity : public BuildingEntity {
class GasStationEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000ee80
// FUNCTION: BETA10 0x100a96f0
// FUNCTION: LEGO1 0x1000eb20
// FUNCTION: BETA10 0x100a9490
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0314
return "BeachHouseEntity";
// STRING: LEGO1 0x100f0348
return "GasStationEntity";
}

// FUNCTION: LEGO1 0x1000ee90
// FUNCTION: LEGO1 0x1000eb30
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override;

// SYNTHETIC: LEGO1 0x1000f970
// BeachHouseEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f890
// GasStationEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d4ab0
// VTABLE: BETA10 0x101bd748
// VTABLE: LEGO1 0x100d5068
// VTABLE: BETA10 0x101bd678
// SIZE 0x68
class PoliceEntity : public BuildingEntity {
class HospitalEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000ed60
// FUNCTION: BETA10 0x100a95c0
// FUNCTION: LEGO1 0x1000ec40
// FUNCTION: BETA10 0x100a9360
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0328
return "PoliceEntity";
// STRING: LEGO1 0x100f0338
return "HospitalEntity";
}

// FUNCTION: LEGO1 0x1000ed70
// FUNCTION: LEGO1 0x1000ec50
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, PoliceEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override; // vtable+0x50

// SYNTHETIC: LEGO1 0x1000f900
// PoliceEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f820
// HospitalEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d4b90
// VTABLE: BETA10 0x101bd610
// VTABLE: LEGO1 0x100d4ab0
// VTABLE: BETA10 0x101bd748
// SIZE 0x68
class InfoCenterEntity : public BuildingEntity {
class PoliceEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000ea00
// FUNCTION: BETA10 0x100a9230
// FUNCTION: LEGO1 0x1000ed60
// FUNCTION: BETA10 0x100a95c0
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f035c
return "InfoCenterEntity";
// STRING: LEGO1 0x100f0328
return "PoliceEntity";
}

// FUNCTION: LEGO1 0x1000ea10
// FUNCTION: LEGO1 0x1000ed70
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, PoliceEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override; // vtable+0x50

// SYNTHETIC: LEGO1 0x1000f7b0
// InfoCenterEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f900
// PoliceEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d5068
// VTABLE: BETA10 0x101bd678
// VTABLE: LEGO1 0x100d4a18
// VTABLE: BETA10 0x101bd7b0
// SIZE 0x68
class HospitalEntity : public BuildingEntity {
class BeachHouseEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000ec40
// FUNCTION: BETA10 0x100a9360
// FUNCTION: LEGO1 0x1000ee80
// FUNCTION: BETA10 0x100a96f0
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0338
return "HospitalEntity";
// STRING: LEGO1 0x100f0314
return "BeachHouseEntity";
}

// FUNCTION: LEGO1 0x1000ec50
// FUNCTION: LEGO1 0x1000ee90
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override; // vtable+0x50
MxLong HandleClick(LegoEventNotificationParam& p_param) override;

// SYNTHETIC: LEGO1 0x1000f820
// HospitalEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f970
// BeachHouseEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d50c0
// VTABLE: BETA10 0x101bd880
// VTABLE: LEGO1 0x100d48a8
// VTABLE: BETA10 0x101bd818
// SIZE 0x68
class CaveEntity : public BuildingEntity {
// FUNCTION: LEGO1 0x1000f1e0
// FUNCTION: BETA10 0x100a9950
class RaceStandsEntity : public BuildingEntity {
// FUNCTION: LEGO1 0x1000efa0
// FUNCTION: BETA10 0x100a9820
const char* ClassName() const override // vtable+0x0c
{
// at LEGO1 0x100f0300, needs no annotation
return "RaceStandsEntity";
}

// FUNCTION: LEGO1 0x1000f1f0
// FUNCTION: LEGO1 0x1000efb0
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, CaveEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override;

// SYNTHETIC: LEGO1 0x1000fa50
// CaveEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000f9e0
// RaceStandsEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d5200
Expand All @@ -177,29 +178,28 @@ class JailEntity : public BuildingEntity {
// JailEntity::`scalar deleting destructor'
};

// VTABLE: LEGO1 0x100d5258
// VTABLE: BETA10 0x101bd6e0
// VTABLE: LEGO1 0x100d50c0
// VTABLE: BETA10 0x101bd880
// SIZE 0x68
class GasStationEntity : public BuildingEntity {
public:
// FUNCTION: LEGO1 0x1000eb20
// FUNCTION: BETA10 0x100a9490
class CaveEntity : public BuildingEntity {
// FUNCTION: LEGO1 0x1000f1e0
// FUNCTION: BETA10 0x100a9950
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0348
return "GasStationEntity";
// at LEGO1 0x100f0300, needs no annotation
return "RaceStandsEntity";
}

// FUNCTION: LEGO1 0x1000eb30
// FUNCTION: LEGO1 0x1000f1f0
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
return !strcmp(p_name, CaveEntity::ClassName()) || BuildingEntity::IsA(p_name);
}

MxLong HandleClick(LegoEventNotificationParam& p_param) override;

// SYNTHETIC: LEGO1 0x1000f890
// GasStationEntity::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x1000fa50
// CaveEntity::`scalar deleting destructor'
};

#endif // BUILDINGS_H
11 changes: 5 additions & 6 deletions LEGO1/lego/legoomni/include/elevatorbottom.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ class ElevatorBottom : public LegoWorld {

MxLong Notify(MxParam& p_param) override; // vtable+0x04

// FUNCTION: LEGO1 0x10017f10
MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c

// FUNCTION: LEGO1 0x10017f20
// FUNCTION: BETA10 0x10028130
const char* ClassName() const override // vtable+0x0c
Expand All @@ -33,12 +36,8 @@ class ElevatorBottom : public LegoWorld {

MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void ReadyWorld() override; // vtable+0x50

// FUNCTION: LEGO1 0x10017f10
MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c

MxBool Escape() override; // vtable+0x64
void Enable(MxBool p_enable) override; // vtable+0x68
MxBool Escape() override; // vtable+0x64
void Enable(MxBool p_enable) override; // vtable+0x68

// SYNTHETIC: LEGO1 0x10018040
// ElevatorBottom::`scalar deleting destructor'
Expand Down
Loading

0 comments on commit fd656ed

Please sign in to comment.