1
0
Fork 0
mirror of https://github.com/isledecomp/isle.git synced 2025-04-08 20:54:23 -04:00

Enforce vtable match ()

* vtable enforce

* Vtable progress

* IslePathActor subclasses

* LegoState subclasses

* LegoWorld subclasses

* Presenter progress

* Remaining presenters

* All but two that need new files

* Merge into vtable branch ()

* Implement MxDisplaySurface::VTable0x44 ()

* Update mxdisplaysurface.cpp

* add arguments to header

* Fix glitched bitmaps

* WIP fixes

* Match

* Fix

* Changes

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implmement PoliceState::VTable0x1c ()

* Implmement PoliceState::VTable0x1c

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implement Lego3DView::Render ()

* Implement Lego3DView::Render

* use MxDouble

* Revert "use MxDouble"

This reverts commit a006b60e20.

* Begin work on Police class ()

* Begin work on Police class

* Use JukeBox::e_policeStation value

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implement MxDisplaySurface::CreateCursorSurface ()

* Update mxdisplaysurface.cpp

* Fixes

* Update legovideomanager.cpp

* Match to 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

---------

Co-authored-by: Misha <106913236+MishaProductions@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>

* Police fix

* Finish

* motocycle lower case

* Update historybook.h

* Update hospitalstate.h

* Update jetski.h

* Update legoinputmanager.h

* Update legolocomotionanimpresenter.h

* Update pizza.h

* Update act3shark.h

* Update ambulancemissionstate.h

* Update bumpbouy.h

* Update doors.h

---------

Co-authored-by: Misha <106913236+MishaProductions@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
This commit is contained in:
MS 2024-01-20 18:04:46 -05:00 committed by GitHub
parent 93012b62f4
commit b5a3c5feea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
136 changed files with 1926 additions and 28 deletions
.github/workflows
CMakeLists.txt
LEGO1/lego/legoomni
include
src

View file

@ -145,6 +145,12 @@ jobs:
run: |
python3 tools/verexp/verexp.py legobin/LEGO1.DLL build/LEGO1.DLL
- name: Check Vtables
shell: bash
run: |
python3 tools/vtable/vtable.py legobin/ISLE.EXE build/ISLE.EXE build/ISLE.PDB .
python3 tools/vtable/vtable.py legobin/LEGO1.DLL build/LEGO1.DLL build/LEGO1.PDB .
- name: Upload Artifact
uses: actions/upload-artifact@master
with:

View file

@ -27,10 +27,12 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/act1/act1state.cpp
LEGO1/lego/legoomni/src/act2/act2brick.cpp
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
LEGO1/lego/legoomni/src/act2/legoact2.cpp
LEGO1/lego/legoomni/src/act2/legoact2state.cpp
LEGO1/lego/legoomni/src/act3/act3.cpp
LEGO1/lego/legoomni/src/act3/act3shark.cpp
LEGO1/lego/legoomni/src/act3/act3state.cpp
LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp
LEGO1/lego/legoomni/src/audio/legocachesound.cpp
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp
@ -63,13 +65,17 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp
LEGO1/lego/legoomni/src/entity/legoanimactor.cpp
LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp
LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp
LEGO1/lego/legoomni/src/entity/legoentity.cpp
LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp
LEGO1/lego/legoomni/src/entity/legojetski.cpp
LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp
LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp
LEGO1/lego/legoomni/src/entity/legopathactor.cpp
LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp
LEGO1/lego/legoomni/src/entity/legorace.cpp
LEGO1/lego/legoomni/src/entity/legoraceactor.cpp
LEGO1/lego/legoomni/src/entity/legoracecar.cpp
LEGO1/lego/legoomni/src/entity/legoworld.cpp
LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp
LEGO1/lego/legoomni/src/gasstation/gasstation.cpp
@ -92,6 +98,7 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp
LEGO1/lego/legoomni/src/isle/bike.cpp
LEGO1/lego/legoomni/src/isle/bumpbouy.cpp
LEGO1/lego/legoomni/src/isle/doors.cpp
LEGO1/lego/legoomni/src/isle/historybook.cpp
LEGO1/lego/legoomni/src/isle/isleactor.cpp
LEGO1/lego/legoomni/src/isle/isle.cpp
@ -128,6 +135,7 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp
LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp
LEGO1/lego/legoomni/src/video/legometerpresenter.cpp
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp

View file

@ -22,6 +22,9 @@ public:
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
};
virtual MxBool SetFlag() override; // vtable+0x18
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
inline MxU32 GetUnknown18() { return m_unk0x18; }
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x21 = p_unk0x21; }

View file

@ -26,6 +26,8 @@ public:
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
}
virtual MxS32 VTable0x94() override; // vtable+0x94
// SYNTHETIC: LEGO1 0x1007a450
// Act2Brick::`scalar deleting destructor'
};

View file

