Disassemble TRD Part 1 Battle Map (#607)

This commit is contained in:
JoshDuMan 2022-01-08 00:43:11 -05:00 committed by GitHub
parent 64c0b7de02
commit d684991270
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 5814 additions and 2811 deletions

View File

@ -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]))

View File

@ -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;

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -1,5 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_1
#include "common/UnkAngleFunc2.inc.c"

View 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 },
};

View 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
};

View 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
};

View 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"

View File

@ -0,0 +1,5 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_1_paratroopa
#include "battle/common/actor/paratroopa.inc.c"

View 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("パタパタx", N(formation_08), &N(trd_01)),
BATTLE("パタパタx", 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("パタパタ,ボムヘイx", N(formation_0D), &N(trd_01)),
BATTLE("パタパタ,ボムヘイx", 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("キラーたいほうx", N(formation_17), &N(trd_01)),
BATTLE("キラーx", N(formation_18), &N(trd_01)),
BATTLE("キラー", N(formation_19), &N(trd_01)),
BATTLE("キラーx", 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) },
{},
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View 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),
};

View File

@ -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 = "エリア その1",
.battles = 0x80218CB0,
.stages = 0x80218EE0,
.battles = &b_area_trd_part_1_formationTable,
.stages = &b_area_trd_part_1_stageTable,
},
{
AREA(area_trd_part_2),

View 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

View 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
};

File diff suppressed because it is too large Load Diff

View File

@ -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"},

View File

@ -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

View File

@ -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