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>
53 void bcOnTouch(BgCollision* bg_collision,
const sead::Vector2f& pos)
override;
55 static_assert(
sizeof(
DrcTouchCB) == 0x4,
"SnakeBlock::DrcTouchCB size mismatch");
93 static void callbackFoot(BgCollision* bc_self, ActorBgCollisionCheck* cc_other);
111 static_assert(
sizeof(
Piece) == 0x310,
"SnakeBlock::Piece size mismatch");
127 static_assert(
sizeof(
EdgePiece) == 0x318,
"SnakeBlock::EdgePiece size mismatch");
164 return mEdgePiece[idx];
169 return mMiddlePiece[idx];
239static_assert(
sizeof(
SnakeBlock) == 0x5D58,
"SnakeBlock size mismatch");
Definition SnakeBlock.h:10
void setBaseScale(const sead::Vector3f *scale)
Definition SnakeBlock.h:19
const sead::Vector3f * mBaseScale
Definition SnakeBlock.h:25
sead::Vector3f getBaseScale() const override
SnakeBlockBoyoMgr()
Definition SnakeBlock.h:12
Definition SnakeBlock.h:48
void bcOnTouch(BgCollision *bg_collision, const sead::Vector2f &pos) override
bool bcSetTouchNormal(BgCollision *bg_collision, const sead::Vector2f &pos) override
Definition SnakeBlock.h:114
u32 _314
Definition SnakeBlock.h:125
EdgePiece()
Definition SnakeBlock.h:116
u32 _310
Definition SnakeBlock.h:124
Definition SnakeBlock.h:58
AnimModel * mModel
Definition SnakeBlock.h:98
u16 _2d4
Definition SnakeBlock.h:105
static void callbackFoot(BgCollision *bc_self, ActorBgCollisionCheck *cc_other)
SnakeBlockBoyoMgr mBoyoMgr
Definition SnakeBlock.h:107
sead::Vector3f _2b4
Definition SnakeBlock.h:101
void init(SnakeBlock *parent, const sead::Vector3f &pos, SnakeType type)
u32 mPathIdx
Definition SnakeBlock.h:103
Piece()
Definition SnakeBlock.h:60
sead::Vector3f mModelScale
Definition SnakeBlock.h:106
u32 getPathIdx() const
Definition SnakeBlock.h:75
u32 _30c
Definition SnakeBlock.h:109
u32 _308
Definition SnakeBlock.h:108
SnakeBlock * mParent
Definition SnakeBlock.h:104
sead::Vector3f _2c0
Definition SnakeBlock.h:102
const sead::Vector3f & getWorldPos() const
Definition SnakeBlock.h:80
AnimModel * getModel() const
Definition SnakeBlock.h:70
sead::Vector3f _2a8
Definition SnakeBlock.h:100
sead::Vector3f mWorldPos
Definition SnakeBlock.h:99
u32 mPieceIdx
Definition SnakeBlock.h:96
u32 _294
Definition SnakeBlock.h:97
Definition SnakeBlock.h:29
const StateID * mEndState
Definition SnakeBlock.h:227
s32 mFallCascadeTimer
Definition SnakeBlock.h:229
virtual bool toDelete_() const
SnakeType
Definition SnakeBlock.h:34
@ cSnakeType_Normal
Definition SnakeBlock.h:35
@ cSnakeType_Icy
Definition SnakeBlock.h:36
SnakeType mSnakeType
Definition SnakeBlock.h:228
Result create() override
Main initialization/setup callback for the actor.
Piece mMiddlePiece[20]
Definition SnakeBlock.h:220
f32 mBlockSize
Definition SnakeBlock.h:222
u32 mMiddlePieceCnt
Definition SnakeBlock.h:221
u8 * mPathDirection
Definition SnakeBlock.h:223
StartCondition
Definition SnakeBlock.h:40
@ cStartCondition_AlwaysActive
Definition SnakeBlock.h:42
@ cStartCondition_AllPlayers
Definition SnakeBlock.h:43
@ cStartCondition_SinglePlayer
Definition SnakeBlock.h:41
s16 _5c04
Definition SnakeBlock.h:226
~SnakeBlock() override=default
u8 * mPathMarker
Definition SnakeBlock.h:224
bool mPlayerTouching[cPlayerNum]
Definition SnakeBlock.h:234
DrcTouchCB mDrcTouchCallback
Definition SnakeBlock.h:236
const EdgePiece & getEdgePiece(u32 idx) const
Definition SnakeBlock.h:162
u32 mPathLen
Definition SnakeBlock.h:225
const Piece & getMiddlePiece(u32 idx) const
Definition SnakeBlock.h:167
StartCondition mStartCondition
Definition SnakeBlock.h:231
bool draw() override
Main rendering callback for the actor. Called every frame (the game runs at exactly 60 FPS).
u32 mCreateMiddleIdx
Definition SnakeBlock.h:230
bool mRepeatMovement
Definition SnakeBlock.h:232
u32 _5d54
Definition SnakeBlock.h:237
bool execute() override
Main execution/logic callback for the actor. Called every frame (the game runs at exactly 60 FPS).
SnakeBlock(const ActorCreateParam ¶m)
Definition SnakeBlock.h:130
u32 mRepeatRailNode
Definition SnakeBlock.h:233
Result doDelete() override
Main deletion callback for the actor.
ActorCollisionCheck _5c28
Definition SnakeBlock.h:235