Files
ss/include/d/d_base.h
T
2025-09-16 22:32:04 -04:00

66 lines
1.6 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),
};
// 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