New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
BlockCoinBase.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/ActorState.h>
4#include <actor/ScoreMgr.h>
5#include <collision/ActorBoxBgCollision.h>
6#include <state/FStateVirtualID.h>
7
9{
10 SEAD_RTTI_OVERRIDE(BlockCoinBase, ActorMultiState)
11
12public:
13 enum VSpawnType // i.e., vertical spawn type
14 {
15 cVSpawnType_None = 0, // Either nothing is being spawned, or the spawn direction is determined by the content type
18 };
19
45
52 static_assert(sizeof(MoveType) == 4);
53
54public:
55 BlockCoinBase(const ActorCreateParam& param);
56 virtual ~BlockCoinBase() { }
57
59 void spawnYoshiEgg(bool multi);
61 void spawnPowerup(const sead::Vector3f& pos, u32, u32, bool spawn_as_child);
62 void spawnMultiPowerup(const sead::Vector3f& pos, u32, u32, bool spawn_as_child);
63 void spawnPropellerOrCoin(const sead::Vector3f& pos, u32, u32, bool spawn_as_child);
64
65 virtual void onUpMoveStart()
66 {
67 }
68
69 virtual void onDownMoveStart()
70 {
71 }
72
73 virtual void onDownMove_DiffStart()
74 {
75 }
76
77 virtual void onUpMove()
78 {
79 }
80
81 virtual void spawnItemUp()
82 {
83 }
84
85 virtual void onDownMove()
86 {
87 }
88
89 virtual void onDownMoveEnd()
90 {
91 }
92
93 virtual void spawnItemDown()
94 {
95 }
96
97 virtual void onDownMove_DiffEnd()
98 {
99 }
100
101 virtual void vf1D4(s32);
102
103 virtual u32 vf1DC()
104 {
105 return 0;
106 }
107
108 virtual void spawnCoinShower();
109
110 virtual void onMove_Diff() // For NSLU
111 {
112 }
113
114 DECLARE_STATE_VIRTUAL_ID_BASE(BlockCoinBase, UpMove)
121
123 static void callbackHead(BgCollision* self, ActorBgCollisionCheck* other);
124 static void callBackWall(BgCollision* self, ActorBgCollisionCheck* other, u8 direction);
125
126 static void callbackFoot_Hit(BgCollision* self, ActorBgCollisionCheck* other);
127 static void callbackHead_Hit(BgCollision* self, ActorBgCollisionCheck* other);
128 static void callBackWall_Hit(BgCollision* self, ActorBgCollisionCheck* other, u8 direction);
129
131 {
132 mBoxBgCollision.setOfs(mBoxBgCollision_Ofs.p0, mBoxBgCollision_Ofs.p1);
133 }
134
135 void setBoxBgCollisionOfs(f32 left, f32 top, f32 right, f32 bottom)
136 {
137 mBoxBgCollision_Ofs.p0.set(left, top);
138 mBoxBgCollision_Ofs.p1.set(right, bottom);
140 }
141
142 void setBoxBgCollisionOfs(const sead::Vector2f& p0, const sead::Vector2f& p1)
143 {
144 mBoxBgCollision_Ofs.p0 = p0;
145 mBoxBgCollision_Ofs.p1 = p1;
147 }
148
150 {
151 return mBoxBgCollision;
152 }
153
155 {
156 return (VSpawnType)mVSpawnType;
157 }
158
160 {
161 return mContent;
162 }
163
165 {
166 return mSpawnDirection;
167 }
168
170 {
171 return mMoveType;
172 }
173
174protected:
176
177protected:
179 //u32 _17d4[4 / sizeof(u32)]; // Alignment???
181 struct
182 {
185 } mBoxBgCollision_Ofs;
207 u8 mVSpawnType; // VSpawnType
210 u8 _1ab1; // DirType
234};
235static_assert(sizeof(BlockCoinBase) == 0x1B28);
Definition BlockCoinBase.h:9
u32 _1ab4
Definition BlockCoinBase.h:213
u8 _1ace
Definition BlockCoinBase.h:221
u8 _1ab1
Definition BlockCoinBase.h:210
ActorBoxBgCollision mBoxBgCollision
Definition BlockCoinBase.h:180
bool mBlockHitNotBoundable
Definition BlockCoinBase.h:219
virtual u32 vf1DC()
Definition BlockCoinBase.h:103
DirType mSpawnDirection
Definition BlockCoinBase.h:216
MoveType
Definition BlockCoinBase.h:47
@ cMoveType_Down
Definition BlockCoinBase.h:50
@ cMoveType_Up
Definition BlockCoinBase.h:49
@ cMoveType_None
Definition BlockCoinBase.h:48
u8 _1aab
Definition BlockCoinBase.h:204
void spawnJumpdai()
void spawnPropellerOrCoin(const sead::Vector3f &pos, u32, u32, bool spawn_as_child)
Content
Definition BlockCoinBase.h:21
@ cContent_Coin
Definition BlockCoinBase.h:34
@ cContent_Star
Definition BlockCoinBase.h:30
@ cContent_FireMushroom
Definition BlockCoinBase.h:22
@ cContent_PenguinMushroom
Definition BlockCoinBase.h:28
@ cContent_MushroomIfSmall
Definition BlockCoinBase.h:41
@ cContent_Empty
Definition BlockCoinBase.h:43
@ cContent_IceMushroom
Definition BlockCoinBase.h:27
@ cContent_Mushroom
Definition BlockCoinBase.h:25
@ cContent_MiniMushroom
Definition BlockCoinBase.h:23
@ cContent_MultiCoin
Definition BlockCoinBase.h:35
@ cContent_Spring
Definition BlockCoinBase.h:39
@ cContent_ContinuousStar
Definition BlockCoinBase.h:31
@ cContent_LifeMoon
Definition BlockCoinBase.h:33
@ cContent_Yoshi
Definition BlockCoinBase.h:38
@ cContent_PropellerMushroom
Definition BlockCoinBase.h:29
@ cContent_FireFlower
Definition BlockCoinBase.h:26
@ cContent_LifeMushroom
Definition BlockCoinBase.h:24
@ cContent_SquirrelMushroom
Definition BlockCoinBase.h:32
@ cContent_Vine
Definition BlockCoinBase.h:37
u32 _1a90
Definition BlockCoinBase.h:192
virtual void onDownMove_DiffStart()
Definition BlockCoinBase.h:73
virtual void onDownMoveEnd()
Definition BlockCoinBase.h:89
u16 _1aa0
Definition BlockCoinBase.h:196
u8 _1ab3
Definition BlockCoinBase.h:212
Content getBaseContent() const
Definition BlockCoinBase.h:159
u8 _1aaa
Definition BlockCoinBase.h:203
ScoreMgr::ScoreType mScore
Definition BlockCoinBase.h:228
Content mContent
Definition BlockCoinBase.h:214
f32 _1a88
Definition BlockCoinBase.h:190
void spawnYoshiEgg(bool multi)
virtual void onUpMoveStart()
Definition BlockCoinBase.h:65
static void callbackHead_Hit(BgCollision *self, ActorBgCollisionCheck *other)
u32 _1ae0
Definition BlockCoinBase.h:227
u8 _1ab0
Definition BlockCoinBase.h:209
f32 _1a8c
Definition BlockCoinBase.h:191
sead::Vector2f p1
Definition BlockCoinBase.h:184
virtual void onDownMoveStart()
Definition BlockCoinBase.h:69
u16 _1aa4
Definition BlockCoinBase.h:198
virtual ~BlockCoinBase()
Definition BlockCoinBase.h:56
u8 _1aaf
Definition BlockCoinBase.h:208
VSpawnType getVSpawnType() const
Definition BlockCoinBase.h:154
f32 _1a78
Definition BlockCoinBase.h:186
u32 _1b24
Definition BlockCoinBase.h:233
sead::SafeArray< s8[12], 4 > _1af0
Definition BlockCoinBase.h:231
static void callBackWall(BgCollision *self, ActorBgCollisionCheck *other, u8 direction)
u8 _1ac4
Definition BlockCoinBase.h:217
virtual void spawnItemUp()
Definition BlockCoinBase.h:81
s32 mHitPlayerNo
Definition BlockCoinBase.h:215
u8 mPlayerNo2
Definition BlockCoinBase.h:211
DirType getSpawnDirection() const
Definition BlockCoinBase.h:164
void updateBoxBgCollisionOfs()
Definition BlockCoinBase.h:130
f32 _1ad8
Definition BlockCoinBase.h:225
u32 _1ae8
Definition BlockCoinBase.h:229
void executeCommon_()
u32 _1a94
Definition BlockCoinBase.h:193
virtual void spawnItemDown()
Definition BlockCoinBase.h:93
u8 _1aad
Definition BlockCoinBase.h:206
void setBoxBgCollisionOfs(const sead::Vector2f &p0, const sead::Vector2f &p1)
Definition BlockCoinBase.h:142
u32 _1aec
Definition BlockCoinBase.h:230
virtual void vf1D4(s32)
virtual void onMove_Diff()
Definition BlockCoinBase.h:110
u32 _1ac8
Definition BlockCoinBase.h:218
ActorBgCollisionCheck::Sensor mHeadSensor
Definition BlockCoinBase.h:178
static void callBackWall_Hit(BgCollision *self, ActorBgCollisionCheck *other, u8 direction)
void spawnPowerup(const sead::Vector3f &pos, u32, u32, bool spawn_as_child)
static void callbackFoot_Hit(BgCollision *self, ActorBgCollisionCheck *other)
bool mNoAddScoreOnDestroy
Definition BlockCoinBase.h:222
u8 _1aa7
Definition BlockCoinBase.h:200
f32 _1ad4
Definition BlockCoinBase.h:224
u32 _1adc
Definition BlockCoinBase.h:226
s8 _1aa9
Definition BlockCoinBase.h:202
DirType _1a98
Definition BlockCoinBase.h:194
MoveType mMoveType
Definition BlockCoinBase.h:223
u8 mVSpawnType
Definition BlockCoinBase.h:207
u8 _1aa6
Definition BlockCoinBase.h:199
u8 _1aac
Definition BlockCoinBase.h:205
f32 _1a84
Definition BlockCoinBase.h:189
u32 _1a9c
Definition BlockCoinBase.h:195
const ActorBoxBgCollision & getBoxBgCollision() const
Definition BlockCoinBase.h:149
virtual void onDownMove()
Definition BlockCoinBase.h:85
void spawnMultiPowerup(const sead::Vector3f &pos, u32, u32, bool spawn_as_child)
BlockCoinBase(const ActorCreateParam &param)
sead::Vector2f p0
Definition BlockCoinBase.h:183
virtual void onUpMove()
Definition BlockCoinBase.h:77
virtual void onDownMove_DiffEnd()
Definition BlockCoinBase.h:97
u8 _1acd
Definition BlockCoinBase.h:220
f32 _1a80
Definition BlockCoinBase.h:188
void setBoxBgCollisionOfs(f32 left, f32 top, f32 right, f32 bottom)
Definition BlockCoinBase.h:135
f32 _1a7c
Definition BlockCoinBase.h:187
static void callbackHead(BgCollision *self, ActorBgCollisionCheck *other)
s8 _1aa8
Definition BlockCoinBase.h:201
u16 _1aa2
Definition BlockCoinBase.h:197
virtual void spawnCoinShower()
void spawnVine(u8)
u8 _1b20
Definition BlockCoinBase.h:232
MoveType getMoveType() const
Definition BlockCoinBase.h:169