area_tik+ (#874)

* koopa

* para troopa

* some fuzzy

* tik_05

* tik_02

* tik_01

* tik_03

* tik_03b

* tik_04

* tik_07

* tik_08

* tik_09

* tik_10/12

* tik_14

* tik_15

* tik_17/18

* more tiks

* area_tik

* mac_03

* cleanup

* oink names

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-11-30 02:39:42 -05:00 committed by GitHub
parent 3e0e550eb3
commit 2561914d1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
340 changed files with 9789 additions and 4223 deletions

View File

@ -2453,20 +2453,47 @@ typedef struct SpiritCardFXData {
#define MAX_LIL_OINKS 11
enum LilOinkFlags {
LIL_OINK_FLAG_VISIBLE = 1,
LIL_OINK_FLAG_ANIM_CHANGED = 2,
};
enum LilOinkTypes {
LIL_OINK_TYPE_BLACK = 0,
LIL_OINK_TYPE_WHITE = 1,
LIL_OINK_TYPE_PINK = 2,
LIL_OINK_TYPE_PIKACHU = 3,
LIL_OINK_TYPE_SHROOM = 4,
LIL_OINK_TYPE_FLOWER = 5,
LIL_OINK_TYPE_STAR = 6,
LIL_OINK_TYPE_QUESTION = 7,
LIL_OINK_TYPE_SILVER = 8,
LIL_OINK_TYPE_GOLD = 9,
};
enum LilOinkAnims {
LIL_OINK_ANIM_0 = 0,
LIL_OINK_ANIM_1 = 1,
LIL_OINK_ANIM_2 = 2,
LIL_OINK_ANIM_3 = 3,
LIL_OINK_ANIM_4 = 4,
LIL_OINK_ANIM_5 = 5,
};
typedef struct LilOinkFXData {
/* 0x000 */ s32 unk_00;
/* 0x004 */ s32 unk_04;
/* 0x000 */ s32 timeLeft;
/* 0x004 */ s32 lifetime;
/* 0x008 */ s32 flags[MAX_LIL_OINKS];
/* 0x034 */ f32 x[MAX_LIL_OINKS];
/* 0x060 */ f32 y[MAX_LIL_OINKS];
/* 0x08C */ f32 z[MAX_LIL_OINKS];
/* 0x0B8 */ f32 rot[MAX_LIL_OINKS];
/* 0x0E4 */ u8 type[MAX_LIL_OINKS];
/* 0x0EF */ s8 unk_EF[MAX_LIL_OINKS];
/* 0x0FA */ u8 unk_FA[MAX_LIL_OINKS];
/* 0x105 */ u8 unk_105[MAX_LIL_OINKS];
/* 0x0EF */ s8 nextAnim[MAX_LIL_OINKS];
/* 0x0FA */ u8 anim[MAX_LIL_OINKS];
/* 0x105 */ u8 gfxFrame[MAX_LIL_OINKS];
/* 0x110 */ f32 jumpOffset[MAX_LIL_OINKS];
/* 0x13C */ s8 unk_13C[MAX_LIL_OINKS];
/* 0x13C */ s8 animTime[MAX_LIL_OINKS];
} LilOinkFXData; // size = 0x148
typedef struct SomethingRotatingFXData {

View File

@ -48,6 +48,8 @@ ApiStatus GetSelfAnimationFromTable(Evt* script, s32 isInitialCall);
ApiStatus func_800457F8(Evt* script, s32 isInitialCall);
ApiStatus ShowCoinCounter(Evt* script, s32 isInitialCall);
ApiStatus MakeEntity(Evt* script, s32 isInitialCall);
ApiStatus SetEntityCullMode(Evt* script, s32 isInitialCall);
ApiStatus UseDynamicShadow(Evt* script, s32 isInitialCall);
ApiStatus AssignScript(Evt* script, s32 isInitialCall);
ApiStatus AssignSwitchFlag(Evt* script, s32 isInitialCall);
ApiStatus AssignChestFlag(Evt* script, s32 isInitialCall);
@ -92,6 +94,7 @@ ApiStatus SetCamPerspective(Evt* script, s32 isInitialCall);
ApiStatus SetCamViewport(Evt* script, s32 isInitialCall);
ApiStatus SetCamBGColor(Evt* script, s32 isInitialCall);
ApiStatus SetCamTarget(Evt* script, s32 isInitialCall);
ApiStatus InterpCamTargetPos(Evt* script, s32 isInitialCall);
ApiStatus ShakeCam(Evt* script, s32 isInitialCall);
ApiStatus SetCamLeadPlayer(Evt* script, s32 isInitialCall);
ApiStatus PanToTarget(Evt* script, s32 isInitialCall);

View File

@ -84,15 +84,15 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations_8021EADC)[] = {
STATUS_NORMAL, ANIM_Fuzzy_Jungle_Anim01,
STATUS_STONE, ANIM_Fuzzy_Jungle_Anim00,
STATUS_SLEEP, ANIM_Fuzzy_Jungle_Anim0E,
STATUS_POISON, ANIM_Fuzzy_Jungle_Anim01,
STATUS_STOP, ANIM_Fuzzy_Jungle_Anim00,
STATUS_STATIC, ANIM_Fuzzy_Jungle_Anim01,
STATUS_PARALYZE, ANIM_Fuzzy_Jungle_Anim00,
STATUS_DIZZY, ANIM_Fuzzy_Jungle_Anim0F,
STATUS_FEAR, ANIM_Fuzzy_Jungle_Anim0F,
STATUS_NORMAL, ANIM_Fuzzy_Jungle_Idle,
STATUS_STONE, ANIM_Fuzzy_Jungle_Still,
STATUS_SLEEP, ANIM_Fuzzy_Jungle_Sleep,
STATUS_POISON, ANIM_Fuzzy_Jungle_Idle,
STATUS_STOP, ANIM_Fuzzy_Jungle_Still,
STATUS_STATIC, ANIM_Fuzzy_Jungle_Idle,
STATUS_PARALYZE, ANIM_Fuzzy_Jungle_Still,
STATUS_DIZZY, ANIM_Fuzzy_Jungle_Stunned,
STATUS_FEAR, ANIM_Fuzzy_Jungle_Stunned,
STATUS_END,
};
@ -122,110 +122,110 @@ EvtScript N(handleEvent_8021EB9C) = {
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_END_IF
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Jungle_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Jungle_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Jungle_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Jungle_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_CALL(func_80269470)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Run)
EVT_EXEC_WAIT(D_8029C0A4)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_CALL(func_80269470)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_HurtShock)
EVT_EXEC_WAIT(DoDeath)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_END_IF
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Run)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Jungle_Anim09)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Run)
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Run)
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Jungle_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_CASE_DEFAULT
EVT_END_SWITCH
@ -259,7 +259,7 @@ EvtScript N(divide) = {
EVT_END_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim0D)
EVT_WAIT(130)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Walk)
EVT_CALL(SummonEnemy, EVT_PTR(N(specialFormation_8022180C)), 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(SetActorPos, LVar0, LVar1, LVar2, LVar3)
@ -267,20 +267,20 @@ EvtScript N(divide) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(MoveBattleCamOver, 20)
EVT_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Walk)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.4))
EVT_CALL(GetActorPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(JumpToGoal, ACTOR_SELF, 14, FALSE, TRUE, FALSE)
EVT_END_THREAD
EVT_WAIT(1)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Jungle_Anim02)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Jungle_Walk)
EVT_CALL(SetActorJumpGravity, LVar0, EVT_FLOAT(1.4))
EVT_CALL(JumpToGoal, LVar0, 14, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, LVar0, LVar1, LVar2, LVar3)
EVT_CALL(ForceHomePos, LVar0, LVar1, LVar2, LVar3)
EVT_CALL(HPBarToHome, LVar0)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Jungle_Anim01)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Jungle_Idle)
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVar1)
EVT_SWITCH(LVar1)
EVT_CASE_EQ(0)
@ -312,7 +312,7 @@ EvtScript N(leechAttack) = {
EVT_GOTO(100)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Run)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, 50)
@ -320,7 +320,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Idle)
EVT_LABEL(100)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 10, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim04)
@ -339,7 +339,7 @@ EvtScript N(leechAttack) = {
EVT_SET(LVar1, 0)
EVT_SUB(LVar2, 5)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Jump)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 11, FALSE, TRUE, FALSE)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
@ -365,7 +365,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
@ -388,7 +388,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, -3, -12, -15)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Jump)
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
EVT_IF_EQ(LocalFlag(0), 1)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 0, BS_FLAGS1_SP_EVT_ACTIVE)
@ -399,9 +399,9 @@ EvtScript N(leechAttack) = {
EVT_WAIT(10)
EVT_LOOP(2)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Bite)
EVT_WAIT(21)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim00)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Still)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 330)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, -3, -2, 0)
@ -422,7 +422,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 8, 0)
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Jump)
EVT_WAIT(30)
EVT_END_LOOP
EVT_ELSE
@ -439,7 +439,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x03000C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Bite)
EVT_SET(LocalFlag(0), 0)
EVT_LOOP(21)
EVT_CALL(GetActionSuccessCopy, LVar1)
@ -453,7 +453,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, TRUE)
EVT_BREAK_LOOP
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim00)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Still)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 330)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, -3, -2, 0)
@ -584,7 +584,7 @@ EvtScript N(leechAttack) = {
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 8, 0)
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Jump)
EVT_CALL(GetPlayerHP, LVar1)
EVT_IF_EQ(LVar1, 0)
EVT_CALL(func_80269470)
@ -607,10 +607,10 @@ EvtScript N(leechAttack) = {
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 8, 0)
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Jump)
EVT_END_IF
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Idle)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_THREAD
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FLOAT(1.6), EVT_FLOAT(0.6), EVT_FLOAT(1.0))
@ -667,13 +667,13 @@ EvtScript N(leechAttack) = {
EVT_WAIT(5)
EVT_CALL(YieldTurn)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jungle_Idle)
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
EVT_RETURN

View File

@ -235,10 +235,10 @@ EvtScript N(takeTurn_8022AA54) = {
EVT_WAIT(5)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20BB)
EVT_END_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_TheMaster_WindUpLoop)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_TheMaster_WindupLoop)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_TheMaster_WindUpStill)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_TheMaster_WindupStill)
EVT_WAIT(7)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_TheMaster_DownwardStrike)
EVT_END_THREAD

View File

@ -82,15 +82,15 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations_802184C4)[] = {
STATUS_NORMAL, ANIM_Fuzzy_Forest_Anim01,
STATUS_STONE, ANIM_Fuzzy_Forest_Anim00,
STATUS_SLEEP, ANIM_Fuzzy_Forest_Anim0E,
STATUS_POISON, ANIM_Fuzzy_Forest_Anim01,
STATUS_STOP, ANIM_Fuzzy_Forest_Anim00,
STATUS_STATIC, ANIM_Fuzzy_Forest_Anim01,
STATUS_PARALYZE, ANIM_Fuzzy_Forest_Anim00,
STATUS_DIZZY, ANIM_Fuzzy_Forest_Anim0F,
STATUS_FEAR, ANIM_Fuzzy_Forest_Anim0F,
STATUS_NORMAL, ANIM_Fuzzy_Forest_Idle,
STATUS_STONE, ANIM_Fuzzy_Forest_Still,
STATUS_SLEEP, ANIM_Fuzzy_Forest_Sleep,
STATUS_POISON, ANIM_Fuzzy_Forest_Idle,
STATUS_STOP, ANIM_Fuzzy_Forest_Still,
STATUS_STATIC, ANIM_Fuzzy_Forest_Idle,
STATUS_PARALYZE, ANIM_Fuzzy_Forest_Still,
STATUS_DIZZY, ANIM_Fuzzy_Forest_Stunned,
STATUS_FEAR, ANIM_Fuzzy_Forest_Stunned,
STATUS_END,
};
@ -120,110 +120,110 @@ EvtScript N(handleEvent_80218584) = {
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_END_IF
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Forest_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Forest_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Forest_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Forest_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_CALL(func_80269470)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Run)
EVT_EXEC_WAIT(D_8029C0A4)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_CALL(func_80269470)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_HurtShock)
EVT_EXEC_WAIT(DoDeath)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_END_IF
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Run)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Forest_Anim09)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Run)
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Run)
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Forest_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_CASE_DEFAULT
EVT_END_SWITCH
@ -257,7 +257,7 @@ EvtScript N(80218C48) = {
EVT_END_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim0D)
EVT_WAIT(130)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Walk)
EVT_CALL(SummonEnemy, EVT_PTR(N(specialFormation_8021A800)), 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(SetActorPos, LVar0, LVar1, LVar2, LVar3)
@ -265,20 +265,20 @@ EvtScript N(80218C48) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(MoveBattleCamOver, 20)
EVT_THREAD
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Walk)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.4))
EVT_CALL(GetActorPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar1, LVar2, LVar3)
EVT_CALL(JumpToGoal, ACTOR_SELF, 14, FALSE, TRUE, FALSE)
EVT_END_THREAD
EVT_WAIT(1)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Forest_Anim02)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Forest_Walk)
EVT_CALL(SetActorJumpGravity, LVar0, EVT_FLOAT(1.4))
EVT_CALL(JumpToGoal, LVar0, 14, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, LVar0, LVar1, LVar2, LVar3)
EVT_CALL(ForceHomePos, LVar0, LVar1, LVar2, LVar3)
EVT_CALL(HPBarToHome, LVar0)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Forest_Anim01)
EVT_CALL(SetAnimation, LVar0, 1, ANIM_Fuzzy_Forest_Idle)
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVar1)
EVT_SWITCH(LVar1)
EVT_CASE_EQ(0)
@ -310,7 +310,7 @@ EvtScript N(80219054) = {
EVT_GOTO(100)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Run)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, 50)
@ -318,7 +318,7 @@ EvtScript N(80219054) = {
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Idle)
EVT_LABEL(100)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 10, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim04)
@ -337,7 +337,7 @@ EvtScript N(80219054) = {
EVT_SET(LVar1, 0)
EVT_SUB(LVar2, 5)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Jump)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 11, FALSE, TRUE, FALSE)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
@ -363,7 +363,7 @@ EvtScript N(80219054) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
@ -386,7 +386,7 @@ EvtScript N(80219054) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, -3, -12, -15)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Jump)
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
EVT_IF_EQ(LocalFlag(0), 1)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 0, BS_FLAGS1_SP_EVT_ACTIVE)
@ -396,9 +396,9 @@ EvtScript N(80219054) = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x03000C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Bite)
EVT_WAIT(21)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim00)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Still)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 330)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, -3, -2, 0)
@ -418,7 +418,7 @@ EvtScript N(80219054) = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, TRUE)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarA, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Idle)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(GetLastDamage, ACTOR_PLAYER, LVar3)
EVT_IF_NE(LVar3, 0)
@ -494,13 +494,13 @@ EvtScript N(80219054) = {
EVT_WAIT(5)
EVT_CALL(YieldTurn)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Forest_Idle)
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
EVT_RETURN

View File

@ -92,67 +92,67 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Idle,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Idle,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Idle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_step)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_active)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_step_active)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_flipped)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim12,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim14,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim14,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_STONE, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_ToppleSleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_STOP, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_ToppleStunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_ToppleStunned,
STATUS_END,
};
@ -166,7 +166,7 @@ EvtScript N(init) = {
EVT_ELSE
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 1)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_active)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_END_IF
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_RETURN
@ -358,33 +358,33 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
EVT_CASE_OR_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
@ -401,7 +401,7 @@ EvtScript N(handleEvent) = {
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_THREAD
EVT_WAIT(4)
@ -425,27 +425,27 @@ EvtScript N(handleEvent) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(0.5))
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
@ -455,36 +455,36 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(10)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -494,7 +494,7 @@ EvtScript N(handleEvent) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_EXEC_WAIT(DoRecover)
EVT_END_IF
EVT_CASE_EQ(EVENT_SCARE_AWAY)
@ -503,15 +503,15 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
@ -521,12 +521,12 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Panic)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_EXEC_WAIT(DoAirLift)
@ -536,12 +536,12 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Panic)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_EXEC_WAIT(DoBlowAway)
@ -552,13 +552,13 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
@ -575,12 +575,12 @@ EvtScript N(attackShellToss) = {
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_ELSE
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -592,7 +592,7 @@ EvtScript N(attackShellToss) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_WAIT(10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
@ -608,7 +608,7 @@ EvtScript N(attackShellToss) = {
EVT_CALL(AddGoalPos, ACTOR_SELF, -40, 0, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(8)
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
@ -616,15 +616,15 @@ EvtScript N(attackShellToss) = {
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim15)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_BeginPanic1)
EVT_WAIT(1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim16)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_BeginPanic2)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_WAIT(6)
EVT_SUB(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -633,11 +633,11 @@ EvtScript N(attackShellToss) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Idle)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -667,13 +667,13 @@ EvtScript N(attackShellToss) = {
EVT_ADD(LVar0, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(8)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Idle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -702,12 +702,12 @@ EvtScript N(attackDizzyTornado) = {
EVT_ELSE
EVT_CALL(AddGoalPos, ACTOR_SELF, 20, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Run)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -719,7 +719,7 @@ EvtScript N(attackDizzyTornado) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_WAIT(20)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2026)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 1, 7)
@ -729,7 +729,7 @@ EvtScript N(attackDizzyTornado) = {
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
EVT_SET(LVarA, LVar0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 1)
EVT_WAIT(10)
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
@ -740,11 +740,11 @@ EvtScript N(attackDizzyTornado) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_RETURN
@ -770,16 +770,16 @@ EvtScript N(attackDizzyTornado) = {
EVT_END_IF
EVT_END_THREAD
EVT_WAIT(20)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 1)
EVT_WAIT(10)
EVT_WAIT(10)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -811,7 +811,7 @@ EvtScript N(standUp) = {
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_SET(LVar0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_THREAD

View File

@ -157,41 +157,41 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations2)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Dark_Anim01,
STATUS_STONE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Dark_Anim01,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_Dark_Idle,
STATUS_STONE, ANIM_ParaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Dark_Still,
STATUS_STOP, ANIM_ParaTroopa_Dark_Still,
STATUS_STATIC, ANIM_ParaTroopa_Dark_Idle,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_step)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Dark_Anim01,
STATUS_STONE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Dark_Anim01,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_Dark_Idle,
STATUS_STONE, ANIM_ParaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Dark_Still,
STATUS_STOP, ANIM_ParaTroopa_Dark_Still,
STATUS_STATIC, ANIM_ParaTroopa_Dark_Idle,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations3)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Dark_Anim0F,
STATUS_STONE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Dark_Anim0F,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_Dark_WingsStill,
STATUS_STONE, ANIM_ParaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Dark_Still,
STATUS_STOP, ANIM_ParaTroopa_Dark_Still,
STATUS_STATIC, ANIM_ParaTroopa_Dark_WingsStill,
STATUS_PARALYZE, ANIM_ParaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Dark_Stunned,
STATUS_END,
};
@ -282,11 +282,11 @@ EvtScript N(idle) = {
};
EvtScript N(returnHome) = {
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 1, 11)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Idle)
EVT_RETURN
EVT_END
};
@ -299,11 +299,11 @@ EvtScript N(handleEvent) = {
EVT_CASE_EQ(EVENT_HIT_COMBO)
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CASE_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
@ -314,66 +314,66 @@ EvtScript N(handleEvent) = {
EVT_END_IF
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim08)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim08)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FALL_TRIGGER)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_EXEC_WAIT(N(fall))
EVT_CASE_EQ(EVENT_15)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim08)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_EXEC_WAIT(N(fall))
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_HurtStill)
EVT_EXEC_WAIT(DoJumpBack)
EVT_EXEC_WAIT(N(returnHome))
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
@ -385,11 +385,11 @@ EvtScript N(handleEvent) = {
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE)
@ -400,22 +400,22 @@ EvtScript N(handleEvent) = {
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim01)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, 0)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim03)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Run)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim03)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
EVT_CASE_DEFAULT
@ -434,7 +434,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_F)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Run)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, 40, 30, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0))
@ -448,7 +448,7 @@ EvtScript N(takeTurn) = {
EVT_SET(LVarA, LVar0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20E0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Windup)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 6, 6, 0)
@ -462,7 +462,7 @@ EvtScript N(takeTurn) = {
EVT_SET(LVar1, 0)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(10.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim0C)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_ShellDive)
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_SUB(LVar0, 30)
@ -487,13 +487,13 @@ EvtScript N(takeTurn) = {
EVT_SUB(LVar0, 30)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(4.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Hurt)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_SUB(LVar0, 30)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(4.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Hurt)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
@ -517,7 +517,7 @@ EvtScript N(takeTurn) = {
EVT_END_SWITCH
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20E0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Windup)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 6, 6, 0)
@ -528,7 +528,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(10.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim0C)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_ShellDive)
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 0, 0)
EVT_WAIT(2)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 65535, 0, 3, BS_FLAGS1_SP_EVT_ACTIVE)
@ -539,7 +539,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, 40, 30, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim0D)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_ShellHit)
EVT_THREAD
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 10, 0)
EVT_SET(LVar0, 0)
@ -553,7 +553,7 @@ EvtScript N(takeTurn) = {
EVT_END_LOOP
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, -10, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Dark_Idle)
EVT_END_THREAD
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 30, 0)
EVT_WAIT(10)
@ -578,7 +578,7 @@ EvtScript N(fall) = {
EVT_ADD(LVar1, 8)
EVT_SUB(LVar2, 2)
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, LVar1, LVar2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, SOUND_301, 0)
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVarA)
EVT_IF_EQ(LVarA, 0)
@ -629,7 +629,7 @@ EvtScript N(fall) = {
EVT_CALL(SetGoalToIndex, ACTOR_SELF, LVar0)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Idle)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, 0)
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(statusTable_koopa)))
EVT_CALL(BindNextTurn, ACTOR_SELF, 0)
@ -646,67 +646,67 @@ EvtScript N(fall) = {
};
s32 N(idleAnimations)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim01,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Idle,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Idle,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Idle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_koopa_step)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_koopa_active)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim02,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Scramble,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_koopa_step_active)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
STATUS_END,
};
s32 N(idleAnimations_koopa_flipped)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_STONE, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_Anim12,
STATUS_POISON, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_STOP, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_Anim0F,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_Anim10,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_Anim14,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_Anim14,
STATUS_NORMAL, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_STONE, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_SLEEP, ANIM_KoopaTroopa_Dark_ToppleSleep,
STATUS_POISON, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_STOP, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_STATIC, ANIM_KoopaTroopa_Dark_ToppleStruggle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Dark_ToppleStill,
STATUS_DIZZY, ANIM_KoopaTroopa_Dark_ToppleStunned,
STATUS_FEAR, ANIM_KoopaTroopa_Dark_ToppleStunned,
STATUS_END,
};
@ -720,7 +720,7 @@ EvtScript N(init_koopa) = {
EVT_ELSE
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 1)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_koopa_active)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_END_IF
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_RETURN
@ -910,33 +910,33 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
EVT_CASE_OR_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
@ -953,7 +953,7 @@ EvtScript N(handleEvent_koopa) = {
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_THREAD
EVT_WAIT(4)
@ -977,27 +977,27 @@ EvtScript N(handleEvent_koopa) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(0.5))
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
@ -1007,36 +1007,36 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(10)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1046,7 +1046,7 @@ EvtScript N(handleEvent_koopa) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_EXEC_WAIT(DoRecover)
EVT_END_IF
EVT_CASE_EQ(EVENT_SCARE_AWAY)
@ -1055,15 +1055,15 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Dark_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
@ -1073,12 +1073,12 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Panic)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_EXEC_WAIT(DoAirLift)
@ -1088,12 +1088,12 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Panic)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_EXEC_WAIT(DoBlowAway)
@ -1104,13 +1104,13 @@ EvtScript N(handleEvent_koopa) = {
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(1)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(3)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_END_SWITCH
@ -1127,12 +1127,12 @@ EvtScript N(koopa_attackShellToss) = {
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_ELSE
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1144,7 +1144,7 @@ EvtScript N(koopa_attackShellToss) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_WAIT(10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
@ -1160,7 +1160,7 @@ EvtScript N(koopa_attackShellToss) = {
EVT_CALL(AddGoalPos, ACTOR_SELF, -40, 0, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(8)
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
@ -1168,15 +1168,15 @@ EvtScript N(koopa_attackShellToss) = {
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim15)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_BeginPanic1)
EVT_WAIT(1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim16)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_BeginPanic2)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_WAIT(6)
EVT_SUB(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1185,11 +1185,11 @@ EvtScript N(koopa_attackShellToss) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Idle)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -1219,13 +1219,13 @@ EvtScript N(koopa_attackShellToss) = {
EVT_ADD(LVar0, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_WAIT(8)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Idle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -1254,12 +1254,12 @@ EvtScript N(koopa_attackDizzyTornado) = {
EVT_ELSE
EVT_CALL(AddGoalPos, ACTOR_SELF, 20, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Run)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellEnter)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1271,7 +1271,7 @@ EvtScript N(koopa_attackDizzyTornado) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellSpin)
EVT_WAIT(20)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2026)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 1, 7)
@ -1281,7 +1281,7 @@ EvtScript N(koopa_attackDizzyTornado) = {
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
EVT_SET(LVarA, LVar0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 1)
EVT_WAIT(10)
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
@ -1292,11 +1292,11 @@ EvtScript N(koopa_attackDizzyTornado) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Panic)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_RETURN
@ -1322,16 +1322,16 @@ EvtScript N(koopa_attackDizzyTornado) = {
EVT_END_IF
EVT_END_THREAD
EVT_WAIT(20)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ShellExit)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 1)
EVT_WAIT(10)
EVT_WAIT(10)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Dark_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim02)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Scramble)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
@ -1363,7 +1363,7 @@ EvtScript N(koopa_standUp) = {
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
EVT_SET(LVar0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_THREAD

View File

@ -77,15 +77,15 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations)[] = {
STATUS_NORMAL, ANIM_Fuzzy_Anim01,
STATUS_STONE, ANIM_Fuzzy_Anim00,
STATUS_SLEEP, ANIM_Fuzzy_Anim0E,
STATUS_POISON, ANIM_Fuzzy_Anim01,
STATUS_STOP, ANIM_Fuzzy_Anim00,
STATUS_STATIC, ANIM_Fuzzy_Anim01,
STATUS_PARALYZE, ANIM_Fuzzy_Anim00,
STATUS_DIZZY, ANIM_Fuzzy_Anim0F,
STATUS_FEAR, ANIM_Fuzzy_Anim0F,
STATUS_NORMAL, ANIM_Fuzzy_Idle,
STATUS_STONE, ANIM_Fuzzy_Still,
STATUS_SLEEP, ANIM_Fuzzy_Sleep,
STATUS_POISON, ANIM_Fuzzy_Idle,
STATUS_STOP, ANIM_Fuzzy_Still,
STATUS_STATIC, ANIM_Fuzzy_Idle,
STATUS_PARALYZE, ANIM_Fuzzy_Still,
STATUS_DIZZY, ANIM_Fuzzy_Stunned,
STATUS_FEAR, ANIM_Fuzzy_Stunned,
STATUS_END,
};
@ -117,104 +117,104 @@ EvtScript N(handleEvent) = {
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_END_IF
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim10)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Burn)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim12)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Run)
EVT_EXEC_WAIT(D_8029C0A4)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_CALL(GetLastElement, LVar0)
EVT_IF_FLAG(LVar0, DAMAGE_TYPE_ELECTRIC)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim13)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_HurtShock)
EVT_EXEC_WAIT(DoDeath)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim08)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_END_IF
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim01)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Run)
EVT_SET_CONST(LVar2, ANIM_Fuzzy_Anim09)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Run)
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Anim03)
EVT_SET_CONST(LVar1, ANIM_Fuzzy_Run)
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
EVT_CASE_DEFAULT
@ -243,7 +243,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_GOTO(100)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Run)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, 50)
@ -251,7 +251,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Idle)
EVT_LABEL(100)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 10, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim04)
@ -270,7 +270,7 @@ EvtScript N(takeTurn) = {
EVT_SET(LVar1, 0)
EVT_SUB(LVar2, 5)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jump)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 11, FALSE, TRUE, FALSE)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
@ -296,7 +296,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
@ -319,7 +319,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, -3, -12, -15)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim05)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Jump)
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
EVT_IF_EQ(LocalFlag(0), 1)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 0, BS_FLAGS1_SP_EVT_ACTIVE)
@ -329,9 +329,9 @@ EvtScript N(takeTurn) = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_Mario_3000C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Bite)
EVT_WAIT(21)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim00)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Still)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 330)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_3E0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, -3, -2, 0)
@ -350,7 +350,7 @@ EvtScript N(takeTurn) = {
EVT_WAIT(2)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Idle)
EVT_SWITCH(LVar0)
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
EVT_CASE_OR_EQ(HIT_RESULT_QUAKE_IMMUNE)
@ -429,13 +429,13 @@ EvtScript N(takeTurn) = {
EVT_WAIT(5)
EVT_CALL(YieldTurn)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8))
EVT_EXEC_WAIT(D_8029C12C)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_Fuzzy_Idle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)

