3#include <actor/ActorBase.h>
4#include <actor/ActorCulling.h>
5#include <collision/ActorCollisionCheck.h>
6#include <effect/EffectID.h>
7#include <fukidashi/FukidashiType.h>
8#include <map/WaveType.h>
9#include <utility/Angle3.h>
10#include <utility/Direction.h>
12#define ACTOR_DEFAULT_GRAVITY -0.1875f
13#define ACTOR_DEFAULT_MAX_FALL_SPEED -4.0f
27 SEAD_RTTI_OVERRIDE(
Actor, ActorBase)
50
51
96
97
103
104
135 return getDir2PlayerLR(mPos);
140 return getDir2PlayerUD(mPos);
144
145
146
147
148
149
150
151
152
153
174
175
176
177
183 return mCollisionCheck;
188 return mCollisionCheck;
218 return mCollisionMask;
228 mMaxSpeedF = maxSpeedF;
233 return mMaxFallSpeed;
238 mMaxFallSpeed = maxFallSpeed;
242
243
255
256
279 return reinterpret_cast<sead::Vector2f&>(mPos.x);
284 return reinterpret_cast<
const sead::Vector2f&>(mPos.x);
289 return getPos() + mCenterOffset;
294 return getPos2D() +
reinterpret_cast<
const sead::Vector2f&>(mCenterOffset.x);
299 return mPos.x + mCenterOffset.x;
304 return mPos.y + mCenterOffset.y;
309 return mPos.z + mCenterOffset.z;
359 return ActorKind(mActorKind);
374 return CarryFlag(mCarryFlag);
389 return mBlockHitTimer;
394 return mBlockHitDirection;
399 mBlockHitTimer = time;
404 mBlockHitDirection = dir;
434 Actor(
const ActorCreateParameter& param);
458 void waterSplashCommon_(
const sead::Vector3f& pos, s32 effect_id, WaveType wave_type,
const char* sound_label);
469 void calcSpeedF_(f32 accelF, f32 max_speedF) { sead::Mathf::chase(&mSpeedF, max_speedF, accelF); }
480 void posMove_(sead::Vector2f& delta_xy, f32 delta_z)
482 getPos2D() += delta_xy;
519 mPosPrev.set(position);
520 mPosPrev2.set(position);
596static_assert(
sizeof(
Actor) == 0x27C,
"Actor size mismatch");
Definition ActorBgCollisionCheck.h:60
bool isDrawEnable() const
Definition Actor.h:196
virtual void waterSplashEffect(const sead::Vector3f &pos)
sead::Vector3f mPosPrev
Definition Actor.h:586
void setAddSpeedF(f32 speedF)
Definition Actor.h:427
void setSpeedF(f32 speedF)
Definition Actor.h:417
DirType getDirection() const
Definition Actor.h:201
virtual void allEnemyDeathEffSet()
void setMaxSpeedF(f32 maxSpeedF)
Definition Actor.h:226
u32 mBlockHitTimer
Definition Actor.h:578
Angle3 mAngle
Definition Actor.h:557
bool mIsExecEnable
Definition Actor.h:570
void carryFukidashiCheck_(FukidashiType action, const sead::Vector2f &range)
sead::Vector2f mVisibleAreaSize
Definition Actor.h:562
void posMove_(sead::Vector2f &delta_xy, f32 delta_z)
Definition Actor.h:480
sead::Vector3f mSpeedMax
Definition Actor.h:555
const sead::Vector3f & getSpeedMaxVec() const
Definition Actor.h:327
s8 mPlayerNo
Definition Actor.h:544
const Angle3 & getAngle() const
Definition Actor.h:347
ActorCulling::ActorCullUsable mCullLimit
Definition Actor.h:564
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
u8 getLayer() const
Definition Actor.h:211
f32 getMaxFallSpeed() const
Definition Actor.h:231
const ActorCollisionCheck & getCollisionCheck() const
Definition Actor.h:186
u8 getSwitchFlag1() const
Definition Actor.h:382
void waterSplashCommon_(const sead::Vector3f &pos, s32 effect_id, WaveType wave_type, const char *sound_label)
PropelParts * mPropelParts
Definition Actor.h:591
sead::Vector2f mVisibleAreaOffset
Definition Actor.h:561
s32 mComboCnt
Definition Actor.h:583
virtual void setCarryFall(Actor *, s32)
Definition Actor.h:82
const sead::Vector3f & getSpeedVec() const
Definition Actor.h:317
DirType mDirection
Definition Actor.h:543
f32 getPow() const
The current horizontal acceleration.
Definition Actor.h:257
bool checkEatenYoshi() const
bool preExecute() override
Callback invoked before the execute operation.
sead::Vector3f & getPos()
Definition Actor.h:267
u32 mProfFlag
Definition Actor.h:584
virtual void setSpinLiftUpActor(Actor *player)
Definition Actor.h:91
void setDirection(DirType dir)
Definition Actor.h:206
sead::Vector2f mSize
Definition Actor.h:563
sead::Vector2f getCenterPos2D() const
Definition Actor.h:292
ActorCollisionCheck mCollisionCheck
Definition Actor.h:560
s8 mControllerLytPlayerNo
Definition Actor.h:545
void calcSpeedF_()
Definition Actor.h:470
u16 mCreateFlag
Definition Actor.h:577
void posMove_()
Definition Actor.h:486
sead::Vector3f mCenterOffset
Definition Actor.h:585
void postCreate(MainState state) override
Callback invoked unconditionally after the create phase completes. It executes even if preCreate() by...
const sead::Vector2f & getPosDelta() const
Definition Actor.h:352
void setBlockHitDirection(DirType dir)
Definition Actor.h:402
bool mIsDrawEnable
Definition Actor.h:571
u8 mAreaNo
Definition Actor.h:568
sead::Vector3f & getSpeedVec()
Definition Actor.h:312
bool isEnablePressObjBg_(const BgCollision *bg_collision) const
void calcFallSpeed_(f32 accel_y, f32 max_fall_speed)
sead::BitFlag8 getCollisionMask() const
Definition Actor.h:216
s32 getComboCnt() const
Definition Actor.h:112
virtual const ActorBgCollisionCheck * getBcConstPtr() const
Definition Actor.h:77
sead::Vector2f & getPos2D()
Definition Actor.h:277
Actor(const ActorCreateParameter ¶m)
DirType getBlockHitDirection() const
Definition Actor.h:392
sead::Vector3f & getSpeedMaxVec()
Definition Actor.h:322
sead::Vector3f mPosPrevPostExec
Definition Actor.h:587
const sead::Vector2f & getPos2D() const
Definition Actor.h:282
void carryFukidashiCancel_(FukidashiType action, s32 player_no)
f32 getGravity() const
The current vertical acceleration.
Definition Actor.h:244
ChibiEatCallback * mChibiEatCallbackPtr
Definition Actor.h:590
bool setEnemyIceBreakReq_(const BgCollision *bg_collision)
u32 getProfFlag() const
Definition Actor.h:407
bool isBreakPressObjBg_(const BgCollision *bgcol_approaching_side, const BgCollision *bgcol_fixed_side) const
DirType getDir2PlayerUD()
Definition Actor.h:138
bool checkPressBgWall_(const ActorBgCollisionCheck &bc, DirType direction) const
f32 getAddSpeedF() const
Definition Actor.h:422
bool setDrcBlockBreakReq_(const BgCollision *bg_collision)
u8 mSwitchFlag1
Definition Actor.h:576
sead::Vector3f mPos
Definition Actor.h:553
void setPosSuddenly_(const sead::Vector3f &position)
Definition Actor.h:516
void calcSpeedF_(f32 accelF, f32 max_speedF)
Definition Actor.h:469
virtual void yoganWaveSplashEffect(const sead::Vector3f &pos)
u32 getBlockHitTimer() const
Definition Actor.h:387
bool checkCarried(s32 *player_no) const
ChibiYoshiAwaData * mChibiYoshiAwaDataPtr
Definition Actor.h:594
Actor * searchCarryFukidashiPlayer_(FukidashiType action) const
sead::Vector2f mPosDelta
Definition Actor.h:559
s32 searchNearPlayer(sead::Vector2f *out) const
u8 _220
Definition Actor.h:580
DirType getDir2PlayerUD(const sead::Vector3f &position) const
u8 mSwitchFlag0
Definition Actor.h:575
f32 mPow
Definition Actor.h:552
DirType getDir2PlayerLR()
Definition Actor.h:133
f32 mMaxSpeedF
Definition Actor.h:549
CarryFlag getCarryFlag() const
Definition Actor.h:372
f32 mAddSpeedF
Definition Actor.h:593
ActorKind getKind() const
Definition Actor.h:357
void slideComboSE(s32 combo_cnt, bool combo_type_2)
f32 getSpeedF() const
Definition Actor.h:412
virtual void yoganSplashEffect(const sead::Vector3f &pos)
DirType mCarryDirection
Definition Actor.h:581
void setPow(f32 pow)
Definition Actor.h:262
u8 getSwitchFlag0() const
Definition Actor.h:377
void setMaxFallSpeed(f32 maxFallSpeed)
Definition Actor.h:236
virtual void setPlrNo(s32 id)
Definition Actor.h:62
virtual void stopGroupid()
Called by Group Controller when "deactivating" the target group.
Definition Actor.h:105
Angle3 mAnglePrev
Definition Actor.h:558
void setGravity(f32 gravity)
Definition Actor.h:249
u8 mLayer
Definition Actor.h:546
void calcSpeedY_()
Definition Actor.h:467
sead::Vector3f getCenterPos() const
Definition Actor.h:287
bool actorExecCullCheck(u16 flag)
Checks if the actor is out of gameplay and optionally deletes it.
f32 mSpeedF
Definition Actor.h:548
ExecCullFlag
Flags to pass to actorExecCullCheck to skip checks or actions during the evaluation.
Definition Actor.h:53
@ cExecCullFlag_SkipTottenCheck
Skip checking if Nabbit has passed to the right of the actor's visible range.
Definition Actor.h:58
@ cExecCullFlag_SkipCameraCheck
Skip checking if the actor is outside of the visible camera.
Definition Actor.h:56
@ cExecCullFlag_SkipRideCheck
Skip checking if the actor is riding another actor/platform.
Definition Actor.h:57
@ cExecCullFlag_SkipDeletion
Skip deleting the actor if the checks do pass.
Definition Actor.h:55
@ cExecCullFlag_SkipNone
Perform all checks and delete the actor if they pass.
Definition Actor.h:54
bool isExecEnable() const
Definition Actor.h:191
bool checkInternalIceBlock_(const ActorBgCollisionCheck &bc)
f32 getMaxSpeedF() const
Definition Actor.h:221
virtual bool isSpinLiftUpEnable() const
Definition Actor.h:86
ActorCollisionCheck & getCollisionCheck()
Definition Actor.h:181
virtual void poisonSplashEffect(const sead::Vector3f &pos)
virtual void startGroupid()
Called by Group Controller when "activating" the target group.
Definition Actor.h:98
u8 mActorKind
Definition Actor.h:569
bool mManualDeletedFlag
Definition Actor.h:572
bool getManualDeletedFlag() const
Definition Actor.h:367
f32 mGravity
Definition Actor.h:551
void calcFallSpeed_()
Definition Actor.h:473
DirType getDir2PlayerLR(const sead::Vector3f &position) const
Angle3 & getAngle()
Definition Actor.h:342
u32 mThrowPlayerNo
Definition Actor.h:582
bool checkPressBgUD_(const ActorBgCollisionCheck &bc)
f32 getCenterX() const
Definition Actor.h:297
CarryFlag
Definition Actor.h:40
@ cCarryFlag_Throw
Definition Actor.h:42
@ cCarryFlag_Release
Definition Actor.h:41
@ cCarryFlag_All
Definition Actor.h:46
@ cCarryFlag_ThrowHard
Definition Actor.h:43
@ cCarryFlag_None
Definition Actor.h:45
sead::Vector3f mScale
Definition Actor.h:556
sead::Vector3f mPosPrev2
Definition Actor.h:588
u8 * _270
Definition Actor.h:592
s8 getPlrNo() const
Definition Actor.h:67
f32 getCenterY() const
Definition Actor.h:302
void calcSpeedY_(f32 accel_y, f32 speed_max_y)
void setKind(ActorKind kind)
Definition Actor.h:362
bool checkPressBgLR_(const ActorBgCollisionCheck &bc)
bool checkPressBgFoot_(const ActorBgCollisionCheck &bc) const
bool setBreakPressObjBgUD_(const ActorBgCollisionCheck &bc)
void setBlockHitTimer(u32 time)
Definition Actor.h:397
sead::BitFlag8 mCollisionMask
Definition Actor.h:547
const sead::Vector3f & getScale() const
Definition Actor.h:337
void deleteActor_(bool manual_deleted)
Schedule this actor for deletion on the next frame.
f32 getCenterZ() const
Definition Actor.h:307
DirType mBlockHitDirection
Definition Actor.h:579
sead::Vector3f & getScale()
Definition Actor.h:332
void carryFukidashiCheck_(FukidashiType action)
void posMove_(sead::Vector3f &delta)
Definition Actor.h:475
u8 mCarryFlag
Definition Actor.h:574
sead::Vector3f mSpeed
Definition Actor.h:554
EatCallback * mEatCallbackPtr
Definition Actor.h:589
u32 checkAvailableCullCheckOnQuest(const sead::BoundBox2f &src_range)
bool checkPressBgHead_(const ActorBgCollisionCheck &bc) const
bool setBreakPressObjBgLR_(const ActorBgCollisionCheck &bc)
virtual bool actorDrawCullCheck()
u8 _211
Definition Actor.h:573
const sead::Vector3f & getPos() const
Definition Actor.h:272
bool preDraw() override
Callback invoked before the draw operation.
f32 getEffectZpos_() const
virtual void blockHitInit()
Definition Actor.h:453
f32 mMaxFallSpeed
Definition Actor.h:550
Definition BgCollision.h:20
Definition ChibiEatCallback.h:11
Defines parameters for interaction with bubbles from the blue Baby Yoshi.
Definition ChibiYoshiAwaData.h:14
Definition EatCallback.h:11
Definition PropelParts.h:11