@ -11,6 +11,9 @@ public:
virtual ~Act3() override; // vtable+00
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x10072510
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -24,6 +27,14 @@ public:
return !strcmp(p_name, Act3::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual void VTable0x60() override; // vtable+0x60
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
inline void SetUnkown420c(MxEntity* p_entity) { m_unk0x420c = p_entity; }
inline void SetUnkown4270(MxU32 p_unk0x4270) { m_unk0x4270 = p_unk0x4270; }

View file

@ -7,12 +7,23 @@
class Act3Shark : public LegoAnimActor {
public:
// FUNCTION: LEGO1 0x100430c0
inline virtual const char* ClassName() const override
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f03a0
return "Act3Shark";
}
// FUNCTION: LEGO1 0x1001a130
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, Act3Shark::ClassName()) || LegoAnimActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
// SYNTHETIC: LEGO1 0x10043020
// Act3Shark::`scalar deleting destructor'
};

View file

@ -9,6 +9,9 @@ class Ambulance : public IslePathActor {
public:
Ambulance();
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Tickle() override; // vtable+0x08
// FUNCTION: LEGO1 0x10035fa0
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -22,6 +25,14 @@ public:
return !strcmp(p_name, Ambulance::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x10036130
// Ambulance::`scalar deleting destructor'

View file

@ -22,6 +22,8 @@ public:
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline MxU16 GetColor(MxU8 p_id)
{
switch (p_id) {

View file

@ -23,6 +23,11 @@ public:
return !strcmp(p_name, Bike::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x10076880
// Bike::`scalar deleting destructor'

View file

@ -7,6 +7,8 @@
// VTABLE: LEGO1 0x100d6790
class BumpBouy : public LegoAnimActor {
public:
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
// FUNCTION: LEGO1 0x100274e0
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -20,6 +22,11 @@ public:
return !strcmp(p_name, BumpBouy::ClassName()) || LegoAnimActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
// SYNTHETIC: LEGO1 0x10027490
// BumpBouy::`scalar deleting destructor'
};

View file

@ -23,6 +23,14 @@ public:
return !strcmp(p_name, CarRace::ClassName()) || LegoRace::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x64() override; // vtable+0x64
virtual undefined4 VTable0x6c(undefined4) override; // vtable+0x6c
virtual undefined4 VTable0x70(undefined4) override; // vtable+0x70
virtual undefined4 VTable0x74(undefined4) override; // vtable+0x74
virtual undefined4 VTable0x78(undefined4) override; // vtable+0x78
// SYNTHETIC: LEGO1 0x10016c70
// CarRace::`scalar deleting destructor'

View file

@ -20,6 +20,10 @@ public:
return !strcmp(p_name, Doors::ClassName()) || LegoPathActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxS32 VTable0x94() override; // vtable+0x94
// SYNTHETIC: LEGO1 0x1000e580
// Doors::`scalar deleting destructor'
};

View file

@ -23,6 +23,13 @@ public:
return !strcmp(p_name, DuneBuggy::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x10067dc0
// DuneBuggy::`scalar deleting destructor'

View file

@ -29,6 +29,12 @@ public:
return !strcmp(p_name, GasStation::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x100048a0
// GasStation::`scalar deleting destructor'

View file

@ -22,6 +22,8 @@ public:
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x10006290
// GasStationState::`scalar deleting destructor'

View file

@ -38,8 +38,8 @@ public:
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void VTable0x70(float p_float) override; // vtable+0x70
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8

View file

@ -21,6 +21,9 @@ public:
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
virtual MxBool SetFlag() override; // vtable+0x18
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }
inline MxU32 GetUnkown8() { return m_unk0x8; }

View file

@ -25,6 +25,10 @@ public:
return !strcmp(p_name, HistoryBook::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x64() override; // vtable+0x64
// SYNTHETIC: LEGO1 0x100824b0
// HistoryBook::`scalar deleting destructor'
};

View file

@ -12,6 +12,7 @@ public:
virtual ~Hospital() override; // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Tickle() override; // vtable+0x08
// FUNCTION: LEGO1 0x100746b0
inline virtual const char* ClassName() const override // vtable+0x0c
@ -26,6 +27,12 @@ public:
return !strcmp(p_name, Hospital::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x100747d0
// Hospital::`scalar deleting destructor'

View file

@ -23,6 +23,8 @@ public:
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x100764c0
// HospitalState::`scalar deleting destructor'

View file

@ -6,6 +6,8 @@
// VTABLE: LEGO1 0x100d5178
class IsleActor : public LegoActor {
public:
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
// FUNCTION: LEGO1 0x1000e660
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -18,6 +20,8 @@ public:
{
return !strcmp(p_name, IsleActor::ClassName()) || LegoActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
};
// SYNTHETIC: LEGO1 0x1000e940

View file

@ -17,6 +17,8 @@ public:
// FUNCTION: LEGO1 0x10002e10
inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); } // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
// FUNCTION: LEGO1 0x10002ea0
inline virtual const char* ClassName() const override // vtable+0x0c
{

View file

@ -3,6 +3,7 @@
#include "decomp.h"
#include "islepathactor.h"
#include "mxtype17notificationparam.h"
// VTABLE: LEGO1 0x100d9ec8
// SIZE 0x164
@ -23,6 +24,12 @@ public:
return !strcmp(p_name, Jetski::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam&) override; // vtable+0xd4
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x1007e5c0
// Jetski::`scalar deleting destructor'

View file

@ -10,6 +10,9 @@ class JukeBox : public LegoWorld {
public:
JukeBox();
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x1005d6f0
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -23,6 +26,12 @@ public:
return !strcmp(p_name, JukeBox::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1005d810
// JukeBox::`scalar deleting destructor'
enum JukeBoxScript {

View file

@ -10,6 +10,8 @@ public:
JukeBoxEntity();
virtual ~JukeBoxEntity() override; // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
// FUNCTION: LEGO1 0x10085cc0
inline virtual const char* ClassName() const override // vtable+0x0c
{

View file

@ -20,6 +20,11 @@ public:
return !strcmp(p_name, Lego3DWavePresenter::ClassName()) || MxWavePresenter::IsA(p_name);
}
virtual void StartingTickle() override; // vtable+0x1c
virtual void StreamingTickle() override; // vtable+0x20
virtual MxResult AddToManager() override; // vtable+0x34
virtual void Destroy() override; // vtable+0x38
// SYNTHETIC: LEGO1 0x1000f4b0
// Lego3DWavePresenter::`scalar deleting destructor'
};

View file

@ -3,10 +3,21 @@
#include "legocarraceactor.h"
#include "legopathactor.h"
#include "legoworld.h"
// VTABLE: LEGO1 0x100d82e0
// SIZE 0x1154
class LegoAct2 : public LegoWorld {
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Tickle() override; // vtable+0x08
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual void VTable0x60() override; // vtable+0x60
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1004fe20
// LegoAct2::`scalar deleting destructor'
};

View file

@ -20,6 +20,8 @@ public:
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
// SYNTHETIC: LEGO1 0x1000e040
// LegoAct2State::`scalar deleting destructor'
};

View file

@ -24,6 +24,9 @@ public:
return !strcmp(p_name, LegoActor::ClassName()) || LegoEntity::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
// FUNCTION: LEGO1 0x10002cc0
virtual MxFloat VTable0x50() { return m_unk0x68; } // vtable+0x50
// FUNCTION: LEGO1 0x10002cd0

View file

@ -9,6 +9,8 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
public:
LegoAnimMMPresenter();
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
// FUNCTION: LEGO1 0x1004a950
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -22,6 +24,16 @@ public:
return !strcmp(p_name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(p_name);
}
virtual void ReadyTickle() override; // vtable+0x18
virtual void StartingTickle() override; // vtable+0x1c
virtual void StreamingTickle() override; // vtable+0x20
virtual void RepeatingTickle() override; // vtable+0x24
virtual void DoneTickle() override; // vtable+0x2c
virtual void ParseExtra() override; // vtable+0x30
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
virtual void EndAction() override; // vtable+0x40
virtual void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
// SYNTHETIC: LEGO1 0x1004aa40
// LegoAnimMMPresenter::`scalar deleting destructor'
};

View file

@ -31,7 +31,9 @@ public:
virtual void ReadyTickle() override; // vtable+0x18
virtual void StartingTickle() override; // vtable+0x1c
virtual void StreamingTickle() override; // vtable+0x20
virtual void DoneTickle() override; // vtable+0x2c
virtual void ParseExtra() override; // vtable+0x30
virtual MxResult AddToManager() override; // vtable+0x34
virtual void Destroy() override; // vtable+0x38
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
virtual void EndAction() override; // vtable+0x40

View file

@ -10,6 +10,8 @@ public:
LegoBuildingManager();
virtual ~LegoBuildingManager() override;
virtual MxResult Tickle() override; // vtable+0x08
// FUNCTION: LEGO1 0x1002f930
inline virtual const char* ClassName() const override // vtable+0x0c
{

View file

@ -26,6 +26,12 @@ public:
return !strcmp(p_name, LegoCarBuild::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x10022a60
// LegoCarBuild::`scalar deleting destructor'
};

View file

@ -23,6 +23,12 @@ public:
return !strcmp(p_name, LegoCarBuildAnimPresenter::ClassName()) || LegoAnimPresenter::IsA(p_name);
}
virtual void ReadyTickle() override; // vtable+0x18
virtual void StreamingTickle() override; // vtable+0x20
virtual void RepeatingTickle() override; // vtable+0x24
virtual void EndAction() override; // vtable+0x40
virtual void PutFrame() override; // vtable+0x6c
// SYNTHETIC: LEGO1 0x10078660
// LegoCarBuildAnimPresenter::`scalar deleting destructor'
};

View file

@ -19,6 +19,14 @@ public:
return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoRaceActor::IsA(p_name);
}
virtual void VTable0x68() override; // vtable+0x68
virtual void VTable0x6c() override; // vtable+0x6c
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxS32 VTable0x90() override; // vtable+0x90
virtual MxS32 VTable0x94() override; // vtable+0x94
virtual void VTable0x98() override; // vtable+0x98
virtual void VTable0x9c() override; // vtable+0x9c
// SYNTHETIC: LEGO1 0x10081610
// LegoCarRaceActor::`scalar deleting destructor'
};

View file

@ -10,6 +10,8 @@
// SIZE 0x20
class LegoEventNotificationParam : public MxNotificationParam {
public:
virtual MxNotificationParam* Clone() override; // vtable+0x4
inline LegoEventNotificationParam() : MxNotificationParam(c_notificationType0, NULL) {}
inline LegoEventNotificationParam(
NotificationId p_type,

View file

@ -17,6 +17,10 @@ public:
return "LegoFlcTexturePresenter";
}
virtual void StartingTickle() override; // vtable+0x1c
virtual void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
virtual void PutFrame() override; // vtable+0x6c
// SYNTHETIC: LEGO1 0x1005df00
// LegoFlcTexturePresenter::`scalar deleting destructor'

View file

@ -24,7 +24,12 @@ public:
return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
}
virtual void Destroy() override; // vtable+0x38
virtual void ReadyTickle() override; // vtable+0x18
virtual void StartingTickle() override; // vtable+0x18
virtual MxResult AddToManager() override; // vtable+0x34
virtual void Destroy() override; // vtable+0x38
virtual void EndAction() override; // vtable+0x40
virtual void PutFrame() override; // vtable+0x6c
private:
void Init();

View file

@ -38,6 +38,9 @@ public:
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x1005b8c0
virtual MxResult PutData() override { return SUCCESS; }; // vtable+0x4c
MxResult Create(HWND p_hwnd);
void Destroy();
void CreateAndAcquireKeyboard(HWND p_hwnd);

View file

@ -6,6 +6,8 @@
// VTABLE: LEGO1 0x100d5a40
class LegoJetski : public LegoJetskiRaceActor {
public:
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
// FUNCTION: LEGO1 0x10013e80
inline const char* ClassName() const override // vtable+0xc
{
@ -19,6 +21,14 @@ public:
return !strcmp(p_name, LegoJetski::ClassName()) || LegoJetskiRaceActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
virtual void VTable0x6c() override; // vtable+0x6c
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxS32 VTable0x94() override; // vtable+0x94
virtual void VTable0x98() override; // vtable+0x98
virtual void VTable0x9c() override; // vtable+0x9c
// SYNTHETIC: LEGO1 0x10013e20
// LegoJetski::`scalar deleting destructor'
};

View file

@ -19,6 +19,11 @@ public:
return !strcmp(p_name, LegoJetskiRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
}
virtual void VTable0x6c() override; // vtable+0x6c
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual void VTable0x98() override; // vtable+0x98
virtual void VTable0x9c() override; // vtable+0x9c
// SYNTHETIC: LEGO1 0x10081d40
// LegoJetskiRaceActor::`scalar deleting destructor'
};

View file

@ -18,6 +18,11 @@ public:
return "LegoLoadCacheSoundPresenter";
}
virtual void ReadyTickle() override; // vtable+0x18
virtual void StreamingTickle() override; // vtable+0x20
virtual void DoneTickle() override; // vtable+0x2c
virtual MxResult PutData() override; // vtable+0x4c
private:
void Init();
void Destroy(MxBool p_fromDestructor);

View file

@ -21,6 +21,15 @@ public:
return !strcmp(p_name, ClassName()) || LegoLoopingAnimPresenter::IsA(p_name);
}
virtual void ReadyTickle() override; // vtable+0x18
virtual void StartingTickle() override; // vtable+0x1c
virtual void StreamingTickle() override; // vtable+0x20
virtual MxResult AddToManager() override; // vtable+0x34
virtual void Destroy() override; // vtable+0x38
virtual void EndAction() override; // vtable+0x40
virtual void PutFrame() override; // vtable+0x6c
virtual MxResult VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88
// SYNTHETIC: LEGO1 0x1006cfe0
// LegoLocomotionAnimPresenter::`scalar deleting destructor'

View file

@ -19,6 +19,9 @@ public:
{
return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
}
virtual void StreamingTickle() override; // vtable+0x20
virtual void PutFrame() override; // vtable+0x6c
};
// SYNTHETIC: LEGO1 0x1006d000