View File

@ -85,41 +85,41 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim01,
STATUS_STONE, ANIM_KoopaTroopa_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Anim01,
STATUS_STOP, ANIM_KoopaTroopa_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Anim01,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Idle,
STATUS_STONE, ANIM_KoopaTroopa_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Idle,
STATUS_STOP, ANIM_KoopaTroopa_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Idle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_8021CADC)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_flipped)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim0F,
STATUS_STONE, ANIM_KoopaTroopa_Anim10,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim12,
STATUS_POISON, ANIM_KoopaTroopa_Anim0F,
STATUS_STOP, ANIM_KoopaTroopa_Anim10,
STATUS_STATIC, ANIM_KoopaTroopa_Anim0F,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim10,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim14,
STATUS_FEAR, ANIM_KoopaTroopa_Anim14,
STATUS_NORMAL, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_STONE, ANIM_KoopaTroopa_ToppleStill,
STATUS_SLEEP, ANIM_KoopaTroopa_ToppleSleep,
STATUS_POISON, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_STOP, ANIM_KoopaTroopa_ToppleStill,
STATUS_STATIC, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_PARALYZE, ANIM_KoopaTroopa_ToppleStill,
STATUS_DIZZY, ANIM_KoopaTroopa_ToppleStunned,
STATUS_FEAR, ANIM_KoopaTroopa_ToppleStunned,
STATUS_END,
};
@ -250,33 +250,33 @@ EvtScript N(handleEvent) = {
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
EVT_CASE_OR_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
@ -287,7 +287,7 @@ EvtScript N(handleEvent) = {
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Hurt)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarA)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_CHILD_THREAD
@ -312,26 +312,26 @@ EvtScript N(handleEvent) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
@ -339,33 +339,33 @@ EvtScript N(handleEvent) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -375,44 +375,44 @@ EvtScript N(handleEvent) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Panic)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_END_IF
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Panic)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_END_IF
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
@ -420,11 +420,11 @@ EvtScript N(handleEvent) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_END_SWITCH
@ -440,7 +440,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellSpin)
EVT_ELSE
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 1)
@ -461,7 +461,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_SET(LVar0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_CHILD_THREAD
@ -479,7 +479,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable)))
@ -495,7 +495,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellEnter)
EVT_WAIT(10)
EVT_CHILD_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -507,7 +507,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_CHILD_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellSpin)
EVT_WAIT(10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
@ -530,7 +530,7 @@ EvtScript N(takeTurn) = {
EVT_CALL(MoveBattleCamOver, 10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(8)
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
@ -538,15 +538,15 @@ EvtScript N(takeTurn) = {
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim15)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_BeginPanic1)
EVT_WAIT(1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim16)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_BeginPanic2)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Panic)
EVT_WAIT(6)
EVT_SUB(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -555,11 +555,11 @@ EvtScript N(takeTurn) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Panic)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetPartYaw, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
@ -590,13 +590,13 @@ EvtScript N(takeTurn) = {
EVT_ADD(LVar0, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(8)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)

View File

@ -143,41 +143,41 @@ ActorBlueprint NAMESPACE = {
};
s32 N(idleAnimations_8021ED00)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Anim01,
STATUS_STONE, ANIM_ParaTroopa_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Anim01,
STATUS_PARALYZE, ANIM_ParaTroopa_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_Idle,
STATUS_STONE, ANIM_ParaTroopa_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Still,
STATUS_STOP, ANIM_ParaTroopa_Still,
STATUS_STATIC, ANIM_ParaTroopa_Idle,
STATUS_PARALYZE, ANIM_ParaTroopa_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_8021ED4C)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Anim01,
STATUS_STONE, ANIM_ParaTroopa_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Anim01,
STATUS_PARALYZE, ANIM_ParaTroopa_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_Idle,
STATUS_STONE, ANIM_ParaTroopa_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Still,
STATUS_STOP, ANIM_ParaTroopa_Still,
STATUS_STATIC, ANIM_ParaTroopa_Idle,
STATUS_PARALYZE, ANIM_ParaTroopa_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_8021ED98)[] = {
STATUS_NORMAL, ANIM_ParaTroopa_Anim0F,
STATUS_STONE, ANIM_ParaTroopa_Anim00,
STATUS_SLEEP, ANIM_ParaTroopa_Anim12,
STATUS_POISON, ANIM_ParaTroopa_Anim00,
STATUS_STOP, ANIM_ParaTroopa_Anim00,
STATUS_STATIC, ANIM_ParaTroopa_Anim0F,
STATUS_PARALYZE, ANIM_ParaTroopa_Anim00,
STATUS_DIZZY, ANIM_ParaTroopa_Anim13,
STATUS_FEAR, ANIM_ParaTroopa_Anim13,
STATUS_NORMAL, ANIM_ParaTroopa_WingsStill,
STATUS_STONE, ANIM_ParaTroopa_Still,
STATUS_SLEEP, ANIM_ParaTroopa_Sleep,
STATUS_POISON, ANIM_ParaTroopa_Still,
STATUS_STOP, ANIM_ParaTroopa_Still,
STATUS_STATIC, ANIM_ParaTroopa_WingsStill,
STATUS_PARALYZE, ANIM_ParaTroopa_Still,
STATUS_DIZZY, ANIM_ParaTroopa_Stunned,
STATUS_FEAR, ANIM_ParaTroopa_Stunned,
STATUS_END,
};
@ -273,11 +273,11 @@ EvtScript N(idle_8021EF5C) = {
};
EvtScript N(8021F26C) = {
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Run)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 1, 11)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Idle)
EVT_RETURN
EVT_END
};
@ -292,11 +292,11 @@ EvtScript N(handleEvent_8021F2EC) = {
EVT_CASE_EQ(EVENT_HIT_COMBO)
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CASE_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
@ -307,66 +307,66 @@ EvtScript N(handleEvent_8021F2EC) = {
EVT_END_IF
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim08)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim08)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FALL_TRIGGER)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_EXEC_WAIT(N(802204DC))
EVT_CASE_EQ(EVENT_15)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim08)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim09)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_BurnHurt)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_EXEC_WAIT(N(802204DC))
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_HurtStill)
EVT_EXEC_WAIT(DoJumpBack)
EVT_EXEC_WAIT(N(8021F26C))
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
@ -378,11 +378,11 @@ EvtScript N(handleEvent_8021F2EC) = {
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim06)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_HurtStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE)
@ -393,22 +393,22 @@ EvtScript N(handleEvent_8021F2EC) = {
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim01)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, 0)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim03)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Run)
EVT_SET_CONST(LVar2, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim03)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Run)
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_SET_CONST(LVar0, 2)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_ParaTroopa_Hurt)
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
EVT_CASE_DEFAULT
@ -427,7 +427,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_F)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim03)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Run)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, 40, 30, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0))
@ -441,7 +441,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_SET(LVarA, LVar0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20E0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Windup)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 6, 6, 0)
@ -455,7 +455,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_SET(LVar1, 0)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(10.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim0C)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_ShellDive)
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_SUB(LVar0, 30)
@ -480,13 +480,13 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_SUB(LVar0, 30)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(4.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Hurt)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_SUB(LVar0, 30)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(4.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Hurt)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
@ -510,7 +510,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_END_SWITCH
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20E0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim04)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Windup)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 6, 6, 0)
@ -521,7 +521,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_CALL(SetActorSounds, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(10.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim0C)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_ShellDive)
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 0, 0)
EVT_WAIT(2)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
@ -532,7 +532,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, 40, 30, 0)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim0D)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_ShellHit)
EVT_THREAD
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 10, 0)
EVT_SET(LVar0, 0)
@ -546,7 +546,7 @@ EvtScript N(takeTurn_8021FA24) = {
EVT_END_LOOP
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, -10, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_ParaTroopa_Idle)
EVT_END_THREAD
EVT_CALL(FlyToGoal, ACTOR_SELF, 0, 30, 0)
EVT_WAIT(10)
@ -573,7 +573,7 @@ EvtScript N(802204DC) = {
EVT_ADD(LVar1, 8)
EVT_SUB(LVar2, 2)
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, LVar1, LVar2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Hurt)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 769, 0)
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVarA)
EVT_IF_EQ(LVarA, 0)
@ -624,7 +624,7 @@ EvtScript N(802204DC) = {
EVT_CALL(SetGoalToIndex, ACTOR_SELF, LVar0)
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, 0)
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(statusTable_8021EB14)))
EVT_CALL(BindNextTurn, ACTOR_SELF, 0)
@ -641,41 +641,41 @@ EvtScript N(802204DC) = {
};
s32 N(idleAnimations_80220AA0)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim01,
STATUS_STONE, ANIM_KoopaTroopa_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Anim01,
STATUS_STOP, ANIM_KoopaTroopa_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Anim01,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Idle,
STATUS_STONE, ANIM_KoopaTroopa_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Idle,
STATUS_STOP, ANIM_KoopaTroopa_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Idle,
STATUS_PARALYZE, ANIM_KoopaTroopa_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_80220AEC)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim03,
STATUS_STONE, ANIM_KoopaTroopa_Anim00,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim11,
STATUS_POISON, ANIM_KoopaTroopa_Anim03,
STATUS_STOP, ANIM_KoopaTroopa_Anim00,
STATUS_STATIC, ANIM_KoopaTroopa_Anim03,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim00,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim13,
STATUS_FEAR, ANIM_KoopaTroopa_Anim13,
STATUS_NORMAL, ANIM_KoopaTroopa_Walk,
STATUS_STONE, ANIM_KoopaTroopa_Still,
STATUS_SLEEP, ANIM_KoopaTroopa_Sleep,
STATUS_POISON, ANIM_KoopaTroopa_Walk,
STATUS_STOP, ANIM_KoopaTroopa_Still,
STATUS_STATIC, ANIM_KoopaTroopa_Walk,
STATUS_PARALYZE, ANIM_KoopaTroopa_Still,
STATUS_DIZZY, ANIM_KoopaTroopa_Stunned,
STATUS_FEAR, ANIM_KoopaTroopa_Stunned,
STATUS_END,
};
s32 N(idleAnimations_80220B38)[] = {
STATUS_NORMAL, ANIM_KoopaTroopa_Anim0F,
STATUS_STONE, ANIM_KoopaTroopa_Anim10,
STATUS_SLEEP, ANIM_KoopaTroopa_Anim12,
STATUS_POISON, ANIM_KoopaTroopa_Anim0F,
STATUS_STOP, ANIM_KoopaTroopa_Anim10,
STATUS_STATIC, ANIM_KoopaTroopa_Anim0F,
STATUS_PARALYZE, ANIM_KoopaTroopa_Anim10,
STATUS_DIZZY, ANIM_KoopaTroopa_Anim14,
STATUS_FEAR, ANIM_KoopaTroopa_Anim14,
STATUS_NORMAL, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_STONE, ANIM_KoopaTroopa_ToppleStill,
STATUS_SLEEP, ANIM_KoopaTroopa_ToppleSleep,
STATUS_POISON, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_STOP, ANIM_KoopaTroopa_ToppleStill,
STATUS_STATIC, ANIM_KoopaTroopa_ToppleStruggle,
STATUS_PARALYZE, ANIM_KoopaTroopa_ToppleStill,
STATUS_DIZZY, ANIM_KoopaTroopa_ToppleStunned,
STATUS_FEAR, ANIM_KoopaTroopa_ToppleStunned,
STATUS_END,
};
@ -808,33 +808,33 @@ EvtScript N(handleEvent_80221228) = {
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
EVT_CASE_OR_EQ(EVENT_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_BURN_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0C)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnHurt)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0D)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_BurnStill)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
@ -845,7 +845,7 @@ EvtScript N(handleEvent_80221228) = {
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0B)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Hurt)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarA)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_CHILD_THREAD
@ -870,26 +870,26 @@ EvtScript N(handleEvent_80221228) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_CASE_EQ(EVENT_SHOCK_HIT)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoJumpBack)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoShockHit)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
@ -897,33 +897,33 @@ EvtScript N(handleEvent_80221228) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim07)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ShellEnter)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_CASE_EQ(EVENT_DEATH)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoNormalHit)
EVT_WAIT(10)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -933,44 +933,44 @@ EvtScript N(handleEvent_80221228) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Idle)
EVT_EXEC_WAIT(DoRecover)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_CASE_EQ(EVENT_SCARE_AWAY)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Anim0B)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_SET_CONST(LVar2, ANIM_KoopaTroopa_Hurt)
EVT_EXEC_WAIT(DoScareAway)
EVT_RETURN
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Panic)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_END_IF
EVT_EXEC_WAIT(DoAirLift)
EVT_CASE_EQ(EVENT_BLOW_AWAY)
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim17)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Panic)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_END_IF
EVT_EXEC_WAIT(DoBlowAway)
EVT_RETURN
@ -978,11 +978,11 @@ EvtScript N(handleEvent_80221228) = {
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim01)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Idle)
EVT_EXEC_WAIT(DoImmune)
EVT_ELSE
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim0F)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_EXEC_WAIT(DoImmune)
EVT_END_IF
EVT_END_SWITCH
@ -998,7 +998,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(GetBattlePhase, LVar0)
EVT_IF_EQ(LVar0, PHASE_FIRST_STRIKE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellSpin)
EVT_ELSE
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LVar0)
EVT_IF_EQ(LVar0, 1)
@ -1019,7 +1019,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim0F)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ToppleStruggle)
EVT_SET(LVar0, 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_CHILD_THREAD
@ -1037,7 +1037,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80220AA0)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_8021EAD0)))
@ -1053,7 +1053,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
EVT_WAIT(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim07)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellEnter)
EVT_WAIT(10)
EVT_CHILD_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1065,7 +1065,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(PlayEffect, EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0, 0, 0, 0, 0)
EVT_END_CHILD_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2021)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim06)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellSpin)
EVT_WAIT(10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
@ -1088,7 +1088,7 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(MoveBattleCamOver, 10)
EVT_CALL(func_8024ECF8, -1, 1, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(8)
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
@ -1096,15 +1096,15 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim15)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_BeginPanic1)
EVT_WAIT(1)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim16)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_BeginPanic2)
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_ADD(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Panic)
EVT_WAIT(6)
EVT_SUB(LVar1, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
@ -1113,11 +1113,11 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_CALL(YieldTurn)
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim17)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Panic)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(8.0))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetPartYaw, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
@ -1148,13 +1148,13 @@ EvtScript N(takeTurn_80221DAC) = {
EVT_ADD(LVar0, 20)
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim08)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_ShellExit)
EVT_WAIT(8)
EVT_CALL(YieldTurn)
EVT_SET_CONST(LVar0, 1)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Anim04)
EVT_SET_CONST(LVar1, ANIM_KoopaTroopa_Run)
EVT_EXEC_WAIT(DoReturnHome)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Anim01)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, ANIM_KoopaTroopa_Idle)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)

View File

@ -177,3 +177,9 @@ EvtScript N(shakeTree) = {
EVT_RETURN
EVT_END
};
#define FOLIAGE_MODEL_LIST(names...) \
{ \
.count = __NARG__(names), \
.models = { names } \
}

View File

@ -21,25 +21,33 @@ extern Gfx D_09003358_4025A8[];
extern Gfx D_09003370_4025C0[];
extern Gfx D_09003388_4025D8[];
Gfx* D_E01146A0[] = {
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8,
D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8
Gfx* lil_oink_FramesGfx[][3] = {
[LIL_OINK_TYPE_BLACK] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_WHITE] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_PINK] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_PIKACHU] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_SHROOM] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_FLOWER] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_STAR] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_QUESTION] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_SILVER] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
[LIL_OINK_TYPE_GOLD] { D_09003358_4025A8, D_09003370_4025C0, D_09003388_4025D8 },
};
Gfx* D_E0114718[] = {
D_09002DD8_402028, D_09002E70_4020C0, D_09002E98_4020E8, D_09002F30_402180, D_09002FC8_402218,
D_09003060_4022B0, D_090030F8_402348, D_09003190_4023E0, D_09003228_402478, D_090032C0_402510
[LIL_OINK_TYPE_BLACK] D_09002DD8_402028,
[LIL_OINK_TYPE_WHITE] D_09002E70_4020C0,
[LIL_OINK_TYPE_PINK] D_09002E98_4020E8,
[LIL_OINK_TYPE_PIKACHU] D_09002F30_402180,
[LIL_OINK_TYPE_SHROOM] D_09002FC8_402218,
[LIL_OINK_TYPE_FLOWER] D_09003060_4022B0,
[LIL_OINK_TYPE_STAR] D_090030F8_402348,
[LIL_OINK_TYPE_QUESTION] D_09003190_4023E0,
[LIL_OINK_TYPE_SILVER] D_09003228_402478,
[LIL_OINK_TYPE_GOLD] D_090032C0_402510
};
s8 D_E0114740[] = { 1, 2, 1, 0 };
s8 lil_oink_AnimateGfxSelect[] = { 1, 2, 1, 0 };
EffectInstance* lil_oink_main(void) {
EffectBlueprint bp;
@ -60,8 +68,8 @@ EffectInstance* lil_oink_main(void) {
data = effect->data.lilOink = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_04 = 0;
data->unk_00 = 1000;
data->lifetime = 0;
data->timeLeft = 1000;
for (i = 0; i < MAX_LIL_OINKS; i++) {
data->x[i] = 0.0f;
@ -69,10 +77,10 @@ EffectInstance* lil_oink_main(void) {
data->z[i] = 0.0f;
data->rot[i] = 0.0f;
data->flags[i] = 0;
data->unk_FA[i] = 1;
data->unk_105[i] = 1;
data->anim[i] = LIL_OINK_ANIM_1;
data->gfxFrame[i] = 1;
data->jumpOffset[i] = 0.0f;
data->unk_13C[i] = 0;
data->animTime[i] = 0;
}
return effect;
@ -85,63 +93,63 @@ void lil_oink_update(EffectInstance* effect) {
LilOinkFXData* data = effect->data.lilOink;
s32 i;
data->unk_04++;
data->lifetime++;
for (i = 0; i < MAX_LIL_OINKS; i++) {
s32 tmp13C = data->unk_13C[i];
s32 cond = FALSE;
s32 time = data->animTime[i];
s32 animDone = FALSE;
switch (data->unk_FA[i]) {
case 0:
cond = TRUE;
switch (data->anim[i]) {
case LIL_OINK_ANIM_0:
animDone = TRUE;
break;
case 1:
data->unk_105[i] = 1;
cond = TRUE;
case LIL_OINK_ANIM_1:
data->gfxFrame[i] = 1;
animDone = TRUE;
break;
case 3:
data->unk_105[i] = D_E0114740[tmp13C % ARRAY_COUNT(D_E0114740)];
data->rot[i] = data->rot[i] + shim_sin_deg(tmp13C * 10);
if (tmp13C >= 36) {
cond = TRUE;
data->unk_13C[i] = 0;
case LIL_OINK_ANIM_3:
data->gfxFrame[i] = lil_oink_AnimateGfxSelect[time % ARRAY_COUNT(lil_oink_AnimateGfxSelect)];
data->rot[i] = data->rot[i] + shim_sin_deg(time * 10);
if (time >= 36) {
animDone = TRUE;
data->animTime[i] = 0;
}
break;
case 2:
data->unk_105[i] = D_E0114740[tmp13C % ARRAY_COUNT(D_E0114740)];
data->jumpOffset[i] = shim_sin_deg(tmp13C * 20) * 2.0f;
cond = TRUE;
if (tmp13C >= 9) {
case LIL_OINK_ANIM_2:
data->gfxFrame[i] = lil_oink_AnimateGfxSelect[time % ARRAY_COUNT(lil_oink_AnimateGfxSelect)];
data->jumpOffset[i] = shim_sin_deg(time * 20) * 2.0f;
animDone = TRUE;
if (time >= 9) {
data->jumpOffset[i] = 0.0f;
data->unk_13C[i] = 0;
data->animTime[i] = 0;
}
break;
case 4:
data->unk_105[i] = D_E0114740[tmp13C % ARRAY_COUNT(D_E0114740)];
data->jumpOffset[i] = shim_sin_deg(tmp13C * 20) * 4.0f;
if (!(tmp13C < 9)) {
cond = TRUE;
case LIL_OINK_ANIM_4:
data->gfxFrame[i] = lil_oink_AnimateGfxSelect[time % ARRAY_COUNT(lil_oink_AnimateGfxSelect)];
data->jumpOffset[i] = shim_sin_deg(time * 20) * 4.0f;
if (!(time < 9)) {
animDone = TRUE;
data->jumpOffset[i] = 0.0f;
data->unk_13C[i] = 0;
data->animTime[i] = 0;
}
break;
case 5:
case LIL_OINK_ANIM_5:
default:
data->unk_105[i] = D_E0114740[tmp13C % ARRAY_COUNT(D_E0114740)];
data->jumpOffset[i] = shim_sin_deg(tmp13C * 5) * 12.0f;
if (!(tmp13C < 36)) {
cond = TRUE;
data->gfxFrame[i] = lil_oink_AnimateGfxSelect[time % ARRAY_COUNT(lil_oink_AnimateGfxSelect)];
data->jumpOffset[i] = shim_sin_deg(time * 5) * 12.0f;
if (!(time < 36)) {
animDone = TRUE;
data->jumpOffset[i] = 0.0f;
data->unk_13C[i] = 0;
data->animTime[i] = 0;
}
break;
}
data->unk_13C[i]++;
if (cond) {
if (data->flags[i] & 2) {
data->flags[i] &= ~2;
data->unk_13C[i] = 0;
data->unk_FA[i] = data->unk_EF[i];
data->animTime[i]++;
if (animDone) {
if (data->flags[i] & LIL_OINK_FLAG_ANIM_CHANGED) {
data->flags[i] &= ~LIL_OINK_FLAG_ANIM_CHANGED;
data->animTime[i] = 0;
data->anim[i] = data->nextAnim[i];
}
}
}
@ -161,10 +169,10 @@ void lil_oink_render(EffectInstance* effect) {
}
void lil_oink_appendGfx(void* effect) {
Matrix4f sp20;
Matrix4f mtxTransform;
EffectInstance* eff = effect;
LilOinkFXData* data = eff->data.lilOink;
s32 var_s4 = data->unk_04 * 30;
s32 angle = data->lifetime * 30;
s32 i;
gDPPipeSync(gMasterGfxPos++);
@ -174,23 +182,23 @@ void lil_oink_appendGfx(void* effect) {
gSPLookAt(gMasterGfxPos++, &gDisplayContext->lookAt);
for (i = 0; i < MAX_LIL_OINKS; i++) {
if (data->flags[i] & 1) {
shim_guPositionF(sp20, 0.0f, 180.0f - data->rot[i], 0.0f, 1.0f,
if (data->flags[i] & LIL_OINK_FLAG_VISIBLE) {
shim_guPositionF(mtxTransform, 0.0f, 180.0f - data->rot[i], 0.0f, 1.0f,
data->x[i], data->y[i] + data->jumpOffset[i], data->z[i]);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
shim_guMtxF2L(mtxTransform, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E0114718[data->type[i]]);
if (data->type[i] == 8 || data->type[i] == 9) {
f32 temp_f0 = shim_sin_deg(var_s4) * 63.0f;
s32 primColor = (s32)(temp_f0 + 63.0f) & 0xFF;
if (data->type[i] == LIL_OINK_TYPE_SILVER || data->type[i] == LIL_OINK_TYPE_GOLD) {
f32 shineVariation = shim_sin_deg(angle) * 63.0f;
s8 primColor = shineVariation + 63.0f;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primColor, primColor, primColor, 0);
}
gSPDisplayList(gMasterGfxPos++, D_E01146A0[(data->type[i] * 3) + data->unk_105[i]]);
gSPDisplayList(gMasterGfxPos++, lil_oink_FramesGfx[data->type[i]][data->gfxFrame[i]]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
var_s4 += 20;
angle += 20;
}
}

View File

@ -1218,7 +1218,7 @@ ApiStatus evt_handle_end_child_thread(Evt* script) {
return ApiStatus_BLOCK;
}
ApiStatus func_802C6E14(Evt* script) {
ApiStatus evt_handle_debug_log(Evt* script) {
return ApiStatus_DONE2;
}
@ -1636,7 +1636,7 @@ s32 evt_execute_next_command(Evt* script) {
status = evt_handle_end_child_thread(script);
break;
case EVT_OP_DEBUG_LOG:
status = func_802C6E14(script);
status = evt_handle_debug_log(script);
break;
case EVT_OP_DEBUG_PRINT_VAR:
status = evt_handle_print_debug_var(script);

View File

@ -216,7 +216,7 @@ EvtScript N(makeEntities) = {
};
ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall) {
Entity* entity = get_entity_by_index(evt_get_variable(NULL, 0xFD050F80));
Entity* entity = get_entity_by_index(evt_get_variable(NULL, MapVar(0)));
if (entity == NULL) {
return ApiStatus_BLOCK;

View File

@ -11,8 +11,8 @@
#define CHUCK_QUIZMO_NPC_ID NPC_ChuckQuizmo
#include "world/common/complete/Quizmo.inc.c"
MAP_STATIC_PAD(1,post_quizmo); // or pre_key_item?
MAP_STATIC_PAD(1,pre_key_item); // or post-quizmo?
#include "world/common/complete/KeyItemChoice.inc.c"
#include "world/common/util/MonitorPlayerOrbiting.inc.c"

View File

@ -1,14 +1,5 @@
#include "iwa_10.h"
API_CALLABLE(N(GetClockHandAngles)) {
if (script->varTable[15] > 720) {
script->varTable[15] = 0;
}
script->varTable[0] = script->varTable[15] * 6;
script->varTable[1] = script->varTable[15] / 2;
return ApiStatus_DONE2;
}
EvtScript N(EVS_ExitWalk_iwa_00_0) = EVT_EXIT_WALK(60, iwa_10_ENTRY_1, "iwa_00", iwa_00_ENTRY_0);
EvtScript N(EVS_BindExitTriggers) = {
@ -36,6 +27,15 @@ EvtScript N(EVS_EnterMap) = {
EVT_END
};
API_CALLABLE(N(GetClockHandAngles)) {
if (script->varTable[15] > 720) {
script->varTable[15] = 0;
}
script->varTable[0] = script->varTable[15] * 6;
script->varTable[1] = script->varTable[15] / 2;
return ApiStatus_DONE2;
}
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_MT_RUGGED)
EVT_CALL(SetSpriteShading, SHADING_NONE)

View File

@ -41,12 +41,13 @@ extern MapSettings kmr_11_settings;
extern MapSettings kmr_12_settings;
extern MapSettings kmr_20_settings;
extern MapSettings kmr_21_settings;
s32 kmr_21_map_init(void);
extern MapSettings kmr_22_settings;
extern MapSettings kmr_23_settings;
s32 kmr_23_map_init(void);
extern MapSettings kmr_24_settings;
s32 kmr_24_map_init(void);
extern MapSettings kmr_30_settings;
s32 kmr_21_map_init(void);
s32 kmr_23_map_init(void);
s32 kmr_24_map_init(void);
#endif

View File

@ -32,7 +32,7 @@ enum {
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetNormalMusic);
extern EvtScript N(EVS_SetJrTroopaMusic);
extern EvtScript N(EVS_PushPopMusic);
extern EvtScript N(EVS_PlayUpgradeSong);
extern EvtScript N(EVS_SetupFoliage);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -12,7 +12,7 @@ EvtScript N(EVS_SetJrTroopaMusic) = {
EVT_END
};
EvtScript N(EVS_PushPopMusic) = {
EvtScript N(EVS_PlayUpgradeSong) = {
EVT_CALL(PushSong, SONG_ITEM_UPGRADE, 0)
EVT_WAIT(130)
EVT_CALL(PopSong)

View File

@ -46,7 +46,7 @@ EvtScript N(EVS_GotHammer) = {
EVT_ADD(LVar6, 16)
EVT_PLAY_EFFECT(EFFECT_GOT_ITEM_OUTLINE, 0, LVar5, LVar6, LVar7, EVT_FLOAT(1.0), LVar8)
EVT_PLAY_EFFECT(EFFECT_RADIAL_SHIMMER, 9, LVar5, LVar6, LVar7, EVT_FLOAT(1.0), 100)
EVT_EXEC(N(EVS_PushPopMusic))
EVT_EXEC(N(EVS_PlayUpgradeSong))
EVT_THREAD
EVT_WAIT(4)
EVT_CALL(GetPlayerPos, LVar3, LVar4, LVar5)

View File

@ -76,7 +76,6 @@ API_CALLABLE(N(SetupDemoScene)) {
return ApiStatus_BLOCK;
}
EvtScript N(EVS_PlayDemoScene) = {
EVT_CALL(N(SetupDemoScene))
EVT_SET(GF_DemoSceneDone, FALSE)

View File

@ -2,24 +2,40 @@
#define _WORLD_AREA_MAC_MAC_H_
enum {
AB_MAC_0 = AreaByte(0),
AB_MAC_1 = AreaByte(1),
AB_MAC_2 = AreaByte(2),
AB_MAC_3 = AreaByte(3),
AB_MAC_4 = AreaByte(4),
AB_MAC_5 = AreaByte(5),
AB_MAC_6 = AreaByte(6),
AB_MAC_7 = AreaByte(7),
AB_MAC_8 = AreaByte(8),
AB_MAC_9 = AreaByte(9),
AB_MAC_A = AreaByte(10),
AB_MAC_B = AreaByte(11),
AB_MAC_C = AreaByte(12),
AB_MAC_D = AreaByte(13),
AB_MAC_E = AreaByte(14),
AB_MAC_F = AreaByte(15),
AB_MAC_0 = AreaByte(0),
AB_MAC_1 = AreaByte(1),
AB_MAC_2 = AreaByte(2),
AB_MAC_3 = AreaByte(3),
AB_MAC_4 = AreaByte(4),
AB_MAC_5 = AreaByte(5),
AB_MAC_6 = AreaByte(6),
AB_MAC_7 = AreaByte(7),
AB_MAC_8 = AreaByte(8),
AB_MAC_9 = AreaByte(9),
AB_MAC_A = AreaByte(10),
AB_MAC_B = AreaByte(11),
AB_MAC_C = AreaByte(12),
AB_MAC_D = AreaByte(13),
AB_MAC_E = AreaByte(14),
AB_MAC_F = AreaByte(15),
};
#define AF_MAC(index) AreaFlag(index)
enum {
AF_MAC_20 = AreaFlag(32),
AF_MAC_21 = AreaFlag(33),
AF_MAC_22 = AreaFlag(34),
AF_MAC_23 = AreaFlag(35),
AF_MAC_24 = AreaFlag(36),
AF_MAC_25 = AreaFlag(37),
};
extern MapSettings machi_settings;
extern MapSettings mac_00_settings;
extern MapSettings mac_01_settings;
extern MapSettings mac_02_settings;
extern MapSettings mac_03_settings;
extern MapSettings mac_04_settings;
extern MapSettings mac_05_settings;
extern MapSettings mac_06_settings;
#endif

View File

@ -1,18 +0,0 @@
#include "mac_03.h"
static char* N(exit_str_0) = "mac_02";
static char* N(exit_str_1) = "mgm_00";
static char* N(exit_str_2) = "iwa_11";
static char* N(exit_str_3) = "mac_03";
#include "world/common/entity/Pipe.inc.c"
ApiStatus func_802402E0_831AE0(Evt* script, s32 isInitialCall) {
if (script->varTable[15] > 720) {
script->varTable[15] = 0;
}
script->varTable[0] = script->varTable[15] * 6;
script->varTable[1] = script->varTable[15] / 2;
return ApiStatus_DONE2;
}

View File

@ -1,68 +0,0 @@
#include "mac_03.h"
#include "effects.h"
#define CHUCK_QUIZMO_NPC_ID 23
#include "common/CosInterpMinMax.inc.c"
extern s32 N(Quizmo_Worker);
extern s32 N(Quizmo_AnswerResult);
extern EffectInstance* N(Quizmo_StageEffect);
extern EffectInstance* N(Quizmo_AudienceEffect);
extern EffectInstance* N(Quizmo_VannaTEffect);
#include "world/common/atomic/Quizmo.inc.c"
#include "world/common/todo/GetNpcCollisionHeight.inc.c"
#include "world/common/todo/AddPlayerHandsOffset.inc.c"
INCLUDE_ASM(s32, "world/area_mac/mac_03/831B20", func_80241770_832F70);
extern s32 N(ItemChoice_HasSelectedItem);
extern s32 N(ItemChoice_SelectedItemID);
ApiStatus N(ItemChoice_SaveSelected)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
N(ItemChoice_SelectedItemID) = evt_get_variable(script, *args++);
N(ItemChoice_HasSelectedItem) = TRUE;
return ApiStatus_DONE2;
}
extern s32 mac_03_D_80251400[];
ApiStatus func_802417FC_832FFC(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32* ptr = (s32*) evt_get_variable(script, *args++);
s32 i;
if (ptr != NULL) {
for (i = 0; ptr[i] != 0; i++) {
mac_03_D_80251400[i] = ptr[i];
}
mac_03_D_80251400[i] = 0;
} else {
for (i = 0; i < 112; i++) {
mac_03_D_80251400[i] = i + 16;
mac_03_D_80251400[112] = 0;
}
}
return ApiStatus_DONE2;
}
extern s32 N(LetterDelivery_SavedNpcAnim);
#include "world/common/todo/LetterDelivery.inc.c"
ApiStatus func_80241B84_833384(Evt* script, s32 isInitialCall) {
s32 gb29 = evt_get_variable(script, GameByte(29));
if (gb29 == 0) {
script->varTable[0] = -1;
} else {
script->varTable[0] = evt_get_variable(script, gb29 + GameByte(29));
}
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_mac/mac_03/831B20", func_80241BD8_8333D8);

View File

@ -1,4 +0,0 @@
#include "mac_03.h"
#include "common/foliage.inc.c"

View File

@ -1,172 +0,0 @@
#include "mac_03.h"
#include "effects.h"
typedef struct LilOinkReward {
/* 0x00 */ s32 itemID;
/* 0x04 */ s32 quantity;
/* 0x08 */ s32 chance;
} LilOinkReward; // size = 0x0C
extern LilOinkReward D_8024F800_841000[10];
#include "world/common/todo/GetFloorCollider.inc.c"
#include "world/common/todo/GetPlayerCoins.inc.c"
ApiStatus func_80241F80_833780(Evt* script, s32 isInitialCall) {
hide_coin_counter_immediately();
return ApiStatus_DONE2;
}
// OINK cod start
ApiStatus func_80241FA0_8337A0(Evt* script, s32 isInitialCall) {
// f32 angle = clamp_angle(EVT_FIXED_TO_FLOAT(script->varTable[2])); ? TODO
f32 angle = script->varTable[2] + EVT_FIXED_OFFSET;
angle = clamp_angle(angle * (1.0f / 1024.0f));
script->varTable[2] = (sin_deg(angle) * 110.0f) + 167.0f;
script->varTable[3] = 85;
script->varTable[4] = -343.75f - (cos_deg(angle) * 110.0f);
return ApiStatus_DONE2;
}
ApiStatus func_8024206C_83386C(Evt* script, s32 isInitialCall) {
s32 typeBase = GB_MAC03_LilOink_00;
s32 numPigs = evt_get_variable(NULL, GB_MAC03_LilOinkCount);
EffectInstance* effect = fx_lil_oink(0, 0.0f, 0.0f, 0.0f, 0.0f, 0);
s32 i;
evt_set_variable(script, MapVar(2), (s32) effect);
for (i = 0; i < numPigs; i++) {
effect->data.lilOink->type[i] = evt_get_variable(NULL, typeBase + i);
effect->data.lilOink->x[i] = 300 + (i * 30);
effect->data.lilOink->y[i] = 20.0f;
effect->data.lilOink->z[i] = -180.0f;
effect->data.lilOink->rot[i] = 270.0f;
effect->data.lilOink->flags[i] |= 1;
effect->data.lilOink->flags[i] |= 2;
effect->data.lilOink->unk_EF[i] = 2;
}
return ApiStatus_DONE2;
}
ApiStatus func_802421E8_8339E8(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 type = evt_get_variable(script, *args++);
f32 x = evt_get_variable(script, *args++);
f32 y = evt_get_variable(script, *args++);
f32 z = evt_get_variable(script, *args++);
s32 rot = evt_get_variable(script, *args++);
effect->data.lilOink->type[i] = type;
effect->data.lilOink->x[i] = x;
effect->data.lilOink->y[i] = y;
effect->data.lilOink->z[i] = z;
effect->data.lilOink->rot[i] = rot;
effect->data.lilOink->flags[i] |= 1;
// When the pen is full?
if (i != MAX_LIL_OINKS - 1) {
effect->data.lilOink->flags[i] |= 2;
effect->data.lilOink->unk_EF[i] = 2;
evt_set_variable(script, i + GB_MAC03_LilOink_00, type);
}
return ApiStatus_DONE2;
}
ApiStatus func_80242384_833B84(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
f32 x = evt_get_variable(script, *args++);
f32 y = evt_get_variable(script, *args++);
f32 z = evt_get_variable(script, *args++);
s32 rot = evt_get_variable(script, *args++);
effect->data.lilOink->x[i] = x;
effect->data.lilOink->y[i] = y;
effect->data.lilOink->z[i] = z;
effect->data.lilOink->rot[i] = rot;
return ApiStatus_DONE2;
}
ApiStatus func_802424A0_833CA0(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 xOut = *args++;
s32 yOut = *args++;
s32 zOut = *args++;
s32 rotOut = *args++;
evt_set_variable(script, xOut, effect->data.lilOink->x[i]);
evt_set_variable(script, yOut, effect->data.lilOink->y[i]);
evt_set_variable(script, zOut, effect->data.lilOink->z[i]);
evt_set_variable(script, rotOut, effect->data.lilOink->rot[i]);
return ApiStatus_DONE2;
}
ApiStatus func_802425A8_833DA8(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
effect->data.lilOink->flags[i] &= ~1;
return ApiStatus_DONE2;
}
ApiStatus func_80242608_833E08(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 temp = evt_get_variable(script, *args++);
effect->data.lilOink->flags[i] |= 2;
effect->data.lilOink->unk_EF[i] = temp;
return ApiStatus_DONE2;
}
ApiStatus func_80242694_833E94(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MapVar(2));
s32 i;
for (i = 1; i < MAX_LIL_OINKS - 1; i++) {
s32 type = evt_get_variable(script, GB_MAC03_LilOink_00 + i);
f32 x, y, z, rot;
evt_set_variable(script, GB_MAC03_LilOinkCount + i, type);
x = effect->data.lilOink->x[i];
y = effect->data.lilOink->y[i];
z = effect->data.lilOink->z[i];
rot = effect->data.lilOink->rot[i];
effect->data.lilOink->type[i - 1] = type;
effect->data.lilOink->x[i - 1] = x;
effect->data.lilOink->y[i - 1] = y;
effect->data.lilOink->z[i - 1] = z;
effect->data.lilOink->rot[i - 1] = rot;
effect->data.lilOink->flags[i - 1] |= 1;
}
effect->data.lilOink->flags[MAX_LIL_OINKS - 2] &= ~1;
evt_set_variable(script, GB_MAC03_LilOinkCount, 9);
return ApiStatus_DONE2;
}
ApiStatus func_802427D0_833FD0(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 index = evt_get_variable(script, GB_MAC03_LilOink_00);
s32 itemID = *args++;
s32 quantity = *args++;
s32 chance = *args++;
LilOinkReward* reward = &D_8024F800_841000[index];
evt_set_variable(script, itemID, reward->itemID);
evt_set_variable(script, quantity, reward->quantity);
evt_set_variable(script, chance, reward->chance);
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,72 @@
/// @brief Toad Town - Station District
#include "common.h"
#include "../mac.h"
#include "message_ids.h"
#include "map.h"
#include "../mac.h"
#include "mapfs/mac_03_shape.h"
#include "mapfs/mac_03_hit.h"
#include "sprite/npc/TrainStationToad.h"
#include "sprite/npc/Toad.h"
#include "sprite/npc/ShyGuy.h"
enum {
NPC_TrainStationToad_01 = 0,
NPC_TrainStationToad_02 = 1,
NPC_Toad_01 = 2,
NPC_ThreeSisters_01 = 3,
NPC_Toad_02 = 4,
NPC_ToadKid_01 = 5,
NPC_ToadKid_02 = 6,
NPC_ThreeSisters_02 = 7,
NPC_ThreeSisters_03 = 8,
NPC_ThreeSisters_04 = 9,
NPC_Toad_03 = 10,
NPC_ShyGuy = 11,
NPC_LilOink_01 = 12,
NPC_LilOink_02 = 13,
NPC_LilOink_03 = 14,
NPC_LilOink_04 = 15,
NPC_LilOink_05 = 16,
NPC_LilOink_06 = 17,
NPC_LilOink_07 = 18,
NPC_LilOink_08 = 19,
NPC_LilOink_09 = 20,
NPC_LilOink_10 = 21,
NPC_Capsule = 22,
NPC_ChuckQuizmo = 23,
};
enum {
MF_TrainDepartDoorOpen = MapFlag(0),
MF_TrainDepartPlayerBoard = MapFlag(1),
MF_TrainArriveDoorOpen = MapFlag(2),
MF_TrainArrivePlayerDisembark = MapFlag(3),
MF_TrainMoving = MapFlag(4),
MF_TrainReverseDir = MapFlag(5),
MF_Unk_06 = MapFlag(6),
MF_Unk_07 = MapFlag(7),
MF_Unk_08 = MapFlag(8),
};
enum {
MV_TrainMoveDist = MapVar(0),
MV_TrainMoveSpeed = MapVar(1),
MV_LilOinkEffect = MapVar(2),
};
#define NAMESPACE mac_03
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_SetupFoliage);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_InitializeTrainScene);
extern EvtScript N(EVS_ArriveFromMtRugged);
extern EvtScript N(EVS_DepartForMtRugged);
extern EvtScript N(EVS_InitializeLilOinks);
extern EvtScript N(EVS_PlayDemoScene);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,16 @@
#include "mac_03.h"
EntryList N(Entrances) = {
[mac_03_ENTRY_0] { 0.0, 0.0, -600.0, 180.0 },
[mac_03_ENTRY_1] { 590.0, 30.0, 100.0, 270.0 },
[mac_03_ENTRY_2] { -125.0, 50.0, -562.0, 90.0 },
[mac_03_ENTRY_3] { -415.0, 20.0, 92.0, 350.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_mac_03 },
};

View File

@ -0,0 +1,12 @@
#include "mac_03.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_RANGE(STORY_CH3_STAR_SPRIT_DEPARTED, STORY_CH4_STAR_SPIRIT_RESCUED)
EVT_CALL(SetMusicTrack, 0, SONG_SHY_GUY_INVASION, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,100 @@
#include "mac_03.h"
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"
EvtScript N(EVS_ExitWalk_mac_02_3) = EVT_EXIT_WALK(60, mac_03_ENTRY_0, "mac_02", mac_02_ENTRY_3);
EvtScript N(EVS_GotoMap_mgm_00_0) = {
EVT_CALL(GotoMap, EVT_PTR("mgm_00"), mgm_00_ENTRY_0)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitPipe_mgm_00_0) = EVT_EXIT_PIPE_VERTICAL(mac_02_ENTRY_2, COLLIDER_deilim, N(EVS_GotoMap_mgm_00_0));
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_mac_02_3)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilin, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPipe_mgm_00_0)), TRIGGER_FLOOR_TOUCH, COLLIDER_deilim, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_EnterMap) = {
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(mac_03_ENTRY_0)
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_CASE_EQ(mac_03_ENTRY_1)
EVT_EXEC(N(EVS_ArriveFromMtRugged))
EVT_EXEC(N(EVS_BindExitTriggers))
EVT_CASE_EQ(mac_03_ENTRY_2)
EVT_ENTER_PIPE_VERTICAL(N(EVS_BindExitTriggers))
EVT_CASE_EQ(mac_03_ENTRY_3)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_HidePlayroomPipe) = {
EVT_IF_EQ(GF_MAC03_UnlockedPlayroom, FALSE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_dokan, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilim, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(EnableModel, MODEL_o241, FALSE)
EVT_END_IF
EVT_RETURN
EVT_END
};
API_CALLABLE(N(GetClockHandAngles)) {
if (script->varTable[15] > 720) {
script->varTable[15] = 0;
}
script->varTable[0] = script->varTable[15] * 6;
script->varTable[1] = script->varTable[15] / 2;
return ApiStatus_DONE2;
}
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN)
EVT_CALL(SetSpriteShading, SHADING_NONE)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_SET(AF_MAC_20, FALSE)
EVT_SET(AF_MAC_21, FALSE)
EVT_SET(AF_MAC_22, FALSE)
EVT_SET(AF_MAC_23, FALSE)
EVT_SET(AF_MAC_24, FALSE)
EVT_SET(AF_MAC_25, FALSE)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupFoliage))
EVT_CALL(GetDemoState, LVar0)
EVT_IF_EQ(LVar0, DEMO_STATE_NONE)
EVT_EXEC(N(EVS_InitializeLilOinks))
EVT_END_IF
EVT_EXEC_WAIT(N(EVS_InitializeTrainScene))
EVT_THREAD
EVT_SET(LVarF, 0)
EVT_LABEL(10)
EVT_ADD(LVarF, 1)
EVT_CALL(N(GetClockHandAngles))
EVT_CALL(RotateModel, MODEL_o148, LVar0, 0, 0, -1)
EVT_CALL(RotateModel, MODEL_o147, LVar1, 0, 0, -1)
EVT_WAIT(10)
EVT_GOTO(10)
EVT_END_THREAD
EVT_CALL(GetDemoState, LVar0)
EVT_IF_NE(LVar0, DEMO_STATE_NONE)
EVT_EXEC_WAIT(N(EVS_PlayDemoScene))
EVT_RETURN
EVT_END_IF
EVT_EXEC(N(EVS_SetupMusic))
EVT_EXEC(N(EVS_HidePlayroomPipe))
EVT_EXEC(N(EVS_EnterMap))
EVT_SET(GF_MAC01_RowfBadgesChosen, FALSE)
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,583 @@
#include "mac_03.h"
#include "common/CosInterpMinMax.inc.c"
EvtScript N(EVS_OpenCrossingGates) = {
EVT_SET(LVarF, 0)
EVT_LOOP(40)
EVT_ADD(LVarF, 1)
EVT_SET(LVar1, LVarF)
EVT_CALL(N(CosInterpMinMax), LVar1, LVar0, 0, 105, 40, 1, 0)
EVT_CALL(RotateModel, MODEL_o183, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o184, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o191, LVar0, 0, 1, 0)
EVT_SET(LVar1, LVarF)
EVT_CALL(N(CosInterpMinMax), LVar1, LVar0, 0, 75, 40, 1, 0)
EVT_CALL(RotateModel, MODEL_o187, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o188, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o192, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CloseCrossingGates) = {
EVT_SET(LVarF, 0)
EVT_LOOP(40)
EVT_ADD(LVarF, 1)
EVT_SET(LVar1, LVarF)
EVT_CALL(N(CosInterpMinMax), LVar1, LVar0, 105, 0, 40, 1, 0)
EVT_CALL(RotateModel, MODEL_o183, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o184, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o191, LVar0, 0, 1, 0)
EVT_SET(LVar1, LVarF)
EVT_CALL(N(CosInterpMinMax), LVar1, LVar0, 75, 0, 40, 1, 0)
EVT_CALL(RotateModel, MODEL_o187, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o188, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_o192, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SpawnSmoke) = {
EVT_CALL(PlaySoundAtModel, MODEL_07, SOUND_B000001A, 0)
EVT_SETF(LVar0, MV_TrainMoveDist)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADDF(LVar0, -310)
EVT_ELSE
EVT_ADDF(LVar0, -450)
EVT_END_IF
EVT_SETF(LVar1, 140)
EVT_SETF(LVar2, 0)
EVT_SETF(LVar3, EVT_FLOAT(1.0))
EVT_SETF(LVar4, EVT_FLOAT(3.0))
EVT_ADD(LVarB, CLONED_MODEL(0))
EVT_CALL(EnableModel, LVarB, TRUE)
EVT_LOOP(20)
EVT_CALL(TranslateModel, LVarB, LVar0, LVar1, LVar2)
EVT_CALL(ScaleModel, LVarB, LVar3, LVar3, 1)
EVT_ADDF(LVar1, LVar4)
EVT_ADDF(LVar3, EVT_FLOAT(0.046875))
EVT_MULF(LVar4, EVT_FLOAT(0.90625))
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(EnableModel, LVarB, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_AnimateTrain) = {
EVT_LABEL(0)
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_CALL(TranslateModel, MODEL_08, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_07, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_10, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_11, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_12, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_13, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_09, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_01, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_02, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_03, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_04, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_05, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_06, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_ura, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_omote, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_ura2, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_omote2, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_14, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_15, LVar0, 0, 0)
EVT_CALL(TranslateModel, MODEL_16, LVar0, 0, 0)
EVT_IF_EQ(MF_TrainReverseDir, TRUE)
EVT_SET(LVar0, 180)
EVT_CALL(TranslateModel, MODEL_08, -69, -50, 0)
EVT_CALL(TranslateModel, MODEL_07, -69, -50, 0)
EVT_CALL(TranslateModel, MODEL_10, 75, 25, 2)
EVT_CALL(TranslateModel, MODEL_11, 30, 30, 2)
EVT_CALL(TranslateModel, MODEL_12, -10, 30, 2)
EVT_CALL(TranslateModel, MODEL_13, -50, 30, 2)
EVT_CALL(TranslateModel, MODEL_09, -1, -58, 0)
EVT_CALL(TranslateModel, MODEL_ura, 82, -19, -35)
EVT_CALL(TranslateModel, MODEL_omote, 82, -19, -35)
EVT_CALL(TranslateModel, MODEL_ura2, 82, -19, 35)
EVT_CALL(TranslateModel, MODEL_omote2, 82, -19, 35)
EVT_CALL(TranslateModel, MODEL_14, -21, 30, 0)
EVT_CALL(TranslateModel, MODEL_15, -25, 30, 0)
EVT_CALL(TranslateModel, MODEL_16, -63, 15, 0)
EVT_CALL(RotateModel, MODEL_08, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_07, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_10, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_11, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_12, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_13, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_09, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_01, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_02, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_03, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_04, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_05, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_06, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_ura, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_omote, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_ura2, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_omote2, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_14, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_15, LVar0, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_16, LVar0, 0, 1, 0)
EVT_CALL(TranslateModel, MODEL_08, 69, 50, 0)
EVT_CALL(TranslateModel, MODEL_07, 69, 50, 0)
EVT_CALL(TranslateModel, MODEL_10, -75, -25, -2)
EVT_CALL(TranslateModel, MODEL_11, -30, -30, -2)
EVT_CALL(TranslateModel, MODEL_12, 10, -30, -2)
EVT_CALL(TranslateModel, MODEL_13, 50, -30, -2)
EVT_CALL(TranslateModel, MODEL_09, 1, 58, 0)
EVT_CALL(TranslateModel, MODEL_ura, -82, 19, 35)
EVT_CALL(TranslateModel, MODEL_omote, -82, 19, 35)
EVT_CALL(TranslateModel, MODEL_ura2, -82, 19, -35)
EVT_CALL(TranslateModel, MODEL_omote2, -82, 19, -35)
EVT_CALL(TranslateModel, MODEL_14, 21, -30, 0)
EVT_CALL(TranslateModel, MODEL_15, 25, -30, 0)
EVT_CALL(TranslateModel, MODEL_16, 63, -15, 0)
EVT_END_IF
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_SET(LVar2, MV_TrainMoveDist)
EVT_ELSE
EVT_SET(LVar2, 1000)
EVT_SUB(LVar2, MV_TrainMoveDist)
EVT_END_IF
EVT_SETF(LVar0, LVar2)
EVT_MULF(LVar0, EVT_FLOAT(-2.40625))
EVT_CALL(RotateModel, MODEL_11, LVar0, 0, 0, 1)
EVT_CALL(RotateModel, MODEL_12, LVar0, 0, 0, 1)
EVT_CALL(RotateModel, MODEL_13, LVar0, 0, 0, 1)
EVT_MULF(LVar0, EVT_FLOAT(0.6))
EVT_CALL(RotateModel, MODEL_10, LVar0, 0, 0, 1)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar0, 0, -20, 75, 0, 0)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar1, -10, 10, 75, 0, -90)
EVT_CALL(TranslateModel, MODEL_14, LVar0, LVar1, 0)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar0, 0, -20, 75, 0, 0)
EVT_ADD(LVar0, 5)
EVT_CALL(TranslateModel, MODEL_16, LVar0, -14, 0)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar0, 0, -20, 75, 0, 0)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar1, -10, 10, 75, 0, -90)
EVT_CALL(TranslateModel, MODEL_15, LVar0, LVar1, 0)
EVT_CALL(N(CosInterpMinMax), LVar2, LVar0, -40, 40, 75, 0, 90)
EVT_CALL(RotateModel, MODEL_15, LVar0, 0, 0, 1)
EVT_CALL(N(CosInterpMinMax), LVarC, LVar0, EVT_FLOAT(-3.0), EVT_FLOAT(3.0), 10, 0, 0)
EVT_MULF(LVar0, MV_TrainMoveSpeed)
EVT_CALL(RotateModel, MODEL_09, LVar0, 0, 0, 1)
EVT_IF_NE(MV_TrainMoveSpeed, 0)
EVT_IF_EQ(LVarD, 0)
EVT_THREAD
EVT_WAIT(18)
EVT_EXEC(N(EVS_SpawnSmoke))
EVT_END_THREAD
EVT_END_IF
EVT_END_IF
EVT_IF_LE(LVarD, 20)
EVT_CALL(N(CosInterpMinMax), LVarD, LVar0, EVT_FLOAT(0.703125), EVT_FLOAT(1.0), 10, 0, 180)
EVT_CALL(N(CosInterpMinMax), LVarD, LVar2, EVT_FLOAT(0.0), EVT_FLOAT(0.296875), 10, 0, 180)
EVT_SETF(LVar1, EVT_FLOAT(0.296875))
EVT_SUBF(LVar1, LVar2)
EVT_ADDF(LVar1, EVT_FLOAT(1.0))
EVT_CALL(ScaleModel, MODEL_07, LVar1, LVar0, LVar1)
EVT_CALL(ScaleModel, MODEL_08, LVar1, LVar0, LVar1)
EVT_ELSE
EVT_SETF(LVar0, EVT_FLOAT(1.0))
EVT_SETF(LVar2, EVT_FLOAT(0.296875))
EVT_SETF(LVar1, EVT_FLOAT(0.296875))
EVT_SUBF(LVar1, LVar2)
EVT_ADDF(LVar1, EVT_FLOAT(1.0))
EVT_CALL(ScaleModel, MODEL_07, LVar1, LVar0, LVar1)
EVT_CALL(ScaleModel, MODEL_08, LVar1, LVar0, LVar1)
EVT_END_IF
EVT_IF_EQ(MF_TrainDepartDoorOpen, TRUE)
EVT_CALL(PlaySoundAt, SOUND_20A5, 0, -435, 84, 37)
EVT_SET(LVar8, 10)
EVT_SET(LocalFlag(1), TRUE)
EVT_SET(MF_TrainDepartDoorOpen, FALSE)
EVT_END_IF
EVT_IF_EQ(MF_TrainDepartPlayerBoard, TRUE)
EVT_SET(LVar8, -10)
EVT_SET(LocalFlag(1), TRUE)
EVT_SET(MF_TrainDepartPlayerBoard, FALSE)
EVT_END_IF
EVT_IF_EQ(MF_TrainArriveDoorOpen, TRUE)
EVT_CALL(PlaySoundAt, SOUND_20A5, 0, -413, 84, 38)
EVT_SET(LVar8, 10)
EVT_SET(LocalFlag(2), TRUE)
EVT_SET(MF_TrainArriveDoorOpen, FALSE)
EVT_END_IF
EVT_IF_EQ(MF_TrainArrivePlayerDisembark, TRUE)
EVT_SET(LVar8, -10)
EVT_SET(LocalFlag(2), TRUE)
EVT_SET(MF_TrainArrivePlayerDisembark, FALSE)
EVT_END_IF
EVT_IF_EQ(LocalFlag(1), TRUE)
EVT_ADD(LVar9, LVar8)
EVT_IF_GE(LVar9, 90)
EVT_SET(LVar9, 90)
EVT_SET(LocalFlag(1), FALSE)
EVT_END_IF
EVT_IF_LE(LVar9, 0)
EVT_SET(LVar9, 0)
EVT_SET(LocalFlag(1), FALSE)
EVT_CALL(PlaySoundAt, SOUND_20A6, 0, -435, 84, 37)
EVT_END_IF
EVT_END_IF
EVT_IF_EQ(LocalFlag(2), TRUE)
EVT_ADD(LVarA, LVar8)
EVT_IF_GE(LVarA, 90)
EVT_SET(LVarA, 90)
EVT_SET(LocalFlag(2), FALSE)
EVT_END_IF
EVT_IF_LE(LVarA, 0)
EVT_SET(LVarA, 0)
EVT_SET(LocalFlag(2), FALSE)
EVT_CALL(PlaySoundAt, SOUND_20A6, 0, -413, 84, 38)
EVT_END_IF
EVT_END_IF
EVT_CALL(RotateModel, MODEL_omote, LVar9, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_ura, LVar9, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_omote2, LVarA, 0, 1, 0)
EVT_CALL(RotateModel, MODEL_ura2, LVarA, 0, 1, 0)
EVT_IF_GT(MV_TrainMoveDist, 100)
EVT_IF_LT(MV_TrainMoveDist, 600)
EVT_IF_EQ(LocalFlag(0), FALSE)
EVT_SET(LocalFlag(0), TRUE)
EVT_EXEC(N(EVS_OpenCrossingGates))
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_IF_LE(MV_TrainMoveDist, 100)
EVT_IF_EQ(LocalFlag(0), TRUE)
EVT_SET(LocalFlag(0), FALSE)
EVT_EXEC(N(EVS_CloseCrossingGates))
EVT_END_IF
EVT_END_IF
EVT_IF_GE(MV_TrainMoveDist, 600)
EVT_IF_EQ(LocalFlag(0), TRUE)
EVT_SET(LocalFlag(0), FALSE)
EVT_EXEC(N(EVS_CloseCrossingGates))
EVT_END_IF
EVT_END_IF
EVT_IF_EQ(MF_TrainMoving, TRUE)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_ADD(LVar0, -425)
EVT_ADD(LVar1, 75)
EVT_ADD(LVar2, 20)
EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2)
EVT_ELSE
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_ADD(LVar0, -335)
EVT_ADD(LVar1, 75)
EVT_ADD(LVar2, 20)
EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2)
EVT_END_IF
EVT_END_IF
EVT_ADD(MV_TrainMoveDist, MV_TrainMoveSpeed)
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_DIV(LVar0, 75)
EVT_IF_NE(LVar0, LVarE)
EVT_SET(LVarE, LVar0)
EVT_SET(LVarD, -1)
EVT_ADD(LVarB, 1)
EVT_IF_EQ(LVarB, 10)
EVT_SET(LVarB, 0)
EVT_END_IF
EVT_END_IF
EVT_ADDF(LVarD, 1)
EVT_IF_GT(LVarD, 1000)
EVT_SET(LVarD, 1000)
EVT_END_IF
EVT_ADDF(LVarC, 1)
EVT_IF_GT(LVarC, 1000)
EVT_SET(LVarC, 0)
EVT_END_IF
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_UpdatePassengerPos) = {
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE)
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar0, -425)
EVT_ELSE
EVT_ADD(LVar0, -335)
EVT_END_IF
EVT_SET(LVar3, LVar0)
EVT_SET(LVar4, LVar1)
EVT_SET(LVar5, LVar2)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar3, -57)
EVT_ELSE
EVT_ADD(LVar3, 57)
EVT_END_IF
EVT_ADD(LVar4, -31)
EVT_ADD(LVar5, 0)
EVT_CALL(SetNpcPos, NPC_PARTNER, LVar3, LVar4, LVar5)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar0, 0)
EVT_ELSE
EVT_ADD(LVar0, 0)
EVT_END_IF
EVT_ADD(LVar1, -6)
EVT_ADD(LVar2, -40)
EVT_CALL(SetNpcPos, NPC_TrainStationToad_02, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FollowTrainCamera) = {
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_IF_GT(LVar0, 350)
EVT_SET(LVar0, 350)
EVT_END_IF
EVT_ADD(LVar0, 40)
EVT_SET(LVar1, 30)
EVT_ADD(LVar2, 40)
EVT_ELSE
EVT_IF_GT(LVar0, 350)
EVT_SET(LVar0, 350)
EVT_END_IF
EVT_ADD(LVar0, -40)
EVT_SET(LVar1, 30)
EVT_ADD(LVar2, 40)
EVT_END_IF
EVT_CALL(SetCamTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ArriveFromMtRugged) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(InterpPlayerYaw, 270, 0)
EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0)
EVT_CALL(EnableNpcShadow, NPC_PARTNER, FALSE)
EVT_CALL(HidePlayerShadow, TRUE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitk, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya1, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya2, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya3, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_humikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_fumikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_EXEC_GET_TID(N(EVS_FollowTrainCamera), LVar9)
EVT_EXEC_GET_TID(N(EVS_UpdatePassengerPos), LVarE)
EVT_SET(MF_TrainMoving, TRUE)
EVT_SET(MV_TrainMoveDist, 1200)
EVT_SET(MV_TrainMoveSpeed, 0)
EVT_SET(MF_TrainReverseDir, TRUE)
EVT_WAIT(60)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_SET(MV_TrainMoveDist, 1200)
EVT_SET(MV_TrainMoveSpeed, -10)
EVT_SET(MF_TrainReverseDir, TRUE)
EVT_LABEL(0)
EVT_SETF(MV_TrainMoveSpeed, -90)
EVT_SUBF(MV_TrainMoveSpeed, MV_TrainMoveDist)
EVT_SUBF(MV_TrainMoveSpeed, EVT_FLOAT(10.0))
EVT_DIVF(MV_TrainMoveSpeed, EVT_FLOAT(10.0))
EVT_IF_LT(MV_TrainMoveSpeed, -10)
EVT_SET(MV_TrainMoveSpeed, -10)
EVT_END_IF
EVT_IF_LE(MV_TrainMoveDist, -90)
EVT_GOTO(1)
EVT_END_IF
EVT_WAIT(1)
EVT_GOTO(0)
EVT_LABEL(1)
EVT_SET(MV_TrainMoveDist, -90)
EVT_SET(MV_TrainMoveSpeed, 0)
EVT_CALL(PlaySound, SOUND_1FD)
EVT_KILL_THREAD(LVarE)
EVT_SET(MF_TrainMoving, FALSE)
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.0))
EVT_SET(LVar0, -425)
EVT_SET(LVar1, 45)
EVT_SET(LVar2, 20)
EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP)
EVT_CALL(PlayerJump, LVar0, LVar1, LVar2, 15)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_40 | NPC_FLAG_100, TRUE)
EVT_CALL(SetNpcSpeed, NPC_PARTNER, EVT_FLOAT(3.0))
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_JUMP)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_SET(LVar0, -410)
EVT_SET(LVar1, 45)
EVT_SET(LVar2, 20)
EVT_CALL(NpcMoveTo, NPC_PARTNER, LVar0, LVar2, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_KILL_THREAD(LVar9)
EVT_CALL(EnableNpcShadow, NPC_PARTNER, TRUE)
EVT_CALL(HidePlayerShadow, FALSE)
EVT_SET(MF_TrainArriveDoorOpen, TRUE)
EVT_WAIT(20)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -420, 20, 97)
EVT_CALL(SetPanTarget, CAM_DEFAULT, -420, 20, 97)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.0))
EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP)
EVT_CALL(PlayerJump, -420, 20, 97, 15)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(1.0))
EVT_CALL(NpcJump0, NPC_PARTNER, -406, 20, 71, 15)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_deilitk, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_kisya1, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_kisya2, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_kisya3, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_humikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_fumikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(DisablePlayerPhysics, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_SET(MF_TrainArrivePlayerDisembark, TRUE)
EVT_WAIT(20)
EVT_CALL(SpeakToPlayer, NPC_TrainStationToad_01, ANIM_TrainStationToad_White_Talk, ANIM_TrainStationToad_White_Idle, 0, MSG_MAC_Station_0005)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_40, FALSE)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_DepartForMtRugged) = {
EVT_IF_EQ(GF_MAC03_BombedRock, FALSE)
EVT_RETURN
EVT_END_IF
EVT_CALL(GetEntryID, LVar0)
EVT_IF_EQ(LVar0, mac_03_ENTRY_1)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_SET(MV_TrainMoveDist, 0)
EVT_SET(MV_TrainMoveSpeed, 0)
EVT_SET(MF_TrainReverseDir, FALSE)
EVT_SET(MF_TrainDepartDoorOpen, TRUE)
EVT_WAIT(20)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitk, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya1, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya2, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya3, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_humikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_fumikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(SetNpcFlagBits, NPC_TrainStationToad_01, NPC_FLAG_100, TRUE)
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(3.0))
EVT_CALL(PlayerMoveTo, -425, 70, 0)
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.0))
EVT_SET(LVar0, -425)
EVT_SET(LVar1, 45)
EVT_SET(LVar2, 20)
EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP)
EVT_CALL(PlayerJump, LVar0, LVar1, LVar2, 15)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE)
EVT_CALL(SetNpcSpeed, NPC_PARTNER, EVT_FLOAT(3.0))
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_JUMP)
EVT_CALL(NpcMoveTo, NPC_PARTNER, -425, 70, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(1.0))
EVT_SET(LVar0, -425)
EVT_SET(LVar1, 45)
EVT_SET(LVar2, 20)
EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10)
EVT_SET(MF_TrainDepartPlayerBoard, TRUE)
EVT_WAIT(20)
EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, -50)
EVT_CALL(SetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2)
EVT_CALL(EnableNpcShadow, NPC_PARTNER, FALSE)
EVT_CALL(HidePlayerShadow, TRUE)
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.0))
EVT_SET(LVar0, -425)
EVT_SET(LVar1, 75)
EVT_SET(LVar2, 20)
EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP)
EVT_CALL(PlayerJump, LVar0, LVar1, LVar2, 15)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_SET(MF_TrainMoving, TRUE)
EVT_CALL(SetNpcSpeed, NPC_PARTNER, EVT_FLOAT(3.0))
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_JUMP)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, -57)
EVT_ADD(LVar1, -31)
EVT_ADD(LVar2, 0)
EVT_CALL(NpcMoveTo, NPC_PARTNER, LVar0, LVar2, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0)
EVT_EXEC(N(EVS_UpdatePassengerPos))
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0)
EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(240.0))
EVT_CALL(SetCamPosB, CAM_DEFAULT, EVT_FLOAT(-100.0), EVT_FLOAT(-50.0))
EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(-2.5), EVT_FLOAT(-3.5))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(1)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, 100)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(SpeakToPlayer, NPC_TrainStationToad_02, ANIM_TrainStationToad_Talk, ANIM_TrainStationToad_Still, 5, MSG_MAC_Station_0009)
EVT_CALL(PlaySound, SOUND_82)
EVT_THREAD
EVT_LOOP(1000)
EVT_ADDF(MV_TrainMoveSpeed, EVT_FLOAT(0.03125))
EVT_IF_GT(MV_TrainMoveSpeed, 10)
EVT_SETF(MV_TrainMoveSpeed, EVT_FLOAT(10.0))
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_WAIT(40)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_EXEC_GET_TID(N(EVS_FollowTrainCamera), LVar9)
EVT_WAIT(170)
EVT_WAIT(100)
EVT_CALL(GotoMap, EVT_PTR("iwa_11"), iwa_11_ENTRY_0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_InitializeTrainScene) = {
EVT_CALL(SetModelFlags, MODEL_km, MODEL_FLAGS_USE_CAMERA_UNK_MATRIX, TRUE)
EVT_CALL(EnableModel, MODEL_km, FALSE)
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(0))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(1))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(2))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(3))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(4))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(5))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(6))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(7))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(8))
EVT_CALL(CloneModel, MODEL_km, CLONED_MODEL(9))
EVT_EXEC(N(EVS_AnimateTrain))
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,41 @@
#include "mac_03.h"
#include "entity.h"
EvtScript N(EVS_OnBlast_RailRock) = {
EVT_SET(GF_MAC03_BombedRock, TRUE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ReadSign) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_0175, 160, 40)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OnInspect_SignPost) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_0172, 160, 40)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(GetDemoState, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_IF_EQ(GF_MAC03_BombedRock, FALSE)
EVT_CALL(MakeEntity, EVT_PTR(Entity_BombableRock), -200, 0, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OnBlast_RailRock)))
EVT_END_IF
EVT_END_IF
EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenPanel), 525, 0, 175, 0, MODEL_o11, MAKE_ENTITY_END)
EVT_CALL(AssignPanelFlag, GF_MAC03_HiddenPanel)
EVT_CALL(MakeEntity, EVT_PTR(Entity_Signpost), 185, 20, -350, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_ReadSign)))
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_OnInspect_SignPost)), TRIGGER_WALL_PRESS_A, COLLIDER_sign, 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,124 @@
#include "mac_03.h"
#include "common/foliage.inc.c"
EvtScript N(Tree3_CallbackScript) = {
EVT_IF_EQ(GF_MAC03_UnlockedPlayroom, TRUE)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(GF_MAC03_UnlockedPlayroom, TRUE)
EVT_WAIT(10)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -128, 20, -555)
EVT_CALL(SetPanTarget, CAM_DEFAULT, -128, 20, -555)
EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(330.0))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, 3)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_WAIT(5)
EVT_CALL(PlaySoundWithVolume, SOUND_208E, 0)
EVT_CALL(EnableModel, MODEL_o241, TRUE)
EVT_SET(LVar0, -30)
EVT_LOOP(30)
EVT_ADD(LVar0, 1)
EVT_CALL(TranslateModel, MODEL_o241, 0, LVar0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(TranslateModel, MODEL_o241, 0, 0, 0)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_dokan, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_deilim, COLLIDER_FLAGS_UPPER_MASK)
EVT_WAIT(1)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(400.0))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o240);
FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o128);
FoliageVectorList N(Tree1_Effects) = {
.count = 2,
.vectors = {
{ 63.0f, 100.0f, -508.0f },
{ 103.0f, 100.0f, -518.0f },
}
};
ShakeTreeConfig N(ShakeTree_Tree1) = {
.leaves = &N(Tree1_LeafModels),
.trunk = &N(Tree1_TrunkModels),
.vectors = &N(Tree1_Effects),
};
BombTrigger N(BombPos_Tree1) = {
.pos = { 79.0f, 20.0f, -504.0f },
.radius = 0.0f
};
FoliageModelList N(Tree2_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o238);
FoliageModelList N(Tree2_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o130);
FoliageVectorList N(Tree2_Effects) = {
.count = 2,
.vectors = {
{ 538.0f, 100.0f, -293.0f },
{ 578.0f, 100.0f, -303.0f },
}
};
ShakeTreeConfig N(ShakeTree_Tree2) = {
.leaves = &N(Tree2_LeafModels),
.trunk = &N(Tree2_TrunkModels),
.vectors = &N(Tree2_Effects),
};
BombTrigger N(BombPos_Tree2) = {
.pos = { 554.0f, 20.0f, -289.0f },
.radius = 0.0f
};
FoliageModelList N(Tree3_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o239);
FoliageModelList N(Tree3_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o126);
FoliageVectorList N(Tree3_Effects) = {
.count = 2,
.vectors = {
{ -285.0f, 100.0f, -565.0f },
{ -245.0f, 80.0f, -555.0f },
}
};
ShakeTreeConfig N(ShakeTree_Tree3) = {
.leaves = &N(Tree3_LeafModels),
.trunk = &N(Tree3_TrunkModels),
.vectors = &N(Tree3_Effects),
.callback = &N(Tree3_CallbackScript),
};
//@bug x-position should be -265
BombTrigger N(BombPos_Tree3) = {
.pos = { 265.0f, 20.0f, -535.0f },
.radius = 0.0f
};
EvtScript N(EVS_SetupFoliage) = {
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree1)))
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o212, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree1)), 1, 0)
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree2)))
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o211, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree2)), 1, 0)
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree3)))
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_mgm_tree, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree3)), 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,671 @@
#include "mac_03.h"
#include "effects.h"
#define LIL_OINK_COIN_COST 10
typedef struct LilOinkReward {
/* 0x00 */ s32 itemID;
/* 0x04 */ s32 quantity;
/* 0x08 */ s32 chance;
} LilOinkReward; // size = 0x0C
#include "world/common/todo/GetFloorCollider.inc.c"
#include "world/common/todo/GetPlayerCoins.inc.c"
API_CALLABLE(N(DismissCoinCounter)) {
hide_coin_counter_immediately();
return ApiStatus_DONE2;
}
API_CALLABLE(N(GetRollingCapsulePosition)) {
// f32 angle = clamp_angle(EVT_FIXED_TO_FLOAT(script->varTable[2])); ? TODO
f32 angle = script->varTable[2] + EVT_FIXED_OFFSET;
angle = clamp_angle(angle * (1.0f / 1024.0f));
script->varTable[2] = 167.0f + (sin_deg(angle) * 110.0f);
script->varTable[3] = 85.0f;
script->varTable[4] = -343.75f - (cos_deg(angle) * 110.0f);
return ApiStatus_DONE2;
}
API_CALLABLE(N(LoadLilOinks)) {
s32 varBase = GB_MAC03_LilOink_00;
s32 numPigs = evt_get_variable(NULL, GB_MAC03_LilOinkCount);
EffectInstance* effect = fx_lil_oink(0, 0.0f, 0.0f, 0.0f, 0.0f, 0);
s32 i;
evt_set_variable(script, MV_LilOinkEffect, (s32) effect);
for (i = 0; i < numPigs; i++) {
effect->data.lilOink->type[i] = evt_get_variable(NULL, varBase + i);
effect->data.lilOink->x[i] = 300 + (i * 30);
effect->data.lilOink->y[i] = 20.0f;
effect->data.lilOink->z[i] = -180.0f;
effect->data.lilOink->rot[i] = 270.0f;
effect->data.lilOink->flags[i] |= LIL_OINK_FLAG_VISIBLE;
effect->data.lilOink->flags[i] |= LIL_OINK_FLAG_ANIM_CHANGED;
effect->data.lilOink->nextAnim[i] = LIL_OINK_ANIM_2;
}
return ApiStatus_DONE2;
}
API_CALLABLE(N(CreateLilOink)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 type = evt_get_variable(script, *args++);
f32 x = evt_get_variable(script, *args++);
f32 y = evt_get_variable(script, *args++);
f32 z = evt_get_variable(script, *args++);
s32 rot = evt_get_variable(script, *args++);
effect->data.lilOink->type[i] = type;
effect->data.lilOink->x[i] = x;
effect->data.lilOink->y[i] = y;
effect->data.lilOink->z[i] = z;
effect->data.lilOink->rot[i] = rot;
effect->data.lilOink->flags[i] |= LIL_OINK_FLAG_VISIBLE;
if (i != MAX_LIL_OINKS - 1) {
effect->data.lilOink->flags[i] |= LIL_OINK_FLAG_ANIM_CHANGED;
effect->data.lilOink->nextAnim[i] = LIL_OINK_ANIM_2;
evt_set_variable(script, i + GB_MAC03_LilOink_00, type);
}
return ApiStatus_DONE2;
}
API_CALLABLE(N(SetLilOinkPosition)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
f32 x = evt_get_variable(script, *args++);
f32 y = evt_get_variable(script, *args++);
f32 z = evt_get_variable(script, *args++);
s32 rot = evt_get_variable(script, *args++);
effect->data.lilOink->x[i] = x;
effect->data.lilOink->y[i] = y;
effect->data.lilOink->z[i] = z;
effect->data.lilOink->rot[i] = rot;
return ApiStatus_DONE2;
}
API_CALLABLE(N(GetLilOinkPosition)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 xOut = *args++;
s32 yOut = *args++;
s32 zOut = *args++;
s32 rotOut = *args++;
evt_set_variable(script, xOut, effect->data.lilOink->x[i]);
evt_set_variable(script, yOut, effect->data.lilOink->y[i]);
evt_set_variable(script, zOut, effect->data.lilOink->z[i]);
evt_set_variable(script, rotOut, effect->data.lilOink->rot[i]);
return ApiStatus_DONE2;
}
API_CALLABLE(N(HideLilOink)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
effect->data.lilOink->flags[i] &= ~LIL_OINK_FLAG_VISIBLE;
return ApiStatus_DONE2;
}
API_CALLABLE(N(SetLilOinkAnim)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
Bytecode* args = script->ptrReadPos;
s32 i = evt_get_variable(script, *args++);
s32 anim = evt_get_variable(script, *args++);
effect->data.lilOink->flags[i] |= LIL_OINK_FLAG_ANIM_CHANGED;
effect->data.lilOink->nextAnim[i] = anim;
return ApiStatus_DONE2;
}
API_CALLABLE(N(PopLilOinkList)) {
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, MV_LilOinkEffect);
s32 i;
for (i = 1; i < MAX_LIL_OINKS - 1; i++) {
s32 type = evt_get_variable(script, GB_MAC03_LilOink_00 + i);
f32 x, y, z, rot;
evt_set_variable(script, GB_MAC03_LilOinkCount + i, type);
x = effect->data.lilOink->x[i];
y = effect->data.lilOink->y[i];
z = effect->data.lilOink->z[i];
rot = effect->data.lilOink->rot[i];
effect->data.lilOink->type[i - 1] = type;
effect->data.lilOink->x[i - 1] = x;
effect->data.lilOink->y[i - 1] = y;
effect->data.lilOink->z[i - 1] = z;
effect->data.lilOink->rot[i - 1] = rot;
effect->data.lilOink->flags[i - 1] |= LIL_OINK_FLAG_VISIBLE;
}
effect->data.lilOink->flags[MAX_LIL_OINKS - 2] &= ~LIL_OINK_FLAG_VISIBLE;
evt_set_variable(script, GB_MAC03_LilOinkCount, 9);
return ApiStatus_DONE2;
}
EvtScript N(EVS_TurnCrank) = {
EVT_CALL(GetCurrentPartner, LVar0)
EVT_IF_EQ(LVar0, PARTNER_LAKILESTER)
EVT_RETURN
EVT_END_IF
EVT_SET(LVar0, 0)
EVT_LOOP(3)
EVT_CALL(RotateModel, MODEL_handle1, 3, -1, 0, 0)
EVT_WAIT(1)
EVT_CALL(RotateModel, MODEL_handle1, -3, -1, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_IF_EQ(MF_Unk_06, FALSE)
EVT_RETURN
EVT_END_IF
EVT_IF_NE(GB_MAC03_LilOinkCapsuleState, 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(N(GetPlayerCoins))
EVT_IF_LT(LVar0, LIL_OINK_COIN_COST)
EVT_CALL(PlaySound, SOUND_MENU_ERROR)
EVT_RETURN
EVT_END_IF
EVT_CALL(PlaySound, SOUND_208B)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET_GROUP(EVT_GROUP_00)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
EVT_CALL(AddCoin, -LIL_OINK_COIN_COST)
EVT_WAIT(20)
EVT_CALL(N(DismissCoinCounter))
EVT_SET(MF_Unk_06, FALSE)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 138, 25, -406)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 138, 25, -406)
EVT_CALL(SetCamPitch, CAM_DEFAULT, 15, -13)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(PlaySoundAt, SOUND_20A7, 0, 111, 89, -358)
EVT_SET(LVar0, 0)
EVT_LOOP(5)
EVT_ADD(LVar0, 6)
EVT_CALL(RotateModel, MODEL_handle1, LVar0, 0, 0, -1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_LOOP(30)
EVT_ADD(LVar0, 10)
EVT_CALL(RotateModel, MODEL_handle1, LVar0, 0, 0, -1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_LOOP(5)
EVT_ADD(LVar0, 6)
EVT_CALL(RotateModel, MODEL_handle1, LVar0, 0, 0, -1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_SETF(LVar0, EVT_FLOAT(1.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(0.2))
EVT_CALL(ScaleModel, MODEL_boo, LVar0, LVar0, LVar0)
EVT_WAIT(1)
EVT_SUBF(LVar0, EVT_FLOAT(0.2))
EVT_CALL(ScaleModel, MODEL_boo, LVar0, LVar0, LVar0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_SETF(LVar0, EVT_FLOAT(1.0))
EVT_LOOP(10)
EVT_SUBF(LVar0, EVT_FLOAT(0.04))
EVT_CALL(ScaleModel, MODEL_boo, 1, LVar0, 1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_WAIT(20)
EVT_LOOP(10)
EVT_ADDF(LVar0, EVT_FLOAT(0.08))
EVT_CALL(ScaleModel, MODEL_boo, 1, LVar0, 1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(PlaySoundAt, SOUND_20A8, 0, 134, 132, -399)
EVT_LOOP(5)
EVT_SUBF(LVar0, EVT_FLOAT(0.08))
EVT_CALL(ScaleModel, MODEL_boo, 1, LVar0, 1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(PlaySoundAt, SOUND_2095, 0, 170, 73, -450)
EVT_SET(GB_MAC03_LilOinkCapsuleState, 1)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 230, 20, -270)
EVT_CALL(SetCamPitch, CAM_DEFAULT, 15, -6)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(3.0))
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(EnableModel, MODEL_capsule, TRUE)
EVT_CALL(MakeLerp, 0, 900, 30, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(LVar2, LVar0)
EVT_DIVF(LVar2, 10)
EVT_CALL(N(GetRollingCapsulePosition))
EVT_CALL(SetNpcPos, NPC_Capsule, LVar2, LVar3, LVar4)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_LOOP(10)
EVT_ADD(LVar4, 5)
EVT_CALL(SetNpcPos, NPC_Capsule, LVar2, LVar3, LVar4)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcJumpscale, NPC_Capsule, 1)
EVT_CALL(NpcJump0, NPC_Capsule, LVar2, EVT_FLOAT(63.0), -273, 5)
EVT_CALL(PlaySoundAtNpc, NPC_Capsule, SOUND_2095, 0)
EVT_CALL(GetNpcPos, NPC_Capsule, LVar0, LVar1, LVar2)
EVT_CALL(NpcJump0, NPC_Capsule, LVar0, LVar1, LVar2, 10)
EVT_CALL(PlaySoundAtNpc, NPC_Capsule, SOUND_2095, 0)
EVT_CALL(NpcJump0, NPC_Capsule, LVar0, LVar1, LVar2, 5)
EVT_CALL(PlaySoundAtNpc, NPC_Capsule, SOUND_2095, 0)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_capsule, COLLIDER_FLAGS_UPPER_MASK)
EVT_WAIT(10)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_NORMAL)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_LilOinkExplanation) = {
EVT_SET_GROUP(EVT_GROUP_00)
EVT_CALL(SetNpcSpeed, NPC_Toad_03, EVT_FLOAT(4.0))
EVT_CALL(SetNpcAnimation, NPC_Toad_03, ANIM_Toad_Red_Run)
EVT_CALL(NpcMoveTo, NPC_Toad_03, 157, -310, 0)
EVT_CALL(SetNpcAnimation, NPC_Toad_03, ANIM_Toad_Red_Idle)
EVT_WAIT(10)
EVT_CALL(SpeakToPlayer, NPC_Toad_03, ANIM_Toad_Red_Talk, ANIM_Toad_Red_Idle, 0, MSG_MAC_Station_0053)
EVT_CALL(ShowChoice, MSG_Choice_000D)
EVT_IF_EQ(LVar0, 0)
EVT_SET(LVar0, MSG_MAC_Station_0056)
EVT_ELSE
EVT_SET(LVar0, MSG_MAC_Station_0055)
EVT_END_IF
EVT_CALL(ContinueSpeech, NPC_Toad_03, ANIM_Toad_Red_Talk, ANIM_Toad_Red_Idle, 0, LVar0)
EVT_WAIT(10)
EVT_SET(MF_Unk_08, TRUE)
EVT_CALL(SetNpcAnimation, NPC_Toad_03, ANIM_Toad_Red_Run)
EVT_CALL(NpcMoveTo, NPC_Toad_03, 220, -160, 0)
EVT_CALL(SetNpcAnimation, NPC_Toad_03, ANIM_Toad_Red_Idle)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_UseMachinePrompt) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(MF_Unk_08, FALSE)
EVT_EXEC(N(EVS_LilOinkExplanation))
EVT_CALL(GetCurrentPartner, LVar0)
EVT_IF_NE(LVar0, PARTNER_NONE)
EVT_CALL(InterruptUsePartner)
EVT_WAIT(10)
EVT_END_IF
EVT_CALL(PlayerMoveTo, 95, -365, 10)
EVT_END_IF
EVT_LOOP(0)
EVT_IF_NE(MF_Unk_08, FALSE)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(ShowCoinCounter, TRUE)
EVT_SET(MF_Unk_06, TRUE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_LABEL(0)
EVT_WAIT(1)
EVT_CALL(N(GetFloorCollider), LVar0)
EVT_IF_EQ(LVar0, COLLIDER_step)
EVT_GOTO(0)
EVT_END_IF
EVT_IF_EQ(LVar0, -1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(N(DismissCoinCounter))
EVT_SET(MF_Unk_06, FALSE)
EVT_RETURN
EVT_END
};
LilOinkReward N(LilOinkPrizes)[] = {
[LIL_OINK_TYPE_BLACK] { .itemID = ITEM_DRIED_SHROOM, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_WHITE] { .itemID = ITEM_SUPER_SHROOM, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_PINK] { .itemID = ITEM_FIRE_FLOWER, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_PIKACHU] { .itemID = ITEM_THUNDER_RAGE, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_SHROOM] { .itemID = ITEM_LIFE_SHROOM, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_FLOWER] { .itemID = ITEM_MAPLE_SYRUP, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_STAR] { .itemID = ITEM_SHOOTING_STAR, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_QUESTION] { .itemID = ITEM_REPEL_GEL, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_SILVER] { .itemID = ITEM_JAMMIN_JELLY, .quantity = 1, .chance = 100 },
[LIL_OINK_TYPE_GOLD] { .itemID = ITEM_ULTRA_SHROOM, .quantity = 1, .chance = 100 },
};
API_CALLABLE(N(GetLilOinkPrize)) {
Bytecode* args = script->ptrReadPos;
s32 oinkType = evt_get_variable(script, GB_MAC03_LilOink_00);
s32 itemID = *args++;
s32 quantity = *args++;
s32 chance = *args++;
LilOinkReward* reward = &N(LilOinkPrizes)[oinkType];
evt_set_variable(script, itemID, reward->itemID);
evt_set_variable(script, quantity, reward->quantity);
evt_set_variable(script, chance, reward->chance);
return ApiStatus_DONE2;
}
EvtScript N(EVS_SpawnLilOinkPrize) = {
EVT_CALL(N(GetLilOinkPrize), LVar4, LVar5, LVar6)
EVT_CALL(RandInt, 100, LVar7)
EVT_IF_GT(LVar7, LVar6)
EVT_RETURN
EVT_END_IF
EVT_CALL(GetNpcPos, NPC_LilOink_01, LVar1, LVar2, LVar3)
EVT_LOOP(LVar5)
EVT_CALL(MakeItemEntity, LVar4, LVar1, LVar2, LVar3, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OpenCapsule) = {
EVT_CALL(N(GetFloorCollider), LVar0)
EVT_IF_NE(LVar0, COLLIDER_hummer)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET_GROUP(EVT_GROUP_00)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
EVT_SET(MF_Unk_07, TRUE)
EVT_SETF(LVar0, EVT_FLOAT(1.0))
EVT_LOOP(5)
EVT_SUBF(LVar0, EVT_FLOAT(0.03))
EVT_CALL(ScaleModel, MODEL_capsule, 1, LVar0, 1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_LOOP(5)
EVT_ADDF(LVar0, EVT_FLOAT(0.03))
EVT_CALL(ScaleModel, MODEL_capsule, 1, LVar0, 1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(GetNpcPos, NPC_Capsule, LVar0, LVar1, LVar2)
EVT_SUB(LVar1, 10)
EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 1, 1, 1, 1)
EVT_CALL(EnableModel, MODEL_capsule, FALSE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_capsule, COLLIDER_FLAGS_UPPER_MASK)
EVT_SET(GB_MAC03_LilOinkCapsuleState, 2)
EVT_CALL(SetNpcPos, NPC_Capsule, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcYaw, NPC_Capsule, 90)
EVT_CALL(EnableNpcShadow, NPC_Capsule, TRUE)
EVT_CALL(RandInt, 100, LVar3)
EVT_SWITCH(LVar3)
EVT_CASE_LT(3)
EVT_SET(LVar3, LIL_OINK_TYPE_GOLD)
EVT_CASE_LT(12)
EVT_SET(LVar3, LIL_OINK_TYPE_SILVER)
EVT_CASE_LT(19)
EVT_SET(LVar3, LIL_OINK_TYPE_SHROOM)
EVT_CASE_LT(26)
EVT_SET(LVar3, LIL_OINK_TYPE_FLOWER)
EVT_CASE_LT(33)
EVT_SET(LVar3, LIL_OINK_TYPE_STAR)
EVT_CASE_LT(40)
EVT_SET(LVar3, LIL_OINK_TYPE_QUESTION)
EVT_CASE_LT(55)
EVT_SET(LVar3, LIL_OINK_TYPE_BLACK)
EVT_CASE_LT(70)
EVT_SET(LVar3, LIL_OINK_TYPE_WHITE)
EVT_CASE_LT(85)
EVT_SET(LVar3, LIL_OINK_TYPE_PINK)
EVT_CASE_DEFAULT
EVT_SET(LVar3, LIL_OINK_TYPE_PIKACHU)
EVT_END_SWITCH
EVT_CALL(PlaySoundAtNpc, NPC_Capsule, SOUND_TORNADO_JUMP, 0)
EVT_CALL(N(CreateLilOink), 10, LVar3, LVar0, LVar1, LVar2, 90)
EVT_WAIT(10)
EVT_IF_GE(GB_MAC03_LilOinkCount, 10)
EVT_SET(LVarA, LVar3)
EVT_CALL(GetNpcPos, NPC_LilOink_01, LVar0, LVar1, LVar2)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(10)
EVT_CALL(EnableNpcAI, NPC_LilOink_01, FALSE)
EVT_CALL(NpcFaceNpc, NPC_LilOink_01, NPC_Capsule, 0)
EVT_WAIT(10)
EVT_CALL(NpcJump0, NPC_LilOink_01, LVar0, LVar1, LVar2, 15)
EVT_EXEC(N(EVS_SpawnLilOinkPrize))
EVT_CALL(PlaySoundAtNpc, NPC_LilOink_01, SOUND_15E, 0)
EVT_CALL(SetNpcSpeed, NPC_LilOink_01, 4)
EVT_CALL(NpcMoveTo, NPC_LilOink_01, 580, -170, 0)
EVT_CALL(NpcJump0, NPC_LilOink_01, 620, 20, -170, 15)
EVT_CALL(EnableNpcShadow, NPC_LilOink_01, FALSE)
EVT_CALL(SetNpcSpeed, NPC_LilOink_01, 1)
EVT_CALL(EnableNpcAI, NPC_LilOink_01, TRUE)
EVT_CALL(N(PopLilOinkList))
EVT_SET(LVar0, 0)
EVT_SET(LVar1, NPC_LilOink_01)
EVT_SET(LVar6, GB_MAC03_LilOinkCount)
EVT_LOOP(LVar6)
EVT_CALL(N(GetLilOinkPosition), LVar0, LVar2, LVar3, LVar4, LVar5)
EVT_CALL(SetNpcPos, LVar1, LVar2, LVar3, LVar4)
EVT_CALL(SetNpcYaw, LVar1, LVar5)
EVT_ADD(LVar0, 1)
EVT_ADD(LVar1, 1)
EVT_END_LOOP
EVT_SET(LVar3, LVarA)
EVT_END_IF
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 360, 20, -165)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 360, 20, -165)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, 3)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_WAIT(10)
EVT_CALL(N(SetLilOinkAnim), 10, LIL_OINK_ANIM_2)
EVT_CALL(SetNpcJumpscale, NPC_Capsule, EVT_FLOAT(1.0))
EVT_CALL(NpcJump0, NPC_Capsule, 330, 20, -220, 20)
EVT_CALL(SetNpcSpeed, NPC_Capsule, EVT_FLOAT(4.0))
EVT_CALL(NpcMoveTo, NPC_Capsule, 360, -180, 0)
EVT_SET(GB_MAC03_LilOinkCapsuleState, 0)
EVT_CALL(EnableNpcShadow, NPC_Capsule, FALSE)
EVT_CALL(N(GetLilOinkPosition), 10, LVar0, LVar1, LVar2, LVar4)
EVT_CALL(N(HideLilOink), 10)
EVT_SET(LVar5, NPC_LilOink_01)
EVT_ADD(LVar5, GB_MAC03_LilOinkCount)
EVT_CALL(SetNpcPos, LVar5, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcYaw, LVar5, LVar4)
EVT_CALL(EnableNpcShadow, LVar5, TRUE)
EVT_CALL(N(CreateLilOink), GB_MAC03_LilOinkCount, LVar3, LVar0, LVar1, LVar2, LVar4)
EVT_ADD(GB_MAC03_LilOinkCount, 1)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(3.0))
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_NORMAL)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_LilOinkFlee) = {
EVT_SET(LVar1, NPC_LilOink_01)
EVT_ADD(LVar1, LVar0)
EVT_CALL(EnableNpcAI, LVar1, FALSE)
EVT_CALL(NpcFacePlayer, LVar1, 0)
EVT_WAIT(10)
EVT_CALL(GetNpcPos, LVar1, LVar2, LVar3, LVar4)
EVT_CALL(NpcJump0, LVar1, LVar2, LVar3, LVar4, 10)
EVT_CALL(PlaySoundAtNpc, LVar1, SOUND_15E, 0)
EVT_CALL(SetNpcSpeed, LVar1, 8)
EVT_CALL(NpcMoveTo, LVar1, 580, LVar4, 0)
EVT_CALL(NpcJump0, LVar1, 620, 20, LVar4, 15)
EVT_CALL(EnableNpcShadow, LVar1, FALSE)
EVT_CALL(SetNpcSpeed, LVar1, 1)
EVT_CALL(EnableNpcAI, LVar1, TRUE)
EVT_CALL(N(HideLilOink), LVar0)
EVT_SUB(GB_MAC03_LilOinkCount, 1)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_EnterPen) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(func_802D2C14, 1)
EVT_SET_GROUP(EVT_GROUP_00)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deili, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(PlaySoundAtCollider, COLLIDER_deili, SOUND_BASIC_DOOR_OPEN, 0)
EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_door, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlayerMoveTo, 370, -208, 15)
EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_door, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlaySoundAtCollider, COLLIDER_deili, SOUND_BASIC_DOOR_CLOSE, 0)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_deili, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_NORMAL)
EVT_CALL(func_802D2C14, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_IF_EQ(GB_MAC03_LilOinkCount, 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
EVT_SET(LVar0, GB_MAC03_LilOinkCount)
EVT_SET(LVar6, GB_MAC03_LilOinkCount)
EVT_LOOP(LVar6)
EVT_ADD(LVar0, -1)
EVT_EXEC(N(EVS_LilOinkFlee))
EVT_WAIT(5)
EVT_END_LOOP
EVT_LOOP(0)
EVT_IF_EQ(GB_MAC03_LilOinkCount, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_NORMAL)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitPen) = {
EVT_SET_GROUP(EVT_GROUP_00)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(func_802D2C14, 1)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deiliu, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(PlaySoundAtCollider, COLLIDER_deiliu, SOUND_BASIC_DOOR_OPEN, 0)
EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_door, LVar0, 0, -1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlayerMoveTo, 370, -328, 15)
EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_door, LVar0, 0, -1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlaySoundAtCollider, COLLIDER_deiliu, SOUND_BASIC_DOOR_CLOSE, 0)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_deiliu, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(func_802D2C14, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SyncLilOinkNpcPositions) = {
EVT_LOOP(0)
EVT_IF_NE(GB_MAC03_LilOinkCount, 0)
EVT_SET(LVar0, 0)
EVT_SET(LVar1, NPC_LilOink_01)
EVT_SET(LVar6, GB_MAC03_LilOinkCount)
EVT_LOOP(LVar6)
EVT_CALL(GetNpcPos, LVar1, LVar2, LVar3, LVar4)
EVT_CALL(GetNpcYaw, LVar1, LVar5)
EVT_CALL(N(SetLilOinkPosition), LVar0, LVar2, LVar3, LVar4, LVar5)
EVT_ADD(LVar0, 1)
EVT_ADD(LVar1, 1)
EVT_END_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtScript N(EVS_InitializeLilOinks) = {
EVT_IF_EQ(GB_MAC03_LilOinkCapsuleState, 1)
EVT_CALL(SetNpcPos, NPC_Capsule, 277, EVT_FLOAT(63.0), -273)
EVT_ELSE
EVT_CALL(EnableModel, MODEL_capsule, FALSE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_capsule, COLLIDER_FLAGS_UPPER_MASK)
EVT_END_IF
EVT_SET(MF_Unk_06, FALSE)
EVT_SET(MF_Unk_07, FALSE)
EVT_IF_EQ(GB_MAC03_LilOinkCount, 0)
EVT_SET(MF_Unk_08, FALSE)
EVT_ELSE
EVT_SET(MF_Unk_08, TRUE)
EVT_END_IF
EVT_CALL(N(LoadLilOinks))
EVT_IF_NE(GB_MAC03_LilOinkCount, 0)
EVT_SET(LVar0, 0)
EVT_SET(LVar1, NPC_LilOink_01)
EVT_SET(LVar6, GB_MAC03_LilOinkCount)
EVT_LOOP(LVar6)
EVT_CALL(N(GetLilOinkPosition), LVar0, LVar2, LVar3, LVar4, LVar5)
EVT_CALL(SetNpcPos, LVar1, LVar2, LVar3, LVar4)
EVT_CALL(SetNpcYaw, LVar1, LVar5)
EVT_ADD(LVar0, 1)
EVT_ADD(LVar1, 1)
EVT_END_LOOP
EVT_END_IF
EVT_EXEC(N(EVS_SyncLilOinkNpcPositions))
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_UseMachinePrompt)), TRIGGER_FLOOR_TOUCH, COLLIDER_step, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_TurnCrank)), TRIGGER_CEILING_TOUCH, COLLIDER_jump, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_OpenCapsule)), TRIGGER_WALL_HAMMER, COLLIDER_capsule, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_EnterPen)), TRIGGER_WALL_PRESS_A, COLLIDER_deili, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPen)), TRIGGER_WALL_PRESS_A, COLLIDER_deiliu, 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,152 @@
#include "mac_03.h"
EvtScript N(EVS_DemoFollowTrainCamera) = {
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_IF_GT(LVar0, 350)
EVT_SET(LVar0, 350)
EVT_END_IF
EVT_ADD(LVar0, 40)
EVT_SET(LVar1, 30)
EVT_ADD(LVar2, 40)
EVT_ELSE
EVT_IF_GT(LVar0, 350)
EVT_SET(LVar0, 350)
EVT_END_IF
EVT_ADD(LVar0, -40)
EVT_SET(LVar1, 30)
EVT_ADD(LVar2, 40)
EVT_END_IF
EVT_CALL(SetCamTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_DemoUpdatePassengerPos) = {
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE)
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_SET(LVar0, MV_TrainMoveDist)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar0, -425)
EVT_ELSE
EVT_ADD(LVar0, -335)
EVT_END_IF
EVT_SET(LVar3, LVar0)
EVT_SET(LVar4, LVar1)
EVT_SET(LVar5, LVar2)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar3, -57)
EVT_ELSE
EVT_ADD(LVar3, 57)
EVT_END_IF
EVT_ADD(LVar4, -31)
EVT_ADD(LVar5, 0)
EVT_CALL(SetNpcPos, NPC_PARTNER, LVar3, LVar4, LVar5)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar0, 0)
EVT_ELSE
EVT_ADD(LVar0, 0)
EVT_END_IF
EVT_ADD(LVar1, -6)
EVT_ADD(LVar2, -40)
EVT_CALL(SetNpcPos, NPC_TrainStationToad_02, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_DemoDepartForMtRugged) = {
EVT_CALL(EnableStatusMenu, FALSE)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_RUN)
EVT_SET(MV_TrainMoveDist, 0)
EVT_SET(MV_TrainMoveSpeed, 0)
EVT_SET(MF_TrainReverseDir, FALSE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitk, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya1, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya2, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_kisya3, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_humikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_fumikiri, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(EnableNpcShadow, NPC_PARTNER, FALSE)
EVT_CALL(HidePlayerShadow, TRUE)
EVT_CALL(SetPlayerPos, -425, 45, 20)
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_40 | NPC_FLAG_100, TRUE)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_SET(LVar0, -410)
EVT_SET(LVar1, 45)
EVT_SET(LVar2, 20)
EVT_CALL(SetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2)
EVT_CALL(InterpPlayerYaw, 90, 1)
EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0)
EVT_SET(MF_TrainMoving, TRUE)
EVT_EXEC(N(EVS_DemoUpdatePassengerPos))
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0)
EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(240.0))
EVT_CALL(SetCamPosB, CAM_DEFAULT, EVT_FLOAT(-100.0), EVT_FLOAT(-50.0))
EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(-2.5), EVT_FLOAT(-3.5))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(1)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, 100)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_THREAD
EVT_LOOP(1000)
EVT_ADDF(MV_TrainMoveSpeed, EVT_FLOAT(0.03125))
EVT_IF_GT(MV_TrainMoveSpeed, 10)
EVT_SETF(MV_TrainMoveSpeed, EVT_FLOAT(10.0))
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_WAIT(40)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_EXEC_GET_TID(N(EVS_DemoFollowTrainCamera), LVar9)
EVT_WAIT(180)
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
EVT_RETURN
EVT_END_IF
EVT_SET(GF_DemoSceneDone, TRUE)
EVT_CALL(GotoMapSpecial, EVT_PTR("mac_03"), mac_03_ENTRY_2, TRANSITION_2)
EVT_WAIT(110)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_MonitorDemoState) = {
EVT_WAIT(10)
EVT_LOOP(0)
EVT_CALL(GetDemoState, LVar0)
EVT_IF_EQ(LVar0, DEMO_STATE_CHANGE_MAP)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
EVT_RETURN
EVT_END_IF
EVT_SET(GF_DemoSceneDone, TRUE)
EVT_CALL(GotoMapSpecial, EVT_PTR("mac_03"), mac_03_ENTRY_2, TRANSITION_3)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_PlayDemoScene) = {
EVT_SET(GF_DemoSceneDone, FALSE)
EVT_EXEC(N(EVS_MonitorDemoState))
EVT_EXEC(N(EVS_DemoDepartForMtRugged))
EVT_RETURN
EVT_END
};

