3#include <collision/ActorBoxBgCollision.h>
4#include <collision/ActorCollisionDrcTouchCallback.h>
5#include <graphics/AnimModel.h>
6#include <enemy/EnemyBoyoMgr.h>
7#include <enemy/Enemy.h>
56 void bcOnTouch(BgCollision* bg_collision,
const sead::Vector2f& pos)
override;
58 static_assert(
sizeof(
DrcTouchCB) == 0x4,
"SnakeBlock::DrcTouchCB size mismatch");
97 static void callbackFoot(BgCollision* bc_self, ActorBgCollisionCheck* cc_other);
115 static_assert(
sizeof(
Piece) == 0x310,
"SnakeBlock::Piece size mismatch");
132 static_assert(
sizeof(
EdgePiece) == 0x318,
"SnakeBlock::EdgePiece size mismatch");
169 return mEdgePiece[idx];
174 return mMiddlePiece[idx];
244static_assert(
sizeof(
SnakeBlock) == 0x5D58,
"SnakeBlock size mismatch");
Definition SnakeBlock.h:11
void setBaseScale(const sead::Vector3f *scale)
Definition SnakeBlock.h:20
const sead::Vector3f * mBaseScale
Definition SnakeBlock.h:26
sead::Vector3f getBaseScale() const override
SnakeBlockBoyoMgr()
Definition SnakeBlock.h:13
Definition SnakeBlock.h:51
void bcOnTouch(BgCollision *bg_collision, const sead::Vector2f &pos) override
bool bcSetTouchNormal(BgCollision *bg_collision, const sead::Vector2f &pos) override
Definition SnakeBlock.h:119
u32 _314
Definition SnakeBlock.h:130
EdgePiece()
Definition SnakeBlock.h:121
u32 _310
Definition SnakeBlock.h:129
Definition SnakeBlock.h:62
AnimModel * mModel
Definition SnakeBlock.h:102
u16 _2d4
Definition SnakeBlock.h:109
static void callbackFoot(BgCollision *bc_self, ActorBgCollisionCheck *cc_other)
SnakeBlockBoyoMgr mBoyoMgr
Definition SnakeBlock.h:111
sead::Vector3f _2b4
Definition SnakeBlock.h:105
void init(SnakeBlock *parent, const sead::Vector3f &pos, SnakeType type)
u32 mPathIdx
Definition SnakeBlock.h:107
Piece()
Definition SnakeBlock.h:64
sead::Vector3f mModelScale
Definition SnakeBlock.h:110
u32 getPathIdx() const
Definition SnakeBlock.h:79
u32 _30c
Definition SnakeBlock.h:113
u32 _308
Definition SnakeBlock.h:112
SnakeBlock * mParent
Definition SnakeBlock.h:108
sead::Vector3f _2c0
Definition SnakeBlock.h:106
const sead::Vector3f & getWorldPos() const
Definition SnakeBlock.h:84
AnimModel * getModel() const
Definition SnakeBlock.h:74
sead::Vector3f _2a8
Definition SnakeBlock.h:104
sead::Vector3f mWorldPos
Definition SnakeBlock.h:103
u32 mPieceIdx
Definition SnakeBlock.h:100
u32 _294
Definition SnakeBlock.h:101
Definition SnakeBlock.h:31
const StateID * mEndState
Definition SnakeBlock.h:232
s32 mFallCascadeTimer
Definition SnakeBlock.h:234
virtual bool toDelete_() const
SnakeType
Definition SnakeBlock.h:36
@ cSnakeType_Normal
Definition SnakeBlock.h:37
@ cSnakeType_Icy
Definition SnakeBlock.h:38
SnakeBlock(const ActorCreateParameter ¶m)
Definition SnakeBlock.h:135
SnakeType mSnakeType
Definition SnakeBlock.h:233
Result create() override
Main initialization/setup callback for the actor.
Piece mMiddlePiece[20]
Definition SnakeBlock.h:225
f32 mBlockSize
Definition SnakeBlock.h:227
u32 mMiddlePieceCnt
Definition SnakeBlock.h:226
u8 * mPathDirection
Definition SnakeBlock.h:228
StartCondition
Definition SnakeBlock.h:42
@ cStartCondition_AlwaysActive
Definition SnakeBlock.h:44
@ cStartCondition_AllPlayers
Definition SnakeBlock.h:45
@ cStartCondition_SinglePlayer
Definition SnakeBlock.h:43
s16 _5c04
Definition SnakeBlock.h:231
~SnakeBlock() override=default
u8 * mPathMarker
Definition SnakeBlock.h:229
bool mPlayerTouching[cPlayerNum]
Definition SnakeBlock.h:239
DrcTouchCB mDrcTouchCallback
Definition SnakeBlock.h:241
const EdgePiece & getEdgePiece(u32 idx) const
Definition SnakeBlock.h:167
u32 mPathLen
Definition SnakeBlock.h:230
const Piece & getMiddlePiece(u32 idx) const
Definition SnakeBlock.h:172
StartCondition mStartCondition
Definition SnakeBlock.h:236
bool draw() override
Main rendering callback for the actor. Called every frame (the game runs at exactly 60 FPS).
u32 mCreateMiddleIdx
Definition SnakeBlock.h:235
bool mRepeatMovement
Definition SnakeBlock.h:237
u32 _5d54
Definition SnakeBlock.h:242
bool execute() override
Main execution/logic callback for the actor. Called every frame (the game runs at exactly 60 FPS).
u32 mRepeatRailNode
Definition SnakeBlock.h:238
Result doDelete() override
ActorCollisionCheck _5c28
Definition SnakeBlock.h:240