3#include <game/bases/d_base_actor.hpp>
4#include <game/mLib/m_3d.hpp>
5#include <game/bases/d_cc.hpp>
6#include <game/bases/d_bc.hpp>
7#include <game/bases/d_rc.hpp>
8#include <_dummy_classes.hpp>
103 virtual bool vf68(dBg_ctr_c *collider) {
return true; }
237 void killActor(s8 playerId,
int noScore);
383 void setDefaultMaxBound() {
390 u8 getKindMask() {
return 1 <<
mKind; }
The minimum required implementation for a stage actor.
static u8 mExecStopReq
The actors for which the execute operation is requested to be disabled.
static u8 mExecStop
The actors for which the execute operation is currently disabled.
static bool getTrgToSrcDirLoop(float trgX, float srcX)
See getTrgToSrcDirFunc.
void deleteActor(u8 deleteForever)
Deletes the actor and optionally disables respawn.
static const float smc_CULL_AREA_XLIMIT
The default max bound X size.
u8 mExecStopMask
The mask required to disable the execute operation for the actor.
static dActor_c * construct(ProfileName profName, unsigned long param, const mVec3_c *position, const mAng3_c *rotation, u8 layer)
Creates a stage actor without a parent.
void slideComboSE(int multiplier, bool shortCombo)
Plays the combo kill sound effect.
virtual bool setEatGlupDown(dActor_c *eatingActor)
Callback for when the actor is about to be fully swallowed.
virtual void setCarryFall(dActor_c *carryingActor, int collisionDelay)
Callback for when the actor is dropped by the carrying actor.
bool mBlockHit
Whether a block below the actor was hit.
dAcPy_c * searchNearPlayer(mVec2_c &delta)
Gets the closest player to the actor and its distance.
CARRY_ACTION_e
The possible carry actions.
@ CARRY_RELEASE
The actor is being released from carry.
@ CARRY_THROW
The actor is being actively thrown by the player.
static void setLoopFunc(int loopType)
Sets the position-related functions for the level.
bool checkAreaNo()
Checks if at least one player is in the same zone as the actor.
void carryFukidashiCancel(int fukidashiAction, int playerId)
Hides the given action prompt for all players.
virtual void postCreate(fBase_c::MAIN_STATE_e status)
post method for the create operation.
virtual void postDelete(fBase_c::MAIN_STATE_e status)
post method for the delete operation.
mVec3_c mPreEatScale
The actor's scale before being eaten.
static void setSoftLight_MapObj(m3d::bmdl_c &mdl)
Sets the soft light effect for map objects.
virtual void cancelFunsuiActUpper()
u8 m_00
Seems to be a player bit flag.
static u8 * m_tmpCtSpawnFlags
Temporary storage for the next created sprite actor's spawn flags. See mpSpawnFlags.
static void setSoftLight_Map(m3d::bmdl_c &mdl)
Sets the soft light effect for map actors.
bool mNoRespawn
Whether the actor should not respawn after being deleted.
virtual void setSpinLiftUpActor(dActor_c *carryingActor)
Callback for when the actor is picked up by another actor.
virtual void reviveCc()
Enables the actor's collision.
static void setTmpCtData(u8 layer)
Sets temporary data to be used for the next actor's construction.
dPropelParts_c * mPropelParts
The actor's propeller effect manager.
static u64 m_tmpCtEventMask
Temporary storage for the next created sprite actor's event mask. See mEventMask.
static u8 m_tmpCtLayerNo
Temporary storage for the next constructed actor's layer. See mLayer.
u8 * mpSpawnFlags
The spawn flags for the actor. See ACTOR_SPAWN_FLAG_e.
CARRY_ACTION_e mCarryingFlags
The actor's carry actions.
dBc_c mBc
The actor-to-tile collision sensor.
static getTrgToSrcDirFunc mGetTrgToSrcDirFunc
The direction detection function.
static u8 m_tmpCtSpriteLayerNo
Temporary storage for the next created sprite actor's layer. See mLayer.
virtual void poisonSplashEffect(const mVec3_c &pos, float size)
Generates a poison water splash effect.
static bool getTrgToSrcDir_Main(float trgX, float srcX)
See getTrgToSrcDirFunc.
static void setSoftLight_Enemy(m3d::bmdl_c &mdl)
Sets the soft light effect for enemies.
virtual bool isSpinLiftUpEnable()
Returns whether the actor can be carried.
void clrComboCnt()
Clears the actor's combo counter.
virtual void setEatTongue(dActor_c *eatingActor)
Callback for when the actor is targeted by Yoshi's tongue.
EAT_POINTS_e
The score awarded when the actor is eaten by Yoshi.
@ EAT_POINTS_1000
Awards 1000 points.
@ EAT_POINTS_200
Awards 200 points (default).
@ EAT_POINTS_NONE
No points are awarded.
virtual mVec2_c getLookatPos() const
Gets the position players look to when focused on the actor.
SCREEN_OUT_e
Flags used to control out of screen checks.
@ SKIP_SCREEN_CHECK
The actor position is not checked against the screen boundaries.
@ SKIP_RIDE_CHECK
The actor's ride status is not checked.
@ SKIP_ACTOR_DELETE
The actor is not deleted if out of screen.
static bool getTrgToSrcDirNormal(float trgX, float srcX)
See getTrgToSrcDirFunc.
static void setSoftLight_Boss(m3d::bmdl_c &mdl)
Sets the soft light effect for bosses.
static const float smc_CULL_YLIMIT
The default max bound Y offset.
static void setSoftLight_Player(m3d::bmdl_c &mdl)
Sets the soft light effect for players.
virtual float calcEatScaleRate(dActor_c *eatingActor)
Computes the scaling rate during eating.
static dAcPy_c * searchNearPlayerLoop(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
static u16 m_tmpCtEventNums
Temporary storage for the next created sprite actor's tracked event IDs. See mEventNums.
u8 mKind
The actor's kind. Value is a STAGE_ACTOR_KIND_e.
virtual void funsuiMoveX()
u8 mEatState
The actor's eat state. Value is a EAT_STATE_e.
static void changePosAngle(mVec3_c *pos, mAng3_c *ang, int param3)
Adjusts the actor's position to account for looping stages.
bool areaCullCheck(const mVec3_c &pos, const mBoundBox &bound, u8 areaID) const
Checks if the actor should be culled due to zone limits.
u8 mDirection
The actor's facing direction.
dCc_c mCc
The actor-to-actor collision sensor.
static dAcPy_c * searchNearPlayerNormal(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
EAT_BEHAVIOR_e
The possible actor behaviors when eaten by Yoshi.
@ EAT_TYPE_ICEBALL
Yoshi can spit an iceball after eating the actor.
@ EAT_TYPE_EAT
The actor can be eaten and then spat out.
@ EAT_TYPE_UNK3
Unknown behaviour. Used on Fruits, Pokeys and Giant Fuzzies.
@ EAT_TYPE_NONE
The actor cannot be eaten.
@ EAT_TYPE_FIREBALL
Yoshi can spit a fireball after eating the actor.
@ EAT_TYPE_EAT_PERMANENT
The actor is consumed permanently after being eaten (default).
virtual bool ActorDrawCullCheck()
Checks if the actor is out of view.
dAcPy_c * searchCarryFukidashiPlayer(int fukidashiAction)
Searches the closest player who has not yet performed the given action.
static void setSearchNearPlayerFunc(int loopType)
Sets the player search function to be used for the level.
mVec2_c mVisibleAreaSize
The size of the area inside which the actor is visible.
u32 mThrowDirection
The actor's direction when thrown or dropped after carrying.
virtual void removeCc()
Disables the actor's collision.
virtual int preCreate()
pre method for the create operation.
static dAcPy_c * searchNearPlayer_Main(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
static u8 mDrawStopReq
The actor kinds for which the draw operation is requested to be disabled.
bool mBackFence
Whether the actor is on the back side of chainlink fences.
dAcPy_c *(* searchNearPlayerFunc)(mVec2_c &delta, const mVec2_c &pos)
Gets the closest player to the given position and its distance.
virtual void postExecute(fBase_c::MAIN_STATE_e status)
post method for the execute operation.
virtual void eatMove(dActor_c *eatingActor)
Updates the actor's position during eating actions.
static void setGetTrgToSrcDirFunc(int loopType)
Sets the direction detection function to be used for the level.
u8 mEatBehaviour
The actor's eat behaviour. Value is a EAT_BEHAVIOR_e.
u8 mAreaNo
The actor's zone ID.
void setKind(u8 kind)
Sets the actor's kind. See STAGE_ACTOR_KIND_e.
virtual int preExecute()
pre method for the execute operation.
virtual void allEnemyDeathEffSet()
Spawns the visual effects for when all players reach the flagpole and all enemies are cleared.
static void setSoftLight_Item(m3d::bmdl_c &mdl)
Sets the soft light effect for items.
virtual const char * getKindString() const
Gets the base's kind string.
s8 mPlayerNo
The player associated with the actor, -1 if not associated to any player.
bool ActorScrOutCheck(u16 flags)
Checks if the actor is out of gameplay and optionally deletes it.
u32 mComboMultiplier
The current combo multiplier obtained by the actor by colliding with other actors.
virtual void cancelFunsuiActSide(int)
virtual void cancelFunsuiActVanish()
virtual void setEatMouth(dActor_c *eatingActor)
Callback for when the actor is being eaten.
u32 mEatenByID
The unique identifier of the eating actor.
bool carryFukidashiCheck(int fukidashiAction, mVec2_c fukidashiTriggerSize)
Checks if the prompt for the given action should be displayed for each player.
virtual void waterSplashEffect(const mVec3_c &pos, float size)
Generates a water splash effect.
void killActor(s8 playerId, int noScore)
Kills the actor and optionally awards points to one or all players.
virtual void setEatTongueOff(dActor_c *eatingActor)
Callback for when the eating action is canceled.
virtual void block_hit_init()
Callback for when a block directly beneath the actor is hit.
u64 mEventMask
The event mask, generated from mEventNums.
EAT_STATE_e
The possible actor eat states.
@ EAT_STATE_EATING
The actor is in the process of being eaten.
@ EAT_STATE_SPAT
The actor has been spat out.
@ EAT_STATE_SPIT
The actor is about to be spat out. Used for spitting out players when Yoshi is dismounted.
@ EAT_STATE_NONE
The actor is not being eaten.
@ EAT_STATE_EATEN
The actor has been successfully eaten.
bool checkCarried(int *playerNum)
Returns whether the actor is being carried by a player.
dActor_c()
Constructs a new actor.
bool checkBgColl()
Returns whether the actor is colliding with any enabled collision sides.
virtual void yoganSplashEffect(const mVec3_c &pos, float size)
Generates a lava splash effect.
BG_COLL_FLAG_e
The collision directions that an actor can respond to.
@ COLL_FOOT
The actor can collide with the ground.
@ COLL_HEAD
The actor can collide with ceilings.
@ COLL_WALL_L
The actor can collide with walls on its left.
@ COLL_WALL_R
The actor can collide with walls on its right.
@ COLL_NONE
The actor does not collide with any surface.
static const float smc_CULL_AREA_YLIMIT
The default max bound Y size.
dRc_c mRc
The actor's ride surface manager.
u16 mSpriteSpawnFlags
The spawn flags from the sprite data entry.
ACTOR_SPAWN_FLAG_e
Information related to actor spawning.
@ ACTOR_SPAWNED
The actor is spawned.
@ ACTOR_NO_RESPAWN
The actor must not respawn after deletion.
virtual void calcEatInScale(dActor_c *eatingActor)
Adjusts the actor's scale while being eaten.
u32 mCarryFukidashiPlayerNo
The player for whom an action prompt related to the actor is being displayed. -1 if no players meet t...
virtual bool vf68(dBg_ctr_c *collider)
Unknown, related to collision.
virtual int preDraw()
pre method for the draw operation.
virtual s8 * getPlrNo()
Gets the player number associated with the actor. See mPlayerNo.
virtual void setAfterEatScale()
Restores the actor's scale once spat out.
static bool screenCullCheck(const mVec3_c &pos, const mBoundBox &visibleBound, mBoundBox destroyBound, u8 areaID)
Checks if the actor should be culled due to being outside the screen.
static const mVec2_c smc_FUKIDASHI_RANGE
The default trigger area size for displaying action prompts.
virtual bool setEatSpitOut(dActor_c *eatingActor)
Callback for when the actor is about to be spat out.
STAGE_ACTOR_KIND_e
The possible stage actor kinds.
@ STAGE_ACTOR_GENERIC
A generic stage actor (default).
@ STAGE_ACTOR_YOSHI
The Yoshi actor.
@ STAGE_ACTOR_PLAYER
The player actor.
@ STAGE_ACTOR_ENTITY
An interactable entity actor.
virtual void calcSpitOutPos(dActor_c *eatingActor)
Calculates the position where the actor will be spat out.
static void setChangePosAngleFunc(int loopType)
Sets the position update function to be used for the level.
virtual void postDraw(fBase_c::MAIN_STATE_e status)
post method for the draw operation.
virtual int preDelete()
pre method for the delete operation.
u16 mEventNums
The event IDs the actor is tracking.
static const float smc_CULL_XLIMIT
The default max bound X offset.
static searchNearPlayerFunc mSearchNearPlayerFunc
The player search function.
u8 mLayer
The actor's layer.
mVec2_c mVisibleAreaOffset
The offset applied to the area size.
bool(* getTrgToSrcDirFunc)(float trgX, float srcX)
Gets the direction the target position is in, from the source position's viewpoint.
~dActor_c()
Destroys the actor.
u8 mBgCollFlags
The collision directions that the actor can respond to.
static u8 mDrawStop
The actor kinds for which the draw operation is currently disabled.
EAT_POINTS_e mEatPoints
The score awarded when the actor is eaten by Yoshi.
mVec3_c getCenterPos() const
Gets the actor's centered position.
dBaseActor_c()
Constructs a new actor.
dBase_c()
Constructs a new base.
Collider ("Collision Check") class - handles collisions between actors.
MAIN_STATE_e
The possible operation results.
A three-dimensional short angle vector.
A two-dimensional floating point vector.
A three-dimensional floating point vector.
const u8 l_Ami_Line[]
The sub-layer for each side of chainlink fences.
const float l_Ami_Zpos[]
The additional Z offset for each side of chainlink fences.
u16 ProfileName
The name of a profile. Value is a fProfile::PROFILE_NAME_e.