View File

@ -435,7 +435,7 @@ API_CALLABLE(N(RunMinigame)) {
case BOX_STATE_FUZZY_IDLE:
data->box[i].stateTimer--;
if (data->box[i].stateTimer <= 0) {
npc->currentAnim = ANIM_Fuzzy_Anim02;
npc->currentAnim = ANIM_Fuzzy_Walk;
data->box[i].state = BOX_STATE_FUZZY_POPUP;
sfx_play_sound_at_position(enemy->varTable[8], 0x100000, npc->pos.x, npc->pos.y, npc->pos.z);
get_model_center_and_size(data->box[i].modelID, &centerX, &centerY, &centerZ, &sizeX, &sizeY, &sizeZ);
@ -481,7 +481,7 @@ API_CALLABLE(N(RunMinigame)) {
sfx_play_sound(enemy->varTable[8]);
data->box[i].state = BOX_STATE_FUZZY_ATTACH;
gPlayerStatusPtr->anim = ANIM_Mario_CrouchStill;
npc->currentAnim = ANIM_Fuzzy_Anim03;
npc->currentAnim = ANIM_Fuzzy_Run;
get_model_center_and_size(data->box[i].modelID, &centerX, &centerY, &centerZ, &sizeX, &sizeY, &sizeZ);
npc->pos.x = centerX;
npc->pos.y = centerY;
@ -508,7 +508,7 @@ API_CALLABLE(N(RunMinigame)) {
gPlayerStatusPtr->anim = ANIM_Mario_CrouchStill;
npc->duration--;
if (npc->duration <= 0) {
npc->currentAnim = ANIM_Fuzzy_Anim0F;
npc->currentAnim = ANIM_Fuzzy_Stunned;
gPlayerStatusPtr->anim = ANIM_Mario_RunPanic;
data->mashProgress = 0;
npc->pos.x = gPlayerStatusPtr->position.x;
@ -534,7 +534,7 @@ API_CALLABLE(N(RunMinigame)) {
hud_element_set_script(data->hudElemID_AButton, &HES_AButton);
hud_element_set_alpha(data->hudElemID_AButton, 160);
hud_element_set_alpha(data->hudElemID_Meter, 160);
npc->currentAnim = ANIM_Fuzzy_Anim08;
npc->currentAnim = ANIM_Fuzzy_Hurt;
npc->pos.y += 3.0;
}
break;
@ -930,7 +930,7 @@ API_CALLABLE(N(CleanupGame)) {
if (data->box[i].state != BOX_STATE_FUZZY_END) {
data->box[i].state = BOX_STATE_FUZZY_END;
fx_emote(EMOTE_QUESTION, npc, 0.0f, npc->collisionHeight, 1.0f, 2.0f, 0.0f, 30, &writeback);
npc->currentAnim = ANIM_Fuzzy_Anim0E;
npc->currentAnim = ANIM_Fuzzy_Sleep;
enable_npc_shadow(npc);
}
break;
@ -1795,7 +1795,7 @@ StaticNpc N(NpcData_GuideToad) = {
};
EvtScript N(EVS_NpcInit_Fuzzy) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Fuzzy_Anim03)
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Fuzzy_Run)
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(GetSelfNpcID, LVar0)
EVT_SWITCH(LVar0)
@ -1879,22 +1879,22 @@ StaticNpc N(NpcData_Fuzzy_01) = {
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Fuzzy_Anim02,
.walk = ANIM_Fuzzy_Anim02,
.run = ANIM_Fuzzy_Anim03,
.chase = ANIM_Fuzzy_Anim03,
.anim_4 = ANIM_Fuzzy_Anim01,
.anim_5 = ANIM_Fuzzy_Anim01,
.death = ANIM_Fuzzy_Anim08,
.hit = ANIM_Fuzzy_Anim08,
.anim_8 = ANIM_Fuzzy_Anim03,
.anim_9 = ANIM_Fuzzy_Anim03,
.anim_A = ANIM_Fuzzy_Anim03,
.anim_B = ANIM_Fuzzy_Anim03,
.anim_C = ANIM_Fuzzy_Anim03,
.anim_D = ANIM_Fuzzy_Anim03,
.anim_E = ANIM_Fuzzy_Anim03,
.anim_F = ANIM_Fuzzy_Anim03,
.idle = ANIM_Fuzzy_Walk,
.walk = ANIM_Fuzzy_Walk,
.run = ANIM_Fuzzy_Run,
.chase = ANIM_Fuzzy_Run,
.anim_4 = ANIM_Fuzzy_Idle,
.anim_5 = ANIM_Fuzzy_Idle,
.death = ANIM_Fuzzy_Hurt,
.hit = ANIM_Fuzzy_Hurt,
.anim_8 = ANIM_Fuzzy_Run,
.anim_9 = ANIM_Fuzzy_Run,
.anim_A = ANIM_Fuzzy_Run,
.anim_B = ANIM_Fuzzy_Run,
.anim_C = ANIM_Fuzzy_Run,
.anim_D = ANIM_Fuzzy_Run,
.anim_E = ANIM_Fuzzy_Run,
.anim_F = ANIM_Fuzzy_Run,
},
.tattle = MSG_NpcTattle_MGM_SmashAttackGuide,
};
@ -1912,22 +1912,22 @@ StaticNpc N(NpcData_Fuzzy_02) = {
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Fuzzy_Anim02,
.walk = ANIM_Fuzzy_Anim02,
.run = ANIM_Fuzzy_Anim03,
.chase = ANIM_Fuzzy_Anim03,
.anim_4 = ANIM_Fuzzy_Anim01,
.anim_5 = ANIM_Fuzzy_Anim01,
.death = ANIM_Fuzzy_Anim08,
.hit = ANIM_Fuzzy_Anim08,
.anim_8 = ANIM_Fuzzy_Anim03,
.anim_9 = ANIM_Fuzzy_Anim03,
.anim_A = ANIM_Fuzzy_Anim03,
.anim_B = ANIM_Fuzzy_Anim03,
.anim_C = ANIM_Fuzzy_Anim03,
.anim_D = ANIM_Fuzzy_Anim03,
.anim_E = ANIM_Fuzzy_Anim03,
.anim_F = ANIM_Fuzzy_Anim03,
.idle = ANIM_Fuzzy_Walk,
.walk = ANIM_Fuzzy_Walk,
.run = ANIM_Fuzzy_Run,
.chase = ANIM_Fuzzy_Run,
.anim_4 = ANIM_Fuzzy_Idle,
.anim_5 = ANIM_Fuzzy_Idle,
.death = ANIM_Fuzzy_Hurt,
.hit = ANIM_Fuzzy_Hurt,
.anim_8 = ANIM_Fuzzy_Run,
.anim_9 = ANIM_Fuzzy_Run,
.anim_A = ANIM_Fuzzy_Run,
.anim_B = ANIM_Fuzzy_Run,
.anim_C = ANIM_Fuzzy_Run,
.anim_D = ANIM_Fuzzy_Run,
.anim_E = ANIM_Fuzzy_Run,
.anim_F = ANIM_Fuzzy_Run,
},
.tattle = MSG_NpcTattle_MGM_SmashAttackGuide,
};
@ -1945,22 +1945,22 @@ StaticNpc N(NpcData_Fuzzy_03) = {
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Fuzzy_Anim02,
.walk = ANIM_Fuzzy_Anim02,
.run = ANIM_Fuzzy_Anim03,
.chase = ANIM_Fuzzy_Anim03,
.anim_4 = ANIM_Fuzzy_Anim01,
.anim_5 = ANIM_Fuzzy_Anim01,
.death = ANIM_Fuzzy_Anim08,
.hit = ANIM_Fuzzy_Anim08,
.anim_8 = ANIM_Fuzzy_Anim03,
.anim_9 = ANIM_Fuzzy_Anim03,
.anim_A = ANIM_Fuzzy_Anim03,
.anim_B = ANIM_Fuzzy_Anim03,
.anim_C = ANIM_Fuzzy_Anim03,
.anim_D = ANIM_Fuzzy_Anim03,
.anim_E = ANIM_Fuzzy_Anim03,
.anim_F = ANIM_Fuzzy_Anim03,
.idle = ANIM_Fuzzy_Walk,
.walk = ANIM_Fuzzy_Walk,
.run = ANIM_Fuzzy_Run,
.chase = ANIM_Fuzzy_Run,
.anim_4 = ANIM_Fuzzy_Idle,
.anim_5 = ANIM_Fuzzy_Idle,
.death = ANIM_Fuzzy_Hurt,
.hit = ANIM_Fuzzy_Hurt,
.anim_8 = ANIM_Fuzzy_Run,
.anim_9 = ANIM_Fuzzy_Run,
.anim_A = ANIM_Fuzzy_Run,
.anim_B = ANIM_Fuzzy_Run,
.anim_C = ANIM_Fuzzy_Run,
.anim_D = ANIM_Fuzzy_Run,
.anim_E = ANIM_Fuzzy_Run,
.anim_F = ANIM_Fuzzy_Run,
},
.tattle = MSG_NpcTattle_MGM_SmashAttackGuide,
};
@ -1978,22 +1978,22 @@ StaticNpc N(NpcData_Fuzzy_04) = {
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Fuzzy_Anim02,
.walk = ANIM_Fuzzy_Anim02,
.run = ANIM_Fuzzy_Anim03,
.chase = ANIM_Fuzzy_Anim03,
.anim_4 = ANIM_Fuzzy_Anim01,
.anim_5 = ANIM_Fuzzy_Anim01,
.death = ANIM_Fuzzy_Anim08,
.hit = ANIM_Fuzzy_Anim08,
.anim_8 = ANIM_Fuzzy_Anim03,
.anim_9 = ANIM_Fuzzy_Anim03,
.anim_A = ANIM_Fuzzy_Anim03,
.anim_B = ANIM_Fuzzy_Anim03,
.anim_C = ANIM_Fuzzy_Anim03,
.anim_D = ANIM_Fuzzy_Anim03,
.anim_E = ANIM_Fuzzy_Anim03,
.anim_F = ANIM_Fuzzy_Anim03,
.idle = ANIM_Fuzzy_Walk,
.walk = ANIM_Fuzzy_Walk,
.run = ANIM_Fuzzy_Run,
.chase = ANIM_Fuzzy_Run,
.anim_4 = ANIM_Fuzzy_Idle,
.anim_5 = ANIM_Fuzzy_Idle,
.death = ANIM_Fuzzy_Hurt,
.hit = ANIM_Fuzzy_Hurt,
.anim_8 = ANIM_Fuzzy_Run,
.anim_9 = ANIM_Fuzzy_Run,
.anim_A = ANIM_Fuzzy_Run,
.anim_B = ANIM_Fuzzy_Run,
.anim_C = ANIM_Fuzzy_Run,
.anim_D = ANIM_Fuzzy_Run,
.anim_E = ANIM_Fuzzy_Run,
.anim_F = ANIM_Fuzzy_Run,
},
.tattle = MSG_NpcTattle_MGM_SmashAttackGuide,
};
@ -2011,22 +2011,22 @@ StaticNpc N(NpcData_Fuzzy_05) = {
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Fuzzy_Anim02,
.walk = ANIM_Fuzzy_Anim02,
.run = ANIM_Fuzzy_Anim03,
.chase = ANIM_Fuzzy_Anim03,
.anim_4 = ANIM_Fuzzy_Anim01,
.anim_5 = ANIM_Fuzzy_Anim01,
.death = ANIM_Fuzzy_Anim08,
.hit = ANIM_Fuzzy_Anim08,
.anim_8 = ANIM_Fuzzy_Anim03,
.anim_9 = ANIM_Fuzzy_Anim03,
.anim_A = ANIM_Fuzzy_Anim03,
.anim_B = ANIM_Fuzzy_Anim03,
.anim_C = ANIM_Fuzzy_Anim03,
.anim_D = ANIM_Fuzzy_Anim03,
.anim_E = ANIM_Fuzzy_Anim03,
.anim_F = ANIM_Fuzzy_Anim03,
.idle = ANIM_Fuzzy_Walk,
.walk = ANIM_Fuzzy_Walk,
.run = ANIM_Fuzzy_Run,
.chase = ANIM_Fuzzy_Run,
.anim_4 = ANIM_Fuzzy_Idle,
.anim_5 = ANIM_Fuzzy_Idle,
.death = ANIM_Fuzzy_Hurt,
.hit = ANIM_Fuzzy_Hurt,
.anim_8 = ANIM_Fuzzy_Run,
.anim_9 = ANIM_Fuzzy_Run,
.anim_A = ANIM_Fuzzy_Run,
.anim_B = ANIM_Fuzzy_Run,
.anim_C = ANIM_Fuzzy_Run,
.anim_D = ANIM_Fuzzy_Run,
.anim_E = ANIM_Fuzzy_Run,
.anim_F = ANIM_Fuzzy_Run,
},
.tattle = MSG_NpcTattle_MGM_SmashAttackGuide,
};

View File

@ -2,22 +2,29 @@
#define _WORLD_AREA_TIK_TIK_H_
enum {
AB_TIK_0 = AreaByte(0),
AB_TIK_1 = AreaByte(1),
AB_TIK_2 = AreaByte(2),
AB_TIK_3 = AreaByte(3),
AB_TIK_4 = AreaByte(4),
AB_TIK_5 = AreaByte(5),
AB_TIK_6 = AreaByte(6),
AB_TIK_7 = AreaByte(7),
AB_TIK_8 = AreaByte(8),
AB_TIK_9 = AreaByte(9),
AB_TIK_A = AreaByte(10),
AB_TIK_B = AreaByte(11),
AB_TIK_C = AreaByte(12),
AB_TIK_D = AreaByte(13),
AB_TIK_E = AreaByte(14),
AB_TIK_F = AreaByte(15),
AB_TIK_0 = AreaByte(0),
AB_TIK_1 = AreaByte(1),
AB_TIK_2 = AreaByte(2),
AB_TIK_3 = AreaByte(3),
AB_TIK_4 = AreaByte(4),
AB_TIK_5 = AreaByte(5),
AB_TIK_6 = AreaByte(6),
AB_TIK_7 = AreaByte(7),
AB_TIK_8 = AreaByte(8),
AB_TIK_9 = AreaByte(9),
AB_TIK_A = AreaByte(10),
AB_TIK_B = AreaByte(11),
AB_TIK_C = AreaByte(12),
AB_TIK_D = AreaByte(13),
AB_TIK_E = AreaByte(14),
AB_TIK_F = AreaByte(15),
};
enum {
AF_TIK_02 = AreaFlag(2),
AF_TIK_03 = AreaFlag(3),
AF_TIK_04 = AreaFlag(4),
AF_TIK_05 = AreaFlag(5),
};
#define AF_TIK(index) AreaFlag(index)
@ -45,4 +52,6 @@ extern MapSettings tik_23_settings;
extern MapSettings tik_24_settings;
extern MapSettings tik_25_settings;
s32 tik_24_map_init(void);
#endif

