New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
BlockMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <math/seadVector.h>
4#include <heap/seadDisposer.h>
5#include <map_obj/ActorBlockBase.h>
6#include <collision/BgUnitCode.h>
7
15static_assert(sizeof(BlockState) == 0x14, "BlockState size mismatch");
16
18{
19 // createInstance() Address: 0x0270B65C
20 // deleteInstance() Address: 0x0270D608
21 // sInstance Address: 0x101DB964
23
24public:
36 static_assert(sizeof(BlockBreakCheckInfo) == 0x18, "BlockBreakCheckInfo size mismatch");
37
38 /**
39 * @brief Content enum for cType_BreakBlock units.
40 * @details Bit shift the unit 10 right and mask 0xF to get this.
41 */
60
61 /**
62 * @brief Content enum for cType_Q_Block units.
63 * @details Bit shift the unit 10 right and mask 0xF to get this.
64 */
81
83 {
85 union
86 {
88 RengaContent renga; // cType_BreakBlock
89 HatenaContent hatena; // cType_Q_Block
90 } content;
92 union
93 {
96 };
100 };
101 static_assert(sizeof(BlockCreateInfo) == 0x14, "BlockCreateInfo size mismatch");
102
112 static_assert(sizeof(BlockBreakActorCreateInfo) == 0x10, "BlockBreakActorCreateInfo size mismatch");
113
121 static_assert(sizeof(BlockBreakEffectCreateInfo) == 0xC, "BlockBreakEffectCreateInfo size mismatch");
122
130 static_assert(sizeof(ItemCreateDirInfo) == 0xC, "ItemCreateDirInfo size mismatch");
131
132 // Address: 0x1010280C
133 static const u16 cQuestionItemNo[18];
134 // Address: 0x10102830
135 static const u16 cRengaItemNo[18];
136 // Address: 0x10102854
137 static const u16 cClarityItemNo[18];
138 // Address: 0x10102804
139 static const u16 cBreakBlockColorType[4];
140
141public:
142 // Address: 0x0270B90C
143 void brokenBlockActorCreate(BlockBreakActorCreateInfo& info, bool no_add_score);
144 // Address: 0x0270C61C
145 void brokenBlockEffectCreate(BlockBreakEffectCreateInfo& info, bool no_play_sound, bool no_add_score);
146 // Address: 0x0270C798
148
149 // Address: 0x0270C18C
150 void checkDrcTouchBlockCreate(sead::Vector2f& pos);
151 // Address: 0x0270BBB4
152 void DrcTouchBlockCreate(sead::Vector2f& pos);
153 // Address: 0x0270C9D0
154 bool blockCreate(BlockCreateInfo& create_info);
155
156 // Address: 0x0270D2F4
157 ActorBlockBase::ObjBlockInfo getObjBlockInfo(sead::Vector3f& pos, u32 area_no);
158
159 // Address: 0x0270D294
161 // Address: 0x0270B7EC
163
164 // Address: 0x0270D420
165 void setObjBlockInfo(sead::Vector3f& pos, ActorBlockBase::ObjBlockInfo block_info, u32 area_no);
166 // Address: 0x0270B6E0
168
169 // Address: 0x0270C3B4
170 bool setblockBreakEffect(sead::Vector3f& pos);
171 // Address: 0x0270D130
172 void chikuwaCreateSet(const sead::Vector2f& pos);
173 // Address: 0x0270D24C
174 u32 chengeItemFromCoin(u32, BlockCoinBase::Content content); // TODO: Rename BlockCoinBase::Content to BlockInItem
175 // Address: 0x0270B89C
176 void createTouchBlockBreakCoin(sead::Vector3f& pos);
177 // Address: 0x0270BB28
179 // Address: 0x0270C2F0
180 bool itemDirCheck(const ItemCreateDirInfo* dir_info);
181 // Address: 0x0270D4A0
182 void createCommonYoshiEgg(sead::Vector3f& pos, u32, u32, signed char, u32);
183 // Address: 0x0270D5FC
184 void createYoshiEgg(sead::Vector3f& pos, u32, u32, signed char);
185 // Address: 0x0270D604
186 void createSanboEatYoshiEgg(sead::Vector3f& pos, u32, u32, signed char, u32);
187
188protected:
189 u8 _0[101][16];
191 u32 _f0d4; // Used to call it mArr1Count
193};
194static_assert(sizeof(BlockMgr) == 0xF0DC, "BlockMgr size mismatch");
Definition BlockMgr.h:18
BlockState mBlockState[3001]
Definition BlockMgr.h:190
void getYossyCount()
ActorBlockBase::Type blockPanelTypeNoChenge(u16 unit)
ActorBlockBase::ObjBlockInfo getObjBlockInfo(sead::Vector3f &pos, u32 area_no)
bool itemDirCheck(const ItemCreateDirInfo *dir_info)
void brokenBlockEffectCreate(BlockBreakEffectCreateInfo &info, bool no_play_sound, bool no_add_score)
ActorBlockBase::ObjBlockInfo checkTenCoin(sead::Vector3f &pos)
bool setblockBreakEffect(sead::Vector3f &pos)
void createCommonYoshiEgg(sead::Vector3f &pos, u32, u32, signed char, u32)
void blockBreakCheck(BlockBreakCheckInfo &info)
void createTouchBlockBreakCoin(sead::Vector3f &pos)
HatenaContent
Content enum for cType_Q_Block units.
Definition BlockMgr.h:66
@ cHatenaContent_Spring
Definition BlockMgr.h:72
@ cHatenaContent_Propeller
Definition BlockMgr.h:74
@ cHatenaContent_Num
Definition BlockMgr.h:79
@ cHatenaContent_Penguin
Definition BlockMgr.h:75
@ cHatenaContent_Yoshi
Definition BlockMgr.h:76
@ cHatenaContent_Vine
Definition BlockMgr.h:71
@ cHatenaContent_FireFlower
Definition BlockMgr.h:68
@ cHatenaContent_MiniMushroom
Definition BlockMgr.h:73
@ cHatenaContent_Coin
Definition BlockMgr.h:67
@ cHatenaContent_ContinuousStar
Definition BlockMgr.h:70
@ cHatenaContent_IceFlower
Definition BlockMgr.h:77
@ cHatenaContent_SquirrelMushroom
Definition BlockMgr.h:78
@ cHatenaContent_Star
Definition BlockMgr.h:69
u32 mBlockStateCount
Definition BlockMgr.h:192
u8 _0[101][16]
Definition BlockMgr.h:189
void createYoshiEgg(sead::Vector3f &pos, u32, u32, signed char)
void executeTenCoin()
static const u16 cQuestionItemNo[18]
Definition BlockMgr.h:133
RengaContent
Content enum for cType_BreakBlock units.
Definition BlockMgr.h:43
@ cRengaContent_Star
Definition BlockMgr.h:48
@ cRengaContent_Vine
Definition BlockMgr.h:50
@ cRengaContent_FireFlower
Definition BlockMgr.h:47
@ cRengaContent_Num
Definition BlockMgr.h:58
@ cRengaContent_Coin
Definition BlockMgr.h:45
@ cRengaContent_MiniMushroom
Definition BlockMgr.h:51
@ cRengaContent_MultiCoin
Definition BlockMgr.h:46
@ cRengaContent_Yoshi
Definition BlockMgr.h:54
@ cRengaContent_Propeller
Definition BlockMgr.h:52
@ cRengaContent_SquirrelMushroom
Definition BlockMgr.h:57
@ cRengaContent_None
Definition BlockMgr.h:56
@ cRengaContent_Empty
Definition BlockMgr.h:44
@ cRengaContent_1UP
Definition BlockMgr.h:49
@ cRengaContent_Penguin
Definition BlockMgr.h:53
@ cRengaContent_IceFlower
Definition BlockMgr.h:55
static const u16 cBreakBlockColorType[4]
Definition BlockMgr.h:139
u32 chengeItemFromCoin(u32, BlockCoinBase::Content content)
void createSanboEatYoshiEgg(sead::Vector3f &pos, u32, u32, signed char, u32)
void checkDrcTouchBlockCreate(sead::Vector2f &pos)
void chikuwaCreateSet(const sead::Vector2f &pos)
void setObjBlockInfo(sead::Vector3f &pos, ActorBlockBase::ObjBlockInfo block_info, u32 area_no)
void brokenBlockActorCreate(BlockBreakActorCreateInfo &info, bool no_add_score)
u32 _f0d4
Definition BlockMgr.h:191
bool blockCreate(BlockCreateInfo &create_info)
void DrcTouchBlockCreate(sead::Vector2f &pos)
static const u16 cClarityItemNo[18]
Definition BlockMgr.h:137
static const u16 cRengaItemNo[18]
Definition BlockMgr.h:135
Definition BlockMgr.h:104
u16 fragment_idx
Definition BlockMgr.h:110
u8 destroy_direction
Definition BlockMgr.h:106
s8 player_no
Definition BlockMgr.h:109
u8 _a
Definition BlockMgr.h:108
sead::Vector2f position
Definition BlockMgr.h:105
u8 state_type
Definition BlockMgr.h:107
Definition BlockMgr.h:26
s8 sensor_id
Definition BlockMgr.h:30
s8 player_type
Definition BlockMgr.h:32
sead::Vector2f position
Definition BlockMgr.h:27
u32 _c
Definition BlockMgr.h:29
ActorBgCollisionCheck * collision_check
Definition BlockMgr.h:34
s8 player_no
Definition BlockMgr.h:31
u32 fragment_type
Definition BlockMgr.h:28
u8 _13
Definition BlockMgr.h:33
Definition BlockMgr.h:115
s8 player_no
Definition BlockMgr.h:118
u8 destroy_direction
Definition BlockMgr.h:117
u16 fragment_idx
Definition BlockMgr.h:119
sead::Vector2f position
Definition BlockMgr.h:116
Definition BlockMgr.h:83
sead::Vector2f position
Definition BlockMgr.h:84
ActorBgCollisionCheck * collision_check
Definition BlockMgr.h:99
u8 _d
Definition BlockMgr.h:95
u32 index
Definition BlockMgr.h:87
s8 sensor_id
Definition BlockMgr.h:91
bool player_breaks_bricks
Definition BlockMgr.h:94
HatenaContent hatena
Definition BlockMgr.h:89
s8 player_no
Definition BlockMgr.h:97
RengaContent renga
Definition BlockMgr.h:88
s8 player_type
Definition BlockMgr.h:98
Definition BlockMgr.h:124
u8 _8
Definition BlockMgr.h:127
f32 _0
Definition BlockMgr.h:125
f32 _4
Definition BlockMgr.h:126
u8 _9
Definition BlockMgr.h:128
Definition BlockMgr.h:9
u8 _12[2]
Definition BlockMgr.h:13
sead::Vector3f position
Definition BlockMgr.h:10
u16 area_no
Definition BlockMgr.h:12
ActorBlockBase::ObjBlockInfo state
Definition BlockMgr.h:11