View file

@ -37,7 +37,8 @@ public:
);
LegoNavController();
virtual ~LegoNavController() override; // vtable+0x0
virtual ~LegoNavController() override; // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
// FUNCTION: LEGO1 0x10054b80
inline const char* ClassName() const override // vtable+0xc

View file

@ -20,6 +20,10 @@ public:
return !strcmp(p_name, LegoPartPresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
}
virtual void ReadyTickle() override; // vtable+0x18
virtual MxResult AddToManager() override; // vtable+0x34
virtual void Destroy() override; // vtable+0x38
__declspec(dllexport) static void configureLegoPartPresenter(MxS32, MxS32);
// SYNTHETIC: LEGO1 0x1000d060

View file

@ -25,6 +25,7 @@ public:
return !strcmp(p_name, LegoPathActor::ClassName()) || LegoActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void VTable0x68(); // vtable+0x68
virtual void VTable0x6c(); // vtable+0x6c
virtual void VTable0x70(float p_float); // vtable+0x70

View file

@ -20,6 +20,11 @@ public:
return "LegoPhonemePresenter";
}
virtual void StartingTickle() override; // vtable+0x1c
virtual void EndAction() override; // vtable+0x40
virtual void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
virtual void PutFrame() override; // vtable+0x6c
// SYNTHETIC: LEGO1 0x1004e320
// LegoPhonemePresenter::`scalar deleting destructor'

