Refactor list cursors

This commit is contained in:
disinvite 2023-12-06 15:48:17 -05:00
parent 43d79fd818
commit 4c1f63413f
6 changed files with 28 additions and 20 deletions

View File

@ -26,6 +26,9 @@ class MxDSActionList : public MxList<MxDSAction*> {
undefined m_unk18; undefined m_unk18;
}; };
typedef MxListCursorChild<MxDSAction*> MxDSActionListCursor; class MxDSActionListCursor : public MxListCursor<MxDSAction*> {
public:
MxDSActionListCursor(MxDSActionList* p_list) : MxListCursor<MxDSAction*>(p_list){};
};
#endif // MXDSACTIONLIST_H #endif // MXDSACTIONLIST_H

View File

@ -100,18 +100,10 @@ class MxListCursor : public MxCore {
MxListEntry<T>* m_match; MxListEntry<T>* m_match;
}; };
// Unclear purpose
template <class T> template <class T>
class MxListCursorChild : public MxListCursor<T> { class MxPtrListCursor : public MxListCursor<T*> {
public: public:
MxListCursorChild(MxList<T>* p_list) : MxListCursor<T>(p_list) {} MxPtrListCursor(MxPtrList<T>* p_list) : MxListCursor<T*>(p_list){};
};
// Unclear purpose
template <class T>
class MxListCursorChildChild : public MxListCursorChild<T> {
public:
MxListCursorChildChild(MxList<T>* p_list) : MxListCursorChild<T>(p_list) {}
}; };
template <class T> template <class T>

View File

@ -15,7 +15,10 @@ class MxPresenterList : public MxPtrList<MxPresenter> {
virtual MxS8 Compare(MxPresenter*, MxPresenter*) override; // vtable+0x14 virtual MxS8 Compare(MxPresenter*, MxPresenter*) override; // vtable+0x14
}; };
typedef MxListCursorChildChild<MxPresenter*> MxPresenterListCursor; class MxPresenterListCursor : public MxPtrListCursor<MxPresenter> {
public:
MxPresenterListCursor(MxPresenterList* p_list) : MxPtrListCursor<MxPresenter>(p_list){};
};
// VTABLE: LEGO1 0x100d6350 // VTABLE: LEGO1 0x100d6350
// class MxCollection<MxPresenter *> // class MxCollection<MxPresenter *>

View File

@ -24,12 +24,10 @@ class MxRegionList : public MxPtrList<MxRegionTopBottom> {
}; };
// VTABLE: LEGO1 0x100dcb88 // VTABLE: LEGO1 0x100dcb88
// class MxListCursorChildChild<MxRegionTopBottom *> class MxRegionListCursor : public MxPtrListCursor<MxRegionTopBottom> {
typedef MxListCursorChildChild<MxRegionTopBottom*> MxRegionListCursor; public:
MxRegionListCursor(MxRegionList* p_list) : MxPtrListCursor<MxRegionTopBottom>(p_list){};
// VTABLE: LEGO1 0x100dcc10 };
// class MxListCursorChildChild<MxRegionLeftRight *>
typedef MxListCursorChildChild<MxRegionLeftRight*> MxRegionLeftRightListCursor;
// VTABLE: LEGO1 0x100dcc40 // VTABLE: LEGO1 0x100dcc40
// class MxCollection<MxRegionLeftRight *> // class MxCollection<MxRegionLeftRight *>
@ -48,4 +46,10 @@ class MxRegionLeftRightList : public MxPtrList<MxRegionLeftRight> {
static void Destroy(MxRegionLeftRight*); static void Destroy(MxRegionLeftRight*);
}; };
// VTABLE: LEGO1 0x100dcc10
class MxRegionLeftRightListCursor : public MxPtrListCursor<MxRegionLeftRight> {
public:
MxRegionLeftRightListCursor(MxRegionLeftRightList* p_list) : MxPtrListCursor<MxRegionLeftRight>(p_list){};
};
#endif // MXREGIONLIST_H #endif // MXREGIONLIST_H

View File

@ -23,6 +23,9 @@ class MxStreamChunkList : public MxList<MxStreamChunk*> {
static void Destroy(MxStreamChunk* p_chunk); static void Destroy(MxStreamChunk* p_chunk);
}; };
typedef MxListCursorChild<MxStreamChunk*> MxStreamChunkListCursor; class MxStreamChunkListCursor : public MxListCursor<MxStreamChunk*> {
public:
MxStreamChunkListCursor(MxStreamChunkList* p_list) : MxListCursor<MxStreamChunk*>(p_list){};
};
#endif // MXSTREAMCHUNKLIST_H #endif // MXSTREAMCHUNKLIST_H

View File

@ -9,6 +9,9 @@
class MxStringList : public MxList<MxString> {}; class MxStringList : public MxList<MxString> {};
// VTABLE: LEGO1 0x100dd058 // VTABLE: LEGO1 0x100dd058
typedef MxListCursorChild<MxString> MxStringListCursor; class MxStringListCursor : public MxListCursor<MxString> {
public:
MxStringListCursor(MxStringList* p_list) : MxListCursor<MxString>(p_list){};
};
#endif // MXSTRINGLIST_H #endif // MXSTRINGLIST_H