mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Implement/match LegoAnimMMPresenter::FUN_1004b6d0 (#832)
This commit is contained in:
parent
b39ea845b0
commit
30747dbae6
3 changed files with 59 additions and 3 deletions
|
@ -67,6 +67,12 @@ class LegoWorld : public LegoEntity {
|
|||
MxBool PresentersPending();
|
||||
void Remove(MxCore* p_object);
|
||||
undefined4 FUN_1001fa70(IslePathActor* p_actor);
|
||||
undefined4 FUN_1001fb70(
|
||||
IslePathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
Vector3& p_direction
|
||||
);
|
||||
void FUN_1001fc80(IslePathActor* p_actor);
|
||||
void FUN_1001fda0(LegoAnimPresenter* p_presenter);
|
||||
void AddPath(LegoPathController* p_controller);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "decomp.h"
|
||||
#include "define.h"
|
||||
#include "islepathactor.h"
|
||||
#include "legoanimationmanager.h"
|
||||
#include "legotraninfo.h"
|
||||
#include "legovideomanager.h"
|
||||
|
@ -405,12 +406,49 @@ MxBool LegoAnimMMPresenter::FUN_1004b6b0(MxLong p_time)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004b6d0
|
||||
// FUNCTION: LEGO1 0x1004b6d0
|
||||
// FUNCTION: BETA10 0x1004ce18
|
||||
MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
||||
{
|
||||
// TODO
|
||||
return FALSE;
|
||||
LegoROI* viewROI = VideoManager()->GetViewROI();
|
||||
IslePathActor* actor = CurrentActor();
|
||||
|
||||
if (m_tranInfo != NULL && m_tranInfo->m_unk0x14 && m_tranInfo->m_unk0x12 != -1 && actor != NULL) {
|
||||
if (m_unk0x64 != NULL) {
|
||||
undefined4 und = 1;
|
||||
|
||||
if (m_presenter != NULL) {
|
||||
m_unk0x64->FUN_1001fc80(actor);
|
||||
|
||||
if (m_tranInfo->m_unk0x29) {
|
||||
Mx3DPointFloat position, direction;
|
||||
|
||||
position = viewROI->GetWorldPosition();
|
||||
direction = viewROI->GetWorldDirection();
|
||||
position[1] -= 1.25;
|
||||
|
||||
und = m_unk0x64->FUN_1001fb70(actor, m_presenter, position, direction);
|
||||
}
|
||||
else {
|
||||
und = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (und != 0) {
|
||||
viewROI->WrappedSetLocalTransform(m_tranInfo->m_unk0x2c);
|
||||
VideoManager()->Get3DManager()->Moved(*viewROI);
|
||||
m_unk0x64->FUN_1001fa70(actor);
|
||||
}
|
||||
|
||||
if (m_tranInfo->m_unk0x29) {
|
||||
actor->VTable0xa8();
|
||||
}
|
||||
}
|
||||
|
||||
actor->SetState(0);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004b8b0
|
||||
|
|
|
@ -274,6 +274,18 @@ undefined4 LegoWorld::FUN_1001fa70(IslePathActor* p_actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001fb70
|
||||
undefined4 LegoWorld::FUN_1001fb70(
|
||||
IslePathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
Vector3& p_direction
|
||||
)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001fc80
|
||||
void LegoWorld::FUN_1001fc80(IslePathActor* p_actor)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue