mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Implement various small LegoPathController functions (#914)
* Implement/match LegoPathController::Tickle * Implement various small LegoPathController functions * Add 0x10046b30
This commit is contained in:

committed by
GitHub

parent
b6fc8e27b1
commit
91fe09af3c
@@ -233,16 +233,24 @@ undefined4 LegoPathController::FUN_10046770(LegoPathActor* p_actor)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100468f0
|
||||
// FUNCTION: LEGO1 0x100468f0
|
||||
// FUNCTION: BETA10 0x100b72f7
|
||||
void LegoPathController::FUN_100468f0(LegoAnimPresenter* p_presenter)
|
||||
{
|
||||
for (MxS32 i = 0; i < m_numL; i++) {
|
||||
if (!(m_boundaries[i].m_flags & LegoWEGEdge::c_bit3)) {
|
||||
m_boundaries[i].FUN_10057fe0(p_presenter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046930
|
||||
// FUNCTION: LEGO1 0x10046930
|
||||
// FUNCTION: BETA10 0x100b737b
|
||||
void LegoPathController::FUN_10046930(LegoAnimPresenter* p_presenter)
|
||||
{
|
||||
for (MxS32 i = 0; i < m_numL; i++) {
|
||||
m_boundaries[i].FUN_100586e0(p_presenter);
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10046970
|
||||
@@ -264,9 +272,11 @@ void LegoPathController::FUN_10046970()
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046b30
|
||||
MxResult LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
// FUNCTION: LEGO1 0x10046b30
|
||||
MxResult LegoPathController::FUN_10046b30(LegoPathBoundary*& p_boundaries, MxS32& p_numL)
|
||||
{
|
||||
p_boundaries = m_boundaries;
|
||||
p_numL = m_numL;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
@@ -283,16 +293,25 @@ LegoPathBoundary* LegoPathController::GetPathBoundary(const char* p_name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046bb0
|
||||
// FUNCTION: LEGO1 0x10046bb0
|
||||
// FUNCTION: BETA10 0x100b75bc
|
||||
void LegoPathController::FUN_10046bb0(LegoWorld* p_world)
|
||||
{
|
||||
// TODO
|
||||
for (MxS32 i = 0; i < m_numT; i++) {
|
||||
m_structs[i].SetWorld(p_world);
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046be0
|
||||
// FUNCTION: LEGO1 0x10046be0
|
||||
// FUNCTION: BETA10 0x100b7614
|
||||
void LegoPathController::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
if (p_enable) {
|
||||
TickleManager()->RegisterClient(this, 10);
|
||||
}
|
||||
else {
|
||||
TickleManager()->UnregisterClient(this);
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10046c10
|
||||
@@ -493,7 +512,7 @@ MxResult LegoPathController::ReadBoundaries(LegoStorage* p_storage)
|
||||
edges[j] = &m_edges[s];
|
||||
}
|
||||
|
||||
if (p_storage->Read(&boundary.m_unk0x0c, sizeof(boundary.m_unk0x0c)) != SUCCESS) {
|
||||
if (p_storage->Read(&boundary.m_flags, sizeof(boundary.m_flags)) != SUCCESS) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user