Implement/match Isle::HandleClick (#690)

* Isle::HandleClick

* WIP

* Match
This commit is contained in:
Christian Semmler
2024-03-18 12:31:22 -04:00
committed by GitHub
parent 44f49a7a57
commit d96679ea9e
10 changed files with 229 additions and 11 deletions

View File

@@ -9,6 +9,12 @@
// SIZE 0x26c
class Act1State : public LegoState {
public:
enum ElevatorFloor {
c_floor1 = 1,
c_floor2,
c_floor3
};
enum {
e_unk953 = 953,
e_unk954 = 954,
@@ -68,15 +74,17 @@ public:
MxBool SetFlag() override; // vtable+0x18
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
void FUN_10034660();
void FUN_100346a0();
void FUN_10034b60();
void FUN_10034d00();
inline MxU32 GetUnknown18() { return m_unk0x018; }
inline MxU32 GetUnknown1c() { return m_unk0x01c; }
inline ElevatorFloor GetElevatorFloor() { return (ElevatorFloor) m_elevFloor; }
inline MxS16 GetUnknown21() { return m_unk0x021; }
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x018 = p_unk0x18; }
inline void SetUnknown1c(MxU32 p_unk0x1c) { m_unk0x01c = p_unk0x1c; }
inline void SetElevatorFloor(ElevatorFloor p_elevFloor) { m_elevFloor = p_elevFloor; }
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x021 = p_unk0x21; }
// SYNTHETIC: LEGO1 0x10033960
@@ -92,10 +100,10 @@ protected:
undefined m_unk0x012; // 0x012
MxS32 m_unk0x014; // 0x014
MxU32 m_unk0x018; // 0x018
MxU16 m_unk0x01c; // 0x01c
MxS16 m_elevFloor; // 0x01c
undefined m_unk0x01e; // 0x01e
MxBool m_unk0x01f; // 0x01f
undefined m_unk0x020; // 0x020
MxBool m_planeActive; // 0x020
undefined m_unk0x021; // 0x021
undefined m_unk0x022; // 0x022
undefined m_unk0x023; // 0x023

View File

@@ -79,9 +79,10 @@ public:
virtual void VTable0x6c(IslePathActor* p_actor); // vtable+6c
MxLong StopAction(MxParam& p_param);
MxLong HandleClick(MxParam& p_param);
MxLong HandleClick(LegoControlManagerEvent& p_param);
MxLong HandleType19Notification(MxParam& p_param);
MxLong HandleTransitionEnd();
void FUN_10031590();
void FUN_10032620();
void FUN_100330e0();
void FUN_10032d30(

View File

@@ -8,9 +8,12 @@
class LegoBackgroundColor : public MxVariable {
public:
LegoBackgroundColor(const char* p_key, const char* p_value);
void SetValue(const char* p_colorString) override;
void SetLights(float p_r, float p_g, float p_b);
void SetLights();
void ToggleDayNight(MxBool);
void ToggleSkyColor();
private:
float m_h;

View File

@@ -171,6 +171,7 @@ public:
inline void SetUnknown0x42c(Area p_unk0x42c) { m_unk0x42c = p_unk0x42c; }
inline Username* GetPlayersIndex(MxS32 p_index) { return &m_players[p_index]; }
inline MxS16 GetPlayerCount() { return m_playerCount; }
inline LegoBackgroundColor* GetBackgroundColor() { return m_backgroundColor; }
void SetCurrentAct(Act p_currentAct);
void FindLoadedAct();

View File

@@ -25,6 +25,7 @@ void FUN_1003ef00(MxBool);
void SetAppCursor(WPARAM p_wparam);
MxBool FUN_1003ef60();
MxBool RemoveFromWorld(MxAtomId& p_atomId1, MxS32 p_id1, MxAtomId& p_atomId2, MxS32 p_id2);
MxS32 FUN_1003f050(MxS32);
void SetLightPosition(MxU32);
LegoNamedTexture* ReadNamedTexture(LegoFile* p_file);
void FUN_1003f540(LegoFile* p_file, const char* p_filename);