mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 16:34:06 +00:00
Implement IslePathActor::VTable0xe0 & VTable0xec (#788)
* Implement IslePathActor::VTable0xe0 & VTable0xec * Revert random change
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
#include "islepathactor.h"
|
||||
|
||||
#include "legoanimationmanager.h"
|
||||
#include "legonavcontroller.h"
|
||||
#include "legoutils.h"
|
||||
#include "misc.h"
|
||||
#include "mxnotificationparam.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(IslePathActor, 0x160)
|
||||
@@ -53,10 +57,30 @@ MxLong IslePathActor::Notify(MxParam& p_param)
|
||||
return ret;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001a350
|
||||
// FUNCTION: LEGO1 0x1001a350
|
||||
void IslePathActor::VTable0xe0()
|
||||
{
|
||||
// TODO
|
||||
m_roi->SetVisibility(FALSE);
|
||||
if (CurrentActor() != this) {
|
||||
m_unk0x15c = NavController()->GetMaxLinearVel();
|
||||
m_unk0x158 = CurrentActor();
|
||||
if (m_unk0x158) {
|
||||
m_unk0x158->ResetWorldTransform(FALSE);
|
||||
m_unk0x158->SetUserNavFlag(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
AnimationManager()->FUN_10061010(0);
|
||||
if (!m_cameraFlag) {
|
||||
ResetWorldTransform(TRUE);
|
||||
SetUserNavFlag(TRUE);
|
||||
|
||||
NavController()->ResetLinearVel(m_unk0x13c);
|
||||
|
||||
SetCurrentActor(this);
|
||||
FUN_1001b660();
|
||||
FUN_10010c30();
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001a3f0
|
||||
@@ -71,8 +95,35 @@ void IslePathActor::VTable0xe8(LegoGameState::Area, MxBool, MxU8)
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001b5b0
|
||||
void IslePathActor::VTable0xec(MxMatrix, LegoPathBoundary*, MxBool)
|
||||
// FUNCTION: LEGO1 0x1001b5b0
|
||||
void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
|
||||
{
|
||||
if (m_world) {
|
||||
m_world->FUN_1001fc80(this);
|
||||
m_world->Remove(this);
|
||||
VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi);
|
||||
}
|
||||
|
||||
m_world = CurrentWorld();
|
||||
if (p_reset) {
|
||||
VTable0xe0();
|
||||
}
|
||||
|
||||
m_world->FUN_1001fa70(this);
|
||||
p_boundary->AddActor(this);
|
||||
if (m_actorId != GameState()->GetActorId()) {
|
||||
m_world->Add(this);
|
||||
}
|
||||
|
||||
m_roi->FUN_100a58f0(p_transform);
|
||||
if (m_cameraFlag) {
|
||||
FUN_1003eda0();
|
||||
FUN_10010c30();
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001b660
|
||||
void IslePathActor::FUN_1001b660()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
Reference in New Issue
Block a user