Implement/match LegoAnimPresenter::FUN_100699e0 (#793)

This commit is contained in:
Christian Semmler 2024-04-13 10:02:55 -04:00 committed by GitHub
parent e43749c8bb
commit 4502737fe2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 48 additions and 4 deletions

View file

@ -85,7 +85,7 @@ class LegoAnimPresenter : public MxVideoPresenter {
void FUN_100695c0(); void FUN_100695c0();
LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2); LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2);
LegoBool FUN_100698b0(const CompoundObject& p_rois, const LegoChar* p_und2); LegoBool FUN_100698b0(const CompoundObject& p_rois, const LegoChar* p_und2);
LegoROI* FUN_100699e0(const LegoChar*); LegoROI* FUN_100699e0(const LegoChar* p_und);
void FUN_10069b10(); void FUN_10069b10();
void FUN_1006a3c0(LegoAnimPresenterMap& p_map, LegoTreeNode* p_node, LegoROI* p_roi); 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); void FUN_1006a4f0(LegoAnimPresenterMap& p_map, LegoAnimNodeData* p_data, const LegoChar* p_und, LegoROI* p_roi);

View file

@ -27,6 +27,19 @@ class LegoROIList : public MxPtrList<LegoROI> {
// LegoROIList::`scalar deleting destructor' // LegoROIList::`scalar deleting destructor'
}; };
// VTABLE: LEGO1 0x100d8d68
// class MxListCursor<LegoROI *>
// VTABLE: LEGO1 0x100d8d38
// class MxPtrListCursor<LegoROI>
// VTABLE: LEGO1 0x100d8d50
// SIZE 0x10
class LegoROIListCursor : public MxPtrListCursor<LegoROI> {
public:
LegoROIListCursor(LegoROIList* p_list) : MxPtrListCursor<LegoROI>(p_list) {}
};
// TEMPLATE: LEGO1 0x1005f380 // TEMPLATE: LEGO1 0x1005f380
// MxCollection<LegoROI *>::Compare // MxCollection<LegoROI *>::Compare
@ -51,6 +64,24 @@ class LegoROIList : public MxPtrList<LegoROI> {
// SYNTHETIC: LEGO1 0x1005f660 // SYNTHETIC: LEGO1 0x1005f660
// MxPtrList<LegoROI>::`scalar deleting destructor' // MxPtrList<LegoROI>::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x10063540
// LegoROIListCursor::`scalar deleting destructor'
// FUNCTION: LEGO1 0x100635b0
// MxPtrListCursor<LegoROI>::~MxPtrListCursor<LegoROI>
// SYNTHETIC: LEGO1 0x10063600
// MxListCursor<LegoROI *>::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x10063670
// MxPtrListCursor<LegoROI>::`scalar deleting destructor'
// FUNCTION: LEGO1 0x100636e0
// MxListCursor<LegoROI *>::~MxListCursor<LegoROI *>
// FUNCTION: LEGO1 0x10063730
// LegoROIListCursor::~LegoROIListCursor
// TEMPLATE: LEGO1 0x1006ea00 // TEMPLATE: LEGO1 0x1006ea00
// MxListEntry<LegoROI *>::MxListEntry<LegoROI *> // MxListEntry<LegoROI *>::MxListEntry<LegoROI *>

View file

@ -306,10 +306,23 @@ LegoBool LegoAnimPresenter::FUN_100698b0(const CompoundObject& p_rois, const Leg
return result; return result;
} }
// STUB: LEGO1 0x100699e0 // FUNCTION: LEGO1 0x100699e0
LegoROI* LegoAnimPresenter::FUN_100699e0(const LegoChar*) LegoROI* LegoAnimPresenter::FUN_100699e0(const LegoChar* p_und)
{ {
// TODO LegoROIListCursor cursor(m_unk0x70);
LegoROI* roi;
while (cursor.Next(roi)) {
LegoChar* und = FUN_100697c0(roi->GetName(), NULL);
if (und != NULL && !strcmpi(und, p_und)) {
delete[] und;
return roi;
}
delete[] und;
}
return NULL; return NULL;
} }