3#include <game/bases/d_actor_state.hpp>
4#include <game/bases/d_circle_light_mask.hpp>
5#include <game/bases/d_heap_allocator.hpp>
14 float calcExtraBoost(
float speedDiff)
const {
dActorState_c()
Constructs a new actor.
The minimum required implementation for a stage actor.
Collider ("Collision Check") class - handles collisions between actors.
static int sm_IceBallAliveCount[4]
The number of "alive" iceballs for each player.
ACTOR_PARAM_CONFIG(Layer, 8, 2)
The layer the iceball is on.
bool checkInitLine(float &groundHeight)
Checks if the iceball is close to the ground so that it can spawn a bit higher up.
virtual int create()
do method for the create operation.
ACTOR_PARAM_CONFIG(PlayerNo, 0, 2)
The player who threw the iceball.
dBc_c::WATER_TYPE_e mLiquidType
The type of liquid the iceball is currently in contact with.
ACTOR_PARAM_CONFIG(Direction, 4, 1)
The direction the iceball was thrown.
void waterSplash(float height)
Creates a water splash effect and sound at a specified height.
u32 mHitEntity
Whether the iceball has hit an entity.
static const int smc_MAX_ALIVE_ICEBALL_COUNT
bool checkInitVanish()
Checks whether the iceball should vanish on creation. This happens if the iceball is supposed to spaw...
bool bgCheck()
Checks for collisions and returns whether a collision occurred.
mVec3_c mStartPos
The starting position of the iceball when it was created.
void yoganSplash(float height)
Creates a lava splash effect and sound at a specified height.
virtual void eatMove(dActor_c *eatingActor)
Updates the actor's position during eating actions.
static const int smc_MAX_ICEBALL_COUNT
void setDeleteEffect()
Creates an effect for when the iceball gets destroyed.
float mLiquidHeight
The height of the liquid surface the iceball is in contact with.
virtual int doDelete()
do method for the delete operation.
bool checkDeleteBg()
Checks if the iceball should be deleted due to hitting something.
void poisonSplash(float height)
Creates a poison splash effect and sound at a specified height.
void lightProc()
Updates the iceball's light mask.
static int sm_IceBallCount[4]
The number of iceballs that currently exist for each player.
virtual void deleteReady()
Informs the base that it's about to be deleted.
void chgZpos()
Updates the iceball's Z position.
virtual ~daIceBall_c()
Destroys the iceball actor.
static bool CheckIceballLimit(int playerNo, int limitMode)
Checks if a new iceball can be created for a player based on the limit mode.
virtual void setEatTongue(dActor_c *eatingActor)
Callback for when the actor is targeted by Yoshi's tongue.
bool waterlineCheck()
Checks if the iceball hit the surface of a liquid. If it did, it creates a splash effect and sound.
virtual int draw()
do method for the draw operation.
dHeapAllocator_c mAllocator
Heap allocator for the iceball.
ACTOR_PARAM_CONFIG(AmiLine, 12, 2)
The chainlink fence layer for the iceball.
bool cullCheck()
Checks if the iceball is within the camera's view.
static void ccCallback_Iceball(dCc_c *self, dCc_c *other)
Collision callback for the iceball.
dCircleLightMask_c mLightMask
Light mask for the iceball.
ACTOR_PARAM_CONFIG(LimitMode, 16, 2)
The limit mode for the iceball.
daIceBall_c()
Creates a new iceball actor.
virtual int execute()
do method for the execute operation.
u32 mAliveTimer
Timer for the iceball's lifetime. This is used to limit how quickly the player can throw multiple ice...
A three-dimensional floating point vector.
#define STATE_FUNC_DECLARE(class, name)
Declares a state.
float mLightRadius
The radius of the iceball's light mask.