Introduce clang-format (#240)

This commit is contained in:
Christian Semmler
2023-10-24 19:38:27 -04:00
committed by GitHub
parent e928fc9425
commit b449da1fa3
408 changed files with 12434 additions and 12813 deletions

25
.clang-format Normal file
View File

@@ -0,0 +1,25 @@
BasedOnStyle: Microsoft
AccessModifierOffset: -4
AlignAfterOpenBracket: BlockIndent
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BracedInitializerIndentWidth: 4
BraceWrapping:
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterStruct: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
IncludeBlocks: Regroup
IndentAccessModifiers: false
IndentWidth: 4
PointerAlignment: Left
SpaceAfterCStyleCast: true
TabWidth: 4
UseTab: ForContinuationAndIndentation

View File

@@ -1,7 +1,13 @@
root = true root = true
[*.{cpp,h,py,txt,editorconfig}]
[*.{py,txt,editorconfig}]
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.{cpp,h}]
indent_style = tab
tab_width = 4
insert_final_newline = true
trim_trailing_whitespace = true

20
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Format
on: [push, pull_request]
jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run clang-format
run: |
pipx run "clang-format>=17,<18" \
--Werror \
--dry-run \
--style=file \
ISLE/*.cpp ISLE/*.h \
LEGO1/*.cpp LEGO1/*.h \
LEGO1/realtime/*.cpp LEGO1/realtime/*.h

View File

@@ -1,7 +1,7 @@
#include "define.h" #include "define.h"
// 0x410030 // 0x410030
IsleApp *g_isle = 0; IsleApp* g_isle = 0;
// 0x410034 // 0x410034
unsigned char g_mousedown = 0; unsigned char g_mousedown = 0;

View File

@@ -6,7 +6,7 @@
class IsleApp; class IsleApp;
extern IsleApp *g_isle; extern IsleApp* g_isle;
extern int g_closed; extern int g_closed;
// 0x4101c4 // 0x4101c4
#define WNDCLASS_NAME "Lego Island MainNoM App" #define WNDCLASS_NAME "Lego Island MainNoM App"

File diff suppressed because it is too large Load Diff

View File

@@ -1,76 +1,83 @@
#ifndef ISLEAPP_H #ifndef ISLEAPP_H
#define ISLEAPP_H #define ISLEAPP_H
#include <windows.h>
#include "mxtypes.h" #include "mxtypes.h"
#include "mxvideoparam.h" #include "mxvideoparam.h"
class IsleApp #include <windows.h>
{
class IsleApp {
public: public:
IsleApp(); IsleApp();
~IsleApp(); ~IsleApp();
void Close(); void Close();
BOOL SetupLegoOmni(); BOOL SetupLegoOmni();
void SetupVideoFlags(BOOL fullScreen, BOOL flipSurfaces, BOOL backBuffers, void SetupVideoFlags(
BOOL using8bit, BOOL using16bit, BOOL param_6, BOOL param_7, BOOL fullScreen,
BOOL wideViewAngle, char *deviceId); BOOL flipSurfaces,
MxResult SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine); BOOL backBuffers,
BOOL using8bit,
BOOL using16bit,
BOOL param_6,
BOOL param_7,
BOOL wideViewAngle,
char* deviceId
);
MxResult SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine);
BOOL ReadReg(LPCSTR name, LPSTR outValue, DWORD outSize); BOOL ReadReg(LPCSTR name, LPSTR outValue, DWORD outSize);
int ReadRegBool(LPCSTR name, BOOL *out); int ReadRegBool(LPCSTR name, BOOL* out);
int ReadRegInt(LPCSTR name, int *out); int ReadRegInt(LPCSTR name, int* out);
void LoadConfig(); void LoadConfig();
void Tick(BOOL sleepIfNotNextFrame); void Tick(BOOL sleepIfNotNextFrame);
void SetupCursor(WPARAM wParam); void SetupCursor(WPARAM wParam);
// private: // private:
// 0 // 0
LPSTR m_hdPath; LPSTR m_hdPath;
LPSTR m_cdPath; LPSTR m_cdPath;
LPSTR m_deviceId; LPSTR m_deviceId;
LPSTR m_savePath; LPSTR m_savePath;
// 10 // 10
BOOL m_fullScreen; BOOL m_fullScreen;
BOOL m_flipSurfaces; BOOL m_flipSurfaces;
BOOL m_backBuffersInVram; BOOL m_backBuffersInVram;
BOOL m_using8bit; BOOL m_using8bit;
// 20 // 20
BOOL m_using16bit; BOOL m_using16bit;
int m_unk24; int m_unk24;
BOOL m_use3dSound; BOOL m_use3dSound;
BOOL m_useMusic; BOOL m_useMusic;
// 30 // 30
BOOL m_useJoystick; BOOL m_useJoystick;
int m_joystickIndex; int m_joystickIndex;
BOOL m_wideViewAngle; BOOL m_wideViewAngle;
int m_islandQuality; int m_islandQuality;
// 40 // 40
int m_islandTexture; int m_islandTexture;
int m_gameStarted; int m_gameStarted;
MxLong m_frameDelta; MxLong m_frameDelta;
// 4c // 4c
MxVideoParam m_videoParam; MxVideoParam m_videoParam;
// 70 // 70
BOOL m_windowActive; BOOL m_windowActive;
HWND m_windowHandle; HWND m_windowHandle;
BOOL m_drawCursor; BOOL m_drawCursor;
HCURSOR m_cursorArrow; HCURSOR m_cursorArrow;
// 80 // 80
HCURSOR m_cursorBusy; HCURSOR m_cursorBusy;
HCURSOR m_cursorNo; HCURSOR m_cursorNo;
HCURSOR m_cursorCurrent; HCURSOR m_cursorCurrent;
}; };
#endif // ISLEAPP_H #endif // ISLEAPP_H

View File

@@ -3,6 +3,5 @@
// OFFSET: LEGO1 0x100334b0 STUB // OFFSET: LEGO1 0x100334b0 STUB
Act1State::Act1State() Act1State::Act1State()
{ {
// TODO // TODO
} }

View File

@@ -5,23 +5,22 @@
// VTABLE 0x100d7028 // VTABLE 0x100d7028
// SIZE 0x26c // SIZE 0x26c
class Act1State : public LegoState class Act1State : public LegoState {
{
public: public:
Act1State(); Act1State();
// OFFSET: LEGO1 0x100338a0 // OFFSET: LEGO1 0x100338a0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0154 // 0x100f0154
return "Act1State"; return "Act1State";
}; };
// OFFSET: LEGO1 0x100338b0 // OFFSET: LEGO1 0x100338b0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Act1State::ClassName()) || LegoState::IsA(name); return !strcmp(name, Act1State::ClassName()) || LegoState::IsA(name);
}; };
}; };
#endif // ACT1STATE_H #endif // ACT1STATE_H

View File

@@ -3,27 +3,27 @@
// OFFSET: LEGO1 0x1007a2b0 STUB // OFFSET: LEGO1 0x1007a2b0 STUB
Act2Brick::Act2Brick() Act2Brick::Act2Brick()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1007a470 STUB // OFFSET: LEGO1 0x1007a470 STUB
Act2Brick::~Act2Brick() Act2Brick::~Act2Brick()
{ {
// TODO // TODO
} }
// STUB OFFSET: LEGO1 0x1007a8c0 STUB // STUB OFFSET: LEGO1 0x1007a8c0 STUB
MxLong Act2Brick::Notify(MxParam &p) MxLong Act2Brick::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }
// OFFSET: LEGO1 0x1007a7f0 STUB // OFFSET: LEGO1 0x1007a7f0 STUB
MxResult Act2Brick::Tickle() MxResult Act2Brick::Tickle()
{ {
// TODO // TODO
return SUCCESS; return SUCCESS;
} }

View File

@@ -5,28 +5,26 @@
// VTABLE 0x100d9b60 // VTABLE 0x100d9b60
// SIZE 0x194 // SIZE 0x194
class Act2Brick : public LegoPathActor class Act2Brick : public LegoPathActor {
{
public: public:
Act2Brick(); Act2Brick();
virtual ~Act2Brick() override; // vtable+0x0 virtual ~Act2Brick() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x08 virtual MxResult Tickle() override; // vtable+0x08
// OFFSET: LEGO1 0x1007a360 // OFFSET: LEGO1 0x1007a360
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0438 // 0x100f0438
return "Act2Brick"; return "Act2Brick";
} }
// OFFSET: LEGO1 0x1007a370
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(Act2Brick::ClassName(), name) || LegoEntity::IsA(name);
}
// OFFSET: LEGO1 0x1007a370
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(Act2Brick::ClassName(), name) || LegoEntity::IsA(name);
}
}; };
#endif // ACT2BRICK_H #endif // ACT2BRICK_H

View File

@@ -1,9 +1,9 @@
#include "act2policestation.h" #include "act2policestation.h"
// OFFSET: LEGO1 0x1004e0e0 STUB // OFFSET: LEGO1 0x1004e0e0 STUB
MxLong Act2PoliceStation::Notify(MxParam &p) MxLong Act2PoliceStation::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,23 +5,22 @@
// VTABLE 0x100d53a8 // VTABLE 0x100d53a8
// SIZE 0x68 // SIZE 0x68
class Act2PoliceStation : public LegoEntity class Act2PoliceStation : public LegoEntity {
{
public: public:
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
// OFFSET: LEGO1 0x1000e200 // OFFSET: LEGO1 0x1000e200
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03fc // 0x100f03fc
return "Act2PoliceStation"; return "Act2PoliceStation";
} }
// OFFSET: LEGO1 0x1000e210 // OFFSET: LEGO1 0x1000e210
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(name); return !strcmp(name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(name);
} }
}; };
#endif // ACT2POLICESTATION_H #endif // ACT2POLICESTATION_H

View File

@@ -5,11 +5,11 @@ DECOMP_SIZE_ASSERT(Act3, 0x4274)
// OFFSET: LEGO1 0x10072270 STUB // OFFSET: LEGO1 0x10072270 STUB
Act3::Act3() Act3::Act3()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100726a0 STUB // OFFSET: LEGO1 0x100726a0 STUB
Act3::~Act3() Act3::~Act3()
{ {
// TODO // TODO
} }

View File

@@ -5,32 +5,31 @@
// VTABLE 0x100d9628 // VTABLE 0x100d9628
// SIZE 0x4274 // SIZE 0x4274
class Act3 : public LegoWorld class Act3 : public LegoWorld {
{
public: public:
Act3(); Act3();
virtual ~Act3() override; // vtable+00 virtual ~Act3() override; // vtable+00
// OFFSET: LEGO1 0x10072510 // OFFSET: LEGO1 0x10072510
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f013c // 0x100f013c
return "Act3"; return "Act3";
} }
// OFFSET: LEGO1 0x10072520 // OFFSET: LEGO1 0x10072520
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Act3::ClassName()) || LegoWorld::IsA(name); return !strcmp(name, Act3::ClassName()) || LegoWorld::IsA(name);
} }
inline void SetUnkown420c(MxEntity *p_entity) { m_unk420c = p_entity; } inline void SetUnkown420c(MxEntity* p_entity) { m_unk420c = p_entity; }
protected:
undefined m_unkf8[0x4114]; protected:
MxEntity *m_unk420c; undefined m_unkf8[0x4114];
undefined m_unk4210[0x64]; MxEntity* m_unk420c;
undefined m_unk4210[0x64];
}; };
#endif // ACT3_H #endif // ACT3_H

View File

@@ -3,16 +3,14 @@
// FIXME: Uncertain location. There are three vtables which eventually call this // FIXME: Uncertain location. There are three vtables which eventually call this
// class' ClassName() function, but none of them call it directly. // class' ClassName() function, but none of them call it directly.
class Act3Actor class Act3Actor {
{
public: public:
// OFFSET: LEGO1 0x100431b0 // OFFSET: LEGO1 0x100431b0
inline virtual const char *ClassName() override inline virtual const char* ClassName() override
{ {
// 0x100f03ac // 0x100f03ac
return "Act3Actor"; return "Act3Actor";
} }
}; };
#endif // ACT3ACTOR_H #endif // ACT3ACTOR_H

View File

@@ -4,15 +4,14 @@
#include "legoanimactor.h" #include "legoanimactor.h"
// VTABLE 0x100d7920 // VTABLE 0x100d7920
class Act3Shark : public LegoAnimActor class Act3Shark : public LegoAnimActor {
{
public: public:
// OFFSET: LEGO1 0x100430c0 // OFFSET: LEGO1 0x100430c0
inline virtual const char *ClassName() const override inline virtual const char* ClassName() const override
{ {
// 0x100f03a0 // 0x100f03a0
return "Act3Shark"; return "Act3Shark";
} }
}; };
#endif // ACT3SHARK_H #endif // ACT3SHARK_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x1000e2f0 // OFFSET: LEGO1 0x1000e2f0
MxBool Act3State::VTable0x14() MxBool Act3State::VTable0x14()
{ {
return FALSE; return FALSE;
} }

View File

@@ -5,33 +5,28 @@
// VTABLE 0x100d4fc8 // VTABLE 0x100d4fc8
// SIZE 0xc // SIZE 0xc
class Act3State : public LegoState class Act3State : public LegoState {
{
public: public:
inline Act3State() inline Act3State() { m_unk08 = 0; }
{
m_unk08 = 0;
}
// OFFSET: LEGO1 0x1000e300 // OFFSET: LEGO1 0x1000e300
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03f0 // 0x100f03f0
return "Act3State"; return "Act3State";
} }
// OFFSET: LEGO1 0x1000e310 // OFFSET: LEGO1 0x1000e310
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Act3State::ClassName()) || LegoState::IsA(name); return !strcmp(name, Act3State::ClassName()) || LegoState::IsA(name);
} }
virtual MxBool VTable0x14() override; virtual MxBool VTable0x14() override;
private: private:
// FIXME: May be part of LegoState? Uncertain... // FIXME: May be part of LegoState? Uncertain...
MxU32 m_unk08; MxU32 m_unk08;
}; };
#endif // ACT3STATE_H #endif // ACT3STATE_H

View File

@@ -7,15 +7,15 @@ DECOMP_SIZE_ASSERT(Ambulance, 0x184);
// OFFSET: LEGO1 0x10035ee0 // OFFSET: LEGO1 0x10035ee0
Ambulance::Ambulance() Ambulance::Ambulance()
{ {
this->m_unk168 = 0; this->m_unk168 = 0;
this->m_unk16a = -1; this->m_unk16a = -1;
this->m_unk164 = 0; this->m_unk164 = 0;
this->m_unk16c = 0; this->m_unk16c = 0;
this->m_unk174 = -1; this->m_unk174 = -1;
this->m_unk16e = 0; this->m_unk16e = 0;
this->m_unk178 = -1; this->m_unk178 = -1;
this->m_unk170 = 0; this->m_unk170 = 0;
this->m_unk172 = 0; this->m_unk172 = 0;
this->m_unk13c = 40.0; this->m_unk13c = 40.0;
this->m_unk17c = 1.0; this->m_unk17c = 1.0;
} }

View File

@@ -5,37 +5,37 @@
// VTABLE 0x100d71a8 // VTABLE 0x100d71a8
// SIZE 0x184 // SIZE 0x184
class Ambulance : public IslePathActor class Ambulance : public IslePathActor {
{
public: public:
Ambulance(); Ambulance();
// OFFSET: LEGO1 0x10035fa0 // OFFSET: LEGO1 0x10035fa0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03c4 // 0x100f03c4
return "Ambulance"; return "Ambulance";
} }
// OFFSET: LEGO1 0x10035fb0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Ambulance::ClassName()) || IslePathActor::IsA(name);
}
// OFFSET: LEGO1 0x10035fb0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Ambulance::ClassName()) || IslePathActor::IsA(name);
}
private: private:
// TODO: Ambulance fields // TODO: Ambulance fields
undefined m_unk160[4]; undefined m_unk160[4];
MxS32 m_unk164; MxS32 m_unk164;
MxS16 m_unk168; MxS16 m_unk168;
MxS16 m_unk16a; MxS16 m_unk16a;
MxS16 m_unk16c; MxS16 m_unk16c;
MxS16 m_unk16e; MxS16 m_unk16e;
MxS16 m_unk170; MxS16 m_unk170;
MxS16 m_unk172; MxS16 m_unk172;
MxS32 m_unk174; MxS32 m_unk174;
MxS32 m_unk178; MxS32 m_unk178;
MxFloat m_unk17c; MxFloat m_unk17c;
undefined m_unk180[4]; undefined m_unk180[4];
}; };
#endif // AMBULANCE_H #endif // AMBULANCE_H

View File

@@ -5,5 +5,5 @@ DECOMP_SIZE_ASSERT(AmbulanceMissionState, 0x24);
// OFFSET: LEGO1 0x100373a0 STUB // OFFSET: LEGO1 0x100373a0 STUB
AmbulanceMissionState::AmbulanceMissionState() AmbulanceMissionState::AmbulanceMissionState()
{ {
// TODO // TODO
} }

View File

@@ -5,44 +5,48 @@
// VTABLE 0x100d72a0 // VTABLE 0x100d72a0
// SIZE 0x24 // SIZE 0x24
class AmbulanceMissionState : public LegoState class AmbulanceMissionState : public LegoState {
{
public: public:
AmbulanceMissionState(); AmbulanceMissionState();
// OFFSET: LEGO1 0x10037600 // OFFSET: LEGO1 0x10037600
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f00e8 // 0x100f00e8
return "AmbulanceMissionState"; return "AmbulanceMissionState";
} }
// OFFSET: LEGO1 0x10037610 // OFFSET: LEGO1 0x10037610
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, AmbulanceMissionState::ClassName()) || LegoState::IsA(name); return !strcmp(name, AmbulanceMissionState::ClassName()) || LegoState::IsA(name);
} }
inline MxU16 GetColor(MxU8 id)
{
switch (id) {
case 1:
return m_color1;
case 2:
return m_color2;
case 3:
return m_color3;
case 4:
return m_color4;
case 5:
return m_color5;
default:
return 0;
}
}
inline MxU16 GetColor(MxU8 id)
{
switch (id)
{
case 1: return m_color1;
case 2: return m_color2;
case 3: return m_color3;
case 4: return m_color4;
case 5: return m_color5;
default: return 0;
}
}
protected: protected:
undefined m_unk8[0x12]; undefined m_unk8[0x12];
MxU16 m_color1; MxU16 m_color1;
MxU16 m_color2; MxU16 m_color2;
MxU16 m_color3; MxU16 m_color3;
MxU16 m_color4; MxU16 m_color4;
MxU16 m_color5; MxU16 m_color5;
}; };
#endif // AMBULANCEMISSIONSTATE_H #endif // AMBULANCEMISSIONSTATE_H

View File

@@ -3,11 +3,11 @@
// OFFSET: LEGO1 0x10064ff0 STUB // OFFSET: LEGO1 0x10064ff0 STUB
AnimState::AnimState() AnimState::AnimState()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10065150 STUB // OFFSET: LEGO1 0x10065150 STUB
AnimState::~AnimState() AnimState::~AnimState()
{ {
// TODO // TODO
} }

View File

@@ -5,25 +5,23 @@
// VTABLE 0x100d8d80 // VTABLE 0x100d8d80
// SIZE 0x1c // SIZE 0x1c
class AnimState : public LegoState class AnimState : public LegoState {
{
public: public:
AnimState(); AnimState();
virtual ~AnimState() override; // vtable+0x0 virtual ~AnimState() override; // vtable+0x0
// OFFSET: LEGO1 0x10065070 // OFFSET: LEGO1 0x10065070
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0460 // 0x100f0460
return "AnimState"; return "AnimState";
} }
// OFFSET: LEGO1 0x10065080
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, AnimState::ClassName()) || LegoState::IsA(name);
}
// OFFSET: LEGO1 0x10065080
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, AnimState::ClassName()) || LegoState::IsA(name);
}
}; };
#endif // ANIMSTATE_H #endif // ANIMSTATE_H

View File

@@ -1,9 +1,9 @@
#include "beachhouseentity.h" #include "beachhouseentity.h"
// OFFSET: LEGO1 0x100150a0 STUB // OFFSET: LEGO1 0x100150a0 STUB
MxLong BeachHouseEntity::Notify(MxParam &p) MxLong BeachHouseEntity::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,23 +5,22 @@
// VTABLE 0x100d4a18 // VTABLE 0x100d4a18
// SIZE 0x68 // SIZE 0x68
class BeachHouseEntity : public BuildingEntity class BeachHouseEntity : public BuildingEntity {
{
public: public:
virtual MxLong Notify(MxParam &p) override; // vtable+04 virtual MxLong Notify(MxParam& p) override; // vtable+04
// OFFSET: LEGO1 0x1000ee80 // OFFSET: LEGO1 0x1000ee80
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0314 // 0x100f0314
return "BeachHouseEntity"; return "BeachHouseEntity";
} }
// OFFSET: LEGO1 0x1000ee90 // OFFSET: LEGO1 0x1000ee90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(name); return !strcmp(name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(name);
} }
}; };
#endif // BEACHHOUSEENTITY_H #endif // BEACHHOUSEENTITY_H

View File

@@ -5,8 +5,7 @@ DECOMP_SIZE_ASSERT(Bike, 0x164);
// OFFSET: LEGO1 0x10076670 // OFFSET: LEGO1 0x10076670
Bike::Bike() Bike::Bike()
{ {
this->m_unk13c = 20.0; this->m_unk13c = 20.0;
this->m_unk150 = 3.0; this->m_unk150 = 3.0;
this->m_unk148 = 1; this->m_unk148 = 1;
} }

View File

@@ -6,27 +6,26 @@
// VTABLE 0x100d9808 // VTABLE 0x100d9808
// SIZE 0x164 // SIZE 0x164
class Bike : public IslePathActor class Bike : public IslePathActor {
{
public: public:
Bike(); Bike();
// OFFSET: LEGO1 0x100766f0 // OFFSET: LEGO1 0x100766f0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03d0 // 0x100f03d0
return "Bike"; return "Bike";
} }
// OFFSET: LEGO1 0x10076700
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Bike::ClassName()) || IslePathActor::IsA(name);
}
// OFFSET: LEGO1 0x10076700
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Bike::ClassName()) || IslePathActor::IsA(name);
}
private: private:
// TODO: Bike fields // TODO: Bike fields
undefined m_unk160[4]; undefined m_unk160[4];
}; };
#endif // BIKE_H #endif // BIKE_H

View File

@@ -3,11 +3,11 @@
// OFFSET: LEGO1 0x10014e20 STUB // OFFSET: LEGO1 0x10014e20 STUB
BuildingEntity::BuildingEntity() BuildingEntity::BuildingEntity()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10015030 STUB // OFFSET: LEGO1 0x10015030 STUB
BuildingEntity::~BuildingEntity() BuildingEntity::~BuildingEntity()
{ {
// TODO // TODO
} }

View File

@@ -5,24 +5,23 @@
// VTABLE 0x100d5c88 // VTABLE 0x100d5c88
// SIZE <= 0x68, hard to tell because it's always constructed as a derivative // SIZE <= 0x68, hard to tell because it's always constructed as a derivative
class BuildingEntity : public LegoEntity class BuildingEntity : public LegoEntity {
{
public: public:
BuildingEntity(); BuildingEntity();
virtual ~BuildingEntity() override; // vtable+0x0 virtual ~BuildingEntity() override; // vtable+0x0
// OFFSET: LEGO1 0x10014f20 // OFFSET: LEGO1 0x10014f20
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f07e8 // 0x100f07e8
return "BuildingEntity"; return "BuildingEntity";
} }
// OFFSET: LEGO1 0x10014f30 // OFFSET: LEGO1 0x10014f30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, BuildingEntity::ClassName()) || LegoEntity::IsA(name); return !strcmp(name, BuildingEntity::ClassName()) || LegoEntity::IsA(name);
} }
}; };
#endif // BUILDINGENTITY_H #endif // BUILDINGENTITY_H

View File

@@ -5,21 +5,20 @@
#include "mxtypes.h" #include "mxtypes.h"
// VTABLE 0x100d6790 // VTABLE 0x100d6790
class BumpBouy : public LegoAnimActor class BumpBouy : public LegoAnimActor {
{
public: public:
// OFFSET: LEGO1 0x100274e0 // OFFSET: LEGO1 0x100274e0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0394 // 0x100f0394
return "BumpBouy"; return "BumpBouy";
} }
// OFFSET: LEGO1 0x10027500 // OFFSET: LEGO1 0x10027500
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, BumpBouy::ClassName()) || LegoAnimActor::IsA(name); return !strcmp(name, BumpBouy::ClassName()) || LegoAnimActor::IsA(name);
} }
}; };
#endif // BUMPBOUY_H #endif // BUMPBOUY_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x10016a90 STUB // OFFSET: LEGO1 0x10016a90 STUB
CarRace::CarRace() CarRace::CarRace()
{ {
// TODO // TODO
} }

View File

@@ -5,23 +5,22 @@
// VTABLE 0x100d5e50 // VTABLE 0x100d5e50
// SIZE 0x154 // SIZE 0x154
class CarRace : public LegoRace class CarRace : public LegoRace {
{
public: public:
CarRace(); CarRace();
// OFFSET: LEGO1 0x10016b20 // OFFSET: LEGO1 0x10016b20
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0528 // 0x100f0528
return "CarRace"; return "CarRace";
} }
// OFFSET: LEGO1 0x10016b30 // OFFSET: LEGO1 0x10016b30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, CarRace::ClassName()) || LegoRace::IsA(name); return !strcmp(name, CarRace::ClassName()) || LegoRace::IsA(name);
} }
}; };
#endif // CARRACE_H #endif // CARRACE_H

View File

@@ -5,21 +5,20 @@
// VTABLE 0x100d4b70 // VTABLE 0x100d4b70
// SIZE 0x2c // SIZE 0x2c
class CarRaceState : public RaceState class CarRaceState : public RaceState {
{
public: public:
// OFFSET: LEGO1 0x1000dd30 // OFFSET: LEGO1 0x1000dd30
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f009c // 0x100f009c
return "CarRaceState"; return "CarRaceState";
} }
// OFFSET: LEGO1 0x1000dd40 // OFFSET: LEGO1 0x1000dd40
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, CarRaceState::ClassName()) || RaceState::IsA(name); return !strcmp(name, CarRaceState::ClassName()) || RaceState::IsA(name);
} }
}; };
#endif // CARRACESTATE_H #endif // CARRACESTATE_H

View File

@@ -12,15 +12,18 @@
#endif #endif
// DIsable "nonstandard extension used : 'bool'" warning spam // DIsable "nonstandard extension used : 'bool'" warning spam
#pragma warning( disable : 4237 ) #pragma warning(disable : 4237)
// Disable "identifier was truncated to '255' characters" warning. // Disable "identifier was truncated to '255' characters" warning.
// Impossible to avoid this if using STL map or set. // Impossible to avoid this if using STL map or set.
// This removes most (but not all) occurrences of the warning. // This removes most (but not all) occurrences of the warning.
#pragma warning( disable : 4786 ) #pragma warning(disable : 4786)
// To really remove *all* of the warnings, we have to employ the following, // To really remove *all* of the warnings, we have to employ the following,
// obscure workaround from https://www.earthli.com/news/view_article.php?id=376 // obscure workaround from https://www.earthli.com/news/view_article.php?id=376
static class msVC6_4786WorkAround { public: msVC6_4786WorkAround() {} } msVC6_4786WorkAround; static class msVC6_4786WorkAround {
public:
msVC6_4786WorkAround() {}
} msVC6_4786WorkAround;
#define MSVC420_VERSION 1020 #define MSVC420_VERSION 1020

View File

@@ -2,7 +2,11 @@
#define DECOMP_H #define DECOMP_H
#if defined(_MSC_VER) #if defined(_MSC_VER)
#define DECOMP_STATIC_ASSERT(V) namespace { typedef int foo[(V)?1:-1]; } #define DECOMP_STATIC_ASSERT(V) \
namespace \
{ \
typedef int foo[(V) ? 1 : -1]; \
}
#define DECOMP_SIZE_ASSERT(T, S) DECOMP_STATIC_ASSERT(sizeof(T) == S) #define DECOMP_SIZE_ASSERT(T, S) DECOMP_STATIC_ASSERT(sizeof(T) == S)
#else #else
#define DECOMP_STATIC_ASSERT(V) #define DECOMP_STATIC_ASSERT(V)

View File

@@ -1,10 +1,10 @@
#include "define.h" #include "define.h"
// 0x10101eac // 0x10101eac
const char *g_parseExtraTokens = ":;"; const char* g_parseExtraTokens = ":;";
// 0x10101edc // 0x10101edc
const char *g_strWORLD = "WORLD"; const char* g_strWORLD = "WORLD";
// 0x10102040 // 0x10102040
const char *g_strACTION = "ACTION"; const char* g_strACTION = "ACTION";

View File

@@ -1,8 +1,8 @@
#ifndef DEFINE_H #ifndef DEFINE_H
#define DEFINE_H #define DEFINE_H
extern const char *g_parseExtraTokens; extern const char* g_parseExtraTokens;
extern const char *g_strWORLD; extern const char* g_strWORLD;
extern const char *g_strACTION; extern const char* g_strACTION;
#endif // DEFINE_H #endif // DEFINE_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x10091ee0 // OFFSET: LEGO1 0x10091ee0
__declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) __declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{ {
return TRUE; return TRUE;
} }

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d4788 // VTABLE 0x100d4788
// SIZE 0x1f8 // SIZE 0x1f8
class Doors : public LegoPathActor class Doors : public LegoPathActor {
{
public: public:
// OFFSET: LEGO1 0x1000e430 // OFFSET: LEGO1 0x1000e430
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03e8 // 0x100f03e8
return "Doors"; return "Doors";
} }
// OFFSET: LEGO1 0x1000e440 // OFFSET: LEGO1 0x1000e440
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Doors::ClassName()) || LegoPathActor::IsA(name); return !strcmp(name, Doors::ClassName()) || LegoPathActor::IsA(name);
} }
}; };
#endif // DOORS_H #endif // DOORS_H

View File

@@ -7,6 +7,6 @@ DECOMP_SIZE_ASSERT(DuneBuggy, 0x16c);
// OFFSET: LEGO1 0x10067bb0 // OFFSET: LEGO1 0x10067bb0
DuneBuggy::DuneBuggy() DuneBuggy::DuneBuggy()
{ {
this->m_unk13c = 25.0; this->m_unk13c = 25.0;
this->m_unk164 = 1.0; this->m_unk164 = 1.0;
} }

View File

@@ -6,28 +6,28 @@
// VTABLE 0x100d8f98 // VTABLE 0x100d8f98
// SIZE 0x16c // SIZE 0x16c
class DuneBuggy : public IslePathActor class DuneBuggy : public IslePathActor {
{
public: public:
DuneBuggy(); DuneBuggy();
// OFFSET: LEGO1 0x10067c30 // OFFSET: LEGO1 0x10067c30
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0410 // 0x100f0410
return "DuneBuggy"; return "DuneBuggy";
} }
// OFFSET: LEGO1 0x10067c40
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, DuneBuggy::ClassName()) || IslePathActor::IsA(name);
}
// OFFSET: LEGO1 0x10067c40
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, DuneBuggy::ClassName()) || IslePathActor::IsA(name);
}
private: private:
// TODO: Double check DuneBuggy field types // TODO: Double check DuneBuggy field types
undefined4 m_unk160; undefined4 m_unk160;
MxFloat m_unk164; MxFloat m_unk164;
undefined4 m_unk168; undefined4 m_unk168;
}; };
#endif // DUNEBUGGY_H #endif // DUNEBUGGY_H

View File

@@ -3,19 +3,19 @@
// OFFSET: LEGO1 0x10017e90 STUB // OFFSET: LEGO1 0x10017e90 STUB
ElevatorBottom::ElevatorBottom() ElevatorBottom::ElevatorBottom()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10018060 STUB // OFFSET: LEGO1 0x10018060 STUB
ElevatorBottom::~ElevatorBottom() ElevatorBottom::~ElevatorBottom()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10018150 STUB // OFFSET: LEGO1 0x10018150 STUB
MxLong ElevatorBottom::Notify(MxParam &p) MxLong ElevatorBottom::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -4,27 +4,25 @@
#include "legoworld.h" #include "legoworld.h"
// VTABLE 0x100d5f20 // VTABLE 0x100d5f20
class ElevatorBottom : public LegoWorld class ElevatorBottom : public LegoWorld {
{
public: public:
ElevatorBottom(); ElevatorBottom();
virtual ~ElevatorBottom() override; // vtable+0x0 virtual ~ElevatorBottom() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
// OFFSET: LEGO1 0x10017f20 // OFFSET: LEGO1 0x10017f20
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f04ac // 0x100f04ac
return "ElevatorBottom"; return "ElevatorBottom";
} }
// OFFSET: LEGO1 0x10017f30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, ElevatorBottom::ClassName()) || LegoWorld::IsA(name);
}
// OFFSET: LEGO1 0x10017f30
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, ElevatorBottom::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // ELEVATORBOTTOM_H #endif // ELEVATORBOTTOM_H

View File

@@ -3,19 +3,18 @@
// Items related to the Extra string of key-value pairs found in MxOb // Items related to the Extra string of key-value pairs found in MxOb
enum ExtraActionType enum ExtraActionType {
{ ExtraActionType_opendisk = 1,
ExtraActionType_opendisk = 1, ExtraActionType_openram = 2,
ExtraActionType_openram = 2, ExtraActionType_close = 3,
ExtraActionType_close = 3, ExtraActionType_start = 4,
ExtraActionType_start = 4, ExtraActionType_stop = 5,
ExtraActionType_stop = 5, ExtraActionType_run = 6,
ExtraActionType_run = 6, ExtraActionType_exit = 7,
ExtraActionType_exit = 7, ExtraActionType_enable = 8,
ExtraActionType_enable = 8, ExtraActionType_disable = 9,
ExtraActionType_disable = 9, ExtraActionType_notify = 10,
ExtraActionType_notify = 10, ExtraActionType_unknown = 11,
ExtraActionType_unknown = 11,
}; };
#endif // EXTRA_H #endif // EXTRA_H

View File

@@ -3,27 +3,27 @@
// OFFSET: LEGO1 0x100046a0 STUB // OFFSET: LEGO1 0x100046a0 STUB
GasStation::GasStation() GasStation::GasStation()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100048c0 STUB // OFFSET: LEGO1 0x100048c0 STUB
GasStation::~GasStation() GasStation::~GasStation()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10004a60 STUB // OFFSET: LEGO1 0x10004a60 STUB
MxLong GasStation::Notify(MxParam &p) MxLong GasStation::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }
// OFFSET: LEGO1 0x10005c90 STUB // OFFSET: LEGO1 0x10005c90 STUB
MxResult GasStation::Tickle() MxResult GasStation::Tickle()
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -6,28 +6,26 @@
// VTABLE 0x100d4650 // VTABLE 0x100d4650
// SIZE 0x128 // SIZE 0x128
// Radio variable at 0x46, in constructor // Radio variable at 0x46, in constructor
class GasStation : public LegoWorld class GasStation : public LegoWorld {
{
public: public:
GasStation(); GasStation();
virtual ~GasStation() override; // vtable+0x0 virtual ~GasStation() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x10004780 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
inline virtual const char *ClassName() const override // vtable+0x0c virtual MxResult Tickle() override; // vtable+0x8
{
// 0x100f0168
return "GasStation";
}
// OFFSET: LEGO1 0x10004790 // OFFSET: LEGO1 0x10004780
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual const char* ClassName() const override // vtable+0x0c
{ {
return !strcmp(name, GasStation::ClassName()) || LegoWorld::IsA(name); // 0x100f0168
} return "GasStation";
}
// OFFSET: LEGO1 0x10004790
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, GasStation::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // GASSTATION_H #endif // GASSTATION_H

View File

@@ -5,21 +5,20 @@
// VTABLE 0x100d5258 // VTABLE 0x100d5258
// SIZE 0x68 // SIZE 0x68
class GasStationEntity : public BuildingEntity class GasStationEntity : public BuildingEntity {
{
public: public:
// OFFSET: LEGO1 0x1000eb20 // OFFSET: LEGO1 0x1000eb20
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0348 // 0x100f0348
return "GasStationEntity"; return "GasStationEntity";
} }
// OFFSET: LEGO1 0x1000eb30 // OFFSET: LEGO1 0x1000eb30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, GasStationEntity::ClassName()) || BuildingEntity::IsA(name); return !strcmp(name, GasStationEntity::ClassName()) || BuildingEntity::IsA(name);
} }
}; };
#endif // GASSTATIONENTITY_H #endif // GASSTATIONENTITY_H

View File

@@ -5,14 +5,14 @@ DECOMP_SIZE_ASSERT(GasStationState, 0x24);
// OFFSET: LEGO1 0x10005eb0 // OFFSET: LEGO1 0x10005eb0
GasStationState::GasStationState() GasStationState::GasStationState()
{ {
m_unk0x18 = 0; m_unk0x18 = 0;
m_unk0x1a = 0; m_unk0x1a = 0;
m_unk0x1c = 0; m_unk0x1c = 0;
m_unk0x1e = 0; m_unk0x1e = 0;
m_unk0x20 = 0; m_unk0x20 = 0;
undefined4 *unk = m_unk0x08; undefined4* unk = m_unk0x08;
unk[0] = -1; unk[0] = -1;
unk[1] = -1; unk[1] = -1;
unk[2] = -1; unk[2] = -1;
} }

View File

@@ -5,32 +5,31 @@
// VTABLE 0x100d46e0 // VTABLE 0x100d46e0
// SIZE 0x24 // SIZE 0x24
class GasStationState : public LegoState class GasStationState : public LegoState {
{
public: public:
GasStationState(); GasStationState();
// OFFSET: LEGO1 0x100061d0 // OFFSET: LEGO1 0x100061d0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0174 // 0x100f0174
return "GasStationState"; return "GasStationState";
} }
// OFFSET: LEGO1 0x100061e0 // OFFSET: LEGO1 0x100061e0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, GasStationState::ClassName()) || LegoState::IsA(name); return !strcmp(name, GasStationState::ClassName()) || LegoState::IsA(name);
} }
private: private:
undefined4 m_unk0x08[3]; undefined4 m_unk0x08[3];
undefined4 m_unk0x14; undefined4 m_unk0x14;
undefined2 m_unk0x18; undefined2 m_unk0x18;
undefined2 m_unk0x1a; undefined2 m_unk0x1a;
undefined2 m_unk0x1c; undefined2 m_unk0x1c;
undefined2 m_unk0x1e; undefined2 m_unk0x1e;
undefined2 m_unk0x20; undefined2 m_unk0x20;
}; };
#endif // GASSTATIONSTATE_H #endif // GASSTATIONSTATE_H

View File

@@ -6,20 +6,20 @@ DECOMP_SIZE_ASSERT(GifMap, 0x08);
DECOMP_SIZE_ASSERT(GifManagerBase, 0x14); DECOMP_SIZE_ASSERT(GifManagerBase, 0x14);
DECOMP_SIZE_ASSERT(GifManager, 0x30); DECOMP_SIZE_ASSERT(GifManager, 0x30);
GifMapEntry *DAT_100f0100; GifMapEntry* DAT_100f0100;
// OFFSET: LEGO1 0x10001cc0 // OFFSET: LEGO1 0x10001cc0
GifMapEntry *GifMap::FindNode(const char *&string) GifMapEntry* GifMap::FindNode(const char*& string)
{ {
GifMapEntry *ret = m_unk4; GifMapEntry* ret = m_unk4;
GifMapEntry *current = ret->m_parent; GifMapEntry* current = ret->m_parent;
while (current != DAT_100f0100) { while (current != DAT_100f0100) {
if (strcmp(current->m_key, string) <= 0) { if (strcmp(current->m_key, string) <= 0) {
ret = current; ret = current;
current = current->m_right; current = current->m_right;
} }
else else
current = current->m_left; current = current->m_left;
} }
return ret; return ret;
} }

View File

@@ -4,70 +4,66 @@
#include "decomp.h" #include "decomp.h"
#include "mxtypes.h" #include "mxtypes.h"
#include <ddraw.h>
#include <d3drmobj.h> #include <d3drmobj.h>
#include <ddraw.h>
struct GifData struct GifData {
{
public: public:
const char *m_name; const char* m_name;
LPDIRECTDRAWSURFACE m_surface; LPDIRECTDRAWSURFACE m_surface;
LPDIRECTDRAWPALETTE m_palette; LPDIRECTDRAWPALETTE m_palette;
LPDIRECT3DRMTEXTURE2 m_texture; LPDIRECT3DRMTEXTURE2 m_texture;
MxU8 *m_data; MxU8* m_data;
}; };
struct GifMapEntry struct GifMapEntry {
{
public: public:
GifMapEntry *m_right; GifMapEntry* m_right;
GifMapEntry *m_parent; GifMapEntry* m_parent;
GifMapEntry *m_left; GifMapEntry* m_left;
const char *m_key; const char* m_key;
GifData *m_value; GifData* m_value;
}; };
class GifMap class GifMap {
{
public: public:
GifMapEntry *FindNode(const char *&string); GifMapEntry* FindNode(const char*& string);
inline GifData *Get(const char *string) { inline GifData* Get(const char* string)
GifData *ret = NULL; {
GifMapEntry *entry = FindNode(string); GifData* ret = NULL;
if (((m_unk4 == entry || strcmp(string, entry->m_key) > 0) ? m_unk4 : entry) != entry) GifMapEntry* entry = FindNode(string);
ret = entry->m_value; if (((m_unk4 == entry || strcmp(string, entry->m_key) > 0) ? m_unk4 : entry) != entry)
return ret; ret = entry->m_value;
} return ret;
}
undefined4 m_unk0; undefined4 m_unk0;
GifMapEntry *m_unk4; GifMapEntry* m_unk4;
}; };
// VTABLE 0x100d86d4 // VTABLE 0x100d86d4
class GifManagerBase class GifManagerBase {
{
public: public:
// OFFSET: LEGO1 0x1005a310 STUB // OFFSET: LEGO1 0x1005a310 STUB
virtual ~GifManagerBase() {} // vtable+00 virtual ~GifManagerBase() {} // vtable+00
inline GifData *Get(const char *name) { return m_unk8.Get(name); } inline GifData* Get(const char* name) { return m_unk8.Get(name); }
protected: protected:
undefined4 m_unk0; undefined4 m_unk0;
undefined4 m_unk4; undefined4 m_unk4;
GifMap m_unk8; GifMap m_unk8;
}; };
// VTABLE 0x100d86fc // VTABLE 0x100d86fc
class GifManager : public GifManagerBase class GifManager : public GifManagerBase {
{
public: public:
// OFFSET: LEGO1 0x1005a580 STUB // OFFSET: LEGO1 0x1005a580 STUB
virtual ~GifManager() {} // vtable+00 virtual ~GifManager() {} // vtable+00
protected: protected:
undefined m_unk[0x1c]; undefined m_unk[0x1c];
}; };
#endif // GIFMANAGER_H #endif // GIFMANAGER_H

View File

@@ -1,4 +1,5 @@
#include "helicopter.h" #include "helicopter.h"
#include "act3.h" #include "act3.h"
#include "legoanimationmanager.h" #include "legoanimationmanager.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
@@ -12,65 +13,66 @@ DECOMP_SIZE_ASSERT(Helicopter, 0x230)
// OFFSET: LEGO1 0x10001e60 // OFFSET: LEGO1 0x10001e60
Helicopter::Helicopter() Helicopter::Helicopter()
{ {
m_unk13c = 60; m_unk13c = 60;
} }
// OFFSET: LEGO1 0x10003230 // OFFSET: LEGO1 0x10003230
Helicopter::~Helicopter() Helicopter::~Helicopter()
{ {
ControlManager()->Unregister(this); ControlManager()->Unregister(this);
IslePathActor::Destroy(TRUE); IslePathActor::Destroy(TRUE);
} }
// OFFSET: LEGO1 0x100032c0 // OFFSET: LEGO1 0x100032c0
MxResult Helicopter::InitFromMxDSObject(MxDSObject &p_dsObject) MxResult Helicopter::InitFromMxDSObject(MxDSObject& p_dsObject)
{ {
MxResult result = IslePathActor::InitFromMxDSObject(p_dsObject); MxResult result = IslePathActor::InitFromMxDSObject(p_dsObject);
LegoWorld *world = GetCurrentWorld(); LegoWorld* world = GetCurrentWorld();
SetWorld(world); SetWorld(world);
if (world->IsA("Act3")) { if (world->IsA("Act3")) {
((Act3 *)GetWorld())->SetUnkown420c(this); ((Act3*) GetWorld())->SetUnkown420c(this);
} }
world = GetWorld(); world = GetWorld();
if (world) world->VTable0x58(this); if (world)
GetState(); world->VTable0x58(this);
return result; GetState();
return result;
} }
// OFFSET: LEGO1 0x10003320 // OFFSET: LEGO1 0x10003320
void Helicopter::GetState() void Helicopter::GetState()
{ {
m_state = (HelicopterState *)GameState()->GetState("HelicopterState"); m_state = (HelicopterState*) GameState()->GetState("HelicopterState");
if (!m_state) m_state = (HelicopterState *)GameState()->CreateState("HelicopterState"); if (!m_state)
m_state = (HelicopterState*) GameState()->CreateState("HelicopterState");
} }
// OFFSET: LEGO1 0x10003360 // OFFSET: LEGO1 0x10003360
void Helicopter::VTable0xe4() void Helicopter::VTable0xe4()
{ {
if (!GameState()->GetUnknown10()) { if (!GameState()->GetUnknown10()) {
VTable0xe8(0x28, TRUE, 7); VTable0xe8(0x28, TRUE, 7);
} }
IslePathActor::VTable0xe4(); IslePathActor::VTable0xe4();
if (!GameState()->GetUnknown10()) { if (!GameState()->GetUnknown10()) {
GameState()->SetUnknown424(0x3c); GameState()->SetUnknown424(0x3c);
if (GetCurrentVehicle()) { if (GetCurrentVehicle()) {
if (GetCurrentVehicle()->IsA("IslePathActor")) { if (GetCurrentVehicle()->IsA("IslePathActor")) {
((IslePathActor *)GetCurrentVehicle())->VTable0xe8(0x37, TRUE, 7); ((IslePathActor*) GetCurrentVehicle())->VTable0xe8(0x37, TRUE, 7);
} }
} }
} }
m_state->SetUnknown8(0); m_state->SetUnknown8(0);
FUN_1003ee00(m_unk22c, 0x16); FUN_1003ee00(m_unk22c, 0x16);
FUN_1003ee00(m_unk22c, 0x17); FUN_1003ee00(m_unk22c, 0x17);
FUN_1003ee00(m_unk22c, 0x18); FUN_1003ee00(m_unk22c, 0x18);
FUN_1003ee00(m_unk22c, 0x19); FUN_1003ee00(m_unk22c, 0x19);
FUN_1003ee00(m_unk22c, 0x1a); FUN_1003ee00(m_unk22c, 0x1a);
FUN_1003ee00(m_unk22c, 0x1b); FUN_1003ee00(m_unk22c, 0x1b);
FUN_1003ee00(m_unk22c, 0x1c); FUN_1003ee00(m_unk22c, 0x1c);
FUN_1003ee00(m_unk22c, 0x1d); FUN_1003ee00(m_unk22c, 0x1d);
FUN_1003ee00(m_unk22c, 0x1e); FUN_1003ee00(m_unk22c, 0x1e);
FUN_1003ee00(m_unk22c, 0x1f); FUN_1003ee00(m_unk22c, 0x1f);
AnimationManager()->FUN_1005f6d0(TRUE); AnimationManager()->FUN_1005f6d0(TRUE);
ControlManager()->Unregister(this); ControlManager()->Unregister(this);
} }

View File

@@ -7,43 +7,42 @@
// VTABLE 0x100d40f8 // VTABLE 0x100d40f8
// SIZE 0x230 // SIZE 0x230
class Helicopter : public IslePathActor class Helicopter : public IslePathActor {
{
public: public:
Helicopter(); Helicopter();
// OFFSET: LEGO1 0x10003070 // OFFSET: LEGO1 0x10003070
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0130 // 0x100f0130
return "Helicopter"; return "Helicopter";
} }
// OFFSET: LEGO1 0x10003080 // OFFSET: LEGO1 0x10003080
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Helicopter::ClassName()) || IslePathActor::IsA(name); return !strcmp(name, Helicopter::ClassName()) || IslePathActor::IsA(name);
} }
virtual MxResult InitFromMxDSObject(MxDSObject &p_dsObject) override; // vtable+0x18 virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject) override; // vtable+0x18
virtual void VTable0xe4() override; virtual void VTable0xe4() override;
// OFFSET: LEGO1 0x10003210 TEMPLATE // OFFSET: LEGO1 0x10003210 TEMPLATE
// Helicopter::`scalar deleting destructor' // Helicopter::`scalar deleting destructor'
virtual ~Helicopter() override; // vtable+0x0 virtual ~Helicopter() override; // vtable+0x0
protected: protected:
MxMatrixData m_unk160; MxMatrixData m_unk160;
MxMatrixData m_unk1a8; MxMatrixData m_unk1a8;
undefined4 m_unk1f0; undefined4 m_unk1f0;
MxVector4Data m_unk1f4; MxVector4Data m_unk1f4;
MxVector4Data m_unk20c; MxVector4Data m_unk20c;
undefined4 m_unk224; undefined4 m_unk224;
HelicopterState *m_state; HelicopterState* m_state;
MxAtomId m_unk22c; MxAtomId m_unk22c;
private: private:
void GetState(); void GetState();
}; };
#endif // HELICOPTER_H #endif // HELICOPTER_H

View File

@@ -6,25 +6,25 @@
// VTABLE 0x100d5418 // VTABLE 0x100d5418
// SIZE 0xc // SIZE 0xc
class HelicopterState : public LegoState class HelicopterState : public LegoState {
{
public: public:
// OFFSET: LEGO1 0x1000e0d0 // OFFSET: LEGO1 0x1000e0d0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0144 // 0x100f0144
return "HelicopterState"; return "HelicopterState";
} }
// OFFSET: LEGO1 0x1000e0e0 // OFFSET: LEGO1 0x1000e0e0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, HelicopterState::ClassName()) || LegoState::IsA(name); return !strcmp(name, HelicopterState::ClassName()) || LegoState::IsA(name);
} }
inline void SetUnknown8(undefined4 p_unk8) { m_unk8 = p_unk8; } inline void SetUnknown8(undefined4 p_unk8) { m_unk8 = p_unk8; }
protected:
undefined4 m_unk8; protected:
undefined4 m_unk8;
}; };
#endif // HELICOPTERSTATE_H #endif // HELICOPTERSTATE_H

View File

@@ -3,19 +3,19 @@
// OFFSET: LEGO1 0x100822f0 STUB // OFFSET: LEGO1 0x100822f0 STUB
HistoryBook::HistoryBook() HistoryBook::HistoryBook()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100824d0 STUB // OFFSET: LEGO1 0x100824d0 STUB
HistoryBook::~HistoryBook() HistoryBook::~HistoryBook()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10082680 STUB // OFFSET: LEGO1 0x10082680 STUB
MxLong HistoryBook::Notify(MxParam &p) MxLong HistoryBook::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,26 +5,25 @@
// VTABLE 0x100da328 // VTABLE 0x100da328
// SIZE 0x3e4 // SIZE 0x3e4
class HistoryBook : public LegoWorld class HistoryBook : public LegoWorld {
{
public: public:
HistoryBook(); HistoryBook();
virtual ~HistoryBook() override; // vtable+0x0 virtual ~HistoryBook() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
// OFFSET: LEGO1 0x10082390 // OFFSET: LEGO1 0x10082390
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f04bc // 0x100f04bc
return "HistoryBook"; return "HistoryBook";
} }
// OFFSET: LEGO1 0x100823a0 // OFFSET: LEGO1 0x100823a0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, HistoryBook::ClassName()) || LegoWorld::IsA(name); return !strcmp(name, HistoryBook::ClassName()) || LegoWorld::IsA(name);
} }
}; };
#endif // HISTORYBOOK_H #endif // HISTORYBOOK_H

View File

@@ -3,19 +3,19 @@
// OFFSET: LEGO1 0x100745e0 STUB // OFFSET: LEGO1 0x100745e0 STUB
Hospital::Hospital() Hospital::Hospital()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100747f0 STUB // OFFSET: LEGO1 0x100747f0 STUB
Hospital::~Hospital() Hospital::~Hospital()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10074990 STUB // OFFSET: LEGO1 0x10074990 STUB
MxLong Hospital::Notify(MxParam &p) MxLong Hospital::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,27 +5,25 @@
// VTABLE 0x100d9730 // VTABLE 0x100d9730
// SIZE 0x12c // SIZE 0x12c
class Hospital : public LegoWorld class Hospital : public LegoWorld {
{
public: public:
Hospital(); Hospital();
virtual ~Hospital() override; // vtable+0x0 virtual ~Hospital() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x04
// OFFSET: LEGO1 0x100746b0 virtual MxLong Notify(MxParam& p) override; // vtable+0x04
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0490
return "Hospital";
}
// OFFSET: LEGO1 0x100746c0 // OFFSET: LEGO1 0x100746b0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual const char* ClassName() const override // vtable+0x0c
{ {
return !strcmp(name, Hospital::ClassName()) || LegoWorld::IsA(name); // 0x100f0490
} return "Hospital";
}
// OFFSET: LEGO1 0x100746c0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Hospital::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // HOSPITAL_H #endif // HOSPITAL_H

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d5068 // VTABLE 0x100d5068
// SIZE 0x68 // SIZE 0x68
class HospitalEntity : public BuildingEntity class HospitalEntity : public BuildingEntity {
{
public: public:
// OFFSET: LEGO1 0x1000ec40 // OFFSET: LEGO1 0x1000ec40
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0338 // 0x100f0338
return "HospitalEntity"; return "HospitalEntity";
} }
// OFFSET: LEGO1 0x1000ec50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HospitalEntity::ClassName()) || BuildingEntity::IsA(name);
}
// OFFSET: LEGO1 0x1000ec50
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, HospitalEntity::ClassName()) || BuildingEntity::IsA(name);
}
}; };
#endif // HOSPITALENTITY_H #endif // HOSPITALENTITY_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x10076370 STUB // OFFSET: LEGO1 0x10076370 STUB
HospitalState::HospitalState() HospitalState::HospitalState()
{ {
// TODO // TODO
} }

View File

@@ -5,24 +5,22 @@
// VTABLE 0x100d97a0 // VTABLE 0x100d97a0
// SIZE 0x18 // SIZE 0x18
class HospitalState : public LegoState class HospitalState : public LegoState {
{
public: public:
HospitalState(); HospitalState();
// OFFSET: LEGO1 0x10076400 // OFFSET: LEGO1 0x10076400
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0480 // 0x100f0480
return "HospitalState"; return "HospitalState";
} }
// OFFSET: LEGO1 0x10076410
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HospitalState::ClassName()) || LegoState::IsA(name);
}
// OFFSET: LEGO1 0x10076410
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, HospitalState::ClassName()) || LegoState::IsA(name);
}
}; };
#endif // HOSPITALSTATE_H #endif // HOSPITALSTATE_H

View File

@@ -3,27 +3,27 @@
// OFFSET: LEGO1 0x1006ea20 STUB // OFFSET: LEGO1 0x1006ea20 STUB
Infocenter::Infocenter() Infocenter::Infocenter()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1006ec90 STUB // OFFSET: LEGO1 0x1006ec90 STUB
Infocenter::~Infocenter() Infocenter::~Infocenter()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1006ef10 STUB // OFFSET: LEGO1 0x1006ef10 STUB
MxLong Infocenter::Notify(MxParam &p) MxLong Infocenter::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }
// OFFSET: LEGO1 0x10070af0 STUB // OFFSET: LEGO1 0x10070af0 STUB
MxResult Infocenter::Tickle() MxResult Infocenter::Tickle()
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,28 +5,26 @@
// VTABLE 0x100d9338 // VTABLE 0x100d9338
// SIZE 0x1d8 // SIZE 0x1d8
class Infocenter : public LegoWorld class Infocenter : public LegoWorld {
{
public: public:
Infocenter(); Infocenter();
virtual ~Infocenter() override; virtual ~Infocenter() override;
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8 virtual MxResult Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x1006eb40 // OFFSET: LEGO1 0x1006eb40
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f04ec // 0x100f04ec
return "Infocenter"; return "Infocenter";
} }
// OFFSET: LEGO1 0x1006eb50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Infocenter::ClassName()) || LegoWorld::IsA(name);
}
// OFFSET: LEGO1 0x1006eb50
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Infocenter::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // INFOCENTER_H #endif // INFOCENTER_H

View File

@@ -3,19 +3,19 @@
// OFFSET: LEGO1 0x10037730 STUB // OFFSET: LEGO1 0x10037730 STUB
InfocenterDoor::InfocenterDoor() InfocenterDoor::InfocenterDoor()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100378f0 STUB // OFFSET: LEGO1 0x100378f0 STUB
InfocenterDoor::~InfocenterDoor() InfocenterDoor::~InfocenterDoor()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100379e0 STUB // OFFSET: LEGO1 0x100379e0 STUB
MxLong InfocenterDoor::Notify(MxParam &p) MxLong InfocenterDoor::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }

View File

@@ -5,27 +5,25 @@
// VTABLE 0x100d72d8 // VTABLE 0x100d72d8
// SIZE 0xfc // SIZE 0xfc
class InfocenterDoor : public LegoWorld class InfocenterDoor : public LegoWorld {
{
public: public:
InfocenterDoor(); InfocenterDoor();
virtual ~InfocenterDoor(); // vtable+0x0 virtual ~InfocenterDoor(); // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4
// OFFSET: LEGO1 0x100377b0 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f049c
return "InfocenterDoor";
}
// OFFSET: LEGO1 0x100377c0 // OFFSET: LEGO1 0x100377b0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual const char* ClassName() const override // vtable+0x0c
{ {
return !strcmp(name, InfocenterDoor::ClassName()) || LegoWorld::IsA(name); // 0x100f049c
} return "InfocenterDoor";
}
// OFFSET: LEGO1 0x100377c0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, InfocenterDoor::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // INFOCENTERDOOR_H #endif // INFOCENTERDOOR_H

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d4b90 // VTABLE 0x100d4b90
// SIZE 0x68 // SIZE 0x68
class InfoCenterEntity : public BuildingEntity class InfoCenterEntity : public BuildingEntity {
{
public: public:
// OFFSET: LEGO1 0x1000ea00 // OFFSET: LEGO1 0x1000ea00
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f035c // 0x100f035c
return "InfoCenterEntity"; return "InfoCenterEntity";
} }
// OFFSET: LEGO1 0x1000ea10
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(name);
}
// OFFSET: LEGO1 0x1000ea10
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(name);
}
}; };
#endif // INFOCENTERENTITY_H #endif // INFOCENTERENTITY_H

View File

@@ -5,12 +5,11 @@ DECOMP_SIZE_ASSERT(InfocenterState, 0x94);
// OFFSET: LEGO1 0x10071600 STUB // OFFSET: LEGO1 0x10071600 STUB
InfocenterState::InfocenterState() InfocenterState::InfocenterState()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10071920 STUB // OFFSET: LEGO1 0x10071920 STUB
InfocenterState::~InfocenterState() InfocenterState::~InfocenterState()
{ {
// TODO // TODO
} }

View File

@@ -1,64 +1,62 @@
#ifndef INFOCENTERSTATE_H #ifndef INFOCENTERSTATE_H
#define INFOCENTERSTATE_H #define INFOCENTERSTATE_H
#include "legostate.h"
#include "decomp.h" #include "decomp.h"
#include "legostate.h"
// VTABLE 0x100d93a8 // VTABLE 0x100d93a8
// SIZE 0x94 // SIZE 0x94
class InfocenterState : public LegoState class InfocenterState : public LegoState {
{
public: public:
InfocenterState(); InfocenterState();
virtual ~InfocenterState(); virtual ~InfocenterState();
// OFFSET: LEGO1 0x10071840 // OFFSET: LEGO1 0x10071840
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f04dc // 0x100f04dc
return "InfocenterState"; return "InfocenterState";
} }
// OFFSET: LEGO1 0x10071850 // OFFSET: LEGO1 0x10071850
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, InfocenterState::ClassName()) || LegoState::IsA(name); return !strcmp(name, InfocenterState::ClassName()) || LegoState::IsA(name);
} }
inline MxU32 GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; } inline MxU32 GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; }
private: private:
// Members should be renamed with their offsets before use // Members should be renamed with their offsets before use
/* /*
struct UnkStruct struct UnkStruct
{ {
undefined4 unk1; undefined4 unk1;
undefined2 unk2; undefined2 unk2;
undefined2 unk3; undefined2 unk3;
undefined2 unk4; undefined2 unk4;
}; };
undefined2 unk1; undefined2 unk1;
undefined2 unk2; undefined2 unk2;
undefined4 unk3; undefined4 unk3;
undefined4 padding1; undefined4 padding1;
void *unk4; void *unk4;
undefined2 unk5; undefined2 unk5;
undefined2 unk6; undefined2 unk6;
undefined2 unk7; undefined2 unk7;
undefined2 padding2; undefined2 padding2;
void *unk8; void *unk8;
undefined2 unk9; undefined2 unk9;
undefined2 unk10; undefined2 unk10;
undefined2 unk11; undefined2 unk11;
undefined2 padding3; undefined2 padding3;
UnkStruct unk12[6]; UnkStruct unk12[6];
undefined4 unk13; undefined4 unk13;
*/ */
undefined pad[0x70]; undefined pad[0x70];
MxU32 m_buffer[7]; // 0x78 MxU32 m_buffer[7]; // 0x78
}; };
#endif // INFOCENTERSTATE_H #endif // INFOCENTERSTATE_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x10030820 STUB // OFFSET: LEGO1 0x10030820 STUB
Isle::Isle() Isle::Isle()
{ {
// TODO // TODO
} }

