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
13{
14 // createInstance() Address: 0x02008CB4
15 // deleteInstance() Address: Deleted
16 // sInstance Address: 0x101C30C8
17 // SingletonDisposer_::~SingletonDisposer_() Address: 0x02009FA8
18 // SingletonDisposer_::sStaticDisposer Address: 0x101C30CC
19 // SingletonDisposer_::vtbl Address: 0x10000CD0
21
22public:
24 {
27 // Anything else other than above:
28 //cCreateOption_Independent (most likely unintentional)
29 };
30
31public:
35
36public:
37 // Address: 0x02008AB0
39 // Address: 0x02009000
41
42private:
43 // Address: 0x020090CC
44 ActorBase* doConstructActor_(const ActorCreateParam& param, bool create_immediately);
45 // Address: 0x02009218
46 ActorBase::MainState doCreate_(ActorBase* actor);
47
48 // Address: 0x0200932C
49 static void delete_(ActorBase* actor);
50 // Address: 0x02009338
51 void doDelete_(ActorBase* actor);
52
53 // Address: 0x0200940C
54 void pushExecuteAndDrawList_(ActorBase* actor);
55
56 // Address: 0x02009590
57 bool deleteNotRequested_(ActorBase* actor);
58
59 // Address: 0x02008D34
61 // Address: 0x02008DC8
62 void doDeleteActors_(bool destroy);
63
64public:
65 // Address: 0x0200959C
66 void initialize(sead::Heap* heap);
67
68 // Address: 0x02009648
69 void createAdditionalHeap(sead::Heap** heap);
70 // Address: 0x020096B0
71 void destroyAdditionalHeap(sead::Heap** heap);
72
73 // Address: 0x020098A8
74 void destroy();
75
76 // Address: 0x02009954
77 void createLater(const ActorCreateParam& param);
78 // Address: 0x02009A58
79 ActorBase* createImmediately(const ActorCreateParam& param, CreateOption option = cCreateOption_ActiveLater);
80
81public:
82 // Address: 0x02009B6C
83 iterator find(s32 i_profile_id, iterator it_begin) const;
84 iterator find(s32 i_profile_id) const
85 {
86 return find(i_profile_id, getActorBegin());
87 }
88
89 // Address: 0x02009BA4
90 u32 count(s32 i_profile_id) const;
91
92 iterator find(ActorFindFunc* io_find_func, iterator it_begin) const
93 {
94 return mActorPtrCache.find(io_find_func, it_begin);
95 }
96
97 iterator find(ActorFindFunc* io_find_func) const
98 {
99 return mActorPtrCache.find(io_find_func);
100 }
101
103 {
104 return mActorPtrCache.getActorBegin();
105 }
106
108 {
109 return mActorPtrCache.getActorEnd();
110 }
111
112 ActorBase* getActorPtr(ActorUniqueID id) const
113 {
114 return mActorPtrCache.getActorPtr(id);
115 }
116
117 template <typename T>
118 T* getActorPtr(ActorUniqueID id) const
119 {
120 return static_cast<T*>(mActorPtrCache.getActorPtr(id));
121 }
122
123 u32 count(ActorFindFunc* io_find_func) const
124 {
125 return mActorPtrCache.count(io_find_func);
126 }
127
129 {
130 return mActorPtrCache.forEach(callback, param);
131 }
132
133private:
134 // Address: 0x02009BDC
136
137public:
138 // Address: 0x02009D58
139 void execute();
140
141 // Address: 0x02009EA0
142 void addToFinalUpdate(ActorBase* actor);
143
144 // Address: 0x02009ECC
145 void draw();
146
147private:
163
164 friend class ActorBase;
165};
166static_assert(sizeof(ActorMgr) == 0x6A44);
Base interface class for all actors in the game. Lifecycle is handled by ActorMgr.
Definition ActorBase.h:18
Definition ActorMgr.h:13
void forEach(ActorForEachCallback callback, ActorForEachParam param) const
Definition ActorMgr.h:128
sead::UnitHeap * mActorUnitHeap
Definition ActorMgr.h:149
bool mActorDrawDone
Definition ActorMgr.h:161
ActorBase * getActorPtr(ActorUniqueID id) const
Definition ActorMgr.h:112
ActorBase::List mDeleteManage
Definition ActorMgr.h:152
void calcCreateDelete_()
void doDeleteActors_(bool destroy)
void addToFinalUpdate(ActorBase *actor)
iterator find(ActorFindFunc *io_find_func, iterator it_begin) const
Definition ActorMgr.h:92
bool mActorCreateImmediately
Definition ActorMgr.h:159
void createLater(const ActorCreateParam &param)
ActorPtrCache::ActorForEachParam ActorForEachParam
Definition ActorMgr.h:33
ActorBase::List mExecuteManage
Definition ActorMgr.h:153
u32 count(ActorFindFunc *io_find_func) const
Definition ActorMgr.h:123
ActorUniqueID mActorCreateID
Definition ActorMgr.h:158
void doDelete_(ActorBase *actor)
static void delete_(ActorBase *actor)
iterator getActorEnd() const
Definition ActorMgr.h:107
void destroyAdditionalHeap(sead::Heap **heap)
sead::FixedPtrArray< sead::Heap, 520 > mActorDeleteHeap
Definition ActorMgr.h:155
void execute()
ActorBase::List mCreateManage
Definition ActorMgr.h:151
void pushExecuteAndDrawList_(ActorBase *actor)
ActorBase * doConstructActor_(const ActorCreateParam &param, bool create_immediately)
sead::FixedRingBuffer< ActorCreateParam, 520 > mDeferredActorCreate
Definition ActorMgr.h:150
u8 _6a41[3]
Definition ActorMgr.h:162
void initialize(sead::Heap *heap)
void draw()
T * getActorPtr(ActorUniqueID id) const
Definition ActorMgr.h:118
iterator find(s32 i_profile_id, iterator it_begin) const
sead::FixedPtrArray< ActorBase, 520 > mActorFinalUpdate
Definition ActorMgr.h:156
ActorBase::MainState doCreate_(ActorBase *actor)
sead::UnitHeap * mPlayerUnitHeap
Definition ActorMgr.h:148
ActorBase::List mDrawManage
Definition ActorMgr.h:154
void createAdditionalHeap(sead::Heap **heap)
ActorPtrCache mActorPtrCache
Definition ActorMgr.h:157
iterator getActorBegin() const
Definition ActorMgr.h:102
ActorPtrCache::ActorForEachCallback ActorForEachCallback
Definition ActorMgr.h:34
u8 _6a3d[3]
Definition ActorMgr.h:160
ActorBase * createImmediately(const ActorCreateParam &param, CreateOption option=cCreateOption_ActiveLater)
iterator find(ActorFindFunc *io_find_func) const
Definition ActorMgr.h:97
void destroy()
ActorPtrCache::iterator iterator
Definition ActorMgr.h:32
u32 count(s32 i_profile_id) const
void moveActorOnCreateListToDestoryList_()
bool deleteNotRequested_(ActorBase *actor)
iterator find(s32 i_profile_id) const
Definition ActorMgr.h:84