mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Implement/match remaining LegoWorld functions
This commit is contained in:
parent
d324fd664a
commit
e3ccf16628
@ -71,7 +71,7 @@ class LegoOmni : public MxOmni {
|
||||
|
||||
void CreateBackgroundAudio();
|
||||
void RemoveWorld(const MxAtomId&, MxLong);
|
||||
static int GetCurrPathInfo(LegoPathBoundary**, MxS32&);
|
||||
static MxS32 GetCurrPathInfo(LegoPathBoundary**, MxS32&);
|
||||
static void CreateInstance();
|
||||
static LegoOmni* GetInstance();
|
||||
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
#ifndef LEGOPATHCONTROLLER_H
|
||||
#define LEGOPATHCONTROLLER_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxcore.h"
|
||||
|
||||
class IslePathActor;
|
||||
class LegoPathBoundary;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7d60
|
||||
// SIZE 0x40
|
||||
class LegoPathController : public MxCore {
|
||||
@ -32,6 +36,8 @@ class LegoPathController : public MxCore {
|
||||
virtual void Destroy(); // vtable+0x18
|
||||
|
||||
void Enable(MxBool p_enable);
|
||||
undefined4 FUN_10046770(IslePathActor* p_actor);
|
||||
MxS32 FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value);
|
||||
};
|
||||
|
||||
#endif // LEGOPATHCONTROLLER_H
|
||||
|
||||
@ -70,7 +70,7 @@ class LegoWorld : public LegoEntity {
|
||||
MxBool PresentersPending();
|
||||
void Remove(MxCore* p_object);
|
||||
void FUN_1001fc80(IslePathActor* p_actor);
|
||||
MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
|
||||
MxResult GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
|
||||
MxCore* Find(const char* p_class, const char* p_name);
|
||||
MxCore* Find(const MxAtomId& p_atom, MxS32 p_entityId);
|
||||
|
||||
|
||||
@ -265,16 +265,32 @@ LegoCameraController* LegoWorld::VTable0x54()
|
||||
return m_cameraController;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1001fc80
|
||||
// FUNCTION: LEGO1 0x1001fc80
|
||||
void LegoWorld::FUN_1001fc80(IslePathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
if (!controller->FUN_10046770(p_actor)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10020120
|
||||
MxS32 LegoWorld::GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
// FUNCTION: LEGO1 0x10020120
|
||||
MxResult LegoWorld::GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathController* controller;
|
||||
|
||||
cursor.Next(controller);
|
||||
|
||||
if (!controller) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
return controller->FUN_10046b30(p_path, p_value);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10020220
|
||||
|
||||
@ -748,7 +748,7 @@ MxBool LegoOmni::DoesEntityExist(MxDSAction& p_dsAction)
|
||||
MxS32 LegoOmni::GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
{
|
||||
if (::CurrentWorld() == NULL) {
|
||||
return -1;
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
return ::CurrentWorld()->GetCurrPathInfo(p_path, p_value);
|
||||
|
||||
@ -30,3 +30,15 @@ void LegoPathController::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046770
|
||||
undefined4 LegoPathController::FUN_10046770(IslePathActor* p_actor)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046b30
|
||||
MxS32 LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user