View File

@@ -6,23 +6,22 @@
// VTABLE 0x100d6fb8 // VTABLE 0x100d6fb8
// SIZE 0x140 // SIZE 0x140
// Radio at 0x12c // Radio at 0x12c
class Isle : public LegoWorld class Isle : public LegoWorld {
{
public: public:
Isle(); Isle();
// OFFSET: LEGO1 0x10030910 // OFFSET: LEGO1 0x10030910
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0458 // 0x100f0458
return "Isle"; return "Isle";
} }
// OFFSET: LEGO1 0x10030920 // OFFSET: LEGO1 0x10030920
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Isle::ClassName()) || LegoWorld::IsA(name); return !strcmp(name, Isle::ClassName()) || LegoWorld::IsA(name);
} }
}; };
#endif // ISLE_H #endif // ISLE_H

View File

@@ -4,21 +4,20 @@
#include "legoactor.h" #include "legoactor.h"
// VTABLE 0x100d5178 // VTABLE 0x100d5178
class IsleActor : public LegoActor class IsleActor : public LegoActor {
{
public: public:
// OFFSET: LEGO1 0x1000e660 // OFFSET: LEGO1 0x1000e660
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f07dc // 0x100f07dc
return "IsleActor"; return "IsleActor";
} }
// OFFSET: LEGO1 0x1000e670 // OFFSET: LEGO1 0x1000e670
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, IsleActor::ClassName()) || LegoActor::IsA(name); return !strcmp(name, IsleActor::ClassName()) || LegoActor::IsA(name);
} }
}; };
#endif // ISLEACTOR_H #endif // ISLEACTOR_H

