Decompile PopupMenu functions + more (#430)

* cleanup create_popup_menu
* fix some warnings
* decomp parts of 18C790.c
* rename PopupMessage.unk_04 to updateFunc
This commit is contained in:
JaThePlayer 2021-09-25 14:14:28 +02:00 committed by GitHub
parent e04a2e8330
commit 8e48172c1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 592 additions and 1042 deletions

View File

@ -2297,7 +2297,7 @@ struct PopupMessage;
typedef void (*PopupMessageCallback)(struct PopupMessage* popup);
typedef struct PopupMessage {
/* 0x00 */ s32 unk_00;
/* 0x04 */ PopupMessageCallback unk_04;
/* 0x04 */ PopupMessageCallback updateFunc;
/* 0x08 */ PopupMessageCallback unk_08;
/* 0x0C */ PopupMessageCallback drawFunc;
/* 0x10 */ s16 active;

View File

@ -154,7 +154,7 @@ void phys_adjust_cam_on_landing(void);
void phys_init_integrator_for_current_state(void);
void phys_player_land(void);
void create_popup_menu(void*);
void create_popup_menu(PopupMenu*);
s32 npc_test_move_simple_without_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32);
void update_collider_transform(s16 colliderID);
@ -503,5 +503,10 @@ s32 func_80268224(s32);
void func_80149A6C(s32, s32);
void func_800EF300(void);
void enable_player_shadow(void);
s32 get_msg_lines(s32 messageID);
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, s32, void* drawContents, PopupMessage* popup, s32 parent);
void set_window_update(s32 panelID, s32);
void snd_stop_sound(SoundID soundID);
void partner_disable_input(void);
#endif

View File

@ -39,8 +39,8 @@ void func_8024EE48(void) {
for (i = 0; i < ARRAY_COUNT(popupMessages); i++) {
PopupMessage* popup = &popupMessages[i];
if (popup->active && popup->unk_04 != NULL) {
popup->unk_04(popup);
if (popup->active && popup->updateFunc != NULL) {
popup->updateFunc(popup);
}
}
}
@ -123,7 +123,7 @@ void btl_show_battle_message(s32 messageIndex, s32 duration) {
PopupMessage* popup = btl_create_popup();
if (popup != NULL) {
popup->unk_04 = func_8024FB3C;
popup->updateFunc = func_8024FB3C;
popup->drawFunc = btl_show_message_popup;
popup->unk_00 = 0;
popup->unk_08 = NULL;
@ -145,7 +145,7 @@ void btl_show_variable_battle_message(s32 messageIndex, s32 duration, s32 varVal
PopupMessage* popup = btl_create_popup();
if (popup != NULL) {
popup->unk_04 = func_8024FB3C;
popup->updateFunc = func_8024FB3C;
popup->drawFunc = btl_show_message_popup;
popup->unk_00 = 0;
popup->unk_08 = NULL;

View File

@ -1,16 +1,51 @@
#include "common.h"
#include "effects.h"
INCLUDE_ASM(s32, "18C790", func_8025DEB0);
extern s32 D_8029FB78;
s32* virtual_entity_get_by_index(s32);
ApiStatus func_8025DEB0(Evt* script, s32 isInitialCall) {
script->varTable[0] = (s8)gBattleStatus.totalStarPoints;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "18C790", func_8025DEC4);
INCLUDE_ASM(s32, "18C790", func_8025E030);
ApiStatus func_8025E030(Evt* script, s32 isInitialCall) {
return D_8029FB78 != 0 ? ApiStatus_DONE2 : ApiStatus_BLOCK;
}
INCLUDE_ASM(s32, "18C790", func_8025E044);
ApiStatus func_8025E044(Evt* script, s32 isInitialCall) {
EntityModel* model;
INCLUDE_ASM(s32, "18C790", func_8025E108);
model = get_entity_model(*virtual_entity_get_by_index(script->varTable[6]));
model->flags &= 0xFFFF000F;
model->flags |= 0x8;
model = get_entity_model(*virtual_entity_get_by_index(script->varTable[7]));
model->flags &= 0xFFFF000F;
model->flags |= 0x8;
model = get_entity_model(*virtual_entity_get_by_index(script->varTable[8]));
model->flags &= 0xFFFF000F;
model->flags |= 0x8;
model = get_entity_model(*virtual_entity_get_by_index(script->varTable[9]));
model->flags &= 0xFFFF000F;
model->flags |= 0x8;
INCLUDE_ASM(s32, "18C790", func_8025E14C);
return ApiStatus_DONE2;
}
ApiStatus func_8025E108(Evt* script, s32 isInitialCall) {
EntityModel* model = get_entity_model(*virtual_entity_get_by_index(script->varTable[9]));
model->flags &= 0xFFFF000F;
model->flags |= 0x8;
return ApiStatus_DONE2;
}
ApiStatus func_8025E14C(Evt* script, s32 isInitialCall) {
playFX_44(3, 0.0f, 100.0f, 0.0f, 1.0f, 0x78);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "18C790", btl_state_update_celebration);

View File

@ -2,28 +2,167 @@
#include "map.h"
extern s32 D_800A0F40;
extern PopupMessage D_800A0BC0[32];
extern s16 D_80078160[];
extern s32 D_80078168[];
INCLUDE_ASM(s32, "20ec0_len_5040", func_80045AC0);
void update_merlee_message(PopupMessage* popup);
void draw_merlee_message(PopupMessage* popup);
void func_80045BC8(void);
void func_80045FB4(void);
INCLUDE_ASM(s32, "20ec0_len_5040", func_80045B10);
void func_80045AC0(void) {
s32 i;
INCLUDE_ASM(s32, "20ec0_len_5040", update_merlee_messages);
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
popup->active = FALSE;
popup->message = NULL;
}
INCLUDE_ASM(s32, "20ec0_len_5040", func_80045BC8);
create_generic_entity_world(NULL, func_80045BC8);
func_80045FB4();
}
INCLUDE_ASM(s32, "20ec0_len_5040", draw_merlee_messages);
void func_80045B10(void) {
s32 i;
INCLUDE_ASM(s32, "20ec0_len_5040", get_current_merlee_message);
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
if (popup->message != NULL) {
heap_free(popup->message);
}
popup->active = FALSE;
}
}
INCLUDE_ASM(s32, "20ec0_len_5040", dispose_merlee_message);
void update_merlee_messages(void) {
s32 i;
INCLUDE_ASM(s32, "20ec0_len_5040", show_merlee_message);
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
if (popup->active && popup->updateFunc != NULL) {
popup->updateFunc(popup);
}
}
}
void func_80045BC8(void) {
s32 i;
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
if (popup->active && popup->unk_08 != NULL) {
popup->unk_08(popup);
}
}
}
void draw_merlee_messages(void) {
s32 i;
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
if (popup->active && popup->drawFunc != NULL) {
popup->drawFunc(popup);
}
}
}
PopupMessage* get_current_merlee_message(void) {
s32 i;
for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
PopupMessage* popup = &D_800A0BC0[i];
if (!popup->active) {
popup->active = TRUE;
return popup;
}
}
return NULL;
}
void dispose_merlee_message(PopupMessage* popup) {
if (popup->message != NULL) {
heap_free(popup->message);
popup->message = NULL;
}
popup->active = FALSE;
}
void show_merlee_message(s16 messageIndex, s16 duration) {
PopupMessage* popup = get_current_merlee_message();
if (popup != NULL) {
popup->updateFunc = update_merlee_message;
popup->drawFunc = draw_merlee_message;
popup->unk_17 = 1;
popup->unk_00 = 0;
popup->unk_08 = NULL;
popup->messageIndex = messageIndex;
popup->duration = duration;
popup->unk_16 = 0;
D_800A0F40 = 1;
}
}
#ifdef NON_MATCHING // .rodata alignment, will match once all other functions in this file are matched
void update_merlee_message(PopupMessage* popup) {
s32 closeMessage = FALSE;
switch (popup->unk_16) {
case 0:
popup->unk_16 = 1;
break;
case 1:
popup->unk_16 = 2;
break;
case 2:
if (gGameStatusPtr->pressedButtons & 0xC000) {
popup->duration = 0;
}
if (popup->duration != 0) {
popup->duration--;
} else {
popup->unk_16 = 3;
}
break;
case 3:
popup->unk_16 = 4;
break;
case 4:
closeMessage = TRUE;
break;
}
if (closeMessage) {
set_window_update(9, 2);
D_800A0F40 = 0;
dispose_merlee_message(popup);
}
}
#else
INCLUDE_ASM(s32, "20ec0_len_5040", update_merlee_message);
#endif
void draw_merlee_message_string(PopupMessage* popup);
INCLUDE_ASM(s32, "20ec0_len_5040", draw_merlee_message_string);
INCLUDE_ASM(s32, "20ec0_len_5040", draw_merlee_message);
void draw_merlee_message(PopupMessage* popup) {
s32 messageID;
s32 xPos;
s32 width;
if (popup->unk_17 != 0) {
popup->unk_17 = 0;
messageID = D_80078168[popup->messageIndex];
width = get_msg_width(messageID, 0) + 30;
xPos = 160 - (width / 2);
set_window_properties(9, xPos, 80, width, D_80078160[get_msg_lines(messageID) - 1], 0, draw_merlee_message_string, popup, -1);
set_window_update(9, 1);
}
}
s32 is_merlee_message_done(void) {
return D_800A0F40;

View File

@ -133,7 +133,18 @@ s32 player_raycast_below(f32 yaw, f32 diameter, f32* outX, f32* outY, f32* outZ,
return ret;
}
INCLUDE_ASM(s32, "77480", player_raycast_below_cam_relative);
s32 player_raycast_below_cam_relative(PlayerStatus* playerStatus, f32* outX, f32* outY, f32* outZ, f32* outLength,
f32* hitRx, f32* hitRz, f32* hitDirX, f32* hitDirZ) {
f32 yaw = 0.0f;
if (playerStatus->spriteFacingAngle >= 90.0f && playerStatus->spriteFacingAngle < 270.0f) {
yaw = 180.0f;
}
return player_raycast_below(yaw - 90.0f + gCameras[gCurrentCameraID].currentYaw, playerStatus->colliderDiameter,
outX, outY, outZ, outLength, hitRx, hitRz, hitDirX, hitDirZ);
}
INCLUDE_ASM(s32, "77480", player_raycast_down);

View File

@ -17,4 +17,5 @@ INCLUDE_ASM(s32, "891b0_len_fb0", func_800F09EC);
INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0B3C);
INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0C9C);
void func_800F0C9C(void) {
}

View File

