Implement/match Act3Brickster::HitActor (#1212)

* Implement/match `Act3Brickster::HitActor`

* Fixes

* Fixes

* Fixes

* Add `Act3Cop::VTable0x9c`

* Fix
This commit is contained in:
Christian Semmler
2024-12-12 09:10:44 -07:00
committed by GitHub
parent fe57a94416
commit aceba71fbb
25 changed files with 166 additions and 78 deletions

View File

@@ -190,7 +190,7 @@ inline void LegoExtraActor::FUN_1002ad8a()
}
// FUNCTION: LEGO1 0x1002aba0
MxResult LegoExtraActor::VTable0x94(LegoPathActor* p_actor, MxBool p_bool)
MxResult LegoExtraActor::HitActor(LegoPathActor* p_actor, MxBool p_bool)
{
if (p_actor->GetState() != 0 || m_state != 0) {
return FAILURE;
@@ -497,11 +497,11 @@ MxU32 LegoExtraActor::VTable0x6c(
(local20X <= -0.01 && p_f1 + 0.01 <= local1cX)) {
p_v3 = p_v1;
if (VTable0x94(actor, TRUE) < 0) {
if (HitActor(actor, TRUE) < 0) {
return 0;
}
actor->VTable0x94(this, FALSE);
actor->HitActor(this, FALSE);
return 2;
}
}
@@ -509,11 +509,11 @@ MxU32 LegoExtraActor::VTable0x6c(
}
else {
if (roi->FUN_100a9410(p_v1, p_v2, p_f1, p_f2, p_v3, m_collideBox && actor->GetCollideBox())) {
if (VTable0x94(actor, TRUE) < 0) {
if (HitActor(actor, TRUE) < 0) {
return 0;
}
actor->VTable0x94(this, FALSE);
actor->HitActor(this, FALSE);
return 2;
}
}

View File

@@ -463,8 +463,8 @@ MxU32 LegoPathActor::VTable0x6c(
if (roi != NULL && (roi->GetVisibility() || actor->GetCameraFlag())) {
if (roi->FUN_100a9410(p_v1, p_v2, p_f1, p_f2, p_v3, m_collideBox && actor->m_collideBox)) {
VTable0x94(actor, TRUE);
actor->VTable0x94(this, FALSE);
HitActor(actor, TRUE);
actor->HitActor(this, FALSE);
return 2;
}
}