View File

@@ -6,68 +6,69 @@ DECOMP_SIZE_ASSERT(IslePathActor, 0x160)
// OFFSET: LEGO1 0x10002df0 STUB // OFFSET: LEGO1 0x10002df0 STUB
void IslePathActor::VTable0xd0() void IslePathActor::VTable0xd0()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002e00 STUB // OFFSET: LEGO1 0x10002e00 STUB
void IslePathActor::VTable0xdc() void IslePathActor::VTable0xdc()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002e70 STUB // OFFSET: LEGO1 0x10002e70 STUB
void IslePathActor::VTable0xcc() void IslePathActor::VTable0xcc()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002e80 STUB // OFFSET: LEGO1 0x10002e80 STUB
void IslePathActor::VTable0xd4() void IslePathActor::VTable0xd4()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002e90 STUB // OFFSET: LEGO1 0x10002e90 STUB
void IslePathActor::VTable0xd8() void IslePathActor::VTable0xd8()
{ {
// TODO // TODO
} }
// End header // End header
// OFFSET: LEGO1 0x1001a200 // OFFSET: LEGO1 0x1001a200
IslePathActor::IslePathActor() IslePathActor::IslePathActor()
{ {
this->m_pLegoWorld = NULL; this->m_pLegoWorld = NULL;
this->m_unk13c = 6.0; this->m_unk13c = 6.0;
this->m_unk15c = 1.0; this->m_unk15c = 1.0;
this->m_unk158 = 0; this->m_unk158 = 0;
} }
// OFFSET: LEGO1 0x1001a280 // OFFSET: LEGO1 0x1001a280
MxResult IslePathActor::InitFromMxDSObject(MxDSObject &p_dsObject) { MxResult IslePathActor::InitFromMxDSObject(MxDSObject& p_dsObject)
return MxEntity::InitFromMxDSObject(p_dsObject); {
return MxEntity::InitFromMxDSObject(p_dsObject);
} }
// OFFSET: LEGO1 0x1001a350 STUB // OFFSET: LEGO1 0x1001a350 STUB
void IslePathActor::VTable0xe0() void IslePathActor::VTable0xe0()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1001a3f0 STUB // OFFSET: LEGO1 0x1001a3f0 STUB
void IslePathActor::VTable0xe4() void IslePathActor::VTable0xe4()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1001b2a0 STUB // OFFSET: LEGO1 0x1001b2a0 STUB
void IslePathActor::VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3) void IslePathActor::VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3)
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1001b5b0 STUB // OFFSET: LEGO1 0x1001b5b0 STUB
void IslePathActor::VTable0xec() void IslePathActor::VTable0xec()
{ {
// TODO // TODO
} }

