Files
ss/include/d/lyt/d_structd.h
T
2025-03-09 21:15:53 +01:00

108 lines
2.4 KiB
C++

#ifndef D_LYT_STRUCTD_H
#define D_LYT_STRUCTD_H
#include "common.h"
#include "egg/core/eggHeap.h"
#include "toBeSorted/tlist.h"
namespace d2d {
class dLytStructD;
class dLytStructC {
public:
dLytStructC() : field_0x10(0), field_0x14(nullptr) {}
virtual ~dLytStructC() {}
virtual void *dLytStructC0x0C();
TListNode<dLytStructC> mLink;
u16 field_0x10;
dLytStructD *field_0x14;
};
class dLytStructCSub : public dLytStructC {
private:
public:
dLytStructCSub() {}
virtual ~dLytStructCSub() {}
virtual void *dLytStructC0x0C();
u8 field_0x18[8];
};
struct dLytStructD_Base {
dLytStructD_Base() : field_0x0C(0), field_0x10(0), field_0x14(0), field_0x015(0), field_0x016(0) {}
virtual u32 getType() = 0;
virtual void doSomething() = 0;
TListNode<dLytStructD_Base> mLink;
u32 field_0x0C;
u32 field_0x10;
u16 field_0x14;
u8 field_0x015;
u8 field_0x016;
};
struct dLytStructDInArray {
dLytStructDInArray() {
field_0x04 = 0;
field_0x08 = 0;
field_0x0A = 0;
field_0x0C = 0;
field_0x0E = 0;
}
virtual ~dLytStructDInArray() {}
u32 field_0x04;
u16 field_0x08;
u16 field_0x0A;
u16 field_0x0C;
u16 field_0x0E;
};
struct dLytStructD : dLytStructD_Base {
dLytStructD()
: field_0x18(0), field_0x1C(nullptr), field_0x20(0), field_0x22(0), field_0x23(0), field_0x24(nullptr) {}
virtual u32 getType() override;
virtual void doSomething() override;
virtual ~dLytStructD();
void init(nw4r::lyt::Pane *, u16, u8, u8);
void fn_80065E70(nw4r::lyt::Pane *, s32, s32, s32);
void fn_80065F70();
u32 field_0x18;
dLytStructDInArray *field_0x1C;
u16 field_0x20;
u8 field_0x22;
u8 field_0x23;
void *field_0x24;
};
class dLytStructDList {
public:
dLytStructDList();
static dLytStructDList *create(EGG::Heap *heap);
void appendToList1(dLytStructC *other);
void removeFromList1(dLytStructC *other);
void appendToList2(dLytStructD *other);
void removeFromList2(dLytStructD *other);
bool fn_80065A30(dLytStructD *other);
static dLytStructDList *GetInstance() {
return sInstance;
}
private:
static dLytStructDList *sInstance;
TList<dLytStructC, offsetof(dLytStructC, mLink)> mList1;
TList<dLytStructD, offsetof(dLytStructD, mLink)> mList2;
bool field_0x18;
};
} // namespace d2d
#endif