Battle Map and Move Disassembly (#614)

This commit is contained in:
JoshDuMan 2022-01-11 02:06:43 -05:00 committed by GitHub
parent e60e5fccd1
commit 79bcd008f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 10302 additions and 1604 deletions

View File

@ -1032,6 +1032,9 @@ enum PlayerAnims {
ANIM_MIDAIR_STILL = 0x00010007,
ANIM_MIDAIR = 0x00010008,
ANIM_10009 = 0x00010009,
ANIM_1000A = 0x0001000A,
ANIM_1000B = 0x0001000B,
ANIM_1000C = 0x0001000C,
ANIM_STUNNED_STILL = 0x0001000E,
ANIM_DEAD_STILL = 0x0001000F,
ANIM_SPINNING = 0x00010011,
@ -1058,12 +1061,14 @@ enum PlayerAnims {
ANIM_RUN_THINKING = 0x00010027,
ANIM_QUESTION = 0x00010028,
ANIM_NOD_YES = 0x00010029,
ANIM_1002A = 0x0001002A,
ANIM_1002B = 0x0001002B,
ANIM_PRAY = 0x0001002C,
ANIM_CHARRED = 0x0001002F,
ANIM_GET_UP = 0x00010030,
ANIM_DUST_OFF = 0x00010031,
ANIM_THUMBS_UP = 0x00010032,
ANIM_30000 = 0x00030000,
ANIM_30004 = 0x00030004,
ANIM_30008 = 0x00030008,
ANIM_30009 = 0x00030009,

View File

@ -148,6 +148,7 @@ ApiStatus SummonEnemy(Evt* script, s32 isInitialCall);
ApiStatus GetOwnerID(Evt* script, s32 isInitialCall);
ApiStatus SetOwnerID(Evt* script, s32 isInitialCall);
ApiStatus ActorExists(Evt* script, s32 isInitialCall);
ApiStatus func_8026E038(Evt* script, s32 isInitialCall);
ApiStatus SetBattleInputMask(Evt* script, s32 isInitialCall);
ApiStatus SetBattleInputButtons(Evt* script, s32 isInitialCall);
ApiStatus CheckButtonPress(Evt* script, s32 isInitialCall);
@ -201,6 +202,9 @@ ApiStatus PlayerPowerBounceEnemy(Evt* script, s32 isInitialCall);
ApiStatus PlayerTestEnemy(Evt* script, s32 isInitialCall);
ApiStatus DispatchDamagePlayerEvent(Evt* script, s32 isInitialCall);
ApiStatus EnablePlayerBlur(Evt* script, s32 isInitialCall);
ApiStatus func_80274A18(Evt* script, s32 isInitialCall);
ApiStatus func_802752AC(Evt* script, s32 isInitialCall);
ApiStatus func_80275F00(Evt* script, s32 isInitialCall);
ApiStatus DidActionSucceed(Evt* script, s32 isInitialCall);
ApiStatus BindTakeTurn(Evt* script, s32 isInitialCall);
ApiStatus PauseTakeTurn(Evt* script, s32 isInitialCall);
@ -306,6 +310,7 @@ ApiStatus func_802D75D8(Evt* script, s32 isInitialCall);
ApiStatus func_80273444(Evt* script, s32 isInitialCall);
ApiStatus GetActionCommandMode(Evt* script, s32 isInitialCall);
ApiStatus SetActionCommandMode(Evt* script, s32 isInitialCall);
ApiStatus func_802693F0(Evt* script, s32 isInitialCall);
ApiStatus WaitForState(Evt* script, s32 isInitialCall);
ApiStatus func_8026E020(Evt* script, s32 isInitialCall);
ApiStatus GetActionResult(Evt* script, s32 isInitialCall);

View File

@ -187,7 +187,7 @@ s32 bActorNames[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_RED_NINJAKOOPA] = MSG_actor_red_ninjakoopa,
[ACTOR_TYPE_BLUE_NINJAKOOPA] = MSG_actor_blue_ninjakoopa,
[ACTOR_TYPE_YELLOW_NINJAKOOPA] = MSG_actor_yellow_ninjakoopa,
[ACTOR_TYPE_GOOMBARIO_TUTOR2] = MSG_party_goombario,
[ACTOR_TYPE_ELDSTAR] = MSG_party_goombario,
[ACTOR_TYPE_BUZZAR] = MSG_actor_buzzar,
[ACTOR_TYPE_TUTANKOOPA] = MSG_actor_tutankoopa,
[ACTOR_TYPE_CHOMP] = MSG_actor_chomp,
@ -404,7 +404,7 @@ ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_RED_NINJAKOOPA] = { .walk = { 0x20BA, 0x03B4 }, .fly = { 0x0000, 0x0000 }, .jump = 0x03E2, .hurt = 0x0000, .delay = { 30, 30 } },
[ACTOR_TYPE_BLUE_NINJAKOOPA] = { .walk = { 0x20BA, 0x03B4 }, .fly = { 0x0000, 0x0000 }, .jump = 0x03E2, .hurt = 0x0000, .delay = { 30, 30 } },
[ACTOR_TYPE_YELLOW_NINJAKOOPA] = { .walk = { 0x20BA, 0x03B4 }, .fly = { 0x0000, 0x0000 }, .jump = 0x03E2, .hurt = 0x0000, .delay = { 30, 30 } },
[ACTOR_TYPE_GOOMBARIO_TUTOR2] = { .walk = { 0x0000, 0x0000 }, .fly = { 0x0000, 0x0000 }, .jump = 0x0000, .hurt = 0x0000, .delay = { 30, 30 } },
[ACTOR_TYPE_ELDSTAR] = { .walk = { 0x0000, 0x0000 }, .fly = { 0x0000, 0x0000 }, .jump = 0x0000, .hurt = 0x0000, .delay = { 30, 30 } },
[ACTOR_TYPE_BUZZAR] = { .walk = { 0x0000, 0x0000 }, .fly = { 0x20EF, 0x20EF }, .jump = 0x0000, .hurt = 0x0000, .delay = { -14, -14 } },
[ACTOR_TYPE_TUTANKOOPA] = { .walk = { 0x20BA, 0x03B4 }, .fly = { 0x0000, 0x0000 }, .jump = 0x0000, .hurt = 0x0000, .delay = { -3, -3 } },
[ACTOR_TYPE_CHOMP] = { .walk = { 0x0000, 0x0000 }, .fly = { 0x0000, 0x0000 }, .jump = 0x0000, .hurt = 0x010F, .delay = { 30, 30 } },
@ -619,7 +619,7 @@ s32 bActorTattles[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_RED_NINJAKOOPA] = MSG_actor_red_ninjakoopa_tattle,
[ACTOR_TYPE_BLUE_NINJAKOOPA] = MSG_actor_blue_ninjakoopa_tattle,
[ACTOR_TYPE_YELLOW_NINJAKOOPA] = MSG_actor_yellow_ninjakoopa_tattle,
[ACTOR_TYPE_GOOMBARIO_TUTOR2] = NULL,
[ACTOR_TYPE_ELDSTAR] = NULL,
[ACTOR_TYPE_BUZZAR] = MSG_actor_buzzar_tattle,
[ACTOR_TYPE_TUTANKOOPA] = MSG_actor_tutankoopa_tattle,
[ACTOR_TYPE_CHOMP] = MSG_actor_chomp_tattle,
@ -834,7 +834,7 @@ ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_RED_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 },
[ACTOR_TYPE_BLUE_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 },
[ACTOR_TYPE_YELLOW_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 },
[ACTOR_TYPE_GOOMBARIO_TUTOR2] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_ELDSTAR] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_BUZZAR] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_TUTANKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_CHOMP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },

View File