View file

@ -2,6 +2,7 @@
#define LEGORACEACTOR_H
#include "legoanimactor.h"
#include "realtime/matrix.h"
// VTABLE: LEGO1 0x100d5b88
class LegoRaceActor : public LegoAnimActor {
@ -19,6 +20,14 @@ public:
return !strcmp(p_name, LegoRaceActor::ClassName()) || LegoAnimActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
virtual void VTable0x68() override; // vtable+0x68
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
virtual MxS32 VTable0x90() override; // vtable+0x90
virtual MxS32 VTable0x94() override; // vtable+0x94
// SYNTHETIC: LEGO1 0x10014ab0
// LegoRaceActor::`scalar deleting destructor'
};

View file

@ -8,6 +8,8 @@
// SIZE 0x200
class LegoRaceCar : public LegoCarRaceActor {
public:
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
// FUNCTION: LEGO1 0x10014290
inline const char* ClassName() const override // vtable+0xc
{
@ -21,6 +23,14 @@ public:
return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
}
virtual void ParseAction(char*) override; // vtable+0x20
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
virtual void VTable0x6c() override; // vtable+0x6c
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxS32 VTable0x94() override; // vtable+0x94
virtual void VTable0x98() override; // vtable+0x98
virtual void VTable0x9c() override; // vtable+0x9c
// SYNTHETIC: LEGO1 0x10014230
// LegoRaceCar::`scalar deleting destructor'
};

