New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ActorCreateMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadPtrArray.h>
4#include <heap/seadDisposer.h>
5#include <math/seadBoundBox.h>
6
7#include <actor/UniqueID.h>
8#include <actor/Profile.h>
9#include <system/SaveMgr.h>
10#include <utility/Direction.h>
11
12struct ActorInitDat;
13
15{
16 // createInstance() Address: 0x020043F0
17 // deleteInstance() Address: Deleted
18 // sInstance Address: 0x101C30C0
19 // SingletonDisposer_::~SingletonDisposer_() Address: 0x02008724
20 // SingletonDisposer_::sStaticDisposer Address: 0x101C30C4
21 // SingletonDisposer_::vtbl Address: 0x10000B50
23
24public:
31 static_assert(sizeof(LiftBufferInfo) == 0xC, "ActorCreateMgr::LiftBufferInfo size mismatch");
32
35
36public:
37 // Address: 0x0200417C
39
40 // Address: 0x0200684C
42 // Address: 0x02004880
44 // Address: 0x0200550C
46 // Address: 0x02005734
48 // Address: 0x02006F18
50 // Address: 0x020086FC
51 void setEditCoinAreaNo(u8 area_no);
52 // Address: 0x0200862C
53 bool setAreaGroupNoCreate(ProfileID profile_id, UniqueID actor_id, u8 movement_id);
54 // Address: 0x0200595C
56 // Address: 0x020048D8
57 void waiteUnitToge(f32 x_pos, f32 y_pos);
58 // Address: 0x02004470
59 s32 checkActorCoinCount(u32 range_no, u8 coin_mask);
60 // Address: 0x02007FC0
62 // Address: 0x020081B8
64 // Address: 0x020083A0
66 // Address: 0x02008590
68 // Address: Deleted
70 // Address: 0x020046C0
71 void checkDrcBlockBox(sead::BoundBox2f& box);
72 // Address: 0x02007294
73 void checkDrcBlockPos(const ActorInitDat* init_data);
74 // Address: 0x02007A5C
76 // Address: 0x02004C0C
78 // Address: 0x02004B94
80 // Address: 0x02004B1C
82 // Address: Deleted
84 // Address: 0x02004C28
86 // Address: 0x02004BB0
88 // Address: 0x02004B38
90 // Address: Deleted
92
93public:
94 /**
95 * @brief 48.0f
96 * @par Address: Deleted
97 */
98 static const f32 cCreateXLow;
99 /**
100 * @brief 48.0f
101 * @par Address: Deleted
102 */
103 static const f32 cCreateXHigh;
104 /**
105 * @brief 16.0f
106 * @par Address: Deleted
107 */
108 static const f32 cCreateYLow;
109 /**
110 * @brief 32.0f
111 * @par Address: Deleted
112 */
113 static const f32 cCreateYHigh;
114 /**
115 * @brief 16.0f
116 * @par Address: Deleted
117 */
118 static const f32 cCreateOverPos;
119 /**
120 * @brief 16.0f
121 * @par Address: Deleted
122 */
123 static const f32 cSpacingZposEnemy;
124 /**
125 * @brief 8.0f
126 * @par Address: Deleted
127 */
129
130protected:
131 // Address: 0x02004EC4
132 void initialActorCreateCheck_(u8*, const ActorInitDat* init_data, u32, u8, JouchuLiftBufferInfo&, LiftBufferInfo*, GroupLiftBufferInfo&, LiftBufferInfo*);
133 // Address: 0x02005978
135 // Address: 0x02005B7C
137 // Address: 0x0200613C
138 void initialEditCoinCreateCheck_(u32 actor_count);
139 // Address: 0x02006B28
141 // Address: 0x02004C84
142 void createActor_(u8*, const ActorInitDat* init_data, const ActorData* actor_data, UniqueID id);
143 // Address: 0x020048C8
144 bool groupIdCheck_(u32 group_id);
145 // Address: 0x02004924
146 void goalPoleCheck_(const ActorInitDat* init_data, u8 area_no);
147 // Address: 0x02005F54
148 void createCoinActor_(u8*, f32 pos_x, f32 pos_y);
149 // Address: 0x02006040
150 void createStarCoinActor_(u8*, f32 pos_x, f32 pos_y, s32);
151 // Address: 0x02007204
153 // Address: 0x0200724c
155 // Address: 0x02007350
156 void scrollEditCoinCreateCheck_(u32 actor_count);
157
158protected:
164 u32 _24; // Jouchu related?
165 u32 _28; // Jouchu related?
166 u32 mEditCoin1Cnt; // TODO: better name
167 u8 mEditCoin1[1000]; // TODO: better name
168 u16 _418; ///< Unused.
170 u16 mEditCoin2Cnt; // TODO: better name, bg related?
171 SaveData::CoinEditCoin mEditCoin2[300]; // TODO: better name, bg related? also not 100% sure about this type
174 s8 _1360[256]; // still coin edit related
176};
177static_assert(sizeof(ActorCreateMgr) == 0x15FC, "ActorCreateMgr size mismatch");
Definition ActorCreateMgr.h:15
s32 getAreaAllEditCoinCount()
u32 _24
Definition ActorCreateMgr.h:164
static const f32 cCreateOverPos
16.0f
Definition ActorCreateMgr.h:118
s32 getSearchRengaCount()
void initialAreaInActorCreate()
bool setAreaGroupNoCreate(ProfileID profile_id, UniqueID actor_id, u8 movement_id)
JouchuLiftBufferInfo mJouchuLiftBufferInfo
Definition ActorCreateMgr.h:172
f32 getLayer2MapObjZpos()
GroupLiftBufferInfo mGroupLiftBufferInfo
Definition ActorCreateMgr.h:173
void waiteUnitToge(f32 x_pos, f32 y_pos)
void checkEditCoin_(u8)
void initialActorCreateCheck_(u8 *, const ActorInitDat *init_data, u32, u8, JouchuLiftBufferInfo &, LiftBufferInfo *, GroupLiftBufferInfo &, LiftBufferInfo *)
void incLayer2EnemyZposCount()
static const f32 cCreateXLow
48.0f
Definition ActorCreateMgr.h:98
void clearEditCoinAreaNo()
u16 mEditCoin2Cnt
Definition ActorCreateMgr.h:170
u32 _28
Definition ActorCreateMgr.h:165
u32 mGroupedActorCnt
Definition ActorCreateMgr.h:163
s32 getAreaAllCoinCount()
DirType getScrollDirY_()
u8 mEditCoin1[1000]
Definition ActorCreateMgr.h:167
s32 mLayer2MapObjZPosCnt
Definition ActorCreateMgr.h:162
s32 mLayer1MapObjZPosCnt
Definition ActorCreateMgr.h:161
SaveData::CoinEditCoin mEditCoin2[300]
Definition ActorCreateMgr.h:171
s8 _1360[256]
Definition ActorCreateMgr.h:174
s32 mLayer1EnemyZPosCnt
Definition ActorCreateMgr.h:159
f32 getLayer2EnemyZpos()
void goalPoleCheck_(const ActorInitDat *init_data, u8 area_no)
void initialAreaInEditCoinWrite_()
static const f32 cCreateYLow
16.0f
Definition ActorCreateMgr.h:108
void scrollActorCreateCheck()
void createStarCoinActor_(u8 *, f32 pos_x, f32 pos_y, s32)
void incLayer2MapObjZposCount()
f32 getLayer1EnemyZpos()
void incLayer1EnemyZposCount()
void createCoinActor_(u8 *, f32 pos_x, f32 pos_y)
void setActorGroup2Create(GroupLiftBufferInfo &, u8)
sead::FixedPtrArray< LiftBufferInfo, 80 > JouchuLiftBufferInfo
Definition ActorCreateMgr.h:33
void initialCorseInActorCreate()
void initialEditCoinWrite_()
void checkDrcBlockPos(const ActorInitDat *init_data)
void createActor_(u8 *, const ActorInitDat *init_data, const ActorData *actor_data, UniqueID id)
static const f32 cSpacingZposEnemy
16.0f
Definition ActorCreateMgr.h:123
static const f32 cCreateXHigh
48.0f
Definition ActorCreateMgr.h:103
sead::FixedPtrArray< LiftBufferInfo, 100 > GroupLiftBufferInfo
Definition ActorCreateMgr.h:34
void scrollEditCoinCreateCheck_(u32 actor_count)
void setEditCoinAreaNo(u8 area_no)
void incLayer1MapObjZposCount()
void setActorJouchu2Create(JouchuLiftBufferInfo &, u8)
u32 mEditCoin1Cnt
Definition ActorCreateMgr.h:166
static const f32 cCreateYHigh
32.0f
Definition ActorCreateMgr.h:113
s32 mLayer2EnemyZPosCnt
Definition ActorCreateMgr.h:160
u16 _418
Unused.
Definition ActorCreateMgr.h:168
s32 getAreaAllEditStarCoinCount()
void initialEditCoinCreateCheck_(u32 actor_count)
static const f32 cSpacingZposMapObj
8.0f
Definition ActorCreateMgr.h:128
f32 getLayer1MapObjZpos()
GroupLiftBufferInfo mGroupLiftBufferInfo2
Definition ActorCreateMgr.h:175
s32 checkActorCoinCount(u32 range_no, u8 coin_mask)
void checkDrcBlockBox(sead::BoundBox2f &box)
s32 getSerchActorCount(s32)
bool groupIdCheck_(u32 group_id)
u32 mActorCnt
Definition ActorCreateMgr.h:169
DirType getScrollDirX_()
Definition CourseData.h:127