From aa69da7754a333116ff2318a4d2f2e52116f287a Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sun, 8 Dec 2024 11:19:55 -0700 Subject: [PATCH] Match --- LEGO1/lego/legoomni/include/act3actors.h | 5 ++- LEGO1/lego/legoomni/include/act3ammo.h | 6 +-- LEGO1/lego/legoomni/include/act3brickster.h | 11 +++-- LEGO1/lego/legoomni/include/act3cop.h | 5 ++- LEGO1/lego/legoomni/include/act3shark.h | 5 ++- LEGO1/lego/legoomni/include/legopathactor.h | 11 ++--- LEGO1/lego/legoomni/src/worlds/act3.cpp | 47 ++++++++++++--------- 7 files changed, 50 insertions(+), 40 deletions(-) diff --git a/LEGO1/lego/legoomni/include/act3actors.h b/LEGO1/lego/legoomni/include/act3actors.h index 55bcbeac..fda7ada6 100644 --- a/LEGO1/lego/legoomni/include/act3actors.h +++ b/LEGO1/lego/legoomni/include/act3actors.h @@ -23,8 +23,9 @@ class Act3Actor : public LegoAnimActor { MxU32 VTable0x90(float p_time, Matrix4& p_transform) override; // vtable+0x90 MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94 - // This inline function is speculation; it might have been structured differently. - void AddToUnknown0x1c(MxFloat p_delta) { m_unk0x1c += p_delta; } + MxFloat GetUnknown0x1c() { return m_unk0x1c; } + + void SetUnknown0x1c(MxFloat p_unk0x1c) { m_unk0x1c = p_unk0x1c; } // SYNTHETIC: LEGO1 0x10043330 // Act3Actor::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/act3ammo.h b/LEGO1/lego/legoomni/include/act3ammo.h index 6f73d315..d7a65068 100644 --- a/LEGO1/lego/legoomni/include/act3ammo.h +++ b/LEGO1/lego/legoomni/include/act3ammo.h @@ -18,10 +18,10 @@ class Act3Ammo : public LegoPathActor { void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c void VTable0x70(float p_time) override; // vtable+0x70 - MxBool TestBit4() { return m_flags & c_bit4; } + MxU16 GetFlags() { return m_flags; } + MxFloat GetUnknown0x158() { return m_unk0x158; } - // This inline function is speculation; it might have been structured differently. - void AddToUnknown0x158(MxFloat p_delta) { m_unk0x158 += p_delta; } + void SetUnknown0x158(MxFloat p_unk0x158) { m_unk0x158 = p_unk0x158; } // SYNTHETIC: LEGO1 0x10053880 // Act3Ammo::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/act3brickster.h b/LEGO1/lego/legoomni/include/act3brickster.h index f757bed1..1e418abf 100644 --- a/LEGO1/lego/legoomni/include/act3brickster.h +++ b/LEGO1/lego/legoomni/include/act3brickster.h @@ -21,10 +21,13 @@ class Act3Brickster : public Act3Actor { ) override; // vtable+0x98 MxResult VTable0x9c() override; // vtable+0x9c - // These inline functions are speculation; it might have been structured differently. - void AddToUnknown0x20(MxFloat p_delta) { m_unk0x20 += p_delta; } - void AddToUnknown0x24(MxFloat p_delta) { m_unk0x24 += p_delta; } - void AddToUnknown0x50(MxFloat p_delta) { m_unk0x50 += p_delta; } + MxFloat GetUnknown0x20() { return m_unk0x20; } + MxFloat GetUnknown0x24() { return m_unk0x24; } + MxFloat GetUnknown0x50() { return m_unk0x50; } + + void SetUnknown0x20(MxFloat p_unk0x20) { m_unk0x20 = p_unk0x20; } + void SetUnknown0x24(MxFloat p_unk0x24) { m_unk0x24 = p_unk0x24; } + void SetUnknown0x50(MxFloat p_unk0x50) { m_unk0x50 = p_unk0x50; } // SYNTHETIC: LEGO1 0x10043250 // Act3Brickster::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/act3cop.h b/LEGO1/lego/legoomni/include/act3cop.h index b7046a56..57c1459a 100644 --- a/LEGO1/lego/legoomni/include/act3cop.h +++ b/LEGO1/lego/legoomni/include/act3cop.h @@ -15,8 +15,9 @@ class Act3Cop : public Act3Actor { MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94 MxResult VTable0x9c() override; // vtable+0x9c - // This inline function is speculation; it might have been structured differently. - void AddToUnknown0x20(MxFloat p_delta) { m_unk0x20 += p_delta; } + MxFloat GetUnknown0x20() { return m_unk0x20; } + + void SetUnknown0x20(MxFloat p_unk0x20) { m_unk0x20 = p_unk0x20; } // SYNTHETIC: LEGO1 0x10043120 // Act3Cop::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/act3shark.h b/LEGO1/lego/legoomni/include/act3shark.h index 52c9f768..f43f76bd 100644 --- a/LEGO1/lego/legoomni/include/act3shark.h +++ b/LEGO1/lego/legoomni/include/act3shark.h @@ -23,8 +23,9 @@ class Act3Shark : public LegoAnimActor { // LegoAnimActor vtable virtual MxResult FUN_10042ce0(void*); // vtable+0x10 - // This inline function is speculation; it might have been structured differently. - void AddToUnknown0x2c(MxFloat p_delta) { m_unk0x2c += p_delta; } + MxFloat GetUnknown0x2c() { return m_unk0x2c; } + + void SetUnknown0x2c(MxFloat p_unk0x2c) { m_unk0x2c = p_unk0x2c; } // SYNTHETIC: LEGO1 0x10043030 // Act3Shark::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/legopathactor.h b/LEGO1/lego/legoomni/include/legopathactor.h index 39c87253..3de87194 100644 --- a/LEGO1/lego/legoomni/include/legopathactor.h +++ b/LEGO1/lego/legoomni/include/legopathactor.h @@ -137,6 +137,8 @@ class LegoPathActor : public LegoActor { LegoPathController* GetController() { return m_controller; } MxBool GetCollideBox() { return m_collideBox; } + MxFloat GetLastTime() { return m_lastTime; } + MxFloat GetActorTime() { return m_actorTime; } void SetBoundary(LegoPathBoundary* p_boundary) { m_boundary = p_boundary; } @@ -144,13 +146,8 @@ class LegoPathActor : public LegoActor { void SetState(MxU32 p_state) { m_state = p_state; } void SetController(LegoPathController* p_controller) { m_controller = p_controller; } - - // This inline function is speculation; it might have been structured differently. - void ApplyTimeDelta(MxFloat p_delta) - { - m_lastTime += p_delta; - m_actorTime += p_delta; - } + void SetLastTime(MxFloat p_lastTime) { m_lastTime = p_lastTime; } + void SetActorTime(MxFloat p_actorTime) { m_actorTime = p_actorTime; } void UpdatePlane(LegoNamedPlane& p_namedPlane); void PlaceActor(LegoNamedPlane& p_namedPlane); diff --git a/LEGO1/lego/legoomni/src/worlds/act3.cpp b/LEGO1/lego/legoomni/src/worlds/act3.cpp index e898e2ea..a7b568dc 100644 --- a/LEGO1/lego/legoomni/src/worlds/act3.cpp +++ b/LEGO1/lego/legoomni/src/worlds/act3.cpp @@ -232,37 +232,44 @@ void Act3::Enable(MxBool p_enable) MxFloat delta = Timer()->GetTime() - m_time - 100.0f; m_time = -1.0f; - m_cop1->ApplyTimeDelta(delta); - m_cop1->AddToUnknown0x20(delta); - m_cop1->AddToUnknown0x1c(delta); + m_cop1->SetLastTime(m_cop1->GetLastTime() + delta); + m_cop1->SetActorTime(m_cop1->GetActorTime() + delta); + m_cop1->SetUnknown0x20(m_cop1->GetUnknown0x20() + delta); + m_cop1->SetUnknown0x1c(m_cop1->GetUnknown0x1c() + delta); - m_cop2->ApplyTimeDelta(delta); - m_cop2->AddToUnknown0x20(delta); - m_cop2->AddToUnknown0x1c(delta); + m_cop2->SetLastTime(m_cop2->GetLastTime() + delta); + m_cop2->SetActorTime(m_cop2->GetActorTime() + delta); + m_cop2->SetUnknown0x20(m_cop2->GetUnknown0x20() + delta); + m_cop2->SetUnknown0x1c(m_cop2->GetUnknown0x1c() + delta); - m_brickster->ApplyTimeDelta(delta); - m_brickster->AddToUnknown0x20(delta); - m_brickster->AddToUnknown0x24(delta); - m_brickster->AddToUnknown0x50(delta); - m_brickster->AddToUnknown0x1c(delta); + m_brickster->SetLastTime(m_brickster->GetLastTime() + delta); + m_brickster->SetActorTime(m_brickster->GetActorTime() + delta); + m_brickster->SetUnknown0x20(m_brickster->GetUnknown0x20() + delta); + m_brickster->SetUnknown0x24(m_brickster->GetUnknown0x24() + delta); + m_brickster->SetUnknown0x50(m_brickster->GetUnknown0x50() + delta); + m_brickster->SetUnknown0x1c(m_brickster->GetUnknown0x1c() + delta); - m_copter->ApplyTimeDelta(delta); + m_copter->SetLastTime(m_copter->GetLastTime() + delta); + m_copter->SetActorTime(m_copter->GetActorTime() + delta); - m_shark->ApplyTimeDelta(delta); - m_shark->AddToUnknown0x2c(delta); + m_shark->SetLastTime(m_shark->GetLastTime() + delta); + m_shark->SetActorTime(m_shark->GetActorTime() + delta); + m_shark->SetUnknown0x2c(m_shark->GetUnknown0x2c() + delta); MxS32 i; for (i = 0; i < (MxS32) sizeOfArray(m_pizzas); i++) { - if (m_pizzas[i].TestBit4()) { - m_pizzas[i].ApplyTimeDelta(delta); - m_pizzas[i].AddToUnknown0x158(delta); + if (m_pizzas[i].GetFlags() & Act3Ammo::c_bit4) { + m_pizzas[i].SetLastTime(m_pizzas[i].GetLastTime() + delta); + m_pizzas[i].SetActorTime(m_pizzas[i].GetActorTime() + delta); + m_pizzas[i].SetUnknown0x158(m_pizzas[i].GetUnknown0x158() + delta); } } for (i = 0; i < (MxS32) sizeOfArray(m_donuts); i++) { - if (m_donuts[i].TestBit4()) { - m_donuts[i].ApplyTimeDelta(delta); - m_donuts[i].AddToUnknown0x158(delta); + if (m_donuts[i].GetFlags() & Act3Ammo::c_bit4) { + m_donuts[i].SetLastTime(m_donuts[i].GetLastTime() + delta); + m_donuts[i].SetActorTime(m_donuts[i].GetActorTime() + delta); + m_donuts[i].SetUnknown0x158(m_donuts[i].GetUnknown0x158() + delta); } }