Implement LegoRaceCar::FUN_10012ff0(), refactoring (#1063)

* Implement `LegoRaceCar::FUN_10012ff0()`, refactor based on BETA10

* Add BETA10 annotations
* Rename functions and variables based on BETA10 assertions

* Address issues raised by linter

* Rename variable, add BETA10 vtables

* Rename legoracecar files to legoracers

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2024-07-07 14:10:46 +02:00
committed by GitHub
parent a75ace8a53
commit afa5b90117
18 changed files with 102 additions and 22 deletions

View File

@@ -15,6 +15,10 @@ struct LegoAnimActorStruct {
float GetUnknown0x00() { return m_unk0x00; }
// FUNCTION: BETA10 0x10012210
LegoAnim* GetAnimTreePtr() { return m_AnimTreePtr; }
// TODO: Possibly private
float m_unk0x00; // 0x00
LegoAnim* m_AnimTreePtr; // 0x04
LegoROI** m_roiMap; // 0x08

View File

@@ -1,5 +1,5 @@
#ifndef LEGORACECAR_H
#define LEGORACECAR_H
#ifndef LEGORACERS_H
#define LEGORACERS_H
#include "legocarraceactor.h"
#include "legoracemap.h"
@@ -15,6 +15,11 @@ struct EdgeReference {
// VTABLE: LEGO1 0x100d58b8 LegoPathActor
// VTABLE: LEGO1 0x100d5984 LegoRaceMap
// VTABLE: LEGO1 0x100d5988 LegoCarRaceActor
// VTABLE: BETA10 0x101be6ec LegoRaceActor
// VTABLE: BETA10 0x101be6f0 LegoAnimActor
// VTABLE: BETA10 0x101be708 LegoPathActor
// VTABLE: BETA10 0x101be7f8 LegoRaceMap
// VTABLE: BETA10 0x101be800 LegoCarRaceActor
// SIZE 0x200
class LegoRaceCar : public LegoCarRaceActor, public LegoRaceMap {
public:
@@ -60,8 +65,8 @@ public:
// LegoRaceCar::`scalar deleting destructor'
private:
undefined m_unk0x54; // 0x54
undefined4 m_unk0x58; // 0x58
undefined m_userState; // 0x54
float m_unk0x58; // 0x58
Mx3DPointFloat m_unk0x5c; // 0x5c
LegoAnimActorStruct* m_unk0x70; // 0x70
LegoAnimActorStruct* m_unk0x74; // 0x74
@@ -72,4 +77,4 @@ private:
static const EdgeReference* g_pEdgeReferences;
};
#endif // LEGORACECAR_H
#endif // LEGORACERS_H

View File

@@ -97,7 +97,9 @@ public:
MxCore* Find(const char* p_class, const char* p_name);
MxCore* Find(const MxAtomId& p_atom, MxS32 p_entityId);
// FUNCTION: BETA10 0x1002b4f0
LegoCameraController* GetCamera() { return m_cameraController; }
LegoEntityList* GetEntityList() { return m_entityList; }
MxS32 GetWorldId() { return m_worldId; }
MxBool GetUnknown0xd0Empty() { return m_set0xd0.empty(); }