View file

@ -23,6 +23,8 @@ public:
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x100260a0
// LegoVehicleBuildState::`scalar deleting destructor'

View file

@ -32,7 +32,7 @@ public:
virtual MxResult RealizePalette(MxPalette*) override; // vtable+0x30
virtual void UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height) override; // vtable+0x34
virtual void VTable0x38(undefined4, undefined4); // vtable+0x38
// FUNCTION: LGEO1 0x1007ab10
// FUNCTION: LEGO1 0x1007ab10
virtual LegoUnknown100d9d00* VTable0x3c() { return m_unk0x100d9d00; } // vtable+0x3c
void SetSkyColor(float p_red, float p_green, float p_blue);

View file

@ -23,6 +23,13 @@ public:
return !strcmp(p_name, Motocycle::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x100359d0
// Motocycle::`scalar deleting destructor'

View file

@ -15,21 +15,23 @@ public:
Pizza();
virtual ~Pizza() override;
virtual MxResult Tickle() override; // vtable+08
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x10037f90
inline const char* ClassName() const // vtable+0c
inline const char* ClassName() const // vtable+0xc
{
// STRING: LEGO1 0x100f038c
return "Pizza";
}
// FUNCTION: LEGO1 0x10037fa0
inline MxBool IsA(const char* p_name) const override // vtable+10
inline MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, Pizza::ClassName()) || IsleActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
// SYNTHETIC: LEGO1 0x100380e0
// Pizza::`scalar deleting destructor'

View file

@ -28,6 +28,8 @@ public:
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
// SYNTHETIC: LEGO1 0x10039350

View file

@ -20,6 +20,8 @@ public:
return !strcmp(p_name, Pizzeria::ClassName()) || IsleActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
// SYNTHETIC: LEGO1 0x1000e8d0
// Pizzeria::`scalar deleting destructor'
};

View file

@ -22,6 +22,8 @@ public:
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x10017ce0
// PizzeriaState::`scalar deleting destructor'
};

View file

@ -30,11 +30,14 @@ public:
return !strcmp(p_name, Police::ClassName()) || LegoWorld::IsA(p_name);
}
// SYNTHETIC: LEGO1 0x1005e300
// Police::`scalar deleting destructor'
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1005e300
// Police::`scalar deleting destructor'
private:
Radio m_radio; // 0xf8

View file

@ -23,11 +23,11 @@ public:
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x1005e920
// PoliceState::`scalar deleting destructor'
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1C
private:
undefined4 m_unk0x8; // 0x8
undefined4 m_unk0xc; // 0xc

View file

@ -24,6 +24,9 @@ public:
return !strcmp(p_name, RaceCar::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual MxU32 VTable0xcc() override; // vtable+0xcc
// SYNTHETIC: LEGO1 0x10028400
// RaceCar::`scalar deleting destructor'

View file

@ -6,6 +6,19 @@
// VTABLE: LEGO1 0x100d48a8
// SIZE 0x68
class RaceStandsEntity : public BuildingEntity {
// FUNCTION: LEGO1 0x1000efa0
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0300
return "RaceStandsEntity";
}
// FUNCTION: LEGO1 0x1000efb0
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
}
// SYNTHETIC: LEGO1 0x1000f9e0
// RaceStandsEntity::`scalar deleting destructor'
};

View file

@ -30,6 +30,8 @@ public:
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
// SYNTHETIC: LEGO1 0x100160d0

View file

