New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ActorMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/ActorBase.h>
4#include <actor/ActorPtrCache.h>
5
6#include <container/seadOffsetList.h>
7#include <container/seadPtrArray.h>
8#include <container/seadRingBuffer.h>
9#include <heap/seadDisposer.h>
10#include <heap/seadUnitHeap.h>
11#include <heap/seadFrameHeap.h>
12
14{
15 // createInstance() Address: 0x02008CB4
16 // deleteInstance() Address: Deleted
17 // sInstance Address: 0x101C30C8
18 // SingletonDisposer_::~SingletonDisposer_() Address: 0x02009FA8
19 // SingletonDisposer_::sStaticDisposer Address: 0x101C30CC
20 // SingletonDisposer_::vtbl Address: 0x10000CD0
22
23public:
25 {
28 // Anything else other than above:
29 //cImmediatelyType_Independent (most likely unintentional)
30 };
31
32public:
36
37public:
38 // Address: 0x02008AB0
40 // Address: 0x02009000
42
43private:
44 // Address: 0x020090CC
45 ActorBase* constructActor_(const ActorCreateParameter& param, bool create_immediately);
46 // Address: 0x02009218
47 ActorBase::MainState createActor_(ActorBase* actor);
48
49 // Address: 0x0200932C
50 static void delete_(ActorBase* actor);
51 // Address: 0x02009338
52 void moveActorToDestroyList_(ActorBase* actor);
53
54 // Address: 0x0200940C
55 void insertToExecuteAndDrawList_(ActorBase* actor);
56
57 // Address: 0x02009590
58 bool isValidExec_(const ActorBase& actor);
59
60 // Address: 0x02008D34
62 // Address: 0x02008DC8
63 void procDestroy_(bool destroy);
64
65public:
66 // Address: 0x0200959C
67 void prepare(sead::Heap* heap);
68
69 // Address: 0x02009648
70 void createAdditionalHeap(sead::FrameHeap** heap);
71 // Address: 0x020096B0
72 void destroyAdditionalHeap(sead::FrameHeap** heap);
73
74 // Address: 0x020098A8
75 void areaOut();
76
77 // Address: 0x02009954
78 void createLater(const ActorCreateParameter& param);
79 // Address: 0x02009A58
80 ActorBase* createImmediately(const ActorCreateParameter& param, ImmediatelyType option = cImmediatelyType_ActiveLater);
81
82public:
83 // Address: 0x02009B6C
84 iterator find(s32 i_profile_id, iterator it_begin) const;
85 iterator find(s32 i_profile_id) const
86 {
87 return find(i_profile_id, getActorBegin());
88 }
89
90 // Address: 0x02009BA4
91 u32 count(s32 i_profile_id) const;
92
93 iterator find(ActorFindFunc& io_find_func, iterator it_begin) const
94 {
95 return mActorPtrCache.find(io_find_func, it_begin);
96 }
97
98 iterator find(ActorFindFunc& io_find_func) const
99 {
100 return mActorPtrCache.find(io_find_func);
101 }
102
104 {
105 return mActorPtrCache.getActorBegin();
106 }
107
109 {
110 return mActorPtrCache.getActorEnd();
111 }
112
113 ActorBase* getActorPtr(UniqueID id) const
114 {
115 return mActorPtrCache.getActorPtr(id);
116 }
117
118 template <typename T>
119 T* getActorPtr(UniqueID id) const
120 {
121 return static_cast<T*>(mActorPtrCache.getActorPtr(id));
122 }
123
124 u32 count(ActorFindFunc& io_find_func) const
125 {
126 return mActorPtrCache.count(io_find_func);
127 }
128
130 {
131 return mActorPtrCache.forEach(callback, param);
132 }
133
134private:
135 // Address: 0x02009BDC
137 // procCreate_() is inlined into the above in NSMBU
138
139public:
140 // Address: 0x02009D58
141 void calc();
142
143 // Address: 0x02009EA0
144 void entryLastExecute(ActorBase* actor);
145
146 // Address: 0x02009ECC
147 void draw(/* const agl::lyr::RenderInfo* renderInfo */);
148
149private:
165
166 friend class ActorBase;
167};
168static_assert(sizeof(ActorMgr) == 0x6A44, "ActorMgr size mismatch");
Base interface class for all actors in the game. Lifecycle is handled by ActorMgr.
Definition ActorBase.h:19
Definition ActorMgr.h:14
void forEach(ActorForEachCallback callback, ActorForEachParam param) const
Definition ActorMgr.h:129
bool isValidExec_(const ActorBase &actor)
sead::UnitHeap * mActorUnitHeap
Definition ActorMgr.h:151
bool mActorDrawDone
Definition ActorMgr.h:163
iterator find(ActorFindFunc &io_find_func) const
Definition ActorMgr.h:98
T * getActorPtr(UniqueID id) const
Definition ActorMgr.h:119
ActorBase::List mDeleteManage
Definition ActorMgr.h:154
ActorBase * createImmediately(const ActorCreateParameter &param, ImmediatelyType option=cImmediatelyType_ActiveLater)
void insertToExecuteAndDrawList_(ActorBase *actor)
ActorBase * getActorPtr(UniqueID id) const
Definition ActorMgr.h:113
void areaOut()
void destroyAdditionalHeap(sead::FrameHeap **heap)
bool mActorCreateImmediately
Definition ActorMgr.h:161
iterator find(ActorFindFunc &io_find_func, iterator it_begin) const
Definition ActorMgr.h:93
void calcCreate()
void procDestroy_(bool destroy)
ActorPtrCache::ActorForEachParam ActorForEachParam
Definition ActorMgr.h:34
ActorBase::List mExecuteManage
Definition ActorMgr.h:155
static void delete_(ActorBase *actor)
void moveCreateToDestroyList_()
iterator getActorEnd() const
Definition ActorMgr.h:108
sead::FixedPtrArray< sead::Heap, 520 > mActorDeleteHeap
Definition ActorMgr.h:157
ActorBase::List mCreateManage
Definition ActorMgr.h:153
void prepare(sead::Heap *heap)
void entryLastExecute(ActorBase *actor)
u8 _6a41[3]
Definition ActorMgr.h:164
void calc()
UniqueID mActorCreateID
Definition ActorMgr.h:160
void draw()
iterator find(s32 i_profile_id, iterator it_begin) const
void createLater(const ActorCreateParameter &param)
sead::FixedPtrArray< ActorBase, 520 > mActorFinalUpdate
Definition ActorMgr.h:158
sead::UnitHeap * mPlayerUnitHeap
Definition ActorMgr.h:150
sead::FixedRingBuffer< ActorCreateParameter, 520 > mDeferredActorCreate
Definition ActorMgr.h:152
void moveActorToDestroyList_(ActorBase *actor)
ActorBase::List mDrawManage
Definition ActorMgr.h:156
void createAdditionalHeap(sead::FrameHeap **heap)
ActorPtrCache mActorPtrCache
Definition ActorMgr.h:159
iterator getActorBegin() const
Definition ActorMgr.h:103
ActorPtrCache::ActorForEachCallback ActorForEachCallback
Definition ActorMgr.h:35
u8 _6a3d[3]
Definition ActorMgr.h:162
ActorPtrCache::iterator iterator
Definition ActorMgr.h:33
ActorBase * constructActor_(const ActorCreateParameter &param, bool create_immediately)
ActorBase::MainState createActor_(ActorBase *actor)
u32 count(s32 i_profile_id) const
u32 count(ActorFindFunc &io_find_func) const
Definition ActorMgr.h:124
iterator find(s32 i_profile_id) const
Definition ActorMgr.h:85