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
|
||||
class LegoPathActor : public LegoActor {
|
||||
public:
|
||||
enum {
|
||||
c_bit3 = 0x04
|
||||
};
|
||||
|
||||
LegoPathActor();
|
||||
~LegoPathActor() override;
|
||||
|
||||
|
|
|
@ -99,6 +99,7 @@ class LegoPathController : public MxCore {
|
|||
static MxResult Init();
|
||||
|
||||
private:
|
||||
void FUN_10046970();
|
||||
MxResult Read(LegoStorage* p_storage);
|
||||
MxResult ReadStructs(LegoStorage* p_storage);
|
||||
MxResult ReadEdges(LegoStorage* p_storage);
|
||||
|
@ -119,6 +120,9 @@ class LegoPathController : public MxCore {
|
|||
};
|
||||
|
||||
// clang-format off
|
||||
// TEMPLATE: LEGO1 0x1002c4a0
|
||||
// _Tree<LegoPathActor *,LegoPathActor *,set<LegoPathActor *,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Kfn,LegoPathActorSetCompare,allocator<LegoPathActor *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x100451a0
|
||||
// _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()
|
||||
{
|
||||
// TODO
|
||||
FUN_10046970();
|
||||
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
|
||||
MxResult LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue