Implement SkateBoard::VTable0xd4

This commit is contained in:
jonschz 2024-04-27 16:21:38 +02:00
parent 231dc1d923
commit 0c672edb42
2 changed files with 13 additions and 4 deletions

View File

@ -26,9 +26,10 @@ class LegoControlManagerEvent : public LegoEventNotificationParam {
inline void SetClickedAtom(const char* p_clickedAtom) { m_clickedAtom = p_clickedAtom; } inline void SetClickedAtom(const char* p_clickedAtom) { m_clickedAtom = p_clickedAtom; }
inline void SetUnknown0x28(MxS16 p_unk0x28) { m_unk0x28 = p_unk0x28; } inline void SetUnknown0x28(MxS16 p_unk0x28) { m_unk0x28 = p_unk0x28; }
private:
MxS32 m_clickedObjectId; // 0x20 MxS32 m_clickedObjectId; // 0x20
private:
const char* m_clickedAtom; // 0x24 const char* m_clickedAtom; // 0x24
public:
MxS16 m_unk0x28; // 0x28 MxS16 m_unk0x28; // 0x28
}; };

View File

@ -36,6 +36,8 @@ MxResult SkateBoard::Create(MxDSAction& p_dsAction)
void SkateBoard::VTable0xe4() void SkateBoard::VTable0xe4()
{ {
// TODO // TODO
// Add a stub so the call in VTable0xd4 is not optimized away
ControlManager()->Unregister(this);
} }
// STUB: LEGO1 0x100100e0 // STUB: LEGO1 0x100100e0
@ -45,11 +47,17 @@ MxU32 SkateBoard::VTable0xcc()
return 0; return 0;
} }
// STUB: LEGO1 0x10010230 // FUNCTION: LEGO1 0x10010230
MxU32 SkateBoard::VTable0xd4(LegoControlManagerEvent& p_param) MxU32 SkateBoard::VTable0xd4(LegoControlManagerEvent& p_param)
{ {
// TODO MxU32 result = 0;
return 0; if (p_param.m_unk0x28 == 1 && p_param.m_clickedObjectId == 0xc3) {
VTable0xe4();
// current area (?) Ghidra says "currentActionId"
GameState()->m_currentArea = LegoGameState::Area::e_unk66;
result = 1;
}
return result;
} }
// STUB: LEGO1 0x100104f0 // STUB: LEGO1 0x100104f0