mirror of
https://github.com/pmret/papermario.git
synced 2024-11-23 21:59:46 +00:00
Disassemble TRD Part 1 Battle Map (#607)
This commit is contained in:
parent
64c0b7de02
commit
d684991270
@ -14,6 +14,7 @@
|
||||
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
|
||||
#define A(sym) NS(AREA, sym)
|
||||
#define N(sym) NS(NAMESPACE, sym)
|
||||
|
||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
@ -303,14 +303,18 @@ ApiStatus func_802535B4(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_80276EFC(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_802D7520(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_802D75D8(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_80273444(Evt *script, s32 isInitialCall);
|
||||
ApiStatus GetActionCommandMode(Evt*, s32);
|
||||
ApiStatus SetActionCommandMode(Evt*, s32);
|
||||
ApiStatus WaitForState(Evt*, s32);
|
||||
ApiStatus func_8026E020(Evt*, s32);
|
||||
ApiStatus GetActionResult(Evt*, s32);
|
||||
ApiStatus SetBattleState(Evt*, s32);
|
||||
ApiStatus func_8027D434(Evt*, s32);
|
||||
ApiStatus func_80273444(Evt* script, s32 isInitialCall);
|
||||
ApiStatus GetActionCommandMode(Evt* script, s32 isInitialCall);
|
||||
ApiStatus SetActionCommandMode(Evt* script, s32 isInitialCall);
|
||||
ApiStatus WaitForState(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_8026E020(Evt* script, s32 isInitialCall);
|
||||
ApiStatus GetActionResult(Evt* script, s32 isInitialCall);
|
||||
ApiStatus SetBattleState(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_8027D434(Evt* script, s32 isInitialCall);
|
||||
ApiStatus PlayLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
||||
ApiStatus StopLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_8026ED20(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_8026EBF8(Evt* script, s32 isInitialCall);
|
||||
|
||||
extern EvtSource PlayerScriptDispatcher;
|
||||
extern EvtSource PeachScriptDispatcher;
|
||||
|
@ -1,612 +1,5 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/koopa_troopa.h"
|
||||
|
||||
#define NAMESPACE b_area_nok_koopa_troopa
|
||||
|
||||
s32 N(defenseTable_8021FEE0)[] = {
|
||||
ELEMENT_NORMAL, 1,
|
||||
ELEMENT_HAMMER, 1,
|
||||
ELEMENT_JUMP, 1,
|
||||
ELEMENT_WATER, 1,
|
||||
ELEMENT_BLAST, 1,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(defenseTable_8021FF0C)[] = {
|
||||
ELEMENT_NORMAL, 0,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_8021FF18)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 90,
|
||||
STATUS_POISON, 60,
|
||||
STATUS_FROZEN, 100,
|
||||
STATUS_DIZZY, 90,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 80,
|
||||
STATUS_PARALYZE, 90,
|
||||
STATUS_SHRINK, 90,
|
||||
STATUS_STOP, 100,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 0,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 1,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern s32 N(idleAnimations_80220010)[];
|
||||
|
||||
ActorPartDesc N(partsTable_8021FFC4)[] = {
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { -2, 36 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_80220010),
|
||||
.defenseTable = N(defenseTable_8021FEE0),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 249,
|
||||
},
|
||||
};
|
||||
|
||||
extern EvtSource N(init_802200F4);
|
||||
|
||||
ActorDesc NAMESPACE = {
|
||||
.flags = 0,
|
||||
.type = ACTOR_TYPE_KOOPA_TROOPA,
|
||||
.level = 6,
|
||||
.maxHP = 4,
|
||||
.partCount = ARRAY_COUNT(N(partsTable_8021FFC4)),
|
||||
.partsData = N(partsTable_8021FFC4),
|
||||
.script = N(init_802200F4),
|
||||
.statusTable = N(statusTable_8021FF18),
|
||||
.escapeChance = 70,
|
||||
.airLiftChance = 90,
|
||||
.spookChance = 90,
|
||||
.baseStatusChance = 90,
|
||||
.upAndAwayChance = 95,
|
||||
.spinSmashReq = 0,
|
||||
.powerBounceChance = 100,
|
||||
.coinReward = 1,
|
||||
.size = { 28, 36 },
|
||||
.hpBarOffset = { 0, 0 },
|
||||
.statusIconOffset = { -15, 32 },
|
||||
.statusMessageOffset = { 5, 32 },
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_80220010)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_11,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_8022005C)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_11,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_802200A8)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_12,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_14,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_14,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern EvtSource N(takeTurn_8022131C);
|
||||
extern EvtSource N(idle_802202B0);
|
||||
extern EvtSource N(handleEvent_80220798);
|
||||
|
||||
EvtSource N(init_802200F4) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8022131C)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_802202B0)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_80220798)))
|
||||
EVT_CALL(SetActorVar, -127, 8, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
#include "common/UnkBattleFunc1.inc.c"
|
||||
|
||||
EvtSource N(80220158) = {
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_IF_FLAG(LW(1), 0x41000)
|
||||
EVT_CALL(SetTargetOffset, -127, 1, -5, 15)
|
||||
EVT_CALL(func_8027D4C8, -127, 1, 0, 0)
|
||||
EVT_CALL(N(UnkBattleFunc1), -10, 20, 10, 20)
|
||||
EVT_ELSE
|
||||
EVT_CALL(SetTargetOffset, -127, 1, -4, 32)
|
||||
EVT_CALL(func_8027D4C8, -127, 1, -1, -4)
|
||||
EVT_CALL(N(UnkBattleFunc1), -15, 32, 5, 32)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetTargetOffset, -127, 1, -5, 15)
|
||||
EVT_CALL(func_8027D4C8, -127, 1, 0, 0)
|
||||
EVT_CALL(N(UnkBattleFunc1), -10, 20, 10, 20)
|
||||
EVT_END_SWITCH
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_802202B0) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RandInt, 80, LW(10))
|
||||
EVT_ADD(LW(10), 80)
|
||||
EVT_LOOP(LW(10))
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(80220158))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FLOAT(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022005C)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80220010)))
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802200A8)))
|
||||
EVT_END_SWITCH
|
||||
EVT_LOOP(20)
|
||||
EVT_LABEL(2)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(80220158))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FLOAT(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022005C)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80220010)))
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802200A8)))
|
||||
EVT_END_SWITCH
|
||||
EVT_LOOP(80)
|
||||
EVT_LABEL(3)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(80220158))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(3)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(3)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(D_80220740)[] = {
|
||||
0x00000009, 0x00000010, 0x00000016, 0x0000001A, 0x0000001E, 0x00000020, 0x00000021, 0x00000020,
|
||||
0x0000001E, 0x0000001A, 0x00000016, 0x00000010, 0x00000009, 0x00000000, 0x00000004, 0x00000006,
|
||||
0x00000007, 0x00000006, 0x00000004, 0x00000000, 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_80220798) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(9)
|
||||
EVT_CASE_OR_EQ(10)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(14)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_C)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_CASE_EQ(36)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_C)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(11)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_CASE_EQ(33)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(13)
|
||||
EVT_CALL(SetActorVar, -127, 8, 1)
|
||||
EVT_CALL(SetActorVar, -127, 9, 2)
|
||||
EVT_CALL(SetDefenseTable, -127, 1, EVT_ADDR(N(defenseTable_8021FF0C)))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802200A8)))
|
||||
EVT_CALL(SetTargetOffset, -127, 1, -5, 15)
|
||||
EVT_CALL(func_8027D4C8, -127, 1, 0, 0)
|
||||
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(10))
|
||||
EVT_CALL(SetActorRotationOffset, -127, 0, 12, 0)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -75)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_USE_BUF(EVT_ADDR(N(D_80220740)))
|
||||
EVT_LOOP(22)
|
||||
EVT_BUF_READ1(LW(0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, LW(0), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(SetActorRotationOffset, -127, 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, NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_CASE_EQ(47)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoJumpBack)
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CASE_EQ(38)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_OR_EQ(23)
|
||||
EVT_CASE_OR_EQ(25)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_7)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
|
||||
EVT_IF_NOT_FLAG(LW(0), 0x35D000)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_END_IF
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(32)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(53)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetHomePos, -127, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_CASE_EQ(49)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(57)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(58)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(22)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(31)
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, -1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(takeTurn_8022131C) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(GetBattlePhase, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_6)
|
||||
EVT_ELSE
|
||||
EVT_CALL(GetActorVar, -127, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_CALL(GetActorVar, -127, 9, LW(0))
|
||||
EVT_SUB(LW(0), 1)
|
||||
EVT_IF_GT(LW(0), 0)
|
||||
EVT_CALL(SetActorVar, -127, 9, LW(0))
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(3.0))
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_ELSE
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(3.0))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(SetActorSounds, -127, 2, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_SET(LW(0), 0)
|
||||
EVT_CALL(SetActorRotationOffset, -127, 0, 12, 0)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_LOOP(5)
|
||||
EVT_ADD(LW(0), 15)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20BA)
|
||||
EVT_CALL(SetActorRotationOffset, -127, 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, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_CALL(SetActorVar, -127, 8, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80220010)))
|
||||
EVT_CALL(SetDefenseTable, -127, 1, EVT_ADDR(N(defenseTable_8021FEE0)))
|
||||
EVT_CALL(SetTargetOffset, -127, 1, -4, 32)
|
||||
EVT_CALL(func_8027D4C8, -127, 1, -1, -4)
|
||||
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 0)
|
||||
EVT_CALL(ResetActorSounds, -127, 2)
|
||||
EVT_END_IF
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_CALL(UseBattleCamPreset, 63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_7)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(1), 4)
|
||||
EVT_CALL(PlayEffect, 0x1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(PlayEffect, 0x1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(PlayEffect, 0x1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x2021)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_6)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20D3)
|
||||
EVT_CALL(SetActorSounds, -127, 0, 0, 0)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 1, 16)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(6)
|
||||
EVT_CASE_OR_EQ(5)
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
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(GetBattlePhase, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_CALL(UseBattleCamPreset, 5)
|
||||
EVT_CALL(SetBattleCamZoom, 300)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 20)
|
||||
EVT_CALL(MoveBattleCamOver, 10)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_IF_EQ(LW(10), 5)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_15)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(1), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_SUB(LW(1), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(SetPartYaw, -127, 1, 0)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, 32)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(0)
|
||||
EVT_CASE_OR_EQ(2)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(0), 40)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.80078125))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_SET_CONST(LW(0), 0x00000001)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
#include "battle/common/actor/koopa_troopa.inc.c"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,20 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1
|
||||
|
||||
typedef struct AreaTrdPart1Struct {
|
||||
/* 0x00 */ char unk_00[12];
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
} AreaTrdPart1Struct;
|
||||
|
||||
extern AreaTrdPart1Struct D_8021A4E8_4A3588;
|
||||
|
||||
ApiStatus func_80218000_4A10A0(Evt* script, s32 isInitialCall) {
|
||||
D_8021A4E8_4A3588.unk_0C = 1;
|
||||
D_8021A4E8_4A3588.unk_10 = script->owner1.actorID;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
#include "common/UnkBattleFunc1.inc.c"
|
@ -1,9 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1
|
||||
|
||||
#include "common/StartRumbleWithParams.inc.c"
|
||||
|
||||
#define NAMESPACE dup_b_area_trd_part_1
|
||||
#include "common/UnkBattleFunc1.inc.c"
|
||||
#define NAMESPACE b_area_trd_part_1
|
@ -1,5 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1
|
||||
|
||||
#include "common/UnkAngleFunc2.inc.c"
|
250
src/battle/area_trd_part_1/actor/bill_blaster.c
Normal file
250
src/battle/area_trd_part_1/actor/bill_blaster.c
Normal file
@ -0,0 +1,250 @@
|
||||
#include "common.h"
|
||||
#include "effects.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/bill_blaster.h"
|
||||
|
||||
#define AREA b_area_trd_part_1
|
||||
|
||||
#define NAMESPACE A(bill_blaster)
|
||||
|
||||
s32 N(defenseTable_80219D20)[] = {
|
||||
ELEMENT_NORMAL, 1,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_80219D2C)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 0,
|
||||
STATUS_POISON, 0,
|
||||
STATUS_FROZEN, 100,
|
||||
STATUS_DIZZY, 0,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 0,
|
||||
STATUS_PARALYZE, 0,
|
||||
STATUS_SHRINK, 50,
|
||||
STATUS_STOP, 0,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 0,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 0,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern s32 N(idleAnimations_80219E48)[];
|
||||
extern EvtSource N(init_80219E6C);
|
||||
|
||||
ActorPartDesc N(partsTable_80219DD8)[] = {
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { -6, 29 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_80219E48),
|
||||
.defenseTable = N(defenseTable_80219D20),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_0,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 247,
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_MULTI_TARGET | ACTOR_PART_FLAG_80000000,
|
||||
.index = 2,
|
||||
.posOffset = { 100, 0, 0 },
|
||||
.targetOffset = { -106, 29 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_80219E48),
|
||||
.defenseTable = N(defenseTable_80219D20),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_0,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 247,
|
||||
},
|
||||
};
|
||||
|
||||
ActorDesc NAMESPACE = {
|
||||
.flags = 0,
|
||||
.type = ACTOR_TYPE_BILL_BLASTER,
|
||||
.level = 10,
|
||||
.maxHP = 4,
|
||||
.partCount = ARRAY_COUNT(N(partsTable_80219DD8)),
|
||||
.partsData = N(partsTable_80219DD8),
|
||||
.script = N(init_80219E6C),
|
||||
.statusTable = N(statusTable_80219D2C),
|
||||
.escapeChance = 0,
|
||||
.airLiftChance = 20,
|
||||
.spookChance = 15,
|
||||
.baseStatusChance = 0,
|
||||
.upAndAwayChance = 95,
|
||||
.spinSmashReq = 4,
|
||||
.powerBounceChance = 100,
|
||||
.coinReward = 1,
|
||||
.size = { 55, 32 },
|
||||
.hpBarOffset = { 8, 0 },
|
||||
.statusIconOffset = { -24, 20 },
|
||||
.statusMessageOffset = { 5, 25 },
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_80219E48)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_bill_blaster_Palette_00_Anim_1,
|
||||
STATUS_STONE, NPC_ANIM_bill_blaster_Palette_00_Anim_0,
|
||||
STATUS_STOP, NPC_ANIM_bill_blaster_Palette_00_Anim_0,
|
||||
STATUS_PARALYZE, NPC_ANIM_bill_blaster_Palette_00_Anim_0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern EvtSource N(takeTurn_8021A200);
|
||||
extern EvtSource N(idle_80219ED0);
|
||||
extern EvtSource N(handleEvent_80219EE0);
|
||||
|
||||
EvtSource N(init_80219E6C) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8021A200)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_80219ED0)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_80219EE0)))
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_80219ED0) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_80219EE0) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
||||
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_BURN_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_SET_CONST(LW(2), -1)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_SET_CONST(LW(2), -1)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
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(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_1)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_1)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bill_blaster_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
extern EvtSource N(8021A2BC);
|
||||
extern EvtSource N(8021A470);
|
||||
|
||||
EvtSource N(takeTurn_8021A200) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_EXEC_WAIT(N(8021A2BC))
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_EXEC_WAIT(N(8021A470))
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
extern Formation N(specialFormation_8021A4E8);
|
||||
|
||||
ApiStatus func_80218000_4A10A0(Evt* script, s32 isInitialCall) {
|
||||
N(specialFormation_8021A4E8)[0].var0 = 1;
|
||||
N(specialFormation_8021A4E8)[0].var1 = script->owner1.actorID;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
|
||||
EvtSource N(8021A2BC) = {
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bill_blaster_Palette_00_Anim_2)
|
||||
EVT_WAIT_FRAMES(13)
|
||||
EVT_THREAD
|
||||
EVT_CALL(ShakeCam, 1, 0, 10, EVT_FLOAT(1.0))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(StartRumble, 9)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x2C8)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 33)
|
||||
EVT_ADD(LW(1), 19)
|
||||
EVT_ADD(LW(2), 3)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_00, LW(0), LW(1), LW(2), 2, 5, 0, 2, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_00, LW(0), LW(1), LW(2), 2, 5, 2, 2, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(func_80218000_4A10A0)
|
||||
EVT_CALL(SummonEnemy, EVT_ADDR(N(specialFormation_8021A4E8)), 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 0, LW(0))
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 1)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(8021A470) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LW(0))
|
||||
EVT_CALL(ActorExists, LW(0), LW(1))
|
||||
EVT_IF_EQ(LW(1), FALSE)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
extern ActorDesc A(bullet_bill);
|
||||
|
||||
Vec3i N(vector3D_8021A4DC) = { 0, -1000, 0, };
|
||||
|
||||
Formation N(specialFormation_8021A4E8) = {
|
||||
{ .actor = &A(bullet_bill), .home = { .vec = &N(vector3D_8021A4DC) }, .priority = 100 },
|
||||
};
|
692
src/battle/area_trd_part_1/actor/bob_omb.c
Normal file
692
src/battle/area_trd_part_1/actor/bob_omb.c
Normal file
@ -0,0 +1,692 @@
|
||||
#include "common.h"
|
||||
#include "effects.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/bob_omb.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_bob_omb
|
||||
|
||||
s32 N(idleAnimations_8021A510)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_bob_omb_Palette_00_Anim_2,
|
||||
STATUS_STONE, NPC_ANIM_bob_omb_Palette_00_Anim_0,
|
||||
STATUS_SLEEP, NPC_ANIM_bob_omb_Palette_00_Anim_18,
|
||||
STATUS_POISON, NPC_ANIM_bob_omb_Palette_00_Anim_4,
|
||||
STATUS_STOP, NPC_ANIM_bob_omb_Palette_00_Anim_0,
|
||||
STATUS_STATIC, NPC_ANIM_bob_omb_Palette_00_Anim_2,
|
||||
STATUS_PARALYZE, NPC_ANIM_bob_omb_Palette_00_Anim_0,
|
||||
STATUS_DIZZY, NPC_ANIM_bob_omb_Palette_00_Anim_1C,
|
||||
STATUS_FEAR, NPC_ANIM_bob_omb_Palette_00_Anim_1C,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_8021A55C)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_bob_omb_Palette_00_Anim_5,
|
||||
STATUS_STONE, NPC_ANIM_bob_omb_Palette_00_Anim_1,
|
||||
STATUS_SLEEP, NPC_ANIM_bob_omb_Palette_00_Anim_18,
|
||||
STATUS_POISON, NPC_ANIM_bob_omb_Palette_00_Anim_5,
|
||||
STATUS_STOP, NPC_ANIM_bob_omb_Palette_00_Anim_1,
|
||||
STATUS_STATIC, NPC_ANIM_bob_omb_Palette_00_Anim_3,
|
||||
STATUS_PARALYZE, NPC_ANIM_bob_omb_Palette_00_Anim_1,
|
||||
STATUS_DIZZY, NPC_ANIM_bob_omb_Palette_00_Anim_1D,
|
||||
STATUS_FEAR, NPC_ANIM_bob_omb_Palette_00_Anim_1D,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(defenseTable_8021A5A8)[] = {
|
||||
ELEMENT_NORMAL, 0,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_8021A5B4)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 75,
|
||||
STATUS_POISON, 0,
|
||||
STATUS_FROZEN, 100,
|
||||
STATUS_DIZZY, 80,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 0,
|
||||
STATUS_PARALYZE, 80,
|
||||
STATUS_SHRINK, 90,
|
||||
STATUS_STOP, 90,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 0,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 0,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_8021A660)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 0,
|
||||
STATUS_POISON, 0,
|
||||
STATUS_FROZEN, 0,
|
||||
STATUS_DIZZY, 40,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 0,
|
||||
STATUS_PARALYZE, 40,
|
||||
STATUS_SHRINK, 0,
|
||||
STATUS_STOP, 0,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 0,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 0,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
ActorPartDesc N(partsTable_8021A70C)[] = {
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_8021A510),
|
||||
.defenseTable = N(defenseTable_8021A5A8),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_EXPLOSIVE,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 247,
|
||||
},
|
||||
};
|
||||
|
||||
extern EvtSource N(init_8021A758);
|
||||
|
||||
ActorDesc NAMESPACE = {
|
||||
.flags = 0,
|
||||
.type = ACTOR_TYPE_BOB_OMB,
|
||||
.level = 6,
|
||||
.maxHP = 3,
|
||||
.partCount = ARRAY_COUNT(N(partsTable_8021A70C)),
|
||||
.partsData = N(partsTable_8021A70C),
|
||||
.script = N(init_8021A758),
|
||||
.statusTable = N(statusTable_8021A5B4),
|
||||
.escapeChance = 70,
|
||||
.airLiftChance = 90,
|
||||
.spookChance = 90,
|
||||
.baseStatusChance = 90,
|
||||
.upAndAwayChance = 95,
|
||||
.spinSmashReq = 0,
|
||||
.powerBounceChance = 100,
|
||||
.coinReward = 1,
|
||||
.size = { 34, 35 },
|
||||
.hpBarOffset = { 0, 0 },
|
||||
.statusIconOffset = { -10, 20 },
|
||||
.statusMessageOffset = { 10, 20 },
|
||||
};
|
||||
|
||||
extern EvtSource N(takeTurn_8021C89C);
|
||||
extern EvtSource N(idle_8021A7D4);
|
||||
extern EvtSource N(handleEvent_8021ACE8);
|
||||
|
||||
EvtSource N(init_8021A758) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8021C89C)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_8021A7D4)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8021ACE8)))
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_8021A7D4) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
extern EvtSource N(handleEvent_8021B4A8);
|
||||
|
||||
EvtSource N(ignite) = {
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
|
||||
EVT_IF_FLAG(LW(0), STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 1)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021A55C)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8021B4A8)))
|
||||
EVT_CALL(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_8000, 1)
|
||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_ADDR(N(statusTable_8021A660)))
|
||||
EVT_CALL(PlayLoopingSoundAtActor, ACTOR_SELF, 0, 0x80000001)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_5)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), 0, LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(func_8026ED20, ACTOR_SELF, 1, 1)
|
||||
EVT_CALL(func_8026EBF8, ACTOR_SELF, 1, 0, 2, 0, 10, 0, 10, 0, 0)
|
||||
EVT_CALL(func_8026EA7C, ACTOR_SELF, 1, 15)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(8021A9C8) = {
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8021ACE8)))
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021A510)))
|
||||
EVT_CALL(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_8000, 0)
|
||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_ADDR(N(statusTable_8021A5B4)))
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(2), 2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_06, 3, LW(0), LW(1), LW(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
||||
EVT_CALL(func_8026ED20, ACTOR_SELF, 1, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(8021AAE8) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
||||
EVT_CALL(func_8026ED20, ACTOR_SELF, 1, 0)
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(8021AB54) = {
|
||||
EVT_EXEC_WAIT(N(8021AAE8))
|
||||
EVT_CALL(StartRumble, 11)
|
||||
EVT_THREAD
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FLOAT(0.75))
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(3.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 10, EVT_FLOAT(4.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(3.0))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(2), 2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_17, 0, LW(0), LW(1), LW(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_ADD(LW(1), 20)
|
||||
EVT_ADD(LW(2), 2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_19, 0, LW(0), LW(1), LW(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_BOMB_BLAST)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_8021ACE8) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||
EVT_CALL(GetLastDamage, ACTOR_SELF, LW(0))
|
||||
EVT_IF_NE(LW(0), 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
|
||||
EVT_END_IF
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CASE_EQ(EVENT_HIT)
|
||||
EVT_CALL(GetLastElement, LW(14))
|
||||
EVT_IF_FLAG(LW(14), DAMAGE_TYPE_ELECTRIC)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CALL(GetLastDamage, ACTOR_SELF, LW(0))
|
||||
EVT_IF_NE(LW(0), 0)
|
||||
EVT_EXEC_WAIT(N(ignite))
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
||||
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_CALL(GetLastDamage, ACTOR_SELF, LW(0))
|
||||
EVT_IF_NE(LW(0), 0)
|
||||
EVT_EXEC_WAIT(N(ignite))
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_EXEC_WAIT(N(8021AAE8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_OR_EQ(EVENT_SHOCK_HIT)
|
||||
EVT_CASE_OR_EQ(EVENT_SHOCK_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_EXEC_WAIT(N(ignite))
|
||||
EVT_END_IF
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_DEATH)
|
||||
EVT_CALL(GetLastElement, LW(14))
|
||||
EVT_IF_FLAG(LW(14), DAMAGE_TYPE_ELECTRIC)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_EXEC_WAIT(N(8021AAE8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_EXPLODE_TRIGGER)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_1C)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_1C)
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_8021B4A8) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||
EVT_CALL(GetLastElement, LW(14))
|
||||
EVT_IF_FLAG(LW(14), DAMAGE_TYPE_WATER)
|
||||
EVT_EXEC_WAIT(N(8021A9C8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_F)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(EVENT_HIT)
|
||||
EVT_CALL(GetLastElement, LW(14))
|
||||
EVT_SWITCH(LW(14))
|
||||
EVT_CASE_FLAG(DAMAGE_TYPE_WATER)
|
||||
EVT_EXEC_WAIT(N(8021A9C8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CASE_FLAG(DAMAGE_TYPE_ELECTRIC)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_10)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_F)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CALL(GetLastDamage, ACTOR_SELF, LW(0))
|
||||
EVT_IF_GT(LW(0), 0)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_END_SWITCH
|
||||
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
||||
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
||||
EVT_CASE_OR_EQ(EVENT_SPIN_SMASH_HIT)
|
||||
EVT_CASE_OR_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||
EVT_CASE_OR_EQ(EVENT_EXPLODE_TRIGGER)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_DEATH)
|
||||
EVT_CALL(GetLastElement, LW(14))
|
||||
EVT_IF_FLAG(LW(14), DAMAGE_TYPE_WATER)
|
||||
EVT_EXEC_WAIT(N(8021A9C8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_ELSE
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_OR_EQ(EVENT_SHOCK_HIT)
|
||||
EVT_CASE_OR_EQ(EVENT_SHOCK_DEATH)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||
EVT_EXEC_WAIT(N(8021AAE8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_bob_omb_Palette_00_Anim_E)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_1D)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||
EVT_CALL(func_80269E80, LW(0))
|
||||
EVT_IF_EQ(LW(0), 20)
|
||||
EVT_EXEC_WAIT(N(8021A9C8))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_1C)
|
||||
EVT_ELSE
|
||||
EVT_CHILD_THREAD
|
||||
EVT_WAIT_FRAMES(100)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_1D)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_UP_AND_AWAY)
|
||||
EVT_EXEC_WAIT(N(8021A9C8))
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(tackleAttack) = {
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(AddGoalPos, ACTOR_SELF, 50, 0, 0)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 1, BS_FLAGS1_10)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 5)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.1005859375))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_1C)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 20)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 15)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_IF_EQ(LW(10), HIT_RESULT_LUCKY)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
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, NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(HIT_RESULT_HIT_STATIC)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.1005859375))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_14)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(GetActorSize, ACTOR_SELF, LW(3), LW(4))
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_4A, 0, LW(0), LW(1), LW(2), LW(4), LW(3), 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_HIT_SHOCK)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_BLAST, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||
EVT_RETURN
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.1005859375))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_QUAKE_IMMUNE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(0), 40)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.80078125))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_6)
|
||||
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, NPC_ANIM_bob_omb_Palette_00_Anim_2)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(blastAttack) = {
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_CALL(PlayLoopingSoundAtActor, ACTOR_SELF, 0, 0x80000001)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 1, BS_FLAGS1_10)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_7)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(AddGoalPos, ACTOR_SELF, 80, 0, 0)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(5.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, -1, 14, 0)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 90)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_7)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_IF_EQ(LW(10), HIT_RESULT_LUCKY)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), -1)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_7)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(AddGoalPos, ACTOR_SELF, 10, 0, 0)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(5.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_14)
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_SET(LW(10), 1)
|
||||
EVT_EXEC_WAIT(N(8021AB54))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bob_omb_Palette_00_Anim_11)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(takeTurn_8021C89C) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_EXEC_WAIT(N(tackleAttack))
|
||||
EVT_ELSE
|
||||
EVT_EXEC_WAIT(N(blastAttack))
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
305
src/battle/area_trd_part_1/actor/bullet_bill.c
Normal file
305
src/battle/area_trd_part_1/actor/bullet_bill.c
Normal file
@ -0,0 +1,305 @@
|
||||
#include "common.h"
|
||||
#include "effects.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/bullet_bill.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_bullet_bill
|
||||
|
||||
s32 N(defenseTable_80218F60)[] = {
|
||||
ELEMENT_NORMAL, 0,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_80218F6C)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 0,
|
||||
STATUS_POISON, 0,
|
||||
STATUS_FROZEN, 100,
|
||||
STATUS_DIZZY, 100,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 0,
|
||||
STATUS_PARALYZE, 0,
|
||||
STATUS_SHRINK, 100,
|
||||
STATUS_STOP, 0,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 1,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 0,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern s32 N(idleAnimations_80219064)[];
|
||||
extern EvtSource N(init_80219088);
|
||||
|
||||
ActorPartDesc N(partsTable_80219018)[] = {
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 16 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_80219064),
|
||||
.defenseTable = N(defenseTable_80218F60),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_400,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 250,
|
||||
},
|
||||
};
|
||||
|
||||
ActorDesc NAMESPACE = {
|
||||
.flags = ACTOR_FLAG_FLYING,
|
||||
.type = ACTOR_TYPE_BULLET_BILL,
|
||||
.level = 5,
|
||||
.maxHP = 2,
|
||||
.partCount = ARRAY_COUNT(N(partsTable_80219018)),
|
||||
.partsData = N(partsTable_80219018),
|
||||
.script = N(init_80219088),
|
||||
.statusTable = N(statusTable_80218F6C),
|
||||
.escapeChance = 50,
|
||||
.airLiftChance = 100,
|
||||
.spookChance = 100,
|
||||
.baseStatusChance = 0,
|
||||
.upAndAwayChance = 95,
|
||||
.spinSmashReq = 0,
|
||||
.powerBounceChance = 85,
|
||||
.coinReward = 0,
|
||||
.size = { 28, 22 },
|
||||
.hpBarOffset = { 0, 0 },
|
||||
.statusIconOffset = { -10, 20 },
|
||||
.statusMessageOffset = { 10, 20 },
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_80219064)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_bullet_bill_Palette_00_Anim_1,
|
||||
STATUS_STONE, NPC_ANIM_bullet_bill_Palette_00_Anim_0,
|
||||
STATUS_STOP, NPC_ANIM_bullet_bill_Palette_00_Anim_0,
|
||||
STATUS_PARALYZE, NPC_ANIM_bullet_bill_Palette_00_Anim_0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern EvtSource N(takeTurn_802197C0);
|
||||
extern EvtSource N(idle_80219380);
|
||||
extern EvtSource N(handleEvent_802193E8);
|
||||
|
||||
EvtSource N(init_80219088) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_802197C0)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_80219380)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_802193E8)))
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(1), 16)
|
||||
EVT_CALL(SetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(ForceHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_ELSE
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
|
||||
EVT_CALL(GetActorPos, LW(0), LW(1), LW(2), LW(3))
|
||||
EVT_CALL(GetStatusFlags, LW(0), LW(4))
|
||||
EVT_IF_FLAG(LW(4), STATUS_FLAG_SHRINK)
|
||||
EVT_SET(LW(5), -13)
|
||||
EVT_SET(LW(6), 4)
|
||||
EVT_ELSE
|
||||
EVT_SET(LW(5), -33)
|
||||
EVT_SET(LW(6), 11)
|
||||
EVT_END_IF
|
||||
EVT_ADD(LW(1), LW(5))
|
||||
EVT_ADD(LW(2), LW(6))
|
||||
EVT_CALL(SetActorPos, ACTOR_SELF, LW(1), LW(2), LW(3))
|
||||
EVT_CALL(CopyStatusEffects, LW(0), ACTOR_SELF)
|
||||
EVT_CALL(CopyBuffs, LW(0), ACTOR_SELF)
|
||||
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
|
||||
EVT_CALL(GetActorPos, LW(0), LW(1), LW(11), LW(12))
|
||||
EVT_SUB(LW(1), 90)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.0107421875))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bullet_bill_Palette_00_Anim_3)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(1), LW(2), LW(3))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bullet_bill_Palette_00_Anim_1)
|
||||
EVT_CALL(ForceHomePos, ACTOR_SELF, LW(1), LW(2), LW(3))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_80219380) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
extern EvtSource N(80219BE0);
|
||||
|
||||
EvtSource N(80219390) = {
|
||||
EVT_EXEC_WAIT(N(80219BE0))
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_7)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_802193E8) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CASE_EQ(EVENT_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_CASE_EQ(EVENT_BURN_HIT)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
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(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_1)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_EXPLODE_TRIGGER)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_1)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_5)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_EXEC_WAIT(N(80219390))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_3)
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(takeTurn_802197C0) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_bullet_bill_Palette_00_Anim_4)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(func_8024E664, 19)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 2, BS_FLAGS1_10)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SET(LW(3), LW(1))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
|
||||
EVT_SET(LW(1), LW(3))
|
||||
EVT_SUB(LW(0), 90)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.0107421875))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 18, FALSE, TRUE, FALSE)
|
||||
EVT_IF_EQ(LW(10), HIT_RESULT_LUCKY)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(func_8027D32C, ACTOR_SELF)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(RemoveActor, ACTOR_SELF)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SET(LW(3), LW(1))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
|
||||
EVT_SET(LW(1), LW(3))
|
||||
EVT_ADD(LW(0), 10)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.0107421875))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 12, FALSE, TRUE, FALSE)
|
||||
EVT_EXEC_WAIT(N(80219BE0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_bullet_bill_Palette_00_Anim_7)
|
||||
EVT_SET(LW(2), -12345)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80219BE0) = {
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(2), 2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_17, 0, LW(0), LW(1), LW(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_ADD(LW(1), 16)
|
||||
EVT_ADD(LW(2), 2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_3E, 0, LW(0), LW(1), LW(2), EVT_FLOAT(3.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x2078)
|
||||
EVT_CALL(StartRumble, 11)
|
||||
EVT_THREAD
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(1.0))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
5
src/battle/area_trd_part_1/actor/koopa_troopa.c
Normal file
5
src/battle/area_trd_part_1/actor/koopa_troopa.c
Normal file
@ -0,0 +1,5 @@
|
||||
#include "common.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_koopa_troopa
|
||||
|
||||
#include "battle/common/actor/koopa_troopa.inc.c"
|
5
src/battle/area_trd_part_1/actor/paratroopa.c
Normal file
5
src/battle/area_trd_part_1/actor/paratroopa.c
Normal file
@ -0,0 +1,5 @@
|
||||
#include "common.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_paratroopa
|
||||
|
||||
#include "battle/common/actor/paratroopa.inc.c"
|
235
src/battle/area_trd_part_1/area.c
Normal file
235
src/battle/area_trd_part_1/area.c
Normal file
@ -0,0 +1,235 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1
|
||||
|
||||
extern ActorDesc N(koopa_troopa);
|
||||
extern ActorDesc N(paratroopa);
|
||||
extern ActorDesc N(bob_omb);
|
||||
extern ActorDesc N(bill_blaster);
|
||||
extern ActorDesc N(bullet_bill);
|
||||
|
||||
extern Stage N(trd_00);
|
||||
extern Stage N(trd_01);
|
||||
extern Stage N(trd_02);
|
||||
extern Stage N(trd_02b);
|
||||
extern Stage N(trd_02c);
|
||||
extern Stage N(trd_02d);
|
||||
extern Stage N(trd_03);
|
||||
extern Stage N(trd_04);
|
||||
extern Stage N(trd_05);
|
||||
extern Stage N(trd_05b);
|
||||
extern Stage N(trd_05c);
|
||||
extern Stage N(trd_05d);
|
||||
extern Stage N(trd_05e);
|
||||
extern Stage N(trd_05f);
|
||||
|
||||
Formation N(formation_00) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 10 },
|
||||
};
|
||||
|
||||
Formation N(formation_01) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_02) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_03) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_04) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_05) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 3 }, .priority = 7 },
|
||||
};
|
||||
|
||||
Formation N(formation_06) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_07) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 3 }, .priority = 7 },
|
||||
};
|
||||
|
||||
Formation N(formation_08) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 5 }, .priority = 10 },
|
||||
{ .actor = &N(paratroopa), .home = { .index = 6 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_09) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 4 }, .priority = 10 },
|
||||
{ .actor = &N(paratroopa), .home = { .index = 5 }, .priority = 9 },
|
||||
{ .actor = &N(paratroopa), .home = { .index = 6 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_0A) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 5 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_0B) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 4 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(paratroopa), .home = { .index = 6 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_0C) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 4 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(paratroopa), .home = { .index = 6 }, .priority = 8 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 3 }, .priority = 7 },
|
||||
};
|
||||
|
||||
Formation N(formation_0D) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 4 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_0E) = {
|
||||
{ .actor = &N(paratroopa), .home = { .index = 4 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 3 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_0F) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 10 },
|
||||
};
|
||||
|
||||
Formation N(formation_10) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_11) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_12) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 3 }, .priority = 7 },
|
||||
};
|
||||
|
||||
Formation N(formation_13) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_14) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_15) = {
|
||||
{ .actor = &N(bob_omb), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Formation N(formation_16) = {
|
||||
{ .actor = &N(koopa_troopa), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bob_omb), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
Vec3i N(vector3D_80218B90) = { 50, 0, -20, };
|
||||
|
||||
Vec3i N(vector3D_80218B9C) = { 80, 0, 0, };
|
||||
|
||||
Vec3i N(vector3D_80218BA8) = { 110, 0, 20, };
|
||||
|
||||
Formation N(formation_17) = {
|
||||
{ .actor = &N(bill_blaster), .home = { .vec = &N(vector3D_80218B90) }, .priority = 10 },
|
||||
{ .actor = &N(bill_blaster), .home = { .vec = &N(vector3D_80218B9C) }, .priority = 9 },
|
||||
{ .actor = &N(bill_blaster), .home = { .vec = &N(vector3D_80218BA8) }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_18) = {
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 1 }, .priority = 10 },
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 2 }, .priority = 9 },
|
||||
};
|
||||
|
||||
Formation N(formation_19) = {
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 1 }, .priority = 10 },
|
||||
};
|
||||
|
||||
Formation N(formation_1A) = {
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 0 }, .priority = 10 },
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 1 }, .priority = 9 },
|
||||
{ .actor = &N(bullet_bill), .home = { .index = 2 }, .priority = 8 },
|
||||
};
|
||||
|
||||
BattleList N(formationTable) = {
|
||||
BATTLE("ノコノコ", N(formation_00), &N(trd_01)),
|
||||
BATTLE("ノコノコx2", N(formation_01), &N(trd_01)),
|
||||
BATTLE("ノコノコx3", N(formation_02), &N(trd_01)),
|
||||
BATTLE("ノコノコ,ボムへい", N(formation_03), &N(trd_01)),
|
||||
BATTLE("ノコノコ,ボムへいx2", N(formation_04), &N(trd_01)),
|
||||
BATTLE("ノコノコ,ボムへいx3", N(formation_05), &N(trd_01)),
|
||||
BATTLE("ノコノコx2,ボムへい", N(formation_06), &N(trd_01)),
|
||||
BATTLE("ノコノコx2,ボムへいx2", N(formation_07), &N(trd_01)),
|
||||
BATTLE("パタパタx2", N(formation_08), &N(trd_01)),
|
||||
BATTLE("パタパタx3", N(formation_09), &N(trd_01)),
|
||||
BATTLE("パタパタ,ノコノコ", N(formation_0A), &N(trd_01)),
|
||||
BATTLE("パタパタ,ノコノコ,パタパタ", N(formation_0B), &N(trd_01)),
|
||||
BATTLE("パタパタ,ノコノコ,パタパタ,ノコノコ", N(formation_0C), &N(trd_01)),
|
||||
BATTLE("パタパタ,ボムヘイx2", N(formation_0D), &N(trd_01)),
|
||||
BATTLE("パタパタ,ボムヘイx3", N(formation_0E), &N(trd_01)),
|
||||
BATTLE("ボムへい", N(formation_0F), &N(trd_01)),
|
||||
BATTLE("ボムへいx2", N(formation_10), &N(trd_01)),
|
||||
BATTLE("ボムへいx3", N(formation_11), &N(trd_01)),
|
||||
BATTLE("ボムへいx4", N(formation_12), &N(trd_01)),
|
||||
BATTLE("ボムへい,ノコノコ", N(formation_13), &N(trd_01)),
|
||||
BATTLE("ボムへいx2,ノコノコ", N(formation_14), &N(trd_01)),
|
||||
BATTLE("ボムへい,ノコノコx2", N(formation_15), &N(trd_01)),
|
||||
BATTLE("ノコノコ,ボムへいx2", N(formation_16), &N(trd_01)),
|
||||
BATTLE("キラーたいほうx3", N(formation_17), &N(trd_01)),
|
||||
BATTLE("キラーx2", N(formation_18), &N(trd_01)),
|
||||
BATTLE("キラー", N(formation_19), &N(trd_01)),
|
||||
BATTLE("キラーx3", N(formation_1A), &N(trd_01)),
|
||||
{},
|
||||
};
|
||||
|
||||
StageList N(stageTable) = {
|
||||
{ "trd_00", &N(trd_00) },
|
||||
{ "trd_01", &N(trd_01) },
|
||||
{ "trd_02", &N(trd_02) },
|
||||
{ "trd_02b", &N(trd_02b) },
|
||||
{ "trd_02c", &N(trd_02c) },
|
||||
{ "trd_02d", &N(trd_02d) },
|
||||
{ "trd_03", &N(trd_03) },
|
||||
{ "trd_04", &N(trd_04) },
|
||||
{ "trd_05", &N(trd_05) },
|
||||
{ "trd_05b", &N(trd_05b) },
|
||||
{ "trd_05c", &N(trd_05c) },
|
||||
{ "trd_05d", &N(trd_05d) },
|
||||
{ "trd_05e", &N(trd_05e) },
|
||||
{ "trd_05f", &N(trd_05f) },
|
||||
{},
|
||||
};
|
29
src/battle/area_trd_part_1/stage/trd_00.c
Normal file
29
src/battle/area_trd_part_1/stage/trd_00.c
Normal file
@ -0,0 +1,29 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_00
|
||||
|
||||
EvtSource N(beforeBattle_80224B70) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80224BAC) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80224BBC)[] = {
|
||||
0x00000009, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt00_shape",
|
||||
.hit = "trd_bt00_hit",
|
||||
.preBattle = N(beforeBattle_80224B70),
|
||||
.postBattle = N(afterBattle_80224BAC),
|
||||
.foregroundModelList = N(foregroundModelList_80224BBC),
|
||||
};
|
24
src/battle/area_trd_part_1/stage/trd_01.c
Normal file
24
src/battle/area_trd_part_1/stage/trd_01.c
Normal file
@ -0,0 +1,24 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_01
|
||||
|
||||
EvtSource N(beforeBattle_80222AE0) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80222B1C) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt01_shape",
|
||||
.hit = "trd_bt01_hit",
|
||||
.preBattle = N(beforeBattle_80222AE0),
|
||||
.postBattle = N(afterBattle_80222B1C),
|
||||
};
|
140
src/battle/area_trd_part_1/stage/trd_02.c
Normal file
140
src/battle/area_trd_part_1/stage/trd_02.c
Normal file
@ -0,0 +1,140 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_02
|
||||
|
||||
EvtSource N(80222B60) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80222C78) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80223224) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 12, 0)
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 19)
|
||||
EVT_EXEC(N(80222C78))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 17)
|
||||
EVT_EXEC(N(80222C78))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 15)
|
||||
EVT_EXEC(N(80222C78))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 13)
|
||||
EVT_EXEC(N(80222C78))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80223318) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80223328)[] = {
|
||||
0x00000016, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt02_shape",
|
||||
.hit = "trd_bt02_hit",
|
||||
.preBattle = N(beforeBattle_80223224),
|
||||
.postBattle = N(afterBattle_80223318),
|
||||
.foregroundModelList = N(foregroundModelList_80223328),
|
||||
};
|
137
src/battle/area_trd_part_1/stage/trd_02b.c
Normal file
137
src/battle/area_trd_part_1/stage/trd_02b.c
Normal file
@ -0,0 +1,137 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_02b
|
||||
|
||||
EvtSource N(80223360) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80223478) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80223A24) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 22, 0)
|
||||
EVT_CALL(EnableModel, 9, 0)
|
||||
EVT_CALL(EnableModel, 10, 0)
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 19)
|
||||
EVT_EXEC(N(80223478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 17)
|
||||
EVT_EXEC(N(80223478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 15)
|
||||
EVT_EXEC(N(80223478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 13)
|
||||
EVT_EXEC(N(80223478))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80223B40) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt02_shape",
|
||||
.hit = "trd_bt02_hit",
|
||||
.preBattle = N(beforeBattle_80223A24),
|
||||
.postBattle = N(afterBattle_80223B40),
|
||||
};
|
31
src/battle/area_trd_part_1/stage/trd_02c.c
Normal file
31
src/battle/area_trd_part_1/stage/trd_02c.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_02c
|
||||
|
||||
EvtSource N(beforeBattle_80224BF0) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 26, 0)
|
||||
EVT_CALL(EnableModel, 2, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80224C54) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80224C64)[] = {
|
||||
0x00000016, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt02_shape",
|
||||
.hit = "trd_bt02_hit",
|
||||
.preBattle = N(beforeBattle_80224BF0),
|
||||
.postBattle = N(afterBattle_80224C54),
|
||||
.foregroundModelList = N(foregroundModelList_80224C64),
|
||||
};
|
132
src/battle/area_trd_part_1/stage/trd_02d.c
Normal file
132
src/battle/area_trd_part_1/stage/trd_02d.c
Normal file
@ -0,0 +1,132 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_02d
|
||||
|
||||
EvtSource N(80224CA0) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80224DB8) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80225364) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 19, 0)
|
||||
EVT_CALL(EnableModel, 17, 0)
|
||||
EVT_CALL(EnableModel, 15, 0)
|
||||
EVT_CALL(EnableModel, 13, 0)
|
||||
EVT_CALL(EnableModel, 9, 0)
|
||||
EVT_CALL(EnableModel, 10, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80225418) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80225428)[] = {
|
||||
0x00000016, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt02_shape",
|
||||
.hit = "trd_bt02_hit",
|
||||
.preBattle = N(beforeBattle_80225364),
|
||||
.postBattle = N(afterBattle_80225418),
|
||||
.foregroundModelList = N(foregroundModelList_80225428),
|
||||
};
|
39
src/battle/area_trd_part_1/stage/trd_03.c
Normal file
39
src/battle/area_trd_part_1/stage/trd_03.c
Normal file
@ -0,0 +1,39 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_03
|
||||
|
||||
#include "world/common/clouds.inc.c"
|
||||
|
||||
EvtSource N(beforeBattle_80223F08) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_SET(LW(0), 4)
|
||||
EVT_SET(LW(2), 0)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_SET(LW(0), 2)
|
||||
EVT_SET(LW(2), 70)
|
||||
EVT_SET(LW(3), 175)
|
||||
EVT_SET(LW(4), -170)
|
||||
EVT_EXEC(N(clouds2))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80223FA0) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80223FB0)[] = {
|
||||
0x0000000F, 0x0000000E, 0x0000000D, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt03_shape",
|
||||
.hit = "trd_bt03_hit",
|
||||
.bg = "nok_bg",
|
||||
.preBattle = N(beforeBattle_80223F08),
|
||||
.postBattle = N(afterBattle_80223FA0),
|
||||
.foregroundModelList = N(foregroundModelList_80223FB0),
|
||||
};
|
87
src/battle/area_trd_part_1/stage/trd_04.c
Normal file
87
src/battle/area_trd_part_1/stage/trd_04.c
Normal file
@ -0,0 +1,87 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_04
|
||||
|
||||
EvtSource N(80223FF0) = {
|
||||
EVT_SET(LW(10), LW(1))
|
||||
EVT_SET(LW(11), LW(2))
|
||||
EVT_SET(LW(12), LW(3))
|
||||
EVT_CALL(SetTexPanner, LW(0), LW(1))
|
||||
EVT_SET(LW(0), 0)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(SetTexPanOffset, LW(10), 0, LW(0), LW(1))
|
||||
EVT_ADD(LW(0), LW(11))
|
||||
EVT_ADD(LW(1), LW(12))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(802240C0) = {
|
||||
EVT_SET(LW(10), LW(1))
|
||||
EVT_SET(LW(11), LW(2))
|
||||
EVT_SET(LW(12), LW(3))
|
||||
EVT_CALL(SetTexPanner, LW(0), LW(1))
|
||||
EVT_SET(LW(0), 0)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(SetTexPanOffset, LW(10), 0, LW(0), 0)
|
||||
EVT_CALL(SetTexPanOffset, LW(10), 1, LW(1), 0)
|
||||
EVT_ADD(LW(0), LW(11))
|
||||
EVT_ADD(LW(1), LW(12))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(802241AC) = {
|
||||
EVT_SET(LW(10), LW(1))
|
||||
EVT_SET(LW(11), LW(2))
|
||||
EVT_SET(LW(12), LW(3))
|
||||
EVT_CALL(SetTexPanner, LW(0), LW(1))
|
||||
EVT_SET(LW(0), 0)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(SetTexPanOffset, LW(10), 0, 0, LW(0))
|
||||
EVT_CALL(SetTexPanOffset, LW(10), 1, 0, LW(1))
|
||||
EVT_ADD(LW(0), LW(11))
|
||||
EVT_ADD(LW(1), LW(12))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80224298) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_SET(LW(0), 13)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_SET(LW(2), 40)
|
||||
EVT_SET(LW(3), 0)
|
||||
EVT_EXEC(N(80223FF0))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80224320) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80224330)[] = {
|
||||
0x0000000D, 0x00000000,
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt04_shape",
|
||||
.hit = "trd_bt04_hit",
|
||||
.preBattle = N(beforeBattle_80224298),
|
||||
.postBattle = N(afterBattle_80224320),
|
||||
.foregroundModelList = N(foregroundModelList_80224330),
|
||||
};
|
139
src/battle/area_trd_part_1/stage/trd_05.c
Normal file
139
src/battle/area_trd_part_1/stage/trd_05.c
Normal file
@ -0,0 +1,139 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05
|
||||
|
||||
EvtSource N(80224360) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80224478) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80224A24) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 27)
|
||||
EVT_EXEC(N(80224478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 25)
|
||||
EVT_EXEC(N(80224478))
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 6)
|
||||
EVT_EXEC(N(80224478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 4)
|
||||
EVT_EXEC(N(80224478))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 2)
|
||||
EVT_EXEC(N(80224478))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80224B30) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.bg = "nok_bg",
|
||||
.preBattle = N(beforeBattle_80224A24),
|
||||
.postBattle = N(afterBattle_80224B30),
|
||||
};
|
131
src/battle/area_trd_part_1/stage/trd_05b.c
Normal file
131
src/battle/area_trd_part_1/stage/trd_05b.c
Normal file
@ -0,0 +1,131 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05b
|
||||
|
||||
EvtSource N(80225460) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80225578) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80225B24) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 16, 0)
|
||||
EVT_CALL(EnableModel, 17, 0)
|
||||
EVT_CALL(EnableModel, 2, 0)
|
||||
EVT_CALL(EnableModel, 4, 0)
|
||||
EVT_CALL(EnableModel, 6, 0)
|
||||
EVT_CALL(EnableModel, 20, 0)
|
||||
EVT_CALL(EnableModel, 18, 0)
|
||||
EVT_CALL(EnableModel, 19, 0)
|
||||
EVT_CALL(EnableModel, 25, 0)
|
||||
EVT_CALL(EnableModel, 27, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80225C28) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.preBattle = N(beforeBattle_80225B24),
|
||||
.postBattle = N(afterBattle_80225C28),
|
||||
};
|
139
src/battle/area_trd_part_1/stage/trd_05c.c
Normal file
139
src/battle/area_trd_part_1/stage/trd_05c.c
Normal file
@ -0,0 +1,139 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05c
|
||||
|
||||
EvtSource N(80225C60) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80225D78) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80226324) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 10, 0)
|
||||
EVT_CALL(EnableModel, 15, 0)
|
||||
EVT_CALL(EnableModel, 20, 0)
|
||||
EVT_CALL(EnableModel, 18, 0)
|
||||
EVT_CALL(EnableModel, 19, 0)
|
||||
EVT_CALL(EnableModel, 25, 0)
|
||||
EVT_SET(LW(0), 27)
|
||||
EVT_EXEC(N(80225D78))
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 6)
|
||||
EVT_EXEC(N(80225D78))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 4)
|
||||
EVT_EXEC(N(80225D78))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 2)
|
||||
EVT_EXEC(N(80225D78))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80226470) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.preBattle = N(beforeBattle_80226324),
|
||||
.postBattle = N(afterBattle_80226470),
|
||||
};
|
138
src/battle/area_trd_part_1/stage/trd_05d.c
Normal file
138
src/battle/area_trd_part_1/stage/trd_05d.c
Normal file
@ -0,0 +1,138 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05d
|
||||
|
||||
EvtSource N(802264B0) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(802265C8) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80226B74) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 10, 0)
|
||||
EVT_CALL(EnableModel, 15, 0)
|
||||
EVT_CALL(EnableModel, 16, 0)
|
||||
EVT_CALL(EnableModel, 17, 0)
|
||||
EVT_CALL(EnableModel, 25, 0)
|
||||
EVT_CALL(EnableModel, 14, 0)
|
||||
EVT_CALL(EnableModel, 27, 0)
|
||||
EVT_THREAD
|
||||
EVT_SET(LW(0), 6)
|
||||
EVT_EXEC(N(802265C8))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 4)
|
||||
EVT_EXEC(N(802265C8))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_SET(LW(0), 2)
|
||||
EVT_EXEC(N(802265C8))
|
||||
EVT_END_THREAD
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80226CB8) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.preBattle = N(beforeBattle_80226B74),
|
||||
.postBattle = N(afterBattle_80226CB8),
|
||||
};
|
129
src/battle/area_trd_part_1/stage/trd_05e.c
Normal file
129
src/battle/area_trd_part_1/stage/trd_05e.c
Normal file
@ -0,0 +1,129 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05e
|
||||
|
||||
EvtSource N(80226CF0) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(80226E08) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_802273B4) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(EnableModel, 27, 0)
|
||||
EVT_CALL(EnableModel, 2, 0)
|
||||
EVT_CALL(EnableModel, 4, 0)
|
||||
EVT_CALL(EnableModel, 6, 0)
|
||||
EVT_CALL(EnableModel, 20, 0)
|
||||
EVT_CALL(EnableModel, 18, 0)
|
||||
EVT_CALL(EnableModel, 19, 0)
|
||||
EVT_CALL(EnableModel, 25, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80227490) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.preBattle = N(beforeBattle_802273B4),
|
||||
.postBattle = N(afterBattle_80227490),
|
||||
};
|
131
src/battle/area_trd_part_1/stage/trd_05f.c
Normal file
131
src/battle/area_trd_part_1/stage/trd_05f.c
Normal file
@ -0,0 +1,131 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
#define NAMESPACE b_area_trd_part_1_trd_05f
|
||||
|
||||
EvtSource N(802274D0) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RotateGroup, LW(10), 2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), -2, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RotateGroup, LW(10), 1, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(RandInt, 30, LW(0))
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_WAIT_FRAMES(LW(0))
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(802275E8) = {
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_LOOP(0)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -3, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, EVT_FLOAT(-2.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 3, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(2.5), -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, EVT_FLOAT(-1.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 2, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(1.5), EVT_FLOAT(-0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, EVT_FLOAT(0.5), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(TranslateModel, LW(10), -1, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), EVT_FLOAT(-0.5), 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(beforeBattle_80227B94) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_SET(LW(0), 27)
|
||||
EVT_EXEC(N(802275E8))
|
||||
EVT_CALL(EnableModel, 2, 0)
|
||||
EVT_CALL(EnableModel, 4, 0)
|
||||
EVT_CALL(EnableModel, 6, 0)
|
||||
EVT_CALL(EnableModel, 20, 0)
|
||||
EVT_CALL(EnableModel, 18, 0)
|
||||
EVT_CALL(EnableModel, 19, 0)
|
||||
EVT_CALL(EnableModel, 25, 0)
|
||||
EVT_CALL(EnableModel, 15, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80227C8C) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "trd_tex",
|
||||
.shape = "trd_bt05_shape",
|
||||
.hit = "trd_bt05_hit",
|
||||
.preBattle = N(beforeBattle_80227B94),
|
||||
.postBattle = N(afterBattle_80227C8C),
|
||||
};
|
@ -1,30 +1,13 @@
|
||||
#include "common.h"
|
||||
#include "ld_addrs.h"
|
||||
#include "battle.h"
|
||||
#include "battle_tables.h"
|
||||
#include "hud_element.h"
|
||||
#include "sprite.h"
|
||||
|
||||
extern s32 D_800DC060;
|
||||
extern Stage* D_800DC064;
|
||||
|
||||
extern BattleList b_area_kmr_part_1_formationTable;
|
||||
extern StageList b_area_kmr_part_1_stageTable;
|
||||
|
||||
extern BattleList b_area_kmr_part_2_formationTable;
|
||||
extern StageList b_area_kmr_part_2_stageTable;
|
||||
|
||||
extern BattleList b_area_kmr_part_3_formationTable;
|
||||
extern StageList b_area_kmr_part_3_stageTable;
|
||||
|
||||
extern BattleList b_area_mac_formationTable;
|
||||
extern StageList b_area_mac_stageTable;
|
||||
|
||||
extern BattleList b_area_hos_formationTable;
|
||||
extern StageList b_area_hos_stageTable;
|
||||
|
||||
extern BattleList b_area_nok_formationTable;
|
||||
extern StageList b_area_nok_stageTable;
|
||||
|
||||
BattleArea gBattleAreas[0x30] = {
|
||||
{
|
||||
AREA(area_kmr_part_1),
|
||||
@ -65,8 +48,8 @@ BattleArea gBattleAreas[0x30] = {
|
||||
{
|
||||
AREA(area_trd_part_1),
|
||||
.name = "エリア TRD その1",
|
||||
.battles = 0x80218CB0,
|
||||
.stages = 0x80218EE0,
|
||||
.battles = &b_area_trd_part_1_formationTable,
|
||||
.stages = &b_area_trd_part_1_stageTable,
|
||||
},
|
||||
{
|
||||
AREA(area_trd_part_2),
|
||||
|
28
src/battle/battle_tables.h
Normal file
28
src/battle/battle_tables.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef _BATTLE_BATTLE_TABLE_H_
|
||||
#define _BATTLE_BATTLE_TABLE_H_
|
||||
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
extern BattleList b_area_kmr_part_1_formationTable;
|
||||
extern StageList b_area_kmr_part_1_stageTable;
|
||||
|
||||
extern BattleList b_area_kmr_part_2_formationTable;
|
||||
extern StageList b_area_kmr_part_2_stageTable;
|
||||
|
||||
extern BattleList b_area_kmr_part_3_formationTable;
|
||||
extern StageList b_area_kmr_part_3_stageTable;
|
||||
|
||||
extern BattleList b_area_mac_formationTable;
|
||||
extern StageList b_area_mac_stageTable;
|
||||
|
||||
extern BattleList b_area_hos_formationTable;
|
||||
extern StageList b_area_hos_stageTable;
|
||||
|
||||
extern BattleList b_area_nok_formationTable;
|
||||
extern StageList b_area_nok_stageTable;
|
||||
|
||||
extern BattleList b_area_trd_part_1_formationTable;
|
||||
extern StageList b_area_trd_part_1_stageTable;
|
||||
|
||||
#endif
|
610
src/battle/common/actor/koopa_troopa.inc.c
Normal file
610
src/battle/common/actor/koopa_troopa.inc.c
Normal file
@ -0,0 +1,610 @@
|
||||
#include "common.h"
|
||||
#include "effects.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/koopa_troopa.h"
|
||||
|
||||
s32 N(defenseTable_8021C960)[] = {
|
||||
ELEMENT_NORMAL, 1,
|
||||
ELEMENT_HAMMER, 1,
|
||||
ELEMENT_JUMP, 1,
|
||||
ELEMENT_WATER, 1,
|
||||
ELEMENT_BLAST, 1,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(defenseTable_8021C98C)[] = {
|
||||
ELEMENT_NORMAL, 0,
|
||||
ELEMENT_END,
|
||||
};
|
||||
|
||||
s32 N(statusTable_8021C998)[] = {
|
||||
STATUS_NORMAL, 0,
|
||||
STATUS_DEFAULT, 0,
|
||||
STATUS_SLEEP, 90,
|
||||
STATUS_POISON, 60,
|
||||
STATUS_FROZEN, 100,
|
||||
STATUS_DIZZY, 90,
|
||||
STATUS_FEAR, 0,
|
||||
STATUS_STATIC, 80,
|
||||
STATUS_PARALYZE, 90,
|
||||
STATUS_SHRINK, 90,
|
||||
STATUS_STOP, 100,
|
||||
STATUS_DEFAULT_TURN_MOD, 0,
|
||||
STATUS_SLEEP_TURN_MOD, 0,
|
||||
STATUS_POISON_TURN_MOD, 0,
|
||||
STATUS_FROZEN_TURN_MOD, 0,
|
||||
STATUS_DIZZY_TURN_MOD, 0,
|
||||
STATUS_FEAR_TURN_MOD, 0,
|
||||
STATUS_STATIC_TURN_MOD, 0,
|
||||
STATUS_PARALYZE_TURN_MOD, 1,
|
||||
STATUS_SHRINK_TURN_MOD, 0,
|
||||
STATUS_STOP_TURN_MOD, 0,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern s32 N(idleAnimations_8021CA90)[];
|
||||
extern EvtSource N(init_8021CB74);
|
||||
|
||||
ActorPartDesc N(partsTable_8021CA44)[] = {
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { -2, 36 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(idleAnimations_8021CA90),
|
||||
.defenseTable = N(defenseTable_8021C960),
|
||||
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
|
||||
.elementImmunityFlags = 0,
|
||||
.unk_1C = 249,
|
||||
},
|
||||
};
|
||||
|
||||
ActorDesc NAMESPACE = {
|
||||
.flags = 0,
|
||||
.type = ACTOR_TYPE_KOOPA_TROOPA,
|
||||
.level = 6,
|
||||
.maxHP = 4,
|
||||
.partCount = ARRAY_COUNT(N(partsTable_8021CA44)),
|
||||
.partsData = N(partsTable_8021CA44),
|
||||
.script = N(init_8021CB74),
|
||||
.statusTable = N(statusTable_8021C998),
|
||||
.escapeChance = 70,
|
||||
.airLiftChance = 90,
|
||||
.spookChance = 90,
|
||||
.baseStatusChance = 90,
|
||||
.upAndAwayChance = 95,
|
||||
.spinSmashReq = 0,
|
||||
.powerBounceChance = 100,
|
||||
.coinReward = 1,
|
||||
.size = { 28, 36 },
|
||||
.hpBarOffset = { 0, 0 },
|
||||
.statusIconOffset = { -15, 32 },
|
||||
.statusMessageOffset = { 5, 32 },
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_8021CA90)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_11,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_1,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_8021CADC)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_11,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_3,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_0,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_13,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(idleAnimations_8021CB28)[] = {
|
||||
STATUS_NORMAL, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_STONE, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_SLEEP, NPC_ANIM_koopa_troopa_Palette_01_Anim_12,
|
||||
STATUS_POISON, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_STOP, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_STATIC, NPC_ANIM_koopa_troopa_Palette_01_Anim_F,
|
||||
STATUS_PARALYZE, NPC_ANIM_koopa_troopa_Palette_01_Anim_10,
|
||||
STATUS_DIZZY, NPC_ANIM_koopa_troopa_Palette_01_Anim_14,
|
||||
STATUS_FEAR, NPC_ANIM_koopa_troopa_Palette_01_Anim_14,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
extern EvtSource N(takeTurn_8021DD9C);
|
||||
extern EvtSource N(idle_8021CD30);
|
||||
extern EvtSource N(handleEvent_8021D218);
|
||||
|
||||
EvtSource N(init_8021CB74) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8021DD9C)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_8021CD30)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8021D218)))
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
#include "common/UnkBattleFunc1.inc.c"
|
||||
|
||||
EvtSource N(8021CBD8) = {
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_IF_FLAG(LW(1), 0x00041000)
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
|
||||
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
|
||||
EVT_CALL(N(UnkBattleFunc1), -10, 20, 10, 20)
|
||||
EVT_ELSE
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -4, 32)
|
||||
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, -1, -4)
|
||||
EVT_CALL(N(UnkBattleFunc1), -15, 32, 5, 32)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -5, 15)
|
||||
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, 0)
|
||||
EVT_CALL(N(UnkBattleFunc1), -10, 20, 10, 20)
|
||||
EVT_END_SWITCH
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_8021CD30) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(RandInt, 80, LW(10))
|
||||
EVT_ADD(LW(10), 80)
|
||||
EVT_LOOP(LW(10))
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(8021CBD8))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FLOAT(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CADC)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(IdleRunToGoal, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CA90)))
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CB28)))
|
||||
EVT_END_SWITCH
|
||||
EVT_LOOP(20)
|
||||
EVT_LABEL(2)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(8021CBD8))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_SUB(LW(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FLOAT(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CADC)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(IdleRunToGoal, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CA90)))
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CB28)))
|
||||
EVT_END_SWITCH
|
||||
EVT_LOOP(80)
|
||||
EVT_LABEL(3)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(1))
|
||||
EVT_EXEC_WAIT(N(8021CBD8))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(3)
|
||||
EVT_END_IF
|
||||
EVT_IF_FLAG(LW(1), STATUS_FLAG_SLEEP | STATUS_FLAG_FROZEN | STATUS_FLAG_FEAR | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_STONE | STATUS_FLAG_STOP)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(3)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(intTable_8021D1C0)[] = {
|
||||
0x00000009, 0x00000010, 0x00000016, 0x0000001A, 0x0000001E, 0x00000020, 0x00000021, 0x00000020,
|
||||
0x0000001E, 0x0000001A, 0x00000016, 0x00000010, 0x00000009, 0x00000000, 0x00000004, 0x00000006,
|
||||
0x00000007, 0x00000006, 0x00000004, 0x00000000, 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_8021D218) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
||||
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_BURN_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_C)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_C)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_D)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 1)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 9, 2)
|
||||
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8021C98C)))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CB28)))
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(10))
|
||||
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, -75)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_USE_BUF(EVT_ADDR(N(intTable_8021D1C0)))
|
||||
EVT_LOOP(22)
|
||||
EVT_BUF_READ1(LW(0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, LW(0), 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoJumpBack)
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_7)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
|
||||
EVT_IF_NOT_FLAG(LW(0), 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, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_END_IF
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_DEATH)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_troopa_Palette_01_Anim_B)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 0)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_IF
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, -1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(takeTurn_8021DD9C) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(GetBattlePhase, LW(0))
|
||||
EVT_IF_EQ(LW(0), PHASE_FIRST_STRIKE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_6)
|
||||
EVT_ELSE
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(0))
|
||||
EVT_IF_EQ(LW(0), 1)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, 9, LW(0))
|
||||
EVT_SUB(LW(0), 1)
|
||||
EVT_IF_GT(LW(0), 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 9, LW(0))
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(3.0))
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_ELSE
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(3.0))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FLOAT(1.0))
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_F)
|
||||
EVT_SET(LW(0), 0)
|
||||
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_LOOP(5)
|
||||
EVT_ADD(LW(0), 15)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(3.0))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20BA)
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8021CA90)))
|
||||
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8021C960)))
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, -4, 32)
|
||||
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, -1, -4)
|
||||
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 0)
|
||||
EVT_CALL(ResetActorSounds, ACTOR_SELF, 2)
|
||||
EVT_END_IF
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_7)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(1), 4)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(PlayEffect, EFFECT_ID_1D, 1, LW(0), LW(1), LW(2), 32, 4, 0, 10, 0, 0, 0, 0, 0)
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x2021)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_6)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20D3)
|
||||
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 1, BS_FLAGS1_10)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||
EVT_SET(LW(10), LW(0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
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(GetBattlePhase, LW(0))
|
||||
EVT_IF_EQ(LW(0), PHASE_FIRST_STRIKE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_F)
|
||||
EVT_CALL(SetBattleCamZoom, 300)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 20)
|
||||
EVT_CALL(MoveBattleCamOver, 10)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_IF_EQ(LW(10), HIT_RESULT_LUCKY)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_15)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(1), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_SUB(LW(1), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_17)
|
||||
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, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(SetPartYaw, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(ResetAllActorSounds, ACTOR_SELF)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||
EVT_SWITCH(LW(0))
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_QUAKE_IMMUNE)
|
||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_ADD(LW(0), 40)
|
||||
EVT_SET(LW(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.80078125))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(LW(0), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_8)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_SET_CONST(LW(0), 1)
|
||||
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_troopa_Palette_01_Anim_4)
|
||||
EVT_EXEC_WAIT(DoReturnHome)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_troopa_Palette_01_Anim_1)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
1163
src/battle/common/actor/paratroopa.inc.c
Normal file
1163
src/battle/common/actor/paratroopa.inc.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -410,6 +410,7 @@ replace_funcs = {
|
||||
"GetActorSize" :{0:"ActorIDs"},
|
||||
"GetActorVar" :{0:"ActorIDs"},
|
||||
"GetBattleFlags" :{0:"BattleStatusFlags1"},
|
||||
"GetBattlePhase" :{0:"Phases"},
|
||||
"GetDistanceToGoal" :{0:"ActorIDs"},
|
||||
"GetGoalPos" :{0:"ActorIDs"},
|
||||
"GetHomePos" :{0:"ActorIDs"},
|
||||
|
@ -854,8 +854,8 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0, namespace
|
||||
out += INDENT + INDENT + f".posOffset = {{ {d[2]}, {d[3]}, {d[4]} }},\n"
|
||||
out += INDENT + INDENT + f".targetOffset = {{ {d[5]}, {d[6]} }},\n"
|
||||
out += INDENT + INDENT + f".opacity = {d[7]},\n"
|
||||
out += INDENT + INDENT + f".idleAnimations = {read_ptr(d[8], symbol_map)},\n"
|
||||
out += INDENT + INDENT + f".defenseTable = {read_ptr(d[9], symbol_map)},\n"
|
||||
out += INDENT + INDENT + f".idleAnimations = N(idleAnimations_{d[8]:08X}),\n"
|
||||
out += INDENT + INDENT + f".defenseTable = N(defenseTable_{d[9]:08X}),\n"
|
||||
out += INDENT + INDENT + f".eventFlags = {read_flags(d[10], 'ActorEventFlags')},\n"
|
||||
out += INDENT + INDENT + f".elementImmunityFlags = {read_flags(d[11], 'ElementImmunityFlags')},\n"
|
||||
out += INDENT + INDENT + f".unk_1C = {d[12]},\n"
|
||||
|
File diff suppressed because one or more lines are too long
@ -3825,10 +3825,27 @@ segments:
|
||||
vram: 0x80218000
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0x4A10A0, c]
|
||||
- [0x4A1190, c]
|
||||
- [0x4A12C0, c]
|
||||
- [0x4A1530, data]
|
||||
- [0x4A10A0, c, area]
|
||||
- [0x4A10A0, c, actor/bullet_bill]
|
||||
- [0x4A10A0, c, actor/bill_blaster]
|
||||
- [0x4A10A0, c, actor/bob_omb]
|
||||
- [0x4A10C0, c, actor/koopa_troopa]
|
||||
- [0x4A1190, c, actor/paratroopa]
|
||||
- [0x4A12C0, c, stage/trd_01]
|
||||
- [0x4A12C0, c, stage/trd_02]
|
||||
- [0x4A12C0, c, stage/trd_02b]
|
||||
- [0x4A12C0, c, stage/trd_03]
|
||||
- [0x4A1530, c, stage/trd_04]
|
||||
- [0x4A1530, c, stage/trd_05]
|
||||
- [0x4A1530, c, stage/trd_00]
|
||||
- [0x4A1530, c, stage/trd_02c]
|
||||
- [0x4A1530, c, stage/trd_02d]
|
||||
- [0x4A1530, c, stage/trd_05b]
|
||||
- [0x4A1530, c, stage/trd_05c]
|
||||
- [0x4A1530, c, stage/trd_05d]
|
||||
- [0x4A1530, c, stage/trd_05e]
|
||||
- [0x4A1530, c, stage/trd_05f]
|
||||
- [0x4A1530]
|
||||
- dir: battle/area_trd_part_2
|
||||
type: code
|
||||
start: 0x4B11F0
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user