Add MxUnkList

This commit is contained in:
Christian Semmler 2023-10-08 11:21:52 -04:00
parent c152473605
commit 9058ea0cee
4 changed files with 41 additions and 33 deletions

View File

@ -8,9 +8,6 @@ DECOMP_SIZE_ASSERT(MxCompositePresenter, 0x4c);
// OFFSET: LEGO1 0x100b60b0 // OFFSET: LEGO1 0x100b60b0
MxCompositePresenter::MxCompositePresenter() MxCompositePresenter::MxCompositePresenter()
{ {
this->m_unk44 = (undefined4*) malloc(0xc) + 3;
this->m_unk40 = 0;
this->m_unk48 = 0;
NotificationManager()->Register(this); NotificationManager()->Register(this);
} }

View File

@ -2,6 +2,7 @@
#define MXCOMPOSITEPRESENTER_H #define MXCOMPOSITEPRESENTER_H
#include "mxpresenter.h" #include "mxpresenter.h"
#include "mxunklist.h"
// VTABLE 0x100dc618 // VTABLE 0x100dc618
// SIZE 0x4c // SIZE 0x4c
@ -24,9 +25,7 @@ class MxCompositePresenter : public MxPresenter
return !strcmp(name, MxCompositePresenter::ClassName()) || MxPresenter::IsA(name); return !strcmp(name, MxCompositePresenter::ClassName()) || MxPresenter::IsA(name);
} }
undefined m_unk40; MxUnkList m_list;
undefined4 *m_unk44;
undefined4 m_unk48;
}; };
#endif // MXCOMPOSITEPRESENTER_H #endif // MXCOMPOSITEPRESENTER_H

View File

@ -5,6 +5,7 @@
#include "mxstreamprovider.h" #include "mxstreamprovider.h"
#include "mxthread.h" #include "mxthread.h"
#include "mxcriticalsection.h" #include "mxcriticalsection.h"
#include "mxunklist.h"
class MxDiskStreamProvider; class MxDiskStreamProvider;
@ -23,32 +24,6 @@ class MxDiskStreamProviderThread : public MxThread
MxDiskStreamProvider *m_target; MxDiskStreamProvider *m_target;
}; };
// TODO
struct MxDiskStreamListNode {
MxDiskStreamListNode *m_unk00;
MxDiskStreamListNode *m_unk04;
undefined4 m_unk08;
};
// TODO
struct MxDiskStreamList {
inline MxDiskStreamList() {
undefined unk;
this->m_unk00 = unk;
MxDiskStreamListNode *node = new MxDiskStreamListNode();
node->m_unk00 = node;
node->m_unk04 = node;
this->m_head = node;
this->m_count = 0;
}
undefined m_unk00;
MxDiskStreamListNode *m_head;
MxU32 m_count;
};
// VTABLE 0x100dd138 // VTABLE 0x100dd138
class MxDiskStreamProvider : public MxStreamProvider class MxDiskStreamProvider : public MxStreamProvider
{ {
@ -80,7 +55,7 @@ class MxDiskStreamProvider : public MxStreamProvider
undefined m_remainingWork; // 0x34 undefined m_remainingWork; // 0x34
undefined m_unk35; // 0x35 undefined m_unk35; // 0x35
MxCriticalSection m_criticalSection; // 0x38 MxCriticalSection m_criticalSection; // 0x38
MxDiskStreamList m_list; MxUnkList m_list;
}; };
#endif // MXDISKSTREAMPROVIDER_H #endif // MXDISKSTREAMPROVIDER_H

37
LEGO1/mxunklist.h Normal file
View File

@ -0,0 +1,37 @@
#ifndef MXUNKLIST_H
#define MXUNKLIST_H
#include "decomp.h"
#include "mxtypes.h"
/*
* This is an as-of-yet unknown list-like data structure.
* The class hierarchy/structure isn't quite correct yet.
*/
struct MxUnkListNode {
MxUnkListNode *m_unk00;
MxUnkListNode *m_unk04;
undefined4 m_unk08;
};
class MxUnkList {
public:
inline MxUnkList() {
undefined unk;
this->m_unk00 = unk;
MxUnkListNode *node = new MxUnkListNode();
node->m_unk00 = node;
node->m_unk04 = node;
this->m_head = node;
this->m_count = 0;
}
undefined m_unk00;
MxUnkListNode *m_head;
MxU32 m_count;
};
#endif // MXUNKLIST_H