NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
|
#include <game/bases/d_base.hpp>
The minimum required implementation for a base.
From a technical standpoint, dBase_c does not add any particularly relevant components, which is useful for bases that don't need any additional functionality. A few overloaded functions from the fManager_c search API (searchBaseByProfName) and the fBase_c base creation API (createBase, createRoot) are provided for convenience.
The inherited owner set can be used by bases to link themselves to a specific base (called the owner base) anywhere in the connect tree, avoiding the parent/child relationship requirement. The owner base can then iterate through the set and interact with the linked bases. When the owner base is deleted, all the linked bases are unlinked automatically.
Several bases use this method to link themselves to dBgGm_c, which however does not use the set at all, leaving the feature unused.
Bases store a pointer to a kind string (which roughly describes the group type) and to a profile name string. The former can be obtained by calling getKindString, while the latter can be obtained by calling dProf_getName with the profile name.
The preExecute function gets the kind string every frame and discards the result immediately.
The global variable g_basesRandomSeed stores the current random seed. Every base updates it every frame when its preDraw method is called, but no other code accesses it.
The initLoader function sets two unused callbacks related to the scrapped relocatable profile system. See fBase_c for more details.
Definition at line 7 of file d_base.hpp.
Public Member Functions | |
dBase_c () | |
Constructs a new base. | |
virtual int | preCreate () |
pre method for the create operation. | |
virtual void | postCreate (fBase_c::MAIN_STATE_e status) |
post method for the create operation. | |
virtual int | preDelete () |
pre method for the delete operation. | |
virtual void | postDelete (fBase_c::MAIN_STATE_e status) |
post method for the delete operation. | |
virtual int | preExecute () |
pre method for the execute operation. | |
virtual void | postExecute (fBase_c::MAIN_STATE_e status) |
post method for the execute operation. | |
virtual int | preDraw () |
pre method for the draw operation. | |
virtual void | postDraw (fBase_c::MAIN_STATE_e status) |
post method for the draw operation. | |
virtual | ~dBase_c () |
Destroys the base. | |
virtual const char * | getKindString () const |
Gets the base's kind string. | |
![]() | |
fBase_c () | |
Constructs a new base. | |
void | deleteRequest () |
Requests deletion of the base. | |
fBase_c * | getConnectParent () const |
Gets the base's parent. | |
fBase_c * | getConnectChild () const |
Gets the base's first child. | |
fBase_c * | getConnectBrNext () const |
Gets the base's next sibling. | |
bool | checkChildProcessCreateState () const |
Checks if the base has at least one child in the CREATING state. | |
![]() | |
cOwnerSetMg_c () | |
Constructs a new set container. | |
~cOwnerSetMg_c () | |
Destroys the set. | |
void | add (cOwnerSetNd_c *nd, void *owner) |
Adds a node to the set. | |
void | remove (cOwnerSetNd_c *nd, void *owner) |
Removes a node from the set. | |
Static Public Member Functions | |
static dBase_c * | searchBaseByProfName (ProfileName profile, const dBase_c *parent) |
Searches for a base with a given profile name, optionally under a given parent. | |
static void | initLoader () |
Sets the callbacks for the scrapped relocatable profile system. | |
static dBase_c * | createBase (ProfileName profName, dBase_c *parent, unsigned long param, u8 groupType) |
Creates a child base under the given parent. | |
static dBase_c * | createRoot (ProfileName profName, unsigned long param, u8 groupType) |
Creates a root base. | |
![]() | |
static void * | operator new (size_t) |
new operator override for all bases. | |
static void | operator delete (void *) |
delete operator override for all bases. | |
static fBase_c * | createChild (ProfileName profName, fBase_c *parent, unsigned long param, u8 groupType) |
Creates a child base under the given parent. | |
static fBase_c * | createRoot (ProfileName profName, unsigned long param, u8 groupType) |
Creates a root base. | |
Protected Attributes | |
const char * | mpKindString |
The base's kind string. | |
const char * | mpNameString |
The base's profile name string. | |
![]() | |
u8 | mLifecycleState |
The base's lifecycle state. Value is a LIFECYCLE_e. | |
bool | mDeleteRequested |
If deletion of the base was requested, but the delete operation has not been scheduled yet. | |
bool | mDeferExecute |
If the create operation was completed, but scheduling the execute and draw operations isn't possible at this time. | |
bool | mDeferRetryCreate |
If the create operation has not been completed, and rescheduling it isn't possible at this time. | |
u8 | mGroupType |
The base's group type. Value is a GROUP_TYPE_e. | |
u8 | mProcControl |
The operations to be skipped. Value is a PROC_DISABLE_e. | |
fManager_c | mMng |
The base's process manager. | |
fBaHelper_c * | mpUnusedHelper |
See Unused Content. | |
fLiMgBa_c | mUnusedList |
See Unused Content. | |
EGG::FrmHeap * | mHeap |
The base's dedicated heap. | |
Static Private Member Functions | |
static int | loadAsyncCallback () |
Module loading callback for the scrapped relocatable profile system. | |
static void | unloadCallback () |
Module unloading callback for the scrapped relocatable profile system. | |
Additional Inherited Members | |
![]() | |
enum | LIFECYCLE_e { CREATING , ACTIVE , DELETING } |
The possible lifecycle states. More... | |
enum | GROUP_TYPE_e { OTHER , SCENE , ACTOR } |
The possible group types. More... | |
enum | MAIN_STATE_e { CANCELED , ERROR , SUCCESS , WAITING } |
The possible operation results. More... | |
enum | PACK_RESULT_e { NOT_READY , SUCCEEDED , FAILED } |
The possible operation step results. More... | |
enum | PROC_DISABLE_e { ROOT_DISABLE_EXECUTE = BIT_FLAG(0) , DISABLE_EXECUTE = BIT_FLAG(1) , ROOT_DISABLE_DRAW = BIT_FLAG(2) , DISABLE_DRAW = BIT_FLAG(3) } |
Controls if the execute and draw operations should be skipped. More... | |
![]() | |
fBaseID_e | mUniqueID |
The base's unique identifier. | |
u32 | mParam |
A bitfield that configures the base's behaviour. Its usage varies from profile to profile. | |
ProfileName | mProfName |
The base's profile name. | |
![]() | |
bool | isProcControlFlag (u8 flag) const |
Checks if a flag is set in mProcControl. | |
void | setProcControlFlag (u8 flag) |
Sets a flag in mProcControl. | |
void | clearProcControlFlag (u8 flag) |
Clears a flag in mProcControl. | |
virtual int | create () |
do method for the create operation. | |
virtual int | doDelete () |
do method for the delete operation. | |
virtual int | execute () |
do method for the execute operation. | |
virtual int | draw () |
do method for the draw operation. | |
virtual void | deleteReady () |
Informs the base that it's about to be deleted. | |
virtual bool | entryFrmHeap (unsigned long size, EGG::Heap *parentHeap) |
Creates a heap of the given size for the base. | |
virtual bool | entryFrmHeapNonAdjust (unsigned long size, EGG::Heap *parentHeap) |
Creates a heap of the given size for the base. | |
virtual bool | createHeap () |
[Does nothing]. | |
virtual | ~fBase_c () |
Destroys the base. | |
![]() | |
static int(* | sLoadAsyncCallback )() |
See Unused Content. | |
static void(* | sUnloadCallback )() |
See Unused Content. | |
dBase_c::dBase_c | ( | ) |
Constructs a new base.
Definition at line 13 of file d_base.cpp.
|
virtual |
Destroys the base.
Definition at line 17 of file d_base.cpp.
|
virtual |
pre
method for the create
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 38 of file d_base.cpp.
|
virtual |
post
method for the create
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 42 of file d_base.cpp.
|
virtual |
pre
method for the delete
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 46 of file d_base.cpp.
|
virtual |
post
method for the delete
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 50 of file d_base.cpp.
|
virtual |
pre
method for the execute
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 54 of file d_base.cpp.
|
virtual |
post
method for the execute
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 59 of file d_base.cpp.
|
virtual |
pre
method for the draw
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 63 of file d_base.cpp.
|
virtual |
post
method for the draw
operation.
Reimplemented from fBase_c.
Reimplemented in dBaseActor_c, dMdActor_c, dScene_c, and dWmActor_c.
Definition at line 68 of file d_base.cpp.
|
virtual |
Gets the base's kind string.
Definition at line 72 of file d_base.cpp.
|
static |
Searches for a base with a given profile name, optionally under a given parent.
[This calls fTrMgBa_c::searchNodeByProfName internally].
Definition at line 19 of file d_base.cpp.
|
static |
Sets the callbacks for the scrapped relocatable profile system.
Definition at line 82 of file d_base.cpp.
|
static |
Creates a child base under the given parent.
profName | The base's profile name. |
parent | The base's parent. Must not be nullptr . |
param | The base's parameters. |
groupType | The base's group type. |
nullptr
. Definition at line 87 of file d_base.cpp.
|
static |
Creates a root base.
profName | The base's profile name. |
param | The base's parameters. |
groupType | The base's group type. |
nullptr
. Definition at line 91 of file d_base.cpp.
|
staticprivate |
Module loading callback for the scrapped relocatable profile system.
Definition at line 76 of file d_base.cpp.
|
staticprivate |
Module unloading callback for the scrapped relocatable profile system.
Definition at line 80 of file d_base.cpp.
|
protected |
The base's kind string.
Definition at line 44 of file d_base.hpp.
|
protected |
The base's profile name string.
Definition at line 45 of file d_base.hpp.