3#include <actor/ActorState.h>
4#include <actor/ScoreMgr.h>
5#include <collision/ActorBoxBgCollision.h>
6#include <player/PlayerEnum.h>
7#include <state/FStateVirtualID.h>
15
16
56 static_assert(
sizeof(
MoveType) == 4);
59
60
68 static_assert(
sizeof(
HitFace) == 1);
89
90
91
158 static void callbackHead(BgCollision* self, ActorBgCollisionCheck* other);
159 static void callBackWall(BgCollision* self, ActorBgCollisionCheck* other, u8 direction);
163 static void callBackWall_Hit(BgCollision* self, ActorBgCollisionCheck* other, u8 direction);
167 mBoxBgCollision.setOfs(mBoxBgCollision_Ofs.p0, mBoxBgCollision_Ofs.p1);
172 mBoxBgCollision_Ofs.p0.set(left, top);
173 mBoxBgCollision_Ofs.p1.set(right, bottom);
179 mBoxBgCollision_Ofs.p0 = p0;
180 mBoxBgCollision_Ofs.p1 = p1;
186 return mBoxBgCollision;
201 return mSpawnDirection;
220 } mBoxBgCollision_Ofs;
Definition BlockCoinBase.h:10
u32 _1ab4
Definition BlockCoinBase.h:248
u8 _1ab1
Definition BlockCoinBase.h:245
ActorBoxBgCollision mBoxBgCollision
Definition BlockCoinBase.h:215
bool mBlockHitNotBoundable
Definition BlockCoinBase.h:254
DirType mSpawnDirection
Definition BlockCoinBase.h:251
MoveType
Definition BlockCoinBase.h:51
@ cMoveType_Down
Definition BlockCoinBase.h:54
@ cMoveType_Up
Definition BlockCoinBase.h:53
@ cMoveType_None
Definition BlockCoinBase.h:52
void spawnJumpdai()
Spawns a Portable Spring.
void spawnPropellerOrCoin(const sead::Vector3f &pos, u32, u32, bool spawn_as_child)
u32 mBumpReturnTimer
Definition BlockCoinBase.h:227
Content
Definition BlockCoinBase.h:25
@ cContent_Coin
Always a Coin.
Definition BlockCoinBase.h:38
@ cContent_Star
Always a Star.
Definition BlockCoinBase.h:34
@ cContent_FireMushroom
Super Mushroom if small, Fire Flower otherwise.
Definition BlockCoinBase.h:26
@ cContent_PenguinMushroom
Always a Penguin Suit.
Definition BlockCoinBase.h:32
@ cContent_MushroomIfSmall
Super Mushroom if small, Coin otherwise.
Definition BlockCoinBase.h:45
@ cContent_Empty
Contains nothing.
Definition BlockCoinBase.h:47
@ cContent_Mushroom
Always a Super Mushroom.
Definition BlockCoinBase.h:29
@ cContent_MiniMushroom
Always a Mini Mushroom.
Definition BlockCoinBase.h:27
@ cContent_MultiCoin
Up to 10 coins when hit consecutively.
Definition BlockCoinBase.h:39
@ cContent_Spring
Contains a Spring.
Definition BlockCoinBase.h:43
@ cContent_IceFlower
Always an Ice Flower.
Definition BlockCoinBase.h:31
@ cContent_ContinuousStar
Star if the player already has one, Coin otherwise.
Definition BlockCoinBase.h:35
@ cContent_LifeMoon
Always a 3-Up Moon.
Definition BlockCoinBase.h:37
@ cContent_Yoshi
Contains a Yoshi Egg.
Definition BlockCoinBase.h:42
@ cContent_PropellerMushroom
Always a Propeller Mushroom.
Definition BlockCoinBase.h:33
@ cContent_FireFlower
Always a Fire Flower.
Definition BlockCoinBase.h:30
@ cContent_LifeMushroom
Always a 1-Up Mushroom.
Definition BlockCoinBase.h:28
@ cContent_SquirrelMushroom
Always an Acorn Mushroom.
Definition BlockCoinBase.h:36
@ cContent_Vine
Contains a vine.
Definition BlockCoinBase.h:41
virtual void onDownMove_DiffStart()
Definition BlockCoinBase.h:108
s8 mSideHitPlayerNo
Definition BlockCoinBase.h:236
virtual void onDownMoveEnd()
Definition BlockCoinBase.h:124
u16 _1aa0
Definition BlockCoinBase.h:231
u8 _1ab3
Definition BlockCoinBase.h:247
Content getBaseContent() const
Definition BlockCoinBase.h:194
u8 _1aaa
Definition BlockCoinBase.h:238
ScoreMgr::ScoreType mScore
Definition BlockCoinBase.h:263
Content mContent
Definition BlockCoinBase.h:249
void spawnYoshiEgg(bool multi)
virtual void onUpMoveStart()
Definition BlockCoinBase.h:100
static void callbackHead_Hit(BgCollision *self, ActorBgCollisionCheck *other)
u32 _1ae0
Definition BlockCoinBase.h:262
bool mBumpCoinSpawned
Definition BlockCoinBase.h:267
u8 _1ab0
Definition BlockCoinBase.h:244
sead::Vector2f p1
Definition BlockCoinBase.h:219
DirType mDestroyHitDirection
Definition BlockCoinBase.h:229
virtual u32 getMultiCoinState()
Definition BlockCoinBase.h:138
HitFace
Defines which face of the block was hit.
Definition BlockCoinBase.h:62
@ cHitFace_Top
Definition BlockCoinBase.h:65
@ cHitFace_Side
Definition BlockCoinBase.h:66
@ cHitFace_Bottom
Definition BlockCoinBase.h:64
@ cHitFace_None
Definition BlockCoinBase.h:63
sead::SafeArray< PlayerHit, cPlayerNum > mPlayerHit
Definition BlockCoinBase.h:266
virtual void onDownMoveStart()
Definition BlockCoinBase.h:104
u16 _1aa4
Definition BlockCoinBase.h:233
virtual ~BlockCoinBase()
Definition BlockCoinBase.h:86
u8 _1aaf
Definition BlockCoinBase.h:243
f32 mBumpScaleMin
Definition BlockCoinBase.h:223
u32 mCoinSpawnCooldown
Definition BlockCoinBase.h:268
static void callBackWall(BgCollision *self, ActorBgCollisionCheck *other, u8 direction)
bool mSpawnContentAsChild
Definition BlockCoinBase.h:256
virtual void updateBumpScale(u8 direction)
virtual void spawnItemUp()
Definition BlockCoinBase.h:116
s32 mHitPlayerNo
Definition BlockCoinBase.h:250
u8 mPlayerNo2
Definition BlockCoinBase.h:246
f32 mInitialY
Definition BlockCoinBase.h:221
DirType getSpawnDirection() const
Definition BlockCoinBase.h:199
bool mSideHitBumping
Definition BlockCoinBase.h:240
void updateBoxBgCollisionOfs()
Definition BlockCoinBase.h:165
u32 _1ae8
Definition BlockCoinBase.h:264
u32 _1a94
Definition BlockCoinBase.h:228
virtual void spawnItemDown()
Definition BlockCoinBase.h:128
f32 mBumpScaleStep
Definition BlockCoinBase.h:224
f32 mDeltaY
Definition BlockCoinBase.h:260
BumpMode mBumpMode
Definition BlockCoinBase.h:242
void setBoxBgCollisionOfs(const sead::Vector2f &p0, const sead::Vector2f &p1)
Definition BlockCoinBase.h:177
u32 _1aec
Definition BlockCoinBase.h:265
f32 mBumpAccelY
Definition BlockCoinBase.h:226
virtual void onMove_Diff()
Definition BlockCoinBase.h:145
u32 _1ac8
Definition BlockCoinBase.h:253
ActorBgCollisionCheck::Sensor mHeadSensor
Definition BlockCoinBase.h:213
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:257
u8 _1aa7
Definition BlockCoinBase.h:235
u8 mBumpUpTimer
Definition BlockCoinBase.h:239
u32 _1adc
Definition BlockCoinBase.h:261
s8 _1aa9
Definition BlockCoinBase.h:237
MoveType mMoveType
Definition BlockCoinBase.h:258
u8 _1aa6
Definition BlockCoinBase.h:234
u32 _1a9c
Definition BlockCoinBase.h:230
const ActorBoxBgCollision & getBoxBgCollision() const
Definition BlockCoinBase.h:184
BumpMode getBumpMode() const
Definition BlockCoinBase.h:189
virtual void onDownMove()
Definition BlockCoinBase.h:120
u8 mForceUpwardSpawn
Definition BlockCoinBase.h:252
void spawnMultiPowerup(const sead::Vector3f &pos, u32, u32, bool spawn_as_child)
BlockCoinBase(const ActorCreateParam ¶m)
sead::Vector2f p0
Definition BlockCoinBase.h:218
HitFace mHitFace
Definition BlockCoinBase.h:241
virtual void onUpMove()
Definition BlockCoinBase.h:112
virtual void onDownMove_DiffEnd()
Definition BlockCoinBase.h:132
u8 _1acd
Definition BlockCoinBase.h:255
void setBoxBgCollisionOfs(f32 left, f32 top, f32 right, f32 bottom)
Definition BlockCoinBase.h:170
static void callbackHead(BgCollision *self, ActorBgCollisionCheck *other)
f32 mBumpOffsetY
Definition BlockCoinBase.h:222
u16 _1aa2
Definition BlockCoinBase.h:232
virtual void spawnCoinShower()
f32 mDeltaX
Definition BlockCoinBase.h:259
f32 mBumpScaleMax
Definition BlockCoinBase.h:225
MoveType getMoveType() const
Definition BlockCoinBase.h:204
Definition BlockCoinBase.h:71
u8 _9
Definition BlockCoinBase.h:78
s8 top_player_no_nslu
Definition BlockCoinBase.h:77
s8 bottom_player_no
Definition BlockCoinBase.h:74
u8 _7
Definition BlockCoinBase.h:76
s8 top_player_no
Definition BlockCoinBase.h:73
s8 side_player_no
Definition BlockCoinBase.h:75
u8 _a
Definition BlockCoinBase.h:79
u8 _0[4]
Definition BlockCoinBase.h:72
u8 _b
Definition BlockCoinBase.h:80