@ -10,6 +10,8 @@ public:
Radio();
virtual ~Radio() override;
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
// FUNCTION: LEGO1 0x1002c8e0
inline virtual const char* ClassName() const override // vtable+0x0c
{

View file

@ -22,6 +22,8 @@ public:
return !strcmp(p_name, RadioState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
// SYNTHETIC: LEGO1 0x1002d020
// RadioState::`scalar deleting destructor'
};

View file

@ -23,6 +23,12 @@ public:
return !strcmp(p_name, SkateBoard::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd0() override; // vtable+0xd0
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x1000ff60
// SkateBoard::`scalar deleting destructor'

View file

@ -23,6 +23,15 @@ public:
return !strcmp(p_name, TowTrack::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x70(float p_float) override; // vtable+0x70
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
virtual MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x1004c950
// TowTrack::`scalar deleting destructor'

View file

@ -13,6 +13,20 @@ Act1State::Act1State()
m_unk0x1c = 1;
}
// STUB: LEGO1 0x10033ac0
MxResult Act1State::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100346d0
MxBool Act1State::SetFlag()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x10034d00
void Act1State::FUN_10034d00()
{

View file

@ -12,6 +12,13 @@ Act2Brick::~Act2Brick()
// TODO
}
// STUB: LEGO1 0x1007a750
MxS32 Act2Brick::VTable0x94()
{
// TODO
return 0;
}
// STUB: LEGO1 0x1007a7f0
MxResult Act2Brick::Tickle()
{

View file

@ -0,0 +1,54 @@
#include "legoact2.h"
// STUB: LEGO1 0x1004fe10
MxBool LegoAct2::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1004ff20
MxResult LegoAct2::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10050040
MxResult LegoAct2::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10050380
MxLong LegoAct2::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10050a80
void LegoAct2::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10050cf0
void LegoAct2::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x100519c0
void LegoAct2::VTable0x60()
{
// TODO
}
// STUB: LEGO1 0x100519d0
MxBool LegoAct2::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -1 +1,8 @@
#include "legoact2state.h"
// STUB: LEGO1 0x1000df70
MxBool LegoAct2State::VTable0x14()
{
// TODO
return FALSE;
}

View file

@ -8,8 +8,67 @@ Act3::Act3()
// TODO
}
// STUB: LEGO1 0x10072500
MxBool Act3::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x100726a0
Act3::~Act3()
{
// TODO
}
// STUB: LEGO1 0x10072c30
MxResult Act3::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10072d50
void Act3::Destroy(MxBool p_fromDestructor)
{
// TODO
}
// STUB: LEGO1 0x10072de0
MxLong Act3::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10073270
void Act3::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10073300
MxResult Act3::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10073a90
void Act3::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10073e40
void Act3::VTable0x60()
{
// TODO
}
// STUB: LEGO1 0x10073e50
MxBool Act3::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -1 +1,25 @@
#include "act3shark.h"
// STUB: LEGO1 0x1001a1c0
void Act3Shark::VTable0x74(Matrix4& p_transform)
{
// TODO
}
// STUB: LEGO1 0x100430e0
void Act3Shark::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x100430f0
void Act3Shark::SetWorldSpeed(MxFloat p_worldSpeed)
{
// TODO
}
// STUB: LEGO1 0x10043100
void Act3Shark::VTable0x70(float p_float)
{
// TODO
}

View file

@ -0,0 +1,26 @@
#include "lego3dwavepresenter.h"
// STUB: LEGO1 0x1004a7c0
MxResult Lego3DWavePresenter::AddToManager()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1004a7f0
void Lego3DWavePresenter::Destroy()
{
// TODO
}
// STUB: LEGO1 0x1004a810
void Lego3DWavePresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1004a8b0
void Lego3DWavePresenter::StreamingTickle()
{
// TODO
}

View file

@ -28,3 +28,28 @@ void LegoLoadCacheSoundPresenter::Destroy(MxBool p_fromDestructor)
delete this->m_unk0x70;
MxWavePresenter::Destroy(p_fromDestructor);
}
// STUB: LEGO1 0x10018510
void LegoLoadCacheSoundPresenter::ReadyTickle()
{
// TODO
}
// STUB: LEGO1 0x100185f0
void LegoLoadCacheSoundPresenter::StreamingTickle()
{
// TODO
}
// STUB: LEGO1 0x100186f0
void LegoLoadCacheSoundPresenter::DoneTickle()
{
// TODO
}
// STUB: LEGO1 0x10018700
MxResult LegoLoadCacheSoundPresenter::PutData()
{
// TODO
return SUCCESS;
}

View file

@ -10,3 +10,43 @@ DuneBuggy::DuneBuggy()
this->m_unk0x13c = 25.0;
this->m_unk0x164 = 1.0;
}
// STUB: LEGO1 0x10067e30
MxResult DuneBuggy::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10067ec0
void DuneBuggy::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10067fa0
void DuneBuggy::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x10068060
MxU32 DuneBuggy::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x100681b0
MxU32 DuneBuggy::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10068270
MxU32 DuneBuggy::VTable0xdc(MxType19NotificationParam& p_param)
{
// TODO
return 0;
}

View file

@ -1 +1,15 @@
#include "helicopterstate.h"
// STUB: LEGO1 0x1000e0b0
MxBool HelicopterState::VTable0x14()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1000e0c0
MxBool HelicopterState::SetFlag()
{
// TODO
return FALSE;
}

View file

@ -9,3 +9,36 @@ Jetski::Jetski()
this->m_unk0x150 = 2.0;
this->m_unk0x148 = 1;
}
// STUB: LEGO1 0x1007e630
MxResult Jetski::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1007e680
void Jetski::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x1007e6f0
void Jetski::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x1007e750
MxU32 Jetski::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x1007e8e0
MxU32 Jetski::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}

View file

