Enforce vtable match (#464)

* 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 (#3)

* Implement MxDisplaySurface::VTable0x44 (#467)

* 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 (#468)

* Implmement PoliceState::VTable0x1c

* Fixes

---------

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

* Implement Lego3DView::Render (#470)

* Implement Lego3DView::Render

* use MxDouble

* Revert "use MxDouble"

This reverts commit a006b60e20.

* Begin work on Police class (#469)

* Begin work on Police class

* Use JukeBox::e_policeStation value

* Fixes

---------

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

* Implement MxDisplaySurface::CreateCursorSurface (#471)

* 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
136 changed files with 1926 additions and 28 deletions

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;
}

View File

@@ -24,6 +24,13 @@ void IslePathActor::Destroy(MxBool p_fromDestructor)
LegoPathActor::Destroy(FALSE);
}
// STUB: LEGO1 0x1001a2c0
MxLong IslePathActor::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1001a350
void IslePathActor::VTable0xe0()
{

View File

@@ -12,3 +12,50 @@ JukeBox::JukeBox()
m_unk0xfc = 0;
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x1005d6e0
MxBool JukeBox::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1005d8d0
MxResult JukeBox::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1005d980
MxLong JukeBox::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1005d9f0
void JukeBox::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x1005dde0
void JukeBox::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x1005de30
MxResult JukeBox::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1005de70
MxBool JukeBox::VTable0x64()
{
// TODO
return FALSE;
}

View File

@@ -11,3 +11,10 @@ JukeBoxEntity::~JukeBoxEntity()
{
// TODO
}
// STUB: LEGO1 0x10085e40
MxLong JukeBoxEntity::Notify(MxParam& p_param)
{
// TODO
return 0;
}

View File

@@ -10,3 +10,43 @@ Motocycle::Motocycle()
this->m_unk0x148 = 1;
this->m_unk0x164 = 1.0;
}
// STUB: LEGO1 0x10035a40
MxResult Motocycle::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10035ad0
void Motocycle::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x10035bc0
void Motocycle::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x10035c50
MxU32 Motocycle::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10035d70
MxU32 Motocycle::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10035df0
MxU32 Motocycle::VTable0xdc(MxType19NotificationParam& p_param)
{
// TODO
return 0;
}

View File

@@ -23,6 +23,13 @@ Radio::~Radio()
// TODO
}
// STUB: LEGO1 0x1002ca30
MxLong Radio::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// FUNCTION: LEGO1 0x1002cde0
void Radio::CreateRadioState()
{

View File

@@ -5,3 +5,10 @@ RadioState::RadioState()
{
// TODO
}
// STUB: LEGO1 0x1002cf50
MxBool RadioState::VTable0x14()
{
// TODO
return FALSE;
}

View File

@@ -1,4 +1,4 @@
#include "skateboard.h"
#include "SkateBoard.h"
#include "decomp.h"
#include "mxnotificationmanager.h"
@@ -16,3 +16,37 @@ SkateBoard::SkateBoard()
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x10010000
MxResult SkateBoard::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10010050
void SkateBoard::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x100100e0
MxU32 SkateBoard::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10010230
MxU32 SkateBoard::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x100104f0
MxU32 SkateBoard::VTable0xd0()
{
// TODO
return 0;
}

View File

@@ -3,3 +3,10 @@
#include "decomp.h"
DECOMP_SIZE_ASSERT(LegoEventNotificationParam, 0x20);
// STUB: LEGO1 0x10028690
MxNotificationParam* LegoEventNotificationParam::Clone()
{
// TODO
return NULL;
}

View File

@@ -20,6 +20,13 @@ Pizza::~Pizza()
TickleManager()->UnregisterClient(this);
}
// STUB: LEGO1 0x10038170
MxResult Pizza::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100388a0
MxResult Pizza::Tickle()
{

View File

@@ -3,6 +3,13 @@
DECOMP_SIZE_ASSERT(PizzaMissionStateEntry, 0x20)
DECOMP_SIZE_ASSERT(PizzaMissionState, 0xb0)
// STUB: LEGO1 0x100393c0
MxResult PizzaMissionState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x10039510
PizzaMissionStateEntry* PizzaMissionState::GetState(MxU8 p_id)
{

View File

@@ -1 +1,8 @@
#include "pizzeria.h"
// STUB: LEGO1 0x100179c0
MxResult Pizzeria::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}

View File

@@ -5,3 +5,10 @@ PizzeriaState::PizzeriaState()
{
// TODO
}
// STUB: LEGO1 0x10017da0
MxResult PizzeriaState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View File

@@ -17,6 +17,13 @@ Police::Police()
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x1005e1d0
MxBool Police::VTable0x5c()
{
// TODO
return FALSE;
}
// FUNCTION: LEGO1 0x1005e320
Police::~Police()
{
@@ -68,3 +75,16 @@ void Police::VTable0x50()
PlayMusic(JukeBox::e_policeStation);
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
}
// STUB: LEGO1 0x1005e740
void Police::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x1005e790
MxBool Police::VTable0x64()
{
// TODO
return FALSE;
}

View File

@@ -8,3 +8,51 @@ CarRace::CarRace()
this->m_unk0x150 = 0;
this->m_unk0x130 = MxRect32(0x16c, 0x154, 0x1ec, 0x15e);
}
// STUB: LEGO1 0x10016ce0
MxResult CarRace::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10016dd0
void CarRace::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10016f60
undefined4 CarRace::VTable0x74(undefined4)
{
// TODO
return 0;
}
// STUB: LEGO1 0x100170e0
undefined4 CarRace::VTable0x70(undefined4)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10017650
undefined4 CarRace::VTable0x6c(undefined4)
{
// TODO
return 0;
}
// STUB: LEGO1 0x100177e0
undefined4 CarRace::VTable0x78(undefined4)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10017900
MxBool CarRace::VTable0x64()
{
// TODO
return FALSE;
}

View File

@@ -11,6 +11,13 @@ RaceState::RaceState()
// TODO
}
// STUB: LEGO1 0x10016140
MxResult RaceState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x10016280
RaceStateEntry* RaceState::GetState(MxU8 p_id)
{

View File

@@ -15,3 +15,57 @@ TowTrack::TowTrack()
this->m_unk0x13c = 40.0;
this->m_unk0x178 = 1.0;
}
// STUB: LEGO1 0x1004c9e0
MxResult TowTrack::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1004cb10
void TowTrack::VTable0x70(float p_float)
{
// TODO
}
// STUB: LEGO1 0x1004cc80
MxLong TowTrack::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1004cd30
MxU32 TowTrack::VTable0xd8(MxType18NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1004d330
MxU32 TowTrack::VTable0xdc(MxType19NotificationParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1004d690
MxU32 TowTrack::VTable0xcc()
{
// TODO
return 0;
}
// STUB: LEGO1 0x1004d8f0
void TowTrack::VTable0xe4()
{
// TODO
}
// STUB: LEGO1 0x1004d9e0
MxU32 TowTrack::VTable0xd4(MxType17NotificationParam& p_param)
{
// TODO
return 0;
}

View File

@@ -5,3 +5,65 @@ LegoAnimMMPresenter::LegoAnimMMPresenter()
{
// TODO
}
// STUB: LEGO1 0x1004aaf0
MxResult LegoAnimMMPresenter::StartAction(MxStreamController* p_controller, MxDSAction* p_action)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1004aec0
void LegoAnimMMPresenter::EndAction()
{
// TODO
}
// STUB: LEGO1 0x1004b140
void LegoAnimMMPresenter::ReadyTickle()
{
// TODO
}
// STUB: LEGO1 0x1004b1c0
void LegoAnimMMPresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1004b220
void LegoAnimMMPresenter::StreamingTickle()
{
// TODO
}
// STUB: LEGO1 0x1004b250
void LegoAnimMMPresenter::RepeatingTickle()
{
// TODO
}
// STUB: LEGO1 0x1004b2c0
void LegoAnimMMPresenter::DoneTickle()
{
// TODO
}
// STUB: LEGO1 0x1004b2d0
MxLong LegoAnimMMPresenter::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1004b360
void LegoAnimMMPresenter::VTable0x60(MxPresenter* p_presenter)
{
// TODO
}
// STUB: LEGO1 0x1004b390
void LegoAnimMMPresenter::ParseExtra()
{
// TODO
}

View File

@@ -155,6 +155,19 @@ void LegoAnimPresenter::StreamingTickle()
}
}
// STUB: LEGO1 0x1006b8c0
void LegoAnimPresenter::DoneTickle()
{
// TODO
}
// STUB: LEGO1 0x1006b8d0
MxResult LegoAnimPresenter::AddToManager()
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x1006b8e0
void LegoAnimPresenter::Destroy()
{

View File

@@ -6,8 +6,38 @@ LegoCarBuildAnimPresenter::LegoCarBuildAnimPresenter()
// TODO
}
// STUB: LEGO1 0x10078500
void LegoCarBuildAnimPresenter::RepeatingTickle()
{
// TODO
}
// STUB: LEGO1 0x10078680
LegoCarBuildAnimPresenter::~LegoCarBuildAnimPresenter()
{
// TODO
}
// STUB: LEGO1 0x10078790
void LegoCarBuildAnimPresenter::PutFrame()
{
// TODO
}
// STUB: LEGO1 0x100788c0
void LegoCarBuildAnimPresenter::ReadyTickle()
{
// TODO
}
// STUB: LEGO1 0x100789e0
void LegoCarBuildAnimPresenter::StreamingTickle()
{
// TODO
}
// STUB: LEGO1 0x10078db0
void LegoCarBuildAnimPresenter::EndAction()
{
// TODO
}

View File

@@ -14,3 +14,21 @@ void LegoFlcTexturePresenter::Init()
this->m_unk0x68 = 0;
this->m_unk0x6c = 0;
}
// STUB: LEGO1 0x1005df80
void LegoFlcTexturePresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1005e0c0
void LegoFlcTexturePresenter::LoadFrame(MxStreamChunk* p_chunk)
{
// TODO
}
// STUB: LEGO1 0x1005e100
void LegoFlcTexturePresenter::PutFrame()
{
// TODO
}

View File

@@ -36,8 +36,39 @@ void LegoHideAnimPresenter::Destroy(MxBool p_fromDestructor)
LegoHideAnimPresenter::Destroy();
}
// STUB: LEGO1 0x1006dab0
MxResult LegoHideAnimPresenter::AddToManager()
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x1006dac0
void LegoHideAnimPresenter::Destroy()
{
Destroy(FALSE);
}
// STUB: LEGO1 0x1006dad0
void LegoHideAnimPresenter::PutFrame()
{
// TODO
}
// STUB: LEGO1 0x1006dae0
void LegoHideAnimPresenter::ReadyTickle()
{
// TODO
}
// STUB: LEGO1 0x1006db20
void LegoHideAnimPresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1006e9e0
void LegoHideAnimPresenter::EndAction()
{
// TODO
}

View File

@@ -11,3 +11,53 @@ void LegoLocomotionAnimPresenter::Init()
{
// TODO
}
// STUB: LEGO1 0x1006d140
MxResult LegoLocomotionAnimPresenter::VTable0x88(MxStreamChunk* p_chunk)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1006d160
MxResult LegoLocomotionAnimPresenter::AddToManager()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1006d5b0
void LegoLocomotionAnimPresenter::Destroy()
{
// TODO
}
// STUB: LEGO1 0x1006d5c0
void LegoLocomotionAnimPresenter::PutFrame()
{
// TODO
}
// STUB: LEGO1 0x1006d5d0
void LegoLocomotionAnimPresenter::ReadyTickle()
{
// TODO
}
// STUB: LEGO1 0x1006d610
void LegoLocomotionAnimPresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1006d660
void LegoLocomotionAnimPresenter::StreamingTickle()
{
// TODO
}
// STUB: LEGO1 0x1006d670
void LegoLocomotionAnimPresenter::EndAction()
{
// TODO
}

View File

@@ -0,0 +1,13 @@
#include "legoloopinganimpresenter.h"
// STUB: LEGO1 0x1006caa0
void LegoLoopingAnimPresenter::StreamingTickle()
{
// TODO
}
// STUB: LEGO1 0x1006cb40
void LegoLoopingAnimPresenter::PutFrame()
{
// TODO
}

View File

@@ -6,9 +6,28 @@ int g_partPresenterConfig1 = 1;
// GLOBAL: LEGO1 0x100f7aa4
int g_partPresenterConfig2 = 100;
// STUB: LEGO1 0x1000cf60
void LegoPartPresenter::Destroy()
{
// TODO
}
// FUNCTION: LEGO1 0x1007c990
void LegoPartPresenter::configureLegoPartPresenter(MxS32 p_partPresenterConfig1, MxS32 p_partPresenterConfig2)
{
g_partPresenterConfig1 = p_partPresenterConfig1;
g_partPresenterConfig2 = p_partPresenterConfig2;
}
// STUB: LEGO1 0x1007c9b0
MxResult LegoPartPresenter::AddToManager()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1007deb0
void LegoPartPresenter::ReadyTickle()
{
// TODO
}

View File

@@ -21,3 +21,27 @@ void LegoPhonemePresenter::Init()
m_unk0x70 = 0;
m_unk0x84 = 0;
}
// STUB: LEGO1 0x1004e3d0
void LegoPhonemePresenter::StartingTickle()
{
// TODO
}
// STUB: LEGO1 0x1004e800
void LegoPhonemePresenter::LoadFrame(MxStreamChunk* p_chunk)
{
// TODO
}
// STUB: LEGO1 0x1004e840
void LegoPhonemePresenter::PutFrame()
{
// TODO
}
// STUB: LEGO1 0x1004e870
void LegoPhonemePresenter::EndAction()
{
// TODO
}