diff --git a/CMakeLists.txt b/CMakeLists.txt index d3528636..4fcaf104 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ add_library(lego1 SHARED 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 diff --git a/LEGO1/lego/legoomni/include/lego3dwavepresenter.h b/LEGO1/lego/legoomni/include/lego3dwavepresenter.h index c08e777f..bf771d45 100644 --- a/LEGO1/lego/legoomni/include/lego3dwavepresenter.h +++ b/LEGO1/lego/legoomni/include/lego3dwavepresenter.h @@ -20,6 +20,11 @@ class Lego3DWavePresenter : public MxWavePresenter { 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' }; diff --git a/LEGO1/lego/legoomni/include/legoanimmmpresenter.h b/LEGO1/lego/legoomni/include/legoanimmmpresenter.h index 77916eb3..790ee92c 100644 --- a/LEGO1/lego/legoomni/include/legoanimmmpresenter.h +++ b/LEGO1/lego/legoomni/include/legoanimmmpresenter.h @@ -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,7 +24,15 @@ class LegoAnimMMPresenter : public MxCompositePresenter { return !strcmp(p_name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(p_name); } - virtual void ReadyTickle() override; // vtable+0x18 + 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' diff --git a/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h b/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h index e5a16822..fb2d254d 100644 --- a/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legocarbuildanimpresenter.h @@ -23,7 +23,11 @@ class LegoCarBuildAnimPresenter : public LegoAnimPresenter { return !strcmp(p_name, LegoCarBuildAnimPresenter::ClassName()) || LegoAnimPresenter::IsA(p_name); } - virtual void ReadyTickle() override; // vtable+0x18 + 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' diff --git a/LEGO1/lego/legoomni/include/legoflctexturepresenter.h b/LEGO1/lego/legoomni/include/legoflctexturepresenter.h index f5ea7420..9b136074 100644 --- a/LEGO1/lego/legoomni/include/legoflctexturepresenter.h +++ b/LEGO1/lego/legoomni/include/legoflctexturepresenter.h @@ -17,6 +17,10 @@ class LegoFlcTexturePresenter : public MxFlcPresenter { 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' diff --git a/LEGO1/lego/legoomni/include/legohideanimpresenter.h b/LEGO1/lego/legoomni/include/legohideanimpresenter.h index b4e9e856..06e8af33 100644 --- a/LEGO1/lego/legoomni/include/legohideanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legohideanimpresenter.h @@ -24,8 +24,12 @@ class LegoHideAnimPresenter : public LegoLoopingAnimPresenter { return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name); } - virtual void ReadyTickle() override; // vtable+0x18 - 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(); diff --git a/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h b/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h index 075e4df3..ded39b97 100644 --- a/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h @@ -21,7 +21,14 @@ class LegoLocomotionAnimPresenter : public LegoLoopingAnimPresenter { return !strcmp(p_name, ClassName()) || LegoLoopingAnimPresenter::IsA(p_name); } - virtual void ReadyTickle() override; // vtable+0x18 + 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); // vtable+0x88 // SYNTHETIC: LEGO1 0x1006cfe0 // LegoLocomotionAnimPresenter::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/legopartpresenter.h b/LEGO1/lego/legoomni/include/legopartpresenter.h index bf520994..5a422684 100644 --- a/LEGO1/lego/legoomni/include/legopartpresenter.h +++ b/LEGO1/lego/legoomni/include/legopartpresenter.h @@ -20,7 +20,9 @@ class LegoPartPresenter : public MxMediaPresenter { return !strcmp(p_name, LegoPartPresenter::ClassName()) || MxMediaPresenter::IsA(p_name); } - virtual void ReadyTickle() override; // vtable+0x18 + 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); diff --git a/LEGO1/lego/legoomni/include/legophonemepresenter.h b/LEGO1/lego/legoomni/include/legophonemepresenter.h index c643f261..b5aa3616 100644 --- a/LEGO1/lego/legoomni/include/legophonemepresenter.h +++ b/LEGO1/lego/legoomni/include/legophonemepresenter.h @@ -20,6 +20,11 @@ class LegoPhonemePresenter : public MxFlcPresenter { 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' diff --git a/LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp b/LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp new file mode 100644 index 00000000..580f3405 --- /dev/null +++ b/LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp @@ -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 +} diff --git a/LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp index 905e15c6..6b5a6040 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp @@ -6,8 +6,64 @@ 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 +} diff --git a/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp index dc935ce5..24bb175b 100644 --- a/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp @@ -6,14 +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 +} diff --git a/LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp b/LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp index f96d2b47..8d77a1eb 100644 --- a/LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp @@ -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 +} diff --git a/LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp index 1084b9c4..07035332 100644 --- a/LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp @@ -36,14 +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 +} diff --git a/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp index 94f130e4..debe6659 100644 --- a/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp @@ -12,8 +12,52 @@ 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 +} diff --git a/LEGO1/lego/legoomni/src/video/legopartpresenter.cpp b/LEGO1/lego/legoomni/src/video/legopartpresenter.cpp index d03e53e7..545d2f65 100644 --- a/LEGO1/lego/legoomni/src/video/legopartpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legopartpresenter.cpp @@ -6,6 +6,12 @@ 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) { @@ -13,6 +19,13 @@ void LegoPartPresenter::configureLegoPartPresenter(MxS32 p_partPresenterConfig1, g_partPresenterConfig2 = p_partPresenterConfig2; } +// STUB: LEGO1 0x1007c9b0 +MxResult LegoPartPresenter::AddToManager() +{ + // TODO + return SUCCESS; +} + // STUB: LEGO1 0x1007deb0 void LegoPartPresenter::ReadyTickle() { diff --git a/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp b/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp index 31948367..4d128531 100644 --- a/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp @@ -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 +}