@ -32,3 +32,10 @@ void LegoBuildingManager::FUN_1002fa00()
{
// TODO
}
// STUB: LEGO1 0x10030220
MxResult LegoBuildingManager::Tickle()
{
// TODO
return SUCCESS;
}

View file

@ -6,12 +6,26 @@ LegoCarBuild::LegoCarBuild()
// TODO
}
// STUB: LEGO1 0x10022930
MxBool LegoCarBuild::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x10022a80
LegoCarBuild::~LegoCarBuild()
{
// TODO
}
// STUB: LEGO1 0x10022b70
MxResult LegoCarBuild::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100238b0
MxResult LegoCarBuild::Tickle()
{
@ -27,3 +41,22 @@ MxLong LegoCarBuild::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x100242c0
void LegoCarBuild::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x100256c0
void LegoCarBuild::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10025e70
MxBool LegoCarBuild::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -23,3 +23,10 @@ LegoVehicleBuildState::LegoVehicleBuildState(char* p_classType)
this->m_unk0x4e = 0;
this->m_placedPartCount = 0;
}
// STUB: LEGO1 0x10026120
MxResult LegoVehicleBuildState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View file

@ -13,3 +13,17 @@ RaceCar::~RaceCar()
{
// TODO
}
// STUB: LEGO1 0x10028490
MxResult RaceCar::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100284d0
MxU32 RaceCar::VTable0xcc()
{
// TODO
return 0;
}

View file

@ -17,3 +17,15 @@ LegoActor::~LegoActor()
{
// TODO
}
// STUB: LEGO1 0x1002d390
void LegoActor::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x1002d670
void LegoActor::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2)
{
// TODO
}

View file

@ -0,0 +1,45 @@
#include "legocarraceactor.h"
// STUB: LEGO1 0x10014130
void LegoCarRaceActor::VTable0x68()
{
// TODO
}
// STUB: LEGO1 0x100141a0
MxS32 LegoCarRaceActor::VTable0x90()
{
// TODO
return 0;
}
// STUB: LEGO1 0x1005d650
MxS32 LegoCarRaceActor::VTable0x94()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10081830
void LegoCarRaceActor::VTable0x6c()
{
// TODO
}
// STUB: LEGO1 0x10081d10
void LegoCarRaceActor::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10081d20
void LegoCarRaceActor::VTable0x98()
{
// TODO
}
// STUB: LEGO1 0x10081d30
void LegoCarRaceActor::VTable0x9c()
{
// TODO
}

View file

@ -1 +1,51 @@
#include "legojetski.h"
// STUB: LEGO1 0x10013e70
MxLong LegoJetski::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10014110
void LegoJetski::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x10014120
void LegoJetski::SetWorldSpeed(MxFloat p_worldSpeed)
{
// TODO
}
// STUB: LEGO1 0x10014140
void LegoJetski::VTable0x6c()
{
// TODO
}
// STUB: LEGO1 0x10014180
void LegoJetski::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x100141b0
MxS32 LegoJetski::VTable0x94()
{
// TODO
return 0;
}
// STUB: LEGO1 0x100141c0
void LegoJetski::VTable0x98()
{
// TODO
}
// STUB: LEGO1 0x10014200
void LegoJetski::VTable0x9c()
{
// TODO
}

View file

@ -0,0 +1,25 @@
#include "legojetskiraceactor.h"
// STUB: LEGO1 0x10081fc0
void LegoJetskiRaceActor::VTable0x6c()
{
// TODO
}
// STUB: LEGO1 0x100822c0
void LegoJetskiRaceActor::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x100822d0
void LegoJetskiRaceActor::VTable0x98()
{
// TODO
}
// STUB: LEGO1 0x100822e0
void LegoJetskiRaceActor::VTable0x9c()
{
// TODO
}

View file

@ -222,3 +222,10 @@ float LegoNavController::CalculateNewVel(float p_targetVel, float p_currentVel,
return newVel;
}
// STUB: LEGO1 0x10055a60
MxLong LegoNavController::Notify(MxParam& p_param)
{
// TODO
return 0;
}

View file

