mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Implement/match LegoPathController::Tickle (#913)
This commit is contained in:
parent
32a3373360
commit
b6fc8e27b1
3 changed files with 30 additions and 2 deletions
|
@ -15,6 +15,10 @@ struct LegoUnknown100db7f4;
|
||||||
// SIZE 0x154
|
// SIZE 0x154
|
||||||
class LegoPathActor : public LegoActor {
|
class LegoPathActor : public LegoActor {
|
||||||
public:
|
public:
|
||||||
|
enum {
|
||||||
|
c_bit3 = 0x04
|
||||||
|
};
|
||||||
|
|
||||||
LegoPathActor();
|
LegoPathActor();
|
||||||
~LegoPathActor() override;
|
~LegoPathActor() override;
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,7 @@ class LegoPathController : public MxCore {
|
||||||
static MxResult Init();
|
static MxResult Init();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void FUN_10046970();
|
||||||
MxResult Read(LegoStorage* p_storage);
|
MxResult Read(LegoStorage* p_storage);
|
||||||
MxResult ReadStructs(LegoStorage* p_storage);
|
MxResult ReadStructs(LegoStorage* p_storage);
|
||||||
MxResult ReadEdges(LegoStorage* p_storage);
|
MxResult ReadEdges(LegoStorage* p_storage);
|
||||||
|
@ -119,6 +120,9 @@ class LegoPathController : public MxCore {
|
||||||
};
|
};
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
// TEMPLATE: LEGO1 0x1002c4a0
|
||||||
|
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Buynode
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x100451a0
|
// TEMPLATE: LEGO1 0x100451a0
|
||||||
// _Tree<LegoPathCtrlEdge *,LegoPathCtrlEdge *,set<LegoPathCtrlEdge *,LegoPathCtrlEdgeCompare,allocator<LegoPathCtrlEdge *> >::_Kfn,LegoPathCtrlEdgeCompare,allocator<LegoPathCtrlEdge *> >::~_Tree<LegoPathCtrlEdge *,LegoPathCtrlEdge *,set<LegoPathCtrlEdge *,LegoPathControl
|
// _Tree<LegoPathCtrlEdge *,LegoPathCtrlEdge *,set<LegoPathCtrlEdge *,LegoPathCtrlEdgeCompare,allocator<LegoPathCtrlEdge *> >::_Kfn,LegoPathCtrlEdgeCompare,allocator<LegoPathCtrlEdge *> >::~_Tree<LegoPathCtrlEdge *,LegoPathCtrlEdge *,set<LegoPathCtrlEdge *,LegoPathControl
|
||||||
|
|
||||||
|
|
|
@ -187,10 +187,11 @@ void LegoPathController::Destroy()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10045c10
|
// FUNCTION: LEGO1 0x10045c10
|
||||||
|
// FUNCTION: BETA10 0x100b6d60
|
||||||
MxResult LegoPathController::Tickle()
|
MxResult LegoPathController::Tickle()
|
||||||
{
|
{
|
||||||
// TODO
|
FUN_10046970();
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,6 +245,25 @@ void LegoPathController::FUN_10046930(LegoAnimPresenter* p_presenter)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10046970
|
||||||
|
// FUNCTION: BETA10 0x100b73d8
|
||||||
|
void LegoPathController::FUN_10046970()
|
||||||
|
{
|
||||||
|
float time = Timer()->GetTime();
|
||||||
|
|
||||||
|
LegoPathActorSet lpas(m_actors);
|
||||||
|
|
||||||
|
for (LegoPathActorSet::iterator itpa = lpas.begin(); itpa != lpas.end(); itpa++) {
|
||||||
|
LegoPathActor* actor = *itpa;
|
||||||
|
|
||||||
|
if (m_actors.find(actor) != m_actors.end()) {
|
||||||
|
if (!((MxU8) actor->GetState() & LegoPathActor::c_bit3)) {
|
||||||
|
actor->VTable0x70(time);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10046b30
|
// STUB: LEGO1 0x10046b30
|
||||||
MxResult LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value)
|
MxResult LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue