diff --git a/CMakeLists.txt b/CMakeLists.txt index e1d59c00..85ddbdd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -379,10 +379,10 @@ function(add_lego_libraries NAME) LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp LEGO1/lego/legoomni/src/worlds/infocenter.cpp + LEGO1/lego/legoomni/src/race/raceskel.cpp LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp LEGO1/lego/legoomni/src/build/legocarbuildpresenter.cpp - LEGO1/lego/legoomni/src/race/raceskel.cpp LEGO1/lego/legoomni/src/worlds/act3.cpp LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp LEGO1/lego/legoomni/src/common/mxcompositemediapresenter.cpp diff --git a/LEGO1/lego/legoomni/include/infocenter.h b/LEGO1/lego/legoomni/include/infocenter.h index b1a943cf..7749cc84 100644 --- a/LEGO1/lego/legoomni/include/infocenter.h +++ b/LEGO1/lego/legoomni/include/infocenter.h @@ -20,6 +20,9 @@ class InfocenterState : public LegoState { InfocenterState(); ~InfocenterState() override; + // FUNCTION: LEGO1 0x10071830 + MxBool IsSerializable() override { return FALSE; } // vtable+0x14 + // FUNCTION: LEGO1 0x10071840 // FUNCTION: BETA10 0x10031ee0 const char* ClassName() const override // vtable+0x0c @@ -34,9 +37,6 @@ class InfocenterState : public LegoState { return !strcmp(p_name, InfocenterState::ClassName()) || LegoState::IsA(p_name); } - // FUNCTION: LEGO1 0x10071830 - MxBool IsSerializable() override { return FALSE; } // vtable+0x14 - MxS16 GetMaxNameLength() { return sizeOfArray(m_letters); } MxStillPresenter* GetNameLetter(MxS32 p_index) { return m_letters[p_index]; } void SetNameLetter(MxS32 p_index, MxStillPresenter* p_letter) { m_letters[p_index] = p_letter; } @@ -66,8 +66,7 @@ class InfocenterState : public LegoState { // SIZE 0x18 struct InfocenterMapEntry { - // FUNCTION: LEGO1 0x1006ec80 - InfocenterMapEntry() {} + InfocenterMapEntry(); MxStillPresenter* m_destCtl; // 0x00 undefined4 m_unk0x04; // 0x04 diff --git a/LEGO1/lego/legoomni/include/raceskel.h b/LEGO1/lego/legoomni/include/raceskel.h index 48830bea..568cdd1b 100644 --- a/LEGO1/lego/legoomni/include/raceskel.h +++ b/LEGO1/lego/legoomni/include/raceskel.h @@ -14,9 +14,10 @@ class RaceSkel : public LegoAnimActor { ~RaceSkel() override; void ParseAction(char* p_extra) override; // vtable+0x20 - MxResult FUN_1001c360(float p_und, Matrix4& p_transform) override; + virtual void FUN_10071c80(Vector3& p_vec); + void GetCurrentAnimData(float* p_outCurAnimPosition, float* p_outCurAnimDuration); // SYNTHETIC: LEGO1 0x10071cf0 diff --git a/LEGO1/lego/legoomni/src/race/raceskel.cpp b/LEGO1/lego/legoomni/src/race/raceskel.cpp index 213e788d..0aa315ce 100644 --- a/LEGO1/lego/legoomni/src/race/raceskel.cpp +++ b/LEGO1/lego/legoomni/src/race/raceskel.cpp @@ -50,6 +50,14 @@ void RaceSkel::ParseAction(char* p_extra) m_roi->SetBoundingSphere(sphere); } +// FUNCTION: LEGO1 0x10071c80 +void RaceSkel::FUN_10071c80(Vector3& p_vec) +{ + p_vec[0] = -630.0f; + p_vec[1] = -4.688f; + p_vec[2] = 323.0f; +} + // FUNCTION: LEGO1 0x10071cb0 // FUNCTION: BETA10 0x100f158b void RaceSkel::GetCurrentAnimData(float* p_outCurAnimPosition, float* p_outCurAnimDuration) diff --git a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp index d7fea12f..abc83982 100644 --- a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp +++ b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp @@ -149,6 +149,11 @@ Infocenter::Infocenter() m_unk0x1d6 = 0; } +// FUNCTION: LEGO1 0x1006ec80 +InfocenterMapEntry::InfocenterMapEntry() +{ +} + // FUNCTION: LEGO1 0x1006ec90 Infocenter::~Infocenter() {