New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ActorPtrCache.h
Go to the documentation of this file.
1#pragma once
2
3#include <basis/seadAssert.h>
4#include <basis/seadTypes.h>
5
6#include <container/seadBuffer.h>
7
8class ActorBase;
9class ActorFindFunc;
10class UniqueID;
11
13{
14public:
15 typedef ActorBase* const* iterator;
18
19public:
20 // Address: 0x0200A14C
21 ActorPtrCache(sead::Heap* heap, s32 i_max_actor_num);
22 // Address: 0x0200A278
24
25 // Address: 0x0200A300
26 iterator find(ActorFindFunc& io_find_func, iterator it_begin) const;
27 iterator find(ActorFindFunc& io_find_func) const
28 {
29 return find(io_find_func, getActorBegin());
30 }
31
33 {
34 SEAD_ASSERT(mActorPtrArray.isBufferReady());
35 return mActorPtrArray.unsafeGet(0);
36 }
37
39 {
40 return mLiveActorEnd;
41 }
42
43 // Address: 0x0200A3A8
44 void pushActor(ActorBase* io_actor);
45 // Address: 0x0200A550
46 void popActor(const ActorBase* i_actor);
47 // Address: 0x0200A5C8
49 // Address: Deleted
51
52 // Address: 0x0200A608
53 u32 count(ActorFindFunc& io_find_func) const;
54
55 // Address: 0x0200A6AC
56 void forEach(ActorForEachCallback callback, ActorForEachParam param) const;
57
58 // Address: Deleted
60
62 {
63 return mEmptyHeadIndex;
64 }
65
67 {
68 return mNextCreateIndex;
69 }
70
71private:
77};
78static_assert(sizeof(ActorPtrCache) == 0x18, "ActorPtrCache size mismatch");
Base interface class for all actors in the game. Lifecycle is handled by ActorMgr.
Definition ActorBase.h:19
Definition ActorFindFunc.h:11
Definition ActorPtrCache.h:13
bool mCreateIndexOverflow
Definition ActorPtrCache.h:76
u32 getEmptyHeadIndex() const
Definition ActorPtrCache.h:61
iterator find(ActorFindFunc &io_find_func) const
Definition ActorPtrCache.h:27
ActorPtrCache(sead::Heap *heap, s32 i_max_actor_num)
ActorBase *const * iterator
Definition ActorPtrCache.h:15
void forEachPtr(ActorForEachCallback callback, ActorForEachParam param) const
u32 mNextCreateIndex
Definition ActorPtrCache.h:75
ActorBase * getActorPtr(UniqueID id) const
iterator getActorBegin() const
Definition ActorPtrCache.h:32
u32 getNextCreateIndex() const
Definition ActorPtrCache.h:66
void(* ActorForEachCallback)(ActorBase *, ActorForEachParam)
Definition ActorPtrCache.h:17
u32 ActorForEachParam
Definition ActorPtrCache.h:16
void pushActor(ActorBase *io_actor)
u32 mEmptyHeadIndex
Definition ActorPtrCache.h:73
sead::Buffer< ActorBase * > mActorPtrArray
Definition ActorPtrCache.h:72
void popActor(const ActorBase *i_actor)
iterator find(ActorFindFunc &io_find_func, iterator it_begin) const
iterator mLiveActorEnd
Definition ActorPtrCache.h:74
ActorBase * getActorPtrIncludingAboutToBeErased(UniqueID id) const
iterator getActorEnd() const
Definition ActorPtrCache.h:38
void forEach(ActorForEachCallback callback, ActorForEachParam param) const
u32 count(ActorFindFunc &io_find_func) const
Safe identifier handle used as an alternative to raw actor pointers.
Definition UniqueID.h:13