From 6c9f888ea301d21faada588543b2e84da5220998 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 22 Mar 2024 17:53:03 -0400 Subject: [PATCH] Add size assertions for legoomni and fix sizes --- LEGO1/lego/legoomni/include/act2actor.h | 6 +++ LEGO1/lego/legoomni/include/act2brick.h | 8 +++ LEGO1/lego/legoomni/include/act3actor.h | 7 ++- LEGO1/lego/legoomni/include/act3shark.h | 10 +++- LEGO1/lego/legoomni/include/bumpbouy.h | 4 +- LEGO1/lego/legoomni/include/doors.h | 9 ++++ LEGO1/lego/legoomni/include/legoact2.h | 23 ++++++++ LEGO1/lego/legoomni/include/legoanimactor.h | 4 +- .../lego/legoomni/include/legoanimpresenter.h | 3 +- LEGO1/lego/legoomni/include/legocarbuild.h | 53 +++++++++++++++++++ .../include/legocarbuildanimpresenter.h | 18 +++++++ .../lego/legoomni/include/legocarraceactor.h | 2 +- LEGO1/lego/legoomni/include/legoextraactor.h | 6 +-- .../legoomni/include/legojetskiraceactor.h | 1 + .../include/legoloopinganimpresenter.h | 3 ++ .../lego/legoomni/include/legoobjectfactory.h | 6 +-- .../legoomni/include/legopathcontroller.h | 13 +++++ LEGO1/lego/legoomni/include/legoracecar.h | 4 +- LEGO1/lego/legoomni/include/pizzeria.h | 7 +++ LEGO1/lego/legoomni/include/pizzeriastate.h | 15 +++++- LEGO1/lego/legoomni/include/raceskel.h | 3 ++ LEGO1/lego/legoomni/src/act3/act3shark.cpp | 2 + LEGO1/lego/legoomni/src/act3/act3state.cpp | 2 + LEGO1/lego/legoomni/src/actors/act2actor.cpp | 2 + LEGO1/lego/legoomni/src/actors/act3actor.cpp | 4 +- LEGO1/lego/legoomni/src/actors/ambulance.cpp | 2 +- LEGO1/lego/legoomni/src/actors/bike.cpp | 2 +- LEGO1/lego/legoomni/src/actors/bumpbouy.cpp | 2 + LEGO1/lego/legoomni/src/actors/doors.cpp | 2 + LEGO1/lego/legoomni/src/actors/dunebuggy.cpp | 2 +- LEGO1/lego/legoomni/src/actors/jetski.cpp | 2 +- .../legoomni/src/actors/jukeboxentity.cpp | 2 + LEGO1/lego/legoomni/src/actors/motorcycle.cpp | 2 +- LEGO1/lego/legoomni/src/actors/pizza.cpp | 2 +- LEGO1/lego/legoomni/src/actors/pizzeria.cpp | 2 + LEGO1/lego/legoomni/src/actors/racecar.cpp | 2 +- LEGO1/lego/legoomni/src/actors/radio.cpp | 2 +- LEGO1/lego/legoomni/src/actors/skateboard.cpp | 2 +- LEGO1/lego/legoomni/src/actors/towtrack.cpp | 2 +- .../legoomni/src/audio/legosoundmanager.cpp | 2 + .../legoomni/src/build/buildingentity.cpp | 2 + .../legoomni/src/build/helicopterstate.cpp | 2 + .../lego/legoomni/src/build/legocarbuild.cpp | 2 + .../legoomni/src/common/legoobjectfactory.cpp | 8 +-- .../legoomni/src/common/legotextureinfo.cpp | 2 +- .../src/common/mxtransitionmanager.cpp | 2 +- LEGO1/lego/legoomni/src/entity/act2brick.cpp | 2 + .../legoomni/src/entity/act2policestation.cpp | 2 + .../src/entity/legoactorpresenter.cpp | 2 + .../src/entity/legocameracontroller.cpp | 2 +- .../legoomni/src/entity/legocarraceactor.cpp | 4 +- .../src/entity/legoentitypresenter.cpp | 2 +- LEGO1/lego/legoomni/src/entity/legojetski.cpp | 3 ++ .../src/entity/legojetskiraceactor.cpp | 8 +++ .../legoomni/src/entity/legopovcontroller.cpp | 4 +- .../src/entity/legoworldpresenter.cpp | 2 + .../src/gasstation/gasstationentity.cpp | 2 + .../src/gasstation/gasstationstate.cpp | 2 +- .../src/hospital/ambulancemissionstate.cpp | 2 +- .../legoomni/src/hospital/hospitalentity.cpp | 2 + .../src/infocenter/infocenterentity.cpp | 2 + .../src/infocenter/infocenterstate.cpp | 2 +- .../legoomni/src/infocenter/scorestate.cpp | 2 +- .../legoomni/src/isle/beachhouseentity.cpp | 2 + LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp | 2 + LEGO1/lego/legoomni/src/isle/radiostate.cpp | 2 + .../src/notify/legoeventnotificationparam.cpp | 2 +- .../lego/legoomni/src/paths/legoanimactor.cpp | 2 + .../legoomni/src/paths/legoextraactor.cpp | 4 +- .../legoomni/src/paths/legopathcontroller.cpp | 2 + .../legoomni/src/paths/legopathpresenter.cpp | 2 +- .../legoomni/src/pizzeria/pizzeriastate.cpp | 2 + .../lego/legoomni/src/police/policeentity.cpp | 2 + LEGO1/lego/legoomni/src/race/carrace.cpp | 2 +- LEGO1/lego/legoomni/src/race/jetskirace.cpp | 2 + .../lego/legoomni/src/race/legoraceactor.cpp | 2 + LEGO1/lego/legoomni/src/race/legoracecar.cpp | 2 + LEGO1/lego/legoomni/src/race/legoracemap.cpp | 2 + LEGO1/lego/legoomni/src/race/raceskel.cpp | 2 + .../legoomni/src/race/racestandsentity.cpp | 2 + .../src/unknown/legounknown100d7c88.cpp | 2 + .../legoomni/src/video/legoanimpresenter.cpp | 2 +- .../src/video/legocarbuildanimpresenter.cpp | 2 + .../src/video/legoloopinganimpresenter.cpp | 2 + .../legoomni/src/video/legomodelpresenter.cpp | 2 + .../src/video/legophonemepresenter.cpp | 2 +- .../legoomni/src/video/legovideomanager.cpp | 6 +-- LEGO1/lego/legoomni/src/worlds/gasstation.cpp | 2 + LEGO1/lego/legoomni/src/worlds/isle.cpp | 2 +- LEGO1/lego/legoomni/src/worlds/legoact2.cpp | 2 + 90 files changed, 313 insertions(+), 55 deletions(-) diff --git a/LEGO1/lego/legoomni/include/act2actor.h b/LEGO1/lego/legoomni/include/act2actor.h index 048162ba..6b93af65 100644 --- a/LEGO1/lego/legoomni/include/act2actor.h +++ b/LEGO1/lego/legoomni/include/act2actor.h @@ -1,3 +1,6 @@ +#ifndef ACT2ACTOR_H +#define ACT2ACTOR_H + #include "legoanimactor.h" /* @@ -6,6 +9,7 @@ */ // SIZE 0x1a8 class Act2Actor : public LegoAnimActor { +public: Act2Actor(); // SYNTHETIC: LEGO1 0x1001a090 @@ -14,3 +18,5 @@ class Act2Actor : public LegoAnimActor { private: undefined m_unk0x1c[0x34]; // 0x1c }; + +#endif // ACT2ACTOR_H diff --git a/LEGO1/lego/legoomni/include/act2brick.h b/LEGO1/lego/legoomni/include/act2brick.h index 32856732..74b50d46 100644 --- a/LEGO1/lego/legoomni/include/act2brick.h +++ b/LEGO1/lego/legoomni/include/act2brick.h @@ -30,6 +30,14 @@ class Act2Brick : public LegoPathActor { // SYNTHETIC: LEGO1 0x1007a450 // Act2Brick::`scalar deleting destructor' + +private: + undefined4 m_unk0x154; // 0x154 + undefined m_unk0x158[0x0c]; // 0x158 + undefined4 m_unk0x164; // 0x164 + Mx3DPointFloat m_unk0x168; // 0x168 + Mx3DPointFloat m_unk0x17c; // 0x17c + undefined4 m_unk0x190; // 0x190 }; #endif // ACT2BRICK_H diff --git a/LEGO1/lego/legoomni/include/act3actor.h b/LEGO1/lego/legoomni/include/act3actor.h index c87c52bf..002839fe 100644 --- a/LEGO1/lego/legoomni/include/act3actor.h +++ b/LEGO1/lego/legoomni/include/act3actor.h @@ -4,8 +4,8 @@ #include "legoanimactor.h" /* - VTABLE : LEGO1 0x100d7668 LegoPathActor - VTABLE : LEGO1 0x100d7738 LegoAnimActor + VTABLE: LEGO1 0x100d7668 LegoPathActor + VTABLE: LEGO1 0x100d7738 LegoAnimActor */ // SIZE 0x178 class Act3Actor : public LegoAnimActor { @@ -18,6 +18,9 @@ class Act3Actor : public LegoAnimActor { // STRING: LEGO1 0x100f03ac return "Act3Actor"; } + +private: + undefined4 m_unk0x1c; // 0x1c }; #endif // ACT3ACTOR_H diff --git a/LEGO1/lego/legoomni/include/act3shark.h b/LEGO1/lego/legoomni/include/act3shark.h index 0fb549a4..4f0e471d 100644 --- a/LEGO1/lego/legoomni/include/act3shark.h +++ b/LEGO1/lego/legoomni/include/act3shark.h @@ -4,8 +4,8 @@ #include "legoanimactor.h" /* - VTABLE : LEGO1 0x100d7920 LegoPathActor - VTABLE : LEGO1 0x100d79f0 LegoAnimActor + VTABLE: LEGO1 0x100d7920 LegoPathActor + VTABLE: LEGO1 0x100d79f0 LegoAnimActor */ // SIZE 0x1a8 class Act3Shark : public LegoAnimActor { @@ -34,6 +34,12 @@ class Act3Shark : public LegoAnimActor { // SYNTHETIC: LEGO1 0x10043020 // Act3Shark::`scalar deleting destructor' + + list m_unk0x1c; // 0x1c + undefined4 m_unk0x28; // 0x28 + undefined4 m_unk0x2c; // 0x2c + undefined m_unk0x30[0x0c]; // 0x30 + Mx3DPointFloat m_unk0x3c; // 0x3c }; #endif // ACT3SHARK_H diff --git a/LEGO1/lego/legoomni/include/bumpbouy.h b/LEGO1/lego/legoomni/include/bumpbouy.h index c7fc3831..6f9dee2d 100644 --- a/LEGO1/lego/legoomni/include/bumpbouy.h +++ b/LEGO1/lego/legoomni/include/bumpbouy.h @@ -5,8 +5,8 @@ #include "mxtypes.h" /* - VTABLE : LEGO1 0x100d6790 LegoPathActor - VTABLE : LEGO1 0x100d6860 LegoAnimActor + VTABLE: LEGO1 0x100d6790 LegoPathActor + VTABLE: LEGO1 0x100d6860 LegoAnimActor */ // SIZE 0x174 class BumpBouy : public LegoAnimActor { diff --git a/LEGO1/lego/legoomni/include/doors.h b/LEGO1/lego/legoomni/include/doors.h index 35958455..17a9ea4e 100644 --- a/LEGO1/lego/legoomni/include/doors.h +++ b/LEGO1/lego/legoomni/include/doors.h @@ -26,6 +26,15 @@ class Doors : public LegoPathActor { // SYNTHETIC: LEGO1 0x1000e580 // Doors::`scalar deleting destructor' + +private: + undefined4 m_unk0x154; // 0x154 + undefined4 m_unk0x158; // 0x158 + undefined4 m_unk0x15c; // 0x15c + undefined4 m_unk0x160; // 0x160 + MxMatrix m_unk0x164; // 0x164 + MxMatrix m_unk0x1ac; // 0x1fc + undefined4 m_unk0x1f4; // 0x1f4 }; #endif // DOORS_H diff --git a/LEGO1/lego/legoomni/include/legoact2.h b/LEGO1/lego/legoomni/include/legoact2.h index dfedc85d..c464af0b 100644 --- a/LEGO1/lego/legoomni/include/legoact2.h +++ b/LEGO1/lego/legoomni/include/legoact2.h @@ -1,6 +1,7 @@ #ifndef LEGOACT2_H #define LEGOACT2_H +#include "act2brick.h" #include "legocarraceactor.h" #include "legopathactor.h" #include "legoworld.h" @@ -20,6 +21,28 @@ class LegoAct2 : public LegoWorld { // SYNTHETIC: LEGO1 0x1004fe20 // LegoAct2::`scalar deleting destructor' + Act2Brick m_bricks[10]; // 0xf8 + undefined m_unk0x10c0; // 0x10c0 + undefined m_unk0x10c1; // 0x10c1 + undefined m_unk0x10c2; // 0x10c2 + undefined4 m_unk0x10c4; // 0x10c4 + undefined4 m_unk0x10c8; // 0x10c8 + undefined4 m_unk0x10cc; // 0x10cc + undefined4 m_unk0x10d0; // 0x10d0 + char* m_unk0x10d4; // 0x10d4 + undefined4 m_unk0x10d8; // 0x10d8 + MxMatrix m_unk0x10dc; // 0x10dc + undefined4 m_unk0x1124; // 0x1124 + undefined4 m_unk0x1128; // 0x1128 + undefined4 m_unk0x112c; // 0x112c + undefined4 m_unk0x1130; // 0x1130 + undefined4 m_unk0x1134; // 0x1134 + undefined4 m_unk0x1138; // 0x1138 + undefined m_unk0x113c; // 0x113c + undefined4 m_unk0x1140; // 0x1140 + undefined4 m_unk0x1144; // 0x1144 + undefined m_unk0x1148[0x08]; // 0x1148 + undefined4 m_unk0x1150; // 0x1150 }; #endif // LEGOACT2_H diff --git a/LEGO1/lego/legoomni/include/legoanimactor.h b/LEGO1/lego/legoomni/include/legoanimactor.h index 9a287701..42763b84 100644 --- a/LEGO1/lego/legoomni/include/legoanimactor.h +++ b/LEGO1/lego/legoomni/include/legoanimactor.h @@ -35,8 +35,8 @@ class LegoAnimActor : public virtual LegoPathActor { // LegoAnimActor::`scalar deleting destructor' private: - vector m_vector; // 0x00 - MxU16 m_index; // 0x14 + vector m_unk0x08; // 0x08 + MxU16 m_index; // 0x18 }; #endif // LEGOANIMACTOR_H diff --git a/LEGO1/lego/legoomni/include/legoanimpresenter.h b/LEGO1/lego/legoomni/include/legoanimpresenter.h index 7f4d1b5d..d57080c6 100644 --- a/LEGO1/lego/legoomni/include/legoanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legoanimpresenter.h @@ -10,7 +10,7 @@ class LegoWorld; class LegoAnimClass; // VTABLE: LEGO1 0x100d90c8 -// SIZE 0xc0 +// SIZE 0xbc class LegoAnimPresenter : public MxVideoPresenter { public: enum { @@ -93,7 +93,6 @@ class LegoAnimPresenter : public MxVideoPresenter { undefined4 m_unk0xa0; // 0xa0 undefined4 m_unk0xa4; // 0xa4 Mx3DPointFloat m_unk0xa8; // 0xa8 - undefined4 m_unk0xbc; // 0xbc }; // SYNTHETIC: LEGO1 0x10068650 diff --git a/LEGO1/lego/legoomni/include/legocarbuild.h b/LEGO1/lego/legoomni/include/legocarbuild.h index 03d0484d..0d2eccc1 100644 --- a/LEGO1/lego/legoomni/include/legocarbuild.h +++ b/LEGO1/lego/legoomni/include/legocarbuild.h @@ -34,6 +34,59 @@ class LegoCarBuild : public LegoWorld { // SYNTHETIC: LEGO1 0x10022a60 // LegoCarBuild::`scalar deleting destructor' + +private: + undefined4 m_unk0xf8; // 0xf8 + undefined m_unk0xfc[0x8]; // 0xfc + undefined4 m_unk0x104; // 0x104 + undefined m_unk0x108; // 0x108 + undefined m_unk0x109; // 0x109 + undefined4 m_unk0x10c; // 0x10c + undefined4 m_unk0x110; // 0x110 + Mx3DPointFloat m_unk0x114; // 0x114 + undefined4 m_unk0x128; // 0x128 + MxMatrix m_unk0x12c; // 0x12c + undefined m_unk0x174; // 0x174 + MxMatrix m_unk0x178; // 0x178 + MxMatrix m_unk0x1c0; // 0x1c0 + MxMatrix m_unk0x208; // 0x208 + undefined m_unk0x250[0x08]; // 0x250 + undefined4 m_unk0x258; // 0x258 + Mx4DPointFloat m_unk0x25c; // 0x25c + Mx4DPointFloat m_unk0x274; // 0x274 + undefined m_unk0x28c[0x18]; // 0x28c + Mx4DPointFloat m_unk0x2a4; // 0x2a4 + Mx4DPointFloat m_unk0x2bc; // 0x2bc + undefined m_unk0x2d4; // 0x2d4 + undefined4 m_unk0x2dc; // 0x2dc + undefined4 m_unk0x2e0; // 0x2e0 + undefined4 m_unk0x2e4; // 0x2e4 + undefined4 m_unk0x2e8; // 0x2e8 + undefined4 m_unk0x2ec; // 0x2ec + undefined4 m_unk0x2f0; // 0x2f0 + undefined4 m_unk0x2f4; // 0x2f4 + undefined4 m_unk0x2f8; // 0x2f8 + undefined4 m_unk0x2fc; // 0x2fc + undefined4 m_unk0x300; // 0x300 + undefined4 m_unk0x304; // 0x304 + undefined4 m_unk0x308; // 0x308 + undefined4 m_unk0x30c; // 0x30c + undefined4 m_unk0x310; // 0x310 + undefined4 m_unk0x314; // 0x314 + undefined4 m_unk0x318; // 0x318 + undefined4 m_unk0x31c; // 0x31c + undefined4 m_unk0x320; // 0x320 + undefined4 m_unk0x324; // 0x324 + undefined4 m_unk0x328; // 0x328 + undefined4 m_unk0x2d8; // 0x2d8 + undefined4 m_unk0x32c; // 0x32c + undefined4 m_unk0x330; // 0x330 + undefined4 m_unk0x334; // 0x334 + undefined4 m_unk0x338; // 0x338 + undefined4 m_unk0x33c; // 0x33c + undefined4 m_unk0x340; // 0x340 + undefined4 m_unk0x344; // 0x344 + undefined4 m_unk0x348; // 0x348 }; #endif // LEGOCARBUILD_H diff --git a/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h b/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h index fd5f8148..55036496 100644 --- a/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h @@ -31,6 +31,24 @@ class LegoCarBuildAnimPresenter : public LegoAnimPresenter { // SYNTHETIC: LEGO1 0x10078660 // LegoCarBuildAnimPresenter::`scalar deleting destructor' + +private: + undefined2 m_unk0xbc; // 0xbc + undefined2 m_unk0xbe; // 0xbe + undefined2 m_unk0xc0; // 0xc0 + undefined4 m_unk0xc4; // 0xc4 + LegoAnim m_unk0xc8; // 0xc8 + MxMatrix m_unk0xe0; // 0xe0 + undefined4 m_unk0x128; // 0x128 + undefined4 m_unk0x12c; // 0x12c + undefined4 m_unk0x130; // 0x130 + undefined4 m_unk0x134; // 0x134 + undefined4 m_unk0x138; // 0x138 + undefined4 m_unk0x13c; // 0x13c + undefined4 m_unk0x140; // 0x140 + MxS32 m_unk0x144; // 0x144 + MxS32 m_unk0x148; // 0x148 + undefined4 m_unk0x14c; // 0x14c }; #endif // LEGOCARBUILDANIMPRESENTER_H diff --git a/LEGO1/lego/legoomni/include/legocarraceactor.h b/LEGO1/lego/legoomni/include/legocarraceactor.h index 31ac97ad..827f11a0 100644 --- a/LEGO1/lego/legoomni/include/legocarraceactor.h +++ b/LEGO1/lego/legoomni/include/legocarraceactor.h @@ -47,7 +47,7 @@ class LegoCarRaceActor : public virtual LegoRaceActor { virtual void FUN_10012bf0(float p_unk0x18) { m_unk0x18 = p_unk0x18; } // FUNCTION: LEGO1 0x10012c00 virtual float FUN_10012c00() { return m_unk0x18; } - virtual void FUN_10080740(); + virtual void VTable0x1c(); // vtable+0x1c // SYNTHETIC: LEGO1 0x10081610 // LegoCarRaceActor::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/legoextraactor.h b/LEGO1/lego/legoomni/include/legoextraactor.h index 579702c5..0aaf58f2 100644 --- a/LEGO1/lego/legoomni/include/legoextraactor.h +++ b/LEGO1/lego/legoomni/include/legoextraactor.h @@ -4,9 +4,9 @@ #include "legoanimactor.h" /* - VTABLE : LEGO1 0x100d6c00 LegoAnimActor - VTABLE : LEGO1 0x100d6c10 LegoPathActor - VTABLE : LEGO1 0x100d6cdc LegoExtraActor + VTABLE: LEGO1 0x100d6c00 LegoAnimActor + VTABLE: LEGO1 0x100d6c10 LegoPathActor + VTABLE: LEGO1 0x100d6cdc LegoExtraActor */ // SIZE 0x1dc class LegoExtraActor : public virtual LegoAnimActor { diff --git a/LEGO1/lego/legoomni/include/legojetskiraceactor.h b/LEGO1/lego/legoomni/include/legojetskiraceactor.h index acd717de..264fe569 100644 --- a/LEGO1/lego/legoomni/include/legojetskiraceactor.h +++ b/LEGO1/lego/legoomni/include/legojetskiraceactor.h @@ -30,6 +30,7 @@ class LegoJetskiRaceActor : public virtual LegoCarRaceActor { void VTable0x70(float p_float) override; // vtable+0x70 void VTable0x98() override; // vtable+0x98 void VTable0x9c() override; // vtable+0x9c + void VTable0x1c() override; // vtable+0x1c // SYNTHETIC: LEGO1 0x10081d40 // LegoJetskiRaceActor::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/legoloopinganimpresenter.h b/LEGO1/lego/legoomni/include/legoloopinganimpresenter.h index 07154297..c7095dac 100644 --- a/LEGO1/lego/legoomni/include/legoloopinganimpresenter.h +++ b/LEGO1/lego/legoomni/include/legoloopinganimpresenter.h @@ -22,6 +22,9 @@ class LegoLoopingAnimPresenter : public LegoAnimPresenter { void StreamingTickle() override; // vtable+0x20 void PutFrame() override; // vtable+0x6c + +private: + undefined4 m_unk0xbc; // 0xbc }; // SYNTHETIC: LEGO1 0x1006d000 diff --git a/LEGO1/lego/legoomni/include/legoobjectfactory.h b/LEGO1/lego/legoomni/include/legoobjectfactory.h index 6745814e..ceb5f56e 100644 --- a/LEGO1/lego/legoomni/include/legoobjectfactory.h +++ b/LEGO1/lego/legoomni/include/legoobjectfactory.h @@ -59,8 +59,8 @@ X(DuneBuggy) \ X(Pizza) \ X(PizzaMissionState) \ - /*X(Act2Actor)*/ \ - /*X(Act2Brick)*/ \ + X(Act2Actor) \ + X(Act2Brick) \ /*X(Act2GenActor)*/ \ X(Act2PoliceStation) \ X(Act3) \ @@ -98,7 +98,7 @@ X(MxCompositeMediaPresenter) \ X(JukeBox) \ X(JukeBoxState) \ - /*X(RaceSkel)*/ \ + X(RaceSkel) \ X(AnimState) // VTABLE: LEGO1 0x100d4768 diff --git a/LEGO1/lego/legoomni/include/legopathcontroller.h b/LEGO1/lego/legoomni/include/legopathcontroller.h index 5d054356..1fc4f616 100644 --- a/LEGO1/lego/legoomni/include/legopathcontroller.h +++ b/LEGO1/lego/legoomni/include/legopathcontroller.h @@ -38,6 +38,19 @@ class LegoPathController : public MxCore { undefined4 FUN_10046770(IslePathActor* p_actor); MxResult FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value); void Enable(MxBool p_enable); + +private: + undefined4 m_unk0x08; // 0x08 + undefined4 m_unk0x0c; // 0x0c + undefined4 m_unk0x10; // 0x10 + undefined4 m_unk0x14; // 0x14 + undefined2 m_unk0x18; // 0x18 + undefined2 m_unk0x1a; // 0x1a + undefined2 m_unk0x1c; // 0x1c + undefined2 m_unk0x1e; // 0x1e + // These 2 are some sort of template class + undefined m_unk0x20[0x10]; // 0x20 + undefined m_unk0x30[0x10]; // 0x30 }; #endif // LEGOPATHCONTROLLER_H diff --git a/LEGO1/lego/legoomni/include/legoracecar.h b/LEGO1/lego/legoomni/include/legoracecar.h index bff4dd17..86676093 100644 --- a/LEGO1/lego/legoomni/include/legoracecar.h +++ b/LEGO1/lego/legoomni/include/legoracecar.h @@ -45,7 +45,9 @@ class LegoRaceCar : public LegoCarRaceActor, public LegoRaceMap { // SYNTHETIC: LEGO1 0x10014230 // LegoRaceCar::`scalar deleting destructor' - byte m_unk0x54; // 0x54 + +private: + undefined m_unk0x54; // 0x54 undefined4 m_unk0x58; // 0x58 Mx3DPointFloat m_unk0x5c; // 0x5c undefined4 m_unk0x70; // 0x70 diff --git a/LEGO1/lego/legoomni/include/pizzeria.h b/LEGO1/lego/legoomni/include/pizzeria.h index 49c4960a..ca09d7dc 100644 --- a/LEGO1/lego/legoomni/include/pizzeria.h +++ b/LEGO1/lego/legoomni/include/pizzeria.h @@ -7,6 +7,8 @@ // SIZE 0x84 class Pizzeria : public IsleActor { public: + Pizzeria() : m_unk0x7c(0) {} + // FUNCTION: LEGO1 0x1000e780 inline const char* ClassName() const override // vtable+0x0c { @@ -24,6 +26,11 @@ class Pizzeria : public IsleActor { // SYNTHETIC: LEGO1 0x1000e8d0 // Pizzeria::`scalar deleting destructor' + +private: + undefined4 m_unk0x78; // 0x78 + undefined4 m_unk0x7c; // 0x7c + undefined4 m_unk0x80; // 0x80 }; #endif // PIZZERIA_H diff --git a/LEGO1/lego/legoomni/include/pizzeriastate.h b/LEGO1/lego/legoomni/include/pizzeriastate.h index b4d6b0fe..2146d155 100644 --- a/LEGO1/lego/legoomni/include/pizzeriastate.h +++ b/LEGO1/lego/legoomni/include/pizzeriastate.h @@ -3,8 +3,17 @@ #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 0xb4 +// SIZE 0x58 class PizzeriaState : public LegoState { public: PizzeriaState(); @@ -26,6 +35,10 @@ class PizzeriaState : public LegoState { // SYNTHETIC: LEGO1 0x10017ce0 // PizzeriaState::`scalar deleting destructor' + +private: + Playlist m_unk0x08[5]; // 0x08 + PizzeriaStateStruct m_unk0x44; // 0x44 }; #endif // PIZZERIASTATE_H diff --git a/LEGO1/lego/legoomni/include/raceskel.h b/LEGO1/lego/legoomni/include/raceskel.h index 5b890881..c537173d 100644 --- a/LEGO1/lego/legoomni/include/raceskel.h +++ b/LEGO1/lego/legoomni/include/raceskel.h @@ -11,6 +11,9 @@ class RaceSkel : public LegoAnimActor { public: RaceSkel(); + +private: + undefined4 m_unk0x1c; // 0x1c }; #endif // RACESKEL_H diff --git a/LEGO1/lego/legoomni/src/act3/act3shark.cpp b/LEGO1/lego/legoomni/src/act3/act3shark.cpp index 052382d1..038cf67b 100644 --- a/LEGO1/lego/legoomni/src/act3/act3shark.cpp +++ b/LEGO1/lego/legoomni/src/act3/act3shark.cpp @@ -1,5 +1,7 @@ #include "act3shark.h" +DECOMP_SIZE_ASSERT(Act3Shark, 0x1a8) + // STUB: LEGO1 0x1001a1c0 void Act3Shark::VTable0x74(Matrix4& p_transform) { diff --git a/LEGO1/lego/legoomni/src/act3/act3state.cpp b/LEGO1/lego/legoomni/src/act3/act3state.cpp index 32b45eb3..7061d74f 100644 --- a/LEGO1/lego/legoomni/src/act3/act3state.cpp +++ b/LEGO1/lego/legoomni/src/act3/act3state.cpp @@ -1,5 +1,7 @@ #include "act3state.h" +DECOMP_SIZE_ASSERT(Act3State, 0x0c) + // FUNCTION: LEGO1 0x1000e2f0 MxBool Act3State::VTable0x14() { diff --git a/LEGO1/lego/legoomni/src/actors/act2actor.cpp b/LEGO1/lego/legoomni/src/actors/act2actor.cpp index 52f698af..9626ef7a 100644 --- a/LEGO1/lego/legoomni/src/actors/act2actor.cpp +++ b/LEGO1/lego/legoomni/src/actors/act2actor.cpp @@ -1,5 +1,7 @@ #include "act2actor.h" +DECOMP_SIZE_ASSERT(Act2Actor, 0x1a8) + // STUB: LEGO1 0x100187e0 Act2Actor::Act2Actor() { diff --git a/LEGO1/lego/legoomni/src/actors/act3actor.cpp b/LEGO1/lego/legoomni/src/actors/act3actor.cpp index e8918dec..ff81900b 100644 --- a/LEGO1/lego/legoomni/src/actors/act3actor.cpp +++ b/LEGO1/lego/legoomni/src/actors/act3actor.cpp @@ -1,7 +1,9 @@ #include "act3actor.h" +DECOMP_SIZE_ASSERT(Act3Actor, 0x178) + // STUB: LEGO1 0x1003fa50 Act3Actor::Act3Actor() { - // TODO + m_unk0x1c = 0; } diff --git a/LEGO1/lego/legoomni/src/actors/ambulance.cpp b/LEGO1/lego/legoomni/src/actors/ambulance.cpp index 298b1fb4..168e48ed 100644 --- a/LEGO1/lego/legoomni/src/actors/ambulance.cpp +++ b/LEGO1/lego/legoomni/src/actors/ambulance.cpp @@ -2,7 +2,7 @@ #include "decomp.h" -DECOMP_SIZE_ASSERT(Ambulance, 0x184); +DECOMP_SIZE_ASSERT(Ambulance, 0x184) // FUNCTION: LEGO1 0x10035ee0 Ambulance::Ambulance() diff --git a/LEGO1/lego/legoomni/src/actors/bike.cpp b/LEGO1/lego/legoomni/src/actors/bike.cpp index 4ee38159..14133abd 100644 --- a/LEGO1/lego/legoomni/src/actors/bike.cpp +++ b/LEGO1/lego/legoomni/src/actors/bike.cpp @@ -8,7 +8,7 @@ #include "legoworld.h" #include "misc.h" -DECOMP_SIZE_ASSERT(Bike, 0x164); +DECOMP_SIZE_ASSERT(Bike, 0x164) // FUNCTION: LEGO1 0x10076670 Bike::Bike() diff --git a/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp b/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp index a35c12ef..db86db35 100644 --- a/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp +++ b/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp @@ -1,5 +1,7 @@ #include "bumpbouy.h" +DECOMP_SIZE_ASSERT(BumpBouy, 0x174) + // STUB: LEGO1 0x1000fd00 void BumpBouy::ParseAction(char*) { diff --git a/LEGO1/lego/legoomni/src/actors/doors.cpp b/LEGO1/lego/legoomni/src/actors/doors.cpp index aa7e2031..9799b870 100644 --- a/LEGO1/lego/legoomni/src/actors/doors.cpp +++ b/LEGO1/lego/legoomni/src/actors/doors.cpp @@ -1,5 +1,7 @@ #include "doors.h" +DECOMP_SIZE_ASSERT(Doors, 0x1f8) + // STUB: LEGO1 0x10066100 MxS32 Doors::VTable0x94() { diff --git a/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp b/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp index 70a19138..3331d82f 100644 --- a/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp +++ b/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp @@ -2,7 +2,7 @@ #include "decomp.h" -DECOMP_SIZE_ASSERT(DuneBuggy, 0x16c); +DECOMP_SIZE_ASSERT(DuneBuggy, 0x16c) // FUNCTION: LEGO1 0x10067bb0 DuneBuggy::DuneBuggy() diff --git a/LEGO1/lego/legoomni/src/actors/jetski.cpp b/LEGO1/lego/legoomni/src/actors/jetski.cpp index b68e6b5e..8ac6924b 100644 --- a/LEGO1/lego/legoomni/src/actors/jetski.cpp +++ b/LEGO1/lego/legoomni/src/actors/jetski.cpp @@ -1,6 +1,6 @@ #include "jetski.h" -DECOMP_SIZE_ASSERT(Jetski, 0x164); +DECOMP_SIZE_ASSERT(Jetski, 0x164) // FUNCTION: LEGO1 0x1007e3b0 Jetski::Jetski() diff --git a/LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp b/LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp index 7e7a708b..167fc4ce 100644 --- a/LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp +++ b/LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp @@ -14,6 +14,8 @@ #include "mxnotificationmanager.h" #include "mxtransitionmanager.h" +DECOMP_SIZE_ASSERT(JukeBoxEntity, 0x6c) + // FUNCTION: LEGO1 0x10085bc0 JukeBoxEntity::JukeBoxEntity() { diff --git a/LEGO1/lego/legoomni/src/actors/motorcycle.cpp b/LEGO1/lego/legoomni/src/actors/motorcycle.cpp index 61e8eb3c..68ce7950 100644 --- a/LEGO1/lego/legoomni/src/actors/motorcycle.cpp +++ b/LEGO1/lego/legoomni/src/actors/motorcycle.cpp @@ -1,6 +1,6 @@ #include "motocycle.h" -DECOMP_SIZE_ASSERT(Motocycle, 0x16c); +DECOMP_SIZE_ASSERT(Motocycle, 0x16c) // FUNCTION: LEGO1 0x100357b0 Motocycle::Motocycle() diff --git a/LEGO1/lego/legoomni/src/actors/pizza.cpp b/LEGO1/lego/legoomni/src/actors/pizza.cpp index 1e36a7c4..e21effe1 100644 --- a/LEGO1/lego/legoomni/src/actors/pizza.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizza.cpp @@ -3,7 +3,7 @@ #include "mxmisc.h" #include "mxticklemanager.h" -DECOMP_SIZE_ASSERT(Pizza, 0x9c); +DECOMP_SIZE_ASSERT(Pizza, 0x9c) // FUNCTION: LEGO1 0x10037ef0 Pizza::Pizza() diff --git a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp index 84404f01..b8c47e36 100644 --- a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp @@ -1,5 +1,7 @@ #include "pizzeria.h" +DECOMP_SIZE_ASSERT(Pizzeria, 0x84) + // STUB: LEGO1 0x100179c0 MxResult Pizzeria::Create(MxDSAction& p_dsAction) { diff --git a/LEGO1/lego/legoomni/src/actors/racecar.cpp b/LEGO1/lego/legoomni/src/actors/racecar.cpp index f60beff6..3907a7d0 100644 --- a/LEGO1/lego/legoomni/src/actors/racecar.cpp +++ b/LEGO1/lego/legoomni/src/actors/racecar.cpp @@ -3,7 +3,7 @@ #include "legocontrolmanager.h" #include "misc.h" -DECOMP_SIZE_ASSERT(RaceCar, 0x164); +DECOMP_SIZE_ASSERT(RaceCar, 0x164) // FUNCTION: LEGO1 0x10028200 RaceCar::RaceCar() diff --git a/LEGO1/lego/legoomni/src/actors/radio.cpp b/LEGO1/lego/legoomni/src/actors/radio.cpp index 13c973ed..e21a399f 100644 --- a/LEGO1/lego/legoomni/src/actors/radio.cpp +++ b/LEGO1/lego/legoomni/src/actors/radio.cpp @@ -10,7 +10,7 @@ #include "mxmisc.h" #include "mxnotificationmanager.h" -DECOMP_SIZE_ASSERT(Radio, 0x10); +DECOMP_SIZE_ASSERT(Radio, 0x10) // FUNCTION: LEGO1 0x1002c850 Radio::Radio() diff --git a/LEGO1/lego/legoomni/src/actors/skateboard.cpp b/LEGO1/lego/legoomni/src/actors/skateboard.cpp index 5024c51d..a111c7a7 100644 --- a/LEGO1/lego/legoomni/src/actors/skateboard.cpp +++ b/LEGO1/lego/legoomni/src/actors/skateboard.cpp @@ -4,7 +4,7 @@ #include "mxmisc.h" #include "mxnotificationmanager.h" -DECOMP_SIZE_ASSERT(SkateBoard, 0x168); +DECOMP_SIZE_ASSERT(SkateBoard, 0x168) // FUNCTION: LEGO1 0x1000fd40 SkateBoard::SkateBoard() diff --git a/LEGO1/lego/legoomni/src/actors/towtrack.cpp b/LEGO1/lego/legoomni/src/actors/towtrack.cpp index 673efddc..c99c4f11 100644 --- a/LEGO1/lego/legoomni/src/actors/towtrack.cpp +++ b/LEGO1/lego/legoomni/src/actors/towtrack.cpp @@ -1,6 +1,6 @@ #include "towtrack.h" -DECOMP_SIZE_ASSERT(TowTrack, 0x180); +DECOMP_SIZE_ASSERT(TowTrack, 0x180) // FUNCTION: LEGO1 0x1004c720 TowTrack::TowTrack() diff --git a/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp b/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp index 27baac13..15f511be 100644 --- a/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp +++ b/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp @@ -3,6 +3,8 @@ #include "mxautolock.h" #include "mxomni.h" +DECOMP_SIZE_ASSERT(LegoSoundManager, 0x44) + // FUNCTION: LEGO1 0x100298a0 LegoSoundManager::LegoSoundManager() { diff --git a/LEGO1/lego/legoomni/src/build/buildingentity.cpp b/LEGO1/lego/legoomni/src/build/buildingentity.cpp index 01eb235b..15a2fdfd 100644 --- a/LEGO1/lego/legoomni/src/build/buildingentity.cpp +++ b/LEGO1/lego/legoomni/src/build/buildingentity.cpp @@ -3,6 +3,8 @@ #include "mxmisc.h" #include "mxnotificationmanager.h" +DECOMP_SIZE_ASSERT(BuildingEntity, 0x68) + // FUNCTION: LEGO1 0x10014e20 BuildingEntity::BuildingEntity() { diff --git a/LEGO1/lego/legoomni/src/build/helicopterstate.cpp b/LEGO1/lego/legoomni/src/build/helicopterstate.cpp index 70d71a0c..1a9ca3fa 100644 --- a/LEGO1/lego/legoomni/src/build/helicopterstate.cpp +++ b/LEGO1/lego/legoomni/src/build/helicopterstate.cpp @@ -1 +1,3 @@ #include "helicopterstate.h" + +DECOMP_SIZE_ASSERT(HelicopterState, 0x0c) diff --git a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp index f27a1533..90d06155 100644 --- a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp +++ b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp @@ -1,5 +1,7 @@ #include "legocarbuild.h" +DECOMP_SIZE_ASSERT(LegoCarBuild, 0x34c) + // STUB: LEGO1 0x100226d0 LegoCarBuild::LegoCarBuild() { diff --git a/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp b/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp index 9d87ccf1..46926705 100644 --- a/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp +++ b/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp @@ -1,5 +1,7 @@ #include "legoobjectfactory.h" +#include "act2actor.h" +#include "act2brick.h" #include "carrace.h" #include "decomp.h" #include "dunebuggy.h" @@ -56,8 +58,6 @@ #include "score.h" #include "scorestate.h" #include "skateboard.h" -// #include "act2actor.h" -#include "act2brick.h" // #include "act2genactor.h" #include "act2policestation.h" #include "act3.h" @@ -77,6 +77,7 @@ #include "act1state.h" #include "act3actor.h" #include "act3shark.h" +#include "animstate.h" #include "beachhouseentity.h" #include "bumpbouy.h" #include "carracestate.h" @@ -93,10 +94,9 @@ #include "pizzeria.h" #include "pizzeriastate.h" #include "policeentity.h" +#include "raceskel.h" #include "racestandsentity.h" #include "radiostate.h" -// #include "raceskel.h" -#include "animstate.h" // TODO: Before HospitalState, add all of the different LegoVehicleBuildState's diff --git a/LEGO1/lego/legoomni/src/common/legotextureinfo.cpp b/LEGO1/lego/legoomni/src/common/legotextureinfo.cpp index d1b6d83c..75034536 100644 --- a/LEGO1/lego/legoomni/src/common/legotextureinfo.cpp +++ b/LEGO1/lego/legoomni/src/common/legotextureinfo.cpp @@ -6,7 +6,7 @@ #include "misc/legotexture.h" #include "tgl/d3drm/impl.h" -DECOMP_SIZE_ASSERT(LegoTextureInfo, 0x10); +DECOMP_SIZE_ASSERT(LegoTextureInfo, 0x10) // FUNCTION: LEGO1 0x10065bf0 LegoTextureInfo::LegoTextureInfo() diff --git a/LEGO1/lego/legoomni/src/common/mxtransitionmanager.cpp b/LEGO1/lego/legoomni/src/common/mxtransitionmanager.cpp index e37a738b..b7537d9e 100644 --- a/LEGO1/lego/legoomni/src/common/mxtransitionmanager.cpp +++ b/LEGO1/lego/legoomni/src/common/mxtransitionmanager.cpp @@ -11,7 +11,7 @@ #include "mxticklemanager.h" #include "mxvideopresenter.h" -DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900); +DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900) // GLOBAL: LEGO1 0x100f4378 RECT g_fullScreenRect = {0, 0, 640, 480}; diff --git a/LEGO1/lego/legoomni/src/entity/act2brick.cpp b/LEGO1/lego/legoomni/src/entity/act2brick.cpp index 338d2ae9..97992d0b 100644 --- a/LEGO1/lego/legoomni/src/entity/act2brick.cpp +++ b/LEGO1/lego/legoomni/src/entity/act2brick.cpp @@ -1,5 +1,7 @@ #include "act2brick.h" +DECOMP_SIZE_ASSERT(Act2Brick, 0x194) + // STUB: LEGO1 0x1007a2b0 Act2Brick::Act2Brick() { diff --git a/LEGO1/lego/legoomni/src/entity/act2policestation.cpp b/LEGO1/lego/legoomni/src/entity/act2policestation.cpp index 9116b70a..a8636335 100644 --- a/LEGO1/lego/legoomni/src/entity/act2policestation.cpp +++ b/LEGO1/lego/legoomni/src/entity/act2policestation.cpp @@ -1,5 +1,7 @@ #include "act2policestation.h" +DECOMP_SIZE_ASSERT(Act2PoliceStation, 0x68) + // STUB: LEGO1 0x1004e0e0 MxLong Act2PoliceStation::Notify(MxParam& p_param) { diff --git a/LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp b/LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp index 4f54a6a5..40273e1c 100644 --- a/LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp @@ -3,6 +3,8 @@ #include "legoentity.h" #include "misc.h" +DECOMP_SIZE_ASSERT(LegoActorPresenter, 0x50) + // FUNCTION: LEGO1 0x10076c30 void LegoActorPresenter::ReadyTickle() { diff --git a/LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp b/LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp index 0245e46f..99bfbf46 100644 --- a/LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp @@ -6,7 +6,7 @@ #include "misc.h" #include "realtime/realtime.h" -DECOMP_SIZE_ASSERT(LegoCameraController, 0xc8); +DECOMP_SIZE_ASSERT(LegoCameraController, 0xc8) // FUNCTION: LEGO1 0x10011d50 LegoCameraController::LegoCameraController() diff --git a/LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp b/LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp index 145cc29d..d58f796b 100644 --- a/LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp +++ b/LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp @@ -3,6 +3,8 @@ #include "mxmisc.h" #include "mxvariabletable.h" +DECOMP_SIZE_ASSERT(LegoCarRaceActor, 0x1a0) + // GLOBAL: LEGO1 0x100f7af0 // STRING: LEGO1 0x100f7ae4 const char* g_fuel = "FUEL"; @@ -51,7 +53,7 @@ void LegoCarRaceActor::FUN_10080590() } // STUB: LEGO1 0x10080740 -void LegoCarRaceActor::FUN_10080740() +void LegoCarRaceActor::VTable0x1c() { } diff --git a/LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp b/LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp index b185329f..a755bb2f 100644 --- a/LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp @@ -4,7 +4,7 @@ #include "legovideomanager.h" #include "misc.h" -DECOMP_SIZE_ASSERT(LegoEntityPresenter, 0x50); +DECOMP_SIZE_ASSERT(LegoEntityPresenter, 0x50) // FUNCTION: LEGO1 0x10053440 LegoEntityPresenter::LegoEntityPresenter() diff --git a/LEGO1/lego/legoomni/src/entity/legojetski.cpp b/LEGO1/lego/legoomni/src/entity/legojetski.cpp index c66f9297..d2c99a8f 100644 --- a/LEGO1/lego/legoomni/src/entity/legojetski.cpp +++ b/LEGO1/lego/legoomni/src/entity/legojetski.cpp @@ -3,6 +3,9 @@ #include "mxmisc.h" #include "mxnotificationmanager.h" +DECOMP_SIZE_ASSERT(LegoJetski, 0x1dc) +// Currently wrong due to a missing compiler added top pointer (See also missing code block in constructor) + // FUNCTION: LEGO1 0x100136f0 void LegoJetski::FUN_100136f0(float p_worldSpeed) { diff --git a/LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp b/LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp index e43e1ff5..14fde544 100644 --- a/LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp +++ b/LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp @@ -1,5 +1,13 @@ #include "legojetskiraceactor.h" +DECOMP_SIZE_ASSERT(LegoJetskiRaceActor, 0x1a8) + +// STUB: LEGO1 0x10014220 +void LegoJetskiRaceActor::VTable0x1c() +{ + // TODO +} + // FUNCTION: LEGO1 0x10080ef0 LegoJetskiRaceActor::LegoJetskiRaceActor() { diff --git a/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp index fe2ee2d0..ce1db830 100644 --- a/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp @@ -11,8 +11,8 @@ #include "realtime/realtime.h" #include "roi/legoroi.h" -DECOMP_SIZE_ASSERT(LegoMouseController, 0x20); -DECOMP_SIZE_ASSERT(LegoPointOfViewController, 0x38); +DECOMP_SIZE_ASSERT(LegoMouseController, 0x20) +DECOMP_SIZE_ASSERT(LegoPointOfViewController, 0x38) // GLOBAL: LEGO1 0x100f75ac MxBool g_unk0x100f75ac = FALSE; diff --git a/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp b/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp index e3d93ba8..51c4c25d 100644 --- a/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp @@ -29,6 +29,8 @@ #include +DECOMP_SIZE_ASSERT(LegoWorldPresenter, 0x54) + // GLOBAL: LEGO1 0x100f75d4 MxS32 g_legoWorldPresenterQuality = 1; diff --git a/LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp b/LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp index ebe58c46..142c7466 100644 --- a/LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp +++ b/LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp @@ -1 +1,3 @@ #include "gasstationentity.h" + +DECOMP_SIZE_ASSERT(GasStationEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp b/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp index b4b242ac..ed6f3248 100644 --- a/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp +++ b/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp @@ -1,6 +1,6 @@ #include "gasstationstate.h" -DECOMP_SIZE_ASSERT(GasStationState, 0x24); +DECOMP_SIZE_ASSERT(GasStationState, 0x24) // FUNCTION: LEGO1 0x10005eb0 GasStationState::GasStationState() diff --git a/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp b/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp index e99c3229..ac8c6c6d 100644 --- a/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp +++ b/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp @@ -1,6 +1,6 @@ #include "ambulancemissionstate.h" -DECOMP_SIZE_ASSERT(AmbulanceMissionState, 0x24); +DECOMP_SIZE_ASSERT(AmbulanceMissionState, 0x24) // FUNCTION: LEGO1 0x100373a0 AmbulanceMissionState::AmbulanceMissionState() diff --git a/LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp b/LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp index 8da86464..35e6eb90 100644 --- a/LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp +++ b/LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp @@ -1 +1,3 @@ #include "hospitalentity.h" + +DECOMP_SIZE_ASSERT(HospitalEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp b/LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp index 211cf0b8..0f5689ac 100644 --- a/LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp +++ b/LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp @@ -1 +1,3 @@ #include "infocenterentity.h" + +DECOMP_SIZE_ASSERT(InfoCenterEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp b/LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp index 8efa9807..2af1ddbb 100644 --- a/LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp +++ b/LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp @@ -3,7 +3,7 @@ #include "infocenter.h" #include "infomain_actions.h" -DECOMP_SIZE_ASSERT(InfocenterState, 0x94); +DECOMP_SIZE_ASSERT(InfocenterState, 0x94) // GLOBAL: LEGO1 0x100f76a8 InfomainScript::Script g_exitDialogueAct1[14] = { diff --git a/LEGO1/lego/legoomni/src/infocenter/scorestate.cpp b/LEGO1/lego/legoomni/src/infocenter/scorestate.cpp index bab97719..2d270334 100644 --- a/LEGO1/lego/legoomni/src/infocenter/scorestate.cpp +++ b/LEGO1/lego/legoomni/src/infocenter/scorestate.cpp @@ -1,6 +1,6 @@ #include "scorestate.h" -DECOMP_SIZE_ASSERT(ScoreState, 0x0c); +DECOMP_SIZE_ASSERT(ScoreState, 0x0c) // FUNCTION: LEGO1 0x1000de20 MxBool ScoreState::VTable0x14() diff --git a/LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp b/LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp index f243b92a..a872b95a 100644 --- a/LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp +++ b/LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp @@ -1 +1,3 @@ #include "beachhouseentity.h" + +DECOMP_SIZE_ASSERT(BeachHouseEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp b/LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp index d8245a7d..ab2af63e 100644 --- a/LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp +++ b/LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp @@ -1,5 +1,7 @@ #include "jukeboxstate.h" +DECOMP_SIZE_ASSERT(JukeBoxState, 0x10) + // FUNCTION: LEGO1 0x1000f300 MxBool JukeBoxState::VTable0x14() { diff --git a/LEGO1/lego/legoomni/src/isle/radiostate.cpp b/LEGO1/lego/legoomni/src/isle/radiostate.cpp index 03334f2d..fda29291 100644 --- a/LEGO1/lego/legoomni/src/isle/radiostate.cpp +++ b/LEGO1/lego/legoomni/src/isle/radiostate.cpp @@ -6,6 +6,8 @@ #include "mxmisc.h" #include "mxtimer.h" +DECOMP_SIZE_ASSERT(RadioState, 0x30) + // GLOBAL: LEGO1 0x100f3218 JukeboxScript::Script g_unk0x100f3218[6] = { JukeboxScript::c_sns002ra_Audio, diff --git a/LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp b/LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp index b6abd2c4..dd7b0fb5 100644 --- a/LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp +++ b/LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp @@ -2,4 +2,4 @@ #include "decomp.h" -DECOMP_SIZE_ASSERT(LegoEventNotificationParam, 0x20); +DECOMP_SIZE_ASSERT(LegoEventNotificationParam, 0x20) diff --git a/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp b/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp index 292f1b9e..66320dd1 100644 --- a/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp +++ b/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp @@ -1,5 +1,7 @@ #include "legoanimactor.h" +DECOMP_SIZE_ASSERT(LegoAnimActor, 0x174) + // STUB: LEGO1 0x1001c1f0 MxResult LegoAnimActor::FUN_1001c1f0(float& p_out) { diff --git a/LEGO1/lego/legoomni/src/paths/legoextraactor.cpp b/LEGO1/lego/legoomni/src/paths/legoextraactor.cpp index 914d58b9..677f95c9 100644 --- a/LEGO1/lego/legoomni/src/paths/legoextraactor.cpp +++ b/LEGO1/lego/legoomni/src/paths/legoextraactor.cpp @@ -1,6 +1,8 @@ #include "legoextraactor.h" -// STUB : LEGO1 0x1002a500 +DECOMP_SIZE_ASSERT(LegoExtraActor, 0x1dc) + +// STUB: LEGO1 0x1002a500 LegoExtraActor::LegoExtraActor() { } diff --git a/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp b/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp index 404835eb..bdc0d585 100644 --- a/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp +++ b/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp @@ -1,5 +1,7 @@ #include "legopathcontroller.h" +DECOMP_SIZE_ASSERT(LegoPathController, 0x40) + // STUB: LEGO1 0x10044f40 LegoPathController::LegoPathController() { diff --git a/LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp b/LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp index db02e525..1fb06970 100644 --- a/LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp +++ b/LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp @@ -4,7 +4,7 @@ #include "misc.h" #include "mxautolock.h" -DECOMP_SIZE_ASSERT(LegoPathPresenter, 0x54); +DECOMP_SIZE_ASSERT(LegoPathPresenter, 0x54) // FUNCTION: LEGO1 0x100448d0 LegoPathPresenter::LegoPathPresenter() diff --git a/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp b/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp index 6694e4d8..4160b27e 100644 --- a/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp +++ b/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp @@ -1,5 +1,7 @@ #include "pizzeriastate.h" +DECOMP_SIZE_ASSERT(PizzeriaState, 0x58) + // STUB: LEGO1 0x10017af0 PizzeriaState::PizzeriaState() { diff --git a/LEGO1/lego/legoomni/src/police/policeentity.cpp b/LEGO1/lego/legoomni/src/police/policeentity.cpp index b4492be5..a9bc65cb 100644 --- a/LEGO1/lego/legoomni/src/police/policeentity.cpp +++ b/LEGO1/lego/legoomni/src/police/policeentity.cpp @@ -1 +1,3 @@ #include "policeentity.h" + +DECOMP_SIZE_ASSERT(PoliceEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/race/carrace.cpp b/LEGO1/lego/legoomni/src/race/carrace.cpp index 6230ed78..b45ff7ea 100644 --- a/LEGO1/lego/legoomni/src/race/carrace.cpp +++ b/LEGO1/lego/legoomni/src/race/carrace.cpp @@ -1,6 +1,6 @@ #include "carrace.h" -DECOMP_SIZE_ASSERT(CarRace, 0x154); +DECOMP_SIZE_ASSERT(CarRace, 0x154) // FUNCTION: LEGO1 0x10016a90 CarRace::CarRace() diff --git a/LEGO1/lego/legoomni/src/race/jetskirace.cpp b/LEGO1/lego/legoomni/src/race/jetskirace.cpp index 8f477204..a976724d 100644 --- a/LEGO1/lego/legoomni/src/race/jetskirace.cpp +++ b/LEGO1/lego/legoomni/src/race/jetskirace.cpp @@ -1,5 +1,7 @@ #include "jetskirace.h" +DECOMP_SIZE_ASSERT(JetskiRace, 0x144) + // STUB: LEGO1 0x100162c0 MxResult JetskiRace::Create(MxDSAction& p_dsAction) { diff --git a/LEGO1/lego/legoomni/src/race/legoraceactor.cpp b/LEGO1/lego/legoomni/src/race/legoraceactor.cpp index a2fcd61d..b8259711 100644 --- a/LEGO1/lego/legoomni/src/race/legoraceactor.cpp +++ b/LEGO1/lego/legoomni/src/race/legoraceactor.cpp @@ -1,5 +1,7 @@ #include "legoraceactor.h" +DECOMP_SIZE_ASSERT(LegoRaceActor, 0x180) + // STUB: LEGO1 0x10014190 void LegoRaceActor::VTable0x74(Matrix4& p_transform) { diff --git a/LEGO1/lego/legoomni/src/race/legoracecar.cpp b/LEGO1/lego/legoomni/src/race/legoracecar.cpp index eca8b80c..4f2a82bf 100644 --- a/LEGO1/lego/legoomni/src/race/legoracecar.cpp +++ b/LEGO1/lego/legoomni/src/race/legoracecar.cpp @@ -3,6 +3,8 @@ #include "mxmisc.h" #include "mxnotificationmanager.h" +DECOMP_SIZE_ASSERT(LegoRaceCar, 0x200) + // FUNCTION: LEGO1 0x10012950 LegoRaceCar::LegoRaceCar() { diff --git a/LEGO1/lego/legoomni/src/race/legoracemap.cpp b/LEGO1/lego/legoomni/src/race/legoracemap.cpp index 0c6331cf..9af2bff4 100644 --- a/LEGO1/lego/legoomni/src/race/legoracemap.cpp +++ b/LEGO1/lego/legoomni/src/race/legoracemap.cpp @@ -3,6 +3,8 @@ #include "legocontrolmanager.h" #include "misc.h" +DECOMP_SIZE_ASSERT(LegoRaceMap, 0x1b4) + // FUNCTION: LEGO1 0x1005d0d0 LegoRaceMap::LegoRaceMap() { diff --git a/LEGO1/lego/legoomni/src/race/raceskel.cpp b/LEGO1/lego/legoomni/src/race/raceskel.cpp index e334598c..5ef950e2 100644 --- a/LEGO1/lego/legoomni/src/race/raceskel.cpp +++ b/LEGO1/lego/legoomni/src/race/raceskel.cpp @@ -1,5 +1,7 @@ #include "raceskel.h" +DECOMP_SIZE_ASSERT(RaceSkel, 0x178) + // STUB: LEGO1 0x100719b0 RaceSkel::RaceSkel() { diff --git a/LEGO1/lego/legoomni/src/race/racestandsentity.cpp b/LEGO1/lego/legoomni/src/race/racestandsentity.cpp index 13e65bb4..8b4b7be5 100644 --- a/LEGO1/lego/legoomni/src/race/racestandsentity.cpp +++ b/LEGO1/lego/legoomni/src/race/racestandsentity.cpp @@ -1 +1,3 @@ #include "racestandsentity.h" + +DECOMP_SIZE_ASSERT(RaceStandsEntity, 0x68) diff --git a/LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp b/LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp index b3f386e3..27349fbf 100644 --- a/LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp +++ b/LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp @@ -1,5 +1,7 @@ #include "legounknown100d7c88.h" +DECOMP_SIZE_ASSERT(LegoUnknown100d7c88, 0x18) + // FUNCTION: LEGO1 0x10044e50 LegoUnknown100d7c88::~LegoUnknown100d7c88() { diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index e3b73b4f..d0e05e4c 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -13,7 +13,7 @@ #include "mxvideomanager.h" #include "realtime/realtime.h" -DECOMP_SIZE_ASSERT(LegoAnimPresenter, 0xc0) +DECOMP_SIZE_ASSERT(LegoAnimPresenter, 0xbc) // FUNCTION: LEGO1 0x10068420 LegoAnimPresenter::LegoAnimPresenter() diff --git a/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp index 24bb175b..d759364b 100644 --- a/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp @@ -1,5 +1,7 @@ #include "legocarbuildanimpresenter.h" +DECOMP_SIZE_ASSERT(LegoCarBuildAnimPresenter, 0x150) + // STUB: LEGO1 0x10078400 LegoCarBuildAnimPresenter::LegoCarBuildAnimPresenter() { diff --git a/LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp index 8cfb3499..dea9aa45 100644 --- a/LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp @@ -1,5 +1,7 @@ #include "legoloopinganimpresenter.h" +DECOMP_SIZE_ASSERT(LegoLoopingAnimPresenter, 0xc0) + // STUB: LEGO1 0x1006caa0 void LegoLoopingAnimPresenter::StreamingTickle() { diff --git a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp index 8693bf36..7e76154d 100644 --- a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp @@ -16,6 +16,8 @@ #include "realtime/realtime.h" #include "roi/legoroi.h" +DECOMP_SIZE_ASSERT(LegoModelPresenter, 0x6c) + // GLOBAL: LEGO1 0x100f7ae0 MxS32 g_modelPresenterConfig = 1; diff --git a/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp b/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp index 8b226368..78a5c625 100644 --- a/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp @@ -1,6 +1,6 @@ #include "legophonemepresenter.h" -DECOMP_SIZE_ASSERT(LegoPhonemePresenter, 0x88); +DECOMP_SIZE_ASSERT(LegoPhonemePresenter, 0x88) // FUNCTION: LEGO1 0x1004e180 LegoPhonemePresenter::LegoPhonemePresenter() diff --git a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp index 5b967b29..28b9dde6 100644 --- a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp +++ b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp @@ -11,9 +11,9 @@ #include "tgl/d3drm/impl.h" #include "viewmanager/viewroi.h" -DECOMP_SIZE_ASSERT(LegoVideoManager, 0x590); -DECOMP_SIZE_ASSERT(MxStopWatch, 0x18); -DECOMP_SIZE_ASSERT(MxFrequencyMeter, 0x20); +DECOMP_SIZE_ASSERT(LegoVideoManager, 0x590) +DECOMP_SIZE_ASSERT(MxStopWatch, 0x18) +DECOMP_SIZE_ASSERT(MxFrequencyMeter, 0x20) // FUNCTION: LEGO1 0x1007aa20 LegoVideoManager::LegoVideoManager() diff --git a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp index 056863a4..aef8e00a 100644 --- a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp +++ b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp @@ -8,6 +8,8 @@ #include "mxnotificationmanager.h" #include "mxticklemanager.h" +DECOMP_SIZE_ASSERT(GasStation, 0x128) + // GLOBAL: LEGO1 0x100f0160 undefined4 g_unk0x100f0160 = 3; diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp index ce5cf365..9f6c8353 100644 --- a/LEGO1/lego/legoomni/src/worlds/isle.cpp +++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp @@ -32,7 +32,7 @@ #include -DECOMP_SIZE_ASSERT(Isle, 0x140); +DECOMP_SIZE_ASSERT(Isle, 0x140) // GLOBAL: LEGO1 0x100f1198 undefined4 g_unk0x100f1198 = 0x7f; diff --git a/LEGO1/lego/legoomni/src/worlds/legoact2.cpp b/LEGO1/lego/legoomni/src/worlds/legoact2.cpp index 247cf975..43c05750 100644 --- a/LEGO1/lego/legoomni/src/worlds/legoact2.cpp +++ b/LEGO1/lego/legoomni/src/worlds/legoact2.cpp @@ -1,5 +1,7 @@ #include "legoact2.h" +DECOMP_SIZE_ASSERT(LegoAct2, 0x1154) + // FUNCTION: LEGO1 0x1004fe10 MxBool LegoAct2::VTable0x5c() {