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

@@ -25,7 +25,7 @@ Act1State::Act1State() : m_unk0x00c(0), m_unk0x00e(0), m_unk0x008(NULL), m_unk0x
m_unk0x01f = FALSE;
m_unk0x008 = g_unk0x100f37f0;
m_unk0x014 = -1;
m_unk0x022 = 0;
m_unk0x022 = FALSE;
m_unk0x154 = NULL;
m_unk0x158 = NULL;
m_unk0x15c = NULL;
@@ -122,8 +122,8 @@ MxResult Act1State::Serialize(LegoFile* p_legoFile)
}
}
p_legoFile->Write(&m_unk0x010, sizeof(undefined2));
p_legoFile->Write(&m_unk0x022, sizeof(undefined));
p_legoFile->Write(&m_unk0x010, sizeof(m_unk0x010));
p_legoFile->Write(&m_unk0x022, sizeof(m_unk0x022));
}
else if (p_legoFile->IsReadMode()) {
if (m_unk0x108.GetName()->Compare("") != 0) {
@@ -176,8 +176,8 @@ MxResult Act1State::Serialize(LegoFile* p_legoFile)
}
}
p_legoFile->Read(&m_unk0x010, sizeof(undefined2));
p_legoFile->Read(&m_unk0x022, sizeof(undefined));
p_legoFile->Read(&m_unk0x010, sizeof(m_unk0x010));
p_legoFile->Read(&m_unk0x022, sizeof(m_unk0x022));
}
// TODO
@@ -205,7 +205,7 @@ MxBool Act1State::SetFlag()
m_unk0x024.SetName("");
m_unk0x070.SetName("");
m_unk0x0bc.SetName("");
m_unk0x022 = 0;
m_unk0x022 = FALSE;
m_unk0x108.SetName("");
if (m_unk0x154) {