mirror of
https://github.com/zeldaret/ss
synced 2026-05-23 15:01:38 -04:00
73 lines
2.1 KiB
C++
73 lines
2.1 KiB
C++
#ifndef D_BASE_H
|
|
#define D_BASE_H
|
|
|
|
#include "f/f_base.h"
|
|
// #include "c/c_owner_set.h"
|
|
|
|
// Ghidra: dBase_c
|
|
// size: 0x68
|
|
// non-official but likely name
|
|
class dBase_c : public fBase_c {
|
|
public:
|
|
enum BaseProperties_e {
|
|
BASE_PROP_0x1 = (1 << 0),
|
|
BASE_PROP_0x2 = (1 << 1),
|
|
BASE_PROP_0x4 = (1 << 2),
|
|
BASE_PROP_0x8 = (1 << 3),
|
|
BASE_PROP_0x10 = (1 << 4),
|
|
BASE_PROP_0x20 = (1 << 5),
|
|
BASE_PROP_0x40 = (1 << 6),
|
|
BASE_PROP_0x80 = (1 << 7),
|
|
BASE_PROP_0x100 = (1 << 8),
|
|
BASE_PROP_0x200 = (1 << 9),
|
|
BASE_PROP_0x400 = (1 << 10),
|
|
|
|
BASE_PROP_UNK_PARTICLE_1 = BASE_PROP_0x400 | BASE_PROP_0x200 | BASE_PROP_0x80 | BASE_PROP_0x40 |
|
|
BASE_PROP_0x20 | BASE_PROP_0x10 | BASE_PROP_0x8 | BASE_PROP_0x1,
|
|
BASE_PROP_UNK_PARTICLE_2 = BASE_PROP_0x400 | BASE_PROP_0x200 | BASE_PROP_0x80 | BASE_PROP_0x40 |
|
|
BASE_PROP_0x20 | BASE_PROP_0x10 | BASE_PROP_0x8 | BASE_PROP_0x2 | BASE_PROP_0x1,
|
|
};
|
|
|
|
// field from profile init
|
|
/* 0x64 */ u32 mBaseProperties;
|
|
|
|
public:
|
|
dBase_c();
|
|
virtual int preExecute();
|
|
virtual void postExecute(MAIN_STATE_e state);
|
|
virtual int preDraw();
|
|
virtual void postDraw(MAIN_STATE_e state);
|
|
virtual ~dBase_c() {}
|
|
|
|
public:
|
|
static void resetFlags();
|
|
bool isActorPlayer();
|
|
static void initLoader();
|
|
static dBase_c *createBase(ProfileName, dBase_c *, u32, u8);
|
|
static dBase_c *createRoot(ProfileName, u32, u8);
|
|
|
|
bool checkBaseProperty(u32 property) const {
|
|
return (mBaseProperties & property) != 0;
|
|
}
|
|
void setBaseProperty(u32 property) {
|
|
mBaseProperties |= property;
|
|
}
|
|
void unsetBaseProperty(u32 property) {
|
|
mBaseProperties &= ~property;
|
|
}
|
|
|
|
private:
|
|
static int loadAsyncCallback();
|
|
static void unloadCallback();
|
|
|
|
public:
|
|
static u32 s_ExecuteControlFlags;
|
|
static u32 s_DrawControlFlags;
|
|
static u32 s_NextExecuteControlFlags;
|
|
// static fProfile::fBaseProfile_c** DAT_ACTOR_ALLOCATION_FUNCTIONS;
|
|
|
|
friend class fBase_c;
|
|
};
|
|
|
|
#endif
|