Implement/match LegoRaceMap (#1087)

* Implement/match LegoRaceMap

* Fix CI, address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2024-08-17 20:30:39 +02:00
committed by GitHub
parent 34047c0cb6
commit 757df96c0d
11 changed files with 200 additions and 21 deletions

View File

@@ -118,7 +118,9 @@ public:
m_unk0x336 = FALSE;
}
// FUNCTION: BETA10 0x10031ba0
LegoControlManager* GetControlManager() { return m_controlManager; }
LegoWorld* GetWorld() { return m_world; }
LegoCameraController* GetCamera() { return m_camera; }

View File

@@ -122,7 +122,10 @@ public:
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
// FUNCTION: BETA10 0x1009e7a0
LegoInputManager* GetInputManager() { return m_inputManager; }
LegoTextureContainer* GetTextureContainer() { return m_textureContainer; }
ViewLODListManager* GetViewLODListManager() { return m_viewLODListManager; }
LegoWorld* GetCurrentWorld() { return m_currentWorld; }

View File

@@ -3,10 +3,17 @@
#include "legoraceactor.h"
class MxControlPresenter;
class MxStillPresenter;
// VTABLE: LEGO1 0x100d8858 LegoRaceActor
// VTABLE: LEGO1 0x100d8860 LegoAnimActor
// VTABLE: LEGO1 0x100d8870 LegoPathActor
// VTABLE: LEGO1 0x100d893c LegoRaceMap
// VTABLE: BETA10 0x101be4dc LegoRaceActor
// VTABLE: BETA10 0x101be4e0 LegoAnimActor
// VTABLE: BETA10 0x101be4f8 LegoPathActor
// VTABLE: BETA10 0x101be5e8 LegoRaceMap
// SIZE 0x1b4
class LegoRaceMap : public virtual LegoRaceActor {
public:
@@ -28,17 +35,37 @@ public:
// LegoRaceMap::`scalar deleting destructor'
private:
MxBool m_unk0x08; // 0x08
void* m_unk0x0c; // 0x0c
undefined4 m_unk0x10; // 0x10
float m_unk0x14; // 0x14
float m_unk0x18; // 0x18
float m_unk0x1c; // 0x1c
float m_unk0x20; // 0x20
float m_unk0x24; // 0x24
float m_unk0x28; // 0x28
float m_unk0x2c; // 0x2c
undefined4 m_unk0x30; // 0x30
MxBool m_unk0x08; // 0x08
MxStillPresenter* m_stillPresenter; // 0x0c
// variable name verified by BETA10 0x100ca82b
MxControlPresenter* m_Map_Ctl; // 0x10
// likely an x-offset of the race map in world space
float m_unk0x14; // 0x14
// inversely scales the map in x direction (either convert world->screen space or to control the size)
float m_unk0x18; // 0x18
// likely a y-offset of the race map in world space
float m_unk0x1c; // 0x1c
// inversely scales the map in y direction (either convert world->screen space or to control the size)
float m_unk0x20; // 0x20
// scales the map in x direction (either convert world->screen space or to change the size)
float m_unk0x24; // 0x24
// scales the map in y direction (either convert world->screen space or to change the size)
float m_unk0x28; // 0x28
// likely an x-offset of the race map in screen space
float m_unk0x2c; // 0x2c
// likely a y-offset of the race map in screen space
float m_unk0x30; // 0x30
};
// GLOBAL: LEGO1 0x100d8848
// LegoRaceMap::`vbtable'
// GLOBAL: LEGO1 0x100d8840
// LegoRaceMap::`vbtable'{for `LegoAnimActor'}
// GLOBAL: LEGO1 0x100d8830
// LegoRaceMap::`vbtable'{for `LegoRaceActor'}
#endif // LEGORACEMAP_H

View File

@@ -44,6 +44,7 @@ public:
void SetSkyColor(float p_red, float p_green, float p_blue);
void OverrideSkyColor(MxBool p_shouldOverride);
MxResult ResetPalette(MxBool p_ignoreSkyColor);
MxPresenter* GetPresenterByActionObjectName(const char* p_char);
void FUN_1007c520();