View File

@@ -7,49 +7,45 @@
// VTABLE 0x100d4398 // VTABLE 0x100d4398
// SIZE 0x160 // SIZE 0x160
class IslePathActor : public LegoPathActor class IslePathActor : public LegoPathActor {
{ public:
public: IslePathActor();
IslePathActor();
// OFFSET: LEGO1 0x10002ea0 // OFFSET: LEGO1 0x10002ea0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0104 // 0x100f0104
return "IslePathActor"; return "IslePathActor";
} }
// OFFSET: LEGO1 0x10002eb0 // OFFSET: LEGO1 0x10002eb0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, IslePathActor::ClassName()) || LegoPathActor::IsA(name); return !strcmp(name, IslePathActor::ClassName()) || LegoPathActor::IsA(name);
} }
// OFFSET: LEGO1 0x10002ff0 TEMPLATE // OFFSET: LEGO1 0x10002ff0 TEMPLATE
// IslePathActor::`scalar deleting destructor' // IslePathActor::`scalar deleting destructor'
inline virtual ~IslePathActor() override inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); }
{
IslePathActor::Destroy(TRUE); virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject) override; // vtable+0x18
} virtual void VTable0xcc(); // vtable+0xcc
virtual void VTable0xd0(); // vtable+0xd0
virtual void VTable0xd4(); // vtable+0xd4
virtual void VTable0xd8(); // vtable+0xd8
virtual void VTable0xdc(); // vtable+0xdc
virtual void VTable0xe0(); // vtable+0xe0
virtual void VTable0xe4(); // vtable+0xe4
virtual void VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3); // vtable+0xe8
virtual void VTable0xec(); // vtable+0xec
inline void SetWorld(LegoWorld* p_world) { m_pLegoWorld = p_world; }
inline LegoWorld* GetWorld() { return m_pLegoWorld; }
virtual MxResult InitFromMxDSObject(MxDSObject &p_dsObject) override; // vtable+0x18
virtual void VTable0xcc(); // vtable+0xcc
virtual void VTable0xd0(); // vtable+0xd0
virtual void VTable0xd4(); // vtable+0xd4
virtual void VTable0xd8(); // vtable+0xd8
virtual void VTable0xdc(); // vtable+0xdc
virtual void VTable0xe0(); // vtable+0xe0
virtual void VTable0xe4(); // vtable+0xe4
virtual void VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3); // vtable+0xe8
virtual void VTable0xec(); // vtable+0xec
inline void SetWorld(LegoWorld *p_world) { m_pLegoWorld = p_world; }
inline LegoWorld *GetWorld() { return m_pLegoWorld; }
private: private:
LegoWorld *m_pLegoWorld; // 0x154 LegoWorld* m_pLegoWorld; // 0x154
MxFloat m_unk158; MxFloat m_unk158;
MxFloat m_unk15c; MxFloat m_unk15c;
}; };
#endif // ISLEPATHACTOR_H #endif // ISLEPATHACTOR_H

View File

@@ -5,7 +5,7 @@ DECOMP_SIZE_ASSERT(Jetski, 0x164);
// OFFSET: LEGO1 0x1007e3b0 // OFFSET: LEGO1 0x1007e3b0
Jetski::Jetski() Jetski::Jetski()
{ {
this->m_unk13c = 25.0; this->m_unk13c = 25.0;
this->m_unk150 = 2.0; this->m_unk150 = 2.0;
this->m_unk148 = 1; this->m_unk148 = 1;
} }

View File

@@ -6,27 +6,26 @@
// VTABLE 0x100d9ec8 // VTABLE 0x100d9ec8
// SIZE 0x164 // SIZE 0x164
class Jetski : public IslePathActor class Jetski : public IslePathActor {
{
public: public:
Jetski(); Jetski();
// OFFSET: LEGO1 0x1007e430 // OFFSET: LEGO1 0x1007e430
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f03d8 // 0x100f03d8
return "Jetski"; return "Jetski";
} }
// OFFSET: LEGO1 0x1007e440
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Jetski::ClassName()) || IslePathActor::IsA(name);
}
// OFFSET: LEGO1 0x1007e440
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Jetski::ClassName()) || IslePathActor::IsA(name);
}
private: private:
// TODO: Jetski fields // TODO: Jetski fields
undefined m_unk160[4]; undefined m_unk160[4];
}; };
#endif // JETSKI_H #endif // JETSKI_H

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d4fe8 // VTABLE 0x100d4fe8
// SIZE 0x144 // SIZE 0x144
class JetskiRace : public LegoRace class JetskiRace : public LegoRace {
{
public: public:
// OFFSET: LEGO1 0x1000daf0
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x100f0530
return "JetskiRace";
}
// OFFSET: LEGO1 0x1000daf0 // OFFSET: LEGO1 0x1000db00
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
// 0x100f0530 return !strcmp(name, JetskiRace::ClassName()) || LegoRace::IsA(name);
return "JetskiRace"; }
}
// OFFSET: LEGO1 0x1000db00
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JetskiRace::ClassName()) || LegoRace::IsA(name);
}
}; };
#endif // JETSKIRACE_H #endif // JETSKIRACE_H

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d4fa8 // VTABLE 0x100d4fa8
// SIZE 0x2c // SIZE 0x2c
class JetskiRaceState : public RaceState class JetskiRaceState : public RaceState {
{
public: public:
// OFFSET: LEGO1 0x1000dc40 // OFFSET: LEGO1 0x1000dc40
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f00ac // 0x100f00ac
return "JetskiRaceState"; return "JetskiRaceState";
} }
// OFFSET: LEGO1 0x1000dc50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JetskiRaceState::ClassName()) || RaceState::IsA(name);
}
// OFFSET: LEGO1 0x1000dc50
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, JetskiRaceState::ClassName()) || RaceState::IsA(name);
}
}; };
#endif // JETSKIRACESTATE_H #endif // JETSKIRACESTATE_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x1005d660 STUB // OFFSET: LEGO1 0x1005d660 STUB
JukeBox::JukeBox() JukeBox::JukeBox()
{ {
// TODO // TODO
} }