View File

@ -1,12 +0,0 @@
#include "tik_01.h"
static char* N(exit_str_0) = "tik_06";
static char* N(exit_str_1) = "tik_03";
static char* N(exit_str_2) = "kmr_02";
static char* N(exit_str_3) = "nok_02";
static char* N(exit_str_4) = "dro_01";
static char* N(exit_str_5) = "";
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/entity/Pipe.inc.c"

View File

@ -1,5 +0,0 @@
#include "tik_01.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
#include "world/common/todo/SetEntityPosition.inc.c"

View File

@ -1,12 +0,0 @@
#include "tik_01.h"
extern s16 D_80242B7E_86C02E[0][2];
ApiStatus func_80240A30_869EE0(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Enemy* enemy = script->owner1.enemy;
s32 index = evt_get_variable(script, *args++);
gCurrentEncounter.encounterList[enemy->encounterIndex]->battle = D_80242B7E_86C02E[index][0];
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,27 @@
/// @brief Toad Town Tunnels - Warp Zone 1 (B1)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_01_shape.h"
#include "mapfs/tik_01_hit.h"
enum {
NPC_Blooper = 0,
};
enum {
MV_Unk_01 = MapVar(1),
};
#define NAMESPACE tik_01
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_PlayBlooperSong);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SpawnSwitch);
extern EvtScript N(EVS_SetupDrips);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,16 @@
#include "tik_01.h"
EntryList N(Entrances) = {
[tik_01_ENTRY_0] { 320.0, -10.0, 0.0, 270.0 },
[tik_01_ENTRY_1] { -220.0, -10.0, 0.0, 90.0 },
[tik_01_ENTRY_2] { 150.0, 25.0, -82.0, 180.0 },
[tik_01_ENTRY_3] { 50.0, 25.0, -82.0, 180.0 },
[tik_01_ENTRY_4] { -50.0, 25.0, -82.0, 180.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_01 },
};

View File

@ -0,0 +1,13 @@
#include "tik_01.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_PlayBlooperSong) = {
EVT_CALL(SetMusicTrack, 0, SONG_BLOOPER_THEME, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,64 @@
#include "tik_01.h"
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/atomic/TexturePan.data.inc.c"
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_06_0) = EVT_EXIT_WALK(60, tik_01_ENTRY_0, "tik_06", tik_06_ENTRY_0);
EvtScript N(EVS_ExitWalk_tik_03_0) = EVT_EXIT_WALK(60, tik_01_ENTRY_1, "tik_03", tik_03_ENTRY_0);
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_03_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_06_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_01)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(PlaySound, SOUND_80000027)
EVT_CALL(EnableTexPanning, MODEL_nagare1, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
TEX_PAN_PARAMS_STEP( 50, 200, 110, 500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
TEX_PAN_PARAMS_STEP( 0, -200, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu2, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_3)
TEX_PAN_PARAMS_STEP( 0, -250, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_EXEC(N(EVS_SetupDrips))
EVT_CALL(GetEntryID, LVar0)
EVT_IF_LT(LVar0, tik_01_ENTRY_2)
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_ELSE
EVT_SET(LVarA, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(N(EVS_Pipe_EnterVertical))
EVT_END_IF
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,24 @@
#include "tik_01.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 1,
.volumes = {
{
.minPos = { -175, -65 },
.maxPos = { 485, 140 },
.startY = 200,
.endY = -10,
.duration = 60,
.density = 4,
}
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,88 @@
#include "tik_01.h"
#include "entity.h"
#include "world/common/todo/SetEntityPosition.inc.c"
EvtScript N(EVS_SpawnSwitch) = {
EVT_CALL(GetPlayerPos, LVar2, LVar3, LVar4)
EVT_ADD(LVar2, -75)
EVT_CALL(PlaySoundAt, SOUND_301, 0, LVar2, 200, 25)
EVT_CALL(MakeLerp, 200, -10, 25, EASING_QUADRATIC_IN)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(N(SetEntityPosition), MV_Unk_01, LVar2, LVar0, 25)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(PlaySoundAt, SOUND_48, 0, LVar2, LVar0, 25)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0))
EVT_WAIT(10)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SmashBlock) = {
EVT_SET(GF_TIK01_Hammer2Block, TRUE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o64, COLLIDER_FLAGS_UPPER_MASK)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_GotoMap_kmr_02_3) = {
EVT_CALL(GotoMap, EVT_PTR("kmr_02"), kmr_02_ENTRY_3)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_GotoMap_nok_02_2) = {
EVT_CALL(GotoMap, EVT_PTR("nok_02"), nok_02_ENTRY_2)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_GotoMap_dro_01_2) = {
EVT_CALL(GotoMap, EVT_PTR("dro_01"), dro_01_ENTRY_2)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OnSwitchActivate) = {
EVT_WAIT(10)
EVT_CALL(PlaySound, SOUND_208E)
EVT_SET(GF_TIK01_WarpPipes, TRUE)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtScript N(EVS_MakeEntities) = {
EVT_IF_EQ(GF_TIK01_Hammer2Block, FALSE)
EVT_CALL(MakeEntity, EVT_PTR(Entity_Hammer2Block), -240, -10, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_SmashBlock)))
EVT_ELSE
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o64, COLLIDER_FLAGS_UPPER_MASK)
EVT_END_IF
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o63, COLLIDER_FLAGS_UPPER_MASK)
EVT_IF_EQ(GF_TIK01_WarpPipes, FALSE)
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueSwitch), NPC_DISPOSE_LOCATION, 0, MAKE_ENTITY_END)
EVT_CALL(AssignSwitchFlag, EVT_INDEX_OF_AREA_FLAG(AF_TIK_03))
EVT_SET(MV_Unk_01, LVar0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_OnSwitchActivate)), TRIGGER_AREA_FLAG_SET, AF_TIK_03, 1, 0)
EVT_IF_EQ(GF_TIK01_Defeated_Blooper, TRUE)
EVT_CALL(N(SetEntityPosition), MV_Unk_01, 125, -10, 25)
EVT_END_IF
EVT_END_IF
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueWarpPipe), 150, -10, -82, 0, tik_01_ENTRY_2,
EVT_PTR(N(EVS_GotoMap_kmr_02_3)), EVT_INDEX_OF_GAME_FLAG(GF_TIK01_WarpPipes), MAKE_ENTITY_END)
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueWarpPipe), 50, -10, -82, 0, tik_01_ENTRY_3,
EVT_PTR(N(EVS_GotoMap_nok_02_2)), EVT_INDEX_OF_GAME_FLAG(GF_TIK01_WarpPipes), MAKE_ENTITY_END)
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueWarpPipe), -50, -10, -82, 0, tik_01_ENTRY_4,
EVT_PTR(N(EVS_GotoMap_dro_01_2)), EVT_INDEX_OF_GAME_FLAG(GF_TIK01_WarpPipes), MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,104 @@
#include "tik_01.h"
#include "world/common/enemy/complete/Blooper.inc.c"
EvtScript N(EVS_NpcIdle_Blooper) = {
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_IF_LT(LVar0, 200)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, TRUE)
EVT_EXEC(N(EVS_PlayBlooperSong))
EVT_CALL(ShowMessageAtScreenPos, MSG_MGM_0000, 160, 40)
EVT_WAIT(20)
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim01)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_ADD(LVar0, -75)
EVT_CALL(SetNpcPos, NPC_SELF, LVar0, 150, 0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3DC, 0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3E7, 0)
EVT_CALL(NpcFlyTo, NPC_SELF, LVar0, 0, 0, 10, 0, EASING_QUADRATIC_IN)
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim0C)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0))
EVT_WAIT(15)
EVT_CALL(StartBossBattle, SONG_SPECIAL_BATTLE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcDefeat_Blooper) = {
EVT_WAIT(5)
EVT_THREAD
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim04)
EVT_CALL(MakeLerp, 0, 6 * 360, 40, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, NPC_SELF, 0, LVar0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3DD, 0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3E7, 0)
EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2)
EVT_CALL(NpcFlyTo, NPC_SELF, LVar0, 150, 0, 15, 0, EASING_QUADRATIC_IN)
EVT_WAIT(5)
EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION)
EVT_WAIT(15)
EVT_EXEC_WAIT(N(EVS_SpawnSwitch))
EVT_IF_EQ(GF_TIK_DefeatedOneBlooper, FALSE)
EVT_SET(GF_TIK_DefeatedOneBlooper, TRUE)
EVT_ELSE
EVT_SET(GF_TIK_DefeatedTwoBloopers, TRUE)
EVT_END_IF
EVT_SET(GF_TIK01_Defeated_Blooper, TRUE)
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_Blooper) = {
EVT_IF_EQ(GF_TIK01_Defeated_Blooper, FALSE)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Blooper)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Blooper)))
EVT_IF_EQ(GF_TIK_DefeatedOneBlooper, FALSE)
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(0.75), EVT_FLOAT(0.75), EVT_FLOAT(0.75))
EVT_CALL(N(GetBlooperBattleID), 0)
EVT_ELSE
EVT_IF_EQ(GF_TIK_DefeatedTwoBloopers, FALSE)
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25))
EVT_CALL(N(GetBlooperBattleID), 1)
EVT_ELSE
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(2.0), EVT_FLOAT(2.0), EVT_FLOAT(2.0))
EVT_CALL(N(GetBlooperBattleID), 2)
EVT_END_IF
EVT_END_IF
EVT_ELSE
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(NpcData_Blooper) = {
.id = NPC_Blooper,
.settings = &N(NpcSettings_Blooper),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 90,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_800000,
.init = &N(EVS_NpcInit_Blooper),
.drops = BLOOPER_NO_DROPS,
.animations = BLOOPER_ANIMS,
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_Blooper), BTL_TIK2_FORMATION_00, BTL_TIK2_STAGE_00),
{}
};

View File

@ -1,7 +0,0 @@
#include "tik_02.h"
static char* N(exit_str_0) = "tik_18";
static char* N(exit_str_1) = "";
#include "world/common/atomic/TexturePan.inc.c"

View File

@ -1,9 +0,0 @@
#include "tik_02.h"
#include "world/common/todo/StashVars.inc.c"
#include "world/common/todo/GetItemName.inc.c"
#include "world/common/todo/SomeItemEntityFunc.inc.c"
#include "world/common/todo/IsItemBadge.inc.c"

View File

@ -1,14 +0,0 @@
#include "tik_02.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
extern s16 D_80241BAE_86E2EE[0][2]; // length unk
ApiStatus func_80240940_86D080(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Enemy* enemy = script->owner1.enemy;
s32 index = evt_get_variable(script, *args++);
gCurrentEncounter.encounterList[enemy->encounterIndex]->battle = D_80241BAE_86E2EE[index][0];
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,22 @@
/// @brief Toad Town Tunnels - Blooper Boss 1 (B1)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_02_shape.h"
#include "mapfs/tik_02_hit.h"
enum {
NPC_Blooper = 0,
};
#define NAMESPACE tik_02
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_PlayBlooperSong);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupDrips);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,12 @@
#include "tik_02.h"
EntryList N(Entrances) = {
[tik_02_ENTRY_0] { -360.0, -10.0, 0.0, 90.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_02 },
};

View File

@ -0,0 +1,13 @@
#include "tik_02.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_PlayBlooperSong) = {
EVT_CALL(SetMusicTrack, 0, SONG_BLOOPER_THEME, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,62 @@
#include "tik_02.h"
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/atomic/TexturePan.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_18_1) = EVT_EXIT_WALK(60, tik_02_ENTRY_0, "tik_18", tik_18_ENTRY_1);
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_18_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_02)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(PlaySound, SOUND_80000028)
EVT_CALL(PlaySoundAtF, SOUND_80000029, 1, -230, -180, 120)
EVT_CALL(PlaySoundAtF, SOUND_8000002A, 1, 20, -180, 120)
EVT_EXEC(N(EVS_SetupDrips))
EVT_CALL(EnableTexPanning, MODEL_nagare1, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
TEX_PAN_PARAMS_STEP( 50, 200, 110, 500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
TEX_PAN_PARAMS_STEP( 0, -200, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu2, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_3)
TEX_PAN_PARAMS_STEP( 0, -250, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_taki, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_4)
TEX_PAN_PARAMS_STEP( -50, -900, -70,-1200)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "tik_02.h"
#include "entity.h"
#include "world/common/atomic/Chest.inc.c"
EvtScript N(EVS_OpenChest) = EVT_OPEN_CHEST_BADGE(ITEM_SHRINK_STOMP, GF_TIK02_Chest_ShrinkStomp);
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 280, -10, 0, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignChestFlag, GF_TIK02_Chest_ShrinkStomp)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenChest)))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,32 @@
#include "tik_02.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 2,
.volumes = {
{
.minPos = { -374, -98 },
.maxPos = { 102, 158 },
.startY = 200,
.endY = -10,
.duration = 60,
.density = 2,
},
{
.minPos = { 66, -106 },
.maxPos = { 182, 152 },
.startY = 200,
.endY = -10,
.duration = 60,
.density = 2,
},
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,122 @@
#include "tik_02.h"
#include "world/common/enemy/complete/Blooper.inc.c"
EvtScript N(EVS_NpcIdle_Blooper) = {
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_IF_GT(LVar0, 65)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, TRUE)
EVT_EXEC(N(EVS_PlayBlooperSong))
EVT_CALL(ShowMessageAtScreenPos, MSG_MGM_0000, 160, 40)
EVT_THREAD
EVT_CALL(InterpPlayerYaw, 315, 0)
EVT_WAIT(50)
EVT_CALL(InterpPlayerYaw, 45, 0)
EVT_END_THREAD
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -25, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, -25, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_WAIT(20)
EVT_THREAD
EVT_WAIT(10)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 140, LVar1, LVar2)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_END_THREAD
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3DC, 0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3E7, 0)
EVT_CALL(SetNpcPos, NPC_SELF, -100, -300, -120)
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim01)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(1.0))
EVT_CALL(NpcJump0, NPC_SELF, 175, 0, 0, 40)
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim0C)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0))
EVT_WAIT(15)
EVT_CALL(StartBossBattle, SONG_SPECIAL_BATTLE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcDefeat_Blooper) = {
EVT_WAIT(5)
EVT_THREAD
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_END_THREAD
EVT_THREAD
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Blooper_Anim04)
EVT_CALL(MakeLerp, 0, 6 * 360, 40, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, NPC_SELF, 0, LVar0, 0)
EVT_CALL(PlayerFaceNpc, NPC_SELF, FALSE)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3DD, 0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_3E7, 0)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(1.0))
EVT_CALL(NpcJump0, NPC_SELF, -100, -300, -120, 40)
EVT_WAIT(1)
EVT_IF_EQ(GF_TIK_DefeatedOneBlooper, FALSE)
EVT_SET(GF_TIK_DefeatedOneBlooper, TRUE)
EVT_ELSE
EVT_SET(GF_TIK_DefeatedTwoBloopers, TRUE)
EVT_END_IF
EVT_SET(GF_TIK02_Defeated_Blooper, TRUE)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_Blooper) = {
EVT_IF_EQ(GF_TIK02_Defeated_Blooper, FALSE)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Blooper)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Blooper)))
EVT_IF_EQ(GF_TIK_DefeatedOneBlooper, FALSE)
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(0.75), EVT_FLOAT(0.75), EVT_FLOAT(0.75))
EVT_CALL(N(GetBlooperBattleID), 0)
EVT_ELSE
EVT_IF_EQ(GF_TIK_DefeatedTwoBloopers, FALSE)
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25))
EVT_CALL(N(GetBlooperBattleID), 1)
EVT_ELSE
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(2.0), EVT_FLOAT(2.0), EVT_FLOAT(2.0))
EVT_CALL(N(GetBlooperBattleID), 2)
EVT_END_IF
EVT_END_IF
EVT_ELSE
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(NpcData_Blooper) = {
.id = NPC_Blooper,
.settings = &N(NpcSettings_Blooper),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 90,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_800000,
.init = &N(EVS_NpcInit_Blooper),
.drops = BLOOPER_NO_DROPS,
.animations = BLOOPER_ANIMS,
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_Blooper), BTL_TIK2_FORMATION_00, BTL_TIK2_STAGE_00),
{}
};

View File

@ -1,11 +0,0 @@
#include "tik_03.h"
static char* N(exit_str_0) = "tik_01";
static char* N(exit_str_1) = "tik_04";
static char* N(exit_str_2) = "tik_03";
static char* N(exit_str_3) = "";
#include "world/common/entity/Pipe.inc.c"
#include "world/common/atomic/TexturePan.inc.c"

View File

@ -1,53 +0,0 @@
#include "tik_03.h"
#include "world/partners.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
extern s32 D_80242EBC_8719BC;
extern s32 D_80242930_871430[4];
ApiStatus func_80240960_86F460(Evt* script, s32 isInitialCall) {
PlayerStatus* player = &gPlayerStatus;
u32 i;
for (i = 0; i < ARRAY_COUNT(D_80242930_871430); i++) {
if (gCollisionStatus.currentFloor != D_80242930_871430[i]) {
continue;
}
if ((player->actionState == ACTION_STATE_SPIN_POUND) || (player->actionState == ACTION_STATE_TORNADO_POUND)) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}
ApiStatus func_802409C0_86F4C0(Evt* script, s32 isInitialCall) {
func_800EF300();
return ApiStatus_DONE2;
}
ApiStatus func_802409E0_86F4E0(Evt* script, s32 isInitialCall) {
PlayerStatus* player = &gPlayerStatus;
switch (D_80242EBC_8719BC) {
case 0:
D_80242EBC_8719BC = 1;
return ApiStatus_BLOCK;
case 1:
case 2:
D_80242EBC_8719BC++;
return ApiStatus_BLOCK;
case 3:
partner_clear_player_tracking(wPartnerNpc);
partner_set_goal_pos(player->position.x, player->position.z);
func_800EF3D4(0);
wPartnerNpc->yaw = 270.0f;
gPlayerStatus.targetYaw = 270.0f;
gPlayerStatus.currentYaw = 270.0f;
gPlayerStatus.spriteFacingAngle = 180.0f;
return ApiStatus_DONE2;
}
return ApiStatus_BLOCK;
}

View File

@ -2,8 +2,18 @@
/// @brief Toad Town Tunnels - Short Elevator Room (B1)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_03_shape.h"
#include "mapfs/tik_03_hit.h"
#define NAMESPACE tik_03
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupDrips);
extern EvtScript N(EVS_SetupPlatforms);
extern EvtScript N(EVS_PlayDemoScene);

View File

@ -0,0 +1,14 @@
#include "tik_03.h"
EntryList N(Entrances) = {
[tik_03_ENTRY_0] { 320.0, -10.0, 0.0, 270.0 },
[tik_03_ENTRY_1] { -215.0, 60.0, 0.0, 90.0 },
[tik_03_ENTRY_2] { 260.0, -10.0, 0.0, 270.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_03 },
};

View File

@ -0,0 +1,7 @@
#include "tik_03.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,92 @@
#include "tik_03.h"
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/atomic/TexturePan.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_01_1) = EVT_EXIT_WALK(60, tik_03_ENTRY_0, "tik_01", tik_01_ENTRY_1);
EvtScript N(EVS_GotoMap_tik_04_2) = {
EVT_CALL(GotoMap, EVT_PTR("tik_04"), tik_04_ENTRY_2)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitPipe_tik_04_2) = EVT_EXIT_PIPE_HORIZONTAL(tik_03_ENTRY_1, COLLIDER_o46, N(EVS_GotoMap_tik_04_2));
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_01_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPipe_tik_04_2)), TRIGGER_WALL_PUSH, COLLIDER_o46, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_EnterMap) = {
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(tik_03_ENTRY_1)
EVT_ENTER_PIPE_HORIZONTAL(COLLIDER_o46, N(EVS_BindExitTriggers))
EVT_CASE_DEFAULT
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_03)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupDrips))
EVT_CALL(EnableTexPanning, MODEL_nagare, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
TEX_PAN_PARAMS_STEP( 50, 200, 110, 500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
TEX_PAN_PARAMS_STEP( 0, -200, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_mizu2, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_3)
TEX_PAN_PARAMS_STEP( 0, -250, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_taki, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_4)
TEX_PAN_PARAMS_STEP( -50, -900, -70,-1200)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_EXEC(N(EVS_SetupPlatforms))
EVT_CALL(GetDemoState, LVar0)
EVT_IF_NE(LVar0, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPipe_tik_04_2)), TRIGGER_WALL_PUSH, COLLIDER_o46, 1, 0)
EVT_EXEC_WAIT(N(EVS_PlayDemoScene))
EVT_RETURN
EVT_END_IF
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(PlaySound, SOUND_8000002B)
EVT_CALL(PlaySoundAtF, SOUND_8000002C, 1, -10, -20, 120)
EVT_EXEC(N(EVS_EnterMap))
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,32 @@
#include "tik_03.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 2,
.volumes = {
{
.minPos = { 107, -95 },
.maxPos = { 208, 155 },
.startY = 200,
.endY = -10,
.duration = 60,
.density = 2,
},
{
.minPos = { -216, -90 },
.maxPos = { 82, 155 },
.startY = 270,
.endY = 60,
.duration = 60,
.density = 1,
}
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,96 @@
#include "tik_03.h"
s32 N(PlatformColliders)[] = {
COLLIDER_1,
COLLIDER_2,
COLLIDER_3,
COLLIDER_4,
};
API_CALLABLE(N(PausePlatformsDuringPound)) {
PlayerStatus* player = &gPlayerStatus;
u32 i;
for (i = 0; i < ARRAY_COUNT(N(PlatformColliders)); i++) {
if (gCollisionStatus.currentFloor != N(PlatformColliders)[i]) {
continue;
}
if ((player->actionState == ACTION_STATE_SPIN_POUND) || (player->actionState == ACTION_STATE_TORNADO_POUND)) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}
EvtScript N(EVS_UpdatePlatform) = {
EVT_SET_GROUP(EVT_GROUP_EF)
EVT_CALL(ParentColliderToModel, LVarB, LVarA)
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_SETF(LVarD, EVT_FLOAT(-300.0))
EVT_SUBF(LVarD, LVarC)
EVT_LABEL(0)
EVT_SETF(LVar1, LVarC)
EVT_SUBF(LVar0, EVT_FLOAT(80.0))
EVT_LABEL(1)
EVT_CALL(N(PausePlatformsDuringPound))
EVT_ADDF(LVar0, EVT_FLOAT(1.5))
EVT_ADDF(LVar1, EVT_FLOAT(1.5))
EVT_CALL(TranslateModel, LVarA, 0, LVar0, 0)
EVT_CALL(UpdateColliderTransform, LVarB)
EVT_WAIT(1)
EVT_IF_LT(LVar1, EVT_FLOAT(100.0))
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(TranslateModel, LVarA, 0, LVarD, 0)
EVT_SETF(LVar0, LVarD)
EVT_SETF(LVarC, EVT_FLOAT(-300.0))
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform1) = {
EVT_SET(LVarA, MODEL_erb)
EVT_SET(LVarB, COLLIDER_1)
EVT_SET(LVarC, 20)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform2) = {
EVT_SET(LVarA, MODEL_o40)
EVT_SET(LVarB, COLLIDER_3)
EVT_SET(LVarC, -80)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform3) = {
EVT_SET(LVarA, MODEL_o41)
EVT_SET(LVarB, COLLIDER_4)
EVT_SET(LVarC, -170)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform4) = {
EVT_SET(LVarA, MODEL_o39)
EVT_SET(LVarB, COLLIDER_2)
EVT_SET(LVarC, -270)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SetupPlatforms) = {
EVT_EXEC(N(EVS_CreatePlatform1))
EVT_EXEC(N(EVS_CreatePlatform2))
EVT_EXEC(N(EVS_CreatePlatform3))
EVT_EXEC(N(EVS_CreatePlatform4))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,13 @@
#include "tik_03.h"
#include "entity.h"
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 200, 50, -75, 0, ITEM_SNOWMAN_DOLL, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_TIK03_ItemBlock_SnowmanDoll)
EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 140, 50, -75, 0, ITEM_COIN, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_TIK03_ItemBlock_CoinA)
EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 260, 50, -75, 0, ITEM_COIN, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_TIK03_ItemBlock_CoinB)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,87 @@
#include "tik_03.h"
#include "world/partners.h"
API_CALLABLE(N(ChangePartnerFollowState)) {
func_800EF300();
return ApiStatus_DONE2;
}
EvtScript N(EVS_ProvideDemoInputs) = {
EVT_CALL(DemoJoystickXY, -85, -1)
EVT_WAIT(32)
EVT_CALL(DemoSetButtons, BUTTON_A)
EVT_WAIT(7)
EVT_CALL(DemoSetButtons, 0)
EVT_WAIT(20)
EVT_CALL(DemoSetButtons, BUTTON_A)
EVT_WAIT(30)
EVT_CALL(DemoSetButtons, 0)
EVT_WAIT(15)
EVT_CALL(N(ChangePartnerFollowState))
EVT_WAIT(15)
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
EVT_RETURN
EVT_END_IF
EVT_SET(GF_DemoSceneDone, TRUE)
EVT_CALL(GotoMapSpecial, EVT_PTR("tik_03"), tik_03_ENTRY_2, TRANSITION_2)
EVT_WAIT(110)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_MonitorDemoState) = {
EVT_WAIT(10)
EVT_LOOP(0)
EVT_CALL(GetDemoState, LVar0)
EVT_IF_EQ(LVar0, 2)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT(1)
EVT_END_LOOP
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
EVT_RETURN
EVT_END_IF
EVT_SET(GF_DemoSceneDone, TRUE)
EVT_CALL(GotoMapSpecial, EVT_PTR("tik_03"), tik_03_ENTRY_2, TRANSITION_3)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
s32 N(DemoSceneState) = {
0
};
API_CALLABLE(N(SetupDemoScene)) {
PlayerStatus* player = &gPlayerStatus;
switch (N(DemoSceneState)) {
case 0:
N(DemoSceneState) = 1;
break;
case 1:
case 2:
N(DemoSceneState)++;
break;
case 3:
partner_clear_player_tracking(wPartnerNpc);
partner_set_goal_pos(player->position.x, player->position.z);
func_800EF3D4(0);
wPartnerNpc->yaw = 270.0f;
gPlayerStatus.targetYaw = 270.0f;
gPlayerStatus.currentYaw = 270.0f;
gPlayerStatus.spriteFacingAngle = 180.0f;
return ApiStatus_DONE2;
}
return ApiStatus_BLOCK;
}
EvtScript N(EVS_PlayDemoScene) = {
EVT_CALL(N(SetupDemoScene))
EVT_SET(GF_DemoSceneDone, FALSE)
EVT_EXEC(N(EVS_MonitorDemoState))
EVT_EXEC(N(EVS_ProvideDemoInputs))
EVT_RETURN
EVT_END
};

View File

@ -1,10 +0,0 @@
#include "tik_04.h"
static char* N(exit_str_0) = "tik_05";
static char* N(exit_str_1) = "tik_07";
static char* N(exit_str_2) = "tik_03";
static char* N(exit_str_3) = "tik_12";
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/entity/Pipe.inc.c"

View File

@ -1,72 +0,0 @@
#include "tik_04.h"
#include "mapfs/tik_04_hit.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
ApiStatus func_80240960_872390(Evt* script, s32 isInitialCall) {
Model* model1;
Model* model2;
model1 = get_model_from_list_index(get_model_list_index_from_tree_index(0x12));
script->array[0] = create_shadow_type(1, model1->center.x, model1->center.y - 100.0f, model1->center.z);
model2 = get_model_from_list_index(get_model_list_index_from_tree_index(0x14));
script->array[1] = create_shadow_type(1, model2->center.x, model2->center.y - 100.0f, model2->center.z);
return ApiStatus_DONE2;
}
ApiStatus func_80240A00_872430(Evt* script, s32 isInitialCall) {
Model* model;
Shadow* shadow;
f32 x, y, z;
f32 hitYaw, hitPitch, hitLength;
shadow = get_shadow_by_index(script->array[0]);
model = get_model_from_list_index(get_model_list_index_from_tree_index(0x12));
x = model->center.x;
y = model->center.y;
z = model->center.z;
hitLength = 1000.0f;
entity_raycast_down(&x, &y, &z, &hitYaw, &hitPitch, &hitLength);
set_standard_shadow_scale(shadow, hitLength);
shadow->position.x = x;
shadow->position.y = y;
shadow->position.z = z;
shadow->rotation.x = hitYaw;
shadow->rotation.y = 0.0f;
shadow->rotation.z = hitPitch;
shadow->scale.x *= 4.5f;
shadow->scale.z *= 4.5f;
shadow = get_shadow_by_index(script->array[1]);
model = get_model_from_list_index(get_model_list_index_from_tree_index(0x14));
x = model->center.x;
y = model->center.y;
z = model->center.z;
hitLength = 1000.0f;
entity_raycast_down(&x, &y, &z, &hitYaw, &hitPitch, &hitLength);
set_standard_shadow_scale(shadow, hitLength);
shadow->position.x = x;
shadow->position.y = y;
shadow->position.z = z;
shadow->rotation.x = hitYaw;
shadow->rotation.y = 0.0f;
shadow->rotation.z = hitPitch;
shadow->scale.x *= 4.5f;
shadow->scale.z *= 4.5f;
return ApiStatus_DONE2;
}
#include "world/common/todo/GetFloorCollider.inc.c"
ApiStatus func_80240C20_872650(Evt* script, s32 isInitialCall) {
PlayerStatus* player = &gPlayerStatus;
if (gCollisionStatus.currentFloor == COLLIDER_erb1 || gCollisionStatus.currentFloor == COLLIDER_erb2) {
if (player->actionState == ACTION_STATE_SPIN_POUND || player->actionState == ACTION_STATE_TORNADO_POUND) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,26 @@
/// @brief Toad Town Tunnels - Scales Room (B2)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_04_shape.h"
#include "mapfs/tik_04_hit.h"
enum {
NPC_SpikedGoomba_01 = 0,
NPC_SpikedGoomba_02 = 1,
};
enum {
MV_Unk_00 = MapVar(0),
};
#define NAMESPACE tik_04
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_SetupDrips);
extern EvtScript N(EVS_SetupPlatforms);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,15 @@
#include "tik_04.h"
EntryList N(Entrances) = {
[tik_04_ENTRY_0] { -220.0, -10.0, 0.0, 90.0 },
[tik_04_ENTRY_1] { 320.0, -10.0, 0.0, 270.0 },
[tik_04_ENTRY_2] { -110.0, -10.0, -80.0, 270.0 },
[tik_04_ENTRY_3] { 268.0, -105.0, 94.0, 270.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_04 },
};

View File

@ -0,0 +1,7 @@
#include "tik_04.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,68 @@
#include "tik_04.h"
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/atomic/TexturePan.data.inc.c"
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_05_0) = EVT_EXIT_WALK(60, tik_04_ENTRY_0, "tik_05", tik_05_ENTRY_0);
EvtScript N(EVS_ExitWalk_tik_07_0) = EVT_EXIT_WALK(60, tik_04_ENTRY_1, "tik_07", tik_07_ENTRY_0);
EvtScript N(EVS_GotoMap_tik_03_1) = {
EVT_CALL(GotoMap, EVT_PTR("tik_03"), tik_03_ENTRY_1)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitPipe_tik_03_1) = EVT_EXIT_PIPE_HORIZONTAL(tik_04_ENTRY_2, COLLIDER_ttd, N(EVS_GotoMap_tik_03_1));
EvtScript N(EVS_GotoMap_tik_12_0) = {
EVT_CALL(GotoMap, EVT_PTR("tik_12"), tik_12_ENTRY_0)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitPipe_tik_12_0) = EVT_EXIT_PIPE_VERTICAL(tik_04_ENTRY_3, COLLIDER_ttd2, N(EVS_GotoMap_tik_12_0));
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_05_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_07_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPipe_tik_03_1)), TRIGGER_WALL_PUSH, COLLIDER_ttd, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitPipe_tik_12_0)), TRIGGER_FLOOR_TOUCH, COLLIDER_ttd2, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_04)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC(N(EVS_SetupMusic))
EVT_EXEC(N(EVS_SetupDrips))
EVT_CALL(EnableTexPanning, MODEL_mizu, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
TEX_PAN_PARAMS_STEP( 0, -200, -100, -500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_EXEC(N(EVS_SetupPlatforms))
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(tik_04_ENTRY_2)
EVT_ENTER_PIPE_HORIZONTAL(COLLIDER_ttd, N(EVS_BindExitTriggers))
EVT_CASE_EQ(tik_04_ENTRY_3)
EVT_ENTER_PIPE_VERTICAL(N(EVS_BindExitTriggers))
EVT_CASE_DEFAULT
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_END_SWITCH
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,32 @@
#include "tik_04.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 2,
.volumes = {
{
.minPos = { -230, -40 },
.maxPos = { 150, 80 },
.startY = 200,
.endY = -10,
.duration = 50,
.density = 1,
},
{
.minPos = { -50, 100 },
.maxPos = { 355, 37 },
.startY = 200,
.endY = -135,
.duration = 80,
.density = 2,
}
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,154 @@
#include "tik_04.h"
#include "model.h"
API_CALLABLE(N(CreatePlatformShadows)) {
Model* model;
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_erb1));
script->array[0] = create_shadow_type(1, model->center.x, model->center.y - 100.0f, model->center.z);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_erb2));
script->array[1] = create_shadow_type(1, model->center.x, model->center.y - 100.0f, model->center.z);
return ApiStatus_DONE2;
}
API_CALLABLE(N(UpdatePlatformShadows)) {
Model* model;
Shadow* shadow;
f32 x, y, z;
f32 hitYaw, hitPitch, hitLength;
shadow = get_shadow_by_index(script->array[0]);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_erb1));
x = model->center.x;
y = model->center.y;
z = model->center.z;
hitLength = 1000.0f;
entity_raycast_down(&x, &y, &z, &hitYaw, &hitPitch, &hitLength);
set_standard_shadow_scale(shadow, hitLength);
shadow->position.x = x;
shadow->position.y = y;
shadow->position.z = z;
shadow->rotation.x = hitYaw;
shadow->rotation.y = 0.0f;
shadow->rotation.z = hitPitch;
shadow->scale.x *= 4.5f;
shadow->scale.z *= 4.5f;
shadow = get_shadow_by_index(script->array[1]);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_erb2));
x = model->center.x;
y = model->center.y;
z = model->center.z;
hitLength = 1000.0f;
entity_raycast_down(&x, &y, &z, &hitYaw, &hitPitch, &hitLength);
set_standard_shadow_scale(shadow, hitLength);
shadow->position.x = x;
shadow->position.y = y;
shadow->position.z = z;
shadow->rotation.x = hitYaw;
shadow->rotation.y = 0.0f;
shadow->rotation.z = hitPitch;
shadow->scale.x *= 4.5f;
shadow->scale.z *= 4.5f;
return ApiStatus_DONE2;
}
API_CALLABLE(N(GetFloorCollider)) {
Bytecode* args = script->ptrReadPos;
s32 outVar = *args++;
evt_set_variable(script, outVar, gCollisionStatus.currentFloor);
return ApiStatus_DONE2;
}
API_CALLABLE(N(PausePlatformsDuringPound)) {
PlayerStatus* player = &gPlayerStatus;
if (gCollisionStatus.currentFloor == COLLIDER_erb1 || gCollisionStatus.currentFloor == COLLIDER_erb2) {
if (player->actionState == ACTION_STATE_SPIN_POUND || player->actionState == ACTION_STATE_TORNADO_POUND) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}
EvtScript N(EVS_UpdatePlatforms) = {
EVT_CALL(N(GetFloorCollider), LVarA)
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LABEL(0)
EVT_CALL(N(PausePlatformsDuringPound))
EVT_CALL(TranslateModel, LVar1, 10, LVar0, 0)
EVT_CALL(UpdateColliderTransform, LVar3)
EVT_SETF(LVar5, LVar0)
EVT_MULF(LVar5, EVT_FLOAT(-1.0))
EVT_ADDF(LVar5, EVT_FLOAT(30.0))
EVT_CALL(TranslateModel, LVar2, -10, LVar5, 0)
EVT_CALL(UpdateColliderTransform, LVar4)
EVT_SUBF(LVar0, EVT_FLOAT(0.5))
EVT_IF_LT(LVar0, EVT_FLOAT(-120.0))
EVT_ADDF(LVar0, EVT_FLOAT(0.5))
EVT_END_IF
EVT_USE_ARRAY(MV_Unk_00)
EVT_CALL(N(UpdatePlatformShadows))
EVT_WAIT(1)
EVT_CALL(N(GetFloorCollider), LVarB)
EVT_CALL(GetPlayerActionState, LVarC)
EVT_IF_EQ(LVarB, LVar3)
EVT_IF_NE(LVarC, ACTION_STATE_JUMP)
EVT_GOTO(0)
EVT_END_IF
EVT_END_IF
EVT_LABEL(1)
EVT_CALL(N(PausePlatformsDuringPound))
EVT_ADDF(LVar0, EVT_FLOAT(0.5))
EVT_CALL(TranslateModel, LVar1, 10, LVar0, 0)
EVT_CALL(UpdateColliderTransform, LVar3)
EVT_SETF(LVar5, LVar0)
EVT_MULF(LVar5, EVT_FLOAT(-1.0))
EVT_ADDF(LVar5, EVT_FLOAT(30.0))
EVT_CALL(TranslateModel, LVar2, -10, LVar5, 0)
EVT_CALL(UpdateColliderTransform, LVar4)
EVT_USE_ARRAY(MV_Unk_00)
EVT_CALL(N(UpdatePlatformShadows))
EVT_WAIT(1)
EVT_CALL(N(GetFloorCollider), LVarB)
EVT_CALL(GetPlayerActionState, LVarC)
EVT_IF_EQ(LVarB, LVar3)
EVT_IF_NE(LVarC, ACTION_STATE_JUMP)
EVT_GOTO(0)
EVT_END_IF
EVT_END_IF
EVT_IF_LT(LVar0, 0)
EVT_GOTO(1)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OnTouchPlatform) = {
EVT_SET(LVar1, MODEL_erb1)
EVT_SET(LVar2, MODEL_erb2)
EVT_SET(LVar3, COLLIDER_erb1)
EVT_SET(LVar4, COLLIDER_erb2)
EVT_EXEC_WAIT(N(EVS_UpdatePlatforms))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SetupPlatforms) = {
EVT_CALL(ParentColliderToModel, COLLIDER_erb1, MODEL_erb1)
EVT_CALL(ParentColliderToModel, COLLIDER_erb2, MODEL_erb2)
EVT_CALL(TranslateModel, MODEL_erb1, 10, 0, 0)
EVT_CALL(TranslateModel, MODEL_erb2, -10, 30, 0)
EVT_CALL(UpdateColliderTransform, COLLIDER_erb1)
EVT_CALL(UpdateColliderTransform, COLLIDER_erb2)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_OnTouchPlatform)), TRIGGER_FLOOR_TOUCH, COLLIDER_erb1, 1, 0)
EVT_MALLOC_ARRAY(2, MV_Unk_00)
EVT_USE_ARRAY(MV_Unk_00)
EVT_CALL(N(CreatePlatformShadows))
EVT_CALL(N(UpdatePlatformShadows))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,97 @@
#include "tik_04.h"
#include "world/common/enemy/complete/SpikedGloomba_Wander.inc.c"
EvtScript N(EVS_NpcIdle_SpikedGloomba) = {
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(tik_04_ENTRY_0)
EVT_CALL(SetNpcPos, NPC_SELF, 280, -10, 0)
EVT_CASE_EQ(tik_04_ENTRY_1)
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(EVS_NpcAI_SpikedGloomba_Wander)))
EVT_RETURN
EVT_CASE_EQ(tik_04_ENTRY_2)
EVT_CALL(SetNpcPos, NPC_SELF, 280, -10, 0)
EVT_CASE_EQ(tik_04_ENTRY_3)
EVT_CALL(SetNpcPos, NPC_SELF, 360, -10, 0)
EVT_END_SWITCH
EVT_LABEL(100)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_IF_LT(LVar0, -30)
EVT_WAIT(1)
EVT_GOTO(100)
EVT_END_IF
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_SpikedGoomba_Dark_Run)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_NO_AI, FALSE)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_GRAVITY, TRUE)
EVT_CALL(SetNpcSpeed, NPC_SELF, 2)
EVT_CALL(GetSelfNpcID, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_CALL(NpcMoveTo, NPC_SELF, 55, 0, 0)
EVT_ELSE
EVT_WAIT(14)
EVT_CALL(NpcMoveTo, NPC_SELF, 60, 0, 0)
EVT_END_IF
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_SpikedGoomba_Dark_Idle)
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(EVS_NpcAI_SpikedGloomba_Wander)))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_SpikedGloomba) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_SpikedGloomba)))
EVT_RETURN
EVT_END
};
StaticNpc N(NpcData_SpikedGloomba_01) = {
.id = NPC_SpikedGoomba_01,
.settings = &N(NpcSettings_SpikedGloomba_Wander),
.pos = { 40.0f, -135.0f, 10.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_400,
.init = &N(EVS_NpcInit_SpikedGloomba),
.drops = SPIKED_GLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = FALSE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 40, -135, 10 },
.wanderSize = { 30 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 40, -135, 10 },
.detectSize = { 200 },
}
},
.animations = SPIKED_GLOOMBA_ANIMS,
};
StaticNpc N(NpcData_SpikedGloomba_02) = {
.id = NPC_SpikedGoomba_02,
.settings = &N(NpcSettings_SpikedGloomba_Wander),
.pos = { 141.0f, -135.0f, 85.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_400,
.init = &N(EVS_NpcInit_SpikedGloomba),
.drops = SPIKED_GLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = FALSE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 141, -135, 85 },
.wanderSize = { 30 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 141, -135, 85 },
.detectSize = { 200 },
}
},
.animations = SPIKED_GLOOMBA_ANIMS,
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_SpikedGloomba_01), BTL_TIK_FORMATION_0F, BTL_TIK_STAGE_01),
NPC_GROUP(N(NpcData_SpikedGloomba_02), BTL_TIK_FORMATION_0E, BTL_TIK_STAGE_01),
{}
};

