1#include <game/bases/d_a_en_shell.hpp>
2#include <game/mLib/m_effect.hpp>
3#include <lib/MSL/string.h>
10class daEnNoko_c :
public daEnShell_c {
14 nodeCallback_c(daEnNoko_c *owner) : mpOwner(owner) {}
15 virtual void timingB(ulong nodeId, nw4r::g3d::WorldMtxManip *manip, nw4r::g3d::ResMdl resMdl);
45 bool createIceActor()
override;
46 void beginFunsui()
override;
47 void endFunsui()
override;
59 bool setPlayerDamage(
dActor_c *actor)
override;
60 bool checkSleep()
override;
61 bool turnProc()
override;
62 void calcShellEffectPos()
override;
64 void setEnemyTurn()
override {
74 void slideEffect()
override {
76 mEffect.createEffect(
"Wm_en_shellgreentail", 0, &mSlideEffectPos,
nullptr,
nullptr);
78 mEffect.createEffect(
"Wm_en_shellredtail", 0, &mSlideEffectPos,
nullptr,
nullptr);
82 virtual void doTurn(
int *dir, s16 *turnSpeed);
83 virtual bool isWalking() {
return true; }
84 virtual void turnAround();
85 virtual void calcMdl();
86 virtual bool canDance();
87 virtual void danceWithMove(
int move);
88 virtual void walkTurn();
95 virtual void vf328() {}
102 BOOL isFunsui()
const override {
return mIsFunsui; }
105 void updateAmiLine();
111 float getWindStrength();
112 void setMoveAnimation(
const char *name,
m3d::playMode_e mode,
float frame);
113 void setBaseAnimation(
const char *name,
m3d::playMode_e mode,
float frame);
bool isState(const sStateIDIf_c &other) const
Checks if the actor is currently in the given state.
The minimum required implementation for a stage actor.
dActor_c()
Constructs a new actor.
mVec3_c mPos
The actor's position.
void WaterCheck(mVec3_c &pos, float h)
virtual void changeState(const sStateIDIf_c &newState)
Changes the actor's state to the given state.
static sFStateID_c< daEnNoko_c > StateID_Walk
Walking on the ground.
int mDanceTimer
Timer for starting and ending the dance.
@ BGM_anim_walkA_2
Actually uses the same animation as BGM_anim_walkA_1.
nw4r::g3d::ResAnmTexPat mNokoResAnmTex
The animated texture resource of the Koopa.
bool checkRyusa()
Checks if the actor is inside quicksand.
mVec3_c mCreatePos
The position where the Koopa was spawned.
float mXSpeedBeforeFunsui
The horizontal speed of the Koopa before being blown by a fountain.
ACTOR_PARAM_CONFIG(SpawnMode, 4, 1)
See SPAWN_MODE_e.
m3d::anmChr_c mWalkAnim
The walk animation of the Koopa.
@ NOKO_GREEN
Green Koopas don't turn around on ledges.
@ NOKO_RED
Red Koopas turn around on ledges.
u8 mNokoType
Is a NOKO_TYPE_e.
void ryusaEffect()
Creates the quicksand effect.
int execute() override
do method for the execute operation.
m3d::mdl_c mNokoModel
The model of the Koopa.
int preExecute() override
pre method for the execute operation.
ACTOR_PARAM_CONFIG(BlockAppear, 28, 1)
Whether the Koopa should spawn from a block.
void finalUpdate() override
Code to be executed after all actors' execute operation has run.
m3d::anmTexPat_c mNokoAnimTex
The animated texture of the Koopa.
ACTOR_PARAM_CONFIG(SubLayer, 16, 1)
The sublayer to spawn on.
int draw() override
do method for the draw operation.
virtual void deleteResExtra()
Subclasses can override this function to delete additional resources.
BOOL mIsFunsui
Whether the Koopa is being blown upwards by a fountain.
u32 mDanceMove
The dance move to perform.
ACTOR_PARAM_CONFIG(SpitOut, 29, 1)
Whether this Koopa was spat out by Yoshi.
virtual void createModelExtra()
Subclasses can override this function to create additional models.
bool playerDamageTurn(dActor_c *)
Returns whether the Koopa should turn around after damaging the player.
bool checkLedge()
Checks if there is a ledge in front of the Koopa.
ACTOR_PARAM_CONFIG(BlockHitPlayer, 24, 2)
The player number that hit the block from which this Koopa spawned.
dHeapAllocator_c mNokoAllocator
The allocator used for the resources of this actor.
static sFStateID_c< daEnNoko_c > StateID_Turn
Turning around while walking.
void setNokoBc()
Reverts the collision to a regular Koopa.
virtual void setInitialState()
Initializes the state of the Koopa after creation.
int doDelete() override
do method for the delete operation.
nw4r::g3d::ResFile mNokoResFile
The resource file containing the resources of this actor.
ACTOR_PARAM_CONFIG(NokoType, 0, 1)
See NOKO_TYPE_e.
int create() override
do method for the create operation.
mAng mBgmDanceRotSpeed
The rotation speed for turning toward the target rotation for a dance.
A three-dimensional floating point vector.
#define STATE_FUNC_DECLARE(class, name)
Declares a state.
#define STATE_VIRTUAL_FUNC_DECLARE(class, name)
Declares a virtual state.
A one-dimensional short angle vector.