View File

@@ -5,24 +5,22 @@
// VTABLE 0x100d8958 // VTABLE 0x100d8958
// SIZE 0x104 // SIZE 0x104
class JukeBox : public LegoWorld class JukeBox : public LegoWorld {
{
public: public:
JukeBox(); JukeBox();
// OFFSET: LEGO1 0x1005d6f0 // OFFSET: LEGO1 0x1005d6f0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f02cc // 0x100f02cc
return "JukeBox"; return "JukeBox";
} }
// OFFSET: LEGO1 0x1005d700 // OFFSET: LEGO1 0x1005d700
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, JukeBox::ClassName()) || LegoWorld::IsA(name); return !strcmp(name, JukeBox::ClassName()) || LegoWorld::IsA(name);
} }
}; };
#endif // JUKEBOX_H #endif // JUKEBOX_H

View File

@@ -3,11 +3,11 @@
// OFFSET: LEGO1 0x10085bc0 STUB // OFFSET: LEGO1 0x10085bc0 STUB
JukeBoxEntity::JukeBoxEntity() JukeBoxEntity::JukeBoxEntity()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10085dd0 STUB // OFFSET: LEGO1 0x10085dd0 STUB
JukeBoxEntity::~JukeBoxEntity() JukeBoxEntity::~JukeBoxEntity()
{ {
// TODO // TODO
} }

