Implement the rest of the SkateBoard class (#873)

* Implement SkateBoard::~SkateBoard()

* Implement SkateBoard::VTable0xd4

* Implement SkateBoard::Create()

- one typecast is still not clear

* Add SkateBoard::VTable0xe4()

* apply clang-format

* Apply clang-format to legocontrolmanager.h

* Address review comments

* 57 percent match

* 63 percent

* 82 percent match

* previous 86 was bugged, unfortunately

* 85 percent on FUN_10010270

* 92 percent FUN_10010270

* 69 percent VTable0xcc

* 73 percent VTable0xcc

* more progress, not quite there yet

* minor 10010510 improvement

* 100 % on FUN_10010510

* slowly making progress on SkateBoard::VTable0xcc (broken decomp)

* getting closer, now only wrong registers

* 89 percent VTable0xcc

* 92 percent

* 95 % VTable0xcc

* Changes, see comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
jonschz
2024-05-01 13:36:58 +02:00
committed by GitHub
parent 20dee07b9c
commit 84b789ef9e
11 changed files with 119 additions and 50 deletions

View File

@@ -629,7 +629,7 @@ void Isle::Enable(MxBool p_enable)
m_act1state->m_unk0x018 = 0;
if (GameState()->m_currentArea == LegoGameState::e_pizzeriaExterior) {
AnimationManager()->FUN_10064740(FALSE);
AnimationManager()->FUN_10064740(NULL);
}
else if (GameState()->m_currentArea == LegoGameState::e_unk66) {
Mx3DPointFloat position(CurrentActor()->GetROI()->GetWorldPosition());
@@ -637,13 +637,13 @@ void Isle::Enable(MxBool p_enable)
Mx3DPointFloat sub(-21.375f, 0.0f, -41.75f);
((Vector3&) sub).Sub(&position);
if (sub.LenSquared() < 1024.0f) {
AnimationManager()->FUN_10064740(FALSE);
AnimationManager()->FUN_10064740(NULL);
}
Mx3DPointFloat sub2(98.874992f, 0.0f, -46.156292f);
((Vector3&) sub2).Sub(&position);
if (sub2.LenSquared() < 1024.0f) {
AnimationManager()->FUN_10064670(FALSE);
AnimationManager()->FUN_10064670(NULL);
}
}
break;
@@ -666,12 +666,12 @@ void Isle::Enable(MxBool p_enable)
break;
}
AnimationManager()->FUN_10060dc0(script, NULL, TRUE, 1, NULL, FALSE, FALSE, TRUE, 0);
AnimationManager()->FUN_10060dc0(script, NULL, TRUE, TRUE, NULL, FALSE, FALSE, TRUE, FALSE);
}
m_act1state->m_unk0x018 = 0;
FUN_1003ef00(FALSE);
AnimationManager()->FUN_10064670(FALSE);
AnimationManager()->FUN_10064670(NULL);
break;
}
case 6: {
@@ -694,7 +694,7 @@ void Isle::Enable(MxBool p_enable)
break;
}
AnimationManager()->FUN_10060dc0(script, NULL, TRUE, 1, NULL, FALSE, FALSE, TRUE, 0);
AnimationManager()->FUN_10060dc0(script, NULL, TRUE, TRUE, NULL, FALSE, FALSE, TRUE, FALSE);
}
m_act1state->m_unk0x018 = 0;