View File

@ -1,7 +0,0 @@
#include "tik_05.h"
static char* N(exit_str_0) = "tik_04";
static char* N(exit_str_1) = "";
#include "world/common/atomic/TexturePan.inc.c"

View File

@ -1,30 +0,0 @@
#include "tik_05.h"
#include "battle/battle.h"
#include "effects.h"
#include "functions.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
#include "world/common/todo/StashVars.inc.c"
#include "world/common/todo/GetItemName.inc.c"
#include "world/common/todo/SomeItemEntityFunc.inc.c"
#include "world/common/todo/IsItemBadge.inc.c"
extern s16 Entity_ScriptSpring_AnimLaunch[];
ApiStatus func_8024093C_8756FC(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Entity* entity = get_entity_by_index(evt_get_variable(script, *args++));
if (entity == NULL) {
return ApiStatus_BLOCK;
}
play_model_animation(entity->virtualModelIndex, Entity_ScriptSpring_AnimLaunch);
return ApiStatus_DONE2;
}
#include "world/common/todo/SetEntityPosition.inc.c"

View File

@ -2,8 +2,26 @@
/// @brief Toad Town Tunnels - Spring Room (B2)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_05_shape.h"
#include "mapfs/tik_05_hit.h"
enum {
NPC_SpikedGoomba_01 = 0,
NPC_SpikedGoomba_02 = 1,
};
enum {
MV_Unk_00 = MapVar(0),
};
#define NAMESPACE tik_05
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_SetupDrips);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,15 @@
#include "tik_05.h"
EntryList N(Entrances) = {
[tik_05_ENTRY_0] { 320.0, -10.0, 0.0, 270.0 },
[tik_05_ENTRY_1] { 100.0, 25.0, -82.0, 180.0 },
[tik_05_ENTRY_2] { 185.0, 25.0, -82.0, 180.0 },
[tik_05_ENTRY_3] { 270.0, 25.0, -82.0, 180.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_05 },
};

View File

@ -0,0 +1,7 @@
#include "tik_05.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,45 @@
#include "tik_05.h"
#include "world/common/atomic/TexturePan.inc.c"
#include "world/common/atomic/TexturePan.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_04_0) = EVT_EXIT_WALK(60, tik_05_ENTRY_0, "tik_04", tik_04_ENTRY_0);
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_04_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_05)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(PlaySound, SOUND_8000002D)
EVT_CALL(PlaySoundAtF, SOUND_8000002E, 1, -85, -20, 120)
EVT_EXEC(N(EVS_SetupDrips))
EVT_CALL(EnableTexPanning, MODEL_nagare, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
TEX_PAN_PARAMS_STEP( 50, 200, 110, 500)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, MODEL_taki, TRUE)
EVT_THREAD
TEX_PAN_PARAMS_ID(TEX_PANNER_4)
TEX_PAN_PARAMS_STEP( -50, -900, -70,-1200)
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
EVT_EXEC(N(EVS_UpdateTexturePan))
EVT_END_THREAD
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,24 @@
#include "tik_05.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 1,
.volumes = {
{
.minPos = { -21, -90 },
.maxPos = { 86, 156 },
.startY = 300,
.endY = -10,
.duration = 90,
.density = 2,
}
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,73 @@
#include "tik_05.h"
#include "entity.h"
#include "world/common/atomic/Chest.inc.c"
extern s16 Entity_ScriptSpring_AnimLaunch[];
API_CALLABLE(N(PlaySpringAnimation)) {
Bytecode* args = script->ptrReadPos;
Entity* entity = get_entity_by_index(evt_get_variable(script, *args++));
if (entity == NULL) {
return ApiStatus_BLOCK;
}
play_model_animation(entity->virtualModelIndex, Entity_ScriptSpring_AnimLaunch);
return ApiStatus_DONE2;
}
#include "world/common/todo/SetEntityPosition.inc.c"
EvtScript N(EVS_BreakBlock_DropSpring) = {
EVT_IF_EQ(GF_TIK05_SpringBrick, TRUE)
EVT_RETURN
EVT_END_IF
EVT_SET(GF_TIK05_SpringBrick, TRUE)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(LVar5, 25)
EVT_CALL(MakeLerp, 75, 105, 8, EASING_QUADRATIC_OUT)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(N(SetEntityPosition), MV_Unk_00, LVar5, LVar0, 0)
EVT_WAIT(1)
EVT_SUB(LVar5, 2)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(MakeLerp, LVar0, -10, 22, EASING_QUADRATIC_IN)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(N(SetEntityPosition), MV_Unk_00, LVar5, LVar0, 0)
EVT_WAIT(1)
EVT_SUB(LVar5, 2)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlaySoundAt, SOUND_48, 0, LVar5, LVar0, 0)
EVT_CALL(PlaySoundAt, SOUND_2086, 0, LVar5, LVar0, 0)
EVT_CALL(N(PlaySpringAnimation), MV_Unk_00)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OpenChest) = EVT_OPEN_CHEST_BADGE(ITEM_POWER_SMASH1, GF_TIK05_Chest_PowerSmash1);
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), -185, 60, -25, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignChestFlag, GF_TIK05_Chest_PowerSmash1)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenChest)))
EVT_CALL(MakeEntity, EVT_PTR(Entity_BrickBlock), 25, 50, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_BreakBlock_DropSpring)))
EVT_IF_EQ(GF_TIK05_SpringBrick, FALSE)
EVT_CALL(MakeEntity, EVT_PTR(Entity_SimpleSpring), 25, 75, 0, 0, 100, MAKE_ENTITY_END)
EVT_SET(MV_Unk_00, LVar0)
EVT_ELSE
EVT_CALL(MakeEntity, EVT_PTR(Entity_SimpleSpring), -35, -10, 0, 0, 100, MAKE_ENTITY_END)
EVT_END_IF
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,53 @@
#include "tik_05.h"
#include "world/common/enemy/complete/SpikedGloomba_Wander.inc.c"
StaticNpc N(NpcData_SpikedGloomba_01) = {
.id = NPC_SpikedGoomba_01,
.settings = &N(NpcSettings_SpikedGloomba_Wander),
.pos = { 220.0f, -10.0f, -80.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_2000,
.drops = SPIKED_GLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = TRUE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 220, -10, -80 },
.wanderSize = { 20 },
.detectShape = SHAPE_RECT,
.detectPos = { 160, 0, -20 },
.detectSize = { 180, 100 },
}
},
.animations = SPIKED_GLOOMBA_ANIMS,
};
StaticNpc N(NpcData_SpikedGloomba_02) = {
.id = NPC_SpikedGoomba_02,
.settings = &N(NpcSettings_SpikedGloomba_Wander),
.pos = { 130.0f, -10.0f, 45.0f },
.yaw = 90,
.flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_2000,
.drops = SPIKED_GLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = TRUE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 130, -10, 45 },
.wanderSize = { 20 },
.detectShape = SHAPE_RECT,
.detectPos = { 160, 0, -20 },
.detectSize = { 180, 100 },
}
},
.animations = SPIKED_GLOOMBA_ANIMS,
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_SpikedGloomba_01), BTL_TIK_FORMATION_10, BTL_TIK_STAGE_00),
NPC_GROUP(N(NpcData_SpikedGloomba_02), BTL_TIK_FORMATION_12, BTL_TIK_STAGE_00),
{}
};

View File

@ -1,8 +0,0 @@
#include "tik_07.h"
static char* N(exit_str_0) = "tik_04";
static char* N(exit_str_1) = "tik_07";
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/SuperBlock.inc.c"

View File

@ -1,22 +0,0 @@
#include "tik_07.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
extern s32 D_802449B0_87E590[4];
ApiStatus func_80241390_87AF70(Evt* script, s32 isInitialCall) {
PlayerStatus* player = &gPlayerStatus;
u32 i;
for (i = 0; i < ARRAY_COUNT(D_802449B0_87E590); i++) {
if (gCollisionStatus.currentFloor != D_802449B0_87E590[i]) {
continue;
}
if ((player->actionState == ACTION_STATE_SPIN_POUND) || (player->actionState == ACTION_STATE_TORNADO_POUND)) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}
#include "world/common/enemy/ai/FlyingAI.inc.c"

View File

@ -2,8 +2,27 @@
/// @brief Toad Town Tunnels - Elevator Attic Room (B2)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_07_shape.h"
#include "mapfs/tik_07_hit.h"
enum {
NPC_Paragoomba_01 = 0,
NPC_Paragoomba_02 = 1,
};
enum {
MV_SuperBlock = MapVar(0),
};
#define NAMESPACE tik_07
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_SetupPlatforms);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupDrips);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,14 @@
#include "tik_07.h"
EntryList N(Entrances) = {
[tik_07_ENTRY_0] { -270.0, -10.0, 0.0, 90.0 },
[tik_07_ENTRY_1] { -275.0, 90.0, -110.0, 180.0 },
[tik_07_ENTRY_2] { 525.0, 25.0, -100.0, 180.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_tik_07 },
};

View File

@ -0,0 +1,7 @@
#include "tik_07.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_TOAD_TOWN_TUNNELS, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,53 @@
#include "tik_07.h"
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"
EvtScript N(EVS_ExitWalk_tik_04_1) = EVT_EXIT_WALK(60, tik_07_ENTRY_0, "tik_04", tik_04_ENTRY_1);
EvtScript N(EVS_GotoMap_tik_07_2) = {
EVT_CALL(GotoMap, EVT_PTR("tik_07"), tik_07_ENTRY_2)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_GotoMap_tik_07_1) = {
EVT_CALL(GotoMap, EVT_PTR("tik_07"), tik_07_ENTRY_1)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitWalk_tik_07_2) = EVT_EXIT_PIPE_VERTICAL(tik_07_ENTRY_1, COLLIDER_dokan_e1, N(EVS_GotoMap_tik_07_2));
EvtScript N(EVS_ExitWalk_tik_07_1) = EVT_EXIT_PIPE_VERTICAL(tik_07_ENTRY_2, COLLIDER_dokan_e2, N(EVS_GotoMap_tik_07_1));
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_04_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_07_2)), TRIGGER_FLOOR_TOUCH, COLLIDER_dokan_e1, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_tik_07_1)), TRIGGER_FLOOR_TOUCH, COLLIDER_dokan_e2, 1, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN_TUNNELS)
EVT_CALL(SetSpriteShading, SHADING_TIK_07)
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs)))
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupMusic))
EVT_EXEC(N(EVS_SetupDrips))
EVT_EXEC(N(EVS_SetupPlatforms))
EVT_WAIT(1)
EVT_CALL(GetEntryID, LVar0)
EVT_IF_EQ(LVar0, tik_07_ENTRY_0)
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_ELSE
EVT_ENTER_PIPE_VERTICAL(N(EVS_BindExitTriggers))
EVT_END_IF
EVT_WAIT(1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "tik_07.h"
#include "entity.h"
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
#define SUPER_BLOCK_GAMEFLAG GF_TIK07_SuperBlock
#include "world/common/entity/SuperBlock.inc.c"
#include "world/common/entity/SuperBlock.data.inc.c"
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 306, 90, -104, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_TIK07_Item_StarPiece)
EVT_MAKE_SUPER_BLOCK(820, 70, -5, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,40 @@
#include "tik_07.h"
#include "world/common/atomic/tik_DripVolumes.inc.c"
DripVolumeList N(DripVolumes) = {
.count = 3,
.volumes = {
{
.minPos = { -264, -61 },
.maxPos = { 150, 188 },
.startY = 230,
.endY = -10,
.duration = 60,
.density = 2,
},
{
.minPos = { 31, -20 },
.maxPos = { 297, 156 },
.startY = 230,
.endY = -10,
.duration = 60,
.density = 2,
},
{
.minPos = { 108, -117 },
.maxPos = { 56, 43 },
.startY = 230,
.endY = 90,
.duration = 40,
.density = 1,
},
}
};
EvtScript N(EVS_SetupDrips) = {
EVT_SET(LVar0, EVT_PTR(N(DripVolumes)))
EVT_EXEC(N(EVS_CreateDripVolumes))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,96 @@
#include "tik_07.h"
s32 N(PlatformColliders)[] = {
COLLIDER_o31,
COLLIDER_o32,
COLLIDER_o33,
COLLIDER_o34,
};
API_CALLABLE(N(PausePlatformsDuringPound)) {
PlayerStatus* player = &gPlayerStatus;
u32 i;
for (i = 0; i < ARRAY_COUNT(N(PlatformColliders)); i++) {
if (gCollisionStatus.currentFloor != N(PlatformColliders)[i]) {
continue;
}
if ((player->actionState == ACTION_STATE_SPIN_POUND) || (player->actionState == ACTION_STATE_TORNADO_POUND)) {
return ApiStatus_BLOCK;
}
}
return ApiStatus_DONE2;
}
EvtScript N(EVS_UpdatePlatform) = {
EVT_SET_GROUP(EVT_GROUP_EF)
EVT_CALL(ParentColliderToModel, LVarB, LVarA)
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_SETF(LVarD, EVT_FLOAT(-90.0))
EVT_SUBF(LVarD, LVarC)
EVT_LABEL(0)
EVT_SETF(LVar1, LVarC)
EVT_LABEL(1)
EVT_CALL(N(PausePlatformsDuringPound))
EVT_ADDF(LVar0, EVT_FLOAT(1.5))
EVT_ADDF(LVar1, EVT_FLOAT(1.5))
EVT_CALL(TranslateModel, LVarA, 0, LVar0, 0)
EVT_CALL(UpdateColliderTransform, LVarB)
EVT_WAIT(1)
EVT_IF_LT(LVar1, EVT_FLOAT(310.0))
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(TranslateModel, LVarA, 0, LVarD, 0)
EVT_SETF(LVar0, LVarD)
EVT_SETF(LVarC, EVT_FLOAT(-90.0))
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform1) = {
EVT_SET(LVarA, MODEL_o32)
EVT_SET(LVarB, COLLIDER_o32)
EVT_SET(LVarC, 110)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform2) = {
EVT_SET(LVarA, MODEL_o31)
EVT_SET(LVarB, COLLIDER_o31)
EVT_SET(LVarC, 10)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform3) = {
EVT_SET(LVarA, MODEL_o33)
EVT_SET(LVarB, COLLIDER_o33)
EVT_SET(LVarC, -90)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_CreatePlatform4) = {
EVT_SET(LVarA, MODEL_o34)
EVT_SET(LVarB, COLLIDER_o34)
EVT_SET(LVarC, -190)
EVT_EXEC_WAIT(N(EVS_UpdatePlatform))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_SetupPlatforms) = {
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o48, COLLIDER_FLAGS_UPPER_MASK)
EVT_EXEC(N(EVS_CreatePlatform1))
EVT_EXEC(N(EVS_CreatePlatform2))
EVT_EXEC(N(EVS_CreatePlatform3))
EVT_EXEC(N(EVS_CreatePlatform4))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,53 @@
#include "tik_07.h"
#include "world/common/enemy/complete/Paragloomba_Wander.inc.c"
StaticNpc N(NpcData_Paragloomba_01) = {
.id = NPC_Paragoomba_01,
.settings = &N(NpcSettings_Paragloomba_Wander),
.pos = { 230.0f, 50.0f, 50.0f },
.yaw = 90,
.flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = PARAGLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = TRUE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 230, 50, 50 },
.wanderSize = { 20 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 230, 50, 50 },
.detectSize = { 150 },
}
},
.animations = PARAGLOOMBA_ANIMS,
};
StaticNpc N(NpcData_Paragloomba_02) = {
.id = NPC_Paragoomba_02,
.settings = &N(NpcSettings_Paragloomba_Wander),
.pos = { 535.0f, 50.0f, 20.0f },
.yaw = 90,
.flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = PARAGLOOMBA_DROPS,
.territory = {
.wander = {
.isFlying = TRUE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 535, 50, 20 },
.wanderSize = { 20 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 535, 50, 20 },
.detectSize = { 150 },
}
},
.animations = PARAGLOOMBA_ANIMS,
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_Paragloomba_01), BTL_TIK_FORMATION_0C, BTL_TIK_STAGE_01),
NPC_GROUP(N(NpcData_Paragloomba_02), BTL_TIK_FORMATION_0D, BTL_TIK_STAGE_01),
{}
};

View File

@ -1,11 +0,0 @@
#include "tik_08.h"
static char* N(exit_str_0) = "tik_09";
static char* N(exit_str_1) = "tik_20";
static char* N(exit_str_2) = "tik_06";
static char* N(exit_str_3) = "jan_03";
#include "world/common/entity/Pipe.inc.c"
#include "world/common/atomic/TexturePan.inc.c"

View File

@ -1,5 +0,0 @@
#include "tik_08.h"
#include "world/common/todo/CheckDripCollisionWithNPC.inc.c"
#include "world/common/todo/SetEntityPosition.inc.c"

View File

@ -1,14 +0,0 @@
#include "tik_08.h"
#include "world/common/todo/GetFloorCollider.inc.c"
extern s16 D_80242C0E_8819FE[0][2];
ApiStatus func_80240A5C_87F84C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Enemy* enemy = script->owner1.enemy;
s32 index = evt_get_variable(script, *args++);
gCurrentEncounter.encounterList[enemy->encounterIndex]->battle = D_80242C0E_8819FE[index][0];
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,27 @@
/// @brief Toad Town Tunnels - Second Level Entry (B2)
#include "common.h"
#include "../tik.h"
#include "message_ids.h"
#include "map.h"
#include "../tik.h"
#include "mapfs/tik_08_shape.h"
#include "mapfs/tik_08_hit.h"
enum {
NPC_Blooper = 0,
};
enum {
MV_BlueSwitch = MapVar(0),
};
#define NAMESPACE tik_08
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_PlayBlooperSong);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SpawnSwitch);
extern EvtScript N(EVS_SetupDrips);
extern NpcGroupList N(DefaultNPCs);

Some files were not shown because too many files have changed in this diff Show More