View File

@@ -5,25 +5,23 @@
// VTABLE 0x100da8a0 // VTABLE 0x100da8a0
// SIZE 0x6c // SIZE 0x6c
class JukeBoxEntity : public LegoEntity class JukeBoxEntity : public LegoEntity {
{
public: public:
JukeBoxEntity(); JukeBoxEntity();
virtual ~JukeBoxEntity() override; // vtable+0x0 virtual ~JukeBoxEntity() override; // vtable+0x0
// OFFSET: LEGO1 0x10085cc0 // OFFSET: LEGO1 0x10085cc0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f02f0 // 0x100f02f0
return "JukeBoxEntity"; return "JukeBoxEntity";
} }
// OFFSET: LEGO1 0x10085cd0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JukeBoxEntity::ClassName()) || LegoEntity::IsA(name);
}
// OFFSET: LEGO1 0x10085cd0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, JukeBoxEntity::ClassName()) || LegoEntity::IsA(name);
}
}; };
#endif // JUKEBOXENTITY_H #endif // JUKEBOXENTITY_H

View File

@@ -1,6 +1,7 @@
#include "jukeboxstate.h" #include "jukeboxstate.h"
// OFFSET: LEGO1 0x1000f300 // OFFSET: LEGO1 0x1000f300
MxBool JukeBoxState::VTable0x14() { MxBool JukeBoxState::VTable0x14()
return FALSE; {
return FALSE;
} }

View File

@@ -5,24 +5,22 @@
// VTABLE 0x100d4a90 // VTABLE 0x100d4a90
// SIZE 0x10 // SIZE 0x10
class JukeBoxState : public LegoState class JukeBoxState : public LegoState {
{
public: public:
// OFFSET: LEGO1 0x1000f310 // OFFSET: LEGO1 0x1000f310
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f02bc // 0x100f02bc
return "JukeBoxState"; return "JukeBoxState";
} }
// OFFSET: LEGO1 0x1000f320 // OFFSET: LEGO1 0x1000f320
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, JukeBoxState::ClassName()) || LegoState::IsA(name); return !strcmp(name, JukeBoxState::ClassName()) || LegoState::IsA(name);
} }
virtual MxBool VTable0x14() override; // vtable+0x14
virtual MxBool VTable0x14() override; // vtable+0x14
}; };
#endif // JUKEBOXSTATE_H #endif // JUKEBOXSTATE_H

View File

@@ -3,15 +3,14 @@
#include "lego3dview.h" #include "lego3dview.h"
class Lego3DManager class Lego3DManager {
{
public: public:
inline Lego3DView *GetLego3DView() { return this->m_3dView; } inline Lego3DView* GetLego3DView() { return this->m_3dView; }
private: private:
int m_unk00; int m_unk00;
int m_unk04; int m_unk04;
Lego3DView *m_3dView; Lego3DView* m_3dView;
}; };
#endif // LEGO3DMANAGER_H #endif // LEGO3DMANAGER_H

View File

@@ -3,14 +3,13 @@
#include "viewmanager.h" #include "viewmanager.h"
class Lego3DView class Lego3DView {
{
public: public:
inline ViewManager *GetViewManager() { return this->m_viewManager; } inline ViewManager* GetViewManager() { return this->m_viewManager; }
private: private:
char unknown[0x88]; char unknown[0x88];
ViewManager *m_viewManager; ViewManager* m_viewManager;
}; };
#endif // LEGO3DVIEW_H #endif // LEGO3DVIEW_H

View File

@@ -5,21 +5,20 @@
// VTABLE 0x100d52b0 // VTABLE 0x100d52b0
// SIZE 0xa0 // SIZE 0xa0
class Lego3DWavePresenter : public LegoWavePresenter class Lego3DWavePresenter : public LegoWavePresenter {
{
public: public:
// OFFSET: LEGO1 0x1000d890 // OFFSET: LEGO1 0x1000d890
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f058c // 0x100f058c
return "Lego3DWavePresenter"; return "Lego3DWavePresenter";
} }
// OFFSET: LEGO1 0x1000d8a0 // OFFSET: LEGO1 0x1000d8a0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, Lego3DWavePresenter::ClassName()) || MxWavePresenter::IsA(name); return !strcmp(name, Lego3DWavePresenter::ClassName()) || MxWavePresenter::IsA(name);
} }
}; };
#endif // LEGO3DWAVEPRESENTER_H #endif // LEGO3DWAVEPRESENTER_H

