mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Implement/match LegoAnimPresenter::FUN_1006abb0 (#795)
This commit is contained in:
parent
93257a7c8c
commit
d469cabd6b
2 changed files with 49 additions and 5 deletions
|
@ -90,7 +90,7 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
|||
void FUN_1006a3c0(LegoAnimPresenterMap& p_map, LegoTreeNode* p_node, LegoROI* p_roi);
|
||||
void FUN_1006a4f0(LegoAnimPresenterMap& p_map, LegoAnimNodeData* p_data, const LegoChar* p_und, LegoROI* p_roi);
|
||||
LegoBool FUN_1006aba0();
|
||||
LegoBool FUN_1006abb0(LegoTreeNode*, undefined4);
|
||||
MxBool FUN_1006abb0(LegoTreeNode* p_node, LegoROI* p_roi);
|
||||
void FUN_1006ac90();
|
||||
void FUN_1006c8a0(MxBool p_bool);
|
||||
|
||||
|
|
|
@ -453,11 +453,55 @@ LegoBool LegoAnimPresenter::FUN_1006aba0()
|
|||
return FUN_1006abb0(m_anim->GetRoot(), 0);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1006abb0
|
||||
LegoBool LegoAnimPresenter::FUN_1006abb0(LegoTreeNode*, undefined4)
|
||||
// FUNCTION: LEGO1 0x1006abb0
|
||||
MxBool LegoAnimPresenter::FUN_1006abb0(LegoTreeNode* p_node, LegoROI* p_roi)
|
||||
{
|
||||
// TODO
|
||||
return FALSE;
|
||||
MxBool result = FALSE;
|
||||
LegoROI* roi = p_roi;
|
||||
LegoChar* und = NULL;
|
||||
const LegoChar* name = ((LegoAnimNodeData*) p_node->GetData())->GetName();
|
||||
MxS32 i, count;
|
||||
|
||||
if (name != NULL && *name != '-') {
|
||||
und = FUN_100697c0(name, p_roi != NULL ? p_roi->GetName() : NULL);
|
||||
|
||||
if (p_roi == NULL) {
|
||||
roi = FUN_100699e0(und);
|
||||
|
||||
if (roi == NULL) {
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
else {
|
||||
LegoROI* roi2 = p_roi->FUN_100a8ce0(name, p_roi);
|
||||
|
||||
if (roi2 == NULL) {
|
||||
if (FUN_100699e0(name) != NULL) {
|
||||
if (FUN_1006abb0(p_node, NULL)) {
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
count = p_node->GetNumChildren();
|
||||
for (i = 0; i < count; i++) {
|
||||
if (!FUN_1006abb0(p_node->GetChild(i), roi)) {
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
result = TRUE;
|
||||
|
||||
done:
|
||||
if (und != NULL) {
|
||||
delete[] und;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1006ac90
|
||||
|
|
Loading…
Reference in a new issue