@ -68,6 +68,12 @@ void LegoPathActor::VTable0x68()
// TODO
}
// STUB: LEGO1 0x1002f020
void LegoPathActor::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x1002f1b0
void LegoPathActor::VTable0x9c()
{

View file

@ -0,0 +1,45 @@
#include "legoraceactor.h"
// STUB: LEGO1 0x10014190
void LegoRaceActor::VTable0x74(Matrix4& p_transform)
{
// TODO
}
// STUB: LEGO1 0x10014ca0
void LegoRaceActor::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x10014cb0
void LegoRaceActor::SetWorldSpeed(MxFloat p_worldSpeed)
{
// TODO
}
// STUB: LEGO1 0x10014cc0
void LegoRaceActor::VTable0x68()
{
// TODO
}
// STUB: LEGO1 0x10014cd0
void LegoRaceActor::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10014ce0
MxS32 LegoRaceActor::VTable0x90()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10014cf0
MxS32 LegoRaceActor::VTable0x94()
{
// TODO
return 0;
}

View file

@ -0,0 +1,51 @@
#include "legoracecar.h"
// STUB: LEGO1 0x10014280
MxLong LegoRaceCar::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x100144d0
void LegoRaceCar::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x100144e0
void LegoRaceCar::SetWorldSpeed(MxFloat p_worldSpeed)
{
// TODO
}
// STUB: LEGO1 0x100144f0
void LegoRaceCar::VTable0x6c()
{
// TODO
}
// STUB: LEGO1 0x10014530
void LegoRaceCar::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10014540
MxS32 LegoRaceCar::VTable0x94()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10014550
void LegoRaceCar::VTable0x98()
{
// TODO
}
// STUB: LEGO1 0x10014580
void LegoRaceCar::VTable0x9c()
{
// TODO
}

View file

@ -19,12 +19,26 @@ GasStation::GasStation()
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x10004770
MxBool GasStation::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x100048c0
GasStation::~GasStation()
{
// TODO
}
// STUB: LEGO1 0x10004990
MxResult GasStation::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10004a60
MxLong GasStation::Notify(MxParam& p_param)
{
@ -33,6 +47,18 @@ MxLong GasStation::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x10004b30
void GasStation::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10005c40
void GasStation::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10005c90
MxResult GasStation::Tickle()
{
@ -40,3 +66,10 @@ MxResult GasStation::Tickle()
return 0;
}
// STUB: LEGO1 0x10005e70
MxBool GasStation::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -16,3 +16,10 @@ GasStationState::GasStationState()
unk0x08[1] = -1;
unk0x08[2] = -1;
}
// STUB: LEGO1 0x10006300
MxResult GasStationState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View file

@ -19,3 +19,63 @@ Ambulance::Ambulance()
this->m_unk0x13c = 40.0;
this->m_unk0x17c = 1.0;
}
// STUB: LEGO1 0x10035f90
void Ambulance::Destroy(MxBool p_fromDestructor)
{
// TODO
}
// STUB: LEGO1 0x100361d0
MxResult Ambulance::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10036300
void Ambulance::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10036420
MxLong Ambulance::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10036860
MxU32 Ambulance::VTable0xdc(MxType19NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10036ce0
MxU32 Ambulance::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10036e90
void Ambulance::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x10036f90
MxU32 Ambulance::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10037160
MxResult Ambulance::Tickle()
{
// TODO
return SUCCESS;
}

View file

@ -18,3 +18,10 @@ AmbulanceMissionState::AmbulanceMissionState()
m_color4 = 0;
m_color5 = 0;
}
// STUB: LEGO1 0x10037440
MxResult AmbulanceMissionState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return 0;
}

View file

@ -23,12 +23,26 @@ Hospital::Hospital()
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x100746a0
MxBool Hospital::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x100747f0
Hospital::~Hospital()
{
// TODO
}
// STUB: LEGO1 0x100748c0
MxResult Hospital::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10074990
MxLong Hospital::Notify(MxParam& p_param)
{
@ -36,3 +50,29 @@ MxLong Hospital::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x10074a60
void Hospital::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10076220
void Hospital::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10076270
MxResult Hospital::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10076330
MxBool Hospital::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -12,3 +12,10 @@ HospitalState::HospitalState()
this->m_unk0x14 = 0;
this->m_unk0x16 = 0;
}
// STUB: LEGO1 0x10076530
MxResult HospitalState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return 0;
}

View file

@ -9,3 +9,30 @@ Bike::Bike()
this->m_unk0x150 = 3.0;
this->m_unk0x148 = 1;
}
// STUB: LEGO1 0x100768f0
MxResult Bike::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10076920
void Bike::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x100769a0
MxU32 Bike::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10076aa0
MxU32 Bike::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}

View file

@ -1 +1,32 @@
#include "bumpbouy.h"
// STUB: LEGO1 0x1000fd00
void BumpBouy::ParseAction(char*)
{
// TODO
}
// STUB: LEGO1 0x1000fd10
void BumpBouy::SetWorldSpeed(MxFloat p_worldSpeed)
{
// TODO
}
// STUB: LEGO1 0x1000fd20
void BumpBouy::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x1000fd30
void BumpBouy::VTable0x74(Matrix4& p_transform)
{
// TODO
}
// STUB: LEGO1 0x100274d0
MxLong BumpBouy::Notify(MxParam& p_param)
{
// TODO
return 0;
}

View file

@ -0,0 +1,20 @@
#include "doors.h"
// STUB: LEGO1 0x10066100
MxS32 Doors::VTable0x94()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10066250
void Doors::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x100664e0
void Doors::ParseAction(char*)
{
// TODO
}

View file

@ -12,6 +12,13 @@ HistoryBook::~HistoryBook()
// TODO
}
// STUB: LEGO1 0x10082610
MxResult HistoryBook::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10082680
MxLong HistoryBook::Notify(MxParam& p_param)
{
@ -19,3 +26,16 @@ MxLong HistoryBook::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x100826f0
void HistoryBook::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10082a10
MxBool HistoryBook::VTable0x64()
{
// TODO
return FALSE;
}

View file

@ -2,3 +2,17 @@
// NOTE: This is copied from base class LegoActor. IsleActor may in fact be larger but we don't know yet.
DECOMP_SIZE_ASSERT(IsleActor, 0x78)
// STUB: LEGO1 0x1002c780
MxResult IsleActor::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1002c7b0
MxLong IsleActor::Notify(MxParam& p_param)
{
// TODO
return 0;
}

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