3#include <game/bases/d_actor_state.hpp>
4#include <game/bases/d_heap_allocator.hpp>
53 virtual bool hitProc_YoshiBullet(
dCc_c *other);
54 virtual bool hitProc_Reflect(
dCc_c *other);
56 virtual void revengeHitSE();
57 virtual void spitRoll();
58 virtual void moveSE();
59 virtual void deadRoll();
dActorState_c()
Constructs a new actor.
The minimum required implementation for a stage actor.
Collider ("Collision Check") class - handles collisions between actors.
The base class for various projectile actors.
dHeapAllocator_c mAllocator
The allocator.
virtual void setSpitOutMove(dActor_c *eatingActor)
Handles the bullet being spat out by Yoshi.
virtual void cullingProc()
Culls the bullet if needed.
virtual ~daBullet_c()
Destroys the actor.
static void revengeCallback(dCc_c *self, dCc_c *other)
Collision callback for when the bullet was spat back out by Yoshi.
virtual void createMdl()
Creates the model for the bullet.
BOOL mHasSplashed
Whether the bullet has splashed in water yet.
void allocate()
Creates the allocator and load the model.
bool splashProc()
Checks if the bullet has hit water and creates a splash effect if so.
void setDamage_Player(dActor_c *actor)
Triggers damage to a player that touched the bullet.
virtual void waterSplashEffect(const mVec3_c &pos, float size)
Generates a water splash effect.
virtual bool hitProc_Star(dCc_c *other)
Handles the bullet being hit by a player or Yoshi with a star.
virtual int doDelete()
do method for the delete operation.
static const float smc_DEAD_FALL_YMAXSPEED
The maximum falling speed of a bullet.
virtual int preExecute()
pre method for the execute operation.
static const float smc_DIR_PRM[]
The unit direction values for left and right movement of the bullet.
virtual void setEatTongue(dActor_c *eatingActor)
Callback for when the actor is targeted by Yoshi's tongue.
virtual int create()
do method for the create operation.
daBullet_c()
Constructs a new actor.
int mHitMoveDirection
The direction to travel after the bullet has been hit.
virtual bool setEatSpitOut(dActor_c *eatingActor)
Callback for when the actor is about to be spat out.
virtual bool hitProc_Shell(dCc_c *other)
Handles the bullet being hit by a shell.
virtual void removeMdl()
Removes the model for the bullet.
static void collisionCallback(dCc_c *self, dCc_c *other)
Regular collision callback for the bullet.
virtual void setDeadMove(const mVec3_c &speed, short angle)
Sets the movement parameters for the bullet after it has been hit.
virtual int execute()
do method for the execute operation.
virtual int draw()
do method for the draw operation.
mAng3_c mHitRollDelta
The rotation delta to apply to the bullet each frame after it has been hit.
bool checkPlayerDamage(dCc_c *self, dCc_c *other)
Returns whether a player with a star is touching the bullet.
bool checkYoshiDamage(dCc_c *self, dCc_c *other)
Returns whether a Yoshi with a star is touching the bullet.
static const float smc_DEAD_FALL_GRAVITY
The gravity to apply to a falling bullet.
virtual void initialize()
Subclass-specific initialization logic for the bullet.
HitType_e mHitType
The type of hit that the bullet has received.
virtual void deleteReady()
Informs the base that it's about to be deleted.
A three-dimensional short angle vector.
A three-dimensional floating point vector.
#define STATE_VIRTUAL_FUNC_DECLARE(class, name)
Declares a virtual state.