Finish JetskiRace (#1158)

* Implement `JetskiRace::HandlePathStruct`

* Implement `JetskiRace::FUN_10016930`

* Cleanup, add BETA10

* Match HandlePathStruct

* Address review comments

* Address another review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
jonschz
2024-11-16 20:24:03 +01:00
committed by GitHub
parent b4b28cf32e
commit fe8e56ba47
6 changed files with 159 additions and 14 deletions

View File

@@ -102,6 +102,7 @@ public:
};
// VTABLE: LEGO1 0x100d6fb8
// VTABLE: BETA10 0x101b9cc8
// SIZE 0x140
class Isle : public LegoWorld {
public:
@@ -116,6 +117,7 @@ public:
MxLong Notify(MxParam& p_param) override; // vtable+0x04
// FUNCTION: LEGO1 0x10030910
// FUNCTION: BETA10 0x10035d70
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0458

View File

@@ -61,9 +61,20 @@ public:
MxLong HandleClick(LegoEventNotificationParam&) override; // vtable+0x6c
MxLong HandlePathStruct(LegoPathStructNotificationParam&) override; // vtable+0x70
MxLong HandleEndAction(MxEndActionNotificationParam&) override; // vtable+0x74
void FUN_10016930(MxS32 p_param1, MxS16 p_param2);
private:
inline MxS32 PossiblyGetPlaceOfPlayer();
static MxS32 g_unk0x100f0c78;
};
// SYNTHETIC: LEGO1 0x1000f530
// SYNTHETIC: BETA10 0x100a9b70
// JetskiRace::`scalar deleting destructor'
// SYNTHETIC: BETA10 0x100aa150
// JetskiRace::~JetskiRace
#endif // JETSKIRACE_H

View File

@@ -28,7 +28,10 @@ public:
return new LegoPathStructNotificationParam(m_type, m_sender, m_trigger, m_data);
} // vtable+0x04
// FUNCTION: BETA10 0x10024270
MxU8 GetTrigger() { return m_trigger; }
// FUNCTION: BETA10 0x100242a0
MxS16 GetData() { return m_data; }
protected:

View File

@@ -81,8 +81,6 @@ public:
Entry* GetState(MxU8 p_id);
undefined4 GetUnknown0x28() { return m_unk0x28; }
// SYNTHETIC: LEGO1 0x1000f6f0
// RaceState::~RaceState
@@ -151,12 +149,12 @@ public:
// LegoRace::`scalar deleting destructor'
protected:
undefined4 m_unk0xf8; // 0xf8
undefined4 m_unk0xfc; // 0xfc
undefined4 m_unk0x100; // 0x100
undefined4 m_unk0x104; // 0x104
undefined4 m_unk0x108; // 0x108
undefined4 m_unk0x10c; // 0x10c
MxS32 m_unk0xf8; // 0xf8
MxS32 m_unk0xfc; // 0xfc
MxS32 m_unk0x100; // 0x100
MxS32 m_unk0x104; // 0x104
MxS32 m_unk0x108; // 0x108
MxS32 m_unk0x10c; // 0x10c
LegoRaceActor* m_unk0x110[3]; // 0x110
LegoGameState::Area m_destLocation; // 0x11c
LegoPathActor* m_pathActor; // 0x120