3#include <actor/ActorBase.h>
4#include <actor/ActorCullRange.h>
5#include <collision/ActorCollisionCheck.h>
6#include <utility/Angle3.h>
7#include <utility/Direction.h>
25 SEAD_RTTI_OVERRIDE(
Actor, ActorBase)
48
49
94
95
101
102
133 return getPlayerDirLR(mPos);
138 return getPlayerDirUD(mPos);
142
143
144
145
146
147
148
149
150
151
172
173
174
175
181 return mCollisionCheck;
186 return mCollisionCheck;
216 return mCollisionMask;
226 mMaxSpeedF = maxSpeedF;
231 return mMaxFallSpeed;
236 mMaxFallSpeed = maxFallSpeed;
240
241
253
254
277 return reinterpret_cast<sead::Vector2f&>(mPos.x);
282 return reinterpret_cast<
const sead::Vector2f&>(mPos.x);
287 return getPos() + mCenterOffset;
292 return getPos2D() +
reinterpret_cast<
const sead::Vector2f&>(mCenterOffset.x);
297 return mPos.x + mCenterOffset.x;
302 return mPos.y + mCenterOffset.y;
307 return mPos.z + mCenterOffset.z;
352 return ActorKind(mActorKind);
367 return CarryFlag(mCarryFlag);
407 Actor(
const ActorCreateParam& param);
442 void calcSpeedF_(f32 accelF, f32 max_speedF) { sead::Mathf::chase(&mSpeedF, max_speedF, accelF); }
453 void posMove_(sead::Vector2f& delta_xy, f32 delta_z)
455 getPos2D() += delta_xy;
567static_assert(
sizeof(
Actor) == 0x27C);
constexpr f32 ACTOR_DEFAULT_MAX_FALL_SPEED
Definition Actor.h:10
constexpr f32 ACTOR_DEFAULT_GRAVITY
Definition Actor.h:9
s32 EffectID
Definition Actor.h:19
Definition ActorBgCollisionCheck.h:59
bool isDrawEnable() const
Definition Actor.h:194
virtual void waterSplashEffect(const sead::Vector3f &pos)
sead::Vector3f mPosPrev
Definition Actor.h:552
void setAddSpeedF(f32 speedF)
Definition Actor.h:400
void setSpeedF(f32 speedF)
Definition Actor.h:390
DirType getDirection() const
Definition Actor.h:199
s32 searchNearPlayer(sead::Vector2f &out)
virtual void allEnemyDeathEffSet()
virtual bool isSpinLiftUpEnable()
Definition Actor.h:84
void setMaxSpeedF(f32 maxSpeedF)
Definition Actor.h:224
u32 mBlockHitTimer
Definition Actor.h:544
Angle3 mAngle
Definition Actor.h:523
bool mIsExecEnable
Definition Actor.h:536
bool checkPressU_(const ActorBgCollisionCheck &bc)
sead::Vector2f mVisibleAreaSize
Definition Actor.h:528
void posMove_(sead::Vector2f &delta_xy, f32 delta_z)
Definition Actor.h:453
virtual bool drawCullCheck_()
sead::Vector3f mSpeedMax
Definition Actor.h:521
const sead::Vector3f & getSpeedMaxVec() const
Definition Actor.h:325
s8 mPlayerNo
Definition Actor.h:510
virtual void groupDeactivate()
Called by Group Controller when "deactivating" the target group.
Definition Actor.h:103
const Angle3 & getAngle() const
Definition Actor.h:345
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
u8 getLayer() const
Definition Actor.h:209
f32 getMaxFallSpeed() const
Definition Actor.h:229
s8 getPlayerNo() const
Definition Actor.h:65
const ActorCollisionCheck & getCollisionCheck() const
Definition Actor.h:184
u8 getSwitchFlag1() const
Definition Actor.h:375
bool setPressBreakLR_(const ActorBgCollisionCheck &bc)
virtual void setPlayerNo(s8 id)
Definition Actor.h:60
virtual void groupActivate()
Called by Group Controller when "activating" the target group.
Definition Actor.h:96
PropelParts * mPropelParts
Definition Actor.h:557
sead::Vector2f mVisibleAreaOffset
Definition Actor.h:527
bool canPress_(const BgCollision *bg_collision)
s32 mComboCnt
Definition Actor.h:549
virtual void setCarryFall(Actor *, s32)
Definition Actor.h:80
bool setPressIceHeadBreak_(const ActorBgCollisionCheck &bc)
ChibiYoshiEatData * mChibiYoshiEatDataPtr
Definition Actor.h:556
EatData * mEatDataPtr
Definition Actor.h:555
const sead::Vector3f & getSpeedVec() const
Definition Actor.h:315
DirType mDirection
Definition Actor.h:509
f32 getPow() const
The current horizontal acceleration.
Definition Actor.h:255
bool preExecute() override
Callback invoked before the execute operation.
ActorCullRange mCullLimit
Definition Actor.h:530
virtual ActorBgCollisionCheck * getBgCheck()
Definition Actor.h:75
bool isEnablePressUD_(const ActorBgCollisionCheck &bc)
sead::Vector3f & getPos()
Definition Actor.h:265
u32 mProfFlag
Definition Actor.h:550
virtual void setSpinLiftUpActor(Actor *player)
Definition Actor.h:89
void setDirection(DirType dir)
Definition Actor.h:204
sead::Vector2f mSize
Definition Actor.h:529
DirType getPlayerDirLR()
Definition Actor.h:131
void carryFukidashiCheck_(s32 action)
sead::Vector2f getCenterPos2D() const
Definition Actor.h:290
bool setPressBreakIce_(const BgCollision *bg_collision)
ActorCollisionCheck mCollisionCheck
Definition Actor.h:526
s8 mControllerLytPlayerNo
Definition Actor.h:511
void calcSpeedF_()
Definition Actor.h:443
u16 mCreateFlag
Definition Actor.h:543
void posMove_()
Definition Actor.h:459
sead::Vector3f mCenterOffset
Definition Actor.h:551
void postCreate(MainState state) override
Callback invoked unconditionally after the create phase completes. It executes even if preCreate() by...
bool checkPressD_(const ActorBgCollisionCheck &bc)
bool mIsDrawEnable
Definition Actor.h:537
static const f32 cCullXLimit
Definition Actor.h:563
u8 mAreaNo
Definition Actor.h:534
sead::Vector3f & getSpeedVec()
Definition Actor.h:310
void calcFallSpeed_(f32 accel_y, f32 max_fall_speed)
sead::BitFlag8 getCollisionMask() const
Definition Actor.h:214
s32 getComboCnt() const
Definition Actor.h:110
sead::Vector2f & getPos2D()
Definition Actor.h:275
sead::Vector3f & getSpeedMaxVec()
Definition Actor.h:320
sead::Vector3f mPosPrevPostExec
Definition Actor.h:553
void carryFukidashiCancel_(s32 action, s32 player_no)
const sead::Vector2f & getPos2D() const
Definition Actor.h:280
f32 getGravity() const
The current vertical acceleration.
Definition Actor.h:242
u32 getProfFlag() const
Definition Actor.h:380
DirType getPlayerDirUD()
Definition Actor.h:136
f32 getAddSpeedF() const
Definition Actor.h:395
u8 mSwitchFlag1
Definition Actor.h:542
void splashEffect_(const sead::Vector3f &pos, EffectID effect_id, u8 wave_scale, const char *sound_label)
sead::Vector3f mPos
Definition Actor.h:519
bool setPressBreakBlockDRC_(const BgCollision *bg_collision)
void calcSpeedF_(f32 accelF, f32 max_speedF)
Definition Actor.h:442
virtual void yoganWaveSplashEffect(const sead::Vector3f &pos)
bool isEnablePressLR_(const ActorBgCollisionCheck &bc)
bool canPressIfApproaching_(const BgCollision *bgcol_approaching_side, const BgCollision *bgcol_fixed_side)
ChibiYoshiAwaData * mChibiYoshiAwaDataPtr
Definition Actor.h:560
sead::Vector2f mPosDelta
Definition Actor.h:525
void deleteActor(bool manual_deleted)
Schedule this actor for deletion on the next frame.
bool checkCarried(s32 *player_no)
u8 _220
Definition Actor.h:546
Actor(const ActorCreateParam ¶m)
u8 mSwitchFlag0
Definition Actor.h:541
f32 mPow
Definition Actor.h:518
f32 mMaxSpeedF
Definition Actor.h:515
CarryFlag getCarryFlag() const
Definition Actor.h:365
bool setPressBreakUD_(const ActorBgCollisionCheck &bc)
f32 mAddSpeedF
Definition Actor.h:559
ActorKind getKind() const
Definition Actor.h:350
void slideComboSE(s32 combo_cnt, bool combo_type_2)
f32 getSpeedF() const
Definition Actor.h:385
virtual void yoganSplashEffect(const sead::Vector3f &pos)
DirType mCarryDirection
Definition Actor.h:547
static const f32 cCullYLimit
Definition Actor.h:565
void setPow(f32 pow)
Definition Actor.h:260
u8 getSwitchFlag0() const
Definition Actor.h:370
void setMaxFallSpeed(f32 maxFallSpeed)
Definition Actor.h:234
Angle3 mAnglePrev
Definition Actor.h:524
void setGravity(f32 gravity)
Definition Actor.h:247
u8 mLayer
Definition Actor.h:512
void calcSpeedY_()
Definition Actor.h:440
DirType getPlayerDirLR(const sead::Vector3f &position)
sead::Vector3f getCenterPos() const
Definition Actor.h:285
f32 mSpeedF
Definition Actor.h:514
bool isExecEnable() const
Definition Actor.h:189
f32 getMaxSpeedF() const
Definition Actor.h:219
ActorCollisionCheck & getCollisionCheck()
Definition Actor.h:179
virtual void poisonSplashEffect(const sead::Vector3f &pos)
u8 mActorKind
Definition Actor.h:535
bool mManualDeletedFlag
Definition Actor.h:538
virtual void removeCollisionCheck()
virtual void reviveCollisionCheck()
bool getManualDeletedFlag() const
Definition Actor.h:360
f32 mGravity
Definition Actor.h:517
void calcFallSpeed_()
Definition Actor.h:446
Actor * searchCarryFukidashiPlayer_(s32 action)
void carryFukidashiCheck_(s32 action, const sead::Vector2f &range)
Angle3 & getAngle()
Definition Actor.h:340
u32 mThrowPlayerNo
Definition Actor.h:548
f32 getCenterX() const
Definition Actor.h:295
CarryFlag
Definition Actor.h:38
@ cCarryFlag_Throw
Definition Actor.h:40
@ cCarryFlag_Release
Definition Actor.h:39
@ cCarryFlag_All
Definition Actor.h:44
@ cCarryFlag_ThrowHard
Definition Actor.h:41
@ cCarryFlag_None
Definition Actor.h:43
sead::Vector3f mScale
Definition Actor.h:522
sead::Vector3f mPosPrev2
Definition Actor.h:554
u8 * _270
Definition Actor.h:558
f32 getCenterY() const
Definition Actor.h:300
u32 calcTottenToSrcDir_(const sead::BoundBox2f &src_range) const
virtual void blockHitInit_()
Definition Actor.h:426
void calcSpeedY_(f32 accel_y, f32 speed_max_y)
void setKind(ActorKind kind)
Definition Actor.h:355
f32 getEffectZPos() const
sead::BitFlag8 mCollisionMask
Definition Actor.h:513
const sead::Vector3f & getScale() const
Definition Actor.h:335
f32 getCenterZ() const
Definition Actor.h:305
DirType mBlockHitDirection
Definition Actor.h:545
sead::Vector3f & getScale()
Definition Actor.h:330
void posMove_(sead::Vector3f &delta)
Definition Actor.h:448
u8 mCarryFlag
Definition Actor.h:540
sead::Vector3f mSpeed
Definition Actor.h:520
DirType getPlayerDirUD(const sead::Vector3f &position)
u8 _211
Definition Actor.h:539
const sead::Vector3f & getPos() const
Definition Actor.h:270
ScreenOutFlag
Flags to pass to screenOutCheck to skip checks or actions during the evaluation.
Definition Actor.h:51
@ cScreenOutFlag_SkipDeletion
Skip deleting the actor if the checks do pass.
Definition Actor.h:53
@ cScreenOutFlag_SkipRideCheck
Skip checking if the actor is riding another actor/platform.
Definition Actor.h:55
@ cScreenOutFlag_SkipNone
Perform all checks and delete the actor if they pass.
Definition Actor.h:52
@ cScreenOutFlag_SkipTottenCheck
Skip checking if Nabbit has passed to the right of the actor's visible range.
Definition Actor.h:56
@ cScreenOutFlag_SkipCameraCheck
Skip checking if the actor is outside of the visible camera.
Definition Actor.h:54
bool preDraw() override
Callback invoked before the draw operation.
bool screenOutCheck(ScreenOutFlag flag)
Checks if the actor is out of gameplay and optionally deletes it.
bool checkPressLR_(const ActorBgCollisionCheck &bc, DirType direction)
f32 mMaxFallSpeed
Definition Actor.h:516
Definition BgCollision.h:19
Defines parameters for interaction with bubbles from the blue Baby Yoshi.
Definition ChibiYoshiAwaData.h:14
Definition ChibiYoshiEatData.h:10
Definition PropelParts.h:11