Refactor actor states, define enum (#1220)

* Refactor actor states, define enum

* Revert

* Rename `UpdateState` to `Animate`
This commit is contained in:
Christian Semmler
2024-12-13 12:30:50 -07:00
committed by GitHub
parent ce3f71ea0f
commit 6da2faa48c
44 changed files with 161 additions and 153 deletions

View File

@@ -22,7 +22,7 @@ public:
void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override; // vtable+0x68
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
MxResult VTable0x9c() override; // vtable+0x9c
MxS32 VTable0xa0() override; // vtable+0xa0

View File

@@ -50,7 +50,7 @@ public:
Act3Cop();
void ParseAction(char* p_extra) override; // vtable+0x20
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
MxResult VTable0x9c() override; // vtable+0x9c
@@ -78,7 +78,7 @@ public:
~Act3Brickster() override;
void ParseAction(char* p_extra) override; // vtable+0x20
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
void SwitchBoundary(
LegoPathBoundary*& p_boundary,
@@ -128,8 +128,8 @@ public:
return "Act3Shark";
}
void ParseAction(char*) override; // vtable+0x20
void UpdateState(float p_time) override; // vtable+0x70
void ParseAction(char*) override; // vtable+0x20
void Animate(float p_time) override; // vtable+0x70
// LegoAnimActor vtable
virtual MxResult FUN_10042ce0(Act3Ammo* p_ammo); // vtable+0x10

View File

@@ -22,7 +22,7 @@ public:
~Act3Ammo() override;
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
// FUNCTION: BETA10 0x10017750
MxU32 IsValid() { return m_ammoFlag & c_valid; }

View File

@@ -124,7 +124,7 @@ public:
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
MxLong HandlePathStruct(LegoPathStructNotificationParam& p_param) override; // vtable+0xdc

View File

@@ -25,7 +25,7 @@ public:
}
void ParseAction(char* p_extra) override; // vtable+0x20
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
virtual MxFloat VTable0xcc(float p_time); // vtable+0xcc

View File

@@ -24,7 +24,7 @@ public:
}
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
MxLong HandlePathStruct(LegoPathStructNotificationParam& p_param) override; // vtable+0xdc

View File

@@ -68,7 +68,7 @@ public:
}
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4

View File

@@ -134,7 +134,7 @@ public:
void Reset()
{
m_roi->SetVisibility(TRUE);
SetActorFlags(0);
SetActorState(c_initial);
}
void SetWorld(LegoWorld* p_world) { m_world = p_world; }

View File

@@ -26,7 +26,7 @@ public:
}
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam&) override; // vtable+0xd4
void Exit() override; // vtable+0xe4

View File

@@ -58,7 +58,7 @@ public:
void ParseAction(char* p_extra) override; // vtable+0x20
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
virtual MxResult FUN_1001c1f0(float& p_und);

View File

@@ -43,7 +43,7 @@ public:
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94

View File

@@ -39,7 +39,7 @@ public:
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxS32 VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_edge) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x10013a80

View File

@@ -22,9 +22,16 @@ extern const char* g_strHIT_WALL_SOUND;
// SIZE 0x154
class LegoPathActor : public LegoActor {
public:
enum {
c_bit2 = 0x02,
c_disable = 0x04,
enum ActorState {
// States
c_initial = 0,
c_one = 1,
c_two = 2,
c_three = 3,
c_disabled = 4,
c_maxState = 255,
// Flags
c_noCollide = 0x100
};
@@ -54,7 +61,7 @@ public:
float p_f2,
Vector3& p_v3
); // vtable+0x6c
virtual void UpdateState(float p_time); // vtable+0x70
virtual void Animate(float p_time); // vtable+0x70
virtual void VTable0x74(Matrix4& p_transform); // vtable+0x74
// FUNCTION: LEGO1 0x10002d20
@@ -133,7 +140,7 @@ public:
LegoPathBoundary* GetBoundary() { return m_boundary; }
// FUNCTION: BETA10 0x1001c860
MxU32 GetActorFlags() { return m_actorFlags; }
MxU32 GetActorState() { return m_actorState; }
LegoPathController* GetController() { return m_pathController; }
MxBool GetCollideBox() { return m_collideBox; }
@@ -143,7 +150,7 @@ public:
void SetBoundary(LegoPathBoundary* p_boundary) { m_boundary = p_boundary; }
// FUNCTION: BETA10 0x10013430
void SetActorFlags(MxU32 p_actorFlags) { m_actorFlags = p_actorFlags; }
void SetActorState(MxU32 p_actorState) { m_actorState = p_actorState; }
void SetController(LegoPathController* p_pathController) { m_pathController = p_pathController; }
void SetLastTime(MxFloat p_lastTime) { m_lastTime = p_lastTime; }
@@ -173,7 +180,7 @@ protected:
MxFloat m_lastTime; // 0x84
LegoPathBoundary* m_boundary; // 0x88
LegoUnknown m_unk0x8c; // 0x8c
MxU32 m_actorFlags; // 0xdc
MxU32 m_actorState; // 0xdc
LegoUnknown100db7f4* m_destEdge; // 0xe0
MxFloat m_unk0xe4; // 0xe4
MxBool m_collideBox; // 0xe8

View File

@@ -21,9 +21,9 @@ public:
~LegoRaceMap() override;
// LegoPathActor vtable
MxLong Notify(MxParam& p_param) override; // vtable+0x04
void ParseAction(char* p_extra) override; // vtable+0x20
void UpdateState(float p_time) override = 0; // vtable+0x70
MxLong Notify(MxParam& p_param) override; // vtable+0x04
void ParseAction(char* p_extra) override; // vtable+0x20
void Animate(float p_time) override = 0; // vtable+0x70
// LegoRaceMap vtable
virtual void FUN_1005d4b0(); // vtable+0x00

View File

@@ -67,7 +67,7 @@ public:
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
override; // vtable+0x98
@@ -163,7 +163,7 @@ public:
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
override; // vtable+0x98

View File

@@ -42,8 +42,8 @@ public:
float p_f1,
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void UpdateState(float p_time) override; // vtable+0x70
) override; // vtable+0x6c
void Animate(float p_time) override; // vtable+0x70
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
override; // vtable+0x98
MxResult VTable0x9c() override; // vtable+0x9c

View File

@@ -24,7 +24,7 @@ public:
}
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
MxLong HandlePathStruct(LegoPathStructNotificationParam&) override; // vtable+0xdc

View File

@@ -123,7 +123,7 @@ public:
MxLong Notify(MxParam& p_param) override; // vtable+0x04
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void UpdateState(float p_time) override; // vtable+0x70
void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
MxLong HandleEndAnim(LegoEndAnimNotificationParam& p_param) override; // vtable+0xd8