mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Line numbies + a couple funx (#833)
* check_input_open_menus * func_8003DA38 * some shiftability snibblets * clean * PR comments
This commit is contained in:
parent
b0afefafe0
commit
9e8f3eb36b
@ -1,9 +1,13 @@
|
||||
#include "common.h"
|
||||
#include "sprite.h"
|
||||
#include "nu/nusys.h"
|
||||
#include "ld_addrs.h"
|
||||
|
||||
// TODO generate this somehow, or prevent it from shifting. must be resolved at compile time
|
||||
#ifdef SHIFT
|
||||
#define SPRITE_ROM_START _1943000_ROM_START + 0x10
|
||||
#else
|
||||
#define SPRITE_ROM_START 0x1943000 + 0x10
|
||||
#endif
|
||||
|
||||
extern s32 spr_allocateBtlComponentsOnWorldHeap;
|
||||
|
||||
|
@ -2,31 +2,29 @@
|
||||
#include "hud_element.h"
|
||||
#include "world/partners.h"
|
||||
#include "macros.h"
|
||||
|
||||
s16 D_8010C9C0;
|
||||
char D_8010C9C4[0x4];
|
||||
PopupMenu D_8010C9C8;
|
||||
s16 D_8010CCF8;
|
||||
s16 D_8010CCFA;
|
||||
s16 D_8010CCFC;
|
||||
s16 D_8010CCFE;
|
||||
s16 D_8010CD00;
|
||||
char D_8010CD04[0xC];
|
||||
s16 D_8010CD10;
|
||||
s16 D_8010CD12;
|
||||
char D_8010CD14[0xA];
|
||||
s32 D_8010CD20;
|
||||
char D_8010CD24[0xC];
|
||||
|
||||
#include "common.h"
|
||||
#include "sprite.h"
|
||||
#include "pause/pause_common.h"
|
||||
#include "world/partners.h"
|
||||
|
||||
BSS s16 D_8010C9C0;
|
||||
BSS char D_8010C9C4[0x4];
|
||||
BSS PopupMenu D_8010C9C8;
|
||||
BSS s16 D_8010CCF8;
|
||||
BSS s16 D_8010CCFA;
|
||||
BSS s16 D_8010CCFC;
|
||||
BSS s16 D_8010CCFE;
|
||||
BSS s16 D_8010CD00;
|
||||
BSS char D_8010CD04[0xC];
|
||||
BSS s16 D_8010CD10;
|
||||
BSS s16 D_8010CD12;
|
||||
BSS char D_8010CD14[0xA];
|
||||
BSS s32 D_8010CD20;
|
||||
BSS char D_8010CD24[0xC];
|
||||
|
||||
extern s32 D_8008EEC0[12];
|
||||
extern s32 D_8008EEF0[];
|
||||
|
||||
|
||||
void func_800E6860(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
|
||||
@ -132,7 +130,7 @@ s32 setup_partner_popup(PopupMenu* menu) {
|
||||
|
||||
for (i = 1; i < ARRAY_COUNT(D_8008EEC0); i++) {
|
||||
s32 partnerID = D_8008EEC0[i];
|
||||
|
||||
|
||||
if (playerData->partners[partnerID].enabled && partnerID != PARTNER_GOOMPA) {
|
||||
PartnerPopupProperties* properties = &gPartnerPopupProperties[partnerID];
|
||||
|
||||
@ -181,19 +179,23 @@ s32 setup_item_popup(PopupMenu* menu) {
|
||||
return optionCount;
|
||||
}
|
||||
|
||||
// stack issues, yucky goto
|
||||
#ifdef NON_MATCHING
|
||||
void check_input_open_menus(void) {
|
||||
static s16 D_8010C9C0;
|
||||
|
||||
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
PlayerData* playerData = &gPlayerData;
|
||||
PopupMenu* popup = &D_8010C9C8;
|
||||
PartnerActionStatus* partnerActionStatus;
|
||||
PlayerStatus* playerStatus;
|
||||
PlayerData* playerData;
|
||||
PopupMenu* popup;
|
||||
s32 flags;
|
||||
s32 numEntries;
|
||||
s32 pressedButtons;
|
||||
s32 currentButtons;
|
||||
s8* partnerActionState;
|
||||
|
||||
partnerActionStatus = &gPartnerActionStatus;
|
||||
playerStatus = &gPlayerStatus;
|
||||
playerData = &gPlayerData;
|
||||
popup = &D_8010C9C8;
|
||||
|
||||
if (gGameStatusPtr->disableScripts ||
|
||||
(gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) ||
|
||||
@ -213,6 +215,7 @@ void check_input_open_menus(void) {
|
||||
currentButtons = playerStatus->currentButtons;
|
||||
pressedButtons = playerStatus->pressedButtons;
|
||||
}
|
||||
partnerActionState = &partnerActionStatus->partnerActionState;
|
||||
|
||||
if (evt_get_variable(NULL, GB_StoryProgress) >= STORY_EPILOGUE) {
|
||||
currentButtons &= ~(BUTTON_C_LEFT | BUTTON_C_RIGHT);
|
||||
@ -301,7 +304,7 @@ block_17:
|
||||
}
|
||||
create_popup_menu(popup);
|
||||
set_time_freeze_mode(TIME_FREEZE_PARTNER_MENU);
|
||||
if (partnerActionStatus->partnerActionState == 0) {
|
||||
if (*partnerActionState == 0) {
|
||||
set_action_state(ACTION_STATE_IDLE);
|
||||
}
|
||||
D_8010CD00++;
|
||||
@ -336,7 +339,7 @@ block_17:
|
||||
break;
|
||||
}
|
||||
D_8010C9C0 = TRUE;
|
||||
goto block_17;
|
||||
goto block_17; // TODO required to match
|
||||
}
|
||||
}
|
||||
|
||||
@ -346,7 +349,9 @@ block_17:
|
||||
switch_to_partner(popup->userIndex[D_8010CCFC - 1]);
|
||||
break;
|
||||
case 1:
|
||||
use_consumable(popup->userIndex[D_8010CCFC - 1]);
|
||||
do {
|
||||
use_consumable(popup->userIndex[D_8010CCFC - 1]);
|
||||
} while (0); // todo required to match
|
||||
gOverrideFlags |= GLOBAL_OVERRIDES_CANT_PICK_UP_ITEMS;
|
||||
break;
|
||||
}
|
||||
@ -370,9 +375,6 @@ block_17:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "7fd10_len_b40", check_input_open_menus);
|
||||
#endif
|
||||
|
||||
void check_input_status_menu(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
|
@ -1772,8 +1772,8 @@ void entity_reset_collision(Entity* entity) {
|
||||
entity->flags &= ~ENTITY_FLAGS_DETECTED_COLLISION;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
#define AREA_SPECIFIC_ENTITY_VRAM &entity_default_VRAM
|
||||
#ifdef SHIFT
|
||||
#define AREA_SPECIFIC_ENTITY_VRAM entity_default_VRAM
|
||||
#else
|
||||
#define AREA_SPECIFIC_ENTITY_VRAM 0x802BAE00
|
||||
#endif
|
||||
|
12
src/npc.c
12
src/npc.c
@ -2,6 +2,7 @@
|
||||
#include "npc.h"
|
||||
#include "effects.h"
|
||||
#include "sprite.h"
|
||||
#include "world/partners.h"
|
||||
|
||||
u8 D_80077BF0[] = {
|
||||
1, 2,
|
||||
@ -2069,8 +2070,6 @@ void func_8003D788(Npc* npc, s32 arg1) {
|
||||
}
|
||||
}
|
||||
|
||||
// floats suck
|
||||
#ifdef NON_MATCHING
|
||||
void func_8003DA38(Npc* npc, s32 arg1) {
|
||||
f32 theta;
|
||||
f32 sinTheta;
|
||||
@ -2078,7 +2077,11 @@ void func_8003DA38(Npc* npc, s32 arg1) {
|
||||
f32 x, y, z;
|
||||
|
||||
if (arg1 == 2 && D_80077C1E == 5) {
|
||||
fx_flower_splash(npc->pos.x, npc->pos.y + 14.0f, npc->pos.z, D_80077C18);
|
||||
x = npc->pos.x;
|
||||
y = npc->pos.y + + 14.0f;
|
||||
z = npc->pos.z;
|
||||
|
||||
fx_flower_splash(x, y, z, D_80077C18);
|
||||
D_80077C18 = clamp_angle(D_80077C18 + 35.0f);
|
||||
D_80077C1E = 0;
|
||||
return;
|
||||
@ -2103,9 +2106,6 @@ void func_8003DA38(Npc* npc, s32 arg1) {
|
||||
D_80077C20 = D_80077C20 == 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(void, "npc", func_8003DA38, Npc* npc, s32 arg1);
|
||||
#endif
|
||||
|
||||
// floats suqqz
|
||||
#ifdef NON_EQUIVALENT
|
||||
|
@ -6,7 +6,12 @@
|
||||
#include "sprite.h"
|
||||
#include "model.h"
|
||||
|
||||
#ifdef SHIFT
|
||||
#define ASSET_TABLE_ROM_START mapfs_ROM_START
|
||||
#else
|
||||
#define ASSET_TABLE_ROM_START 0x1E40000
|
||||
#endif
|
||||
|
||||
#define ASSET_TABLE_HEADER_SIZE 0x20
|
||||
#define ASSET_TABLE_FIRST_ENTRY (ASSET_TABLE_ROM_START + ASSET_TABLE_HEADER_SIZE)
|
||||
|
||||
|
@ -65,7 +65,7 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
|
||||
CPPFLAGS_272 = "-Iver/$version/build/include -Iinclude -Isrc -Iassets/$version -D_LANGUAGE_C -D_FINALROM " \
|
||||
"-DVERSION=$version -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -nostdinc"
|
||||
|
||||
cflags = f"-c -G0 -O2 -x c -B {BUILD_TOOLS}/cc/gcc/ {extra_cflags}"
|
||||
cflags = f"-c -G0 -O2 -gdwarf-2 -x c -B {BUILD_TOOLS}/cc/gcc/ {extra_cflags}"
|
||||
cflags_272 = f"-c -G0 -mgp32 -mfp32 -mips3 {extra_cflags}"
|
||||
cflags_272 = cflags_272.replace("-ggdb3","-g1")
|
||||
|
||||
|
@ -4,6 +4,7 @@ import argparse
|
||||
from collections import OrderedDict
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
import re
|
||||
from typing import Optional
|
||||
|
||||
import os
|
||||
@ -74,8 +75,16 @@ def parse_map() -> OrderedDict[str, Symbol]:
|
||||
syms: OrderedDict[str, Symbol] = OrderedDict()
|
||||
prev_sym = ""
|
||||
prev_line = ""
|
||||
cur_sect = ""
|
||||
sect_re = re.compile(r"\(\..*\)")
|
||||
with open(map_file_path) as f:
|
||||
for line in f:
|
||||
sect = sect_re.search(line)
|
||||
if sect:
|
||||
sect_str = sect.group(0)
|
||||
if sect_str in ["(.text)", "(.data)", "(.rodata)", "(.bss)"]:
|
||||
cur_sect = sect_str
|
||||
|
||||
if "load address" in line:
|
||||
if "noload" in line or "noload" in prev_line:
|
||||
ram_offset = None
|
||||
@ -101,6 +110,8 @@ def parse_map() -> OrderedDict[str, Symbol]:
|
||||
elif "/" in fn:
|
||||
cur_file = fn
|
||||
else:
|
||||
if cur_sect != "(.text)":
|
||||
continue
|
||||
syms[fn] = Symbol(
|
||||
name=fn,
|
||||
rom_start=rom,
|
||||
|
@ -111,45 +111,3 @@ dlabel D_8010C9B0
|
||||
|
||||
dlabel D_8010C9B4
|
||||
.space 0x0000000c
|
||||
|
||||
dlabel D_8010C9C0
|
||||
.space 4
|
||||
|
||||
dlabel D_8010C9C4
|
||||
.space 4
|
||||
|
||||
dlabel D_8010C9C8
|
||||
.space 0x330
|
||||
|
||||
dlabel D_8010CCF8
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CCFA
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CCFC
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CCFE
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CD00
|
||||
.space 4
|
||||
|
||||
dlabel D_8010CD04
|
||||
.space 0xC
|
||||
|
||||
dlabel D_8010CD10
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CD12
|
||||
.space 2
|
||||
|
||||
dlabel D_8010CD14
|
||||
.space 0xC
|
||||
|
||||
dlabel D_8010CD20
|
||||
.space 4
|
||||
|
||||
dlabel D_8010CD24
|
||||
.space 0xC
|
||||
|
@ -1,403 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
dlabel jtbl_8010BF30
|
||||
.word .L800E6DD8_80288, .L800E6F14_803C4, .L800E6FC8_80478, .L800E7044_804F4, .L800E7090_80540, .L800E726C_8071C, .L800E726C_8071C, .L800E726C_8071C, .L800E726C_8071C, .L800E726C_8071C, .L800E7208_806B8, 0
|
||||
|
||||
.section .text
|
||||
|
||||
glabel check_input_open_menus
|
||||
/* 80194 800E6CE4 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* 80198 800E6CE8 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* 8019C 800E6CEC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 801A0 800E6CF0 AFB3001C */ sw $s3, 0x1c($sp)
|
||||
/* 801A4 800E6CF4 3C138011 */ lui $s3, %hi(gPartnerActionStatus)
|
||||
/* 801A8 800E6CF8 2673EBB0 */ addiu $s3, $s3, %lo(gPartnerActionStatus)
|
||||
/* 801AC 800E6CFC AFB40020 */ sw $s4, 0x20($sp)
|
||||
/* 801B0 800E6D00 3C148011 */ lui $s4, %hi(gPlayerStatus)
|
||||
/* 801B4 800E6D04 2694EFC8 */ addiu $s4, $s4, %lo(gPlayerStatus)
|
||||
/* 801B8 800E6D08 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 801BC 800E6D0C AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* 801C0 800E6D10 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 801C4 800E6D14 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 801C8 800E6D18 80620078 */ lb $v0, 0x78($v1)
|
||||
/* 801CC 800E6D1C 3C128011 */ lui $s2, %hi(D_8010C9C8)
|
||||
/* 801D0 800E6D20 2652C9C8 */ addiu $s2, $s2, %lo(D_8010C9C8)
|
||||
/* 801D4 800E6D24 14400151 */ bnez $v0, .L800E726C_8071C
|
||||
/* 801D8 800E6D28 00000000 */ nop
|
||||
/* 801DC 800E6D2C 9062007E */ lbu $v0, 0x7e($v1)
|
||||
/* 801E0 800E6D30 30420001 */ andi $v0, $v0, 1
|
||||
/* 801E4 800E6D34 1440014D */ bnez $v0, .L800E726C_8071C
|
||||
/* 801E8 800E6D38 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 801EC 800E6D3C 3C05F5DE */ lui $a1, 0xf5de
|
||||
/* 801F0 800E6D40 0C0B1EAF */ jal evt_get_variable
|
||||
/* 801F4 800E6D44 34A50180 */ ori $a1, $a1, 0x180
|
||||
/* 801F8 800E6D48 2403FF80 */ addiu $v1, $zero, -0x80
|
||||
/* 801FC 800E6D4C 10430147 */ beq $v0, $v1, .L800E726C_8071C
|
||||
/* 80200 800E6D50 00000000 */ nop
|
||||
/* 80204 800E6D54 82620000 */ lb $v0, ($s3)
|
||||
/* 80208 800E6D58 1040000A */ beqz $v0, .L800E6D84
|
||||
/* 8020C 800E6D5C 00000000 */ nop
|
||||
/* 80210 800E6D60 92620003 */ lbu $v0, 3($s3)
|
||||
/* 80214 800E6D64 2442FFF9 */ addiu $v0, $v0, -7
|
||||
/* 80218 800E6D68 2C420003 */ sltiu $v0, $v0, 3
|
||||
/* 8021C 800E6D6C 10400005 */ beqz $v0, .L800E6D84
|
||||
/* 80220 800E6D70 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 80224 800E6D74 8E710008 */ lw $s1, 8($s3)
|
||||
/* 80228 800E6D78 8E70000C */ lw $s0, 0xc($s3)
|
||||
/* 8022C 800E6D7C 08039B65 */ j .L800E6D94
|
||||
/* 80230 800E6D80 3C05F5DE */ lui $a1, 0xf5de
|
||||
.L800E6D84:
|
||||
/* 80234 800E6D84 8E9100DC */ lw $s1, 0xdc($s4)
|
||||
/* 80238 800E6D88 8E9000E0 */ lw $s0, 0xe0($s4)
|
||||
/* 8023C 800E6D8C 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 80240 800E6D90 3C05F5DE */ lui $a1, 0xf5de
|
||||
.L800E6D94:
|
||||
/* 80244 800E6D94 0C0B1EAF */ jal evt_get_variable
|
||||
/* 80248 800E6D98 34A50180 */ ori $a1, $a1, 0x180
|
||||
/* 8024C 800E6D9C 28420060 */ slti $v0, $v0, 0x60
|
||||
/* 80250 800E6DA0 14400003 */ bnez $v0, .L800E6DB0
|
||||
/* 80254 800E6DA4 2402FFFC */ addiu $v0, $zero, -4
|
||||
/* 80258 800E6DA8 02228824 */ and $s1, $s1, $v0
|
||||
/* 8025C 800E6DAC 02028024 */ and $s0, $s0, $v0
|
||||
.L800E6DB0:
|
||||
/* 80260 800E6DB0 3C038011 */ lui $v1, %hi(D_8010CD00)
|
||||
/* 80264 800E6DB4 8463CD00 */ lh $v1, %lo(D_8010CD00)($v1)
|
||||
/* 80268 800E6DB8 2C62000B */ sltiu $v0, $v1, 0xb
|
||||
/* 8026C 800E6DBC 1040012B */ beqz $v0, .L800E726C_8071C
|
||||
/* 80270 800E6DC0 00031080 */ sll $v0, $v1, 2
|
||||
/* 80274 800E6DC4 3C018011 */ lui $at, %hi(jtbl_8010BF30)
|
||||
/* 80278 800E6DC8 00220821 */ addu $at, $at, $v0
|
||||
/* 8027C 800E6DCC 8C22BF30 */ lw $v0, %lo(jtbl_8010BF30)($at)
|
||||
/* 80280 800E6DD0 00400008 */ jr $v0
|
||||
/* 80284 800E6DD4 00000000 */ nop
|
||||
.L800E6DD8_80288:
|
||||
/* 80288 800E6DD8 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 8028C 800E6DDC 0C039A77 */ jal can_pause
|
||||
/* 80290 800E6DE0 0200282D */ daddu $a1, $s0, $zero
|
||||
/* 80294 800E6DE4 10400121 */ beqz $v0, .L800E726C_8071C
|
||||
/* 80298 800E6DE8 24020001 */ addiu $v0, $zero, 1
|
||||
/* 8029C 800E6DEC 3C038011 */ lui $v1, %hi(D_8010CCF8)
|
||||
/* 802A0 800E6DF0 2463CCF8 */ addiu $v1, $v1, %lo(D_8010CCF8)
|
||||
/* 802A4 800E6DF4 A4620000 */ sh $v0, ($v1)
|
||||
/* 802A8 800E6DF8 32020001 */ andi $v0, $s0, 1
|
||||
/* 802AC 800E6DFC 54400001 */ bnel $v0, $zero, .L800E6E04
|
||||
/* 802B0 800E6E00 A4600000 */ sh $zero, ($v1)
|
||||
.L800E6E04:
|
||||
/* 802B4 800E6E04 32021000 */ andi $v0, $s0, 0x1000
|
||||
/* 802B8 800E6E08 10400002 */ beqz $v0, .L800E6E14
|
||||
/* 802BC 800E6E0C 24020002 */ addiu $v0, $zero, 2
|
||||
/* 802C0 800E6E10 A4620000 */ sh $v0, ($v1)
|
||||
.L800E6E14:
|
||||
/* 802C4 800E6E14 3C018011 */ lui $at, %hi(D_8010C9C0)
|
||||
/* 802C8 800E6E18 A420C9C0 */ sh $zero, %lo(D_8010C9C0)($at)
|
||||
.L800E6E1C:
|
||||
/* 802CC 800E6E1C 3C038011 */ lui $v1, %hi(D_8010CCF8)
|
||||
/* 802D0 800E6E20 8463CCF8 */ lh $v1, %lo(D_8010CCF8)($v1)
|
||||
/* 802D4 800E6E24 10600005 */ beqz $v1, .L800E6E3C
|
||||
/* 802D8 800E6E28 24020001 */ addiu $v0, $zero, 1
|
||||
/* 802DC 800E6E2C 1062001F */ beq $v1, $v0, .L800E6EAC
|
||||
/* 802E0 800E6E30 00000000 */ nop
|
||||
/* 802E4 800E6E34 08039BB2 */ j .L800E6EC8
|
||||
/* 802E8 800E6E38 00000000 */ nop
|
||||
.L800E6E3C:
|
||||
/* 802EC 800E6E3C 8E820000 */ lw $v0, ($s4)
|
||||
/* 802F0 800E6E40 30420040 */ andi $v0, $v0, 0x40
|
||||
/* 802F4 800E6E44 10400009 */ beqz $v0, .L800E6E6C
|
||||
/* 802F8 800E6E48 00000000 */ nop
|
||||
/* 802FC 800E6E4C 0C05272D */ jal sfx_play_sound
|
||||
/* 80300 800E6E50 2404021D */ addiu $a0, $zero, 0x21d
|
||||
/* 80304 800E6E54 3C028011 */ lui $v0, %hi(D_8010C9C0)
|
||||
/* 80308 800E6E58 8442C9C0 */ lh $v0, %lo(D_8010C9C0)($v0)
|
||||
/* 8030C 800E6E5C 10400103 */ beqz $v0, .L800E726C_8071C
|
||||
/* 80310 800E6E60 00000000 */ nop
|
||||
/* 80314 800E6E64 08039C72 */ j .L800E71C8
|
||||
/* 80318 800E6E68 00000000 */ nop
|
||||
.L800E6E6C:
|
||||
/* 8031C 800E6E6C 0C039ADE */ jal setup_partner_popup
|
||||
/* 80320 800E6E70 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 80324 800E6E74 104000FD */ beqz $v0, .L800E726C_8071C
|
||||
/* 80328 800E6E78 24030001 */ addiu $v1, $zero, 1
|
||||
/* 8032C 800E6E7C AE420324 */ sw $v0, 0x324($s2)
|
||||
/* 80330 800E6E80 3C028011 */ lui $v0, %hi(gPlayerData)
|
||||
/* 80334 800E6E84 2442F290 */ addiu $v0, $v0, %lo(gPlayerData)
|
||||
/* 80338 800E6E88 80420012 */ lb $v0, 0x12($v0)
|
||||
/* 8033C 800E6E8C AE430318 */ sw $v1, 0x318($s2)
|
||||
/* 80340 800E6E90 00021080 */ sll $v0, $v0, 2
|
||||
/* 80344 800E6E94 3C018009 */ lui $at, %hi(D_8008EEF0)
|
||||
/* 80348 800E6E98 00220821 */ addu $at, $at, $v0
|
||||
/* 8034C 800E6E9C 8C22EEF0 */ lw $v0, %lo(D_8008EEF0)($at)
|
||||
/* 80350 800E6EA0 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 80354 800E6EA4 08039BB2 */ j .L800E6EC8
|
||||
/* 80358 800E6EA8 AE420328 */ sw $v0, 0x328($s2)
|
||||
.L800E6EAC:
|
||||
/* 8035C 800E6EAC 0C039B11 */ jal setup_item_popup
|
||||
/* 80360 800E6EB0 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 80364 800E6EB4 104000ED */ beqz $v0, .L800E726C_8071C
|
||||
/* 80368 800E6EB8 00000000 */ nop
|
||||
/* 8036C 800E6EBC AE400318 */ sw $zero, 0x318($s2)
|
||||
/* 80370 800E6EC0 AE420324 */ sw $v0, 0x324($s2)
|
||||
/* 80374 800E6EC4 AE400328 */ sw $zero, 0x328($s2)
|
||||
.L800E6EC8:
|
||||
/* 80378 800E6EC8 8E820000 */ lw $v0, ($s4)
|
||||
/* 8037C 800E6ECC 34420020 */ ori $v0, $v0, 0x20
|
||||
/* 80380 800E6ED0 0C03805E */ jal disable_player_input
|
||||
/* 80384 800E6ED4 AE820000 */ sw $v0, ($s4)
|
||||
/* 80388 800E6ED8 0C03BD8A */ jal partner_disable_input
|
||||
/* 8038C 800E6EDC 00000000 */ nop
|
||||
/* 80390 800E6EE0 24020003 */ addiu $v0, $zero, 3
|
||||
/* 80394 800E6EE4 3C018011 */ lui $at, %hi(D_8010CCFA)
|
||||
/* 80398 800E6EE8 A422CCFA */ sh $v0, %lo(D_8010CCFA)($at)
|
||||
/* 8039C 800E6EEC 92820015 */ lbu $v0, 0x15($s4)
|
||||
/* 803A0 800E6EF0 24030001 */ addiu $v1, $zero, 1
|
||||
/* 803A4 800E6EF4 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 803A8 800E6EF8 A423CD00 */ sh $v1, %lo(D_8010CD00)($at)
|
||||
/* 803AC 800E6EFC 00021600 */ sll $v0, $v0, 0x18
|
||||
/* 803B0 800E6F00 00021603 */ sra $v0, $v0, 0x18
|
||||
/* 803B4 800E6F04 3C018011 */ lui $at, %hi(D_8010CCFE)
|
||||
/* 803B8 800E6F08 A422CCFE */ sh $v0, %lo(D_8010CCFE)($at)
|
||||
/* 803BC 800E6F0C 08039C9B */ j .L800E726C_8071C
|
||||
/* 803C0 800E6F10 00000000 */ nop
|
||||
.L800E6F14_803C4:
|
||||
/* 803C4 800E6F14 0C039A41 */ jal func_800E6904
|
||||
/* 803C8 800E6F18 00000000 */ nop
|
||||
/* 803CC 800E6F1C 1040000B */ beqz $v0, .L800E6F4C
|
||||
/* 803D0 800E6F20 00000000 */ nop
|
||||
/* 803D4 800E6F24 0C04D07A */ jal is_picking_up_item
|
||||
/* 803D8 800E6F28 00000000 */ nop
|
||||
/* 803DC 800E6F2C 14400007 */ bnez $v0, .L800E6F4C
|
||||
/* 803E0 800E6F30 00000000 */ nop
|
||||
/* 803E4 800E6F34 3C028011 */ lui $v0, %hi(D_8010CCFE)
|
||||
/* 803E8 800E6F38 8442CCFE */ lh $v0, %lo(D_8010CCFE)($v0)
|
||||
/* 803EC 800E6F3C 82830015 */ lb $v1, 0x15($s4)
|
||||
/* 803F0 800E6F40 0043102A */ slt $v0, $v0, $v1
|
||||
/* 803F4 800E6F44 10400010 */ beqz $v0, .L800E6F88
|
||||
/* 803F8 800E6F48 00000000 */ nop
|
||||
.L800E6F4C:
|
||||
/* 803FC 800E6F4C 8E820000 */ lw $v0, ($s4)
|
||||
/* 80400 800E6F50 2403FFDF */ addiu $v1, $zero, -0x21
|
||||
/* 80404 800E6F54 00431024 */ and $v0, $v0, $v1
|
||||
/* 80408 800E6F58 0C038069 */ jal enable_player_input
|
||||
/* 8040C 800E6F5C AE820000 */ sw $v0, ($s4)
|
||||
/* 80410 800E6F60 0C03BD80 */ jal partner_enable_input
|
||||
/* 80414 800E6F64 00000000 */ nop
|
||||
/* 80418 800E6F68 3C028011 */ lui $v0, %hi(D_8010C9C0)
|
||||
/* 8041C 800E6F6C 8442C9C0 */ lh $v0, %lo(D_8010C9C0)($v0)
|
||||
/* 80420 800E6F70 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 80424 800E6F74 A420CD00 */ sh $zero, %lo(D_8010CD00)($at)
|
||||
/* 80428 800E6F78 104000BC */ beqz $v0, .L800E726C_8071C
|
||||
/* 8042C 800E6F7C 00000000 */ nop
|
||||
/* 80430 800E6F80 08039C72 */ j .L800E71C8
|
||||
/* 80434 800E6F84 00000000 */ nop
|
||||
.L800E6F88:
|
||||
/* 80438 800E6F88 3C038011 */ lui $v1, %hi(D_8010CCFA)
|
||||
/* 8043C 800E6F8C 2463CCFA */ addiu $v1, $v1, %lo(D_8010CCFA)
|
||||
/* 80440 800E6F90 94620000 */ lhu $v0, ($v1)
|
||||
/* 80444 800E6F94 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 80448 800E6F98 A4620000 */ sh $v0, ($v1)
|
||||
/* 8044C 800E6F9C 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 80450 800E6FA0 144000B2 */ bnez $v0, .L800E726C_8071C
|
||||
/* 80454 800E6FA4 24040002 */ addiu $a0, $zero, 2
|
||||
/* 80458 800E6FA8 3C02800A */ lui $v0, %hi(gOverrideFlags)
|
||||
/* 8045C 800E6FAC 2442A650 */ addiu $v0, $v0, %lo(gOverrideFlags)
|
||||
/* 80460 800E6FB0 8C430000 */ lw $v1, ($v0)
|
||||
/* 80464 800E6FB4 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 80468 800E6FB8 A424CD00 */ sh $a0, %lo(D_8010CD00)($at)
|
||||
/* 8046C 800E6FBC 34630040 */ ori $v1, $v1, 0x40
|
||||
/* 80470 800E6FC0 08039C9B */ j .L800E726C_8071C
|
||||
/* 80474 800E6FC4 AC430000 */ sw $v1, ($v0)
|
||||
.L800E6FC8_80478:
|
||||
/* 80478 800E6FC8 3C038011 */ lui $v1, %hi(D_8010CCF8)
|
||||
/* 8047C 800E6FCC 8463CCF8 */ lh $v1, %lo(D_8010CCF8)($v1)
|
||||
/* 80480 800E6FD0 24020002 */ addiu $v0, $zero, 2
|
||||
/* 80484 800E6FD4 1462000C */ bne $v1, $v0, .L800E7008
|
||||
/* 80488 800E6FD8 00000000 */ nop
|
||||
/* 8048C 800E6FDC 0C00CD3C */ jal set_game_mode
|
||||
/* 80490 800E6FE0 2404000A */ addiu $a0, $zero, 0xa
|
||||
/* 80494 800E6FE4 0C05272D */ jal sfx_play_sound
|
||||
/* 80498 800E6FE8 240400C5 */ addiu $a0, $zero, 0xc5
|
||||
/* 8049C 800E6FEC 2402000A */ addiu $v0, $zero, 0xa
|
||||
/* 804A0 800E6FF0 3C018011 */ lui $at, %hi(D_8010CCFA)
|
||||
/* 804A4 800E6FF4 A422CCFA */ sh $v0, %lo(D_8010CCFA)($at)
|
||||
/* 804A8 800E6FF8 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 804AC 800E6FFC A422CD00 */ sh $v0, %lo(D_8010CD00)($at)
|
||||
/* 804B0 800E7000 08039C9B */ j .L800E726C_8071C
|
||||
/* 804B4 800E7004 00000000 */ nop
|
||||
.L800E7008:
|
||||
/* 804B8 800E7008 0C03D390 */ jal create_popup_menu
|
||||
/* 804BC 800E700C 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 804C0 800E7010 0C009C22 */ jal set_time_freeze_mode
|
||||
/* 804C4 800E7014 24040003 */ addiu $a0, $zero, 3
|
||||
/* 804C8 800E7018 82620000 */ lb $v0, ($s3)
|
||||
/* 804CC 800E701C 14400003 */ bnez $v0, .L800E702C
|
||||
/* 804D0 800E7020 00000000 */ nop
|
||||
/* 804D4 800E7024 0C039769 */ jal set_action_state
|
||||
/* 804D8 800E7028 0000202D */ daddu $a0, $zero, $zero
|
||||
.L800E702C:
|
||||
/* 804DC 800E702C 3C038011 */ lui $v1, %hi(D_8010CD00)
|
||||
/* 804E0 800E7030 2463CD00 */ addiu $v1, $v1, %lo(D_8010CD00)
|
||||
/* 804E4 800E7034 94620000 */ lhu $v0, ($v1)
|
||||
/* 804E8 800E7038 24420001 */ addiu $v0, $v0, 1
|
||||
/* 804EC 800E703C 08039C9B */ j .L800E726C_8071C
|
||||
/* 804F0 800E7040 A4620000 */ sh $v0, ($v1)
|
||||
.L800E7044_804F4:
|
||||
/* 804F4 800E7044 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* 804F8 800E7048 8643032C */ lh $v1, 0x32c($s2)
|
||||
/* 804FC 800E704C 10620087 */ beq $v1, $v0, .L800E726C_8071C
|
||||
/* 80500 800E7050 9644032C */ lhu $a0, 0x32c($s2)
|
||||
/* 80504 800E7054 3C018011 */ lui $at, %hi(D_8010CCFC)
|
||||
/* 80508 800E7058 A424CCFC */ sh $a0, %lo(D_8010CCFC)($at)
|
||||
/* 8050C 800E705C 10600083 */ beqz $v1, .L800E726C_8071C
|
||||
/* 80510 800E7060 00000000 */ nop
|
||||
/* 80514 800E7064 0C03C4EC */ jal hide_popup_menu
|
||||
/* 80518 800E7068 00000000 */ nop
|
||||
/* 8051C 800E706C 3C028011 */ lui $v0, %hi(D_8010CD00)
|
||||
/* 80520 800E7070 2442CD00 */ addiu $v0, $v0, %lo(D_8010CD00)
|
||||
/* 80524 800E7074 94430000 */ lhu $v1, ($v0)
|
||||
/* 80528 800E7078 2404000F */ addiu $a0, $zero, 0xf
|
||||
/* 8052C 800E707C 3C018011 */ lui $at, %hi(D_8010CCFA)
|
||||
/* 80530 800E7080 A424CCFA */ sh $a0, %lo(D_8010CCFA)($at)
|
||||
/* 80534 800E7084 24630001 */ addiu $v1, $v1, 1
|
||||
/* 80538 800E7088 08039C9B */ j .L800E726C_8071C
|
||||
/* 8053C 800E708C A4430000 */ sh $v1, ($v0)
|
||||
.L800E7090_80540:
|
||||
/* 80540 800E7090 3C038011 */ lui $v1, %hi(D_8010CCFA)
|
||||
/* 80544 800E7094 2463CCFA */ addiu $v1, $v1, %lo(D_8010CCFA)
|
||||
/* 80548 800E7098 94620000 */ lhu $v0, ($v1)
|
||||
/* 8054C 800E709C 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 80550 800E70A0 A4620000 */ sh $v0, ($v1)
|
||||
/* 80554 800E70A4 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 80558 800E70A8 14400070 */ bnez $v0, .L800E726C_8071C
|
||||
/* 8055C 800E70AC 00000000 */ nop
|
||||
/* 80560 800E70B0 0C03C54E */ jal destroy_popup_menu
|
||||
/* 80564 800E70B4 00000000 */ nop
|
||||
/* 80568 800E70B8 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 8056C 800E70BC A420CD00 */ sh $zero, %lo(D_8010CD00)($at)
|
||||
/* 80570 800E70C0 0C038069 */ jal enable_player_input
|
||||
/* 80574 800E70C4 00000000 */ nop
|
||||
/* 80578 800E70C8 0C03BD80 */ jal partner_enable_input
|
||||
/* 8057C 800E70CC 00000000 */ nop
|
||||
/* 80580 800E70D0 3C108011 */ lui $s0, %hi(D_8010CCFC)
|
||||
/* 80584 800E70D4 2610CCFC */ addiu $s0, $s0, %lo(D_8010CCFC)
|
||||
/* 80588 800E70D8 86030000 */ lh $v1, ($s0)
|
||||
/* 8058C 800E70DC 2402FFFE */ addiu $v0, $zero, -2
|
||||
/* 80590 800E70E0 1462001B */ bne $v1, $v0, .L800E7150
|
||||
/* 80594 800E70E4 00000000 */ nop
|
||||
/* 80598 800E70E8 0C039ADE */ jal setup_partner_popup
|
||||
/* 8059C 800E70EC 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 805A0 800E70F0 10400005 */ beqz $v0, .L800E7108
|
||||
/* 805A4 800E70F4 240200FF */ addiu $v0, $zero, 0xff
|
||||
/* 805A8 800E70F8 0C039B11 */ jal setup_item_popup
|
||||
/* 805AC 800E70FC 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 805B0 800E7100 14400003 */ bnez $v0, .L800E7110
|
||||
/* 805B4 800E7104 240200FF */ addiu $v0, $zero, 0xff
|
||||
.L800E7108:
|
||||
/* 805B8 800E7108 08039C54 */ j .L800E7150
|
||||
/* 805BC 800E710C A6020000 */ sh $v0, ($s0)
|
||||
.L800E7110:
|
||||
/* 805C0 800E7110 3C048011 */ lui $a0, %hi(D_8010CCF8)
|
||||
/* 805C4 800E7114 2484CCF8 */ addiu $a0, $a0, %lo(D_8010CCF8)
|
||||
/* 805C8 800E7118 84830000 */ lh $v1, ($a0)
|
||||
/* 805CC 800E711C 10600005 */ beqz $v1, .L800E7134
|
||||
/* 805D0 800E7120 24020001 */ addiu $v0, $zero, 1
|
||||
/* 805D4 800E7124 10620006 */ beq $v1, $v0, .L800E7140
|
||||
/* 805D8 800E7128 24020001 */ addiu $v0, $zero, 1
|
||||
/* 805DC 800E712C 08039C51 */ j .L800E7144
|
||||
/* 805E0 800E7130 00000000 */ nop
|
||||
.L800E7134:
|
||||
/* 805E4 800E7134 24020001 */ addiu $v0, $zero, 1
|
||||
/* 805E8 800E7138 08039C51 */ j .L800E7144
|
||||
/* 805EC 800E713C A4820000 */ sh $v0, ($a0)
|
||||
.L800E7140:
|
||||
/* 805F0 800E7140 A4800000 */ sh $zero, ($a0)
|
||||
.L800E7144:
|
||||
/* 805F4 800E7144 3C018011 */ lui $at, %hi(D_8010C9C0)
|
||||
/* 805F8 800E7148 08039B87 */ j .L800E6E1C
|
||||
/* 805FC 800E714C A422C9C0 */ sh $v0, %lo(D_8010C9C0)($at)
|
||||
.L800E7150:
|
||||
/* 80600 800E7150 3C038011 */ lui $v1, %hi(D_8010CCFC)
|
||||
/* 80604 800E7154 8463CCFC */ lh $v1, %lo(D_8010CCFC)($v1)
|
||||
/* 80608 800E7158 240200FF */ addiu $v0, $zero, 0xff
|
||||
/* 8060C 800E715C 1062001A */ beq $v1, $v0, .L800E71C8
|
||||
/* 80610 800E7160 00000000 */ nop
|
||||
/* 80614 800E7164 3C048011 */ lui $a0, %hi(D_8010CCF8)
|
||||
/* 80618 800E7168 8484CCF8 */ lh $a0, %lo(D_8010CCF8)($a0)
|
||||
/* 8061C 800E716C 10800005 */ beqz $a0, .L800E7184
|
||||
/* 80620 800E7170 24020001 */ addiu $v0, $zero, 1
|
||||
/* 80624 800E7174 1082000A */ beq $a0, $v0, .L800E71A0
|
||||
/* 80628 800E7178 2462FFFF */ addiu $v0, $v1, -1
|
||||
/* 8062C 800E717C 08039C72 */ j .L800E71C8
|
||||
/* 80630 800E7180 00000000 */ nop
|
||||
.L800E7184:
|
||||
/* 80634 800E7184 2462FFFF */ addiu $v0, $v1, -1
|
||||
/* 80638 800E7188 00021080 */ sll $v0, $v0, 2
|
||||
/* 8063C 800E718C 02421021 */ addu $v0, $s2, $v0
|
||||
/* 80640 800E7190 0C03AC5A */ jal switch_to_partner
|
||||
/* 80644 800E7194 8C440108 */ lw $a0, 0x108($v0)
|
||||
/* 80648 800E7198 08039C72 */ j .L800E71C8
|
||||
/* 8064C 800E719C 00000000 */ nop
|
||||
.L800E71A0:
|
||||
/* 80650 800E71A0 00021080 */ sll $v0, $v0, 2
|
||||
/* 80654 800E71A4 02421021 */ addu $v0, $s2, $v0
|
||||
/* 80658 800E71A8 0C03A900 */ jal use_consumable
|
||||
/* 8065C 800E71AC 8C440108 */ lw $a0, 0x108($v0)
|
||||
/* 80660 800E71B0 3C04800A */ lui $a0, %hi(gOverrideFlags)
|
||||
/* 80664 800E71B4 2484A650 */ addiu $a0, $a0, %lo(gOverrideFlags)
|
||||
/* 80668 800E71B8 8C820000 */ lw $v0, ($a0)
|
||||
/* 8066C 800E71BC 3C030020 */ lui $v1, 0x20
|
||||
/* 80670 800E71C0 00431025 */ or $v0, $v0, $v1
|
||||
/* 80674 800E71C4 AC820000 */ sw $v0, ($a0)
|
||||
.L800E71C8:
|
||||
/* 80678 800E71C8 0C039A18 */ jal func_800E6860
|
||||
/* 8067C 800E71CC 00000000 */ nop
|
||||
/* 80680 800E71D0 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 80684 800E71D4 2403FFDF */ addiu $v1, $zero, -0x21
|
||||
/* 80688 800E71D8 8E820000 */ lw $v0, ($s4)
|
||||
/* 8068C 800E71DC 3C05800A */ lui $a1, %hi(gOverrideFlags)
|
||||
/* 80690 800E71E0 24A5A650 */ addiu $a1, $a1, %lo(gOverrideFlags)
|
||||
/* 80694 800E71E4 00431024 */ and $v0, $v0, $v1
|
||||
/* 80698 800E71E8 AE820000 */ sw $v0, ($s4)
|
||||
/* 8069C 800E71EC 8CA20000 */ lw $v0, ($a1)
|
||||
/* 806A0 800E71F0 2403FFBF */ addiu $v1, $zero, -0x41
|
||||
/* 806A4 800E71F4 00431024 */ and $v0, $v0, $v1
|
||||
/* 806A8 800E71F8 0C009C22 */ jal set_time_freeze_mode
|
||||
/* 806AC 800E71FC ACA20000 */ sw $v0, ($a1)
|
||||
/* 806B0 800E7200 08039C9B */ j .L800E726C_8071C
|
||||
/* 806B4 800E7204 00000000 */ nop
|
||||
.L800E7208_806B8:
|
||||
/* 806B8 800E7208 3C038011 */ lui $v1, %hi(D_8010CCFA)
|
||||
/* 806BC 800E720C 2463CCFA */ addiu $v1, $v1, %lo(D_8010CCFA)
|
||||
/* 806C0 800E7210 94620000 */ lhu $v0, ($v1)
|
||||
/* 806C4 800E7214 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 806C8 800E7218 A4620000 */ sh $v0, ($v1)
|
||||
/* 806CC 800E721C 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 806D0 800E7220 14400012 */ bnez $v0, .L800E726C_8071C
|
||||
/* 806D4 800E7224 00000000 */ nop
|
||||
/* 806D8 800E7228 0C039A18 */ jal func_800E6860
|
||||
/* 806DC 800E722C 00000000 */ nop
|
||||
/* 806E0 800E7230 2403FFDF */ addiu $v1, $zero, -0x21
|
||||
/* 806E4 800E7234 8E820000 */ lw $v0, ($s4)
|
||||
/* 806E8 800E7238 3C04800A */ lui $a0, %hi(gOverrideFlags)
|
||||
/* 806EC 800E723C 2484A650 */ addiu $a0, $a0, %lo(gOverrideFlags)
|
||||
/* 806F0 800E7240 3C018011 */ lui $at, %hi(D_8010CD00)
|
||||
/* 806F4 800E7244 A420CD00 */ sh $zero, %lo(D_8010CD00)($at)
|
||||
/* 806F8 800E7248 00431024 */ and $v0, $v0, $v1
|
||||
/* 806FC 800E724C AE820000 */ sw $v0, ($s4)
|
||||
/* 80700 800E7250 8C820000 */ lw $v0, ($a0)
|
||||
/* 80704 800E7254 2403FFBF */ addiu $v1, $zero, -0x41
|
||||
/* 80708 800E7258 00431024 */ and $v0, $v0, $v1
|
||||
/* 8070C 800E725C 0C038069 */ jal enable_player_input
|
||||
/* 80710 800E7260 AC820000 */ sw $v0, ($a0)
|
||||
/* 80714 800E7264 0C03BD80 */ jal partner_enable_input
|
||||
/* 80718 800E7268 00000000 */ nop
|
||||
.L800E726C_8071C:
|
||||
/* 8071C 800E726C 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 80720 800E7270 8FB40020 */ lw $s4, 0x20($sp)
|
||||
/* 80724 800E7274 8FB3001C */ lw $s3, 0x1c($sp)
|
||||
/* 80728 800E7278 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* 8072C 800E727C 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 80730 800E7280 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 80734 800E7284 03E00008 */ jr $ra
|
||||
/* 80738 800E7288 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,135 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_8003DA38
|
||||
/* 18E38 8003DA38 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 18E3C 8003DA3C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 18E40 8003DA40 24020002 */ addiu $v0, $zero, 2
|
||||
/* 18E44 8003DA44 AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* 18E48 8003DA48 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 18E4C 8003DA4C F7B80038 */ sdc1 $f24, 0x38($sp)
|
||||
/* 18E50 8003DA50 F7B60030 */ sdc1 $f22, 0x30($sp)
|
||||
/* 18E54 8003DA54 F7B40028 */ sdc1 $f20, 0x28($sp)
|
||||
/* 18E58 8003DA58 14A20019 */ bne $a1, $v0, .L8003DAC0
|
||||
/* 18E5C 8003DA5C 0080802D */ daddu $s0, $a0, $zero
|
||||
/* 18E60 8003DA60 3C118007 */ lui $s1, %hi(D_80077C1E)
|
||||
/* 18E64 8003DA64 26317C1E */ addiu $s1, $s1, %lo(D_80077C1E)
|
||||
/* 18E68 8003DA68 86230000 */ lh $v1, ($s1)
|
||||
/* 18E6C 8003DA6C 24020005 */ addiu $v0, $zero, 5
|
||||
/* 18E70 8003DA70 14620013 */ bne $v1, $v0, .L8003DAC0
|
||||
/* 18E74 8003DA74 00000000 */ nop
|
||||
/* 18E78 8003DA78 C60C0038 */ lwc1 $f12, 0x38($s0)
|
||||
/* 18E7C 8003DA7C 8E060040 */ lw $a2, 0x40($s0)
|
||||
/* 18E80 8003DA80 C600003C */ lwc1 $f0, 0x3c($s0)
|
||||
/* 18E84 8003DA84 3C014160 */ lui $at, 0x4160
|
||||
/* 18E88 8003DA88 44817000 */ mtc1 $at, $f14
|
||||
/* 18E8C 8003DA8C 3C108007 */ lui $s0, %hi(D_80077C18)
|
||||
/* 18E90 8003DA90 26107C18 */ addiu $s0, $s0, %lo(D_80077C18)
|
||||
/* 18E94 8003DA94 8E070000 */ lw $a3, ($s0)
|
||||
/* 18E98 8003DA98 0C01BEE4 */ jal fx_flower_splash
|
||||
/* 18E9C 8003DA9C 460E0380 */ add.s $f14, $f0, $f14
|
||||
/* 18EA0 8003DAA0 C6000000 */ lwc1 $f0, ($s0)
|
||||
/* 18EA4 8003DAA4 3C01420C */ lui $at, 0x420c
|
||||
/* 18EA8 8003DAA8 44816000 */ mtc1 $at, $f12
|
||||
/* 18EAC 8003DAAC 0C00A6C9 */ jal clamp_angle
|
||||
/* 18EB0 8003DAB0 460C0300 */ add.s $f12, $f0, $f12
|
||||
/* 18EB4 8003DAB4 E6000000 */ swc1 $f0, ($s0)
|
||||
/* 18EB8 8003DAB8 0800F706 */ j .L8003DC18
|
||||
/* 18EBC 8003DABC A6200000 */ sh $zero, ($s1)
|
||||
.L8003DAC0:
|
||||
/* 18EC0 8003DAC0 3C038007 */ lui $v1, %hi(D_80077C1E)
|
||||
/* 18EC4 8003DAC4 24637C1E */ addiu $v1, $v1, %lo(D_80077C1E)
|
||||
/* 18EC8 8003DAC8 94620000 */ lhu $v0, ($v1)
|
||||
/* 18ECC 8003DACC 24420001 */ addiu $v0, $v0, 1
|
||||
/* 18ED0 8003DAD0 A4620000 */ sh $v0, ($v1)
|
||||
/* 18ED4 8003DAD4 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 18ED8 8003DAD8 00021403 */ sra $v0, $v0, 0x10
|
||||
/* 18EDC 8003DADC 28420006 */ slti $v0, $v0, 6
|
||||
/* 18EE0 8003DAE0 14400002 */ bnez $v0, .L8003DAEC
|
||||
/* 18EE4 8003DAE4 24020005 */ addiu $v0, $zero, 5
|
||||
/* 18EE8 8003DAE8 A4620000 */ sh $v0, ($v1)
|
||||
.L8003DAEC:
|
||||
/* 18EEC 8003DAEC 3C048007 */ lui $a0, %hi(D_80077C1C)
|
||||
/* 18EF0 8003DAF0 24847C1C */ addiu $a0, $a0, %lo(D_80077C1C)
|
||||
/* 18EF4 8003DAF4 94820000 */ lhu $v0, ($a0)
|
||||
/* 18EF8 8003DAF8 24430001 */ addiu $v1, $v0, 1
|
||||
/* 18EFC 8003DAFC 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 18F00 8003DB00 18400045 */ blez $v0, .L8003DC18
|
||||
/* 18F04 8003DB04 A4830000 */ sh $v1, ($a0)
|
||||
/* 18F08 8003DB08 C60C000C */ lwc1 $f12, 0xc($s0)
|
||||
/* 18F0C 8003DB0C A4800000 */ sh $zero, ($a0)
|
||||
/* 18F10 8003DB10 0C00A6C9 */ jal clamp_angle
|
||||
/* 18F14 8003DB14 46006307 */ neg.s $f12, $f12
|
||||
/* 18F18 8003DB18 3C0140C9 */ lui $at, 0x40c9
|
||||
/* 18F1C 8003DB1C 34210FD0 */ ori $at, $at, 0xfd0
|
||||
/* 18F20 8003DB20 44811000 */ mtc1 $at, $f2
|
||||
/* 18F24 8003DB24 00000000 */ nop
|
||||
/* 18F28 8003DB28 46020502 */ mul.s $f20, $f0, $f2
|
||||
/* 18F2C 8003DB2C 00000000 */ nop
|
||||
/* 18F30 8003DB30 3C0143B4 */ lui $at, 0x43b4
|
||||
/* 18F34 8003DB34 44810000 */ mtc1 $at, $f0
|
||||
/* 18F38 8003DB38 00000000 */ nop
|
||||
/* 18F3C 8003DB3C 4600A503 */ div.s $f20, $f20, $f0
|
||||
/* 18F40 8003DB40 0C00A85B */ jal sin_rad
|
||||
/* 18F44 8003DB44 4600A306 */ mov.s $f12, $f20
|
||||
/* 18F48 8003DB48 4600A306 */ mov.s $f12, $f20
|
||||
/* 18F4C 8003DB4C 0C00A874 */ jal cos_rad
|
||||
/* 18F50 8003DB50 46000506 */ mov.s $f20, $f0
|
||||
/* 18F54 8003DB54 860200A6 */ lh $v0, 0xa6($s0)
|
||||
/* 18F58 8003DB58 44821000 */ mtc1 $v0, $f2
|
||||
/* 18F5C 8003DB5C 00000000 */ nop
|
||||
/* 18F60 8003DB60 468010A0 */ cvt.s.w $f2, $f2
|
||||
/* 18F64 8003DB64 46141502 */ mul.s $f20, $f2, $f20
|
||||
/* 18F68 8003DB68 00000000 */ nop
|
||||
/* 18F6C 8003DB6C 46001082 */ mul.s $f2, $f2, $f0
|
||||
/* 18F70 8003DB70 00000000 */ nop
|
||||
/* 18F74 8003DB74 3C01BECC */ lui $at, 0xbecc
|
||||
/* 18F78 8003DB78 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* 18F7C 8003DB7C 44810000 */ mtc1 $at, $f0
|
||||
/* 18F80 8003DB80 00000000 */ nop
|
||||
/* 18F84 8003DB84 4600A502 */ mul.s $f20, $f20, $f0
|
||||
/* 18F88 8003DB88 00000000 */ nop
|
||||
/* 18F8C 8003DB8C 46001082 */ mul.s $f2, $f2, $f0
|
||||
/* 18F90 8003DB90 00000000 */ nop
|
||||
/* 18F94 8003DB94 C6000038 */ lwc1 $f0, 0x38($s0)
|
||||
/* 18F98 8003DB98 46140600 */ add.s $f24, $f0, $f20
|
||||
/* 18F9C 8003DB9C C6000040 */ lwc1 $f0, 0x40($s0)
|
||||
/* 18FA0 8003DBA0 C604003C */ lwc1 $f4, 0x3c($s0)
|
||||
/* 18FA4 8003DBA4 46020580 */ add.s $f22, $f0, $f2
|
||||
/* 18FA8 8003DBA8 3C014178 */ lui $at, 0x4178
|
||||
/* 18FAC 8003DBAC 44810000 */ mtc1 $at, $f0
|
||||
/* 18FB0 8003DBB0 2404000A */ addiu $a0, $zero, 0xa
|
||||
/* 18FB4 8003DBB4 0C00A67F */ jal rand_int
|
||||
/* 18FB8 8003DBB8 46002500 */ add.s $f20, $f4, $f0
|
||||
/* 18FBC 8003DBBC 24040001 */ addiu $a0, $zero, 1
|
||||
/* 18FC0 8003DBC0 44821000 */ mtc1 $v0, $f2
|
||||
/* 18FC4 8003DBC4 00000000 */ nop
|
||||
/* 18FC8 8003DBC8 468010A0 */ cvt.s.w $f2, $f2
|
||||
/* 18FCC 8003DBCC C600000C */ lwc1 $f0, 0xc($s0)
|
||||
/* 18FD0 8003DBD0 3C108007 */ lui $s0, %hi(D_80077C20)
|
||||
/* 18FD4 8003DBD4 26107C20 */ addiu $s0, $s0, %lo(D_80077C20)
|
||||
/* 18FD8 8003DBD8 4405C000 */ mfc1 $a1, $f24
|
||||
/* 18FDC 8003DBDC 4407B000 */ mfc1 $a3, $f22
|
||||
/* 18FE0 8003DBE0 46000007 */ neg.s $f0, $f0
|
||||
/* 18FE4 8003DBE4 46020000 */ add.s $f0, $f0, $f2
|
||||
/* 18FE8 8003DBE8 3C0140A0 */ lui $at, 0x40a0
|
||||
/* 18FEC 8003DBEC 44811000 */ mtc1 $at, $f2
|
||||
/* 18FF0 8003DBF0 4406A000 */ mfc1 $a2, $f20
|
||||
/* 18FF4 8003DBF4 46020001 */ sub.s $f0, $f0, $f2
|
||||
/* 18FF8 8003DBF8 C6020000 */ lwc1 $f2, ($s0)
|
||||
/* 18FFC 8003DBFC 468010A0 */ cvt.s.w $f2, $f2
|
||||
/* 19000 8003DC00 E7A20014 */ swc1 $f2, 0x14($sp)
|
||||
/* 19004 8003DC04 0C01BEFC */ jal fx_flower_trail
|
||||
/* 19008 8003DC08 E7A00010 */ swc1 $f0, 0x10($sp)
|
||||
/* 1900C 8003DC0C 8E020000 */ lw $v0, ($s0)
|
||||
/* 19010 8003DC10 2C420001 */ sltiu $v0, $v0, 1
|
||||
/* 19014 8003DC14 AE020000 */ sw $v0, ($s0)
|
||||
.L8003DC18:
|
||||
/* 19018 8003DC18 8FBF0020 */ lw $ra, 0x20($sp)
|
||||
/* 1901C 8003DC1C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 19020 8003DC20 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 19024 8003DC24 D7B80038 */ ldc1 $f24, 0x38($sp)
|
||||
/* 19028 8003DC28 D7B60030 */ ldc1 $f22, 0x30($sp)
|
||||
/* 1902C 8003DC2C D7B40028 */ ldc1 $f20, 0x28($sp)
|
||||
/* 19030 8003DC30 03E00008 */ jr $ra
|
||||
/* 19034 8003DC34 27BD0040 */ addiu $sp, $sp, 0x40
|
Loading…
Reference in New Issue
Block a user