View File

@@ -5,22 +5,20 @@
// VTABLE 0x100d4a70 // VTABLE 0x100d4a70
// SIZE 0x10 // SIZE 0x10
class LegoAct2State : public LegoState class LegoAct2State : public LegoState {
{
public: public:
// OFFSET: LEGO1 0x1000df80 // OFFSET: LEGO1 0x1000df80
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0428 // 0x100f0428
return "LegoAct2State"; return "LegoAct2State";
} }
// OFFSET: LEGO1 0x1000df90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAct2State::ClassName()) || LegoState::IsA(name);
}
// OFFSET: LEGO1 0x1000df90
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, LegoAct2State::ClassName()) || LegoState::IsA(name);
}
}; };
#endif // LEGOACT2STATE_H #endif // LEGOACT2STATE_H

View File

@@ -5,21 +5,20 @@
// VTABLE 0x100d5118 // VTABLE 0x100d5118
// SIZE 0x68 // SIZE 0x68
class LegoActionControlPresenter : public MxMediaPresenter class LegoActionControlPresenter : public MxMediaPresenter {
{
public: public:
// OFFSET: LEGO1 0x1000d0e0 // OFFSET: LEGO1 0x1000d0e0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f05bc // 0x100f05bc
return "LegoActionControlPresenter"; return "LegoActionControlPresenter";
} }
// OFFSET: LEGO1 0x1000d0f0 // OFFSET: LEGO1 0x1000d0f0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, LegoActionControlPresenter::ClassName()) || MxMediaPresenter::IsA(name); return !strcmp(name, LegoActionControlPresenter::ClassName()) || MxMediaPresenter::IsA(name);
} }
}; };
#endif // LEGOACTIONCONTROLPRESENTER_H #endif // LEGOACTIONCONTROLPRESENTER_H

View File

@@ -6,37 +6,37 @@ DECOMP_SIZE_ASSERT(LegoActor, 0x78)
// OFFSET: LEGO1 0x10002cc0 STUB // OFFSET: LEGO1 0x10002cc0 STUB
void LegoActor::VTable0x50() void LegoActor::VTable0x50()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002cd0 STUB // OFFSET: LEGO1 0x10002cd0 STUB
void LegoActor::VTable0x54() void LegoActor::VTable0x54()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002ce0 STUB // OFFSET: LEGO1 0x10002ce0 STUB
void LegoActor::VTable0x58() void LegoActor::VTable0x58()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002cf0 STUB // OFFSET: LEGO1 0x10002cf0 STUB
void LegoActor::VTable0x5c() void LegoActor::VTable0x5c()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002d00 STUB // OFFSET: LEGO1 0x10002d00 STUB
void LegoActor::VTable0x60() void LegoActor::VTable0x60()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x10002d10 STUB // OFFSET: LEGO1 0x10002d10 STUB
void LegoActor::VTable0x64() void LegoActor::VTable0x64()
{ {
// TODO // TODO
} }
// End header // End header

View File

@@ -6,34 +6,32 @@
// VTABLE 0x100d6d68 // VTABLE 0x100d6d68
// SIZE 0x78 // SIZE 0x78
class LegoActor : public LegoEntity class LegoActor : public LegoEntity {
{
public: public:
LegoActor(); LegoActor();
// OFFSET: LEGO1 0x1002d210 // OFFSET: LEGO1 0x1002d210
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f0124 // 0x100f0124
return "LegoActor"; return "LegoActor";
} }
// OFFSET: LEGO1 0x1002d220 // OFFSET: LEGO1 0x1002d220
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name); return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name);
} }
virtual void VTable0x50(); // vtable+0x50 virtual void VTable0x50(); // vtable+0x50
virtual void VTable0x54(); // vtable+0x54 virtual void VTable0x54(); // vtable+0x54
virtual void VTable0x58(); // vtable+0x58 virtual void VTable0x58(); // vtable+0x58
virtual void VTable0x5c(); // vtable+0x5c virtual void VTable0x5c(); // vtable+0x5c
virtual void VTable0x60(); // vtable+0x60 virtual void VTable0x60(); // vtable+0x60
virtual void VTable0x64(); // vtable+0x64 virtual void VTable0x64(); // vtable+0x64
private: private:
undefined unk68[0x10]; undefined unk68[0x10];
}; };
#endif // LEGOACTOR_H #endif // LEGOACTOR_H

View File

@@ -5,21 +5,20 @@
// VTABLE 0x100d5320 // VTABLE 0x100d5320
// SIZE 0x50 // SIZE 0x50
class LegoActorPresenter : public LegoEntityPresenter class LegoActorPresenter : public LegoEntityPresenter {
{
public: public:
// OFFSET: LEGO1 0x1000cb10 // OFFSET: LEGO1 0x1000cb10
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f06a4 // 0x100f06a4
return "LegoActorPresenter"; return "LegoActorPresenter";
} }
// OFFSET: LEGO1 0x1000cb20 // OFFSET: LEGO1 0x1000cb20
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, LegoActorPresenter::ClassName()) || LegoEntityPresenter::IsA(name); return !strcmp(name, LegoActorPresenter::ClassName()) || LegoEntityPresenter::IsA(name);
} }
}; };
#endif // LEGOACTORPRESENTER_H #endif // LEGOACTORPRESENTER_H

View File

@@ -3,8 +3,7 @@
#include "legopathactor.h" #include "legopathactor.h"
class LegoAnimActor : public LegoPathActor class LegoAnimActor : public LegoPathActor {
{
public: public:
}; };

View File

@@ -6,45 +6,45 @@ int g_legoAnimationManagerConfig = 1;
// OFFSET: LEGO1 0x1005eb50 // OFFSET: LEGO1 0x1005eb50
void LegoAnimationManager::configureLegoAnimationManager(int param_1) void LegoAnimationManager::configureLegoAnimationManager(int param_1)
{ {
g_legoAnimationManagerConfig = param_1; g_legoAnimationManagerConfig = param_1;
} }
// OFFSET: LEGO1 0x1005eb60 STUB // OFFSET: LEGO1 0x1005eb60 STUB
LegoAnimationManager::LegoAnimationManager() LegoAnimationManager::LegoAnimationManager()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1005ed30 STUB // OFFSET: LEGO1 0x1005ed30 STUB
LegoAnimationManager::~LegoAnimationManager() LegoAnimationManager::~LegoAnimationManager()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1005f130 STUB // OFFSET: LEGO1 0x1005f130 STUB
void LegoAnimationManager::Init() void LegoAnimationManager::Init()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x1005f6d0 STUB // OFFSET: LEGO1 0x1005f6d0 STUB
void LegoAnimationManager::FUN_1005f6d0(MxBool p) void LegoAnimationManager::FUN_1005f6d0(MxBool p)
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100619f0 STUB // OFFSET: LEGO1 0x100619f0 STUB
MxLong LegoAnimationManager::Notify(MxParam &p) MxLong LegoAnimationManager::Notify(MxParam& p)
{ {
// TODO // TODO
return 0; return 0;
} }
// OFFSET: LEGO1 0x10061cc0 STUB // OFFSET: LEGO1 0x10061cc0 STUB
MxResult LegoAnimationManager::Tickle() MxResult LegoAnimationManager::Tickle()
{ {
// TODO // TODO
return SUCCESS; return SUCCESS;
} }

View File

@@ -5,35 +5,33 @@
// VTABLE 0x100d8c18 // VTABLE 0x100d8c18
// SIZE 0x500 // SIZE 0x500
class LegoAnimationManager : public MxCore class LegoAnimationManager : public MxCore {
{
public: public:
LegoAnimationManager(); LegoAnimationManager();
virtual ~LegoAnimationManager() override; // vtable+0x0 virtual ~LegoAnimationManager() override; // vtable+0x0
virtual MxLong Notify(MxParam &p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8 virtual MxResult Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x1005ec80 // OFFSET: LEGO1 0x1005ec80
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f7508 // 0x100f7508
return "LegoAnimationManager"; return "LegoAnimationManager";
} }
// OFFSET: LEGO1 0x1005ec90 // OFFSET: LEGO1 0x1005ec90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10 inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{ {
return !strcmp(name, ClassName()) || MxCore::IsA(name); return !strcmp(name, ClassName()) || MxCore::IsA(name);
} }
void FUN_1005f6d0(MxBool p); void FUN_1005f6d0(MxBool p);
__declspec(dllexport) static void configureLegoAnimationManager(int param_1);
__declspec(dllexport) static void configureLegoAnimationManager(int param_1);
private: private:
void Init(); void Init();
}; };
#endif // LEGOANIMATIONMANAGER_H #endif // LEGOANIMATIONMANAGER_H

View File

@@ -3,5 +3,5 @@
// OFFSET: LEGO1 0x1004a8d0 STUB // OFFSET: LEGO1 0x1004a8d0 STUB
LegoAnimMMPresenter::LegoAnimMMPresenter() LegoAnimMMPresenter::LegoAnimMMPresenter()
{ {
// TODO // TODO
} }

View File

@@ -5,24 +5,22 @@
// VTABLE 0x100d7de8 // VTABLE 0x100d7de8
// SIZE 0x74 // SIZE 0x74
class LegoAnimMMPresenter : public MxCompositePresenter class LegoAnimMMPresenter : public MxCompositePresenter {
{
public: public:
LegoAnimMMPresenter(); LegoAnimMMPresenter();
// OFFSET: LEGO1 0x1004a950 // OFFSET: LEGO1 0x1004a950
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f046c // 0x100f046c
return "LegoAnimMMPresenter"; return "LegoAnimMMPresenter";
} }
// OFFSET: LEGO1 0x1004a960
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(name);
}
// OFFSET: LEGO1 0x1004a960
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(name);
}
}; };
#endif // LEGOANIMMMPRESENTER_H #endif // LEGOANIMMMPRESENTER_H

View File

@@ -3,11 +3,11 @@
// OFFSET: LEGO1 0x10068420 STUB // OFFSET: LEGO1 0x10068420 STUB
LegoAnimPresenter::LegoAnimPresenter() LegoAnimPresenter::LegoAnimPresenter()
{ {
// TODO // TODO
} }
// OFFSET: LEGO1 0x100686f0 STUB // OFFSET: LEGO1 0x100686f0 STUB
void LegoAnimPresenter::Init() void LegoAnimPresenter::Init()
{ {
// TODO // TODO
} }

View File

@@ -4,27 +4,25 @@
#include "mxvideopresenter.h" #include "mxvideopresenter.h"
// VTABLE 0x100d90c8 // VTABLE 0x100d90c8
class LegoAnimPresenter : public MxVideoPresenter class LegoAnimPresenter : public MxVideoPresenter {
{
public: public:
LegoAnimPresenter(); LegoAnimPresenter();
// OFFSET: LEGO1 0x10068530 // OFFSET: LEGO1 0x10068530
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c
{ {
// 0x100f071c // 0x100f071c
return "LegoAnimPresenter"; return "LegoAnimPresenter";
} }
// OFFSET: LEGO1 0x10068540
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(name);
}
// OFFSET: LEGO1 0x10068540
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(name);
}
private: private:
void Init(); void Init();
}; };
#endif // LEGOANIMPRESENTER_H #endif // LEGOANIMPRESENTER_H

Some files were not shown because too many files have changed in this diff Show More