@ -1,11 +1,96 @@
#include "common.h"
extern s32 D_8010D650;
extern s32 D_8010D660;
extern s32 D_8010D664;
extern s8 D_8010D699;
extern PopupMenu* D_8010D69C;
extern s32 D_8010D640;
extern s32 D_8010D65C;
extern s32 D_8010D668;
extern s32 D_8010D66C;
extern s32 D_8010D670;
extern s32 D_8010D674;
extern s32 D_8010D678;
extern s8 D_8010D69A;
extern s32 D_8010D648;
extern s32 D_8010D64C;
extern s8 D_8010D654;
extern u8 D_8010D655;
extern u8 D_8010D656;
extern s8 D_8010D68E;
extern s8 D_8010D68F;
extern s8 D_8010D691;
extern s8 D_8010D692;
extern s32 D_8010D694;
extern s8 D_8010D698;
void func_800E9894(void);
s8 func_800E98D4(void);
void open_status_menu_short(void);
void func_800E98C4(void);
enum PopupTypes {
POPUP_TYPE_USE_ITEM,
POPUP_TYPE_SWITCH_PARTNER,
POPUP_TYPE_THROW_AWAY_ITEM,
POPUP_TYPE_TRADE_FOR_BADGE,
POPUP_TYPE_UPGRADE_PARTNER,
POPUP_TYPE_SELL_ITEM,
POPUP_TYPE_CHECK_ITEM,
POPUP_TYPE_CLAIM_ITEM,
POPUP_TYPE_READ_LETTER,
POPUP_TYPE_TAKE_FROM_CHEST,
POPUP_TYPE_READ_DIARY_PAGE,
POPUP_TYPE_READ_POSTCARD,
POPUP_TYPE_USE_KEY,
};
INCLUDE_ASM(s32, "8a860_len_3f30", hide_popup_menu);
INCLUDE_ASM(s32, "8a860_len_3f30", destroy_popup_menu);
void destroy_popup_menu(void) {
free_hud_element(D_8010D65C);
free_hud_element(D_8010D678);
free_hud_element(D_8010D66C);
free_hud_element(D_8010D670);
free_hud_element(D_8010D674);
if (D_8010D69C->popupType == POPUP_TYPE_TRADE_FOR_BADGE) {
free_hud_element(D_8010D660);
free_hud_element(D_8010D664);
}
if (D_8010D69C->popupType == POPUP_TYPE_UPGRADE_PARTNER) {
free_hud_element(D_8010D660);
free_hud_element(D_8010D664);
}
if (D_8010D69C->popupType == POPUP_TYPE_SWITCH_PARTNER || D_8010D69C->popupType == POPUP_TYPE_UPGRADE_PARTNER) {
free_hud_element(D_8010D668);
}
if (D_8010D69C->popupType == POPUP_TYPE_SELL_ITEM) {
free_hud_element(D_8010D660);
}
if ((D_8010D69C->popupType <= POPUP_TYPE_USE_ITEM ||
D_8010D69C->popupType == POPUP_TYPE_SWITCH_PARTNER ||
D_8010D69C->popupType == POPUP_TYPE_THROW_AWAY_ITEM ||
D_8010D69C->popupType == POPUP_TYPE_TRADE_FOR_BADGE ||
D_8010D69C->popupType == POPUP_TYPE_UPGRADE_PARTNER ||
D_8010D69C->popupType == POPUP_TYPE_USE_KEY
) && !gGameStatusPtr->isBattle) {
if (D_8010D69A == 0) {
func_800E98C4();
}
close_status_menu();
}
D_8010D640 = -4;
}
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F16CC);
void popup_menu_update(void);
INCLUDE_ASM(s32, "8a860_len_3f30", popup_menu_update);
INCLUDE_ASM(s32, "8a860_len_3f30", popup_menu_draw_menu_contents);
@ -16,15 +101,124 @@ INCLUDE_ASM(s32, "8a860_len_3f30", func_800F48F4);
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4944);
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4C1C);
void func_800F4C1C(PopupMessage* popup, s32 x, s32 y) {
s32 msg = 0x1D0069;
s32 xPos = x + 11;
s32 yPos = y + 8;
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4C6C);
if (D_8010D699 == 1) {
msg = 0x1D0068;
}
draw_msg(msg, xPos, yPos, 255, 15, 0);
}
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4CF0);
void func_800F4C6C(PopupMessage* popup, s32 x, s32 y) {
s32 hudElement;
s32 xPos;
s32 yPos;
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4D28);
switch (D_8010D69C->popupType) {
case POPUP_TYPE_TRADE_FOR_BADGE:
xPos = x + 16;
hudElement = D_8010D660;
yPos = y + 16;
break;
case POPUP_TYPE_SELL_ITEM:
xPos = x + 17;
hudElement = D_8010D660;
yPos = y + 17;
break;
default:
return;
}
set_hud_element_render_pos(hudElement, xPos, yPos);
set_hud_element_alpha(hudElement, D_8010D650);
draw_hud_element_clipped(hudElement);
}
INCLUDE_ASM(void, "8a860_len_3f30", create_popup_menu, void* arg0);
void func_800F4CF0(PopupMessage* popup, s32 x, s32 y) {
draw_msg(0x1D006B, x + 16, y + 2, 255, 15, 0);
}
void func_800F4D28(PopupMessage* popup, s32 x, s32 y) {
s32 hudElement = D_8010D660;
PlayerData* playerData = &gPlayerData;
s32 xPos = x + 14;
s32 yPos = y + 9;
s32 type;
set_hud_element_alpha(hudElement, D_8010D650);
if (D_8010D69C->popupType == POPUP_TYPE_TRADE_FOR_BADGE) {
set_hud_element_render_pos(hudElement, xPos, yPos);
} else {
set_hud_element_render_pos(hudElement, xPos, y + 10);
}
draw_hud_element_clipped(hudElement);
hudElement = D_8010D664;
set_hud_element_render_pos(hudElement, x + 26, y + 11);
set_hud_element_alpha(hudElement, D_8010D650);
draw_hud_element_clipped(hudElement);
type = D_8010D69C->popupType;
if (type == POPUP_TYPE_TRADE_FOR_BADGE) {
draw_number(playerData->starPieces, x + 58, y + 4, 1, 10, D_8010D650, type);
}
}
#ifdef NON_MATCHING
void create_popup_menu(PopupMenu* popup) {
PopupMenu* otherPopup;
s8 entryCount;
D_8010D69A = func_800E98D4();
func_800E9894();
open_status_menu_short();
D_8010D69C = popup;
popup->result = 0;
popup->unk_31C = 0;
popup->unk_320 = 0;
D_8010D699 = 0;
D_8010D698 = 1;
if (popup->popupType >= 0x64) {
popup->popupType -= 0x64;
D_8010D699 = 1;
if (popup->popupType >= 0x64) {
popup->popupType -= 0x64;
D_8010D699 = 2;
}
D_8010D698 = 0;
}
otherPopup = D_8010D69C;
D_8010D68E = 1;
D_8010D640 = 0;
D_8010D648 = otherPopup->initialPos;
if (otherPopup->initialPos >= otherPopup->numEntries) {
D_8010D648 = otherPopup->numEntries - 1;
}
D_8010D68F = 6;
D_8010D654 = 0;
D_8010D64C = D_8010D648;
entryCount = otherPopup->numEntries;
D_8010D656 = entryCount;
if (entryCount > 6) {
D_8010D656 = 6;
}
D_8010D655 = 6;
if (temp_a1->numEntries < 6) {
D_8010D655 = temp_a1->numEntries;
}
D_8010D650 = 255;
D_8010D691 = 4;
D_8010D692 = 6;
D_8010D694 = create_generic_entity_frontUI(popup_menu_update, NULL);
}
#else
INCLUDE_ASM(void, "8a860_len_3f30", create_popup_menu, PopupMenu* popup);
#endif
INCLUDE_ASM(s32, "8a860_len_3f30", func_800F4FC4);

View File

@ -15,11 +15,32 @@ INCLUDE_ASM(s32, "C50A0", draw_image_with_clipping);
INCLUDE_ASM(s32, "C50A0", draw_tiled_image);
INCLUDE_ASM(s32, "C50A0", integer_log);
s32 integer_log(s32 number, s32 base) {
f64 temp_f0;
f32 fNumber = number;
s32 ret = 1;
while (TRUE) {
temp_f0 = base;
if (base < 0) {
temp_f0 += 4294967296.0;
}
fNumber /= (f32)temp_f0;
if (fNumber <= 1.0) {
return ret;
}
ret++;
}
}
INCLUDE_ASM(s32, "C50A0", draw_adjustable_tiled_image);
INCLUDE_ASM(s32, "C50A0", sparkle_script_init);
void sparkle_script_init(ItemEntity* itemEntity, s32* state) {
itemEntity->currentState = state;
itemEntity->framesLeft = 1;
itemEntity->sequenceStart = state;
}
s32 sparkle_script_step(ItemEntity* itemEntity) {
s32* currentState = itemEntity->currentState;
@ -75,9 +96,25 @@ ItemEntity* get_item_entity(s32 itemEntityIndex) {
return D_801565A0[itemEntityIndex];
}
INCLUDE_ASM(s32, "C50A0", item_entity_disable_shadow);
void item_entity_disable_shadow(ItemEntity* itemEntity) {
Shadow* shadow;
INCLUDE_ASM(s32, "C50A0", item_entity_enable_shadow);
itemEntity->flags |= 0x40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags |= 1;
}
}
void item_entity_enable_shadow(ItemEntity* itemEntity) {
Shadow* shadow;
itemEntity->flags &= ~0x40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags &= ~1;
}
}
INCLUDE_ASM(s32, "C50A0", clear_item_entity_data);
@ -96,8 +133,6 @@ void init_item_entity_list(void) {
INCLUDE_ASM(s32, "C50A0", item_entity_load);
s32 make_item_entity(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupDelay, s32 facingAngleSign,
s32 pickupVar);
INCLUDE_ASM(s32, "C50A0", make_item_entity, s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupDelay,
s32 facingAngleSign, s32 pickupVar);
@ -129,6 +164,7 @@ INCLUDE_ASM(s32, "C50A0", remove_item_entity_by_index);
INCLUDE_ASM(s32, "C50A0", func_80133A94);
s32 test_item_player_collision(ItemEntity* itemEntity);
INCLUDE_ASM(s32, "C50A0", test_item_player_collision);
INCLUDE_ASM(s32, "C50A0", test_item_entity_position);
@ -184,7 +220,15 @@ INCLUDE_ASM(s32, "C50A0", update_item_entity_collectable);
INCLUDE_ASM(s32, "C50A0", func_8013559C);
INCLUDE_ASM(s32, "C50A0", update_item_entity_static);
void update_item_entity_static(ItemEntity* itemEntity) {
if ((s8)itemEntity->state == 0 && test_item_player_collision(itemEntity)) {
D_801565A4 = 1;
itemEntity->type = 28;
itemEntity->state = 0;
D_801565A8 = 0;
gOverrideFlags |= 0x40;
}
}
void func_801356C4(void) {
}
@ -201,6 +245,8 @@ INCLUDE_ASM(s32, "C50A0", func_801363A0);
INCLUDE_ASM(s32, "C50A0", func_8013673C);
INCLUDE_ASM(s32, "C50A0", func_801369D0);
void func_801369D0(s32 arg1, s32 x, s32 y) {
draw_msg(0x1D0060, x + 12, y + 4, 255, 52, 0);
}
INCLUDE_ASM(s32, "C50A0", func_80136A08);

View File

@ -107,7 +107,14 @@ INCLUDE_ASM(void, "DF950", sfx_play_sound_with_params, s32 arg0, u8 arg1, u8 arg
INCLUDE_ASM(s32, "DF950", sfx_adjust_env_sound_params);
INCLUDE_ASM(s32, "DF950", sfx_stop_sound);
void sfx_stop_sound(SongID soundID) {
SongID sound = soundID;
if (sound < 0) {
func_80149A6C(D_8014F2D0[sound & 0xFFFF], 0);
} else {
snd_stop_sound(sound);
}
}
void sfx_play_sound(s32 soundID) {
sfx_play_sound_with_params(soundID, 0, 0, 0);

View File

@ -99,7 +99,62 @@ ApiStatus DoNpcDefeat(Evt* script, s32 isInitialCall) {
return ApiStatus_FINISH;
}
INCLUDE_ASM(s32, "encounter_api", start_battle);
void start_battle(Evt* script, s32 songID) {
EncounterStatus* currentEncounter = &gCurrentEncounter;
Enemy* enemy = script->owner1.enemy;
Encounter* encounter;
s32 i;
resume_all_group(1);
currentEncounter->hitType = 1;
enemy->encountered = TRUE;
currentEncounter->currentEnemy = enemy;
currentEncounter->currentEncounter = currentEncounter->encounterList[enemy->encounterIndex];
currentEncounter->eFirstStrike = 0;
currentEncounter->allowFleeing = 0;
currentEncounter->songID = songID;
currentEncounter->unk_18 = -1;
if (enemy->aiScript != NULL) {
suspend_all_script(enemy->aiScriptID);
}
if (enemy->auxScript != NULL) {
suspend_all_script(enemy->auxScriptID);
}
disable_player_input();
partner_disable_input();
encounter = currentEncounter->currentEncounter;
for (i = 0; i < encounter->count; i++) {
enemy = encounter->enemy[i];
if ((enemy != NULL && (
!(enemy->flags & 8) || enemy == currentEncounter->currentEnemy)
) && enemy->hitBytecode != NULL) {
Evt* hitEvtInstance;
enemy->encountered = TRUE;
hitEvtInstance = start_script(enemy->hitBytecode, 10, 0);
enemy->hitScript = hitEvtInstance;
enemy->hitScriptID = hitEvtInstance->id;
hitEvtInstance = enemy->hitScript;
hitEvtInstance->owner1.enemy = enemy;
hitEvtInstance->owner2.npcID = enemy->npcID;
hitEvtInstance->groupFlags = enemy->scriptGroup;
}
}
currentEncounter->fadeOutAmount = 0;
currentEncounter->unk_94 = 0;
currentEncounter->unk_12 = 1;
gGameState = 3;
D_8009A678 = 1;
D_8009A5D0 = 0;
}
ApiStatus StartBattle(Evt* script, s32 isInitialCall) {
start_battle(script, -1);
@ -111,7 +166,68 @@ ApiStatus StartBattleWith(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE1;
}
#ifdef NON_MATCHING // regalloc
ApiStatus StartBossBattle(Evt* script, s32 isInitialCall) {
Encounter* encounter;
s32 i;
EncounterStatus* currentEncounter = &gCurrentEncounter;
Enemy* enemy = script->owner1.enemy;
s32 songID = evt_get_variable(script, *script->ptrReadPos);
resume_all_group(1);
currentEncounter->hitType = 1;
enemy->encountered = TRUE;
currentEncounter->currentEnemy = enemy;
currentEncounter->currentEncounter = currentEncounter->encounterList[enemy->encounterIndex];
currentEncounter->eFirstStrike = 0;
currentEncounter->allowFleeing = 1;
currentEncounter->songID = songID;
currentEncounter->unk_18 = -1;
if (enemy->aiScript != NULL) {
suspend_all_script(enemy->aiScriptID);
}
if (enemy->auxScript != NULL) {
suspend_all_script(enemy->auxScriptID);
}
disable_player_input();
partner_disable_input();
encounter = currentEncounter->currentEncounter;
for (i = 0; i < encounter->count; i++) {
enemy = encounter->enemy[i];
if ((enemy != NULL && (
!(enemy->flags & 8) || enemy == currentEncounter->currentEnemy)
) && enemy->hitBytecode != NULL) {
Evt* hitEvtInstance;
enemy->encountered = TRUE;
hitEvtInstance = start_script(enemy->hitBytecode, 10, 0);
enemy->hitScript = hitEvtInstance;
enemy->hitScriptID = hitEvtInstance->id;
hitEvtInstance = enemy->hitScript;
hitEvtInstance->owner1.enemy = enemy;
hitEvtInstance->owner2.npcID = enemy->npcID;
hitEvtInstance->groupFlags = enemy->scriptGroup;
}
}
currentEncounter->fadeOutAmount = 0;
currentEncounter->unk_94 = 0;
currentEncounter->unk_12 = 1;
gGameState = 3;
D_8009A678 = 1;
D_8009A5D0 = 0;
return ApiStatus_DONE1;
}
#else
INCLUDE_ASM(s32, "encounter_api", StartBossBattle, Evt* script, s32 isInitialCall);
#endif
ApiStatus SetBattleMusic(Evt* script, s32 isInitialCall) {
Bytecode songID = evt_get_variable(script, *script->ptrReadPos);

View File

@ -1,7 +1,5 @@
#include "common.h"
void snd_stop_sound(s32 soundID);
extern f32 D_802B6780;
extern f32 D_802B6784;
extern f32 D_802B6788;

View File

@ -1,9 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025DEB0
/* 18C790 8025DEB0 3C02800E */ lui $v0, %hi(gBattleStatus+0x78)
/* 18C794 8025DEB4 8042C0E8 */ lb $v0, %lo(gBattleStatus+0x78)($v0)
/* 18C798 8025DEB8 AC820084 */ sw $v0, 0x84($a0)
/* 18C79C 8025DEBC 03E00008 */ jr $ra
/* 18C7A0 8025DEC0 24020002 */ addiu $v0, $zero, 2

View File

@ -1,9 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025E030
/* 18C910 8025E030 3C02802A */ lui $v0, %hi(D_8029FB78)
/* 18C914 8025E034 8C42FB78 */ lw $v0, %lo(D_8029FB78)($v0)
/* 18C918 8025E038 0002102B */ sltu $v0, $zero, $v0
/* 18C91C 8025E03C 03E00008 */ jr $ra
/* 18C920 8025E040 00021040 */ sll $v0, $v0, 1

View File

@ -1,53 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025E044
/* 18C924 8025E044 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 18C928 8025E048 AFB00010 */ sw $s0, 0x10($sp)
/* 18C92C 8025E04C 0080802D */ daddu $s0, $a0, $zero
/* 18C930 8025E050 AFBF0018 */ sw $ra, 0x18($sp)
/* 18C934 8025E054 AFB10014 */ sw $s1, 0x14($sp)
/* 18C938 8025E058 8E04009C */ lw $a0, 0x9c($s0)
/* 18C93C 8025E05C 0C0B5059 */ jal virtual_entity_get_by_index
/* 18C940 8025E060 3C11FFFF */ lui $s1, 0xffff
/* 18C944 8025E064 8C440000 */ lw $a0, ($v0)
/* 18C948 8025E068 0C048B77 */ jal get_entity_model
/* 18C94C 8025E06C 3631000F */ ori $s1, $s1, 0xf
/* 18C950 8025E070 0040202D */ daddu $a0, $v0, $zero
/* 18C954 8025E074 8C820000 */ lw $v0, ($a0)
/* 18C958 8025E078 00511024 */ and $v0, $v0, $s1
/* 18C95C 8025E07C 34420008 */ ori $v0, $v0, 8
/* 18C960 8025E080 AC820000 */ sw $v0, ($a0)
/* 18C964 8025E084 0C0B5059 */ jal virtual_entity_get_by_index
/* 18C968 8025E088 8E0400A0 */ lw $a0, 0xa0($s0)
/* 18C96C 8025E08C 0C048B77 */ jal get_entity_model
/* 18C970 8025E090 8C440000 */ lw $a0, ($v0)
/* 18C974 8025E094 0040202D */ daddu $a0, $v0, $zero
/* 18C978 8025E098 8C820000 */ lw $v0, ($a0)
/* 18C97C 8025E09C 00511024 */ and $v0, $v0, $s1
/* 18C980 8025E0A0 34420008 */ ori $v0, $v0, 8
/* 18C984 8025E0A4 AC820000 */ sw $v0, ($a0)
/* 18C988 8025E0A8 0C0B5059 */ jal virtual_entity_get_by_index
/* 18C98C 8025E0AC 8E0400A4 */ lw $a0, 0xa4($s0)
/* 18C990 8025E0B0 0C048B77 */ jal get_entity_model
/* 18C994 8025E0B4 8C440000 */ lw $a0, ($v0)
/* 18C998 8025E0B8 0040202D */ daddu $a0, $v0, $zero
/* 18C99C 8025E0BC 8C820000 */ lw $v0, ($a0)
/* 18C9A0 8025E0C0 00511024 */ and $v0, $v0, $s1
/* 18C9A4 8025E0C4 34420008 */ ori $v0, $v0, 8
/* 18C9A8 8025E0C8 AC820000 */ sw $v0, ($a0)
/* 18C9AC 8025E0CC 0C0B5059 */ jal virtual_entity_get_by_index
/* 18C9B0 8025E0D0 8E0400A8 */ lw $a0, 0xa8($s0)
/* 18C9B4 8025E0D4 0C048B77 */ jal get_entity_model
/* 18C9B8 8025E0D8 8C440000 */ lw $a0, ($v0)
/* 18C9BC 8025E0DC 0040202D */ daddu $a0, $v0, $zero
/* 18C9C0 8025E0E0 8C830000 */ lw $v1, ($a0)
/* 18C9C4 8025E0E4 00711824 */ and $v1, $v1, $s1
/* 18C9C8 8025E0E8 34630008 */ ori $v1, $v1, 8
/* 18C9CC 8025E0EC AC830000 */ sw $v1, ($a0)
/* 18C9D0 8025E0F0 8FBF0018 */ lw $ra, 0x18($sp)
/* 18C9D4 8025E0F4 8FB10014 */ lw $s1, 0x14($sp)
/* 18C9D8 8025E0F8 8FB00010 */ lw $s0, 0x10($sp)
/* 18C9DC 8025E0FC 24020002 */ addiu $v0, $zero, 2
/* 18C9E0 8025E100 03E00008 */ jr $ra
/* 18C9E4 8025E104 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,21 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025E108
/* 18C9E8 8025E108 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 18C9EC 8025E10C AFBF0010 */ sw $ra, 0x10($sp)
/* 18C9F0 8025E110 0C0B5059 */ jal virtual_entity_get_by_index
/* 18C9F4 8025E114 8C8400A8 */ lw $a0, 0xa8($a0)
/* 18C9F8 8025E118 0C048B77 */ jal get_entity_model
/* 18C9FC 8025E11C 8C440000 */ lw $a0, ($v0)
/* 18CA00 8025E120 3C05FFFF */ lui $a1, 0xffff
/* 18CA04 8025E124 0040202D */ daddu $a0, $v0, $zero
/* 18CA08 8025E128 8C830000 */ lw $v1, ($a0)
/* 18CA0C 8025E12C 34A5000F */ ori $a1, $a1, 0xf
/* 18CA10 8025E130 00651824 */ and $v1, $v1, $a1
/* 18CA14 8025E134 34630008 */ ori $v1, $v1, 8
/* 18CA18 8025E138 AC830000 */ sw $v1, ($a0)
/* 18CA1C 8025E13C 8FBF0010 */ lw $ra, 0x10($sp)
/* 18CA20 8025E140 24020002 */ addiu $v0, $zero, 2
/* 18CA24 8025E144 03E00008 */ jr $ra
/* 18CA28 8025E148 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,21 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025E14C
/* 18CA2C 8025E14C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 18CA30 8025E150 24020078 */ addiu $v0, $zero, 0x78
/* 18CA34 8025E154 44801000 */ mtc1 $zero, $f2
/* 18CA38 8025E158 3C013F80 */ lui $at, 0x3f80
/* 18CA3C 8025E15C 44810000 */ mtc1 $at, $f0
/* 18CA40 8025E160 3C0642C8 */ lui $a2, 0x42c8
/* 18CA44 8025E164 44051000 */ mfc1 $a1, $f2
/* 18CA48 8025E168 24040003 */ addiu $a0, $zero, 3
/* 18CA4C 8025E16C AFBF0018 */ sw $ra, 0x18($sp)
/* 18CA50 8025E170 AFA20014 */ sw $v0, 0x14($sp)
/* 18CA54 8025E174 E7A00010 */ swc1 $f0, 0x10($sp)
/* 18CA58 8025E178 0C01C484 */ jal playFX_44
/* 18CA5C 8025E17C 00A0382D */ daddu $a3, $a1, $zero
/* 18CA60 8025E180 8FBF0018 */ lw $ra, 0x18($sp)
/* 18CA64 8025E184 24020002 */ addiu $v0, $zero, 2
/* 18CA68 8025E188 03E00008 */ jr $ra
/* 18CA6C 8025E18C 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,20 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel dispose_merlee_message
/* 210C4 80045CC4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 210C8 80045CC8 AFB00010 */ sw $s0, 0x10($sp)
/* 210CC 80045CCC 0080802D */ daddu $s0, $a0, $zero
/* 210D0 80045CD0 AFBF0014 */ sw $ra, 0x14($sp)
/* 210D4 80045CD4 8E040018 */ lw $a0, 0x18($s0)
/* 210D8 80045CD8 50800005 */ beql $a0, $zero, .L80045CF0
/* 210DC 80045CDC A6000010 */ sh $zero, 0x10($s0)
/* 210E0 80045CE0 0C00AB4B */ jal heap_free
/* 210E4 80045CE4 00000000 */ nop
/* 210E8 80045CE8 AE000018 */ sw $zero, 0x18($s0)
/* 210EC 80045CEC A6000010 */ sh $zero, 0x10($s0)
.L80045CF0:
/* 210F0 80045CF0 8FBF0014 */ lw $ra, 0x14($sp)
/* 210F4 80045CF4 8FB00010 */ lw $s0, 0x10($sp)
/* 210F8 80045CF8 03E00008 */ jr $ra
/* 210FC 80045CFC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_merlee_message
/* 212D0 80045ED0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 212D4 80045ED4 AFB20030 */ sw $s2, 0x30($sp)
/* 212D8 80045ED8 0080902D */ daddu $s2, $a0, $zero
/* 212DC 80045EDC AFBF0034 */ sw $ra, 0x34($sp)
/* 212E0 80045EE0 AFB1002C */ sw $s1, 0x2c($sp)
/* 212E4 80045EE4 AFB00028 */ sw $s0, 0x28($sp)
/* 212E8 80045EE8 82420017 */ lb $v0, 0x17($s2)
/* 212EC 80045EEC 10400027 */ beqz $v0, .L80045F8C
/* 212F0 80045EF0 00000000 */ nop
/* 212F4 80045EF4 86420012 */ lh $v0, 0x12($s2)
/* 212F8 80045EF8 A2400017 */ sb $zero, 0x17($s2)
/* 212FC 80045EFC 00021080 */ sll $v0, $v0, 2
/* 21300 80045F00 3C108008 */ lui $s0, %hi(D_80078168)
/* 21304 80045F04 02028021 */ addu $s0, $s0, $v0
/* 21308 80045F08 8E108168 */ lw $s0, %lo(D_80078168)($s0)
/* 2130C 80045F0C 0000282D */ daddu $a1, $zero, $zero
/* 21310 80045F10 0C04991D */ jal get_msg_width
/* 21314 80045F14 0200202D */ daddu $a0, $s0, $zero
/* 21318 80045F18 0200202D */ daddu $a0, $s0, $zero
/* 2131C 80045F1C 2451001E */ addiu $s1, $v0, 0x1e
/* 21320 80045F20 001117C2 */ srl $v0, $s1, 0x1f
/* 21324 80045F24 02221021 */ addu $v0, $s1, $v0
/* 21328 80045F28 00021043 */ sra $v0, $v0, 1
/* 2132C 80045F2C 241000A0 */ addiu $s0, $zero, 0xa0
/* 21330 80045F30 0C04992C */ jal get_msg_lines
/* 21334 80045F34 02028023 */ subu $s0, $s0, $v0
/* 21338 80045F38 24040009 */ addiu $a0, $zero, 9
/* 2133C 80045F3C 2442FFFF */ addiu $v0, $v0, -1
/* 21340 80045F40 00021040 */ sll $v0, $v0, 1
/* 21344 80045F44 0200282D */ daddu $a1, $s0, $zero
/* 21348 80045F48 3C038008 */ lui $v1, %hi(D_80078160)
/* 2134C 80045F4C 00621821 */ addu $v1, $v1, $v0
/* 21350 80045F50 84638160 */ lh $v1, %lo(D_80078160)($v1)
/* 21354 80045F54 3C028004 */ lui $v0, %hi(draw_merlee_message_string)
/* 21358 80045F58 24425E4C */ addiu $v0, $v0, %lo(draw_merlee_message_string)
/* 2135C 80045F5C AFA20018 */ sw $v0, 0x18($sp)
/* 21360 80045F60 2402FFFF */ addiu $v0, $zero, -1
/* 21364 80045F64 24060050 */ addiu $a2, $zero, 0x50
/* 21368 80045F68 0220382D */ daddu $a3, $s1, $zero
/* 2136C 80045F6C AFA00014 */ sw $zero, 0x14($sp)
/* 21370 80045F70 AFB2001C */ sw $s2, 0x1c($sp)
/* 21374 80045F74 AFA20020 */ sw $v0, 0x20($sp)
/* 21378 80045F78 0C051F32 */ jal set_window_properties
/* 2137C 80045F7C AFA30010 */ sw $v1, 0x10($sp)
/* 21380 80045F80 24040009 */ addiu $a0, $zero, 9
/* 21384 80045F84 0C051F9F */ jal set_window_update
/* 21388 80045F88 24050001 */ addiu $a1, $zero, 1
.L80045F8C:
/* 2138C 80045F8C 8FBF0034 */ lw $ra, 0x34($sp)
/* 21390 80045F90 8FB20030 */ lw $s2, 0x30($sp)
/* 21394 80045F94 8FB1002C */ lw $s1, 0x2c($sp)
/* 21398 80045F98 8FB00028 */ lw $s0, 0x28($sp)
/* 2139C 80045F9C 03E00008 */ jr $ra
/* 213A0 80045FA0 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,30 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_merlee_messages
/* 21028 80045C28 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 2102C 80045C2C AFB10014 */ sw $s1, 0x14($sp)
/* 21030 80045C30 0000882D */ daddu $s1, $zero, $zero
/* 21034 80045C34 AFB00010 */ sw $s0, 0x10($sp)
/* 21038 80045C38 3C10800A */ lui $s0, %hi(D_800A0BC0)
/* 2103C 80045C3C 26100BC0 */ addiu $s0, $s0, %lo(D_800A0BC0)
/* 21040 80045C40 AFBF0018 */ sw $ra, 0x18($sp)
.L80045C44:
/* 21044 80045C44 86020010 */ lh $v0, 0x10($s0)
/* 21048 80045C48 50400007 */ beql $v0, $zero, .L80045C68
/* 2104C 80045C4C 26310001 */ addiu $s1, $s1, 1
/* 21050 80045C50 8E02000C */ lw $v0, 0xc($s0)
/* 21054 80045C54 50400004 */ beql $v0, $zero, .L80045C68
/* 21058 80045C58 26310001 */ addiu $s1, $s1, 1
/* 2105C 80045C5C 0040F809 */ jalr $v0
/* 21060 80045C60 0200202D */ daddu $a0, $s0, $zero
/* 21064 80045C64 26310001 */ addiu $s1, $s1, 1
.L80045C68:
/* 21068 80045C68 2A220020 */ slti $v0, $s1, 0x20
/* 2106C 80045C6C 1440FFF5 */ bnez $v0, .L80045C44
/* 21070 80045C70 2610001C */ addiu $s0, $s0, 0x1c
/* 21074 80045C74 8FBF0018 */ lw $ra, 0x18($sp)
/* 21078 80045C78 8FB10014 */ lw $s1, 0x14($sp)
/* 2107C 80045C7C 8FB00010 */ lw $s0, 0x10($sp)
/* 21080 80045C80 03E00008 */ jr $ra
/* 21084 80045C84 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,25 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80045AC0
/* 20EC0 80045AC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 20EC4 80045AC4 AFBF0010 */ sw $ra, 0x10($sp)
/* 20EC8 80045AC8 0000202D */ daddu $a0, $zero, $zero
/* 20ECC 80045ACC 3C03800A */ lui $v1, %hi(D_800A0BC0)
/* 20ED0 80045AD0 24630BC0 */ addiu $v1, $v1, %lo(D_800A0BC0)
.L80045AD4:
/* 20ED4 80045AD4 A4600010 */ sh $zero, 0x10($v1)
/* 20ED8 80045AD8 AC600018 */ sw $zero, 0x18($v1)
/* 20EDC 80045ADC 24840001 */ addiu $a0, $a0, 1
/* 20EE0 80045AE0 28820020 */ slti $v0, $a0, 0x20
/* 20EE4 80045AE4 1440FFFB */ bnez $v0, .L80045AD4
/* 20EE8 80045AE8 2463001C */ addiu $v1, $v1, 0x1c
/* 20EEC 80045AEC 3C058004 */ lui $a1, %hi(func_80045BC8)
/* 20EF0 80045AF0 24A55BC8 */ addiu $a1, $a1, %lo(func_80045BC8)
/* 20EF4 80045AF4 0C048C56 */ jal create_generic_entity_world
/* 20EF8 80045AF8 0000202D */ daddu $a0, $zero, $zero
/* 20EFC 80045AFC 0C0117ED */ jal func_80045FB4
/* 20F00 80045B00 00000000 */ nop
/* 20F04 80045B04 8FBF0010 */ lw $ra, 0x10($sp)
/* 20F08 80045B08 03E00008 */ jr $ra
/* 20F0C 80045B0C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,28 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80045B10
/* 20F10 80045B10 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 20F14 80045B14 AFB10014 */ sw $s1, 0x14($sp)
/* 20F18 80045B18 0000882D */ daddu $s1, $zero, $zero
/* 20F1C 80045B1C AFB00010 */ sw $s0, 0x10($sp)
/* 20F20 80045B20 3C10800A */ lui $s0, %hi(D_800A0BC0)
/* 20F24 80045B24 26100BC0 */ addiu $s0, $s0, %lo(D_800A0BC0)
/* 20F28 80045B28 AFBF0018 */ sw $ra, 0x18($sp)
.L80045B2C:
/* 20F2C 80045B2C 8E040018 */ lw $a0, 0x18($s0)
/* 20F30 80045B30 50800004 */ beql $a0, $zero, .L80045B44
/* 20F34 80045B34 A6000010 */ sh $zero, 0x10($s0)
/* 20F38 80045B38 0C00AB4B */ jal heap_free
/* 20F3C 80045B3C 00000000 */ nop
/* 20F40 80045B40 A6000010 */ sh $zero, 0x10($s0)
.L80045B44:
/* 20F44 80045B44 26310001 */ addiu $s1, $s1, 1
/* 20F48 80045B48 2A220020 */ slti $v0, $s1, 0x20
/* 20F4C 80045B4C 1440FFF7 */ bnez $v0, .L80045B2C
/* 20F50 80045B50 2610001C */ addiu $s0, $s0, 0x1c
/* 20F54 80045B54 8FBF0018 */ lw $ra, 0x18($sp)
/* 20F58 80045B58 8FB10014 */ lw $s1, 0x14($sp)
/* 20F5C 80045B5C 8FB00010 */ lw $s0, 0x10($sp)
/* 20F60 80045B60 03E00008 */ jr $ra
/* 20F64 80045B64 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,30 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80045BC8
/* 20FC8 80045BC8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 20FCC 80045BCC AFB10014 */ sw $s1, 0x14($sp)
/* 20FD0 80045BD0 0000882D */ daddu $s1, $zero, $zero
/* 20FD4 80045BD4 AFB00010 */ sw $s0, 0x10($sp)
/* 20FD8 80045BD8 3C10800A */ lui $s0, %hi(D_800A0BC0)
/* 20FDC 80045BDC 26100BC0 */ addiu $s0, $s0, %lo(D_800A0BC0)
/* 20FE0 80045BE0 AFBF0018 */ sw $ra, 0x18($sp)
.L80045BE4:
/* 20FE4 80045BE4 86020010 */ lh $v0, 0x10($s0)
/* 20FE8 80045BE8 50400007 */ beql $v0, $zero, .L80045C08
/* 20FEC 80045BEC 26310001 */ addiu $s1, $s1, 1
/* 20FF0 80045BF0 8E020008 */ lw $v0, 8($s0)
/* 20FF4 80045BF4 50400004 */ beql $v0, $zero, .L80045C08
/* 20FF8 80045BF8 26310001 */ addiu $s1, $s1, 1
/* 20FFC 80045BFC 0040F809 */ jalr $v0
/* 21000 80045C00 0200202D */ daddu $a0, $s0, $zero
/* 21004 80045C04 26310001 */ addiu $s1, $s1, 1
.L80045C08:
/* 21008 80045C08 2A220020 */ slti $v0, $s1, 0x20
/* 2100C 80045C0C 1440FFF5 */ bnez $v0, .L80045BE4
/* 21010 80045C10 2610001C */ addiu $s0, $s0, 0x1c
/* 21014 80045C14 8FBF0018 */ lw $ra, 0x18($sp)
/* 21018 80045C18 8FB10014 */ lw $s1, 0x14($sp)
/* 2101C 80045C1C 8FB00010 */ lw $s0, 0x10($sp)
/* 21020 80045C20 03E00008 */ jr $ra
/* 21024 80045C24 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,21 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel get_current_merlee_message
/* 21088 80045C88 0000202D */ daddu $a0, $zero, $zero
/* 2108C 80045C8C 24050001 */ addiu $a1, $zero, 1
/* 21090 80045C90 3C03800A */ lui $v1, %hi(D_800A0BC0)
/* 21094 80045C94 24630BC0 */ addiu $v1, $v1, %lo(D_800A0BC0)
.L80045C98:
/* 21098 80045C98 84620010 */ lh $v0, 0x10($v1)
/* 2109C 80045C9C 14400004 */ bnez $v0, .L80045CB0
/* 210A0 80045CA0 24840001 */ addiu $a0, $a0, 1
/* 210A4 80045CA4 A4650010 */ sh $a1, 0x10($v1)
/* 210A8 80045CA8 03E00008 */ jr $ra
/* 210AC 80045CAC 0060102D */ daddu $v0, $v1, $zero
.L80045CB0:
/* 210B0 80045CB0 28820020 */ slti $v0, $a0, 0x20
/* 210B4 80045CB4 1440FFF8 */ bnez $v0, .L80045C98
/* 210B8 80045CB8 2463001C */ addiu $v1, $v1, 0x1c
/* 210BC 80045CBC 03E00008 */ jr $ra
/* 210C0 80045CC0 0000102D */ daddu $v0, $zero, $zero

View File

@ -1,36 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel show_merlee_message
/* 21100 80045D00 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 21104 80045D04 AFB00010 */ sw $s0, 0x10($sp)
/* 21108 80045D08 0080802D */ daddu $s0, $a0, $zero
/* 2110C 80045D0C AFB10014 */ sw $s1, 0x14($sp)
/* 21110 80045D10 AFBF0018 */ sw $ra, 0x18($sp)
/* 21114 80045D14 0C011722 */ jal get_current_merlee_message
/* 21118 80045D18 00A0882D */ daddu $s1, $a1, $zero
/* 2111C 80045D1C 0040182D */ daddu $v1, $v0, $zero
/* 21120 80045D20 10600011 */ beqz $v1, .L80045D68
/* 21124 80045D24 00000000 */ nop
/* 21128 80045D28 3C028004 */ lui $v0, %hi(update_merlee_message)
/* 2112C 80045D2C 24425D7C */ addiu $v0, $v0, %lo(update_merlee_message)
/* 21130 80045D30 AC620004 */ sw $v0, 4($v1)
/* 21134 80045D34 3C028004 */ lui $v0, %hi(draw_merlee_message)
/* 21138 80045D38 24425ED0 */ addiu $v0, $v0, %lo(draw_merlee_message)
/* 2113C 80045D3C AC62000C */ sw $v0, 0xc($v1)
/* 21140 80045D40 24020001 */ addiu $v0, $zero, 1
/* 21144 80045D44 A0620017 */ sb $v0, 0x17($v1)
/* 21148 80045D48 24020001 */ addiu $v0, $zero, 1
/* 2114C 80045D4C AC600000 */ sw $zero, ($v1)
/* 21150 80045D50 AC600008 */ sw $zero, 8($v1)
/* 21154 80045D54 A4700012 */ sh $s0, 0x12($v1)
/* 21158 80045D58 A4710014 */ sh $s1, 0x14($v1)
/* 2115C 80045D5C A0600016 */ sb $zero, 0x16($v1)
/* 21160 80045D60 3C01800A */ lui $at, %hi(D_800A0F40)
/* 21164 80045D64 AC220F40 */ sw $v0, %lo(D_800A0F40)($at)
.L80045D68:
/* 21168 80045D68 8FBF0018 */ lw $ra, 0x18($sp)
/* 2116C 80045D6C 8FB10014 */ lw $s1, 0x14($sp)
/* 21170 80045D70 8FB00010 */ lw $s0, 0x10($sp)
/* 21174 80045D74 03E00008 */ jr $ra
/* 21178 80045D78 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,30 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_merlee_messages
/* 20F68 80045B68 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 20F6C 80045B6C AFB10014 */ sw $s1, 0x14($sp)
/* 20F70 80045B70 0000882D */ daddu $s1, $zero, $zero
/* 20F74 80045B74 AFB00010 */ sw $s0, 0x10($sp)
/* 20F78 80045B78 3C10800A */ lui $s0, %hi(D_800A0BC0)
/* 20F7C 80045B7C 26100BC0 */ addiu $s0, $s0, %lo(D_800A0BC0)
/* 20F80 80045B80 AFBF0018 */ sw $ra, 0x18($sp)
.L80045B84:
/* 20F84 80045B84 86020010 */ lh $v0, 0x10($s0)
/* 20F88 80045B88 50400007 */ beql $v0, $zero, .L80045BA8
/* 20F8C 80045B8C 26310001 */ addiu $s1, $s1, 1
/* 20F90 80045B90 8E020004 */ lw $v0, 4($s0)
/* 20F94 80045B94 50400004 */ beql $v0, $zero, .L80045BA8
/* 20F98 80045B98 26310001 */ addiu $s1, $s1, 1
/* 20F9C 80045B9C 0040F809 */ jalr $v0
/* 20FA0 80045BA0 0200202D */ daddu $a0, $s0, $zero
/* 20FA4 80045BA4 26310001 */ addiu $s1, $s1, 1
.L80045BA8:
/* 20FA8 80045BA8 2A220020 */ slti $v0, $s1, 0x20
/* 20FAC 80045BAC 1440FFF5 */ bnez $v0, .L80045B84
/* 20FB0 80045BB0 2610001C */ addiu $s0, $s0, 0x1c
/* 20FB4 80045BB4 8FBF0018 */ lw $ra, 0x18($sp)
/* 20FB8 80045BB8 8FB10014 */ lw $s1, 0x14($sp)
/* 20FBC 80045BBC 8FB00010 */ lw $s0, 0x10($sp)
/* 20FC0 80045BC0 03E00008 */ jr $ra
/* 20FC4 80045BC4 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,61 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel player_raycast_below_cam_relative
/* 7791C 800DE46C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 77920 800DE470 AFBF0028 */ sw $ra, 0x28($sp)
/* 77924 800DE474 C48200A8 */ lwc1 $f2, 0xa8($a0)
/* 77928 800DE478 3C0142B4 */ lui $at, 0x42b4
/* 7792C 800DE47C 44810000 */ mtc1 $at, $f0
/* 77930 800DE480 44802000 */ mtc1 $zero, $f4
/* 77934 800DE484 4602003E */ c.le.s $f0, $f2
/* 77938 800DE488 00000000 */ nop
/* 7793C 800DE48C 4500000A */ bc1f .L800DE4B8
/* 77940 800DE490 00C0402D */ daddu $t0, $a2, $zero
/* 77944 800DE494 3C014387 */ lui $at, 0x4387
/* 77948 800DE498 44810000 */ mtc1 $at, $f0
/* 7794C 800DE49C 00000000 */ nop
/* 77950 800DE4A0 4600103C */ c.lt.s $f2, $f0
/* 77954 800DE4A4 00000000 */ nop
/* 77958 800DE4A8 45000003 */ bc1f .L800DE4B8
/* 7795C 800DE4AC 00000000 */ nop
/* 77960 800DE4B0 3C014334 */ lui $at, 0x4334
/* 77964 800DE4B4 44812000 */ mtc1 $at, $f4
.L800DE4B8:
/* 77968 800DE4B8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 7796C 800DE4BC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 77970 800DE4C0 3C0142B4 */ lui $at, 0x42b4
/* 77974 800DE4C4 44816000 */ mtc1 $at, $f12
/* 77978 800DE4C8 00031080 */ sll $v0, $v1, 2
/* 7797C 800DE4CC 00431021 */ addu $v0, $v0, $v1
/* 77980 800DE4D0 00021080 */ sll $v0, $v0, 2
/* 77984 800DE4D4 00431023 */ subu $v0, $v0, $v1
/* 77988 800DE4D8 000218C0 */ sll $v1, $v0, 3
/* 7798C 800DE4DC 00431021 */ addu $v0, $v0, $v1
/* 77990 800DE4E0 000210C0 */ sll $v0, $v0, 3
/* 77994 800DE4E4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 77998 800DE4E8 00220821 */ addu $at, $at, $v0
/* 7799C 800DE4EC C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 779A0 800DE4F0 848300B2 */ lh $v1, 0xb2($a0)
/* 779A4 800DE4F4 8FA20040 */ lw $v0, 0x40($sp)
/* 779A8 800DE4F8 00A0302D */ daddu $a2, $a1, $zero
/* 779AC 800DE4FC AFA70010 */ sw $a3, 0x10($sp)
/* 779B0 800DE500 AFA20014 */ sw $v0, 0x14($sp)
/* 779B4 800DE504 8FA20044 */ lw $v0, 0x44($sp)
/* 779B8 800DE508 0100382D */ daddu $a3, $t0, $zero
/* 779BC 800DE50C AFA20018 */ sw $v0, 0x18($sp)
/* 779C0 800DE510 8FA20048 */ lw $v0, 0x48($sp)
/* 779C4 800DE514 460C2301 */ sub.s $f12, $f4, $f12
/* 779C8 800DE518 AFA2001C */ sw $v0, 0x1c($sp)
/* 779CC 800DE51C 8FA2004C */ lw $v0, 0x4c($sp)
/* 779D0 800DE520 46006300 */ add.s $f12, $f12, $f0
/* 779D4 800DE524 AFA20020 */ sw $v0, 0x20($sp)
/* 779D8 800DE528 8FA20050 */ lw $v0, 0x50($sp)
/* 779DC 800DE52C 44837000 */ mtc1 $v1, $f14
/* 779E0 800DE530 00000000 */ nop
/* 779E4 800DE534 468073A0 */ cvt.s.w $f14, $f14
/* 779E8 800DE538 0C0377F4 */ jal player_raycast_below
/* 779EC 800DE53C AFA20024 */ sw $v0, 0x24($sp)
/* 779F0 800DE540 8FBF0028 */ lw $ra, 0x28($sp)
/* 779F4 800DE544 03E00008 */ jr $ra
/* 779F8 800DE548 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,9 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800F0C9C
/* 8A14C 800F0C9C 03E00008 */ jr $ra
/* 8A150 800F0CA0 00000000 */ nop
/* 8A154 800F0CA4 00000000 */ nop
/* 8A158 800F0CA8 00000000 */ nop
/* 8A15C 800F0CAC 00000000 */ nop

View File

@ -1,113 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel destroy_popup_menu
/* 8A9E8 800F1538 3C048011 */ lui $a0, %hi(D_8010D65C)
/* 8A9EC 800F153C 8C84D65C */ lw $a0, %lo(D_8010D65C)($a0)
/* 8A9F0 800F1540 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 8A9F4 800F1544 AFBF0018 */ sw $ra, 0x18($sp)
/* 8A9F8 800F1548 AFB10014 */ sw $s1, 0x14($sp)
/* 8A9FC 800F154C 0C05123D */ jal free_hud_element
/* 8AA00 800F1550 AFB00010 */ sw $s0, 0x10($sp)
/* 8AA04 800F1554 3C048011 */ lui $a0, %hi(D_8010D678)
/* 8AA08 800F1558 8C84D678 */ lw $a0, %lo(D_8010D678)($a0)
/* 8AA0C 800F155C 0C05123D */ jal free_hud_element
/* 8AA10 800F1560 00000000 */ nop
/* 8AA14 800F1564 3C048011 */ lui $a0, %hi(D_8010D66C)
/* 8AA18 800F1568 8C84D66C */ lw $a0, %lo(D_8010D66C)($a0)
/* 8AA1C 800F156C 0C05123D */ jal free_hud_element
/* 8AA20 800F1570 00000000 */ nop
/* 8AA24 800F1574 3C048011 */ lui $a0, %hi(D_8010D670)
/* 8AA28 800F1578 8C84D670 */ lw $a0, %lo(D_8010D670)($a0)
/* 8AA2C 800F157C 0C05123D */ jal free_hud_element
/* 8AA30 800F1580 00000000 */ nop
/* 8AA34 800F1584 3C048011 */ lui $a0, %hi(D_8010D674)
/* 8AA38 800F1588 8C84D674 */ lw $a0, %lo(D_8010D674)($a0)
/* 8AA3C 800F158C 0C05123D */ jal free_hud_element
/* 8AA40 800F1590 00000000 */ nop
/* 8AA44 800F1594 3C108011 */ lui $s0, %hi(D_8010D69C)
/* 8AA48 800F1598 2610D69C */ addiu $s0, $s0, %lo(D_8010D69C)
/* 8AA4C 800F159C 8E020000 */ lw $v0, ($s0)
/* 8AA50 800F15A0 8C430318 */ lw $v1, 0x318($v0)
/* 8AA54 800F15A4 24020003 */ addiu $v0, $zero, 3
/* 8AA58 800F15A8 14620009 */ bne $v1, $v0, .L800F15D0
/* 8AA5C 800F15AC 00000000 */ nop
/* 8AA60 800F15B0 3C048011 */ lui $a0, %hi(D_8010D660)
/* 8AA64 800F15B4 8C84D660 */ lw $a0, %lo(D_8010D660)($a0)
/* 8AA68 800F15B8 0C05123D */ jal free_hud_element
/* 8AA6C 800F15BC 00000000 */ nop
/* 8AA70 800F15C0 3C048011 */ lui $a0, %hi(D_8010D664)
/* 8AA74 800F15C4 8C84D664 */ lw $a0, %lo(D_8010D664)($a0)
/* 8AA78 800F15C8 0C05123D */ jal free_hud_element
/* 8AA7C 800F15CC 00000000 */ nop
.L800F15D0:
/* 8AA80 800F15D0 8E020000 */ lw $v0, ($s0)
/* 8AA84 800F15D4 8C420318 */ lw $v0, 0x318($v0)
/* 8AA88 800F15D8 24110004 */ addiu $s1, $zero, 4
/* 8AA8C 800F15DC 14510009 */ bne $v0, $s1, .L800F1604
/* 8AA90 800F15E0 00000000 */ nop
/* 8AA94 800F15E4 3C048011 */ lui $a0, %hi(D_8010D660)
/* 8AA98 800F15E8 8C84D660 */ lw $a0, %lo(D_8010D660)($a0)
/* 8AA9C 800F15EC 0C05123D */ jal free_hud_element
/* 8AAA0 800F15F0 00000000 */ nop
/* 8AAA4 800F15F4 3C048011 */ lui $a0, %hi(D_8010D664)
/* 8AAA8 800F15F8 8C84D664 */ lw $a0, %lo(D_8010D664)($a0)
/* 8AAAC 800F15FC 0C05123D */ jal free_hud_element
/* 8AAB0 800F1600 00000000 */ nop
.L800F1604:
/* 8AAB4 800F1604 8E020000 */ lw $v0, ($s0)
/* 8AAB8 800F1608 8C430318 */ lw $v1, 0x318($v0)
/* 8AABC 800F160C 24020001 */ addiu $v0, $zero, 1
/* 8AAC0 800F1610 10620003 */ beq $v1, $v0, .L800F1620
/* 8AAC4 800F1614 00000000 */ nop
/* 8AAC8 800F1618 14710005 */ bne $v1, $s1, .L800F1630
/* 8AACC 800F161C 00000000 */ nop
.L800F1620:
/* 8AAD0 800F1620 3C048011 */ lui $a0, %hi(D_8010D668)
/* 8AAD4 800F1624 8C84D668 */ lw $a0, %lo(D_8010D668)($a0)
/* 8AAD8 800F1628 0C05123D */ jal free_hud_element
/* 8AADC 800F162C 00000000 */ nop
.L800F1630:
/* 8AAE0 800F1630 3C108011 */ lui $s0, %hi(D_8010D69C)
/* 8AAE4 800F1634 2610D69C */ addiu $s0, $s0, %lo(D_8010D69C)
/* 8AAE8 800F1638 8E020000 */ lw $v0, ($s0)
/* 8AAEC 800F163C 8C430318 */ lw $v1, 0x318($v0)
/* 8AAF0 800F1640 24020005 */ addiu $v0, $zero, 5
/* 8AAF4 800F1644 14620005 */ bne $v1, $v0, .L800F165C
/* 8AAF8 800F1648 00000000 */ nop
/* 8AAFC 800F164C 3C048011 */ lui $a0, %hi(D_8010D660)
/* 8AB00 800F1650 8C84D660 */ lw $a0, %lo(D_8010D660)($a0)
/* 8AB04 800F1654 0C05123D */ jal free_hud_element
/* 8AB08 800F1658 00000000 */ nop
.L800F165C:
/* 8AB0C 800F165C 8E020000 */ lw $v0, ($s0)
/* 8AB10 800F1660 8C430318 */ lw $v1, 0x318($v0)
/* 8AB14 800F1664 28620005 */ slti $v0, $v1, 5
/* 8AB18 800F1668 14400003 */ bnez $v0, .L800F1678
/* 8AB1C 800F166C 2402000C */ addiu $v0, $zero, 0xc
/* 8AB20 800F1670 1462000E */ bne $v1, $v0, .L800F16AC
/* 8AB24 800F1674 00000000 */ nop
.L800F1678:
/* 8AB28 800F1678 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 8AB2C 800F167C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 8AB30 800F1680 80420070 */ lb $v0, 0x70($v0)
/* 8AB34 800F1684 14400009 */ bnez $v0, .L800F16AC
/* 8AB38 800F1688 00000000 */ nop
/* 8AB3C 800F168C 3C028011 */ lui $v0, %hi(D_8010D69A)
/* 8AB40 800F1690 8042D69A */ lb $v0, %lo(D_8010D69A)($v0)
/* 8AB44 800F1694 14400003 */ bnez $v0, .L800F16A4
/* 8AB48 800F1698 00000000 */ nop
/* 8AB4C 800F169C 0C03A631 */ jal func_800E98C4
/* 8AB50 800F16A0 00000000 */ nop
.L800F16A4:
/* 8AB54 800F16A4 0C03A5EE */ jal close_status_menu
/* 8AB58 800F16A8 00000000 */ nop
.L800F16AC:
/* 8AB5C 800F16AC 8FBF0018 */ lw $ra, 0x18($sp)
/* 8AB60 800F16B0 8FB10014 */ lw $s1, 0x14($sp)
/* 8AB64 800F16B4 8FB00010 */ lw $s0, 0x10($sp)
/* 8AB68 800F16B8 2402FFFC */ addiu $v0, $zero, -4
/* 8AB6C 800F16BC 3C018011 */ lui $at, %hi(D_8010D640)
/* 8AB70 800F16C0 AC22D640 */ sw $v0, %lo(D_8010D640)($at)
/* 8AB74 800F16C4 03E00008 */ jr $ra
/* 8AB78 800F16C8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,25 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800F4C1C
/* 8E0CC 800F4C1C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 8E0D0 800F4C20 3C04001D */ lui $a0, 0x1d
/* 8E0D4 800F4C24 34840069 */ ori $a0, $a0, 0x69
/* 8E0D8 800F4C28 24A5000B */ addiu $a1, $a1, 0xb
/* 8E0DC 800F4C2C 24C60008 */ addiu $a2, $a2, 8
/* 8E0E0 800F4C30 3C038011 */ lui $v1, %hi(D_8010D699)
/* 8E0E4 800F4C34 8063D699 */ lb $v1, %lo(D_8010D699)($v1)
/* 8E0E8 800F4C38 24020001 */ addiu $v0, $zero, 1
/* 8E0EC 800F4C3C 14620003 */ bne $v1, $v0, .L800F4C4C
/* 8E0F0 800F4C40 AFBF0018 */ sw $ra, 0x18($sp)
/* 8E0F4 800F4C44 3C04001D */ lui $a0, 0x1d
/* 8E0F8 800F4C48 34840068 */ ori $a0, $a0, 0x68
.L800F4C4C:
/* 8E0FC 800F4C4C 2402000F */ addiu $v0, $zero, 0xf
/* 8E100 800F4C50 240700FF */ addiu $a3, $zero, 0xff
/* 8E104 800F4C54 AFA20010 */ sw $v0, 0x10($sp)
/* 8E108 800F4C58 0C04993B */ jal draw_msg
/* 8E10C 800F4C5C AFA00014 */ sw $zero, 0x14($sp)
/* 8E110 800F4C60 8FBF0018 */ lw $ra, 0x18($sp)
/* 8E114 800F4C64 03E00008 */ jr $ra
/* 8E118 800F4C68 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,41 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800F4C6C
/* 8E11C 800F4C6C 3C028011 */ lui $v0, %hi(D_8010D69C)
/* 8E120 800F4C70 8C42D69C */ lw $v0, %lo(D_8010D69C)($v0)
/* 8E124 800F4C74 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 8E128 800F4C78 AFBF0014 */ sw $ra, 0x14($sp)
/* 8E12C 800F4C7C AFB00010 */ sw $s0, 0x10($sp)
/* 8E130 800F4C80 8C430318 */ lw $v1, 0x318($v0)
/* 8E134 800F4C84 24020003 */ addiu $v0, $zero, 3
/* 8E138 800F4C88 10620005 */ beq $v1, $v0, .L800F4CA0
/* 8E13C 800F4C8C 24020005 */ addiu $v0, $zero, 5
/* 8E140 800F4C90 10620008 */ beq $v1, $v0, .L800F4CB4
/* 8E144 800F4C94 24A50011 */ addiu $a1, $a1, 0x11
/* 8E148 800F4C98 0803D338 */ j .L800F4CE0
/* 8E14C 800F4C9C 00000000 */ nop
.L800F4CA0:
/* 8E150 800F4CA0 24A50010 */ addiu $a1, $a1, 0x10
/* 8E154 800F4CA4 3C108011 */ lui $s0, %hi(D_8010D660)
/* 8E158 800F4CA8 8E10D660 */ lw $s0, %lo(D_8010D660)($s0)
/* 8E15C 800F4CAC 0803D330 */ j .L800F4CC0
/* 8E160 800F4CB0 24C60010 */ addiu $a2, $a2, 0x10
.L800F4CB4:
/* 8E164 800F4CB4 3C108011 */ lui $s0, %hi(D_8010D660)
/* 8E168 800F4CB8 8E10D660 */ lw $s0, %lo(D_8010D660)($s0)
/* 8E16C 800F4CBC 24C60011 */ addiu $a2, $a2, 0x11
.L800F4CC0:
/* 8E170 800F4CC0 0C051261 */ jal set_hud_element_render_pos
/* 8E174 800F4CC4 0200202D */ daddu $a0, $s0, $zero
/* 8E178 800F4CC8 3C058011 */ lui $a1, %hi(D_8010D650)
/* 8E17C 800F4CCC 8CA5D650 */ lw $a1, %lo(D_8010D650)($a1)
/* 8E180 800F4CD0 0C0513AC */ jal set_hud_element_alpha
/* 8E184 800F4CD4 0200202D */ daddu $a0, $s0, $zero
/* 8E188 800F4CD8 0C0511EA */ jal draw_hud_element_clipped
/* 8E18C 800F4CDC 0200202D */ daddu $a0, $s0, $zero
.L800F4CE0:
/* 8E190 800F4CE0 8FBF0014 */ lw $ra, 0x14($sp)
/* 8E194 800F4CE4 8FB00010 */ lw $s0, 0x10($sp)
/* 8E198 800F4CE8 03E00008 */ jr $ra
/* 8E19C 800F4CEC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,18 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800F4CF0
/* 8E1A0 800F4CF0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 8E1A4 800F4CF4 3C04001D */ lui $a0, 0x1d
/* 8E1A8 800F4CF8 3484006B */ ori $a0, $a0, 0x6b
/* 8E1AC 800F4CFC 2402000F */ addiu $v0, $zero, 0xf
/* 8E1B0 800F4D00 24A50010 */ addiu $a1, $a1, 0x10
/* 8E1B4 800F4D04 24C60002 */ addiu $a2, $a2, 2
/* 8E1B8 800F4D08 240700FF */ addiu $a3, $zero, 0xff
/* 8E1BC 800F4D0C AFBF0018 */ sw $ra, 0x18($sp)
/* 8E1C0 800F4D10 AFA20010 */ sw $v0, 0x10($sp)
/* 8E1C4 800F4D14 0C04993B */ jal draw_msg
/* 8E1C8 800F4D18 AFA00014 */ sw $zero, 0x14($sp)
/* 8E1CC 800F4D1C 8FBF0018 */ lw $ra, 0x18($sp)
/* 8E1D0 800F4D20 03E00008 */ jr $ra
/* 8E1D4 800F4D24 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,77 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800F4D28
/* 8E1D8 800F4D28 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 8E1DC 800F4D2C AFB40030 */ sw $s4, 0x30($sp)
/* 8E1E0 800F4D30 00A0A02D */ daddu $s4, $a1, $zero
/* 8E1E4 800F4D34 AFB00020 */ sw $s0, 0x20($sp)
/* 8E1E8 800F4D38 3C108011 */ lui $s0, %hi(D_8010D660)
/* 8E1EC 800F4D3C 8E10D660 */ lw $s0, %lo(D_8010D660)($s0)
/* 8E1F0 800F4D40 3C058011 */ lui $a1, %hi(D_8010D650)
/* 8E1F4 800F4D44 8CA5D650 */ lw $a1, %lo(D_8010D650)($a1)
/* 8E1F8 800F4D48 AFB3002C */ sw $s3, 0x2c($sp)
/* 8E1FC 800F4D4C 00C0982D */ daddu $s3, $a2, $zero
/* 8E200 800F4D50 AFB10024 */ sw $s1, 0x24($sp)
/* 8E204 800F4D54 2691000E */ addiu $s1, $s4, 0xe
/* 8E208 800F4D58 AFB20028 */ sw $s2, 0x28($sp)
/* 8E20C 800F4D5C 26720009 */ addiu $s2, $s3, 9
/* 8E210 800F4D60 AFBF0034 */ sw $ra, 0x34($sp)
/* 8E214 800F4D64 0C0513AC */ jal set_hud_element_alpha
/* 8E218 800F4D68 0200202D */ daddu $a0, $s0, $zero
/* 8E21C 800F4D6C 3C028011 */ lui $v0, %hi(D_8010D69C)
/* 8E220 800F4D70 8C42D69C */ lw $v0, %lo(D_8010D69C)($v0)
/* 8E224 800F4D74 8C430318 */ lw $v1, 0x318($v0)
/* 8E228 800F4D78 24020003 */ addiu $v0, $zero, 3
/* 8E22C 800F4D7C 14620004 */ bne $v1, $v0, .L800F4D90
/* 8E230 800F4D80 0200202D */ daddu $a0, $s0, $zero
/* 8E234 800F4D84 0220282D */ daddu $a1, $s1, $zero
/* 8E238 800F4D88 0803D366 */ j .L800F4D98
/* 8E23C 800F4D8C 0240302D */ daddu $a2, $s2, $zero
.L800F4D90:
/* 8E240 800F4D90 0220282D */ daddu $a1, $s1, $zero
/* 8E244 800F4D94 2666000A */ addiu $a2, $s3, 0xa
.L800F4D98:
/* 8E248 800F4D98 0C051261 */ jal set_hud_element_render_pos
/* 8E24C 800F4D9C 00000000 */ nop
/* 8E250 800F4DA0 0C0511EA */ jal draw_hud_element_clipped
/* 8E254 800F4DA4 0200202D */ daddu $a0, $s0, $zero
/* 8E258 800F4DA8 2685001A */ addiu $a1, $s4, 0x1a
/* 8E25C 800F4DAC 3C108011 */ lui $s0, %hi(D_8010D664)
/* 8E260 800F4DB0 8E10D664 */ lw $s0, %lo(D_8010D664)($s0)
/* 8E264 800F4DB4 2666000B */ addiu $a2, $s3, 0xb
/* 8E268 800F4DB8 0C051261 */ jal set_hud_element_render_pos
/* 8E26C 800F4DBC 0200202D */ daddu $a0, $s0, $zero
/* 8E270 800F4DC0 3C118011 */ lui $s1, %hi(D_8010D650)
/* 8E274 800F4DC4 2631D650 */ addiu $s1, $s1, %lo(D_8010D650)
/* 8E278 800F4DC8 8E250000 */ lw $a1, ($s1)
/* 8E27C 800F4DCC 0C0513AC */ jal set_hud_element_alpha
/* 8E280 800F4DD0 0200202D */ daddu $a0, $s0, $zero
/* 8E284 800F4DD4 0C0511EA */ jal draw_hud_element_clipped
/* 8E288 800F4DD8 0200202D */ daddu $a0, $s0, $zero
/* 8E28C 800F4DDC 3C028011 */ lui $v0, %hi(D_8010D69C)
/* 8E290 800F4DE0 8C42D69C */ lw $v0, %lo(D_8010D69C)($v0)
/* 8E294 800F4DE4 8C430318 */ lw $v1, 0x318($v0)
/* 8E298 800F4DE8 24020003 */ addiu $v0, $zero, 3
/* 8E29C 800F4DEC 1462000C */ bne $v1, $v0, .L800F4E20
/* 8E2A0 800F4DF0 2685003A */ addiu $a1, $s4, 0x3a
/* 8E2A4 800F4DF4 26660004 */ addiu $a2, $s3, 4
/* 8E2A8 800F4DF8 2402000A */ addiu $v0, $zero, 0xa
/* 8E2AC 800F4DFC AFA20010 */ sw $v0, 0x10($sp)
/* 8E2B0 800F4E00 3C028011 */ lui $v0, %hi(gPlayerData)
/* 8E2B4 800F4E04 2442F290 */ addiu $v0, $v0, %lo(gPlayerData)
/* 8E2B8 800F4E08 AFA30018 */ sw $v1, 0x18($sp)
/* 8E2BC 800F4E0C 9044000F */ lbu $a0, 0xf($v0)
/* 8E2C0 800F4E10 8E220000 */ lw $v0, ($s1)
/* 8E2C4 800F4E14 24070001 */ addiu $a3, $zero, 1
/* 8E2C8 800F4E18 0C049DA7 */ jal draw_number
/* 8E2CC 800F4E1C AFA20014 */ sw $v0, 0x14($sp)
.L800F4E20:
/* 8E2D0 800F4E20 8FBF0034 */ lw $ra, 0x34($sp)
/* 8E2D4 800F4E24 8FB40030 */ lw $s4, 0x30($sp)
/* 8E2D8 800F4E28 8FB3002C */ lw $s3, 0x2c($sp)
/* 8E2DC 800F4E2C 8FB20028 */ lw $s2, 0x28($sp)
/* 8E2E0 800F4E30 8FB10024 */ lw $s1, 0x24($sp)
/* 8E2E4 800F4E34 8FB00020 */ lw $s0, 0x20($sp)
/* 8E2E8 800F4E38 03E00008 */ jr $ra
/* 8E2EC 800F4E3C 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,18 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_801369D0
/* CD0D0 801369D0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* CD0D4 801369D4 3C04001D */ lui $a0, 0x1d
/* CD0D8 801369D8 34840060 */ ori $a0, $a0, 0x60
/* CD0DC 801369DC 24020034 */ addiu $v0, $zero, 0x34
/* CD0E0 801369E0 24A5000C */ addiu $a1, $a1, 0xc
/* CD0E4 801369E4 24C60004 */ addiu $a2, $a2, 4
/* CD0E8 801369E8 240700FF */ addiu $a3, $zero, 0xff
/* CD0EC 801369EC AFBF0018 */ sw $ra, 0x18($sp)
/* CD0F0 801369F0 AFA20010 */ sw $v0, 0x10($sp)
/* CD0F4 801369F4 0C04993B */ jal draw_msg
/* CD0F8 801369F8 AFA00014 */ sw $zero, 0x14($sp)
/* CD0FC 801369FC 8FBF0018 */ lw $ra, 0x18($sp)
/* CD100 80136A00 03E00008 */ jr $ra
/* CD104 80136A04 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,33 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel integer_log
/* C6510 8012FE10 44841000 */ mtc1 $a0, $f2
/* C6514 8012FE14 00000000 */ nop
/* C6518 8012FE18 468010A0 */ cvt.s.w $f2, $f2
/* C651C 8012FE1C 24020001 */ addiu $v0, $zero, 1
/* C6520 8012FE20 3C0141F0 */ lui $at, 0x41f0
/* C6524 8012FE24 44813800 */ mtc1 $at, $f7
/* C6528 8012FE28 44803000 */ mtc1 $zero, $f6
/* C652C 8012FE2C 3C013FF0 */ lui $at, 0x3ff0
/* C6530 8012FE30 44812800 */ mtc1 $at, $f5
/* C6534 8012FE34 44802000 */ mtc1 $zero, $f4
.L8012FE38:
/* C6538 8012FE38 44850000 */ mtc1 $a1, $f0
/* C653C 8012FE3C 00000000 */ nop
/* C6540 8012FE40 46800021 */ cvt.d.w $f0, $f0
/* C6544 8012FE44 04A20001 */ bltzl $a1, .L8012FE4C
/* C6548 8012FE48 46260000 */ add.d $f0, $f0, $f6
.L8012FE4C:
/* C654C 8012FE4C 46200020 */ cvt.s.d $f0, $f0
/* C6550 8012FE50 46001083 */ div.s $f2, $f2, $f0
/* C6554 8012FE54 46001021 */ cvt.d.s $f0, $f2
/* C6558 8012FE58 4624003E */ c.le.d $f0, $f4
/* C655C 8012FE5C 00000000 */ nop
/* C6560 8012FE60 45010003 */ bc1t .L8012FE70
/* C6564 8012FE64 00000000 */ nop
/* C6568 8012FE68 0804BF8E */ j .L8012FE38
/* C656C 8012FE6C 24420001 */ addiu $v0, $v0, 1
.L8012FE70:
/* C6570 8012FE70 03E00008 */ jr $ra
/* C6574 8012FE74 00000000 */ nop

View File

@ -1,20 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel item_entity_disable_shadow
/* C7670 80130F70 27BDFFE8 */ addiu $sp, $sp, -0x18
/* C7674 80130F74 AFBF0010 */ sw $ra, 0x10($sp)
/* C7678 80130F78 8C820000 */ lw $v0, ($a0)
/* C767C 80130F7C 84830020 */ lh $v1, 0x20($a0)
/* C7680 80130F80 34420040 */ ori $v0, $v0, 0x40
/* C7684 80130F84 04600006 */ bltz $v1, .L80130FA0
/* C7688 80130F88 AC820000 */ sw $v0, ($a0)
/* C768C 80130F8C 0C044181 */ jal get_shadow_by_index
/* C7690 80130F90 0060202D */ daddu $a0, $v1, $zero
/* C7694 80130F94 8C430000 */ lw $v1, ($v0)
/* C7698 80130F98 34630001 */ ori $v1, $v1, 1
/* C769C 80130F9C AC430000 */ sw $v1, ($v0)
.L80130FA0:
/* C76A0 80130FA0 8FBF0010 */ lw $ra, 0x10($sp)
/* C76A4 80130FA4 03E00008 */ jr $ra
/* C76A8 80130FA8 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,22 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel item_entity_enable_shadow
/* C76AC 80130FAC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* C76B0 80130FB0 2403FFBF */ addiu $v1, $zero, -0x41
/* C76B4 80130FB4 AFBF0010 */ sw $ra, 0x10($sp)
/* C76B8 80130FB8 8C820000 */ lw $v0, ($a0)
/* C76BC 80130FBC 84850020 */ lh $a1, 0x20($a0)
/* C76C0 80130FC0 00431024 */ and $v0, $v0, $v1
/* C76C4 80130FC4 04A00007 */ bltz $a1, .L80130FE4
/* C76C8 80130FC8 AC820000 */ sw $v0, ($a0)
/* C76CC 80130FCC 0C044181 */ jal get_shadow_by_index
/* C76D0 80130FD0 00A0202D */ daddu $a0, $a1, $zero
/* C76D4 80130FD4 8C430000 */ lw $v1, ($v0)
/* C76D8 80130FD8 2404FFFE */ addiu $a0, $zero, -2
/* C76DC 80130FDC 00641824 */ and $v1, $v1, $a0
/* C76E0 80130FE0 AC430000 */ sw $v1, ($v0)
.L80130FE4:
/* C76E4 80130FE4 8FBF0010 */ lw $ra, 0x10($sp)
/* C76E8 80130FE8 03E00008 */ jr $ra
/* C76EC 80130FEC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,9 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sparkle_script_init
/* C70F0 801309F0 24020001 */ addiu $v0, $zero, 1
/* C70F4 801309F4 AC850040 */ sw $a1, 0x40($a0)
/* C70F8 801309F8 AC82003C */ sw $v0, 0x3c($a0)
/* C70FC 801309FC 03E00008 */ jr $ra
/* C7100 80130A00 AC850048 */ sw $a1, 0x48($a0)

View File

@ -1,32 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_item_entity_static
/* CBD58 80135658 27BDFFE8 */ addiu $sp, $sp, -0x18
/* CBD5C 8013565C AFB00010 */ sw $s0, 0x10($sp)
/* CBD60 80135660 0080802D */ daddu $s0, $a0, $zero
/* CBD64 80135664 AFBF0014 */ sw $ra, 0x14($sp)
/* CBD68 80135668 8202001A */ lb $v0, 0x1a($s0)
/* CBD6C 8013566C 14400011 */ bnez $v0, .L801356B4
/* CBD70 80135670 00000000 */ nop
/* CBD74 80135674 0C04CEC3 */ jal test_item_player_collision
/* CBD78 80135678 00000000 */ nop
/* CBD7C 8013567C 1040000D */ beqz $v0, .L801356B4
/* CBD80 80135680 24020001 */ addiu $v0, $zero, 1
/* CBD84 80135684 3C018015 */ lui $at, %hi(D_801565A4)
/* CBD88 80135688 A42265A4 */ sh $v0, %lo(D_801565A4)($at)
/* CBD8C 8013568C 2402001C */ addiu $v0, $zero, 0x1c
/* CBD90 80135690 3C03800A */ lui $v1, %hi(gOverrideFlags)
/* CBD94 80135694 2463A650 */ addiu $v1, $v1, %lo(gOverrideFlags)
/* CBD98 80135698 A202001B */ sb $v0, 0x1b($s0)
/* CBD9C 8013569C A200001A */ sb $zero, 0x1a($s0)
/* CBDA0 801356A0 8C620000 */ lw $v0, ($v1)
/* CBDA4 801356A4 3C018015 */ lui $at, %hi(D_801565A8)
/* CBDA8 801356A8 A42065A8 */ sh $zero, %lo(D_801565A8)($at)
/* CBDAC 801356AC 34420040 */ ori $v0, $v0, 0x40
/* CBDB0 801356B0 AC620000 */ sw $v0, ($v1)
.L801356B4:
/* CBDB4 801356B4 8FBF0014 */ lw $ra, 0x14($sp)
/* CBDB8 801356B8 8FB00010 */ lw $s0, 0x10($sp)
/* CBDBC 801356BC 03E00008 */ jr $ra
/* CBDC0 801356C0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,24 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sfx_stop_sound
/* E036C 80149C6C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* E0370 80149C70 AFBF0010 */ sw $ra, 0x10($sp)
/* E0374 80149C74 0481000A */ bgez $a0, .L80149CA0
/* E0378 80149C78 0080102D */ daddu $v0, $a0, $zero
/* E037C 80149C7C 3082FFFF */ andi $v0, $a0, 0xffff
/* E0380 80149C80 00021080 */ sll $v0, $v0, 2
/* E0384 80149C84 3C048015 */ lui $a0, %hi(D_8014F2D0)
/* E0388 80149C88 00822021 */ addu $a0, $a0, $v0
/* E038C 80149C8C 8C84F2D0 */ lw $a0, %lo(D_8014F2D0)($a0)
/* E0390 80149C90 0C05269B */ jal func_80149A6C
/* E0394 80149C94 0000282D */ daddu $a1, $zero, $zero
/* E0398 80149C98 0805272A */ j .L80149CA8
/* E039C 80149C9C 00000000 */ nop
.L80149CA0:
/* E03A0 80149CA0 0C0154F0 */ jal snd_stop_sound
/* E03A4 80149CA4 0040202D */ daddu $a0, $v0, $zero
.L80149CA8:
/* E03A8 80149CA8 8FBF0010 */ lw $ra, 0x10($sp)
/* E03AC 80149CAC 03E00008 */ jr $ra
/* E03B0 80149CB0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,109 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel start_battle
/* 1FAB4 800446B4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 1FAB8 800446B8 AFB00010 */ sw $s0, 0x10($sp)
/* 1FABC 800446BC 00A0802D */ daddu $s0, $a1, $zero
/* 1FAC0 800446C0 AFBF0028 */ sw $ra, 0x28($sp)
/* 1FAC4 800446C4 AFB50024 */ sw $s5, 0x24($sp)
/* 1FAC8 800446C8 AFB40020 */ sw $s4, 0x20($sp)
/* 1FACC 800446CC AFB3001C */ sw $s3, 0x1c($sp)
/* 1FAD0 800446D0 AFB20018 */ sw $s2, 0x18($sp)
/* 1FAD4 800446D4 AFB10014 */ sw $s1, 0x14($sp)
/* 1FAD8 800446D8 8C910148 */ lw $s1, 0x148($a0)
/* 1FADC 800446DC 0C0B1192 */ jal resume_all_group
/* 1FAE0 800446E0 24040001 */ addiu $a0, $zero, 1
/* 1FAE4 800446E4 3C13800B */ lui $s3, %hi(gCurrentEncounter)
/* 1FAE8 800446E8 26730F10 */ addiu $s3, $s3, %lo(gCurrentEncounter)
/* 1FAEC 800446EC 24020001 */ addiu $v0, $zero, 1
/* 1FAF0 800446F0 A2620005 */ sb $v0, 5($s3)
/* 1FAF4 800446F4 A2220005 */ sb $v0, 5($s1)
/* 1FAF8 800446F8 AE71008C */ sw $s1, 0x8c($s3)
/* 1FAFC 800446FC 82220004 */ lb $v0, 4($s1)
/* 1FB00 80044700 00021080 */ sll $v0, $v0, 2
/* 1FB04 80044704 00531021 */ addu $v0, $v0, $s3
/* 1FB08 80044708 8C430028 */ lw $v1, 0x28($v0)
/* 1FB0C 8004470C 2402FFFF */ addiu $v0, $zero, -1
/* 1FB10 80044710 A2600004 */ sb $zero, 4($s3)
/* 1FB14 80044714 A2600011 */ sb $zero, 0x11($s3)
/* 1FB18 80044718 AE700014 */ sw $s0, 0x14($s3)
/* 1FB1C 8004471C AE620018 */ sw $v0, 0x18($s3)
/* 1FB20 80044720 AE630088 */ sw $v1, 0x88($s3)
/* 1FB24 80044724 8E22003C */ lw $v0, 0x3c($s1)
/* 1FB28 80044728 10400003 */ beqz $v0, .L80044738
/* 1FB2C 8004472C 00000000 */ nop
/* 1FB30 80044730 0C0B1108 */ jal suspend_all_script
/* 1FB34 80044734 8E240054 */ lw $a0, 0x54($s1)
.L80044738:
/* 1FB38 80044738 8E220044 */ lw $v0, 0x44($s1)
/* 1FB3C 8004473C 10400003 */ beqz $v0, .L8004474C
/* 1FB40 80044740 00000000 */ nop
/* 1FB44 80044744 0C0B1108 */ jal suspend_all_script
/* 1FB48 80044748 8E24005C */ lw $a0, 0x5c($s1)
.L8004474C:
/* 1FB4C 8004474C 0C03805E */ jal disable_player_input
/* 1FB50 80044750 0000802D */ daddu $s0, $zero, $zero
/* 1FB54 80044754 0C03BD8A */ jal partner_disable_input
/* 1FB58 80044758 00000000 */ nop
/* 1FB5C 8004475C 8E740088 */ lw $s4, 0x88($s3)
/* 1FB60 80044760 8E820000 */ lw $v0, ($s4)
/* 1FB64 80044764 18400021 */ blez $v0, .L800447EC
/* 1FB68 80044768 24150001 */ addiu $s5, $zero, 1
/* 1FB6C 8004476C 0280902D */ daddu $s2, $s4, $zero
.L80044770:
/* 1FB70 80044770 8E510004 */ lw $s1, 4($s2)
/* 1FB74 80044774 12200018 */ beqz $s1, .L800447D8
/* 1FB78 80044778 00000000 */ nop
/* 1FB7C 8004477C 8E220000 */ lw $v0, ($s1)
/* 1FB80 80044780 30420008 */ andi $v0, $v0, 8
/* 1FB84 80044784 10400004 */ beqz $v0, .L80044798
/* 1FB88 80044788 00000000 */ nop
/* 1FB8C 8004478C 8E62008C */ lw $v0, 0x8c($s3)
/* 1FB90 80044790 16220011 */ bne $s1, $v0, .L800447D8
/* 1FB94 80044794 00000000 */ nop
.L80044798:
/* 1FB98 80044798 8E220028 */ lw $v0, 0x28($s1)
/* 1FB9C 8004479C 1040000E */ beqz $v0, .L800447D8
/* 1FBA0 800447A0 0040202D */ daddu $a0, $v0, $zero
/* 1FBA4 800447A4 2405000A */ addiu $a1, $zero, 0xa
/* 1FBA8 800447A8 0000302D */ daddu $a2, $zero, $zero
/* 1FBAC 800447AC 0C0B0CF8 */ jal start_script
/* 1FBB0 800447B0 A2350005 */ sb $s5, 5($s1)
/* 1FBB4 800447B4 0040182D */ daddu $v1, $v0, $zero
/* 1FBB8 800447B8 AE230040 */ sw $v1, 0x40($s1)
/* 1FBBC 800447BC 8C620144 */ lw $v0, 0x144($v1)
/* 1FBC0 800447C0 AE220058 */ sw $v0, 0x58($s1)
/* 1FBC4 800447C4 AC710148 */ sw $s1, 0x148($v1)
/* 1FBC8 800447C8 86220008 */ lh $v0, 8($s1)
/* 1FBCC 800447CC AC62014C */ sw $v0, 0x14c($v1)
/* 1FBD0 800447D0 92220006 */ lbu $v0, 6($s1)
/* 1FBD4 800447D4 A0620004 */ sb $v0, 4($v1)
.L800447D8:
/* 1FBD8 800447D8 8E820000 */ lw $v0, ($s4)
/* 1FBDC 800447DC 26100001 */ addiu $s0, $s0, 1
/* 1FBE0 800447E0 0202102A */ slt $v0, $s0, $v0
/* 1FBE4 800447E4 1440FFE2 */ bnez $v0, .L80044770
/* 1FBE8 800447E8 26520004 */ addiu $s2, $s2, 4
.L800447EC:
/* 1FBEC 800447EC 24020001 */ addiu $v0, $zero, 1
/* 1FBF0 800447F0 AE600090 */ sw $zero, 0x90($s3)
/* 1FBF4 800447F4 AE600094 */ sw $zero, 0x94($s3)
/* 1FBF8 800447F8 A2620012 */ sb $v0, 0x12($s3)
/* 1FBFC 800447FC 8FBF0028 */ lw $ra, 0x28($sp)
/* 1FC00 80044800 8FB50024 */ lw $s5, 0x24($sp)
/* 1FC04 80044804 8FB40020 */ lw $s4, 0x20($sp)
/* 1FC08 80044808 8FB3001C */ lw $s3, 0x1c($sp)
/* 1FC0C 8004480C 8FB20018 */ lw $s2, 0x18($sp)
/* 1FC10 80044810 8FB10014 */ lw $s1, 0x14($sp)
/* 1FC14 80044814 8FB00010 */ lw $s0, 0x10($sp)
/* 1FC18 80044818 24020003 */ addiu $v0, $zero, 3
/* 1FC1C 8004481C 3C01800A */ lui $at, %hi(gGameState)
/* 1FC20 80044820 AC22A600 */ sw $v0, %lo(gGameState)($at)
/* 1FC24 80044824 24020001 */ addiu $v0, $zero, 1
/* 1FC28 80044828 3C01800A */ lui $at, %hi(D_8009A678)
/* 1FC2C 8004482C AC22A678 */ sw $v0, %lo(D_8009A678)($at)
/* 1FC30 80044830 3C01800A */ lui $at, %hi(D_8009A5D0)
/* 1FC34 80044834 AC20A5D0 */ sw $zero, %lo(D_8009A5D0)($at)
/* 1FC38 80044838 03E00008 */ jr $ra
/* 1FC3C 8004483C 27BD0030 */ addiu $sp, $sp, 0x30