@ -1,7 +1,8 @@
#include "common.h"
#include "effects.h"
#include "script_api/battle.h"
ApiStatus func_802BD100_3251D0(Evt* script, s32 isInitialCall) {
ApiStatus func_802C0000(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 a = evt_get_variable(script, *args++);
s32 b = evt_get_variable(script, *args++);
@ -11,7 +12,7 @@ ApiStatus func_802BD100_3251D0(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD1AC_32527C(Evt* script, s32 isInitialCall) {
ApiStatus func_802C00AC(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 a = evt_get_variable(script, *args++);
s32 b = evt_get_variable(script, *args++);
@ -22,7 +23,7 @@ ApiStatus func_802BD1AC_32527C(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD26C(Evt* script, s32 isInitialCall) {
ApiStatus func_802C016C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 a = evt_get_variable(script, *args++);
s32 b = evt_get_variable(script, *args++);
@ -33,7 +34,7 @@ ApiStatus func_802BD26C(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD32C(Evt* script, s32 isInitialCall) {
ApiStatus func_802C022C(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;
s32 newHP = playerData->curHP + evt_get_variable(script, *script->ptrReadPos);
@ -50,7 +51,7 @@ ApiStatus func_802BD32C(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD388(Evt* script, s32 isInitialCall) {
ApiStatus func_802C0288(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;
s32 newFP = playerData->curFP + evt_get_variable(script, *script->ptrReadPos);
@ -67,19 +68,19 @@ ApiStatus func_802BD388(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD3E4(Evt* script, s32 isInitialCall) {
ApiStatus func_802C02E4(Evt* script, s32 isInitialCall) {
set_time_freeze_mode(TIME_FREEZE_FULL);
gOverrideFlags |= 0x200000;
return ApiStatus_DONE2;
}
ApiStatus func_802BD41C(Evt* script, s32 isInitialCall) {
ApiStatus func_802C031C(Evt* script, s32 isInitialCall) {
set_time_freeze_mode(TIME_FREEZE_NORMAL);
gOverrideFlags &= ~0x200000;
return ApiStatus_DONE2;
}
ApiStatus func_802BD458(Evt* script, s32 isInitialCall) {
ApiStatus func_802C0358(Evt* script, s32 isInitialCall) {
s32 itemIdx = evt_get_variable(script, *script->ptrReadPos);
s32 var15;
@ -100,7 +101,107 @@ ApiStatus func_802BD458(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802BD4E8(Evt* script, s32 isInitialCall) {
ApiStatus func_802C03E8(Evt* script, s32 isInitialCall) {
remove_consumable();
return ApiStatus_DONE2;
}
EvtSource D_802C0410 = {
EVT_SET_GROUP(0)
EVT_CALL(SetPlayerAnimation, ANIM_GOT_ITEM)
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_ADD(LW(1), 45)
EVT_CALL(MakeItemEntity, LW(10), LW(0), LW(1), LW(2), 1, 0)
EVT_SET(LW(10), LW(0))
EVT_WAIT_FRAMES(15)
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_ADD(LW(1), 20)
EVT_CALL(func_802C0000, LW(0), LW(1), LW(2))
EVT_CALL(RemoveItemEntity, LW(10))
EVT_RETURN
EVT_END
};
EvtSource D_802C04F4 = {
EVT_THREAD
EVT_LOOP(4)
EVT_CALL(PlaySound, SOUND_2095)
EVT_WAIT_FRAMES(10)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(SetPlayerAnimation, ANIM_EAT)
EVT_WAIT_FRAMES(45)
EVT_RETURN
EVT_END
};
EvtSource D_802C0560 = {
EVT_THREAD
EVT_LOOP(4)
EVT_CALL(PlaySound, SOUND_2095)
EVT_WAIT_FRAMES(10)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(SetPlayerAnimation, ANIM_DRINK)
EVT_WAIT_FRAMES(45)
EVT_RETURN
EVT_END
};
EvtSource D_802C05CC_32579C = {
EVT_SET_GROUP(0)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(GetCurrentPartner, LW(0))
EVT_IF_NE(LW(0), 0)
EVT_CALL(func_802D2B6C)
EVT_WAIT_FRAMES(20)
EVT_END_IF
EVT_CALL(func_802C02E4)
EVT_CALL(func_802C0358, LW(10))
EVT_EXEC_WAIT(D_802C0410)
EVT_IF_EQ(LW(13), 0)
EVT_EXEC_WAIT(D_802C04F4)
EVT_ELSE
EVT_EXEC_WAIT(D_802C0560)
EVT_END_IF
EVT_IF_EQ(LW(15), 1)
EVT_CALL(SetPlayerAnimation, ANIM_STICK_OUT_TONGUE)
EVT_END_IF
EVT_IF_GT(LW(11), 0)
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 0)
EVT_ADD(LW(1), 35)
EVT_CALL(func_802C00AC, LW(0), LW(1), LW(2), LW(11))
EVT_END_IF
EVT_IF_GT(LW(12), 0)
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 20)
EVT_ADD(LW(1), 25)
EVT_CALL(func_802C016C, LW(0), LW(1), LW(2), LW(12))
EVT_END_IF
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_ADD(LW(1), 25)
EVT_CALL(func_802D7520, LW(0), LW(1), LW(2), LW(11))
EVT_IF_NE(LW(11), 0)
EVT_CALL(func_802C022C, LW(11))
EVT_END_IF
EVT_IF_NE(LW(12), 0)
EVT_CALL(func_802C0288, LW(12))
EVT_END_IF
EVT_IF_EQ(LW(15), 0)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetPlayerAnimation, ANIM_THUMBS_UP)
EVT_WAIT_FRAMES(30)
EVT_ELSE
EVT_WAIT_FRAMES(30)
EVT_END_IF
EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2))
EVT_CALL(func_802D75D8, LW(0), LW(1), LW(2), LW(11))
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_WAIT_FRAMES(20)
EVT_CALL(func_802C03E8)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(func_802C031C)
EVT_RETURN
EVT_END
};

View File

@ -3,7 +3,6 @@
#define NAMESPACE action_command_bomb
void btl_set_popup_duration(s32);
void sfx_adjust_env_sound_params(s32, s32, s32, s32);
extern HudElementAnim D_80108AFC;

View File

@ -57,7 +57,6 @@ ApiStatus func_802A9000_430020(void) {
#include "common/MashActionCommandInit.inc.c"
// wip: decomp.me/scratch/tAhNa
INCLUDE_ASM(s32, "battle/action_cmd/spook", func_802A9298_4302B8);
#include "common/UnkActionCommandFunc1.inc.c"

View File

@ -1,29 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup2_b_area_trd_part_2
#include "common/StartRumbleWithParams.inc.c"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup2_b_area_trd_part_2
#include "world/common/UnkFunc27.inc.c"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup2_b_area_trd_part_2
#include "world/common/UnkFunc26.inc.c"
#define NAMESPACE b_area_trd_part_2
ApiStatus func_80218350_4B1540(Evt* script, s32 isInitialCall) {
bgm_set_battle_song(8, 0);
bgm_push_battle_song();
return ApiStatus_DONE2;
}
ApiStatus func_8021837C_4B156C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor = get_actor(evt_get_variable(script, *args++));
play_movement_dust_effects(2, actor->state.goalPos.x - 15.0f, actor->state.goalPos.y, actor->state.goalPos.z, actor->state.angle);
return ApiStatus_DONE2;
}

View File

@ -1,26 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup3_b_area_trd_part_2
#include "common/StartRumbleWithParams.inc.c"
#define NAMESPACE b_area_trd_part_2
// Requires data migration to match
#ifdef NON_MATCHING
#define NAMESPACE dup3_b_area_trd_part_2
#include "common/UnkWhirlwindEffectFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
#else
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B15D0", func_80218438_4B1628);
#endif
#define NAMESPACE dup3_b_area_trd_part_2
#include "common/UnkEnemyFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B15D0", func_802185B0_4B17A0);
#define NAMESPACE dup3_b_area_trd_part_2
#include "common/GetLastActorEventType.inc.c"
#define NAMESPACE b_area_trd_part_2

View File

@ -1,18 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_2
#include "common/StartRumbleWithParams.inc.c"
// Requires data migration to match
#ifdef NON_MATCHING
#include "common/UnkWhirlwindEffectFunc.inc.c"
#else
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B1D90", func_80218BF8_4B1DE8);
#endif
#include "common/UnkEnemyFunc.inc.c"
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B1D90", func_80218D70_4B1F60);
#include "common/GetLastActorEventType.inc.c"

View File

@ -1,27 +0,0 @@
#include "common.h"
#include "effects.h"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup4_b_area_trd_part_2
#include "common/StartRumbleWithParams.inc.c"
#define NAMESPACE b_area_trd_part_2
// Requires data migration to match
#ifdef NON_MATCHING
#define NAMESPACE dup4_b_area_trd_part_2
#include "common/UnkWhirlwindEffectFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
#else
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2550", func_802193B8_4B25A8);
#endif
#define NAMESPACE dup4_b_area_trd_part_2
#include "common/UnkEnemyFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2550", func_80219530_4B2720);
#define NAMESPACE dup4_b_area_trd_part_2
#include "common/GetLastActorEventType.inc.c"
#define NAMESPACE b_area_trd_part_2

View File

@ -1,26 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_2
#define NAMESPACE dup_b_area_trd_part_2
#include "common/StartRumbleWithParams.inc.c"
#define NAMESPACE b_area_trd_part_2
// Requires data migration to match
#ifdef NON_MATCHING
#define NAMESPACE dup_b_area_trd_part_2
#include "common/UnkWhirlwindEffectFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
#else
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2D10", func_80219B78_4B2D68);
#endif
#define NAMESPACE dup_b_area_trd_part_2
#include "common/UnkEnemyFunc.inc.c"
#define NAMESPACE b_area_trd_part_2
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2D10", func_80219CF0_4B2EE0);
#define NAMESPACE dup_b_area_trd_part_2
#include "common/GetLastActorEventType.inc.c"
#define NAMESPACE b_area_trd_part_2

View File

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

View File

@ -0,0 +1,821 @@
#include "common.h"
#include "effects.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#include "sprite/npc/koopa_bros.h"
#define NAMESPACE b_area_trd_part_2_blue_ninja_koopa
extern s32 N(idleAnimations_8022B5B0)[];
extern EvtSource N(init_8022DC2C);
extern EvtSource N(idle_8022DD20);
extern EvtSource N(handleEvent_8022DD88);
extern EvtSource N(nextTurn_8022E424);
extern EvtSource N(takeTurn_8022E414);
s32 N(defenseTable_8022B4A0)[] = {
ELEMENT_NORMAL, 1,
ELEMENT_END,
};
s32 N(defenseTable_8022B4AC)[] = {
ELEMENT_NORMAL, 0,
ELEMENT_END,
};
s32 N(statusTable_8022B4B8)[] = {
STATUS_NORMAL, 0,
STATUS_DEFAULT, 0,
STATUS_SLEEP, 40,
STATUS_POISON, 0,
STATUS_FROZEN, 0,
STATUS_DIZZY, 30,
STATUS_FEAR, 0,
STATUS_STATIC, 0,
STATUS_PARALYZE, 60,
STATUS_SHRINK, 100,
STATUS_STOP, 75,
STATUS_DEFAULT_TURN_MOD, 0,
STATUS_SLEEP_TURN_MOD, -1,
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, -1,
STATUS_SHRINK_TURN_MOD, -1,
STATUS_STOP_TURN_MOD, -2,
STATUS_END,
};
ActorPartDesc N(partsTable_8022B564)[] = {
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
.index = 1,
.posOffset = { 0, 0, 0 },
.targetOffset = { -5, 36 },
.opacity = 255,
.idleAnimations = N(idleAnimations_8022B5B0),
.defenseTable = N(defenseTable_8022B4A0),
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
.elementImmunityFlags = 0,
.unk_1C = 0,
},
};
ActorDesc NAMESPACE = {
.flags = ACTOR_FLAG_40000 | ACTOR_FLAG_NO_ATTACK,
.type = ACTOR_TYPE_BLUE_NINJAKOOPA,
.level = 17,
.maxHP = 5,
.partCount = ARRAY_COUNT(N(partsTable_8022B564)),
.partsData = N(partsTable_8022B564),
.script = N(init_8022DC2C),
.statusTable = N(statusTable_8022B4B8),
.escapeChance = 0,
.airLiftChance = 0,
.spookChance = 0,
.baseStatusChance = 0,
.upAndAwayChance = 0,
.spinSmashReq = 0,
.powerBounceChance = 85,
.coinReward = 0,
.size = { 38, 42 },
.hpBarOffset = { 0, 0 },
.statusIconOffset = { -10, 20 },
.statusMessageOffset = { 10, 20 },
};
s32 N(idleAnimations_8022B5B0)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_4,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_00_Anim_15,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_0,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_00_Anim_18,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_00_Anim_18,
STATUS_END,
};
s32 N(idleAnimations_8022B604)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_5,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_8022B640)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_D,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_8022B67C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_C,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_00_Anim_17,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_00_Anim_22,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_00_Anim_22,
STATUS_END,
};
s32 N(idleAnimations_8022B6D0)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_A,
STATUS_END,
};
s32 N(idleAnimations_8022B6DC)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_00_Anim_C,
STATUS_END,
};
#include "common/StartRumbleWithParams.inc.c"
// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal.
BSS static char pad;
#include "common/UnkWhirlwindEffectFunc.inc.c"
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80219530_4B2720(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2550", func_80219530_4B2720);
#include "common/GetLastActorEventType.inc.c"
EvtSource N(8022B6E8) = {
EVT_CALL(SetOwnerID, ACTOR_ENEMY2)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_NE(LW(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
EVT_SWITCH(LW(10))
EVT_CASE_EQ(0)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B5B0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_4)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B604)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_5)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B640)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_D)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(2)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B640)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(3)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(N(GetLastActorEventType), 14)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_E)
EVT_SET_CONST(LW(2), -1)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B640)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_9)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_1F)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_20)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80219530_4B2720, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6DC)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B67C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022B4AC)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80219530_4B2720, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorSize, ACTOR_SELF, LW(3), LW(4))
EVT_DIVF(LW(3), EVT_FLOAT(2.0))
EVT_ADDF(LW(1), LW(3))
EVT_ADDF(LW(2), EVT_FLOAT(5.0))
EVT_DIVF(LW(3), EVT_FLOAT(10.0))
EVT_CALL(PlayEffect, EFFECT_ID_27, 0, LW(0), LW(1), LW(2), LW(3), 10, 0, 0, 0, 0, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6DC)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B67C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022B4AC)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(9)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_GT(LW(0), 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, LW(0))
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_ELSE
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(12)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_THREAD
EVT_SET(LW(0), 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 18, 0)
EVT_LOOP(4)
EVT_ADD(LW(0), 22)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
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, 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(SetTargetOffset, ACTOR_SELF, 1, -5, 36)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 2)
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022B4A0)))
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B5B0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_4)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 2)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_WAIT_FRAMES(20)
EVT_END_SWITCH
EVT_CASE_EQ(10)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_END_SWITCH
EVT_CASE_EQ(7)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x356)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x355)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x354)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(10))
EVT_LABEL(0)
EVT_CALL(GetActorPos, LW(10), LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(1))
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, LW(1), BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(13.0))
EVT_CASE_EQ(3)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_END_SWITCH
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(11))
EVT_SET(LW(0), LW(11))
EVT_SUB(LW(0), 1)
EVT_MUL(LW(0), 18)
EVT_SWITCH(LW(11))
EVT_CASE_EQ(4)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -10)
EVT_CASE_EQ(3)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -7)
EVT_CASE_EQ(2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -4)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CASE_EQ(3)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(2)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_4)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 1, 0)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(5)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_CASE_EQ(6)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_END_SWITCH
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 36, -7)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 18, -4)
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 0, 0)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(5)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_CASE_EQ(6)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_20)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_5)
EVT_WAIT_FRAMES(30)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(8)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(0)
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_3)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x353)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_LABEL(0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_3)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), -513)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_END_SWITCH
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_8022DC2C) = {
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8022E414)))
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_8022DD20)))
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8022DD88)))
EVT_CALL(BindNextTurn, ACTOR_SELF, EVT_ADDR(N(nextTurn_8022E424)))
EVT_CALL(SetActorPos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(ForceHomePos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
EVT_RETURN
EVT_END
};
EvtSource N(idle_8022DD20) = {
EVT_RETURN
EVT_END
};
s32 N(intTable_8022DD30)[] = {
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_8022DD88) = {
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_koopa_bros_Palette_00_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_bros_Palette_00_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_00_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_00_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_F)
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_bros_Palette_00_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_bros_Palette_00_Anim_B)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B67C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022B4AC)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_B)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_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_THREAD
EVT_ELSE
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_C)
EVT_END_IF
EVT_USE_BUF(EVT_ADDR(N(intTable_8022DD30)))
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_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_C)
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_bros_Palette_00_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_00_Anim_4)
EVT_EXEC_WAIT(DoRecover)
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_8022E414) = {
EVT_RETURN
EVT_END
};
EvtSource N(nextTurn_8022E424) = {
EVT_RETURN
EVT_END
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,821 @@
#include "common.h"
#include "effects.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#include "sprite/npc/koopa_bros.h"
#define NAMESPACE b_area_trd_part_2_green_ninja_koopa
extern s32 N(idleAnimations_80225670)[];
extern EvtSource N(init_80227CEC);
extern EvtSource N(idle_80227DE0);
extern EvtSource N(handleEvent_80227E48);
extern EvtSource N(nextTurn_802284E4);
extern EvtSource N(takeTurn_802284D4);
s32 N(defenseTable_80225560)[] = {
ELEMENT_NORMAL, 1,
ELEMENT_END,
};
s32 N(defenseTable_8022556C)[] = {
ELEMENT_NORMAL, 0,
ELEMENT_END,
};
s32 N(statusTable_80225578)[] = {
STATUS_NORMAL, 0,
STATUS_DEFAULT, 0,
STATUS_SLEEP, 70,
STATUS_POISON, 0,
STATUS_FROZEN, 0,
STATUS_DIZZY, 45,
STATUS_FEAR, 0,
STATUS_STATIC, 0,
STATUS_PARALYZE, 75,
STATUS_SHRINK, 100,
STATUS_STOP, 75,
STATUS_DEFAULT_TURN_MOD, 0,
STATUS_SLEEP_TURN_MOD, -1,
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, -1,
STATUS_SHRINK_TURN_MOD, -1,
STATUS_STOP_TURN_MOD, -2,
STATUS_END,
};
ActorPartDesc N(partsTable_80225624)[] = {
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
.index = 1,
.posOffset = { 0, 0, 0 },
.targetOffset = { -5, 36 },
.opacity = 255,
.idleAnimations = N(idleAnimations_80225670),
.defenseTable = N(defenseTable_80225560),
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
.elementImmunityFlags = 0,
.unk_1C = 0,
},
};
ActorDesc NAMESPACE = {
.flags = ACTOR_FLAG_40000 | ACTOR_FLAG_NO_ATTACK,
.type = ACTOR_TYPE_GREEN_NINJAKOOPA,
.level = 16,
.maxHP = 5,
.partCount = ARRAY_COUNT(N(partsTable_80225624)),
.partsData = N(partsTable_80225624),
.script = N(init_80227CEC),
.statusTable = N(statusTable_80225578),
.escapeChance = 0,
.airLiftChance = 0,
.spookChance = 0,
.baseStatusChance = 0,
.upAndAwayChance = 0,
.spinSmashReq = 0,
.powerBounceChance = 85,
.coinReward = 0,
.size = { 38, 42 },
.hpBarOffset = { 0, 0 },
.statusIconOffset = { -10, 20 },
.statusMessageOffset = { 10, 20 },
};
s32 N(idleAnimations_80225670)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_4,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_03_Anim_15,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_0,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_03_Anim_18,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_03_Anim_18,
STATUS_END,
};
s32 N(idleAnimations_802256C4)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_5,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_80225700)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_D,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_8022573C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_C,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_03_Anim_17,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_03_Anim_22,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_03_Anim_22,
STATUS_END,
};
s32 N(idleAnimations_80225790)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_A,
STATUS_END,
};
s32 N(idleAnimations_8022579C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_03_Anim_C,
STATUS_END,
};
#include "common/StartRumbleWithParams.inc.c"
// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal.
BSS static char pad;
#include "common/UnkWhirlwindEffectFunc.inc.c"
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_802185B0_4B17A0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B15D0", func_802185B0_4B17A0);
#include "common/GetLastActorEventType.inc.c"
EvtSource N(802257A8) = {
EVT_CALL(SetOwnerID, ACTOR_ENEMY0)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_NE(LW(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
EVT_SWITCH(LW(10))
EVT_CASE_EQ(0)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225670)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_4)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802256C4)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_5)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225700)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_D)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(2)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225700)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(3)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(N(GetLastActorEventType), 14)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_E)
EVT_SET_CONST(LW(2), -1)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225700)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_9)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_1F)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_20)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_802185B0_4B17A0, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022579C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022573C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022556C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_802185B0_4B17A0, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorSize, ACTOR_SELF, LW(3), LW(4))
EVT_DIVF(LW(3), EVT_FLOAT(2.0))
EVT_ADDF(LW(1), LW(3))
EVT_ADDF(LW(2), EVT_FLOAT(5.0))
EVT_DIVF(LW(3), EVT_FLOAT(10.0))
EVT_CALL(PlayEffect, EFFECT_ID_27, 0, LW(0), LW(1), LW(2), LW(3), 10, 0, 0, 0, 0, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022579C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022573C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022556C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(9)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_GT(LW(0), 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, LW(0))
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_ELSE
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(12)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_THREAD
EVT_SET(LW(0), 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 18, 0)
EVT_LOOP(4)
EVT_ADD(LW(0), 22)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
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, 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(SetTargetOffset, ACTOR_SELF, 1, -5, 36)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 2)
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_80225560)))
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225670)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_4)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 2)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_WAIT_FRAMES(20)
EVT_END_SWITCH
EVT_CASE_EQ(10)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_END_SWITCH
EVT_CASE_EQ(7)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x356)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x355)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x354)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(10))
EVT_LABEL(0)
EVT_CALL(GetActorPos, LW(10), LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(1))
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, LW(1), BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(13.0))
EVT_CASE_EQ(3)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_END_SWITCH
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(11))
EVT_SET(LW(0), LW(11))
EVT_SUB(LW(0), 1)
EVT_MUL(LW(0), 18)
EVT_SWITCH(LW(11))
EVT_CASE_EQ(4)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -10)
EVT_CASE_EQ(3)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -7)
EVT_CASE_EQ(2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -4)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CASE_EQ(3)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(2)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_4)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 1, 0)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(5)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_CASE_EQ(6)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_END_SWITCH
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 36, -7)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 18, -4)
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 0, 0)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(5)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_CASE_EQ(6)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_20)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_5)
EVT_WAIT_FRAMES(30)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(8)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(0)
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_3)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x353)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_LABEL(0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, -127, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_3)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), -513)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_END_SWITCH
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_80227CEC) = {
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_802284D4)))
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_80227DE0)))
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_80227E48)))
EVT_CALL(BindNextTurn, ACTOR_SELF, EVT_ADDR(N(nextTurn_802284E4)))
EVT_CALL(SetActorPos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(ForceHomePos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
EVT_RETURN
EVT_END
};
EvtSource N(idle_80227DE0) = {
EVT_RETURN
EVT_END
};
s32 N(intTable_80227DF0)[] = {
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_80227E48) = {
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_koopa_bros_Palette_03_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_bros_Palette_03_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_03_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_03_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_F)
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_bros_Palette_03_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_bros_Palette_03_Anim_B)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022573C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022556C)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_B)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_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_THREAD
EVT_ELSE
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_C)
EVT_END_IF
EVT_USE_BUF(EVT_ADDR(N(intTable_80227DF0)))
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_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_C)
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_bros_Palette_03_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_03_Anim_4)
EVT_EXEC_WAIT(DoRecover)
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_802284D4) = {
EVT_RETURN
EVT_END
};
EvtSource N(nextTurn_802284E4) = {
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,821 @@
#include "common.h"
#include "effects.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#include "sprite/npc/koopa_bros.h"
#define NAMESPACE b_area_trd_part_2_red_ninja_koopa
extern s32 N(idleAnimations_80228610)[];
extern EvtSource N(init_8022AC8C);
extern EvtSource N(idle_8022AD80);
extern EvtSource N(handleEvent_8022ADE8);
extern EvtSource N(nextTurn_8022B484);
extern EvtSource N(takeTurn_8022B474);
s32 N(defenseTable_80228500)[] = {
ELEMENT_NORMAL, 1,
ELEMENT_END,
};
s32 N(defenseTable_8022850C)[] = {
ELEMENT_NORMAL, 0,
ELEMENT_END,
};
s32 N(statusTable_80228518)[] = {
STATUS_NORMAL, 0,
STATUS_DEFAULT, 0,
STATUS_SLEEP, 30,
STATUS_POISON, 0,
STATUS_FROZEN, 0,
STATUS_DIZZY, 60,
STATUS_FEAR, 0,
STATUS_STATIC, 0,
STATUS_PARALYZE, 60,
STATUS_SHRINK, 100,
STATUS_STOP, 75,
STATUS_DEFAULT_TURN_MOD, 0,
STATUS_SLEEP_TURN_MOD, -1,
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, -1,
STATUS_SHRINK_TURN_MOD, -1,
STATUS_STOP_TURN_MOD, -2,
STATUS_END,
};
ActorPartDesc N(partsTable_802285C4)[] = {
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
.index = 1,
.posOffset = { 0, 0, 0 },
.targetOffset = { -5, 36 },
.opacity = 255,
.idleAnimations = N(idleAnimations_80228610),
.defenseTable = N(defenseTable_80228500),
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
.elementImmunityFlags = 0,
.unk_1C = 0,
},
};
ActorDesc NAMESPACE = {
.flags = ACTOR_FLAG_40000 | ACTOR_FLAG_NO_ATTACK,
.type = ACTOR_TYPE_RED_NINJAKOOPA,
.level = 17,
.maxHP = 5,
.partCount = ARRAY_COUNT(N(partsTable_802285C4)),
.partsData = N(partsTable_802285C4),
.script = N(init_8022AC8C),
.statusTable = N(statusTable_80228518),
.escapeChance = 0,
.airLiftChance = 0,
.spookChance = 0,
.baseStatusChance = 0,
.upAndAwayChance = 0,
.spinSmashReq = 0,
.powerBounceChance = 85,
.coinReward = 0,
.size = { 38, 42 },
.hpBarOffset = { 0, 0 },
.statusIconOffset = { -10, 20 },
.statusMessageOffset = { 10, 20 },
};
s32 N(idleAnimations_80228610)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_4,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_01_Anim_15,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_0,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_01_Anim_18,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_01_Anim_18,
STATUS_END,
};
s32 N(idleAnimations_80228664)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_5,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_802286A0)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_D,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_802286DC)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_C,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_01_Anim_17,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_01_Anim_22,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_01_Anim_22,
STATUS_END,
};
s32 N(idleAnimations_80228730)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_A,
STATUS_END,
};
s32 N(idleAnimations_8022873C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_01_Anim_C,
STATUS_END,
};
#include "common/StartRumbleWithParams.inc.c"
// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal.
BSS static char pad;
#include "common/UnkWhirlwindEffectFunc.inc.c"
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80218D70_4B1F60(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B1D90", func_80218D70_4B1F60);
#include "common/GetLastActorEventType.inc.c"
EvtSource N(80228748) = {
EVT_CALL(SetOwnerID, ACTOR_ENEMY3)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_NE(LW(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
EVT_SWITCH(LW(10))
EVT_CASE_EQ(0)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228610)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_4)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228664)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_5)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286A0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_D)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(2)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286A0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(3)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(N(GetLastActorEventType), 14)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_E)
EVT_SET_CONST(LW(2), -1)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286A0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_9)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_1F)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_20)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80218D70_4B1F60, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022873C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286DC)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022850C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80218D70_4B1F60, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorSize, ACTOR_SELF, LW(3), LW(4))
EVT_DIVF(LW(3), EVT_FLOAT(2.0))
EVT_ADDF(LW(1), LW(3))
EVT_ADDF(LW(2), EVT_FLOAT(5.0))
EVT_DIVF(LW(3), EVT_FLOAT(10.0))
EVT_CALL(PlayEffect, EFFECT_ID_27, 0, LW(0), LW(1), LW(2), LW(3), 10, 0, 0, 0, 0, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022873C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286DC)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022850C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(9)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_GT(LW(0), 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, LW(0))
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_ELSE
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(12)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_THREAD
EVT_SET(LW(0), 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 18, 0)
EVT_LOOP(4)
EVT_ADD(LW(0), 22)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
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, 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(SetTargetOffset, ACTOR_SELF, 1, -5, 36)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 2)
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_80228500)))
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228610)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_4)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 2)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_WAIT_FRAMES(20)
EVT_END_SWITCH
EVT_CASE_EQ(10)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_END_SWITCH
EVT_CASE_EQ(7)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x356)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x355)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x354)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(10))
EVT_LABEL(0)
EVT_CALL(GetActorPos, LW(10), LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(1))
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, LW(1), BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(13.0))
EVT_CASE_EQ(3)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_END_SWITCH
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(11))
EVT_SET(LW(0), LW(11))
EVT_SUB(LW(0), 1)
EVT_MUL(LW(0), 18)
EVT_SWITCH(LW(11))
EVT_CASE_EQ(4)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -10)
EVT_CASE_EQ(3)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -7)
EVT_CASE_EQ(2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -4)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CASE_EQ(3)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(2)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_4)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 1, 0)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(5)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_CASE_EQ(6)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_END_SWITCH
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 36, -7)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 18, -4)
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 0, 0)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(5)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_CASE_EQ(6)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_20)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_5)
EVT_WAIT_FRAMES(30)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(8)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(0)
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_3)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x353)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_LABEL(0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_3)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), -513)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_END_SWITCH
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_8022AC8C) = {
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_8022B474)))
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_8022AD80)))
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_8022ADE8)))
EVT_CALL(BindNextTurn, ACTOR_SELF, EVT_ADDR(N(nextTurn_8022B484)))
EVT_CALL(SetActorPos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(ForceHomePos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
EVT_RETURN
EVT_END
};
EvtSource N(idle_8022AD80) = {
EVT_RETURN
EVT_END
};
s32 N(intTable_8022AD90)[] = {
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_8022ADE8) = {
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_koopa_bros_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_bros_Palette_01_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_01_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_01_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_F)
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_bros_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_bros_Palette_01_Anim_B)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_802286DC)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022850C)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_B)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_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_THREAD
EVT_ELSE
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_C)
EVT_END_IF
EVT_USE_BUF(EVT_ADDR(N(intTable_8022AD90)))
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_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_C)
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_bros_Palette_01_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_01_Anim_4)
EVT_EXEC_WAIT(DoRecover)
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_8022B474) = {
EVT_RETURN
EVT_END
};
EvtSource N(nextTurn_8022B484) = {
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,821 @@
#include "common.h"
#include "effects.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#include "sprite/npc/koopa_bros.h"
#define NAMESPACE b_area_trd_part_2_yellow_ninja_koopa
extern s32 N(idleAnimations_8022E550)[];
extern EvtSource N(init_80230BCC);
extern EvtSource N(idle_80230CC0);
extern EvtSource N(handleEvent_80230D28);
extern EvtSource N(nextTurn_802313C4);
extern EvtSource N(takeTurn_802313B4);
s32 N(defenseTable_8022E440)[] = {
ELEMENT_NORMAL, 1,
ELEMENT_END,
};
s32 N(defenseTable_8022E44C)[] = {
ELEMENT_NORMAL, 0,
ELEMENT_END,
};
s32 N(statusTable_8022E458)[] = {
STATUS_NORMAL, 0,
STATUS_DEFAULT, 0,
STATUS_SLEEP, 60,
STATUS_POISON, 0,
STATUS_FROZEN, 0,
STATUS_DIZZY, 75,
STATUS_FEAR, 0,
STATUS_STATIC, 0,
STATUS_PARALYZE, 75,
STATUS_SHRINK, 100,
STATUS_STOP, 75,
STATUS_DEFAULT_TURN_MOD, 0,
STATUS_SLEEP_TURN_MOD, -1,
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, -1,
STATUS_SHRINK_TURN_MOD, -1,
STATUS_STOP_TURN_MOD, -2,
STATUS_END,
};
ActorPartDesc N(partsTable_8022E504)[] = {
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
.index = 1,
.posOffset = { 0, 0, 0 },
.targetOffset = { -5, 36 },
.opacity = 255,
.idleAnimations = N(idleAnimations_8022E550),
.defenseTable = N(defenseTable_8022E440),
.eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
.elementImmunityFlags = 0,
.unk_1C = 0,
},
};
ActorDesc NAMESPACE = {
.flags = ACTOR_FLAG_40000 | ACTOR_FLAG_NO_ATTACK,
.type = ACTOR_TYPE_YELLOW_NINJAKOOPA,
.level = 16,
.maxHP = 5,
.partCount = ARRAY_COUNT(N(partsTable_8022E504)),
.partsData = N(partsTable_8022E504),
.script = N(init_80230BCC),
.statusTable = N(statusTable_8022E458),
.escapeChance = 0,
.airLiftChance = 0,
.spookChance = 0,
.baseStatusChance = 0,
.upAndAwayChance = 0,
.spinSmashReq = 0,
.powerBounceChance = 85,
.coinReward = 0,
.size = { 38, 42 },
.hpBarOffset = { 0, 0 },
.statusIconOffset = { -10, 20 },
.statusMessageOffset = { 10, 20 },
};
s32 N(idleAnimations_8022E550)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_4,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_02_Anim_15,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_0,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_02_Anim_18,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_02_Anim_18,
STATUS_END,
};
s32 N(idleAnimations_8022E5A4)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_5,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_8022E5E0)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_D,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_1,
STATUS_END,
};
s32 N(idleAnimations_8022E61C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_C,
STATUS_STONE, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_SLEEP, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_POISON, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_STOP, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_STATIC, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_PARALYZE, NPC_ANIM_koopa_bros_Palette_02_Anim_17,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_02_Anim_22,
STATUS_DIZZY, NPC_ANIM_koopa_bros_Palette_02_Anim_22,
STATUS_END,
};
s32 N(idleAnimations_8022E670)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_A,
STATUS_END,
};
s32 N(idleAnimations_8022E67C)[] = {
STATUS_NORMAL, NPC_ANIM_koopa_bros_Palette_02_Anim_C,
STATUS_END,
};
#include "common/StartRumbleWithParams.inc.c"
// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal.
BSS static char pad;
#include "common/UnkWhirlwindEffectFunc.inc.c"
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80219CF0_4B2EE0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2D10", func_80219CF0_4B2EE0);
#include "common/GetLastActorEventType.inc.c"
EvtSource N(8022E688) = {
EVT_CALL(SetOwnerID, ACTOR_ENEMY1)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_NE(LW(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
EVT_SWITCH(LW(10))
EVT_CASE_EQ(0)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E550)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_4)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E5A4)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_5)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E5E0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_D)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(2)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E5E0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(3)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(N(GetLastActorEventType), 14)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_E)
EVT_SET_CONST(LW(2), -1)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), 192)
EVT_IF_NE(LW(0), 192)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E5E0)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_D)
EVT_ELSE
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_A)
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_9)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_1F)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_20)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80219CF0_4B2EE0, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E67C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E61C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022E44C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(3)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_SET(LF(0), 0)
EVT_IF_EQ(LW(0), 3)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6005859375))
EVT_CALL(func_80219CF0_4B2EE0, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(N(StartRumbleWithParams), 256, 5)
EVT_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(0.80078125))
EVT_END_THREAD
EVT_END_IF
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorSize, ACTOR_SELF, LW(3), LW(4))
EVT_DIVF(LW(3), EVT_FLOAT(2.0))
EVT_ADDF(LW(1), LW(3))
EVT_ADDF(LW(2), EVT_FLOAT(5.0))
EVT_DIVF(LW(3), EVT_FLOAT(10.0))
EVT_CALL(PlayEffect, EFFECT_ID_27, 0, LW(0), LW(1), LW(2), LW(3), 10, 0, 0, 0, 0, 0, 0, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_C)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E67C)))
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_40000, 0)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
EVT_CALL(GetActorPos, 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_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E61C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022E44C)))
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(9)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(1)
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_GT(LW(0), 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, LW(0))
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_ELSE
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
EVT_WAIT_FRAMES(12)
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorSounds, ACTOR_SELF, 2, 0, 0)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_JUMP_3E2)
EVT_THREAD
EVT_SET(LW(0), 0)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 18, 0)
EVT_LOOP(4)
EVT_ADD(LW(0), 22)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
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, 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(SetTargetOffset, ACTOR_SELF, 1, -5, 36)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 2)
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022E440)))
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E550)))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_4)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 2)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_WAIT_FRAMES(20)
EVT_END_SWITCH
EVT_CASE_EQ(10)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_END_SWITCH
EVT_CASE_EQ(7)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(3)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x356)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x355)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x354)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(10))
EVT_LABEL(0)
EVT_CALL(GetActorPos, LW(10), LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(1))
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, LW(1), BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(13.0))
EVT_CASE_EQ(3)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(2)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_END_SWITCH
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(11))
EVT_SET(LW(0), LW(11))
EVT_SUB(LW(0), 1)
EVT_MUL(LW(0), 18)
EVT_SWITCH(LW(11))
EVT_CASE_EQ(4)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -10)
EVT_CASE_EQ(3)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -7)
EVT_CASE_EQ(2)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, LW(0), -4)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 3, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CASE_EQ(3)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(2)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_4)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 1, 0)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(5)
EVT_CASE_OR_EQ(6)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 60)
EVT_WAIT_FRAMES(60)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(14.0))
EVT_CASE_EQ(5)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(15.0))
EVT_CASE_EQ(6)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_END_SWITCH
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 36, -7)
EVT_CASE_EQ(5)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 18, -4)
EVT_CASE_EQ(6)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 4, LW(1))
EVT_CALL(GetHomePos, LW(1), LW(2), LW(3), LW(4))
EVT_SET(LW(4), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(2), LW(3), LW(4))
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 0, 0)
EVT_END_SWITCH
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(4)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 50)
EVT_WAIT_FRAMES(50)
EVT_CASE_EQ(5)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 40)
EVT_WAIT_FRAMES(40)
EVT_CASE_EQ(6)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_END_SWITCH
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_20)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_5)
EVT_WAIT_FRAMES(30)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CASE_EQ(8)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_EQ(0)
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_3)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_1F)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x353)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_7)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_THREAD
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, BS_FLAGS1_10)
EVT_SWITCH(LW(0))
EVT_CASE_EQ(HIT_RESULT_LUCKY)
EVT_WAIT_FRAMES(20)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
EVT_RETURN
EVT_CASE_EQ(HIT_RESULT_MISS)
EVT_RETURN
EVT_END_SWITCH
EVT_LABEL(0)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_IF_GT(LW(0), LW(3))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(0), 0, 65535, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE)
EVT_END_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x37C)
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, 0, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(16.0))
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, -160, LW(1), LW(2))
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
EVT_CALL(ResetActorSounds, ACTOR_SELF, 0)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_THREAD
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 15, 0)
EVT_SET(LW(0), 0)
EVT_LOOP(40)
EVT_SUB(LW(0), 45)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartRotationOffset, ACTOR_SELF, 1, 0, 0, 0)
EVT_CALL(SetPartRotation, ACTOR_SELF, 1, 0, 0, 0)
EVT_END_THREAD
EVT_CALL(GetHomePos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SET(LW(2), 15)
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
EVT_CALL(JumpToGoal, ACTOR_SELF, 40, FALSE, TRUE, FALSE)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkWhirlwindEffectFunc), LW(0), LW(1), LW(2), 30)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, 0x20F3)
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_1B)
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 22)
EVT_ADD(LW(1), 19)
EVT_CALL(PlayEffect, EFFECT_ID_1A, 0, LW(0), LW(1), LW(2), 30, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_3)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(RunToGoal, ACTOR_SELF, 10, FALSE)
EVT_CALL(GetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_BITWISE_AND_CONST(LW(0), -513)
EVT_CALL(SetActorVar, ACTOR_ENEMY4, 0, LW(0))
EVT_END_SWITCH
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_80230BCC) = {
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_802313B4)))
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_80230CC0)))
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_80230D28)))
EVT_CALL(BindNextTurn, ACTOR_SELF, EVT_ADDR(N(nextTurn_802313C4)))
EVT_CALL(SetActorPos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(ForceHomePos, ACTOR_SELF, 0, -1000, 0)
EVT_CALL(HPBarToHome, ACTOR_SELF)
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 1, ACTOR_PART_FLAG_NO_TARGET, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
EVT_RETURN
EVT_END
};
EvtSource N(idle_80230CC0) = {
EVT_RETURN
EVT_END
};
s32 N(intTable_80230CD0)[] = {
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_80230D28) = {
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_koopa_bros_Palette_02_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_bros_Palette_02_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_02_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_CASE_EQ(EVENT_BURN_DEATH)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_E)
EVT_SET_CONST(LW(2), NPC_ANIM_koopa_bros_Palette_02_Anim_F)
EVT_EXEC_WAIT(DoBurnHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_F)
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_bros_Palette_02_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_bros_Palette_02_Anim_B)
EVT_EXEC_WAIT(DoSpinSmashHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_FLIP_TRIGGER)
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 1)
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 2)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E61C)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_ADDR(N(defenseTable_8022E44C)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 18)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_B)
EVT_CALL(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
EVT_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_THREAD
EVT_ELSE
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_C)
EVT_END_IF
EVT_USE_BUF(EVT_ADDR(N(intTable_80230CD0)))
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_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
EVT_CASE_OR_EQ(EVENT_IMMUNE)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_8)
EVT_EXEC_WAIT(DoImmune)
EVT_CALL(GetStatusFlags, ACTOR_SELF, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_9)
EVT_WAIT_FRAMES(10)
EVT_END_IF
EVT_ELSE
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_C)
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_bros_Palette_02_Anim_B)
EVT_EXEC_WAIT(DoNormalHit)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_B)
EVT_EXEC_WAIT(DoDeath)
EVT_RETURN
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
EVT_IF_EQ(LW(0), 0)
EVT_SET_CONST(LW(0), 1)
EVT_SET_CONST(LW(1), NPC_ANIM_koopa_bros_Palette_02_Anim_4)
EVT_EXEC_WAIT(DoRecover)
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_802313B4) = {
EVT_RETURN
EVT_END
};
EvtSource N(nextTurn_802313C4) = {
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,53 @@
#include "common.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#define NAMESPACE b_area_trd_part_2
extern ActorDesc N(green_ninja_koopa);
extern ActorDesc N(yellow_ninja_koopa);
extern ActorDesc N(blue_ninja_koopa);
extern ActorDesc N(red_ninja_koopa);
extern ActorDesc N(fake_bowser);
extern Stage N(trd_00);
extern Stage N(trd_01);
extern Stage N(trd_02);
extern Stage N(trd_02b);
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(green_ninja_koopa), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(yellow_ninja_koopa), .home = { .index = 0 }, .priority = 9 },
{ .actor = &N(blue_ninja_koopa), .home = { .index = 0 }, .priority = 8 },
{ .actor = &N(red_ninja_koopa), .home = { .index = 0 }, .priority = 7 },
{ .actor = &N(fake_bowser), .home = { .index = 3 }, .priority = 6 },
};
BattleList N(formationTable) = {
BATTLE("ノコブロス", N(formation_00), &N(trd_00)),
{},
};
StageList N(stageTable) = {
{ "trd_00", &N(trd_00) },
{ "trd_01", &N(trd_01) },
{ "trd_02", &N(trd_02) },
{ "trd_02b", &N(trd_02b) },
{ "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_2_trd_00
EvtSource N(beforeBattle_802313E0) = {
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_8023141C) = {
EVT_RETURN
EVT_END
};
s32 N(foregroundModelList_8023142C)[] = {
0x00000009, 0x00000000,
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt00_shape",
.hit = "trd_bt00_hit",
.preBattle = N(beforeBattle_802313E0),
.postBattle = N(afterBattle_8023141C),
.foregroundModelList = N(foregroundModelList_8023142C),
};

View File

@ -0,0 +1,24 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_01
EvtSource N(beforeBattle_80231460) = {
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_8023149C) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt01_shape",
.hit = "trd_bt01_hit",
.preBattle = N(beforeBattle_80231460),
.postBattle = N(afterBattle_8023149C),
};

View File

@ -0,0 +1,140 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_02
EvtSource N(802314E0) = {
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(802315F8) = {
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_80231BA4) = {
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(802315F8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 17)
EVT_EXEC(N(802315F8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 15)
EVT_EXEC(N(802315F8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 13)
EVT_EXEC(N(802315F8))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_80231C98) = {
EVT_RETURN
EVT_END
};
s32 N(foregroundModelList_80231CA8)[] = {
0x00000016, 0x00000000,
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt02_shape",
.hit = "trd_bt02_hit",
.preBattle = N(beforeBattle_80231BA4),
.postBattle = N(afterBattle_80231C98),
.foregroundModelList = N(foregroundModelList_80231CA8),
};

View File

@ -0,0 +1,137 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_02b
EvtSource N(80231CE0) = {
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(80231DF8) = {
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_802323A4) = {
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(80231DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 17)
EVT_EXEC(N(80231DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 15)
EVT_EXEC(N(80231DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 13)
EVT_EXEC(N(80231DF8))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_802324C0) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt02_shape",
.hit = "trd_bt02_hit",
.preBattle = N(beforeBattle_802323A4),
.postBattle = N(afterBattle_802324C0),
};

View File

@ -0,0 +1,39 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_03
#include "world/common/clouds.inc.c"
EvtSource N(beforeBattle_80232888) = {
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_80232920) = {
EVT_RETURN
EVT_END
};
s32 N(foregroundModelList_80232930)[] = {
0x0000000F, 0x0000000E, 0x0000000D, 0x00000000,
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt03_shape",
.hit = "trd_bt03_hit",
.bg = "nok_bg",
.preBattle = N(beforeBattle_80232888),
.postBattle = N(afterBattle_80232920),
.foregroundModelList = N(foregroundModelList_80232930),
};

View File

@ -0,0 +1,87 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_04
EvtSource N(80232970) = {
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(80232A40) = {
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(80232B2C) = {
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_80232C18) = {
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(80232970))
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_80232CA0) = {
EVT_RETURN
EVT_END
};
s32 N(foregroundModelList_80232CB0)[] = {
0x0000000D, 0x00000000,
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt04_shape",
.hit = "trd_bt04_hit",
.preBattle = N(beforeBattle_80232C18),
.postBattle = N(afterBattle_80232CA0),
.foregroundModelList = N(foregroundModelList_80232CB0),
};

View File

@ -0,0 +1,139 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05
EvtSource N(80232CE0) = {
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(80232DF8) = {
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_802333A4) = {
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
EVT_THREAD
EVT_SET(LW(0), 27)
EVT_EXEC(N(80232DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 25)
EVT_EXEC(N(80232DF8))
EVT_END_THREAD
EVT_THREAD
EVT_SET(LW(0), 6)
EVT_EXEC(N(80232DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 4)
EVT_EXEC(N(80232DF8))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 2)
EVT_EXEC(N(80232DF8))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_802334B0) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.bg = "nok_bg",
.preBattle = N(beforeBattle_802333A4),
.postBattle = N(afterBattle_802334B0),
};

View File

@ -0,0 +1,131 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05b
EvtSource N(802334F0) = {
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(80233608) = {
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_80233BB4) = {
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_80233CB8) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.preBattle = N(beforeBattle_80233BB4),
.postBattle = N(afterBattle_80233CB8),
};

View File

@ -0,0 +1,139 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05c
EvtSource N(80233CF0) = {
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(80233E08) = {
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_802343B4) = {
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(80233E08))
EVT_THREAD
EVT_SET(LW(0), 6)
EVT_EXEC(N(80233E08))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 4)
EVT_EXEC(N(80233E08))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 2)
EVT_EXEC(N(80233E08))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_80234500) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.preBattle = N(beforeBattle_802343B4),
.postBattle = N(afterBattle_80234500),
};

View File

@ -0,0 +1,138 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05d
EvtSource N(80234540) = {
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(80234658) = {
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_80234C04) = {
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(80234658))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 4)
EVT_EXEC(N(80234658))
EVT_WAIT_FRAMES(5)
EVT_SET(LW(0), 2)
EVT_EXEC(N(80234658))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_80234D48) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.preBattle = N(beforeBattle_80234C04),
.postBattle = N(afterBattle_80234D48),
};

View File

@ -0,0 +1,129 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05e
EvtSource N(80234D80) = {
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(80234E98) = {
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_80235444) = {
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_80235520) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.preBattle = N(beforeBattle_80235444),
.postBattle = N(afterBattle_80235520),
};

View File

@ -0,0 +1,131 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_2_trd_05f
EvtSource N(80235560) = {
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(80235678) = {
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_80235C24) = {
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
EVT_SET(LW(0), 27)
EVT_EXEC(N(80235678))
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_80235D1C) = {
EVT_RETURN
EVT_END
};
Stage NAMESPACE = {
.texture = "trd_tex",
.shape = "trd_bt05_shape",
.hit = "trd_bt05_hit",
.preBattle = N(beforeBattle_80235C24),
.postBattle = N(afterBattle_80235D1C),
};

View File

@ -1,94 +0,0 @@
#include "common.h"
#define NAMESPACE b_area_trd_part_3
extern s32 D_80219040;
ApiStatus func_80218000_4CF1B0(Evt* script, s32 isInitialCall) {
Actor* actor = get_actor(script->owner1.actorID);
s32* sym;
if (isInitialCall) {
D_80219040 = 0;
}
sym = &D_80219040;
*sym += 15;
*sym = clamp_angle(*sym);
actor->unk_19A = sin_rad(*sym * TAU / 360.0f) * 3.0f;
return ApiStatus_BLOCK;
}
ApiStatus func_802180C8_4CF278(Evt* script, s32 isInitialCall) {
status_menu_start_blinking_sp();
return ApiStatus_DONE2;
}
ApiStatus func_802180E8_4CF298(Evt* script, s32 isInitialCall) {
status_menu_stop_blinking_sp();
return ApiStatus_DONE2;
}
ApiStatus func_80218108_4CF2B8(Evt* script, s32 isInitialCall) {
status_menu_start_blinking_hp();
status_menu_start_blinking_fp();
return ApiStatus_DONE2;
}
ApiStatus func_80218130_4CF2E0(Evt* script, s32 isInitialCall) {
status_menu_stop_blinking_hp();
status_menu_stop_blinking_fp();
return ApiStatus_DONE2;
}
ApiStatus func_80218158_4CF308(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
battleStatus->unk_4C = 0;
battleStatus->unk_5C = 0;
return ApiStatus_DONE2;
}
ApiStatus func_80218170_4CF320(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
if (isInitialCall) {
script->functionTemp[0] = 10;
}
battleStatus->flags2 &= ~0x2;
if (script->functionTemp[0] != 0) {
script->functionTemp[0]--;
return ApiStatus_BLOCK;
}
return ApiStatus_DONE2;
}
ApiStatus func_802181B4_4CF364(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
if (isInitialCall) {
script->functionTemp[0] = 10;
}
battleStatus->flags2 &= ~0x4;
if (script->functionTemp[0] != 0) {
script->functionTemp[0]--;
return ApiStatus_BLOCK;
}
return ApiStatus_DONE2;
}
ApiStatus func_802181F8_4CF3A8(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;
playerData->specialBarsFilled += 32;
return ApiStatus_DONE2;
}

View File

@ -0,0 +1,348 @@
#include "common.h"
#include "effects.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#include "sprite/npc/world_eldstar.h"
#define NAMESPACE b_area_trd_part_3_eldstar
extern EvtSource N(init_80218390);
extern EvtSource N(takeTurn_80218414);
extern EvtSource N(idle_802183E8);
extern EvtSource N(handleEvent_80218404);
extern EvtSource N(80218424);
extern s32 D_80219040;
s32 N(idleAnimations_80218280)[] = {
STATUS_NORMAL, NPC_ANIM_world_eldstar_Palette_00_Anim_1,
STATUS_END,
};
s32 N(defenseTable_8021828C)[] = {
ELEMENT_NORMAL, 0,
ELEMENT_END,
};
s32 N(statusTable_80218298)[] = {
STATUS_NORMAL, 0,
STATUS_DEFAULT, 0,
STATUS_SLEEP, 0,
STATUS_POISON, 0,
STATUS_FROZEN, 0,
STATUS_DIZZY, 0,
STATUS_FEAR, 0,
STATUS_STATIC, 0,
STATUS_PARALYZE, 0,
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_80218344)[] = {
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
.index = 1,
.posOffset = { 0, 0, 0 },
.targetOffset = { 0, 24 },
.opacity = 255,
.idleAnimations = N(idleAnimations_80218280),
.defenseTable = N(defenseTable_8021828C),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1C = 0,
},
};
ActorDesc NAMESPACE = {
.flags = ACTOR_FLAG_40000 | ACTOR_FLAG_NO_ATTACK,
.type = ACTOR_TYPE_ELDSTAR,
.level = 99,
.maxHP = 99,
.partCount = ARRAY_COUNT(N(partsTable_80218344)),
.partsData = N(partsTable_80218344),
.script = N(init_80218390),
.statusTable = N(statusTable_80218298),
.escapeChance = 0,
.airLiftChance = 0,
.spookChance = 0,
.baseStatusChance = 0,
.upAndAwayChance = 0,
.spinSmashReq = 0,
.powerBounceChance = 100,
.coinReward = 0,
.size = { 24, 32 },
.hpBarOffset = { 0, 0 },
.statusIconOffset = { -10, 20 },
.statusMessageOffset = { 10, 20 },
};
EvtSource N(init_80218390) = {
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn_80218414)))
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle_802183E8)))
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent_80218404)))
EVT_EXEC(N(80218424))
EVT_RETURN
EVT_END
};
ApiStatus func_80218000_4CF1B0(Evt* script, s32 isInitialCall) {
Actor* actor = get_actor(script->owner1.actorID);
s32* sym;
if (isInitialCall) {
D_80219040 = 0;
}
sym = &D_80219040;
*sym += 15;
*sym = clamp_angle(*sym);
actor->unk_19A = sin_rad(*sym * TAU / 360.0f) * 3.0f;
return ApiStatus_BLOCK;
}
ApiStatus func_802180C8_4CF278(Evt* script, s32 isInitialCall) {
status_menu_start_blinking_sp();
return ApiStatus_DONE2;
}
ApiStatus func_802180E8_4CF298(Evt* script, s32 isInitialCall) {
status_menu_stop_blinking_sp();
return ApiStatus_DONE2;
}
ApiStatus func_80218108_4CF2B8(Evt* script, s32 isInitialCall) {
status_menu_start_blinking_hp();
status_menu_start_blinking_fp();
return ApiStatus_DONE2;
}
ApiStatus func_80218130_4CF2E0(Evt* script, s32 isInitialCall) {
status_menu_stop_blinking_hp();
status_menu_stop_blinking_fp();
return ApiStatus_DONE2;
}
ApiStatus func_80218158_4CF308(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
battleStatus->unk_4C = 0;
battleStatus->unk_5C = 0;
return ApiStatus_DONE2;
}
ApiStatus func_80218170_4CF320(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
if (isInitialCall) {
script->functionTemp[0] = 10;
}
battleStatus->flags2 &= ~0x2;
if (script->functionTemp[0] != 0) {
script->functionTemp[0]--;
return ApiStatus_BLOCK;
}
return ApiStatus_DONE2;
}
ApiStatus func_802181B4_4CF364(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
if (isInitialCall) {
script->functionTemp[0] = 10;
}
battleStatus->flags2 &= ~0x4;
if (script->functionTemp[0] != 0) {
script->functionTemp[0]--;
return ApiStatus_BLOCK;
}
return ApiStatus_DONE2;
}
ApiStatus func_802181F8_4CF3A8(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;
playerData->specialBarsFilled += 32;
return ApiStatus_DONE2;
}
EvtSource N(idle_802183E8) = {
EVT_CALL(func_80218000_4CF1B0)
EVT_RETURN
EVT_END
};
EvtSource N(handleEvent_80218404) = {
EVT_RETURN
EVT_END
};
EvtSource N(takeTurn_80218414) = {
EVT_RETURN
EVT_END
};
EvtSource N(80218424) = {
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_2000000, 1)
EVT_CALL(func_80218158_4CF308)
EVT_CALL(WaitForState, 13)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_WAIT_FRAMES(15)
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0114), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_THREAD
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetGoalPos, ACTOR_SELF, -110, 100, 0)
EVT_CALL(FlyToGoal, ACTOR_SELF, 20, 0, 10)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_END_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(func_802180C8_4CF278)
EVT_WAIT_FRAMES(120)
EVT_CALL(func_802180E8_4CF298)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(FlyToGoal, ACTOR_SELF, 20, 0, 10)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0115), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_CALL(func_802180C8_4CF278)
EVT_WAIT_FRAMES(120)
EVT_CALL(func_802180E8_4CF298)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0116), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(func_8026E020, 256)
EVT_CALL(func_8026E038, 2)
EVT_CALL(WaitForState, 18)
EVT_SET(LW(0), 255)
EVT_LOOP(10)
EVT_SUB(LW(0), 25)
EVT_IF_LT(LW(0), 0)
EVT_SET(LW(0), 0)
EVT_END_IF
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_NO_SHADOW, 1)
EVT_THREAD
EVT_CALL(func_80218170_4CF320)
EVT_END_THREAD
EVT_CALL(WaitForState, 22)
EVT_SET(LW(0), 0)
EVT_LOOP(10)
EVT_ADD(LW(0), 25)
EVT_IF_GT(LW(0), 255)
EVT_SET(LW(0), 255)
EVT_END_IF
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, 255)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_NO_SHADOW, 0)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0117), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_CALL(func_802180C8_4CF278)
EVT_WAIT_FRAMES(120)
EVT_CALL(func_802180E8_4CF298)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0118), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetBattleState, 6)
EVT_CALL(WaitForState, 5)
EVT_WAIT_FRAMES(20)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x0119), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_THREAD
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(SetGoalPos, ACTOR_SELF, -110, 100, 0)
EVT_CALL(FlyToGoal, ACTOR_SELF, 20, 0, 10)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_END_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_CALL(func_802180C8_4CF278)
EVT_WAIT_FRAMES(120)
EVT_CALL(func_802180E8_4CF298)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(SetGoalToHome, ACTOR_SELF)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 1)
EVT_CALL(FlyToGoal, ACTOR_SELF, 20, 0, 10)
EVT_CALL(EnableActorBlur, ACTOR_SELF, 0)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x011A), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x011B), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(func_8026E020, 256)
EVT_CALL(func_8026E038, 1)
EVT_CALL(func_80218158_4CF308)
EVT_CALL(WaitForState, 18)
EVT_SET(LW(0), 255)
EVT_LOOP(10)
EVT_SUB(LW(0), 25)
EVT_IF_LT(LW(0), 0)
EVT_SET(LW(0), 0)
EVT_END_IF
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_NO_SHADOW, 1)
EVT_THREAD
EVT_CALL(func_80218170_4CF320)
EVT_END_THREAD
EVT_CALL(WaitForState, 22)
EVT_SET(LW(0), 0)
EVT_LOOP(10)
EVT_ADD(LW(0), 25)
EVT_IF_GT(LW(0), 255)
EVT_SET(LW(0), 255)
EVT_END_IF
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, LW(0))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetPartAlpha, ACTOR_SELF, 1, 255)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_NO_SHADOW, 0)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x011C), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01002A)
EVT_CALL(func_802180C8_4CF278)
EVT_WAIT_FRAMES(120)
EVT_CALL(func_802180E8_4CF298)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0C, 0x011D), ACTOR_SELF, 1, NPC_ANIM_world_eldstar_Palette_00_Anim_2, NPC_ANIM_world_eldstar_Palette_00_Anim_1)
EVT_CALL(WaitForState, 0)
EVT_CALL(SetBattleState, 30)
EVT_WAIT_FRAMES(10000)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,23 @@
#include "common.h"
#include "battle/battle.h"
#include "script_api/battle.h"
#define NAMESPACE b_area_trd_part_3
extern ActorDesc N(eldstar);
extern Stage N(nok_01);
Formation N(formation_00) = {
{ .actor = &N(eldstar), .home = { .index = 6 }, .priority = 10 },
};
BattleList N(formationTable) = {
BATTLE("ほしのせい レクチャー", N(formation_00), &N(nok_01)),
{},
};
StageList N(stageTable) = {
{ "nok_01", &N(nok_01) },
{},
};

View File

@ -0,0 +1,60 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE b_area_trd_part_3_nok_01
EvtSource N(80218DD0) = {
EVT_SET(LW(10), LW(0))
EVT_LABEL(0)
EVT_CALL(TranslateModel, LW(10), 0, 2, 0)
EVT_WAIT_FRAMES(5)
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
EVT_WAIT_FRAMES(5)
EVT_CALL(TranslateModel, LW(10), 0, 2, 0)
EVT_WAIT_FRAMES(5)
EVT_CALL(TranslateModel, LW(10), 0, 0, 0)
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(beforeBattle_80218ED8) = {
EVT_CALL(SetSpriteShading, -1)
EVT_SET(LW(0), 19)
EVT_EXEC(N(80218DD0))
EVT_SET(LW(0), 20)
EVT_EXEC(N(80218DD0))
EVT_SET(LW(0), 21)
EVT_EXEC(N(80218DD0))
EVT_SET(LW(0), 22)
EVT_EXEC(N(80218DD0))
EVT_SET(LW(0), 23)
EVT_EXEC(N(80218DD0))
EVT_SET(LW(0), 24)
EVT_EXEC(N(80218DD0))
EVT_RETURN
EVT_END
};
EvtSource N(afterBattle_80218FA0) = {
EVT_RETURN
EVT_END
};
s32 N(foregroundModelList_80218FB0)[] = {
0x0000001E, 0x0000001D, 0x0000001C, 0x00000000,
};
Stage NAMESPACE = {
.texture = "nok_tex",
.shape = "nok_bt01_shape",
.hit = "nok_bt01_hit",
.bg = "nok_bg",
.preBattle = N(beforeBattle_80218ED8),
.postBattle = N(afterBattle_80218FA0),
.foregroundModelList = N(foregroundModelList_80218FB0),
};

View File

@ -54,14 +54,14 @@ BattleArea gBattleAreas[0x30] = {
{
AREA(area_trd_part_2),
.name = "エリア その2",
.battles = 0x8021A5DC,
.stages = 0x8021A604,
.battles = &b_area_trd_part_2_formationTable,
.stages = &b_area_trd_part_2_stageTable,
},
{
AREA(area_trd_part_3),
.name = "エリア その3",
.battles = 0x8021823C,
.stages = 0x80218264,
.battles = &b_area_trd_part_3_formationTable,
.stages = &b_area_trd_part_3_stageTable,
},
{
AREA(area_iwa),

View File

@ -169,7 +169,7 @@ typedef enum ActorType {
ACTOR_TYPE_RED_NINJAKOOPA = 0x9C,
ACTOR_TYPE_BLUE_NINJAKOOPA = 0x9D,
ACTOR_TYPE_YELLOW_NINJAKOOPA = 0x9E,
ACTOR_TYPE_GOOMBARIO_TUTOR2 = 0x9F,
ACTOR_TYPE_ELDSTAR = 0x9F,
ACTOR_TYPE_BUZZAR = 0xA0,
ACTOR_TYPE_TUTANKOOPA = 0xA1,
ACTOR_TYPE_CHOMP = 0xA2,

View File

@ -25,4 +25,10 @@ extern StageList b_area_nok_stageTable;
extern BattleList b_area_trd_part_1_formationTable;
extern StageList b_area_trd_part_1_stageTable;
extern BattleList b_area_trd_part_2_formationTable;
extern StageList b_area_trd_part_2_stageTable;
extern BattleList b_area_trd_part_3_formationTable;
extern StageList b_area_trd_part_3_stageTable;
#endif

View File

@ -1,5 +0,0 @@
#include "common.h"
#define NAMESPACE battle_move_auto_jump
#include "world/common/UnkMoveFunc1.inc.c"

View File

@ -0,0 +1,555 @@
#include "common.h"
#include "script_api/battle.h"
#include "battle/action_cmd/jump.h"
#define NAMESPACE battle_move_auto_jump
extern EvtSource D_802A26BC_7672DC;
extern EvtSource D_802A2A30_767650;
extern EvtSource D_802A2D5C_76797C;
s32 N(D_802A10F0)[] = {
9, 3, 9, 3, 9, 3, 8, 3,
7, 3, 6, 2, 5, 2, 4, 2,
};
#include "world/common/UnkMoveFunc1.inc.c"
EvtSource D_802A1130_765D50 = {
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_BEFORE_JUMP)
EVT_LOOP(5)
EVT_CALL(CheckButtonPress, A_BUTTON, LW(0))
EVT_IF_EQ(LW(0), TRUE)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource D_802A11AC_765DCC = {
EVT_CALL(SetGoalToFirstTarget, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 40)
EVT_CALL(InitTargetIterator)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_SUB(LW(3), EVT_FLOAT(70.0))
EVT_IF_LT(LW(0), LW(3))
EVT_SET(LW(3), LW(0))
EVT_END_IF
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_26)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(5.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(CancelablePlayerRunToGoal, 0, LW(0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_EXEC_WAIT(D_802A1130_765D50)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_BEFORE_JUMP)
EVT_RETURN
EVT_END
};
EvtSource D_802A1320_765F40 = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(10.5888671875))
EVT_ADDF(LW(6), 15)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource D_802A1408_766028 = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(22.5))
EVT_ADDF(LW(6), 15)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource D_802A14F0_766110 = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(18.0))
EVT_ADDF(LW(6), 22)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource D_802A15D8_7661F8 = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 40)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.30078125))
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(5)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A17C4 = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 50)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(0.80078125))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A19B0 = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_29)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 40)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.0))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A1B9C = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 60)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(0.80078125))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A1D88 = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 60)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.0))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_FALL_BACK, ANIM_FALL_BACK, ANIM_10009)
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
EVT_CALL(func_80273444, 8, 0, 2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(func_80273444, 4, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A1FEC_766C0C = {
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, 0, 0, 65548)
EVT_CALL(PlayerLandJump)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x01000C)
EVT_WAIT_FRAMES(2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_162)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_GET_UP)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_DUST_OFF)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(func_80276EFC)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource D_802A2184_766DA4 = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(D_802A11AC_765DCC)
EVT_EXEC_WAIT(D_802A1320_765F40)
EVT_CALL(func_802A9120_421B10, LW(10), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_34)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, 196608)
EVT_CALL(func_80274A18, LW(10), 0)
EVT_RETURN
EVT_END
};
EvtSource D_802A2230 = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(D_802A11AC_765DCC)
EVT_CALL(InitTargetIterator)
EVT_EXEC_WAIT(D_802A1408_766028)
EVT_SET(LW(11), LW(10))
EVT_ADD(LW(11), 14)
EVT_ADD(LW(11), -3)
EVT_CALL(func_802A9120_421B10, LW(11), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_37)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_1000A, ANIM_1000B)
EVT_CALL(func_802752AC, LW(10), 0)
EVT_WAIT_FRAMES(7)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_CALL(func_802752AC, 3, 1)
EVT_CASE_DEFAULT
EVT_CALL(func_802752AC, 5, 1)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource D_802A2384 = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(D_802A11AC_765DCC)
EVT_EXEC_WAIT(D_802A14F0_766110)
EVT_CALL(func_8026919C, EVT_ADDR(N(D_802A10F0)))
EVT_SET(LW(11), LW(10))
EVT_SUB(LW(11), 4)
EVT_ADD(LW(11), -3)
EVT_CALL(func_802A9120_421B10, LW(11), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_38)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, 524288, 196608)
EVT_CALL(func_80275F00, LW(10), 0)
EVT_CALL(CloseActionCommandInfo)
EVT_SET(LW(9), 0)
EVT_CALL(DidActionSucceed, LW(0))
EVT_IF_GT(LW(0), 0)
EVT_SET(LW(9), 1)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x030000)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
EVT_WAIT_FRAMES(2)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802A9120_421B10, 13, 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_39)
EVT_CALL(func_80275F00, 15, 2)
EVT_GOTO(10)
EVT_ELSE
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802A9120_421B10, 2, 3)
EVT_CALL(func_80275F00, 4, 1)
EVT_GOTO(10)
EVT_END_IF
EVT_LABEL(10)
EVT_RETURN
EVT_END
};
EvtSource D_802A2600 = {
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_1000, 1)
EVT_CALL(func_802694A4, 0)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 1)
EVT_CALL(GetMenuSelection, LW(0), LW(1), LW(2))
EVT_SWITCH(LW(1))
EVT_CASE_EQ(0)
EVT_EXEC_WAIT(D_802A26BC_7672DC)
EVT_CASE_EQ(1)
EVT_EXEC_WAIT(D_802A2A30_767650)
EVT_CASE_EQ(2)
EVT_EXEC_WAIT(D_802A2D5C_76797C)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource D_802A26BC_7672DC = {
EVT_EXEC_WAIT(D_802A2184_766DA4)
EVT_CALL(GetActionCommandMode, LW(0))
EVT_IF_EQ(LW(0), 2)
EVT_CALL(SetActionCommandMode, 3)
EVT_LOOP(0)
EVT_CALL(GetActionCommandMode, LW(0))
EVT_IF_LT(LW(0), 2)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_IF
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(D_802A1FEC_766C0C)
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 1, 80)
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 1, 48)
EVT_END_SWITCH
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_EXEC_WAIT(D_802A19B0)
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CHILD_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_27)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_35)
EVT_END_CHILD_THREAD
EVT_CALL(func_80269524, LW(15))
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802694A4, 0)
EVT_CALL(func_802A9120_421B10, 24, 3)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, 65548)
EVT_CALL(func_80274A18, 24, 3)
EVT_WAIT_FRAMES(1)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 1, 224)
EVT_CALL(func_80269550, LW(15))
EVT_EXEC_WAIT(D_802A15D8_7661F8)
EVT_RETURN
EVT_END
};
EvtSource D_802A2A30_767650 = {
EVT_EXEC_WAIT(D_802A2184_766DA4)
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(D_802A1FEC_766C0C)
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 2, 80)
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 2, 48)
EVT_END_SWITCH
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_EXEC_WAIT(D_802A19B0)
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(func_80269524, LW(15))
EVT_CHILD_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_27)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_35)
EVT_END_CHILD_THREAD
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802694A4, 0)
EVT_CALL(func_802A9120_421B10, 37, 3)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(EnablePlayerBlur, 1)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, 65546, 65547)
EVT_CALL(func_802752AC, 20, 4)
EVT_WAIT_FRAMES(7)
EVT_CALL(func_802752AC, 3, 5)
EVT_CALL(EnablePlayerBlur, 0)
EVT_WAIT_FRAMES(1)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 2, 224)
EVT_CALL(func_80269550, LW(15))
EVT_EXEC_WAIT(D_802A15D8_7661F8)
EVT_RETURN
EVT_END
};
EvtSource D_802A2D5C_76797C = {
EVT_EXEC_WAIT(D_802A2184_766DA4)
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(D_802A1FEC_766C0C)
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 3, 80)
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 3, 48)
EVT_END_SWITCH
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_EXEC_WAIT(D_802A19B0)
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(func_80269524, LW(15))
EVT_CHILD_THREAD
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_28)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_35)
EVT_END_CHILD_THREAD
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802694A4, 0)
EVT_CALL(func_802A9120_421B10, 25, 3)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(EnablePlayerBlur, 1)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR_STILL, ANIM_1000C)
EVT_CALL(func_80275F00, 25, 4)
EVT_CALL(EnablePlayerBlur, 0)
EVT_WAIT_FRAMES(1)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 128, 0, 0, 3, 224)
EVT_CALL(func_80269550, LW(15))
EVT_EXEC_WAIT(D_802A15D8_7661F8)
EVT_RETURN
EVT_END
};

View File

@ -1,5 +0,0 @@
#include "common.h"
#define NAMESPACE battle_move_auto_multibounce
#include "world/common/UnkMoveFunc1.inc.c"

View File

@ -0,0 +1,813 @@
#include "common.h"
#include "script_api/battle.h"
#include "battle/action_cmd/jump.h"
#define NAMESPACE battle_move_auto_multibounce
extern EvtSource N(D_802A26A8);
extern EvtSource N(D_802A2EC0);
extern EvtSource N(D_802A372C);
s32 N(D_802A10F0)[] = {
9, 3, 9, 3, 9, 3, 8, 3,
7, 3, 6, 2, 5, 2, 4, 2,
};
#include "world/common/UnkMoveFunc1.inc.c"
EvtSource N(CheckForAPress) = {
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_BEFORE_JUMP)
EVT_LOOP(5)
EVT_CALL(CheckButtonPress, 32768, LW(0))
EVT_IF_EQ(LW(0), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(D_802A11AC) = {
EVT_CALL(SetGoalToFirstTarget, ACTOR_SELF)
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 40)
EVT_CALL(InitTargetIterator)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_SUB(LW(3), EVT_FLOAT(70.0))
EVT_IF_LT(LW(0), LW(3))
EVT_SET(LW(3), LW(0))
EVT_END_IF
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(3), LW(4), LW(5))
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_26)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(5.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(CancelablePlayerRunToGoal, 0, LW(0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_EXEC_WAIT(N(CheckForAPress))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_BEFORE_JUMP)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A1320) = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(10.5888671875))
EVT_ADDF(LW(6), 15)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource N(D_802A1408) = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(22.5))
EVT_ADDF(LW(6), 15)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource N(D_802A14F0) = {
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(6), LW(7), LW(8))
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(7), LW(8), LW(9))
EVT_IF_GT(LW(6), LW(7))
EVT_SUB(LW(6), LW(7))
EVT_ELSE
EVT_SUB(LW(7), LW(6))
EVT_SET(LW(6), LW(7))
EVT_END_IF
EVT_SUB(LW(6), 20)
EVT_DIVF(LW(6), EVT_FLOAT(18.0))
EVT_ADDF(LW(6), 22)
EVT_SET(LW(10), LW(6))
EVT_RETURN
EVT_END
};
EvtSource N(D_802A15D8) = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 40)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.30078125))
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(5)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A17C4) = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 50)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(0.80078125))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A19B0) = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_29)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 40)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.0))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A1B9C) = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_SUB(LW(0), 60)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(0.80078125))
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(1)
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10009)
EVT_WAIT_FRAMES(2)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A1D88) = {
EVT_CALL(func_80276EFC)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(GetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_ADD(LW(0), 60)
EVT_SET(LW(1), 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FLOAT(1.0))
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_FALL_BACK, ANIM_FALL_BACK, ANIM_10009)
EVT_CALL(N(UnkMoveFunc1))
EVT_CALL(func_80273444, LW(0), 0, 0)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
EVT_CALL(func_80273444, 8, 0, 2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(AddGoalPos, ACTOR_PLAYER, -20, 0, 0)
EVT_CALL(SetGoalPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
EVT_CALL(func_80273444, 6, 0, 2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(func_80273444, 4, 0, 2)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A1FEC) = {
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, 0, 0, ANIM_1000C)
EVT_CALL(PlayerLandJump)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_1000C)
EVT_WAIT_FRAMES(2)
EVT_CHILD_THREAD
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FLOAT(1.0))
EVT_END_CHILD_THREAD
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_162)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_GET_UP)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_DUST_OFF)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, 0)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_D)
EVT_CALL(func_802693F0)
EVT_CALL(EnablePlayerBlur, -1)
EVT_CALL(func_80276EFC)
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FLOAT(8.0))
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
EVT_CALL(PlayerRunToGoal, 0)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A2184) = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(N(D_802A11AC))
EVT_EXEC_WAIT(N(D_802A1320))
EVT_CALL(func_802A9120_421B10, LW(10), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_34)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_30000 )
EVT_CALL(func_80274A18, LW(10), 0)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A2230) = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(N(D_802A11AC))
EVT_CALL(InitTargetIterator)
EVT_EXEC_WAIT(N(D_802A1408))
EVT_SET(LW(11), LW(10))
EVT_ADD(LW(11), 14)
EVT_ADD(LW(11), -3)
EVT_CALL(func_802A9120_421B10, LW(11), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_37)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_1000A, ANIM_1000B)
EVT_CALL(func_802752AC, LW(10), 0)
EVT_WAIT_FRAMES(7)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_CALL(func_802752AC, 3, 1)
EVT_CASE_DEFAULT
EVT_CALL(func_802752AC, 5, 1)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(D_802A2384) = {
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_EXEC_WAIT(N(D_802A11AC))
EVT_EXEC_WAIT(N(D_802A14F0))
EVT_CALL(func_8026919C, EVT_ADDR(N(D_802A10F0)))
EVT_SET(LW(11), LW(10))
EVT_SUB(LW(11), 4)
EVT_ADD(LW(11), -3)
EVT_CALL(func_802A9120_421B10, LW(11), 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_38)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, 524288, 196608)
EVT_CALL(func_80275F00, LW(10), 0)
EVT_CALL(CloseActionCommandInfo)
EVT_SET(LW(9), 0)
EVT_CALL(DidActionSucceed, LW(0))
EVT_IF_GT(LW(0), 0)
EVT_SET(LW(9), 1)
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, 0x030000)
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
EVT_WAIT_FRAMES(2)
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802A9120_421B10, 13, 3)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_39)
EVT_CALL(func_80275F00, 15, 2)
EVT_GOTO(10)
EVT_ELSE
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_CALL(func_802A9120_421B10, 2, 3)
EVT_CALL(func_80275F00, 4, 1)
EVT_GOTO(10)
EVT_END_IF
EVT_LABEL(10)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A2600) = {
EVT_CALL(func_802694A4, 1)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_1000, 1)
EVT_CALL(GetMenuSelection, LW(0), LW(1), LW(2))
EVT_SWITCH(LW(1))
EVT_CASE_EQ(0)
EVT_EXEC_WAIT(N(D_802A26A8))
EVT_CASE_EQ(1)
EVT_EXEC_WAIT(N(D_802A2EC0))
EVT_CASE_EQ(2)
EVT_EXEC_WAIT(N(D_802A372C))
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(D_802A26A8) = {
EVT_EXEC_WAIT(N(D_802A2184))
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_SET(LF(0), 0)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_EQ(LW(0), 1)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 112)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 48)
EVT_END_SWITCH
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(func_80269524, LW(14))
EVT_ADD(LW(15), 1)
EVT_SET(LF(0), 0)
EVT_LABEL(10)
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_40)
EVT_CALL(GetTargetListLength, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_EQ(LW(15), LW(0))
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(func_802694A4, 0)
EVT_END_IF
EVT_CALL(ChooseNextTarget, 0, LW(0))
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_EXEC_WAIT(N(D_802A1320))
EVT_ADD(LW(10), 5)
EVT_CALL(func_802A9120_421B10, LW(10), 3)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_1000C)
EVT_IF_EQ(LW(15), 1)
EVT_CALL(func_80274A18, LW(10), 3)
EVT_ELSE
EVT_CALL(func_80274A18, LW(10), 4)
EVT_END_IF
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 240)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 48)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 346, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 1, 240)
EVT_END_IF
EVT_END_SWITCH
EVT_SWITCH(LW(15))
EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x236)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x237)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_CASE_DEFAULT
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_END_SWITCH
EVT_CALL(func_80269550, LW(14))
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_ADD(LW(15), 1)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_GE(LW(15), LW(0))
EVT_EXEC_WAIT(N(D_802A17C4))
EVT_RETURN
EVT_END_IF
EVT_GOTO(10)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A2EC0) = {
EVT_EXEC_WAIT(N(D_802A2184))
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_SET(LF(0), 0)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_EQ(LW(0), 1)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 112)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 48)
EVT_END_SWITCH
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(func_80269524, LW(14))
EVT_SET(LF(0), 0)
EVT_SET(LW(15), 0)
EVT_ADD(LW(15), 1)
EVT_LABEL(10)
EVT_CALL(GetTargetListLength, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_EQ(LW(15), LW(0))
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(func_802694A4, 0)
EVT_END_IF
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_40)
EVT_CALL(func_802A9120_421B10, 37, 3)
EVT_CALL(ChooseNextTarget, 0, LW(0))
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_1000A, ANIM_1000B)
EVT_CALL(EnablePlayerBlur, 1)
EVT_IF_EQ(LW(15), 1)
EVT_CALL(func_802752AC, 20, 3)
EVT_WAIT_FRAMES(7)
EVT_CALL(func_802752AC, 3, 6)
EVT_ELSE
EVT_CALL(func_802752AC, 20, 4)
EVT_WAIT_FRAMES(7)
EVT_CALL(func_802752AC, 3, 5)
EVT_END_IF
EVT_CALL(EnablePlayerBlur, 0)
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 240)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 48)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 347, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 2, 240)
EVT_END_IF
EVT_END_SWITCH
EVT_SWITCH(LW(15))
EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x236)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x237)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_CASE_DEFAULT
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_END_SWITCH
EVT_CALL(func_80269550, LW(14))
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_ADD(LW(15), 1)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_GE(LW(15), LW(0))
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_IF
EVT_GOTO(10)
EVT_RETURN
EVT_END
};
EvtSource N(D_802A372C) = {
EVT_EXEC_WAIT(N(D_802A2184))
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_SET(LF(0), 0)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_EQ(LW(0), 1)
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 112)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 48)
EVT_END_SWITCH
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_CALL(func_80269524, LW(14))
EVT_SET(LF(0), 0)
EVT_SET(LW(15), 0)
EVT_ADD(LW(15), 1)
EVT_LABEL(20)
EVT_CALL(GetTargetListLength, LW(0))
EVT_SUB(LW(0), 1)
EVT_IF_EQ(LW(15), LW(0))
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(LoadActionCommand, ACTION_COMMAND_JUMP)
EVT_CALL(action_command_jump_CreateHudElements)
EVT_IF_EQ(LF(0), 1)
EVT_CALL(func_802694A4, 0)
EVT_END_IF
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_40)
EVT_CALL(func_802A9120_421B10, 25, 3)
EVT_CALL(ChooseNextTarget, 0, LW(0))
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR_STILL, ANIM_1000C)
EVT_IF_EQ(LW(15), 1)
EVT_CALL(func_80275F00, 25, 2)
EVT_ELSE
EVT_CALL(func_80275F00, 25, 4)
EVT_END_IF
EVT_CALL(PlayerTestEnemy, LW(0), 128, 0, 0, 1, 0)
EVT_IF_EQ(LW(0), 6)
EVT_EXEC_WAIT(N(D_802A1FEC))
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_GT(0)
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 112)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 240)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_IF_EQ(LF(0), 0)
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 48)
EVT_ELSE
EVT_CALL(SetActorSounds, ACTOR_PLAYER, 3, 348, 0)
EVT_CALL(PlayerDamageEnemy, LW(0), 553648256, 0, 0, 3, 240)
EVT_END_IF
EVT_END_SWITCH
EVT_SWITCH(LW(15))
EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x235)
EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x236)
EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x237)
EVT_CASE_EQ(3)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_CASE_DEFAULT
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, 0x238)
EVT_END_SWITCH
EVT_CALL(func_80269550, LW(14))
EVT_CALL(DidActionSucceed, LW(0))
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(0)
EVT_CASE_OR_EQ(2)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_CASE_GROUP
EVT_CASE_OR_EQ(1)
EVT_CASE_OR_EQ(3)
EVT_IF_EQ(LF(0), 1)
EVT_EXEC_WAIT(N(D_802A15D8))
EVT_RETURN
EVT_END_IF
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_ADD(LW(15), 1)
EVT_CALL(GetTargetListLength, LW(0))
EVT_IF_GE(LW(15), LW(0))
EVT_EXEC_WAIT(N(D_802A19B0))
EVT_RETURN
EVT_END_IF
EVT_GOTO(20)
EVT_RETURN
EVT_END
};

View File

@ -1,7 +1,8 @@
#include "common.h"
#include "effects.h"
EffectWhirlwind effectStruct;
BSS EffectWhirlwind N(effectStruct);
BSS static s32 padding[0x94];
ApiStatus N(UnkWhirlwindEffectFunc)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -10,10 +11,10 @@ ApiStatus N(UnkWhirlwindEffectFunc)(Evt* script, s32 isInitialCall) {
s32 var3 = evt_get_variable(script, *args++);
s32 var4 = evt_get_variable(script, *args++);
effectStruct.unk_28 = var1;
effectStruct.unk_2C = var2 - 10.0f;
effectStruct.unk_30 = var3;
playFX_46_whirlwind(6, (s32) &effectStruct, 1.0f, var4);
N(effectStruct).unk_28 = var1;
N(effectStruct).unk_2C = var2 - 10.0f;
N(effectStruct).unk_30 = var3;
playFX_46_whirlwind(6, &N(effectStruct), 1.0f, var4);
return ApiStatus_DONE2;
}

View File

@ -48,6 +48,7 @@ extern s32 D_8010CFBC;
extern s32 D_8010CFCC;
extern struct Vec3f* D_8010CD38;
extern EvtSource D_802C05CC_32579C;
typedef struct struct8010CD38{
/* 0x00 */ s8 unk_00;
@ -81,7 +82,7 @@ s32 D_800F7FF4 = 4;
s32 D_800F7FF8 = 5;
s32 D_800F7FFC = 7;
s32 D_800F8000[] = { 8, 0, 0, 0 };
s32 D_800F8010[] = { _3251D0_ROM_START, _3251D0_ROM_END, (s32) &D_802C05CC, 0x00000000 };
s32 D_800F8010[] = { _3251D0_ROM_START, _3251D0_ROM_END, (s32) D_802C05CC_32579C, 0x00000000 };
s32 D_800F8020 = 0;
s32 wPartnerMoveGoalX = 0;
s32 wPartnerMoveGoalZ = 0;
@ -297,7 +298,7 @@ s32 use_consumable(s32 arg0) {
D_8010CD20 = arg0;
arg0 = gPlayerData.invItems[arg0];
dma_copy(D_800F8010[0], D_800F8010[1], &D_802C0000);
dma_copy(D_800F8010[0], D_800F8010[1], _3251D0_VRAM);
script = start_script(D_800F8010[2], 1, 0);
script->varTable[10] = arg0;
return script->id;

View File

@ -83,7 +83,7 @@ def round_fixed(f: float) -> float:
whole = round(g)
if abs(g - whole) <= 100.0/1024.0:
f = whole / 100.0
"""
"""
return f
def find_symbol_in_overlay(symbol_map, overlay_rom_addr, symbol_ram_addr):
@ -411,6 +411,7 @@ replace_funcs = {
"GetBattleFlags" :{0:"BattleStatusFlags1"},
"GetBattlePhase" :{0:"Phases"},
"GetDistanceToGoal" :{0:"ActorIDs"},
"GetEnemyMaxHP" :{0:"ActorIDs"},
"GetGoalPos" :{0:"ActorIDs"},
"GetHomePos" :{0:"ActorIDs"},
"GetIndexFromHome" :{0:"ActorIDs"},
@ -419,6 +420,8 @@ replace_funcs = {
"GetLastDamage" :{0:"ActorIDs"},
"GetLastElement" :{0:"DamageTypes"},
"GetLastEvent" :{0:"ActorIDs", 1:"Events"},
"GetPartPos" :{0:"ActorIDs"},
"GetPartRotation" :{0:"ActorIDs"},
"GetNpcPos" :{0:"NpcIDs"},
"GetOriginalActorType" :{0:"ActorIDs", 1:"ActorType"},
"GetStatusFlags" :{0:"ActorIDs", 1:"StatusFlags"},
@ -435,6 +438,7 @@ replace_funcs = {
"JumpToGoal" :{0:"ActorIDs", 2:"Bool", 3:"Bool", 4:"Bool"},
"LandJump" :{0:"ActorIDs"},
"LoadActionCommand" :{0:"ActionCommandDmaTable"},
"MakeEntity" :{0:"Hex"},
"MakeItemEntity" :{0:"ItemIDs"},
@ -452,6 +456,7 @@ replace_funcs = {
"PlaySound" :{0:"SoundIDs"},
"PlaySoundAt" :{0:"SoundIDs"},
"PlaySoundAtActor" :{0:"ActorIDs", 1:"SoundIDs"},
"PlaySoundAtModel" :{1:"SoundIDs"},
"PlaySoundAtNpc" :{0:"NpcIDs", 1:"SoundIDs"},
"PlaySoundAtPart" :{0:"ActorIDs", 2:"SoundIDs"},
@ -470,6 +475,7 @@ replace_funcs = {
"SetActorRotation" :{0:"ActorIDs"},
"SetActorRotationOffset" :{0:"ActorIDs"},
"SetActorScale" :{0:"ActorIDs"},
"SetActorSize" :{0:"ActorIDs"},
"SetActorSounds" :{0:"ActorIDs"},
"SetActorSpeed" :{0:"ActorIDs"},
"SetActorType" :{0:"ActorIDs", 1:"ActorType"},
@ -484,6 +490,7 @@ replace_funcs = {
"SetEnemyHP" :{0:"ActorIDs"},
"SetEnemyTargetOffset" :{0:"ActorIDs"},
"SetGoalPos" :{0:"ActorIDs"},
"SetGoalToFirstTarget" :{0:"ActorIDs"},
"SetGoalToHome" :{0:"ActorIDs"},
"SetGoalToIndex" :{0:"ActorIDs"},
"SetGoalToTarget" :{0:"ActorIDs"},
@ -504,6 +511,8 @@ replace_funcs = {
"SetNpcSprite" :{1:"Hex"},
"SetNpcYaw" :{0:"NpcIDs"},
"SetOwnerID" :{0:"ActorIDs"},
"SetPartAlpha" :{0:"ActorIDs"},
"SetPartDispOffset" :{0:"ActorIDs"},
"SetPartEventBits" :{0:"ActorIDs", 2:"ActorEventFlags"},
@ -512,9 +521,12 @@ replace_funcs = {
"SetPartJumpGravity" :{0:"ActorIDs"},
"SetPartMoveSpeed" :{0:"ActorIDs"},
"SetPartPos" :{0:"ActorIDs"},
"SetPartRotation" :{0:"ActorIDs"},
"SetPartRotationOffset" :{0:"ActorIDs"},
"SetPartScale" :{0:"ActorIDs"},
"SetPartSize" :{0:"ActorIDs"},
"SetPartSounds" :{0:"ActorIDs"},
"SetPartTargetFlagBits" :{0:"ActorIDs"},
"SetPartYaw" :{0:"ActorIDs"},
"SetPlayerAnimation" :{0:"PlayerAnims"},
@ -1088,6 +1100,7 @@ if __name__ == "__main__":
break
loffset = script.end_pos
LOCAL_WORDS = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
looping = args.blob
try:
loffset = _script_lib[loffset - info[0] + info[2]][0][1]

View File

@ -168,7 +168,7 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0, namespace
#if afterHeader:
# INCLUDES_NEEDED["forward"].append(f"EvtSource " + name + ";")
# afterHeader = False
disasm_script.LOCAL_WORDS = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
script_text = disasm_script.ScriptDisassembler(
bytes, name, symbol_map, romstart, INCLUDES_NEEDED, INCLUDED,
transform_symbol_name=transform_symbol_name,

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_802BD510_3255E0
.word 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000002, SetPlayerAnimation, 0x0001001F, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C81, 0x0000002D, 0x00000043, 0x00000007, MakeItemEntity, 0xFE363C8A, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000001, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8A, 0xFE363C80, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C81, 0x00000014, 0x00000043, 0x00000004, D_802C0000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000002, RemoveItemEntity, 0xFE363C8A, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000056, 0x00000000, 0x00000005, 0x00000001, 0x00000004, 0x00000043, 0x00000002, PlaySound, 0x00002095, 0x00000008, 0x00000001, 0x0000000A, 0x00000006, 0x00000000, 0x00000057, 0x00000000, 0x00000043, 0x00000002, SetPlayerAnimation, 0x0001001C, 0x00000008, 0x00000001, 0x0000002D, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000056, 0x00000000, 0x00000005, 0x00000001, 0x00000004, 0x00000043, 0x00000002, PlaySound, 0x00002095, 0x00000008, 0x00000001, 0x0000000A, 0x00000006, 0x00000000, 0x00000057, 0x00000000, 0x00000043, 0x00000002, SetPlayerAnimation, 0x00010025, 0x00000008, 0x00000001, 0x0000002D, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000001, 0x00000043, 0x00000002, GetCurrentPartner, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000001, func_802D2B6C, 0x00000008, 0x00000001, 0x00000014, 0x00000013, 0x00000000, 0x00000043, 0x00000001, 0x802C02E4, 0x00000043, 0x00000002, 0x802C0358, 0xFE363C8A, 0x00000046, 0x00000001, 0x802C0410, 0x0000000A, 0x00000002, 0xFE363C8D, 0x00000000, 0x00000046, 0x00000001, 0x802C04F4, 0x00000012, 0x00000000, 0x00000046, 0x00000001, 0x802C0560, 0x00000013, 0x00000000, 0x0000000A, 0x00000002, 0xFE363C8F, 0x00000001, 0x00000043, 0x00000002, SetPlayerAnimation, 0x0001001D, 0x00000013, 0x00000000, 0x0000000D, 0x00000002, 0xFE363C8B, 0x00000000, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C80, 0x00000000, 0x00000027, 0x00000002, 0xFE363C81, 0x00000023, 0x00000043, 0x00000005, 0x802C00AC, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C8B, 0x00000013, 0x00000000, 0x0000000D, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C80, 0x00000014, 0x00000027, 0x00000002, 0xFE363C81, 0x00000019, 0x00000043, 0x00000005, 0x802C016C, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C8C, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C81, 0x00000019, 0x00000043, 0x00000005, func_802D7520, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C8B, 0x0000000B, 0x00000002, 0xFE363C8B, 0x00000000, 0x00000043, 0x00000002, 0x802C022C, 0xFE363C8B, 0x00000013, 0x00000000, 0x0000000B, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000002, 0x802C0288, 0xFE363C8C, 0x00000013, 0x00000000, 0x0000000A, 0x00000002, 0xFE363C8F, 0x00000000, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, SetPlayerAnimation, 0x00010032, 0x00000008, 0x00000001, 0x0000001E, 0x00000012, 0x00000000, 0x00000008, 0x00000001, 0x0000001E, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, func_802D75D8, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C8B, 0x00000043, 0x00000002, SetPlayerAnimation, 0x00010002, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x00000001, 0x802C03E8, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000000, 0x00000043, 0x00000001, 0x802C031C, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80218438_4B1628
/* 4B1628 80218438 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 4B162C 8021843C AFB10014 */ sw $s1, 0x14($sp)
/* 4B1630 80218440 0080882D */ daddu $s1, $a0, $zero
/* 4B1634 80218444 AFBF0020 */ sw $ra, 0x20($sp)
/* 4B1638 80218448 AFB3001C */ sw $s3, 0x1c($sp)
/* 4B163C 8021844C AFB20018 */ sw $s2, 0x18($sp)
/* 4B1640 80218450 AFB00010 */ sw $s0, 0x10($sp)
/* 4B1644 80218454 8E30000C */ lw $s0, 0xc($s1)
/* 4B1648 80218458 8E050000 */ lw $a1, ($s0)
/* 4B164C 8021845C 0C0B1EAF */ jal evt_get_variable
/* 4B1650 80218460 26100004 */ addiu $s0, $s0, 4
/* 4B1654 80218464 8E050000 */ lw $a1, ($s0)
/* 4B1658 80218468 26100004 */ addiu $s0, $s0, 4
/* 4B165C 8021846C 0220202D */ daddu $a0, $s1, $zero
/* 4B1660 80218470 0C0B1EAF */ jal evt_get_variable
/* 4B1664 80218474 0040982D */ daddu $s3, $v0, $zero
/* 4B1668 80218478 8E050000 */ lw $a1, ($s0)
/* 4B166C 8021847C 26100004 */ addiu $s0, $s0, 4
/* 4B1670 80218480 0220202D */ daddu $a0, $s1, $zero
/* 4B1674 80218484 0C0B1EAF */ jal evt_get_variable
/* 4B1678 80218488 0040902D */ daddu $s2, $v0, $zero
/* 4B167C 8021848C 0220202D */ daddu $a0, $s1, $zero
/* 4B1680 80218490 8E050000 */ lw $a1, ($s0)
/* 4B1684 80218494 0C0B1EAF */ jal evt_get_variable
/* 4B1688 80218498 0040802D */ daddu $s0, $v0, $zero
/* 4B168C 8021849C 24040006 */ addiu $a0, $zero, 6
/* 4B1690 802184A0 3C058023 */ lui $a1, %hi(D_80236040)
/* 4B1694 802184A4 24A56040 */ addiu $a1, $a1, %lo(D_80236040)
/* 4B1698 802184A8 44930000 */ mtc1 $s3, $f0
/* 4B169C 802184AC 00000000 */ nop
/* 4B16A0 802184B0 46800020 */ cvt.s.w $f0, $f0
/* 4B16A4 802184B4 E4A00028 */ swc1 $f0, 0x28($a1)
/* 4B16A8 802184B8 44920000 */ mtc1 $s2, $f0
/* 4B16AC 802184BC 00000000 */ nop
/* 4B16B0 802184C0 46800020 */ cvt.s.w $f0, $f0
/* 4B16B4 802184C4 0040382D */ daddu $a3, $v0, $zero
/* 4B16B8 802184C8 3C014120 */ lui $at, 0x4120
/* 4B16BC 802184CC 44811000 */ mtc1 $at, $f2
/* 4B16C0 802184D0 3C063F80 */ lui $a2, 0x3f80
/* 4B16C4 802184D4 46020001 */ sub.s $f0, $f0, $f2
/* 4B16C8 802184D8 44901000 */ mtc1 $s0, $f2
/* 4B16CC 802184DC 00000000 */ nop
/* 4B16D0 802184E0 468010A0 */ cvt.s.w $f2, $f2
/* 4B16D4 802184E4 E4A20030 */ swc1 $f2, 0x30($a1)
/* 4B16D8 802184E8 0C01C4B4 */ jal playFX_46_whirlwind
/* 4B16DC 802184EC E4A0002C */ swc1 $f0, 0x2c($a1)
/* 4B16E0 802184F0 8FBF0020 */ lw $ra, 0x20($sp)
/* 4B16E4 802184F4 8FB3001C */ lw $s3, 0x1c($sp)
/* 4B16E8 802184F8 8FB20018 */ lw $s2, 0x18($sp)
/* 4B16EC 802184FC 8FB10014 */ lw $s1, 0x14($sp)
/* 4B16F0 80218500 8FB00010 */ lw $s0, 0x10($sp)
/* 4B16F4 80218504 24020002 */ addiu $v0, $zero, 2
/* 4B16F8 80218508 03E00008 */ jr $ra
/* 4B16FC 8021850C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -28,7 +28,7 @@ glabel func_802185B0_4B17A0
/* 4B17F8 80218608 080861D0 */ j .L80218740
/* 4B17FC 8021860C 2622FFFF */ addiu $v0, $s1, -1
.L80218610:
/* 4B1800 80218610 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1800 80218610 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B1804 80218614 24040003 */ addiu $a0, $zero, 3
/* 4B1808 80218618 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B180C 8021861C E7A00020 */ swc1 $f0, 0x20($sp)
@ -36,7 +36,7 @@ glabel func_802185B0_4B17A0
/* 4B1814 80218624 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B1818 80218628 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B181C 8021862C 24040006 */ addiu $a0, $zero, 6
/* 4B1820 80218630 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1820 80218630 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B1824 80218634 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B1828 80218638 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B182C 8021863C E7A0002C */ swc1 $f0, 0x2c($sp)
@ -46,7 +46,7 @@ glabel func_802185B0_4B17A0
/* 4B183C 8021864C 080861CE */ j .L80218738
/* 4B1840 80218650 E7A00034 */ swc1 $f0, 0x34($sp)
.L80218654:
/* 4B1844 80218654 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1844 80218654 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B1848 80218658 24040003 */ addiu $a0, $zero, 3
/* 4B184C 8021865C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1850 80218660 E7A00020 */ swc1 $f0, 0x20($sp)
@ -54,7 +54,7 @@ glabel func_802185B0_4B17A0
/* 4B1858 80218668 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B185C 8021866C C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B1860 80218670 24040005 */ addiu $a0, $zero, 5
/* 4B1864 80218674 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1864 80218674 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B1868 80218678 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B186C 8021867C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1870 80218680 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -62,7 +62,7 @@ glabel func_802185B0_4B17A0
/* 4B1878 80218688 E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B187C 8021868C C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B1880 80218690 24040006 */ addiu $a0, $zero, 6
/* 4B1884 80218694 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1884 80218694 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B1888 80218698 E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B188C 8021869C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1890 802186A0 E7A00038 */ swc1 $f0, 0x38($sp)
@ -72,7 +72,7 @@ glabel func_802185B0_4B17A0
/* 4B18A0 802186B0 080861CE */ j .L80218738
/* 4B18A4 802186B4 E7A00040 */ swc1 $f0, 0x40($sp)
.L802186B8:
/* 4B18A8 802186B8 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B18A8 802186B8 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B18AC 802186BC 24040003 */ addiu $a0, $zero, 3
/* 4B18B0 802186C0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B18B4 802186C4 E7A00020 */ swc1 $f0, 0x20($sp)
@ -80,7 +80,7 @@ glabel func_802185B0_4B17A0
/* 4B18BC 802186CC E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B18C0 802186D0 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B18C4 802186D4 24040004 */ addiu $a0, $zero, 4
/* 4B18C8 802186D8 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B18C8 802186D8 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B18CC 802186DC E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B18D0 802186E0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B18D4 802186E4 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -88,7 +88,7 @@ glabel func_802185B0_4B17A0
/* 4B18DC 802186EC E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B18E0 802186F0 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B18E4 802186F4 24040005 */ addiu $a0, $zero, 5
/* 4B18E8 802186F8 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B18E8 802186F8 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B18EC 802186FC E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B18F0 80218700 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B18F4 80218704 E7A00038 */ swc1 $f0, 0x38($sp)
@ -96,7 +96,7 @@ glabel func_802185B0_4B17A0
/* 4B18FC 8021870C E7A0003C */ swc1 $f0, 0x3c($sp)
/* 4B1900 80218710 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B1904 80218714 24040006 */ addiu $a0, $zero, 6
/* 4B1908 80218718 0C086144 */ jal dup3_b_area_trd_part_2_UnkEnemyFunc
/* 4B1908 80218718 0C086144 */ jal b_area_trd_part_2_green_ninja_koopa_UnkEnemyFunc
/* 4B190C 8021871C E7A00040 */ swc1 $f0, 0x40($sp)
/* 4B1910 80218720 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1914 80218724 E7A00044 */ swc1 $f0, 0x44($sp)

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80218BF8_4B1DE8
/* 4B1DE8 80218BF8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 4B1DEC 80218BFC AFB10014 */ sw $s1, 0x14($sp)
/* 4B1DF0 80218C00 0080882D */ daddu $s1, $a0, $zero
/* 4B1DF4 80218C04 AFBF0020 */ sw $ra, 0x20($sp)
/* 4B1DF8 80218C08 AFB3001C */ sw $s3, 0x1c($sp)
/* 4B1DFC 80218C0C AFB20018 */ sw $s2, 0x18($sp)
/* 4B1E00 80218C10 AFB00010 */ sw $s0, 0x10($sp)
/* 4B1E04 80218C14 8E30000C */ lw $s0, 0xc($s1)
/* 4B1E08 80218C18 8E050000 */ lw $a1, ($s0)
/* 4B1E0C 80218C1C 0C0B1EAF */ jal evt_get_variable
/* 4B1E10 80218C20 26100004 */ addiu $s0, $s0, 4
/* 4B1E14 80218C24 8E050000 */ lw $a1, ($s0)
/* 4B1E18 80218C28 26100004 */ addiu $s0, $s0, 4
/* 4B1E1C 80218C2C 0220202D */ daddu $a0, $s1, $zero
/* 4B1E20 80218C30 0C0B1EAF */ jal evt_get_variable
/* 4B1E24 80218C34 0040982D */ daddu $s3, $v0, $zero
/* 4B1E28 80218C38 8E050000 */ lw $a1, ($s0)
/* 4B1E2C 80218C3C 26100004 */ addiu $s0, $s0, 4
/* 4B1E30 80218C40 0220202D */ daddu $a0, $s1, $zero
/* 4B1E34 80218C44 0C0B1EAF */ jal evt_get_variable
/* 4B1E38 80218C48 0040902D */ daddu $s2, $v0, $zero
/* 4B1E3C 80218C4C 0220202D */ daddu $a0, $s1, $zero
/* 4B1E40 80218C50 8E050000 */ lw $a1, ($s0)
/* 4B1E44 80218C54 0C0B1EAF */ jal evt_get_variable
/* 4B1E48 80218C58 0040802D */ daddu $s0, $v0, $zero
/* 4B1E4C 80218C5C 24040006 */ addiu $a0, $zero, 6
/* 4B1E50 80218C60 3C058023 */ lui $a1, %hi(D_802362D0)
/* 4B1E54 80218C64 24A562D0 */ addiu $a1, $a1, %lo(D_802362D0)
/* 4B1E58 80218C68 44930000 */ mtc1 $s3, $f0
/* 4B1E5C 80218C6C 00000000 */ nop
/* 4B1E60 80218C70 46800020 */ cvt.s.w $f0, $f0
/* 4B1E64 80218C74 E4A00028 */ swc1 $f0, 0x28($a1)
/* 4B1E68 80218C78 44920000 */ mtc1 $s2, $f0
/* 4B1E6C 80218C7C 00000000 */ nop
/* 4B1E70 80218C80 46800020 */ cvt.s.w $f0, $f0
/* 4B1E74 80218C84 0040382D */ daddu $a3, $v0, $zero
/* 4B1E78 80218C88 3C014120 */ lui $at, 0x4120
/* 4B1E7C 80218C8C 44811000 */ mtc1 $at, $f2
/* 4B1E80 80218C90 3C063F80 */ lui $a2, 0x3f80
/* 4B1E84 80218C94 46020001 */ sub.s $f0, $f0, $f2
/* 4B1E88 80218C98 44901000 */ mtc1 $s0, $f2
/* 4B1E8C 80218C9C 00000000 */ nop
/* 4B1E90 80218CA0 468010A0 */ cvt.s.w $f2, $f2
/* 4B1E94 80218CA4 E4A20030 */ swc1 $f2, 0x30($a1)
/* 4B1E98 80218CA8 0C01C4B4 */ jal playFX_46_whirlwind
/* 4B1E9C 80218CAC E4A0002C */ swc1 $f0, 0x2c($a1)
/* 4B1EA0 80218CB0 8FBF0020 */ lw $ra, 0x20($sp)
/* 4B1EA4 80218CB4 8FB3001C */ lw $s3, 0x1c($sp)
/* 4B1EA8 80218CB8 8FB20018 */ lw $s2, 0x18($sp)
/* 4B1EAC 80218CBC 8FB10014 */ lw $s1, 0x14($sp)
/* 4B1EB0 80218CC0 8FB00010 */ lw $s0, 0x10($sp)
/* 4B1EB4 80218CC4 24020002 */ addiu $v0, $zero, 2
/* 4B1EB8 80218CC8 03E00008 */ jr $ra
/* 4B1EBC 80218CCC 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -28,7 +28,7 @@ glabel func_80218D70_4B1F60
/* 4B1FB8 80218DC8 080863C0 */ j .L80218F00
/* 4B1FBC 80218DCC 2622FFFF */ addiu $v0, $s1, -1
.L80218DD0:
/* 4B1FC0 80218DD0 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B1FC0 80218DD0 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B1FC4 80218DD4 24040003 */ addiu $a0, $zero, 3
/* 4B1FC8 80218DD8 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1FCC 80218DDC E7A00020 */ swc1 $f0, 0x20($sp)
@ -36,7 +36,7 @@ glabel func_80218D70_4B1F60
/* 4B1FD4 80218DE4 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B1FD8 80218DE8 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B1FDC 80218DEC 24040006 */ addiu $a0, $zero, 6
/* 4B1FE0 80218DF0 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B1FE0 80218DF0 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B1FE4 80218DF4 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B1FE8 80218DF8 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B1FEC 80218DFC E7A0002C */ swc1 $f0, 0x2c($sp)
@ -46,7 +46,7 @@ glabel func_80218D70_4B1F60
/* 4B1FFC 80218E0C 080863BE */ j .L80218EF8
/* 4B2000 80218E10 E7A00034 */ swc1 $f0, 0x34($sp)
.L80218E14:
/* 4B2004 80218E14 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B2004 80218E14 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B2008 80218E18 24040003 */ addiu $a0, $zero, 3
/* 4B200C 80218E1C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2010 80218E20 E7A00020 */ swc1 $f0, 0x20($sp)
@ -54,7 +54,7 @@ glabel func_80218D70_4B1F60
/* 4B2018 80218E28 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B201C 80218E2C C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2020 80218E30 24040005 */ addiu $a0, $zero, 5
/* 4B2024 80218E34 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B2024 80218E34 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B2028 80218E38 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B202C 80218E3C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2030 80218E40 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -62,7 +62,7 @@ glabel func_80218D70_4B1F60
/* 4B2038 80218E48 E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B203C 80218E4C C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2040 80218E50 24040006 */ addiu $a0, $zero, 6
/* 4B2044 80218E54 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B2044 80218E54 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B2048 80218E58 E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B204C 80218E5C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2050 80218E60 E7A00038 */ swc1 $f0, 0x38($sp)
@ -72,7 +72,7 @@ glabel func_80218D70_4B1F60
/* 4B2060 80218E70 080863BE */ j .L80218EF8
/* 4B2064 80218E74 E7A00040 */ swc1 $f0, 0x40($sp)
.L80218E78:
/* 4B2068 80218E78 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B2068 80218E78 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B206C 80218E7C 24040003 */ addiu $a0, $zero, 3
/* 4B2070 80218E80 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2074 80218E84 E7A00020 */ swc1 $f0, 0x20($sp)
@ -80,7 +80,7 @@ glabel func_80218D70_4B1F60
/* 4B207C 80218E8C E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B2080 80218E90 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2084 80218E94 24040004 */ addiu $a0, $zero, 4
/* 4B2088 80218E98 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B2088 80218E98 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B208C 80218E9C E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B2090 80218EA0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2094 80218EA4 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -88,7 +88,7 @@ glabel func_80218D70_4B1F60
/* 4B209C 80218EAC E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B20A0 80218EB0 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B20A4 80218EB4 24040005 */ addiu $a0, $zero, 5
/* 4B20A8 80218EB8 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B20A8 80218EB8 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B20AC 80218EBC E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B20B0 80218EC0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B20B4 80218EC4 E7A00038 */ swc1 $f0, 0x38($sp)
@ -96,7 +96,7 @@ glabel func_80218D70_4B1F60
/* 4B20BC 80218ECC E7A0003C */ swc1 $f0, 0x3c($sp)
/* 4B20C0 80218ED0 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B20C4 80218ED4 24040006 */ addiu $a0, $zero, 6
/* 4B20C8 80218ED8 0C086334 */ jal b_area_trd_part_2_UnkEnemyFunc
/* 4B20C8 80218ED8 0C086334 */ jal b_area_trd_part_2_red_ninja_koopa_UnkEnemyFunc
/* 4B20CC 80218EDC E7A00040 */ swc1 $f0, 0x40($sp)
/* 4B20D0 80218EE0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B20D4 80218EE4 E7A00044 */ swc1 $f0, 0x44($sp)

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802193B8_4B25A8
/* 4B25A8 802193B8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 4B25AC 802193BC AFB10014 */ sw $s1, 0x14($sp)
/* 4B25B0 802193C0 0080882D */ daddu $s1, $a0, $zero
/* 4B25B4 802193C4 AFBF0020 */ sw $ra, 0x20($sp)
/* 4B25B8 802193C8 AFB3001C */ sw $s3, 0x1c($sp)
/* 4B25BC 802193CC AFB20018 */ sw $s2, 0x18($sp)
/* 4B25C0 802193D0 AFB00010 */ sw $s0, 0x10($sp)
/* 4B25C4 802193D4 8E30000C */ lw $s0, 0xc($s1)
/* 4B25C8 802193D8 8E050000 */ lw $a1, ($s0)
/* 4B25CC 802193DC 0C0B1EAF */ jal evt_get_variable
/* 4B25D0 802193E0 26100004 */ addiu $s0, $s0, 4
/* 4B25D4 802193E4 8E050000 */ lw $a1, ($s0)
/* 4B25D8 802193E8 26100004 */ addiu $s0, $s0, 4
/* 4B25DC 802193EC 0220202D */ daddu $a0, $s1, $zero
/* 4B25E0 802193F0 0C0B1EAF */ jal evt_get_variable
/* 4B25E4 802193F4 0040982D */ daddu $s3, $v0, $zero
/* 4B25E8 802193F8 8E050000 */ lw $a1, ($s0)
/* 4B25EC 802193FC 26100004 */ addiu $s0, $s0, 4
/* 4B25F0 80219400 0220202D */ daddu $a0, $s1, $zero
/* 4B25F4 80219404 0C0B1EAF */ jal evt_get_variable
/* 4B25F8 80219408 0040902D */ daddu $s2, $v0, $zero
/* 4B25FC 8021940C 0220202D */ daddu $a0, $s1, $zero
/* 4B2600 80219410 8E050000 */ lw $a1, ($s0)
/* 4B2604 80219414 0C0B1EAF */ jal evt_get_variable
/* 4B2608 80219418 0040802D */ daddu $s0, $v0, $zero
/* 4B260C 8021941C 24040006 */ addiu $a0, $zero, 6
/* 4B2610 80219420 3C058023 */ lui $a1, %hi(D_80236560)
/* 4B2614 80219424 24A56560 */ addiu $a1, $a1, %lo(D_80236560)
/* 4B2618 80219428 44930000 */ mtc1 $s3, $f0
/* 4B261C 8021942C 00000000 */ nop
/* 4B2620 80219430 46800020 */ cvt.s.w $f0, $f0
/* 4B2624 80219434 E4A00028 */ swc1 $f0, 0x28($a1)
/* 4B2628 80219438 44920000 */ mtc1 $s2, $f0
/* 4B262C 8021943C 00000000 */ nop
/* 4B2630 80219440 46800020 */ cvt.s.w $f0, $f0
/* 4B2634 80219444 0040382D */ daddu $a3, $v0, $zero
/* 4B2638 80219448 3C014120 */ lui $at, 0x4120
/* 4B263C 8021944C 44811000 */ mtc1 $at, $f2
/* 4B2640 80219450 3C063F80 */ lui $a2, 0x3f80
/* 4B2644 80219454 46020001 */ sub.s $f0, $f0, $f2
/* 4B2648 80219458 44901000 */ mtc1 $s0, $f2
/* 4B264C 8021945C 00000000 */ nop
/* 4B2650 80219460 468010A0 */ cvt.s.w $f2, $f2
/* 4B2654 80219464 E4A20030 */ swc1 $f2, 0x30($a1)
/* 4B2658 80219468 0C01C4B4 */ jal playFX_46_whirlwind
/* 4B265C 8021946C E4A0002C */ swc1 $f0, 0x2c($a1)
/* 4B2660 80219470 8FBF0020 */ lw $ra, 0x20($sp)
/* 4B2664 80219474 8FB3001C */ lw $s3, 0x1c($sp)
/* 4B2668 80219478 8FB20018 */ lw $s2, 0x18($sp)
/* 4B266C 8021947C 8FB10014 */ lw $s1, 0x14($sp)
/* 4B2670 80219480 8FB00010 */ lw $s0, 0x10($sp)
/* 4B2674 80219484 24020002 */ addiu $v0, $zero, 2
/* 4B2678 80219488 03E00008 */ jr $ra
/* 4B267C 8021948C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -28,7 +28,7 @@ glabel func_80219530_4B2720
/* 4B2778 80219588 080865B0 */ j .L802196C0
/* 4B277C 8021958C 2622FFFF */ addiu $v0, $s1, -1
.L80219590:
/* 4B2780 80219590 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2780 80219590 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B2784 80219594 24040003 */ addiu $a0, $zero, 3
/* 4B2788 80219598 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B278C 8021959C E7A00020 */ swc1 $f0, 0x20($sp)
@ -36,7 +36,7 @@ glabel func_80219530_4B2720
/* 4B2794 802195A4 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B2798 802195A8 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B279C 802195AC 24040006 */ addiu $a0, $zero, 6
/* 4B27A0 802195B0 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B27A0 802195B0 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B27A4 802195B4 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B27A8 802195B8 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B27AC 802195BC E7A0002C */ swc1 $f0, 0x2c($sp)
@ -46,7 +46,7 @@ glabel func_80219530_4B2720
/* 4B27BC 802195CC 080865AE */ j .L802196B8
/* 4B27C0 802195D0 E7A00034 */ swc1 $f0, 0x34($sp)
.L802195D4:
/* 4B27C4 802195D4 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B27C4 802195D4 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B27C8 802195D8 24040003 */ addiu $a0, $zero, 3
/* 4B27CC 802195DC C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B27D0 802195E0 E7A00020 */ swc1 $f0, 0x20($sp)
@ -54,7 +54,7 @@ glabel func_80219530_4B2720
/* 4B27D8 802195E8 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B27DC 802195EC C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B27E0 802195F0 24040005 */ addiu $a0, $zero, 5
/* 4B27E4 802195F4 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B27E4 802195F4 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B27E8 802195F8 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B27EC 802195FC C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B27F0 80219600 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -62,7 +62,7 @@ glabel func_80219530_4B2720
/* 4B27F8 80219608 E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B27FC 8021960C C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2800 80219610 24040006 */ addiu $a0, $zero, 6
/* 4B2804 80219614 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2804 80219614 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B2808 80219618 E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B280C 8021961C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2810 80219620 E7A00038 */ swc1 $f0, 0x38($sp)
@ -72,7 +72,7 @@ glabel func_80219530_4B2720
/* 4B2820 80219630 080865AE */ j .L802196B8
/* 4B2824 80219634 E7A00040 */ swc1 $f0, 0x40($sp)
.L80219638:
/* 4B2828 80219638 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2828 80219638 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B282C 8021963C 24040003 */ addiu $a0, $zero, 3
/* 4B2830 80219640 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2834 80219644 E7A00020 */ swc1 $f0, 0x20($sp)
@ -80,7 +80,7 @@ glabel func_80219530_4B2720
/* 4B283C 8021964C E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B2840 80219650 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2844 80219654 24040004 */ addiu $a0, $zero, 4
/* 4B2848 80219658 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2848 80219658 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B284C 8021965C E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B2850 80219660 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2854 80219664 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -88,7 +88,7 @@ glabel func_80219530_4B2720
/* 4B285C 8021966C E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B2860 80219670 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2864 80219674 24040005 */ addiu $a0, $zero, 5
/* 4B2868 80219678 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2868 80219678 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B286C 8021967C E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B2870 80219680 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2874 80219684 E7A00038 */ swc1 $f0, 0x38($sp)
@ -96,7 +96,7 @@ glabel func_80219530_4B2720
/* 4B287C 8021968C E7A0003C */ swc1 $f0, 0x3c($sp)
/* 4B2880 80219690 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2884 80219694 24040006 */ addiu $a0, $zero, 6
/* 4B2888 80219698 0C086524 */ jal dup4_b_area_trd_part_2_UnkEnemyFunc
/* 4B2888 80219698 0C086524 */ jal b_area_trd_part_2_blue_ninja_koopa_UnkEnemyFunc
/* 4B288C 8021969C E7A00040 */ swc1 $f0, 0x40($sp)
/* 4B2890 802196A0 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2894 802196A4 E7A00044 */ swc1 $f0, 0x44($sp)

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80219B78_4B2D68
/* 4B2D68 80219B78 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 4B2D6C 80219B7C AFB10014 */ sw $s1, 0x14($sp)
/* 4B2D70 80219B80 0080882D */ daddu $s1, $a0, $zero
/* 4B2D74 80219B84 AFBF0020 */ sw $ra, 0x20($sp)
/* 4B2D78 80219B88 AFB3001C */ sw $s3, 0x1c($sp)
/* 4B2D7C 80219B8C AFB20018 */ sw $s2, 0x18($sp)
/* 4B2D80 80219B90 AFB00010 */ sw $s0, 0x10($sp)
/* 4B2D84 80219B94 8E30000C */ lw $s0, 0xc($s1)
/* 4B2D88 80219B98 8E050000 */ lw $a1, ($s0)
/* 4B2D8C 80219B9C 0C0B1EAF */ jal evt_get_variable
/* 4B2D90 80219BA0 26100004 */ addiu $s0, $s0, 4
/* 4B2D94 80219BA4 8E050000 */ lw $a1, ($s0)
/* 4B2D98 80219BA8 26100004 */ addiu $s0, $s0, 4
/* 4B2D9C 80219BAC 0220202D */ daddu $a0, $s1, $zero
/* 4B2DA0 80219BB0 0C0B1EAF */ jal evt_get_variable
/* 4B2DA4 80219BB4 0040982D */ daddu $s3, $v0, $zero
/* 4B2DA8 80219BB8 8E050000 */ lw $a1, ($s0)
/* 4B2DAC 80219BBC 26100004 */ addiu $s0, $s0, 4
/* 4B2DB0 80219BC0 0220202D */ daddu $a0, $s1, $zero
/* 4B2DB4 80219BC4 0C0B1EAF */ jal evt_get_variable
/* 4B2DB8 80219BC8 0040902D */ daddu $s2, $v0, $zero
/* 4B2DBC 80219BCC 0220202D */ daddu $a0, $s1, $zero
/* 4B2DC0 80219BD0 8E050000 */ lw $a1, ($s0)
/* 4B2DC4 80219BD4 0C0B1EAF */ jal evt_get_variable
/* 4B2DC8 80219BD8 0040802D */ daddu $s0, $v0, $zero
/* 4B2DCC 80219BDC 24040006 */ addiu $a0, $zero, 6
/* 4B2DD0 80219BE0 3C058023 */ lui $a1, %hi(D_802367F0)
/* 4B2DD4 80219BE4 24A567F0 */ addiu $a1, $a1, %lo(D_802367F0)
/* 4B2DD8 80219BE8 44930000 */ mtc1 $s3, $f0
/* 4B2DDC 80219BEC 00000000 */ nop
/* 4B2DE0 80219BF0 46800020 */ cvt.s.w $f0, $f0
/* 4B2DE4 80219BF4 E4A00028 */ swc1 $f0, 0x28($a1)
/* 4B2DE8 80219BF8 44920000 */ mtc1 $s2, $f0
/* 4B2DEC 80219BFC 00000000 */ nop
/* 4B2DF0 80219C00 46800020 */ cvt.s.w $f0, $f0
/* 4B2DF4 80219C04 0040382D */ daddu $a3, $v0, $zero
/* 4B2DF8 80219C08 3C014120 */ lui $at, 0x4120
/* 4B2DFC 80219C0C 44811000 */ mtc1 $at, $f2
/* 4B2E00 80219C10 3C063F80 */ lui $a2, 0x3f80
/* 4B2E04 80219C14 46020001 */ sub.s $f0, $f0, $f2
/* 4B2E08 80219C18 44901000 */ mtc1 $s0, $f2
/* 4B2E0C 80219C1C 00000000 */ nop
/* 4B2E10 80219C20 468010A0 */ cvt.s.w $f2, $f2
/* 4B2E14 80219C24 E4A20030 */ swc1 $f2, 0x30($a1)
/* 4B2E18 80219C28 0C01C4B4 */ jal playFX_46_whirlwind
/* 4B2E1C 80219C2C E4A0002C */ swc1 $f0, 0x2c($a1)
/* 4B2E20 80219C30 8FBF0020 */ lw $ra, 0x20($sp)
/* 4B2E24 80219C34 8FB3001C */ lw $s3, 0x1c($sp)
/* 4B2E28 80219C38 8FB20018 */ lw $s2, 0x18($sp)
/* 4B2E2C 80219C3C 8FB10014 */ lw $s1, 0x14($sp)
/* 4B2E30 80219C40 8FB00010 */ lw $s0, 0x10($sp)
/* 4B2E34 80219C44 24020002 */ addiu $v0, $zero, 2
/* 4B2E38 80219C48 03E00008 */ jr $ra
/* 4B2E3C 80219C4C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -28,7 +28,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2F38 80219D48 080867A0 */ j .L80219E80
/* 4B2F3C 80219D4C 2622FFFF */ addiu $v0, $s1, -1
.L80219D50:
/* 4B2F40 80219D50 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2F40 80219D50 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2F44 80219D54 24040003 */ addiu $a0, $zero, 3
/* 4B2F48 80219D58 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2F4C 80219D5C E7A00020 */ swc1 $f0, 0x20($sp)
@ -36,7 +36,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2F54 80219D64 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B2F58 80219D68 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2F5C 80219D6C 24040006 */ addiu $a0, $zero, 6
/* 4B2F60 80219D70 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2F60 80219D70 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2F64 80219D74 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B2F68 80219D78 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2F6C 80219D7C E7A0002C */ swc1 $f0, 0x2c($sp)
@ -46,7 +46,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2F7C 80219D8C 0808679E */ j .L80219E78
/* 4B2F80 80219D90 E7A00034 */ swc1 $f0, 0x34($sp)
.L80219D94:
/* 4B2F84 80219D94 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2F84 80219D94 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2F88 80219D98 24040003 */ addiu $a0, $zero, 3
/* 4B2F8C 80219D9C C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2F90 80219DA0 E7A00020 */ swc1 $f0, 0x20($sp)
@ -54,7 +54,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2F98 80219DA8 E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B2F9C 80219DAC C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2FA0 80219DB0 24040005 */ addiu $a0, $zero, 5
/* 4B2FA4 80219DB4 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2FA4 80219DB4 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2FA8 80219DB8 E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B2FAC 80219DBC C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2FB0 80219DC0 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -62,7 +62,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2FB8 80219DC8 E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B2FBC 80219DCC C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B2FC0 80219DD0 24040006 */ addiu $a0, $zero, 6
/* 4B2FC4 80219DD4 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2FC4 80219DD4 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2FC8 80219DD8 E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B2FCC 80219DDC C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2FD0 80219DE0 E7A00038 */ swc1 $f0, 0x38($sp)
@ -72,7 +72,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2FE0 80219DF0 0808679E */ j .L80219E78
/* 4B2FE4 80219DF4 E7A00040 */ swc1 $f0, 0x40($sp)
.L80219DF8:
/* 4B2FE8 80219DF8 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B2FE8 80219DF8 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B2FEC 80219DFC 24040003 */ addiu $a0, $zero, 3
/* 4B2FF0 80219E00 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B2FF4 80219E04 E7A00020 */ swc1 $f0, 0x20($sp)
@ -80,7 +80,7 @@ glabel func_80219CF0_4B2EE0
/* 4B2FFC 80219E0C E7A00024 */ swc1 $f0, 0x24($sp)
/* 4B3000 80219E10 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B3004 80219E14 24040004 */ addiu $a0, $zero, 4
/* 4B3008 80219E18 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B3008 80219E18 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B300C 80219E1C E7A00028 */ swc1 $f0, 0x28($sp)
/* 4B3010 80219E20 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B3014 80219E24 E7A0002C */ swc1 $f0, 0x2c($sp)
@ -88,7 +88,7 @@ glabel func_80219CF0_4B2EE0
/* 4B301C 80219E2C E7A00030 */ swc1 $f0, 0x30($sp)
/* 4B3020 80219E30 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B3024 80219E34 24040005 */ addiu $a0, $zero, 5
/* 4B3028 80219E38 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B3028 80219E38 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B302C 80219E3C E7A00034 */ swc1 $f0, 0x34($sp)
/* 4B3030 80219E40 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B3034 80219E44 E7A00038 */ swc1 $f0, 0x38($sp)
@ -96,7 +96,7 @@ glabel func_80219CF0_4B2EE0
/* 4B303C 80219E4C E7A0003C */ swc1 $f0, 0x3c($sp)
/* 4B3040 80219E50 C4400140 */ lwc1 $f0, 0x140($v0)
/* 4B3044 80219E54 24040006 */ addiu $a0, $zero, 6
/* 4B3048 80219E58 0C086714 */ jal dup_b_area_trd_part_2_UnkEnemyFunc
/* 4B3048 80219E58 0C086714 */ jal b_area_trd_part_2_yellow_ninja_koopa_UnkEnemyFunc
/* 4B304C 80219E5C E7A00040 */ swc1 $f0, 0x40($sp)
/* 4B3050 80219E60 C4400138 */ lwc1 $f0, 0x138($v0)
/* 4B3054 80219E64 E7A00044 */ swc1 $f0, 0x44($sp)

View File

@ -2168,11 +2168,11 @@ segments:
- [0x325160]
- type: code
start: 0x3251D0
vram: 0x802BD100
vram: 0x802C0000
overlay: True
subsegments:
- [0x3251D0, c]
- [0x3255E0, data]
- [0x3251D0, c, 3251D0]
- [0x3255E0]
- type: code
start: 0x325AD0
vram: 0xE0200000
@ -3670,21 +3670,7 @@ segments:
- [0x4313F0, c, stage/kmr_04]
- [0x431660, c, stage/kmr_05]
- [0x4318D0, c, stage/kmr_06]
- [0x431B80, .data, area]
- [0x431FB0, .data, actor/goomba]
- [0x433970, .data, actor/spiked_goomba]
- [0x4354A0, .data, actor/paragoomba]
- [0x438740, .data, stage/kmr_02]
- [0x4387A0, .data, stage/kmr_03]
- [0x438BF0, .data, stage/kmr_04]
- [0x439040, .data, stage/kmr_05]
- [0x439440, .data, stage/kmr_06]
- [0x4398A0, .rodata, area]
- [0x4399AC, .rodata, stage/kmr_02] # FIXME: fucky rodata alignment
- [0x4399CC, .rodata, stage/kmr_03]
- [0x4399FC, .rodata, stage/kmr_04]
- [0x439A2C, .rodata, stage/kmr_05]
- [0x439A5C, .rodata, stage/kmr_06]
- [0x431B80]
- dir: battle/area_kmr_part_2
type: code
start: 0x439A90
@ -3813,23 +3799,38 @@ segments:
type: code
start: 0x4B11F0
vram: 0x80218000
subalign: 4
overlay: True
subsegments:
- [0x4B11F0, c]
- [0x4B15D0, c]
- [0x4B1D90, c]
- [0x4B2550, c]
- [0x4B2D10, c]
- [0x4B34D0, c]
- [0x4B3740, data]
- [0x4B11F0, c, area]
- [0x4B11F0, c, actor/fake_bowser]
- [0x4B15D0, c, actor/green_ninja_koopa]
- [0x4B1D90, c, actor/red_ninja_koopa]
- [0x4B2550, c, actor/blue_ninja_koopa]
- [0x4B2D10, c, actor/yellow_ninja_koopa]
- [0x4B34D0, c, stage/trd_00]
- [0x4B34D0, c, stage/trd_01]
- [0x4B34D0, c, stage/trd_02]
- [0x4B34D0, c, stage/trd_02b]
- [0x4B34D0, c, stage/trd_03]
- [0x4B3740, c, stage/trd_04]
- [0x4B3740, c, stage/trd_05]
- [0x4B3740, c, stage/trd_05b]
- [0x4B3740, c, stage/trd_05c]
- [0x4B3740, c, stage/trd_05d]
- [0x4B3740, c, stage/trd_05e]
- [0x4B3740, c, stage/trd_05f]
- [0x4B3740]
- dir: battle/area_trd_part_3
type: code
start: 0x4CF1B0
vram: 0x80218000
overlay: True
subsegments:
- [0x4CF1B0, c]
- [0x4CF3D0, data]
- [0x4CF1B0, c, area]
- [0x4CF1B0, c, actor/eldstar]
- [0x4CF3D0, c, stage/nok_01]
- [0x4CF3D0]
- dir: battle/area_iwa
type: code
start: 0x4D01F0
@ -4811,8 +4812,8 @@ segments:
vram: 0x802A1000
overlay: True
subsegments:
- [0x765C20, c]
- [0x765D10, data]
- [0x765C20, c, auto_jump]
- [0x765D10]
- dir: battle/move/power_quake
type: code
start: 0x767C90
@ -4827,8 +4828,8 @@ segments:
vram: 0x802A1000
overlay: True
subsegments:
- [0x76A830, c]
- [0x76A920, data]
- [0x76A830, c, auto_multibounce]
- [0x76A920]
- dir: battle/move/power_jump
type: code
start: 0x76D760

File diff suppressed because it is too large Load Diff

View File

@ -105,6 +105,7 @@ D_801A7000 = 0x801A7000;
D_801AA000 = 0x801AA000;
D_80210000 = 0x80210000;
D_80219040 = 0x80219040;
D_8021E364_5D49F4 = 0x8021E364;
D_80220740 = 0x80220740;
D_80220744 = 0x80220744;
D_80220750 = 0x80220750;
@ -120,6 +121,7 @@ D_80224D80 = 0x80224D80;
D_80224D90 = 0x80224D90;
D_80224DA0 = 0x80224DA0;
D_80224DB0 = 0x80224DB0;
D_8022AD80_4C3F70 = 0x8022AD80;
D_8022ADD0 = 0x8022ADD0;
D_8022B550 = 0x8022B550;
D_802310D0 = 0x802310D0;
@ -127,6 +129,8 @@ D_80232C20 = 0x80232C20;
D_80232C4C = 0x80232C4C;
D_80232C50 = 0x80232C50;
D_80235E00 = 0x80235E00;
D_80235E6C_4CF05C = 0x80235E6C;
D_80235F44_4CF134 = 0x80235F44;
D_802367F0 = 0x802367F0;
D_8023BD70 = 0x8023BD70;
D_8023BD78 = 0x8023BD78;