From a497f33bda7686e3aa948898000ecd3a861c5704 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Tue, 23 Nov 2021 01:20:30 +0000 Subject: [PATCH] z_message_PAL, message_data_static and surrounding doc (#996) * Initial progress on z_message_PAL, very messy * Fix merge * Some more progress * Fix merge * More z_message_PAL * Small progress * More small progress * message_data_static files OK * Prepare z_message_tables * Matched another function, small updates * Attempt to use asm-processor static-symbols branch * Refactor text id declarations * Begin large text codes parser function * Fix merge * Refactor done * Build OK, add color and highscore names * Remove encoded text headers and automatically encode during build * Fix kanfont * Various cleanups * DISP macros * Another match aside data * Further progress * Small improvements * Deduplicate magic values for text control codes, small improvements * Tiny progress * Minor cleanups * Clean up z_message_PAL comment * Progress on large functions * Further progress on large functions * Changes to mkldscript to link .data in the .rodata section * data OK * Few improvements * Use gDPLoadTextureBlock macros where appropriate * rm z_message_tables, progress on large functions * 2 more matches * Improvements * Small progress * More progress on big function * progress * match func_80107980 * match Message_Update * match func_8010BED8 * done * Progress on remaining large functions * Small progress on largest function * Another match, extract text and move to assets, improve text build system * Small nonmatchings improvements * docs wip * Largest function maybe equivalent * Fix merge * Document do_action values, largest function is almost instruction-matching * Rename NAVI do_action to NONE, as that appears to be how that value is used in practice * Fix merge * one match * Last function is instruction-matching * Fix * Improvements thanks to engineer124 * Stack matched thanks to petrie911, now just a/v/low t regalloc issues, some cleanup * More variables labeled, use text state enum everywhere * More labels and names * Fix * Actor_IsTalking -> Actor_TalkRequested * Match func_8010C39C and remove unused asm * More docs * Mostly ocarina related docs * All msgModes named * Fix assetclean * Cleanup * Extraction fixes and headers * Suggestions * Review suggestions * Change text extraction again, only extract if the headers do not already exist * Fix * Use ast for charmap, fix assetclean for real this time * Review suggestions * BGM ids and ran formatter * Review comments * rename include_readonly to include_data_with_rodata * Remove leading 0s in number directives * Review suggestions for message_data_static * textbox pos enum comments, rename several enum names from Message to TextBox Co-authored-by: Thar0 Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com> Co-authored-by: petrie911 Co-authored-by: Roman971 --- Makefile | 16 +- .../code/z_message_PAL/func_801069B0.s | 64 - .../code/z_message_PAL/func_80106AA8.s | 76 - .../code/z_message_PAL/func_80106BC8.s | 53 - .../code/z_message_PAL/func_80106C88.s | 20 - .../code/z_message_PAL/func_80106CCC.s | 32 - .../code/z_message_PAL/func_80106D40.s | 130 - .../code/z_message_PAL/func_80106F1C.s | 205 - .../code/z_message_PAL/func_80107244.s | 136 - .../code/z_message_PAL/func_80107448.s | 152 - .../code/z_message_PAL/func_80107628.s | 54 - .../code/z_message_PAL/func_801076CC.s | 204 - .../code/z_message_PAL/func_80107980.s | 504 --- .../code/z_message_PAL/func_801080B4.s | 214 - .../code/z_message_PAL/func_801083F8.s | 241 -- .../code/z_message_PAL/func_801086B0.s | 1338 ------- .../code/z_message_PAL/func_80109968.s | 142 - .../code/z_message_PAL/func_80109B3C.s | 1589 -------- .../code/z_message_PAL/func_8010B0C0.s | 434 -- .../code/z_message_PAL/func_8010B680.s | 57 - .../code/z_message_PAL/func_8010B720.s | 82 - .../code/z_message_PAL/func_8010B820.s | 407 -- .../code/z_message_PAL/func_8010BD58.s | 14 - .../code/z_message_PAL/func_8010BD88.s | 15 - .../code/z_message_PAL/func_8010BDBC.s | 86 - .../code/z_message_PAL/func_8010BED8.s | 296 -- .../code/z_message_PAL/func_8010C358.s | 19 - .../code/z_message_PAL/func_8010C39C.s | 3565 ----------------- .../code/z_message_PAL/func_8010F2CC.s | 128 - .../code/z_message_PAL/func_8010F494.s | 86 - .../code/z_message_PAL/func_8010F58C.s | 102 - .../code/z_message_PAL/func_8010F6F0.s | 980 ----- .../code/z_message_PAL/func_8011040C.s | 19 - .../actors/ovl_Boss_Ganon/func_808D7918.s | 24 +- .../actors/ovl_Boss_Ganon/func_808D933C.s | 20 +- assets/.gitignore | 1 + assets/text/charmap.txt | 50 + assets/text/fra_message_data_static.c | 8 + assets/text/ger_message_data_static.c | 8 + assets/text/nes_message_data_static.c | 12 + assets/text/staff_message_data_static.c | 8 + assets/xml/code/fbdemo_circle.xml | 2 +- assets/xml/code/fbdemo_triforce.xml | 2 +- assets/xml/code/fbdemo_wipe1.xml | 2 +- assets/xml/overlays/ovl_En_Sth.xml | 2 +- data/z_message_PAL.bss.s | 52 - data/z_message_PAL.rodata.s | 242 -- extract_assets.py | 20 +- include/functions.h | 72 +- include/message_data_fmt.h | 178 + include/message_data_static.h | 55 + include/regs.h | 39 + include/segment_symbols.h | 6 + include/variables.h | 2458 +----------- include/z64.h | 326 +- include/z64audio.h | 13 +- include/z64cutscene.h | 30 - include/z64save.h | 2 +- spec | 16 +- src/code/audio_load.c | 6 +- src/code/code_800EC960.c | 427 +- src/code/code_800F9280.c | 1 - src/code/db_camera.c | 35 +- src/code/fault.c | 36 +- src/code/ucode_disas.c | 61 +- src/code/z_actor.c | 56 +- src/code/z_camera.c | 12 +- src/code/z_construct.c | 115 +- src/code/z_debug.c | 22 +- src/code/z_demo.c | 25 +- src/code/z_en_a_keep.c | 4 +- src/code/z_fbdemo_wipe1.c | 4 +- src/code/z_game_over.c | 34 +- src/code/z_kaleido_setup.c | 2 +- src/code/z_kanfont.c | 46 +- src/code/z_kankyo.c | 4 +- src/code/z_map_mark.c | 8 +- src/code/z_message_PAL.c | 3305 ++++++++++++++- src/code/z_onepointdemo.c | 4 +- src/code/z_parameter.c | 127 +- src/code/z_play.c | 10 +- src/code/z_player_lib.c | 2 +- src/code/z_scene.c | 2 +- src/code/z_sram.c | 10 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 3 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 3 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 3 +- .../ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c | 20 +- .../ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c | 2 +- src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c | 2 +- .../actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c | 2 +- .../ovl_Bg_Mizu_Water/z_bg_mizu_water.c | 2 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 3 +- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 24 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 2 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 4 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 14 +- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 4 +- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 6 +- .../actors/ovl_Door_Warp1/z_door_warp1.c | 4 +- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 2 +- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 4 +- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 10 +- .../ovl_En_Attack_Niw/z_en_attack_niw.c | 4 +- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 74 +- .../ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c | 12 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 10 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 20 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 26 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 12 +- .../z_en_daiku_kakariko.c | 6 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 64 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 22 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 10 +- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 8 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 4 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 32 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 44 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 34 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 94 +- src/overlays/actors/ovl_En_Fr/z_en_fr.h | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 36 +- .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 4 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 16 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 63 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 12 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 10 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 2 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 24 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 52 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 111 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 30 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 8 +- .../actors/ovl_En_Heishi1/z_en_heishi1.c | 10 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 121 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 7 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 20 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 6 +- .../z_en_horse_game_check.c | 10 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 20 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 4 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 28 +- src/overlays/actors/ovl_En_In/z_en_in.c | 84 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 14 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 69 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 4 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 103 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 11 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 30 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 36 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 45 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 32 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 32 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 47 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 26 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 28 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 18 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 18 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 22 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 12 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 8 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 61 +- .../z_en_okarina_effect.c | 2 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 107 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.h | 6 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 200 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 118 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 10 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 14 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 18 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 6 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 20 +- src/overlays/actors/ovl_En_Ru2/z_en_ru2.c | 16 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 29 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 10 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 155 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 4 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 12 +- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 28 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 4 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 120 +- .../ovl_En_Takara_Man/z_en_takara_man.c | 32 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 22 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 38 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 60 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 120 +- .../ovl_En_Wonder_Talk2/z_en_wonder_talk2.c | 20 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 4 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 3 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 60 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 20 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 214 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 28 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 143 +- .../actors/ovl_Item_Ocarina/z_item_ocarina.c | 2 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 2 +- .../actors/ovl_Magic_Fire/z_magic_fire.c | 10 +- .../actors/ovl_Magic_Wind/z_magic_wind.c | 3 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 2 +- .../ovl_Obj_Timeblock/z_obj_timeblock.c | 10 +- .../ovl_Obj_Warp2block/z_obj_warp2block.c | 8 +- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 5 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 8 +- .../ovl_kaleido_scope/z_kaleido_collect.c | 73 +- .../ovl_kaleido_scope/z_kaleido_scope_PAL.c | 56 +- .../actors/ovl_player_actor/z_player.c | 107 +- .../ovl_file_choose/z_file_choose.c | 16 +- .../ovl_file_choose/z_file_nameset_PAL.c | 4 +- tools/csdis.py | 75 +- tools/mkldscript.c | 15 +- tools/msgdis.py | 406 ++ tools/msgenc.py | 45 + undefined_syms.txt | 5 - 216 files changed, 7052 insertions(+), 16801 deletions(-) delete mode 100644 asm/non_matchings/code/z_message_PAL/func_801069B0.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106AA8.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106BC8.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106C88.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106CCC.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106D40.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80106F1C.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80107244.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80107448.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80107628.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_801076CC.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80107980.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_801080B4.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_801083F8.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_801086B0.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80109968.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_80109B3C.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010B0C0.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010B680.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010B720.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010B820.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010BD58.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010BD88.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010BDBC.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010BED8.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010C358.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010C39C.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010F2CC.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010F494.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010F58C.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8010F6F0.s delete mode 100644 asm/non_matchings/code/z_message_PAL/func_8011040C.s create mode 100644 assets/text/charmap.txt create mode 100644 assets/text/fra_message_data_static.c create mode 100644 assets/text/ger_message_data_static.c create mode 100644 assets/text/nes_message_data_static.c create mode 100644 assets/text/staff_message_data_static.c delete mode 100644 data/z_message_PAL.bss.s delete mode 100644 data/z_message_PAL.rodata.s create mode 100644 include/message_data_fmt.h create mode 100644 include/message_data_static.h create mode 100644 tools/msgdis.py create mode 100644 tools/msgenc.py diff --git a/Makefile b/Makefile index 2b854b2e66..4b097cc1a0 100644 --- a/Makefile +++ b/Makefile @@ -99,11 +99,12 @@ SPEC := spec SRC_DIRS := $(shell find src -type d) ASM_DIRS := $(shell find asm -type d -not -path "asm/non_matchings*") $(shell find data -type d) -ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*") +ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*" -not -path "assets/text") ASSET_FILES_XML := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.xml)) ASSET_FILES_BIN := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.bin)) ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_XML:.xml=.c),$f) \ - $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),build/$f) + $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),build/$f) \ + $(foreach f,$(wildcard assets/text/*.c),build/$(f:.c=.o)) # source files C_FILES := $(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS),$(wildcard $(dir)/*.c)) @@ -122,7 +123,7 @@ TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),build/$f) \ $(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),build/$f) \ # create build directories -$(shell mkdir -p build/baserom $(foreach dir,$(SRC_DIRS) $(ASM_DIRS) $(ASSET_BIN_DIRS),build/$(dir))) +$(shell mkdir -p build/baserom build/assets/text $(foreach dir,$(SRC_DIRS) $(ASM_DIRS) $(ASSET_BIN_DIRS),build/$(dir))) build/src/libultra_boot_O1/%.o: OPTFLAGS := -O1 build/src/libultra_boot_O2/%.o: OPTFLAGS := -O2 @@ -185,6 +186,7 @@ clean: assetclean: $(RM) -r $(ASSET_BIN_DIRS) + $(RM) -r assets/text/*.h $(RM) -r build/assets $(RM) -r .extracted-assets.json @@ -215,6 +217,14 @@ build/asm/%.o: asm/%.s build/data/%.o: data/%.s iconv --from UTF-8 --to EUC-JP $< | $(AS) $(ASFLAGS) -o $@ +build/assets/text/%.enc.h: assets/text/%.h assets/text/charmap.txt + python3 tools/msgenc.py assets/text/charmap.txt $< $@ + +build/assets/text/fra_message_data_static.o: build/assets/text/message_data.enc.h +build/assets/text/ger_message_data_static.o: build/assets/text/message_data.enc.h +build/assets/text/nes_message_data_static.o: build/assets/text/message_data.enc.h +build/assets/text/staff_message_data_static.o: build/assets/text/message_data_staff.enc.h + build/assets/%.o: assets/%.c $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< $(OBJCOPY) -O binary $@ $@.bin diff --git a/asm/non_matchings/code/z_message_PAL/func_801069B0.s b/asm/non_matchings/code/z_message_PAL/func_801069B0.s deleted file mode 100644 index 87d084d753..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_801069B0.s +++ /dev/null @@ -1,64 +0,0 @@ -glabel func_801069B0 -/* B7DB50 801069B0 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* B7DB54 801069B4 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* B7DB58 801069B8 8CAF0000 */ lw $t7, ($a1) -/* B7DB5C 801069BC 240E00BD */ li $t6, 189 -/* B7DB60 801069C0 241800B8 */ li $t8, 184 -/* B7DB64 801069C4 A5EE0F6E */ sh $t6, 0xf6e($t7) -/* B7DB68 801069C8 8CB90000 */ lw $t9, ($a1) -/* B7DB6C 801069CC 240800B3 */ li $t0, 179 -/* B7DB70 801069D0 240A00AE */ li $t2, 174 -/* B7DB74 801069D4 A7380F70 */ sh $t8, 0xf70($t9) -/* B7DB78 801069D8 8CA90000 */ lw $t1, ($a1) -/* B7DB7C 801069DC 240C00A9 */ li $t4, 169 -/* B7DB80 801069E0 3C038015 */ lui $v1, %hi(D_80153958) # $v1, 0x8015 -/* B7DB84 801069E4 A5280F72 */ sh $t0, 0xf72($t1) -/* B7DB88 801069E8 8CAB0000 */ lw $t3, ($a1) -/* B7DB8C 801069EC 240E00FF */ li $t6, 255 -/* B7DB90 801069F0 3C018015 */ lui $at, %hi(D_8015394C) # $at, 0x8015 -/* B7DB94 801069F4 A56A0F74 */ sh $t2, 0xf74($t3) -/* B7DB98 801069F8 8CAD0000 */ lw $t5, ($a1) -/* B7DB9C 801069FC 24633958 */ addiu $v1, %lo(D_80153958) # addiu $v1, $v1, 0x3958 -/* B7DBA0 80106A00 240F0050 */ li $t7, 80 -/* B7DBA4 80106A04 A5AC0F76 */ sh $t4, 0xf76($t5) -/* B7DBA8 80106A08 A02E394C */ sb $t6, %lo(D_8015394C)($at) -/* B7DBAC 80106A0C A4600010 */ sh $zero, 0x10($v1) -/* B7DBB0 80106A10 84620010 */ lh $v0, 0x10($v1) -/* B7DBB4 80106A14 3C018017 */ lui $at, %hi(D_801759A8) # $at, 0x8017 -/* B7DBB8 80106A18 240600FF */ li $a2, 255 -/* B7DBBC 80106A1C A462000E */ sh $v0, 0xe($v1) -/* B7DBC0 80106A20 A462000C */ sh $v0, 0xc($v1) -/* B7DBC4 80106A24 A462000A */ sh $v0, 0xa($v1) -/* B7DBC8 80106A28 A4620008 */ sh $v0, 8($v1) -/* B7DBCC 80106A2C A4620006 */ sh $v0, 6($v1) -/* B7DBD0 80106A30 A4620004 */ sh $v0, 4($v1) -/* B7DBD4 80106A34 A4620002 */ sh $v0, 2($v1) -/* B7DBD8 80106A38 A4620000 */ sh $v0, ($v1) -/* B7DBDC 80106A3C A42F59A8 */ sh $t7, %lo(D_801759A8)($at) -/* B7DBE0 80106A40 3C018017 */ lui $at, %hi(D_801759AC) # $at, 0x8017 -/* B7DBE4 80106A44 A42659AC */ sh $a2, %lo(D_801759AC)($at) -/* B7DBE8 80106A48 3C018017 */ lui $at, %hi(D_801759AA) # $at, 0x8017 -/* B7DBEC 80106A4C 24180096 */ li $t8, 150 -/* B7DBF0 80106A50 A43859AA */ sh $t8, %lo(D_801759AA)($at) -/* B7DBF4 80106A54 2404000A */ li $a0, 10 -/* B7DBF8 80106A58 3C018017 */ lui $at, %hi(D_801759AE) # $at, 0x8017 -/* B7DBFC 80106A5C A42459AE */ sh $a0, %lo(D_801759AE)($at) -/* B7DC00 80106A60 3C018017 */ lui $at, %hi(D_801759B2) # $at, 0x8017 -/* B7DC04 80106A64 A42459B2 */ sh $a0, %lo(D_801759B2)($at) -/* B7DC08 80106A68 3C018017 */ lui $at, %hi(D_801759B0) # $at, 0x8017 -/* B7DC0C 80106A6C A42459B0 */ sh $a0, %lo(D_801759B0)($at) -/* B7DC10 80106A70 3C018017 */ lui $at, %hi(D_801759B4) # $at, 0x8017 -/* B7DC14 80106A74 A42659B4 */ sh $a2, %lo(D_801759B4)($at) -/* B7DC18 80106A78 3C018017 */ lui $at, %hi(D_801759B8) # $at, 0x8017 -/* B7DC1C 80106A7C A42659B8 */ sh $a2, %lo(D_801759B8)($at) -/* B7DC20 80106A80 3C018017 */ lui $at, %hi(D_801759B6) # $at, 0x8017 -/* B7DC24 80106A84 24190032 */ li $t9, 50 -/* B7DC28 80106A88 A43959B6 */ sh $t9, %lo(D_801759B6)($at) -/* B7DC2C 80106A8C 3C018017 */ lui $at, %hi(D_801759BA) # $at, 0x8017 -/* B7DC30 80106A90 A42459BA */ sh $a0, %lo(D_801759BA)($at) -/* B7DC34 80106A94 3C018017 */ lui $at, %hi(D_801759BE) # $at, 0x8017 -/* B7DC38 80106A98 A42459BE */ sh $a0, %lo(D_801759BE)($at) -/* B7DC3C 80106A9C 3C018017 */ lui $at, %hi(D_801759BC) -/* B7DC40 80106AA0 03E00008 */ jr $ra -/* B7DC44 80106AA4 A42459BC */ sh $a0, %lo(D_801759BC)($at) - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106AA8.s b/asm/non_matchings/code/z_message_PAL/func_80106AA8.s deleted file mode 100644 index f2b95d0f84..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106AA8.s +++ /dev/null @@ -1,76 +0,0 @@ -glabel func_80106AA8 -/* B7DC48 80106AA8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B7DC4C 80106AAC 3C010001 */ lui $at, 1 -/* B7DC50 80106AB0 AFBF001C */ sw $ra, 0x1c($sp) -/* B7DC54 80106AB4 AFB00018 */ sw $s0, 0x18($sp) -/* B7DC58 80106AB8 00811021 */ addu $v0, $a0, $at -/* B7DC5C 80106ABC 904E03DC */ lbu $t6, 0x3dc($v0) -/* B7DC60 80106AC0 00240821 */ addu $at, $at, $a0 -/* B7DC64 80106AC4 00802825 */ move $a1, $a0 -/* B7DC68 80106AC8 25CF0001 */ addiu $t7, $t6, 1 -/* B7DC6C 80106ACC A02F03DC */ sb $t7, 0x3dc($at) -/* B7DC70 80106AD0 905803DC */ lbu $t8, 0x3dc($v0) -/* B7DC74 80106AD4 2401002E */ li $at, 46 -/* B7DC78 80106AD8 24040001 */ li $a0, 1 -/* B7DC7C 80106ADC 17010019 */ bne $t8, $at, .L80106B44 -/* B7DC80 80106AE0 24B020D8 */ addiu $s0, $a1, 0x20d8 -/* B7DC84 80106AE4 0C03B616 */ jal func_800ED858 -/* B7DC88 80106AE8 AFA50030 */ sw $a1, 0x30($sp) -/* B7DC8C 80106AEC 0C03B8F5 */ jal func_800EE3D4 -/* B7DC90 80106AF0 00000000 */ nop -/* B7DC94 80106AF4 8FA50030 */ lw $a1, 0x30($sp) -/* B7DC98 80106AF8 3C068015 */ lui $a2, %hi(D_8014B2F8) # $a2, 0x8015 -/* B7DC9C 80106AFC 24C6B2F8 */ addiu $a2, %lo(D_8014B2F8) # addiu $a2, $a2, -0x4d08 -/* B7DCA0 80106B00 24B020D8 */ addiu $s0, $a1, 0x20d8 -/* B7DCA4 80106B04 26017FFF */ addiu $at, $s0, 0x7fff -/* B7DCA8 80106B08 AC2262B9 */ sw $v0, 0x62b9($at) -/* B7DCAC 80106B0C A4C00000 */ sh $zero, ($a2) -/* B7DCB0 80106B10 34018000 */ li $at, 32768 -/* B7DCB4 80106B14 02011821 */ addu $v1, $s0, $at -/* B7DCB8 80106B18 8C6862B8 */ lw $t0, 0x62b8($v1) -/* B7DCBC 80106B1C 84D90000 */ lh $t9, ($a2) -/* B7DCC0 80106B20 3404A000 */ li $a0, 40960 -/* B7DCC4 80106B24 A1190002 */ sb $t9, 2($t0) -/* B7DCC8 80106B28 0C03B301 */ jal func_800ECC04 -/* B7DCCC 80106B2C AFA30024 */ sw $v1, 0x24($sp) -/* B7DCD0 80106B30 8FA30024 */ lw $v1, 0x24($sp) -/* B7DCD4 80106B34 26017FFF */ addiu $at, $s0, 0x7fff -/* B7DCD8 80106B38 946963D4 */ lhu $t1, 0x63d4($v1) -/* B7DCDC 80106B3C 1000001B */ b .L80106BAC -/* B7DCE0 80106B40 A42963D3 */ sh $t1, 0x63d3($at) -.L80106B44: -/* B7DCE4 80106B44 34018000 */ li $at, 32768 -/* B7DCE8 80106B48 02011821 */ addu $v1, $s0, $at -/* B7DCEC 80106B4C 906A6304 */ lbu $t2, 0x6304($v1) -/* B7DCF0 80106B50 2401002C */ li $at, 44 -/* B7DCF4 80106B54 24040006 */ li $a0, 6 -/* B7DCF8 80106B58 15410014 */ bne $t2, $at, .L80106BAC -/* B7DCFC 80106B5C 00000000 */ nop -/* B7DD00 80106B60 0C03B616 */ jal func_800ED858 -/* B7DD04 80106B64 AFA30024 */ sw $v1, 0x24($sp) -/* B7DD08 80106B68 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B7DD0C 80106B6C 00000000 */ nop -/* B7DD10 80106B70 8FA30024 */ lw $v1, 0x24($sp) -/* B7DD14 80106B74 3C068015 */ lui $a2, %hi(D_8014B2F8) # $a2, 0x8015 -/* B7DD18 80106B78 26017FFF */ addiu $at, $s0, 0x7fff -/* B7DD1C 80106B7C AC2262B9 */ sw $v0, 0x62b9($at) -/* B7DD20 80106B80 24C6B2F8 */ addiu $a2, %lo(D_8014B2F8) # addiu $a2, $a2, -0x4d08 -/* B7DD24 80106B84 A4C00000 */ sh $zero, ($a2) -/* B7DD28 80106B88 84CB0000 */ lh $t3, ($a2) -/* B7DD2C 80106B8C 8C6C62B8 */ lw $t4, 0x62b8($v1) -/* B7DD30 80106B90 2404000E */ li $a0, 14 -/* B7DD34 80106B94 24050001 */ li $a1, 1 -/* B7DD38 80106B98 0C03B64F */ jal func_800ED93C -/* B7DD3C 80106B9C A18B0002 */ sb $t3, 2($t4) -/* B7DD40 80106BA0 240D0002 */ li $t5, 2 -/* B7DD44 80106BA4 26017FFF */ addiu $at, $s0, 0x7fff -/* B7DD48 80106BA8 A02D63E8 */ sb $t5, 0x63e8($at) -.L80106BAC: -/* B7DD4C 80106BAC 0C041A6C */ jal func_801069B0 -/* B7DD50 80106BB0 00000000 */ nop -/* B7DD54 80106BB4 8FBF001C */ lw $ra, 0x1c($sp) -/* B7DD58 80106BB8 8FB00018 */ lw $s0, 0x18($sp) -/* B7DD5C 80106BBC 27BD0030 */ addiu $sp, $sp, 0x30 -/* B7DD60 80106BC0 03E00008 */ jr $ra -/* B7DD64 80106BC4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106BC8.s b/asm/non_matchings/code/z_message_PAL/func_80106BC8.s deleted file mode 100644 index 10e5cf54d4..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106BC8.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel func_80106BC8 -/* B7DD68 80106BC8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B7DD6C 80106BCC AFBF001C */ sw $ra, 0x1c($sp) -/* B7DD70 80106BD0 AFA40030 */ sw $a0, 0x30($sp) -/* B7DD74 80106BD4 948F0020 */ lhu $t7, 0x20($a0) -/* B7DD78 80106BD8 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* B7DD7C 80106BDC 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* B7DD80 80106BE0 01E1C027 */ nor $t8, $t7, $at -/* B7DD84 80106BE4 13000008 */ beqz $t8, .L80106C08 -/* B7DD88 80106BE8 2401BFFF */ li $at, -16385 -/* B7DD8C 80106BEC 01E1C827 */ nor $t9, $t7, $at -/* B7DD90 80106BF0 13200005 */ beqz $t9, .L80106C08 -/* B7DD94 80106BF4 01E01025 */ move $v0, $t7 -/* B7DD98 80106BF8 2401FFF7 */ li $at, -9 -/* B7DD9C 80106BFC 01E14027 */ nor $t0, $t7, $at -/* B7DDA0 80106C00 55000012 */ bnezl $t0, .L80106C4C -/* B7DDA4 80106C04 3C01FFFF */ lui $at, 0xffff -.L80106C08: -/* B7DDA8 80106C08 8FAA0030 */ lw $t2, 0x30($sp) -/* B7DDAC 80106C0C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7DDB0 80106C10 3C098013 */ lui $t1, %hi(D_801333E8) # $t1, 0x8013 -/* B7DDB4 80106C14 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7DDB8 80106C18 252933E8 */ addiu $t1, %lo(D_801333E8) # addiu $t1, $t1, 0x33e8 -/* B7DDBC 80106C1C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7DDC0 80106C20 254B0014 */ addiu $t3, $t2, 0x14 -/* B7DDC4 80106C24 AFAB0024 */ sw $t3, 0x24($sp) -/* B7DDC8 80106C28 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7DDCC 80106C2C AFA90014 */ sw $t1, 0x14($sp) -/* B7DDD0 80106C30 AFA70010 */ sw $a3, 0x10($sp) -/* B7DDD4 80106C34 24044818 */ li $a0, 18456 -/* B7DDD8 80106C38 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7DDDC 80106C3C 24060004 */ li $a2, 4 -/* B7DDE0 80106C40 8FAC0024 */ lw $t4, 0x24($sp) -/* B7DDE4 80106C44 9582000C */ lhu $v0, 0xc($t4) -/* B7DDE8 80106C48 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -.L80106C4C: -/* B7DDEC 80106C4C 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* B7DDF0 80106C50 00411827 */ nor $v1, $v0, $at -/* B7DDF4 80106C54 2C630001 */ sltiu $v1, $v1, 1 -/* B7DDF8 80106C58 14600008 */ bnez $v1, .L80106C7C -/* B7DDFC 80106C5C 8FBF001C */ lw $ra, 0x1c($sp) -/* B7DE00 80106C60 2401BFFF */ li $at, -16385 -/* B7DE04 80106C64 00411827 */ nor $v1, $v0, $at -/* B7DE08 80106C68 2C630001 */ sltiu $v1, $v1, 1 -/* B7DE0C 80106C6C 14600003 */ bnez $v1, .L80106C7C -/* B7DE10 80106C70 2401FFF7 */ li $at, -9 -/* B7DE14 80106C74 00411827 */ nor $v1, $v0, $at -/* B7DE18 80106C78 2C630001 */ sltiu $v1, $v1, 1 -.L80106C7C: -/* B7DE1C 80106C7C 306200FF */ andi $v0, $v1, 0xff -/* B7DE20 80106C80 03E00008 */ jr $ra -/* B7DE24 80106C84 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106C88.s b/asm/non_matchings/code/z_message_PAL/func_80106C88.s deleted file mode 100644 index d6a904c068..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106C88.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_80106C88 -/* B7DE28 80106C88 94830020 */ lhu $v1, 0x20($a0) -/* B7DE2C 80106C8C 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* B7DE30 80106C90 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* B7DE34 80106C94 00611827 */ nor $v1, $v1, $at -/* B7DE38 80106C98 2C630001 */ sltiu $v1, $v1, 1 -/* B7DE3C 80106C9C 14600009 */ bnez $v1, .L80106CC4 -/* B7DE40 80106CA0 00000000 */ nop -/* B7DE44 80106CA4 94820020 */ lhu $v0, 0x20($a0) -/* B7DE48 80106CA8 2401BFFF */ li $at, -16385 -/* B7DE4C 80106CAC 00411827 */ nor $v1, $v0, $at -/* B7DE50 80106CB0 2C630001 */ sltiu $v1, $v1, 1 -/* B7DE54 80106CB4 14600003 */ bnez $v1, .L80106CC4 -/* B7DE58 80106CB8 2401FFF7 */ li $at, -9 -/* B7DE5C 80106CBC 00411827 */ nor $v1, $v0, $at -/* B7DE60 80106CC0 2C630001 */ sltiu $v1, $v1, 1 -.L80106CC4: -/* B7DE64 80106CC4 03E00008 */ jr $ra -/* B7DE68 80106CC8 306200FF */ andi $v0, $v1, 0xff - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106CCC.s b/asm/non_matchings/code/z_message_PAL/func_80106CCC.s deleted file mode 100644 index 1bccc7508f..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106CCC.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_80106CCC -/* B7DE6C 80106CCC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B7DE70 80106CD0 3C0F0001 */ lui $t7, 1 -/* B7DE74 80106CD4 AFBF001C */ sw $ra, 0x1c($sp) -/* B7DE78 80106CD8 AFA40020 */ sw $a0, 0x20($sp) -/* B7DE7C 80106CDC 01E47821 */ addu $t7, $t7, $a0 -/* B7DE80 80106CE0 8DEF03D8 */ lw $t7, 0x3d8($t7) -/* B7DE84 80106CE4 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7DE88 80106CE8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7DE8C 80106CEC 11E00010 */ beqz $t7, .L80106D30 -/* B7DE90 80106CF0 248220D8 */ addiu $v0, $a0, 0x20d8 -/* B7DE94 80106CF4 24417FFF */ addiu $at, $v0, 0x7fff -/* B7DE98 80106CF8 24180002 */ li $t8, 2 -/* B7DE9C 80106CFC 24190036 */ li $t9, 54 -/* B7DEA0 80106D00 3C088013 */ lui $t0, %hi(D_801333E8) # $t0, 0x8013 -/* B7DEA4 80106D04 A03863E8 */ sb $t8, 0x63e8($at) -/* B7DEA8 80106D08 A0396305 */ sb $t9, 0x6305($at) -/* B7DEAC 80106D0C A02063E5 */ sb $zero, 0x63e5($at) -/* B7DEB0 80106D10 250833E8 */ addiu $t0, %lo(D_801333E8) # addiu $t0, $t0, 0x33e8 -/* B7DEB4 80106D14 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7DEB8 80106D18 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7DEBC 80106D1C AFA80014 */ sw $t0, 0x14($sp) -/* B7DEC0 80106D20 AFA70010 */ sw $a3, 0x10($sp) -/* B7DEC4 80106D24 00002025 */ move $a0, $zero -/* B7DEC8 80106D28 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7DECC 80106D2C 24060004 */ li $a2, 4 -.L80106D30: -/* B7DED0 80106D30 8FBF001C */ lw $ra, 0x1c($sp) -/* B7DED4 80106D34 27BD0020 */ addiu $sp, $sp, 0x20 -/* B7DED8 80106D38 03E00008 */ jr $ra -/* B7DEDC 80106D3C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106D40.s b/asm/non_matchings/code/z_message_PAL/func_80106D40.s deleted file mode 100644 index 6b955db497..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106D40.s +++ /dev/null @@ -1,130 +0,0 @@ -glabel func_80106D40 -/* B7DEE0 80106D40 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B7DEE4 80106D44 AFBF001C */ sw $ra, 0x1c($sp) -/* B7DEE8 80106D48 AFA40020 */ sw $a0, 0x20($sp) -/* B7DEEC 80106D4C AFA50024 */ sw $a1, 0x24($sp) -/* B7DEF0 80106D50 808F0029 */ lb $t7, 0x29($a0) -/* B7DEF4 80106D54 3C188015 */ lui $t8, %hi(D_80153984) # $t8, 0x8015 -/* B7DEF8 80106D58 8FAC0020 */ lw $t4, 0x20($sp) -/* B7DEFC 80106D5C 29E1001E */ slti $at, $t7, 0x1e -/* B7DF00 80106D60 54200021 */ bnezl $at, .L80106DE8 -/* B7DF04 80106D64 81820029 */ lb $v0, 0x29($t4) -/* B7DF08 80106D68 87183984 */ lh $t8, %lo(D_80153984)($t8) -/* B7DF0C 80106D6C 24190001 */ li $t9, 1 -/* B7DF10 80106D70 3C018015 */ lui $at, %hi(D_80153984) # $at, 0x8015 -/* B7DF14 80106D74 1700001B */ bnez $t8, .L80106DE4 -/* B7DF18 80106D78 248320D8 */ addiu $v1, $a0, 0x20d8 -/* B7DF1C 80106D7C A4393984 */ sh $t9, %lo(D_80153984)($at) -/* B7DF20 80106D80 34018000 */ li $at, 32768 -/* B7DF24 80106D84 00611021 */ addu $v0, $v1, $at -/* B7DF28 80106D88 904863E5 */ lbu $t0, 0x63e5($v0) -/* B7DF2C 80106D8C 24617FFF */ addiu $at, $v1, 0x7fff -/* B7DF30 80106D90 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7DF34 80106D94 2509FFFF */ addiu $t1, $t0, -1 -/* B7DF38 80106D98 A02963E6 */ sb $t1, 0x63e6($at) -/* B7DF3C 80106D9C 904A63E5 */ lbu $t2, 0x63e5($v0) -/* B7DF40 80106DA0 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7DF44 80106DA4 24044809 */ li $a0, 18441 -/* B7DF48 80106DA8 29410081 */ slti $at, $t2, 0x81 -/* B7DF4C 80106DAC 14200004 */ bnez $at, .L80106DC0 -/* B7DF50 80106DB0 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7DF54 80106DB4 24617FFF */ addiu $at, $v1, 0x7fff -/* B7DF58 80106DB8 10000037 */ b .L80106E98 -/* B7DF5C 80106DBC A02063E6 */ sb $zero, 0x63e6($at) -.L80106DC0: -/* B7DF60 80106DC0 3C0B8013 */ lui $t3, %hi(D_801333E8) # $t3, 0x8013 -/* B7DF64 80106DC4 256B33E8 */ addiu $t3, %lo(D_801333E8) # addiu $t3, $t3, 0x33e8 -/* B7DF68 80106DC8 AFAB0014 */ sw $t3, 0x14($sp) -/* B7DF6C 80106DCC 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7DF70 80106DD0 24060004 */ li $a2, 4 -/* B7DF74 80106DD4 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7DF78 80106DD8 AFA70010 */ sw $a3, 0x10($sp) -/* B7DF7C 80106DDC 1000002E */ b .L80106E98 -/* B7DF80 80106DE0 00000000 */ nop -.L80106DE4: -/* B7DF84 80106DE4 81820029 */ lb $v0, 0x29($t4) -.L80106DE8: -/* B7DF88 80106DE8 3C0D8015 */ lui $t5, %hi(D_80153984) # $t5, 0x8015 -/* B7DF8C 80106DEC 2841FFE3 */ slti $at, $v0, -0x1d -/* B7DF90 80106DF0 10200021 */ beqz $at, .L80106E78 -/* B7DF94 80106DF4 00000000 */ nop -/* B7DF98 80106DF8 85AD3984 */ lh $t5, %lo(D_80153984)($t5) -/* B7DF9C 80106DFC 240F0001 */ li $t7, 1 -/* B7DFA0 80106E00 3C018015 */ lui $at, %hi(D_80153984) # $at, 0x8015 -/* B7DFA4 80106E04 15A0001C */ bnez $t5, .L80106E78 -/* B7DFA8 80106E08 258320D8 */ addiu $v1, $t4, 0x20d8 -/* B7DFAC 80106E0C A42F3984 */ sh $t7, %lo(D_80153984)($at) -/* B7DFB0 80106E10 34018000 */ li $at, 32768 -/* B7DFB4 80106E14 00611021 */ addu $v0, $v1, $at -/* B7DFB8 80106E18 905863E5 */ lbu $t8, 0x63e5($v0) -/* B7DFBC 80106E1C 24617FFF */ addiu $at, $v1, 0x7fff -/* B7DFC0 80106E20 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7DFC4 80106E24 27190001 */ addiu $t9, $t8, 1 -/* B7DFC8 80106E28 A03963E6 */ sb $t9, 0x63e6($at) -/* B7DFCC 80106E2C 904863E5 */ lbu $t0, 0x63e5($v0) -/* B7DFD0 80106E30 93AE0027 */ lbu $t6, 0x27($sp) -/* B7DFD4 80106E34 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7DFD8 80106E38 24044809 */ li $a0, 18441 -/* B7DFDC 80106E3C 01C8082A */ slt $at, $t6, $t0 -/* B7DFE0 80106E40 10200004 */ beqz $at, .L80106E54 -/* B7DFE4 80106E44 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7DFE8 80106E48 24617FFF */ addiu $at, $v1, 0x7fff -/* B7DFEC 80106E4C 10000012 */ b .L80106E98 -/* B7DFF0 80106E50 A02E63E6 */ sb $t6, 0x63e6($at) -.L80106E54: -/* B7DFF4 80106E54 3C098013 */ lui $t1, %hi(D_801333E8) # $t1, 0x8013 -/* B7DFF8 80106E58 252933E8 */ addiu $t1, %lo(D_801333E8) # addiu $t1, $t1, 0x33e8 -/* B7DFFC 80106E5C AFA90014 */ sw $t1, 0x14($sp) -/* B7E000 80106E60 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7E004 80106E64 24060004 */ li $a2, 4 -/* B7E008 80106E68 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7E00C 80106E6C AFA70010 */ sw $a3, 0x10($sp) -/* B7E010 80106E70 10000009 */ b .L80106E98 -/* B7E014 80106E74 00000000 */ nop -.L80106E78: -/* B7E018 80106E78 04400003 */ bltz $v0, .L80106E88 -/* B7E01C 80106E7C 00021823 */ negu $v1, $v0 -/* B7E020 80106E80 10000001 */ b .L80106E88 -/* B7E024 80106E84 00401825 */ move $v1, $v0 -.L80106E88: -/* B7E028 80106E88 2861001E */ slti $at, $v1, 0x1e -/* B7E02C 80106E8C 10200002 */ beqz $at, .L80106E98 -/* B7E030 80106E90 3C018015 */ lui $at, %hi(D_80153984) # $at, 0x8015 -/* B7E034 80106E94 A4203984 */ sh $zero, %lo(D_80153984)($at) -.L80106E98: -/* B7E038 80106E98 3C048016 */ lui $a0, %hi(gGameInfo) # $a0, 0x8016 -/* B7E03C 80106E9C 2484FA90 */ addiu $a0, %lo(gGameInfo) # addiu $a0, $a0, -0x570 -/* B7E040 80106EA0 8C8A0000 */ lw $t2, ($a0) -/* B7E044 80106EA4 8FA30020 */ lw $v1, 0x20($sp) -/* B7E048 80106EA8 854B0B18 */ lh $t3, 0xb18($t2) -/* B7E04C 80106EAC 246320D8 */ addiu $v1, $v1, 0x20d8 -/* B7E050 80106EB0 24617FFF */ addiu $at, $v1, 0x7fff -/* B7E054 80106EB4 A42B63D9 */ sh $t3, 0x63d9($at) -/* B7E058 80106EB8 93AD0027 */ lbu $t5, 0x27($sp) -/* B7E05C 80106EBC 34018000 */ li $at, 32768 -/* B7E060 80106EC0 00611021 */ addu $v0, $v1, $at -/* B7E064 80106EC4 24010001 */ li $at, 1 -/* B7E068 80106EC8 55A1000A */ bnel $t5, $at, .L80106EF4 -/* B7E06C 80106ECC 904963E5 */ lbu $t1, 0x63e5($v0) -/* B7E070 80106ED0 904C63E5 */ lbu $t4, 0x63e5($v0) -/* B7E074 80106ED4 8C8F0000 */ lw $t7, ($a0) -/* B7E078 80106ED8 24617FFF */ addiu $at, $v1, 0x7fff -/* B7E07C 80106EDC 000CC040 */ sll $t8, $t4, 1 -/* B7E080 80106EE0 01F8C821 */ addu $t9, $t7, $t8 -/* B7E084 80106EE4 87280B1C */ lh $t0, 0xb1c($t9) -/* B7E088 80106EE8 10000008 */ b .L80106F0C -/* B7E08C 80106EEC A42863DB */ sh $t0, 0x63db($at) -/* B7E090 80106EF0 904963E5 */ lbu $t1, 0x63e5($v0) -.L80106EF4: -/* B7E094 80106EF4 8C8E0000 */ lw $t6, ($a0) -/* B7E098 80106EF8 24617FFF */ addiu $at, $v1, 0x7fff -/* B7E09C 80106EFC 00095040 */ sll $t2, $t1, 1 -/* B7E0A0 80106F00 01CA5821 */ addu $t3, $t6, $t2 -/* B7E0A4 80106F04 856D0B1A */ lh $t5, 0xb1a($t3) -/* B7E0A8 80106F08 A42D63DB */ sh $t5, 0x63db($at) -.L80106F0C: -/* B7E0AC 80106F0C 8FBF001C */ lw $ra, 0x1c($sp) -/* B7E0B0 80106F10 27BD0020 */ addiu $sp, $sp, 0x20 -/* B7E0B4 80106F14 03E00008 */ jr $ra -/* B7E0B8 80106F18 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_80106F1C.s b/asm/non_matchings/code/z_message_PAL/func_80106F1C.s deleted file mode 100644 index 52798d2dde..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80106F1C.s +++ /dev/null @@ -1,205 +0,0 @@ -glabel func_80106F1C -/* B7E0BC 80106F1C AFA50004 */ sw $a1, 4($sp) -/* B7E0C0 80106F20 AFA60008 */ sw $a2, 8($sp) -/* B7E0C4 80106F24 3C010001 */ lui $at, 1 -/* B7E0C8 80106F28 8CC20000 */ lw $v0, ($a2) -/* B7E0CC 80106F2C 00811821 */ addu $v1, $a0, $at -/* B7E0D0 80106F30 846704B0 */ lh $a3, 0x4b0($v1) -/* B7E0D4 80106F34 846804B2 */ lh $t0, 0x4b2($v1) -/* B7E0D8 80106F38 00401825 */ move $v1, $v0 -/* B7E0DC 80106F3C 3C06E700 */ lui $a2, 0xe700 -/* B7E0E0 80106F40 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* B7E0E4 80106F44 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* B7E0E8 80106F48 AC660000 */ sw $a2, ($v1) -/* B7E0EC 80106F4C AC600004 */ sw $zero, 4($v1) -/* B7E0F0 80106F50 8CA30000 */ lw $v1, ($a1) -/* B7E0F4 80106F54 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* B7E0F8 80106F58 44810000 */ mtc1 $at, $f0 -/* B7E0FC 80106F5C 846F0B06 */ lh $t7, 0xb06($v1) -/* B7E100 80106F60 3C014180 */ li $at, 0x41800000 # 0.000000 -/* B7E104 80106F64 44815000 */ mtc1 $at, $f10 -/* B7E108 80106F68 448F2000 */ mtc1 $t7, $f4 -/* B7E10C 80106F6C 3C098017 */ lui $t1, %hi(D_801759A0) # $t1, 0x8017 -/* B7E110 80106F70 252959A0 */ addiu $t1, %lo(D_801759A0) # addiu $t1, $t1, 0x59a0 -/* B7E114 80106F74 468021A0 */ cvt.s.w $f6, $f4 -/* B7E118 80106F78 3C014480 */ li $at, 0x44800000 # 0.000000 -/* B7E11C 80106F7C 44812000 */ mtc1 $at, $f4 -/* B7E120 80106F80 3C0A8017 */ lui $t2, %hi(D_801759A4) # $t2, 0x8017 -/* B7E124 80106F84 254A59A4 */ addiu $t2, %lo(D_801759A4) # addiu $t2, $t2, 0x59a4 -/* B7E128 80106F88 24420008 */ addiu $v0, $v0, 8 -/* B7E12C 80106F8C 46003203 */ div.s $f8, $f6, $f0 -/* B7E130 80106F90 3C18FD90 */ lui $t8, 0xfd90 -/* B7E134 80106F94 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708 -/* B7E138 80106F98 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200 -/* B7E13C 80106F9C 3401A0D8 */ li $at, 41176 -/* B7E140 80106FA0 460A4402 */ mul.s $f16, $f8, $f10 -/* B7E144 80106FA4 4600848D */ trunc.w.s $f18, $f16 -/* B7E148 80106FA8 44199000 */ mfc1 $t9, $f18 -/* B7E14C 80106FAC 00000000 */ nop -/* B7E150 80106FB0 AD390000 */ sw $t9, ($t1) -/* B7E154 80106FB4 846D0B06 */ lh $t5, 0xb06($v1) -/* B7E158 80106FB8 00401825 */ move $v1, $v0 -/* B7E15C 80106FBC 24420008 */ addiu $v0, $v0, 8 -/* B7E160 80106FC0 448D3000 */ mtc1 $t5, $f6 -/* B7E164 80106FC4 3C0DF590 */ lui $t5, 0xf590 -/* B7E168 80106FC8 46803220 */ cvt.s.w $f8, $f6 -/* B7E16C 80106FCC 46004283 */ div.s $f10, $f8, $f0 -/* B7E170 80106FD0 460A2403 */ div.s $f16, $f4, $f10 -/* B7E174 80106FD4 4600848D */ trunc.w.s $f18, $f16 -/* B7E178 80106FD8 440F9000 */ mfc1 $t7, $f18 -/* B7E17C 80106FDC 00000000 */ nop -/* B7E180 80106FE0 AD4F0000 */ sw $t7, ($t2) -/* B7E184 80106FE4 AC780000 */ sw $t8, ($v1) -/* B7E188 80106FE8 8FB90004 */ lw $t9, 4($sp) -/* B7E18C 80106FEC 3C0FE600 */ lui $t7, 0xe600 -/* B7E190 80106FF0 3C18F300 */ lui $t8, 0xf300 -/* B7E194 80106FF4 AC790004 */ sw $t9, 4($v1) -/* B7E198 80106FF8 00401825 */ move $v1, $v0 -/* B7E19C 80106FFC AC6D0000 */ sw $t5, ($v1) -/* B7E1A0 80107000 AC6E0004 */ sw $t6, 4($v1) -/* B7E1A4 80107004 24420008 */ addiu $v0, $v0, 8 -/* B7E1A8 80107008 00401825 */ move $v1, $v0 -/* B7E1AC 8010700C AC6F0000 */ sw $t7, ($v1) -/* B7E1B0 80107010 AC600004 */ sw $zero, 4($v1) -/* B7E1B4 80107014 24420008 */ addiu $v0, $v0, 8 -/* B7E1B8 80107018 00401825 */ move $v1, $v0 -/* B7E1BC 8010701C 3C190703 */ lui $t9, (0x0703F800 >> 16) # lui $t9, 0x703 -/* B7E1C0 80107020 3739F800 */ ori $t9, (0x0703F800 & 0xFFFF) # ori $t9, $t9, 0xf800 -/* B7E1C4 80107024 AC790004 */ sw $t9, 4($v1) -/* B7E1C8 80107028 AC780000 */ sw $t8, ($v1) -/* B7E1CC 8010702C 24420008 */ addiu $v0, $v0, 8 -/* B7E1D0 80107030 00401825 */ move $v1, $v0 -/* B7E1D4 80107034 AC660000 */ sw $a2, ($v1) -/* B7E1D8 80107038 AC600004 */ sw $zero, 4($v1) -/* B7E1DC 8010703C 24420008 */ addiu $v0, $v0, 8 -/* B7E1E0 80107040 00401825 */ move $v1, $v0 -/* B7E1E4 80107044 3C0E0008 */ lui $t6, (0x00080200 >> 16) # lui $t6, 8 -/* B7E1E8 80107048 3C0DF580 */ lui $t5, (0xF5800200 >> 16) # lui $t5, 0xf580 -/* B7E1EC 8010704C 35AD0200 */ ori $t5, (0xF5800200 & 0xFFFF) # ori $t5, $t5, 0x200 -/* B7E1F0 80107050 35CE0200 */ ori $t6, (0x00080200 & 0xFFFF) # ori $t6, $t6, 0x200 -/* B7E1F4 80107054 AC6E0004 */ sw $t6, 4($v1) -/* B7E1F8 80107058 AC6D0000 */ sw $t5, ($v1) -/* B7E1FC 8010705C 24420008 */ addiu $v0, $v0, 8 -/* B7E200 80107060 00401825 */ move $v1, $v0 -/* B7E204 80107064 3C180003 */ lui $t8, (0x0003C03C >> 16) # lui $t8, 3 -/* B7E208 80107068 3718C03C */ ori $t8, (0x0003C03C & 0xFFFF) # ori $t8, $t8, 0xc03c -/* B7E20C 8010706C 3C0FF200 */ lui $t7, 0xf200 -/* B7E210 80107070 AC6F0000 */ sw $t7, ($v1) -/* B7E214 80107074 AC780004 */ sw $t8, 4($v1) -/* B7E218 80107078 00811821 */ addu $v1, $a0, $at -/* B7E21C 8010707C 907962FD */ lbu $t9, 0x62fd($v1) -/* B7E220 80107080 24420008 */ addiu $v0, $v0, 8 -/* B7E224 80107084 24010005 */ li $at, 5 -/* B7E228 80107088 13210032 */ beq $t9, $at, .L80107154 -/* B7E22C 8010708C 00402025 */ move $a0, $v0 -/* B7E230 80107090 3C0DFA00 */ lui $t5, 0xfa00 -/* B7E234 80107094 AC8D0000 */ sw $t5, ($a0) -/* B7E238 80107098 846E63E2 */ lh $t6, 0x63e2($v1) -/* B7E23C 8010709C 3C01E400 */ lui $at, 0xe400 -/* B7E240 801070A0 24420008 */ addiu $v0, $v0, 8 -/* B7E244 801070A4 31CF00FF */ andi $t7, $t6, 0xff -/* B7E248 801070A8 AC8F0004 */ sw $t7, 4($a0) -/* B7E24C 801070AC 8CB80000 */ lw $t8, ($a1) -/* B7E250 801070B0 8D2C0000 */ lw $t4, ($t1) -/* B7E254 801070B4 00402025 */ move $a0, $v0 -/* B7E258 801070B8 870B0B0C */ lh $t3, 0xb0c($t8) -/* B7E25C 801070BC 24420008 */ addiu $v0, $v0, 8 -/* B7E260 801070C0 0168C821 */ addu $t9, $t3, $t0 -/* B7E264 801070C4 032C6821 */ addu $t5, $t9, $t4 -/* B7E268 801070C8 000D7080 */ sll $t6, $t5, 2 -/* B7E26C 801070CC 31CF0FFF */ andi $t7, $t6, 0xfff -/* B7E270 801070D0 00EBC821 */ addu $t9, $a3, $t3 -/* B7E274 801070D4 032C6821 */ addu $t5, $t9, $t4 -/* B7E278 801070D8 000D7080 */ sll $t6, $t5, 2 -/* B7E27C 801070DC 01E1C025 */ or $t8, $t7, $at -/* B7E280 801070E0 31CF0FFF */ andi $t7, $t6, 0xfff -/* B7E284 801070E4 000FCB00 */ sll $t9, $t7, 0xc -/* B7E288 801070E8 03196825 */ or $t5, $t8, $t9 -/* B7E28C 801070EC AC8D0000 */ sw $t5, ($a0) -/* B7E290 801070F0 8CAE0000 */ lw $t6, ($a1) -/* B7E294 801070F4 85CB0B0C */ lh $t3, 0xb0c($t6) -/* B7E298 801070F8 01687821 */ addu $t7, $t3, $t0 -/* B7E29C 801070FC 000FC080 */ sll $t8, $t7, 2 -/* B7E2A0 80107100 00EB6821 */ addu $t5, $a3, $t3 -/* B7E2A4 80107104 000D7080 */ sll $t6, $t5, 2 -/* B7E2A8 80107108 31CF0FFF */ andi $t7, $t6, 0xfff -/* B7E2AC 8010710C 33190FFF */ andi $t9, $t8, 0xfff -/* B7E2B0 80107110 000FC300 */ sll $t8, $t7, 0xc -/* B7E2B4 80107114 03386825 */ or $t5, $t9, $t8 -/* B7E2B8 80107118 AC8D0004 */ sw $t5, 4($a0) -/* B7E2BC 8010711C 00402025 */ move $a0, $v0 -/* B7E2C0 80107120 3C0EE100 */ lui $t6, 0xe100 -/* B7E2C4 80107124 AC8E0000 */ sw $t6, ($a0) -/* B7E2C8 80107128 AC800004 */ sw $zero, 4($a0) -/* B7E2CC 8010712C 24420008 */ addiu $v0, $v0, 8 -/* B7E2D0 80107130 00402025 */ move $a0, $v0 -/* B7E2D4 80107134 3C0FF100 */ lui $t7, 0xf100 -/* B7E2D8 80107138 AC8F0000 */ sw $t7, ($a0) -/* B7E2DC 8010713C 8D450000 */ lw $a1, ($t2) -/* B7E2E0 80107140 24420008 */ addiu $v0, $v0, 8 -/* B7E2E4 80107144 30A5FFFF */ andi $a1, $a1, 0xffff -/* B7E2E8 80107148 0005CC00 */ sll $t9, $a1, 0x10 -/* B7E2EC 8010714C 0325C025 */ or $t8, $t9, $a1 -/* B7E2F0 80107150 AC980004 */ sw $t8, 4($a0) -.L80107154: -/* B7E2F4 80107154 00402025 */ move $a0, $v0 -/* B7E2F8 80107158 AC860000 */ sw $a2, ($a0) -/* B7E2FC 8010715C AC800004 */ sw $zero, 4($a0) -/* B7E300 80107160 24420008 */ addiu $v0, $v0, 8 -/* B7E304 80107164 00402025 */ move $a0, $v0 -/* B7E308 80107168 3C0DFA00 */ lui $t5, 0xfa00 -/* B7E30C 8010716C AC8D0000 */ sw $t5, ($a0) -/* B7E310 80107170 847863DE */ lh $t8, 0x63de($v1) -/* B7E314 80107174 846F63DC */ lh $t7, 0x63dc($v1) -/* B7E318 80107178 3C01E400 */ lui $at, 0xe400 -/* B7E31C 8010717C 330D00FF */ andi $t5, $t8, 0xff -/* B7E320 80107180 847863E0 */ lh $t8, 0x63e0($v1) -/* B7E324 80107184 000D7400 */ sll $t6, $t5, 0x10 -/* B7E328 80107188 000FCE00 */ sll $t9, $t7, 0x18 -/* B7E32C 8010718C 330D00FF */ andi $t5, $t8, 0xff -/* B7E330 80107190 847863E2 */ lh $t8, 0x63e2($v1) -/* B7E334 80107194 032E7825 */ or $t7, $t9, $t6 -/* B7E338 80107198 000DCA00 */ sll $t9, $t5, 8 -/* B7E33C 8010719C 01F97025 */ or $t6, $t7, $t9 -/* B7E340 801071A0 330D00FF */ andi $t5, $t8, 0xff -/* B7E344 801071A4 01CD7825 */ or $t7, $t6, $t5 -/* B7E348 801071A8 AC8F0004 */ sw $t7, 4($a0) -/* B7E34C 801071AC 8D2C0000 */ lw $t4, ($t1) -/* B7E350 801071B0 24420008 */ addiu $v0, $v0, 8 -/* B7E354 801071B4 00401825 */ move $v1, $v0 -/* B7E358 801071B8 00ECC821 */ addu $t9, $a3, $t4 -/* B7E35C 801071BC 0019C080 */ sll $t8, $t9, 2 -/* B7E360 801071C0 330E0FFF */ andi $t6, $t8, 0xfff -/* B7E364 801071C4 000E6B00 */ sll $t5, $t6, 0xc -/* B7E368 801071C8 010CC821 */ addu $t9, $t0, $t4 -/* B7E36C 801071CC 0019C080 */ sll $t8, $t9, 2 -/* B7E370 801071D0 330E0FFF */ andi $t6, $t8, 0xfff -/* B7E374 801071D4 01A17825 */ or $t7, $t5, $at -/* B7E378 801071D8 01EE6825 */ or $t5, $t7, $t6 -/* B7E37C 801071DC 0007C880 */ sll $t9, $a3, 2 -/* B7E380 801071E0 33380FFF */ andi $t8, $t9, 0xfff -/* B7E384 801071E4 AC6D0000 */ sw $t5, ($v1) -/* B7E388 801071E8 00087080 */ sll $t6, $t0, 2 -/* B7E38C 801071EC 31CD0FFF */ andi $t5, $t6, 0xfff -/* B7E390 801071F0 00187B00 */ sll $t7, $t8, 0xc -/* B7E394 801071F4 01EDC825 */ or $t9, $t7, $t5 -/* B7E398 801071F8 AC790004 */ sw $t9, 4($v1) -/* B7E39C 801071FC 24420008 */ addiu $v0, $v0, 8 -/* B7E3A0 80107200 00401825 */ move $v1, $v0 -/* B7E3A4 80107204 3C18E100 */ lui $t8, 0xe100 -/* B7E3A8 80107208 AC780000 */ sw $t8, ($v1) -/* B7E3AC 8010720C AC600004 */ sw $zero, 4($v1) -/* B7E3B0 80107210 24420008 */ addiu $v0, $v0, 8 -/* B7E3B4 80107214 00401825 */ move $v1, $v0 -/* B7E3B8 80107218 3C0EF100 */ lui $t6, 0xf100 -/* B7E3BC 8010721C AC6E0000 */ sw $t6, ($v1) -/* B7E3C0 80107220 8D450000 */ lw $a1, ($t2) -/* B7E3C4 80107224 24420008 */ addiu $v0, $v0, 8 -/* B7E3C8 80107228 30A5FFFF */ andi $a1, $a1, 0xffff -/* B7E3CC 8010722C 00057C00 */ sll $t7, $a1, 0x10 -/* B7E3D0 80107230 01E56825 */ or $t5, $t7, $a1 -/* B7E3D4 80107234 AC6D0004 */ sw $t5, 4($v1) -/* B7E3D8 80107238 8FB90008 */ lw $t9, 8($sp) -/* B7E3DC 8010723C 03E00008 */ jr $ra -/* B7E3E0 80107240 AF220000 */ sw $v0, ($t9) - diff --git a/asm/non_matchings/code/z_message_PAL/func_80107244.s b/asm/non_matchings/code/z_message_PAL/func_80107244.s deleted file mode 100644 index b9bf09b029..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80107244.s +++ /dev/null @@ -1,136 +0,0 @@ -glabel func_80107244 -/* B7E3E4 80107244 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 -/* B7E3E8 80107248 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 -/* B7E3EC 8010724C 8CE50000 */ lw $a1, ($a3) -/* B7E3F0 80107250 34018000 */ li $at, 32768 -/* B7E3F4 80107254 00811021 */ addu $v0, $a0, $at -/* B7E3F8 80107258 904363E7 */ lbu $v1, 0x63e7($v0) -/* B7E3FC 8010725C 84AE0B28 */ lh $t6, 0xb28($a1) -/* B7E400 80107260 84AF0B2A */ lh $t7, 0xb2a($a1) -/* B7E404 80107264 3C018015 */ lui $at, %hi(D_80153988) -/* B7E408 80107268 448E2000 */ mtc1 $t6, $f4 -/* B7E40C 8010726C 00031880 */ sll $v1, $v1, 2 -/* B7E410 80107270 00230821 */ addu $at, $at, $v1 -/* B7E414 80107274 C4223988 */ lwc1 $f2, %lo(D_80153988)($at) -/* B7E418 80107278 468021A0 */ cvt.s.w $f6, $f4 -/* B7E41C 8010727C 448F4000 */ mtc1 $t7, $f8 -/* B7E420 80107280 84B90B2E */ lh $t9, 0xb2e($a1) -/* B7E424 80107284 3C018015 */ lui $at, %hi(D_801539A8) -/* B7E428 80107288 00230821 */ addu $at, $at, $v1 -/* B7E42C 8010728C 46021300 */ add.s $f12, $f2, $f2 -/* B7E430 80107290 C43039A8 */ lwc1 $f16, %lo(D_801539A8)($at) -/* B7E434 80107294 84B80B2C */ lh $t8, 0xb2c($a1) -/* B7E438 80107298 468042A0 */ cvt.s.w $f10, $f8 -/* B7E43C 8010729C 46066002 */ mul.s $f0, $f12, $f6 -/* B7E440 801072A0 44994000 */ mtc1 $t9, $f8 -/* B7E444 801072A4 44982000 */ mtc1 $t8, $f4 -/* B7E448 801072A8 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* B7E44C 801072AC 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* B7E450 801072B0 460A8382 */ mul.s $f14, $f16, $f10 -/* B7E454 801072B4 468042A0 */ cvt.s.w $f10, $f8 -/* B7E458 801072B8 468021A0 */ cvt.s.w $f6, $f4 -/* B7E45C 801072BC 46105103 */ div.s $f4, $f10, $f16 -/* B7E460 801072C0 460C3483 */ div.s $f18, $f6, $f12 -/* B7E464 801072C4 E7A40000 */ swc1 $f4, ($sp) -/* B7E468 801072C8 84A60B26 */ lh $a2, 0xb26($a1) -/* B7E46C 801072CC 44812000 */ mtc1 $at, $f4 -/* B7E470 801072D0 44863000 */ mtc1 $a2, $f6 -/* B7E474 801072D4 00000000 */ nop -/* B7E478 801072D8 46803220 */ cvt.s.w $f8, $f6 -/* B7E47C 801072DC 46088282 */ mul.s $f10, $f16, $f8 -/* B7E480 801072E0 46045180 */ add.s $f6, $f10, $f4 -/* B7E484 801072E4 4600320D */ trunc.w.s $f8, $f6 -/* B7E488 801072E8 44094000 */ mfc1 $t1, $f8 -/* B7E48C 801072EC 00000000 */ nop -/* B7E490 801072F0 00095400 */ sll $t2, $t1, 0x10 -/* B7E494 801072F4 000A5C03 */ sra $t3, $t2, 0x10 -/* B7E498 801072F8 00CB6023 */ subu $t4, $a2, $t3 -/* B7E49C 801072FC 05810003 */ bgez $t4, .L8010730C -/* B7E4A0 80107300 000C6843 */ sra $t5, $t4, 1 -/* B7E4A4 80107304 25810001 */ addiu $at, $t4, 1 -/* B7E4A8 80107308 00016843 */ sra $t5, $at, 1 -.L8010730C: -/* B7E4AC 8010730C 01A67021 */ addu $t6, $t5, $a2 -/* B7E4B0 80107310 A4AE0F16 */ sh $t6, 0xf16($a1) -/* B7E4B4 80107314 84586404 */ lh $t8, 0x6404($v0) -/* B7E4B8 80107318 844F6406 */ lh $t7, 0x6406($v0) -/* B7E4BC 8010731C 07010003 */ bgez $t8, .L8010732C -/* B7E4C0 80107320 0018C8C3 */ sra $t9, $t8, 3 -/* B7E4C4 80107324 27010007 */ addiu $at, $t8, 7 -/* B7E4C8 80107328 0001C8C3 */ sra $t9, $at, 3 -.L8010732C: -/* B7E4CC 8010732C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E4D0 80107330 01F94021 */ addu $t0, $t7, $t9 -/* B7E4D4 80107334 A4286407 */ sh $t0, 0x6407($at) -/* B7E4D8 80107338 904963E7 */ lbu $t1, 0x63e7($v0) -/* B7E4DC 8010733C 252A0001 */ addiu $t2, $t1, 1 -/* B7E4E0 80107340 A02A63E8 */ sb $t2, 0x63e8($at) -/* B7E4E4 80107344 904B63E7 */ lbu $t3, 0x63e7($v0) -/* B7E4E8 80107348 24010008 */ li $at, 8 -/* B7E4EC 8010734C 5561000D */ bnel $t3, $at, .L80107384 -/* B7E4F0 80107350 3C013F00 */ lui $at, 0x3f00 -/* B7E4F4 80107354 8CE50000 */ lw $a1, ($a3) -/* B7E4F8 80107358 240E0003 */ li $t6, 3 -/* B7E4FC 8010735C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E500 80107360 84AC0B24 */ lh $t4, 0xb24($a1) -/* B7E504 80107364 A4AC0F14 */ sh $t4, 0xf14($a1) -/* B7E508 80107368 8CE50000 */ lw $a1, ($a3) -/* B7E50C 8010736C 84AD0B26 */ lh $t5, 0xb26($a1) -/* B7E510 80107370 A4AD0F16 */ sh $t5, 0xf16($a1) -/* B7E514 80107374 A02E6305 */ sb $t6, 0x6305($at) -/* B7E518 80107378 84586404 */ lh $t8, 0x6404($v0) -/* B7E51C 8010737C A4386407 */ sh $t8, 0x6407($at) -/* B7E520 80107380 3C013F00 */ li $at, 0x3F000000 # 0.000000 -.L80107384: -/* B7E524 80107384 44815000 */ mtc1 $at, $f10 -/* B7E528 80107388 8CEB0000 */ lw $t3, ($a3) -/* B7E52C 8010738C 460A0100 */ add.s $f4, $f0, $f10 -/* B7E530 80107390 4600218D */ trunc.w.s $f6, $f4 -/* B7E534 80107394 44193000 */ mfc1 $t9, $f6 -/* B7E538 80107398 00000000 */ nop -/* B7E53C 8010739C 00194400 */ sll $t0, $t9, 0x10 -/* B7E540 801073A0 00084C03 */ sra $t1, $t0, 0x10 -/* B7E544 801073A4 05210003 */ bgez $t1, .L801073B4 -/* B7E548 801073A8 00095043 */ sra $t2, $t1, 1 -/* B7E54C 801073AC 25210001 */ addiu $at, $t1, 1 -/* B7E550 801073B0 00015043 */ sra $t2, $at, 1 -.L801073B4: -/* B7E554 801073B4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* B7E558 801073B8 44814000 */ mtc1 $at, $f8 -/* B7E55C 801073BC 44813000 */ mtc1 $at, $f6 -/* B7E560 801073C0 A56A04C0 */ sh $t2, 0x4c0($t3) -/* B7E564 801073C4 46087280 */ add.s $f10, $f14, $f8 -/* B7E568 801073C8 8CEE0000 */ lw $t6, ($a3) -/* B7E56C 801073CC 46069200 */ add.s $f8, $f18, $f6 -/* B7E570 801073D0 44813000 */ mtc1 $at, $f6 -/* B7E574 801073D4 4600510D */ trunc.w.s $f4, $f10 -/* B7E578 801073D8 4600428D */ trunc.w.s $f10, $f8 -/* B7E57C 801073DC 440D2000 */ mfc1 $t5, $f4 -/* B7E580 801073E0 00000000 */ nop -/* B7E584 801073E4 A5CD04C2 */ sh $t5, 0x4c2($t6) -/* B7E588 801073E8 8CF90000 */ lw $t9, ($a3) -/* B7E58C 801073EC 440F5000 */ mfc1 $t7, $f10 -/* B7E590 801073F0 00000000 */ nop -/* B7E594 801073F4 A72F04B4 */ sh $t7, 0x4b4($t9) -/* B7E598 801073F8 C7A40000 */ lwc1 $f4, ($sp) -/* B7E59C 801073FC 8CEA0000 */ lw $t2, ($a3) -/* B7E5A0 80107400 46062200 */ add.s $f8, $f4, $f6 -/* B7E5A4 80107404 4600428D */ trunc.w.s $f10, $f8 -/* B7E5A8 80107408 44095000 */ mfc1 $t1, $f10 -/* B7E5AC 8010740C 00000000 */ nop -/* B7E5B0 80107410 A54904B6 */ sh $t1, 0x4b6($t2) -/* B7E5B4 80107414 8CE50000 */ lw $a1, ($a3) -/* B7E5B8 80107418 84AB0B24 */ lh $t3, 0xb24($a1) -/* B7E5BC 8010741C 84AC0B28 */ lh $t4, 0xb28($a1) -/* B7E5C0 80107420 84AE04C0 */ lh $t6, 0x4c0($a1) -/* B7E5C4 80107424 27BD0010 */ addiu $sp, $sp, 0x10 -/* B7E5C8 80107428 016C6821 */ addu $t5, $t3, $t4 -/* B7E5CC 8010742C 05C10003 */ bgez $t6, .L8010743C -/* B7E5D0 80107430 000EC043 */ sra $t8, $t6, 1 -/* B7E5D4 80107434 25C10001 */ addiu $at, $t6, 1 -/* B7E5D8 80107438 0001C043 */ sra $t8, $at, 1 -.L8010743C: -/* B7E5DC 8010743C 01B87823 */ subu $t7, $t5, $t8 -/* B7E5E0 80107440 03E00008 */ jr $ra -/* B7E5E4 80107444 A4AF0F14 */ sh $t7, 0xf14($a1) - diff --git a/asm/non_matchings/code/z_message_PAL/func_80107448.s b/asm/non_matchings/code/z_message_PAL/func_80107448.s deleted file mode 100644 index 2b614a2ff4..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80107448.s +++ /dev/null @@ -1,152 +0,0 @@ -.rdata -glabel D_80153D90 - # Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x) - .asciz " メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n" - .balign 4 - -glabel D_80153DEC - # Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x) - .asciz " メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n" - .balign 4 - -glabel D_80153E48 - # Message not found!!! = %x - .asciz " メッセージが,見つからなかった!!! = %x\n" - .balign 4 - -.text -glabel func_80107448 -/* B7E5E8 80107448 3C028016 */ lui $v0, %hi(gSaveContext+0x1409) # $v0, 0x8016 -/* B7E5EC 8010744C 9042FA69 */ lbu $v0, %lo(gSaveContext+0x1409)($v0) -/* B7E5F0 80107450 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* B7E5F4 80107454 3C038015 */ lui $v1, %hi(D_801538F0) # $v1, 0x8015 -/* B7E5F8 80107458 AFBF0024 */ sw $ra, 0x24($sp) -/* B7E5FC 8010745C AFA40040 */ sw $a0, 0x40($sp) -/* B7E600 80107460 AFA50044 */ sw $a1, 0x44($sp) -/* B7E604 80107464 30A6FFFF */ andi $a2, $a1, 0xffff -/* B7E608 80107468 14400021 */ bnez $v0, .L801074F0 -/* B7E60C 8010746C 8C6338F0 */ lw $v1, %lo(D_801538F0)($v1) -/* B7E610 80107470 94620000 */ lhu $v0, ($v1) -/* B7E614 80107474 3404FFFF */ li $a0, 65535 -/* B7E618 80107478 8C6B0004 */ lw $t3, 4($v1) -/* B7E61C 8010747C 10820042 */ beq $a0, $v0, .L80107588 -/* B7E620 80107480 00C02825 */ move $a1, $a2 -.L80107484: -/* B7E624 80107484 54A20015 */ bnel $a1, $v0, .L801074DC -/* B7E628 80107488 94620008 */ lhu $v0, 8($v1) -/* B7E62C 8010748C 8FA20040 */ lw $v0, 0x40($sp) -/* B7E630 80107490 906E0002 */ lbu $t6, 2($v1) -/* B7E634 80107494 8C690004 */ lw $t1, 4($v1) -/* B7E638 80107498 3C048015 */ lui $a0, %hi(D_80153D90) # $a0, 0x8015 -/* B7E63C 8010749C A04E2208 */ sb $t6, 0x2208($v0) -/* B7E640 801074A0 8C6A000C */ lw $t2, 0xc($v1) -/* B7E644 801074A4 012B3023 */ subu $a2, $t1, $t3 -/* B7E648 801074A8 AC462200 */ sw $a2, 0x2200($v0) -/* B7E64C 801074AC 01493823 */ subu $a3, $t2, $t1 -/* B7E650 801074B0 AC472204 */ sw $a3, 0x2204($v0) -/* B7E654 801074B4 24630008 */ addiu $v1, $v1, 8 -/* B7E658 801074B8 AFAB0014 */ sw $t3, 0x14($sp) -/* B7E65C 801074BC 24843D90 */ addiu $a0, %lo(D_80153D90) # addiu $a0, $a0, 0x3d90 -/* B7E660 801074C0 24422200 */ addiu $v0, $v0, 0x2200 -/* B7E664 801074C4 AFA90010 */ sw $t1, 0x10($sp) -/* B7E668 801074C8 0C00084C */ jal osSyncPrintf -/* B7E66C 801074CC AFAA0018 */ sw $t2, 0x18($sp) -/* B7E670 801074D0 10000052 */ b .L8010761C -/* B7E674 801074D4 8FBF0024 */ lw $ra, 0x24($sp) -/* B7E678 801074D8 94620008 */ lhu $v0, 8($v1) -.L801074DC: -/* B7E67C 801074DC 24630008 */ addiu $v1, $v1, 8 -/* B7E680 801074E0 1482FFE8 */ bne $a0, $v0, .L80107484 -/* B7E684 801074E4 00000000 */ nop -/* B7E688 801074E8 10000027 */ b .L80107588 -/* B7E68C 801074EC 00000000 */ nop -.L801074F0: -/* B7E690 801074F0 24010001 */ li $at, 1 -/* B7E694 801074F4 14410004 */ bne $v0, $at, .L80107508 -/* B7E698 801074F8 3C088015 */ lui $t0, %hi(D_801538F8) -/* B7E69C 801074FC 3C088015 */ lui $t0, %hi(D_801538F4) # $t0, 0x8015 -/* B7E6A0 80107500 10000002 */ b .L8010750C -/* B7E6A4 80107504 8D0838F4 */ lw $t0, %lo(D_801538F4)($t0) -.L80107508: -/* B7E6A8 80107508 8D0838F8 */ lw $t0, %lo(D_801538F8)($t0) -.L8010750C: -/* B7E6AC 8010750C 94620000 */ lhu $v0, ($v1) -/* B7E6B0 80107510 3404FFFF */ li $a0, 65535 -/* B7E6B4 80107514 8C6B0004 */ lw $t3, 4($v1) -/* B7E6B8 80107518 1082001B */ beq $a0, $v0, .L80107588 -/* B7E6BC 8010751C 00C02825 */ move $a1, $a2 -.L80107520: -/* B7E6C0 80107520 54A20015 */ bnel $a1, $v0, .L80107578 -/* B7E6C4 80107524 94620008 */ lhu $v0, 8($v1) -/* B7E6C8 80107528 8FA20040 */ lw $v0, 0x40($sp) -/* B7E6CC 8010752C 906F0002 */ lbu $t7, 2($v1) -/* B7E6D0 80107530 8D090000 */ lw $t1, ($t0) -/* B7E6D4 80107534 3C048015 */ lui $a0, %hi(D_80153DEC) # $a0, 0x8015 -/* B7E6D8 80107538 A04F2208 */ sb $t7, 0x2208($v0) -/* B7E6DC 8010753C 8D0A0004 */ lw $t2, 4($t0) -/* B7E6E0 80107540 012B3023 */ subu $a2, $t1, $t3 -/* B7E6E4 80107544 AC462200 */ sw $a2, 0x2200($v0) -/* B7E6E8 80107548 01493823 */ subu $a3, $t2, $t1 -/* B7E6EC 8010754C AC472204 */ sw $a3, 0x2204($v0) -/* B7E6F0 80107550 25080004 */ addiu $t0, $t0, 4 -/* B7E6F4 80107554 AFAB0014 */ sw $t3, 0x14($sp) -/* B7E6F8 80107558 24843DEC */ addiu $a0, %lo(D_80153DEC) # addiu $a0, $a0, 0x3dec -/* B7E6FC 8010755C 24422200 */ addiu $v0, $v0, 0x2200 -/* B7E700 80107560 AFA90010 */ sw $t1, 0x10($sp) -/* B7E704 80107564 0C00084C */ jal osSyncPrintf -/* B7E708 80107568 AFAA0018 */ sw $t2, 0x18($sp) -/* B7E70C 8010756C 1000002B */ b .L8010761C -/* B7E710 80107570 8FBF0024 */ lw $ra, 0x24($sp) -/* B7E714 80107574 94620008 */ lhu $v0, 8($v1) -.L80107578: -/* B7E718 80107578 24630008 */ addiu $v1, $v1, 8 -/* B7E71C 8010757C 25080004 */ addiu $t0, $t0, 4 -/* B7E720 80107580 1482FFE7 */ bne $a0, $v0, .L80107520 -/* B7E724 80107584 00000000 */ nop -.L80107588: -/* B7E728 80107588 3C048015 */ lui $a0, %hi(D_80153E48) # $a0, 0x8015 -/* B7E72C 8010758C 24843E48 */ addiu $a0, %lo(D_80153E48) # addiu $a0, $a0, 0x3e48 -/* B7E730 80107590 00C02825 */ move $a1, $a2 -/* B7E734 80107594 0C00084C */ jal osSyncPrintf -/* B7E738 80107598 AFAB0028 */ sw $t3, 0x28($sp) -/* B7E73C 8010759C 3C028016 */ lui $v0, %hi(gSaveContext+0x1409) # $v0, 0x8016 -/* B7E740 801075A0 9042FA69 */ lbu $v0, %lo(gSaveContext+0x1409)($v0) -/* B7E744 801075A4 3C038015 */ lui $v1, %hi(D_801538F0) # $v1, 0x8015 -/* B7E748 801075A8 8FA40040 */ lw $a0, 0x40($sp) -/* B7E74C 801075AC 8FAB0028 */ lw $t3, 0x28($sp) -/* B7E750 801075B0 14400008 */ bnez $v0, .L801075D4 -/* B7E754 801075B4 8C6338F0 */ lw $v1, %lo(D_801538F0)($v1) -/* B7E758 801075B8 90780002 */ lbu $t8, 2($v1) -/* B7E75C 801075BC 8C690004 */ lw $t1, 4($v1) -/* B7E760 801075C0 24822200 */ addiu $v0, $a0, 0x2200 -/* B7E764 801075C4 A0580008 */ sb $t8, 8($v0) -/* B7E768 801075C8 24630008 */ addiu $v1, $v1, 8 -/* B7E76C 801075CC 1000000E */ b .L80107608 -/* B7E770 801075D0 8C6A0004 */ lw $t2, 4($v1) -.L801075D4: -/* B7E774 801075D4 24010001 */ li $at, 1 -/* B7E778 801075D8 14410004 */ bne $v0, $at, .L801075EC -/* B7E77C 801075DC 3C088015 */ lui $t0, %hi(D_801538F8) -/* B7E780 801075E0 3C088015 */ lui $t0, %hi(D_801538F4) # $t0, 0x8015 -/* B7E784 801075E4 10000002 */ b .L801075F0 -/* B7E788 801075E8 8D0838F4 */ lw $t0, %lo(D_801538F4)($t0) -.L801075EC: -/* B7E78C 801075EC 8D0838F8 */ lw $t0, %lo(D_801538F8)($t0) -.L801075F0: -/* B7E790 801075F0 90790002 */ lbu $t9, 2($v1) -/* B7E794 801075F4 8D090000 */ lw $t1, ($t0) -/* B7E798 801075F8 24822200 */ addiu $v0, $a0, 0x2200 -/* B7E79C 801075FC A0590008 */ sb $t9, 8($v0) -/* B7E7A0 80107600 25080004 */ addiu $t0, $t0, 4 -/* B7E7A4 80107604 8D0A0000 */ lw $t2, ($t0) -.L80107608: -/* B7E7A8 80107608 012B6023 */ subu $t4, $t1, $t3 -/* B7E7AC 8010760C 01496823 */ subu $t5, $t2, $t1 -/* B7E7B0 80107610 AC4C0000 */ sw $t4, ($v0) -/* B7E7B4 80107614 AC4D0004 */ sw $t5, 4($v0) -/* B7E7B8 80107618 8FBF0024 */ lw $ra, 0x24($sp) -.L8010761C: -/* B7E7BC 8010761C 27BD0040 */ addiu $sp, $sp, 0x40 -/* B7E7C0 80107620 03E00008 */ jr $ra -/* B7E7C4 80107624 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_80107628.s b/asm/non_matchings/code/z_message_PAL/func_80107628.s deleted file mode 100644 index bf5ca2ddf4..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80107628.s +++ /dev/null @@ -1,54 +0,0 @@ -.rdata -glabel D_80153E74 - # Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x) - .asciz " メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n" - .balign 4 - -.text -glabel func_80107628 -/* B7E7C8 80107628 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B7E7CC 8010762C 3C028015 */ lui $v0, %hi(D_801538FC) # $v0, 0x8015 -/* B7E7D0 80107630 8C4238FC */ lw $v0, %lo(D_801538FC)($v0) -/* B7E7D4 80107634 AFBF0024 */ sw $ra, 0x24($sp) -/* B7E7D8 80107638 AFA40028 */ sw $a0, 0x28($sp) -/* B7E7DC 8010763C AFA5002C */ sw $a1, 0x2c($sp) -/* B7E7E0 80107640 94430000 */ lhu $v1, ($v0) -/* B7E7E4 80107644 3406FFFF */ li $a2, 65535 -/* B7E7E8 80107648 30A7FFFF */ andi $a3, $a1, 0xffff -/* B7E7EC 8010764C 10C3001B */ beq $a2, $v1, .L801076BC -/* B7E7F0 80107650 8C4A0004 */ lw $t2, 4($v0) -/* B7E7F4 80107654 00E02825 */ move $a1, $a3 -.L80107658: -/* B7E7F8 80107658 54A30015 */ bnel $a1, $v1, .L801076B0 -/* B7E7FC 8010765C 94430008 */ lhu $v1, 8($v0) -/* B7E800 80107660 8FA30028 */ lw $v1, 0x28($sp) -/* B7E804 80107664 904E0002 */ lbu $t6, 2($v0) -/* B7E808 80107668 8C480004 */ lw $t0, 4($v0) -/* B7E80C 8010766C 3C048015 */ lui $a0, %hi(D_80153E74) # $a0, 0x8015 -/* B7E810 80107670 A06E2208 */ sb $t6, 0x2208($v1) -/* B7E814 80107674 8C49000C */ lw $t1, 0xc($v0) -/* B7E818 80107678 010A3023 */ subu $a2, $t0, $t2 -/* B7E81C 8010767C AC662200 */ sw $a2, 0x2200($v1) -/* B7E820 80107680 01283823 */ subu $a3, $t1, $t0 -/* B7E824 80107684 AC672204 */ sw $a3, 0x2204($v1) -/* B7E828 80107688 24420008 */ addiu $v0, $v0, 8 -/* B7E82C 8010768C AFAA0014 */ sw $t2, 0x14($sp) -/* B7E830 80107690 24843E74 */ addiu $a0, %lo(D_80153E74) # addiu $a0, $a0, 0x3e74 -/* B7E834 80107694 24632200 */ addiu $v1, $v1, 0x2200 -/* B7E838 80107698 AFA80010 */ sw $t0, 0x10($sp) -/* B7E83C 8010769C 0C00084C */ jal osSyncPrintf -/* B7E840 801076A0 AFA90018 */ sw $t1, 0x18($sp) -/* B7E844 801076A4 10000006 */ b .L801076C0 -/* B7E848 801076A8 8FBF0024 */ lw $ra, 0x24($sp) -/* B7E84C 801076AC 94430008 */ lhu $v1, 8($v0) -.L801076B0: -/* B7E850 801076B0 24420008 */ addiu $v0, $v0, 8 -/* B7E854 801076B4 14C3FFE8 */ bne $a2, $v1, .L80107658 -/* B7E858 801076B8 00000000 */ nop -.L801076BC: -/* B7E85C 801076BC 8FBF0024 */ lw $ra, 0x24($sp) -.L801076C0: -/* B7E860 801076C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* B7E864 801076C4 03E00008 */ jr $ra -/* B7E868 801076C8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_801076CC.s b/asm/non_matchings/code/z_message_PAL/func_801076CC.s deleted file mode 100644 index 3a60bb9b33..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_801076CC.s +++ /dev/null @@ -1,204 +0,0 @@ -.late_rodata -glabel jtbl_80154B28 - .word L80107934 - .word L801076F4 - .word L8010773C - .word L801077B4 - .word L80107804 - .word L8010787C - .word L801078CC - .word L80107918 - -.text -glabel func_801076CC -/* B7E86C 801076CC AFA50004 */ sw $a1, 4($sp) -/* B7E870 801076D0 30A5FFFF */ andi $a1, $a1, 0xffff -/* B7E874 801076D4 2CA10008 */ sltiu $at, $a1, 8 -/* B7E878 801076D8 10200096 */ beqz $at, .L80107934 -/* B7E87C 801076DC 00057080 */ sll $t6, $a1, 2 -/* B7E880 801076E0 3C018015 */ lui $at, %hi(jtbl_80154B28) -/* B7E884 801076E4 002E0821 */ addu $at, $at, $t6 -/* B7E888 801076E8 8C2E4B28 */ lw $t6, %lo(jtbl_80154B28)($at) -/* B7E88C 801076EC 01C00008 */ jr $t6 -/* B7E890 801076F0 00000000 */ nop -glabel L801076F4 -/* B7E894 801076F4 248F7FFF */ addiu $t7, $a0, 0x7fff -/* B7E898 801076F8 91EF62FE */ lbu $t7, 0x62fe($t7) -/* B7E89C 801076FC 24010001 */ li $at, 1 -/* B7E8A0 80107700 2402003C */ li $v0, 60 -/* B7E8A4 80107704 15E10008 */ bne $t7, $at, .L80107728 -/* B7E8A8 80107708 240500FF */ li $a1, 255 -/* B7E8AC 8010770C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E8B0 80107710 240500FF */ li $a1, 255 -/* B7E8B4 80107714 24180078 */ li $t8, 120 -/* B7E8B8 80107718 A42563DD */ sh $a1, 0x63dd($at) -/* B7E8BC 8010771C A43863DF */ sh $t8, 0x63df($at) -/* B7E8C0 80107720 03E00008 */ jr $ra -/* B7E8C4 80107724 A42063E1 */ sh $zero, 0x63e1($at) -.L80107728: -/* B7E8C8 80107728 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E8CC 8010772C A42563DD */ sh $a1, 0x63dd($at) -/* B7E8D0 80107730 A42263DF */ sh $v0, 0x63df($at) -/* B7E8D4 80107734 03E00008 */ jr $ra -/* B7E8D8 80107738 A42263E1 */ sh $v0, 0x63e1($at) -glabel L8010773C -/* B7E8DC 8010773C 24997FFF */ addiu $t9, $a0, 0x7fff -/* B7E8E0 80107740 933962FE */ lbu $t9, 0x62fe($t9) -/* B7E8E4 80107744 24010001 */ li $at, 1 -/* B7E8E8 80107748 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B7E8EC 8010774C 1721000E */ bne $t9, $at, .L80107788 -/* B7E8F0 80107750 2442FA90 */ addiu $v0, %lo(gGameInfo) # addiu $v0, $v0, -0x570 -/* B7E8F4 80107754 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B7E8F8 80107758 2442FA90 */ addiu $v0, %lo(gGameInfo) # addiu $v0, $v0, -0x570 -/* B7E8FC 8010775C 8C480000 */ lw $t0, ($v0) -/* B7E900 80107760 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E904 80107764 85090F56 */ lh $t1, 0xf56($t0) -/* B7E908 80107768 A42963DD */ sh $t1, 0x63dd($at) -/* B7E90C 8010776C 8C4A0000 */ lw $t2, ($v0) -/* B7E910 80107770 854B0F58 */ lh $t3, 0xf58($t2) -/* B7E914 80107774 A42B63DF */ sh $t3, 0x63df($at) -/* B7E918 80107778 8C4C0000 */ lw $t4, ($v0) -/* B7E91C 8010777C 858D0F5A */ lh $t5, 0xf5a($t4) -/* B7E920 80107780 03E00008 */ jr $ra -/* B7E924 80107784 A42D63E1 */ sh $t5, 0x63e1($at) -.L80107788: -/* B7E928 80107788 8C4E0000 */ lw $t6, ($v0) -/* B7E92C 8010778C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E930 80107790 85CF0F5C */ lh $t7, 0xf5c($t6) -/* B7E934 80107794 A42F63DD */ sh $t7, 0x63dd($at) -/* B7E938 80107798 8C580000 */ lw $t8, ($v0) -/* B7E93C 8010779C 87190F5E */ lh $t9, 0xf5e($t8) -/* B7E940 801077A0 A43963DF */ sh $t9, 0x63df($at) -/* B7E944 801077A4 8C480000 */ lw $t0, ($v0) -/* B7E948 801077A8 85090F60 */ lh $t1, 0xf60($t0) -/* B7E94C 801077AC 03E00008 */ jr $ra -/* B7E950 801077B0 A42963E1 */ sh $t1, 0x63e1($at) -glabel L801077B4 -/* B7E954 801077B4 248A7FFF */ addiu $t2, $a0, 0x7fff -/* B7E958 801077B8 914A62FE */ lbu $t2, 0x62fe($t2) -/* B7E95C 801077BC 24010001 */ li $at, 1 -/* B7E960 801077C0 240500FF */ li $a1, 255 -/* B7E964 801077C4 15410009 */ bne $t2, $at, .L801077EC -/* B7E968 801077C8 240D0050 */ li $t5, 80 -/* B7E96C 801077CC 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E970 801077D0 240500FF */ li $a1, 255 -/* B7E974 801077D4 240B0050 */ li $t3, 80 -/* B7E978 801077D8 240C006E */ li $t4, 110 -/* B7E97C 801077DC A42B63DD */ sh $t3, 0x63dd($at) -/* B7E980 801077E0 A42C63DF */ sh $t4, 0x63df($at) -/* B7E984 801077E4 03E00008 */ jr $ra -/* B7E988 801077E8 A42563E1 */ sh $a1, 0x63e1($at) -.L801077EC: -/* B7E98C 801077EC 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E990 801077F0 240E005A */ li $t6, 90 -/* B7E994 801077F4 A42D63DD */ sh $t5, 0x63dd($at) -/* B7E998 801077F8 A42E63DF */ sh $t6, 0x63df($at) -/* B7E99C 801077FC 03E00008 */ jr $ra -/* B7E9A0 80107800 A42563E1 */ sh $a1, 0x63e1($at) -glabel L80107804 -/* B7E9A4 80107804 24827FFF */ addiu $v0, $a0, 0x7fff -/* B7E9A8 80107808 904262FE */ lbu $v0, 0x62fe($v0) -/* B7E9AC 8010780C 24010001 */ li $at, 1 -/* B7E9B0 80107810 240500FF */ li $a1, 255 -/* B7E9B4 80107814 14410007 */ bne $v0, $at, .L80107834 -/* B7E9B8 80107818 240F005A */ li $t7, 90 -/* B7E9BC 8010781C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E9C0 80107820 241800B4 */ li $t8, 180 -/* B7E9C4 80107824 A42F63DD */ sh $t7, 0x63dd($at) -/* B7E9C8 80107828 A43863DF */ sh $t8, 0x63df($at) -/* B7E9CC 8010782C 03E00008 */ jr $ra -/* B7E9D0 80107830 A42563E1 */ sh $a1, 0x63e1($at) -.L80107834: -/* B7E9D4 80107834 24010005 */ li $at, 5 -/* B7E9D8 80107838 14410009 */ bne $v0, $at, .L80107860 -/* B7E9DC 8010783C 240500FF */ li $a1, 255 -/* B7E9E0 80107840 24817FFF */ addiu $at, $a0, 0x7fff -/* B7E9E4 80107844 24190050 */ li $t9, 80 -/* B7E9E8 80107848 24080096 */ li $t0, 150 -/* B7E9EC 8010784C 240900B4 */ li $t1, 180 -/* B7E9F0 80107850 A43963DD */ sh $t9, 0x63dd($at) -/* B7E9F4 80107854 A42863DF */ sh $t0, 0x63df($at) -/* B7E9F8 80107858 03E00008 */ jr $ra -/* B7E9FC 8010785C A42963E1 */ sh $t1, 0x63e1($at) -.L80107860: -/* B7EA00 80107860 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EA04 80107864 240A0064 */ li $t2, 100 -/* B7EA08 80107868 240B00B4 */ li $t3, 180 -/* B7EA0C 8010786C A42A63DD */ sh $t2, 0x63dd($at) -/* B7EA10 80107870 A42B63DF */ sh $t3, 0x63df($at) -/* B7EA14 80107874 03E00008 */ jr $ra -/* B7EA18 80107878 A42563E1 */ sh $a1, 0x63e1($at) -glabel L8010787C -/* B7EA1C 8010787C 248C7FFF */ addiu $t4, $a0, 0x7fff -/* B7EA20 80107880 918C62FE */ lbu $t4, 0x62fe($t4) -/* B7EA24 80107884 24010001 */ li $at, 1 -/* B7EA28 80107888 240500FF */ li $a1, 255 -/* B7EA2C 8010788C 15810009 */ bne $t4, $at, .L801078B4 -/* B7EA30 80107890 240F0096 */ li $t7, 150 -/* B7EA34 80107894 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EA38 80107898 240500FF */ li $a1, 255 -/* B7EA3C 8010789C 240D00D2 */ li $t5, 210 -/* B7EA40 801078A0 240E0064 */ li $t6, 100 -/* B7EA44 801078A4 A42D63DD */ sh $t5, 0x63dd($at) -/* B7EA48 801078A8 A42E63DF */ sh $t6, 0x63df($at) -/* B7EA4C 801078AC 03E00008 */ jr $ra -/* B7EA50 801078B0 A42563E1 */ sh $a1, 0x63e1($at) -.L801078B4: -/* B7EA54 801078B4 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EA58 801078B8 241800B4 */ li $t8, 180 -/* B7EA5C 801078BC A42563DD */ sh $a1, 0x63dd($at) -/* B7EA60 801078C0 A42F63DF */ sh $t7, 0x63df($at) -/* B7EA64 801078C4 03E00008 */ jr $ra -/* B7EA68 801078C8 A43863E1 */ sh $t8, 0x63e1($at) -glabel L801078CC -/* B7EA6C 801078CC 24997FFF */ addiu $t9, $a0, 0x7fff -/* B7EA70 801078D0 933962FE */ lbu $t9, 0x62fe($t9) -/* B7EA74 801078D4 24010001 */ li $at, 1 -/* B7EA78 801078D8 240500FF */ li $a1, 255 -/* B7EA7C 801078DC 17210008 */ bne $t9, $at, .L80107900 -/* B7EA80 801078E0 240900E1 */ li $t1, 225 -/* B7EA84 801078E4 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EA88 801078E8 240500FF */ li $a1, 255 -/* B7EA8C 801078EC 2408001E */ li $t0, 30 -/* B7EA90 801078F0 A42563DD */ sh $a1, 0x63dd($at) -/* B7EA94 801078F4 A42563DF */ sh $a1, 0x63df($at) -/* B7EA98 801078F8 03E00008 */ jr $ra -/* B7EA9C 801078FC A42863E1 */ sh $t0, 0x63e1($at) -.L80107900: -/* B7EAA0 80107900 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EAA4 80107904 240A0032 */ li $t2, 50 -/* B7EAA8 80107908 A42963DD */ sh $t1, 0x63dd($at) -/* B7EAAC 8010790C A42563DF */ sh $a1, 0x63df($at) -/* B7EAB0 80107910 03E00008 */ jr $ra -/* B7EAB4 80107914 A42A63E1 */ sh $t2, 0x63e1($at) -glabel L80107918 -/* B7EAB8 80107918 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EABC 8010791C A42063E1 */ sh $zero, 0x63e1($at) -/* B7EAC0 80107920 24837FFF */ addiu $v1, $a0, 0x7fff -/* B7EAC4 80107924 846363E1 */ lh $v1, 0x63e1($v1) -/* B7EAC8 80107928 A42363DF */ sh $v1, 0x63df($at) -/* B7EACC 8010792C 03E00008 */ jr $ra -/* B7EAD0 80107930 A42363DD */ sh $v1, 0x63dd($at) -.L80107934: -glabel L80107934 -/* B7EAD4 80107934 34018000 */ li $at, 32768 -/* B7EAD8 80107938 00811021 */ addu $v0, $a0, $at -/* B7EADC 8010793C 904B62FD */ lbu $t3, 0x62fd($v0) -/* B7EAE0 80107940 24010005 */ li $at, 5 -/* B7EAE4 80107944 240500FF */ li $a1, 255 -/* B7EAE8 80107948 15610006 */ bne $t3, $at, .L80107964 -/* B7EAEC 8010794C 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EAF0 80107950 A42063E1 */ sh $zero, 0x63e1($at) -/* B7EAF4 80107954 844363E0 */ lh $v1, 0x63e0($v0) -/* B7EAF8 80107958 A42363DF */ sh $v1, 0x63df($at) -/* B7EAFC 8010795C 03E00008 */ jr $ra -/* B7EB00 80107960 A42363DD */ sh $v1, 0x63dd($at) -.L80107964: -/* B7EB04 80107964 24817FFF */ addiu $at, $a0, 0x7fff -/* B7EB08 80107968 A42563E1 */ sh $a1, 0x63e1($at) -/* B7EB0C 8010796C 844363E0 */ lh $v1, 0x63e0($v0) -/* B7EB10 80107970 A42363DF */ sh $v1, 0x63df($at) -/* B7EB14 80107974 A42363DD */ sh $v1, 0x63dd($at) -/* B7EB18 80107978 03E00008 */ jr $ra -/* B7EB1C 8010797C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_80107980.s b/asm/non_matchings/code/z_message_PAL/func_80107980.s deleted file mode 100644 index 5f93b338b9..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80107980.s +++ /dev/null @@ -1,504 +0,0 @@ -glabel func_80107980 -/* B7EB20 80107980 27BDFF90 */ addiu $sp, $sp, -0x70 -/* B7EB24 80107984 3C0F8015 */ lui $t7, %hi(D_8014B308) # $t7, 0x8015 -/* B7EB28 80107988 85EFB308 */ lh $t7, %lo(D_8014B308)($t7) -/* B7EB2C 8010798C AFA40070 */ sw $a0, 0x70($sp) -/* B7EB30 80107990 AFA50074 */ sw $a1, 0x74($sp) -/* B7EB34 80107994 AFA60078 */ sw $a2, 0x78($sp) -/* B7EB38 80107998 AFA7007C */ sw $a3, 0x7c($sp) -/* B7EB3C 8010799C 8CA20000 */ lw $v0, ($a1) -/* B7EB40 801079A0 15E001C2 */ bnez $t7, .L801080AC -/* B7EB44 801079A4 00A07025 */ move $t6, $a1 -/* B7EB48 801079A8 3C068015 */ lui $a2, %hi(D_801539F0) # $a2, 0x8015 -/* B7EB4C 801079AC 84C639F0 */ lh $a2, %lo(D_801539F0)($a2) -/* B7EB50 801079B0 3C188015 */ lui $t8, %hi(D_801539C8) # $t8, 0x8015 -/* B7EB54 801079B4 271839C8 */ addiu $t8, %lo(D_801539C8) # addiu $t8, $t8, 0x39c8 -/* B7EB58 801079B8 00C00821 */ addu $at, $a2, $zero -/* B7EB5C 801079BC 00063080 */ sll $a2, $a2, 2 -/* B7EB60 801079C0 00C13023 */ subu $a2, $a2, $at -/* B7EB64 801079C4 00063040 */ sll $a2, $a2, 1 -/* B7EB68 801079C8 3C0A8015 */ lui $t2, %hi(D_801539E0) # $t2, 0x8015 -/* B7EB6C 801079CC 00D82021 */ addu $a0, $a2, $t8 -/* B7EB70 801079D0 854A39E0 */ lh $t2, %lo(D_801539E0)($t2) -/* B7EB74 801079D4 84850000 */ lh $a1, ($a0) -/* B7EB78 801079D8 3C088015 */ lui $t0, %hi(D_801539EC) # $t0, 0x8015 -/* B7EB7C 801079DC 3C098015 */ lui $t1, %hi(D_801539E4) # $t1, 0x8015 -/* B7EB80 801079E0 01453823 */ subu $a3, $t2, $a1 -/* B7EB84 801079E4 04E20004 */ bltzl $a3, .L801079F8 -/* B7EB88 801079E8 00071823 */ negu $v1, $a3 -/* B7EB8C 801079EC 10000002 */ b .L801079F8 -/* B7EB90 801079F0 00E01825 */ move $v1, $a3 -/* B7EB94 801079F4 00071823 */ negu $v1, $a3 -.L801079F8: -/* B7EB98 801079F8 850839EC */ lh $t0, %lo(D_801539EC)($t0) -/* B7EB9C 801079FC 852939E4 */ lh $t1, %lo(D_801539E4)($t1) -/* B7EBA0 80107A00 848B0002 */ lh $t3, 2($a0) -/* B7EBA4 80107A04 0068001A */ div $zero, $v1, $t0 -/* B7EBA8 80107A08 00006812 */ mflo $t5 -/* B7EBAC 80107A0C 000D6C00 */ sll $t5, $t5, 0x10 -/* B7EBB0 80107A10 15000002 */ bnez $t0, .L80107A1C -/* B7EBB4 80107A14 00000000 */ nop -/* B7EBB8 80107A18 0007000D */ break 7 -.L80107A1C: -/* B7EBBC 80107A1C 2401FFFF */ li $at, -1 -/* B7EBC0 80107A20 15010004 */ bne $t0, $at, .L80107A34 -/* B7EBC4 80107A24 3C018000 */ lui $at, 0x8000 -/* B7EBC8 80107A28 14610002 */ bne $v1, $at, .L80107A34 -/* B7EBCC 80107A2C 00000000 */ nop -/* B7EBD0 80107A30 0006000D */ break 6 -.L80107A34: -/* B7EBD4 80107A34 012B3823 */ subu $a3, $t1, $t3 -/* B7EBD8 80107A38 04E00003 */ bltz $a3, .L80107A48 -/* B7EBDC 80107A3C 000D6C03 */ sra $t5, $t5, 0x10 -/* B7EBE0 80107A40 10000002 */ b .L80107A4C -/* B7EBE4 80107A44 00E01825 */ move $v1, $a3 -.L80107A48: -/* B7EBE8 80107A48 00071823 */ negu $v1, $a3 -.L80107A4C: -/* B7EBEC 80107A4C 0068001A */ div $zero, $v1, $t0 -/* B7EBF0 80107A50 3C078015 */ lui $a3, %hi(D_801539E8) # $a3, 0x8015 -/* B7EBF4 80107A54 84E739E8 */ lh $a3, %lo(D_801539E8)($a3) -/* B7EBF8 80107A58 848C0004 */ lh $t4, 4($a0) -/* B7EBFC 80107A5C 15000002 */ bnez $t0, .L80107A68 -/* B7EC00 80107A60 00000000 */ nop -/* B7EC04 80107A64 0007000D */ break 7 -.L80107A68: -/* B7EC08 80107A68 2401FFFF */ li $at, -1 -/* B7EC0C 80107A6C 15010004 */ bne $t0, $at, .L80107A80 -/* B7EC10 80107A70 3C018000 */ lui $at, 0x8000 -/* B7EC14 80107A74 14610002 */ bne $v1, $at, .L80107A80 -/* B7EC18 80107A78 00000000 */ nop -/* B7EC1C 80107A7C 0006000D */ break 6 -.L80107A80: -/* B7EC20 80107A80 00EC7023 */ subu $t6, $a3, $t4 -/* B7EC24 80107A84 0000C812 */ mflo $t9 -/* B7EC28 80107A88 A7B90060 */ sh $t9, 0x60($sp) -/* B7EC2C 80107A8C AFAE0000 */ sw $t6, ($sp) -/* B7EC30 80107A90 05C00003 */ bltz $t6, .L80107AA0 -/* B7EC34 80107A94 01C07825 */ move $t7, $t6 -/* B7EC38 80107A98 10000003 */ b .L80107AA8 -/* B7EC3C 80107A9C 01E01825 */ move $v1, $t7 -.L80107AA0: -/* B7EC40 80107AA0 8FA30000 */ lw $v1, ($sp) -/* B7EC44 80107AA4 00031823 */ negu $v1, $v1 -.L80107AA8: -/* B7EC48 80107AA8 0145082A */ slt $at, $t2, $a1 -/* B7EC4C 80107AAC 54200006 */ bnezl $at, .L80107AC8 -/* B7EC50 80107AB0 014D5021 */ addu $t2, $t2, $t5 -/* B7EC54 80107AB4 014D5023 */ subu $t2, $t2, $t5 -/* B7EC58 80107AB8 000A5400 */ sll $t2, $t2, 0x10 -/* B7EC5C 80107ABC 10000004 */ b .L80107AD0 -/* B7EC60 80107AC0 000A5403 */ sra $t2, $t2, 0x10 -/* B7EC64 80107AC4 014D5021 */ addu $t2, $t2, $t5 -.L80107AC8: -/* B7EC68 80107AC8 000A5400 */ sll $t2, $t2, 0x10 -/* B7EC6C 80107ACC 000A5403 */ sra $t2, $t2, 0x10 -.L80107AD0: -/* B7EC70 80107AD0 012B082A */ slt $at, $t1, $t3 -/* B7EC74 80107AD4 14200006 */ bnez $at, .L80107AF0 -/* B7EC78 80107AD8 3C0D8015 */ lui $t5, %hi(D_801539F4) # $t5, 0x8015 -/* B7EC7C 80107ADC 87B80060 */ lh $t8, 0x60($sp) -/* B7EC80 80107AE0 01384823 */ subu $t1, $t1, $t8 -/* B7EC84 80107AE4 00094C00 */ sll $t1, $t1, 0x10 -/* B7EC88 80107AE8 10000005 */ b .L80107B00 -/* B7EC8C 80107AEC 00094C03 */ sra $t1, $t1, 0x10 -.L80107AF0: -/* B7EC90 80107AF0 87B90060 */ lh $t9, 0x60($sp) -/* B7EC94 80107AF4 01394821 */ addu $t1, $t1, $t9 -/* B7EC98 80107AF8 00094C00 */ sll $t1, $t1, 0x10 -/* B7EC9C 80107AFC 00094C03 */ sra $t1, $t1, 0x10 -.L80107B00: -/* B7ECA0 80107B00 00EC082A */ slt $at, $a3, $t4 -/* B7ECA4 80107B04 14200013 */ bnez $at, .L80107B54 -/* B7ECA8 80107B08 00000000 */ nop -/* B7ECAC 80107B0C 0068001A */ div $zero, $v1, $t0 -/* B7ECB0 80107B10 00007012 */ mflo $t6 -/* B7ECB4 80107B14 000E7C00 */ sll $t7, $t6, 0x10 -/* B7ECB8 80107B18 000FC403 */ sra $t8, $t7, 0x10 -/* B7ECBC 80107B1C 00F83823 */ subu $a3, $a3, $t8 -/* B7ECC0 80107B20 00073C00 */ sll $a3, $a3, 0x10 -/* B7ECC4 80107B24 15000002 */ bnez $t0, .L80107B30 -/* B7ECC8 80107B28 00000000 */ nop -/* B7ECCC 80107B2C 0007000D */ break 7 -.L80107B30: -/* B7ECD0 80107B30 2401FFFF */ li $at, -1 -/* B7ECD4 80107B34 15010004 */ bne $t0, $at, .L80107B48 -/* B7ECD8 80107B38 3C018000 */ lui $at, 0x8000 -/* B7ECDC 80107B3C 14610002 */ bne $v1, $at, .L80107B48 -/* B7ECE0 80107B40 00000000 */ nop -/* B7ECE4 80107B44 0006000D */ break 6 -.L80107B48: -/* B7ECE8 80107B48 00073C03 */ sra $a3, $a3, 0x10 -/* B7ECEC 80107B4C 10000012 */ b .L80107B98 -/* B7ECF0 80107B50 AFA5000C */ sw $a1, 0xc($sp) -.L80107B54: -/* B7ECF4 80107B54 0068001A */ div $zero, $v1, $t0 -/* B7ECF8 80107B58 0000C812 */ mflo $t9 -/* B7ECFC 80107B5C 00197400 */ sll $t6, $t9, 0x10 -/* B7ED00 80107B60 000E7C03 */ sra $t7, $t6, 0x10 -/* B7ED04 80107B64 00EF3821 */ addu $a3, $a3, $t7 -/* B7ED08 80107B68 00073C00 */ sll $a3, $a3, 0x10 -/* B7ED0C 80107B6C 00073C03 */ sra $a3, $a3, 0x10 -/* B7ED10 80107B70 15000002 */ bnez $t0, .L80107B7C -/* B7ED14 80107B74 00000000 */ nop -/* B7ED18 80107B78 0007000D */ break 7 -.L80107B7C: -/* B7ED1C 80107B7C 2401FFFF */ li $at, -1 -/* B7ED20 80107B80 15010004 */ bne $t0, $at, .L80107B94 -/* B7ED24 80107B84 3C018000 */ lui $at, 0x8000 -/* B7ED28 80107B88 14610002 */ bne $v1, $at, .L80107B94 -/* B7ED2C 80107B8C 00000000 */ nop -/* B7ED30 80107B90 0006000D */ break 6 -.L80107B94: -/* B7ED34 80107B94 AFA5000C */ sw $a1, 0xc($sp) -.L80107B98: -/* B7ED38 80107B98 3C188015 */ lui $t8, %hi(D_801539D4) # $t8, 0x8015 -/* B7ED3C 80107B9C 271839D4 */ addiu $t8, %lo(D_801539D4) # addiu $t8, $t8, 0x39d4 -/* B7ED40 80107BA0 00D82821 */ addu $a1, $a2, $t8 -/* B7ED44 80107BA4 85AD39F4 */ lh $t5, %lo(D_801539F4)($t5) -/* B7ED48 80107BA8 84B90000 */ lh $t9, ($a1) -/* B7ED4C 80107BAC 3C018015 */ lui $at, %hi(D_801539E4) -/* B7ED50 80107BB0 01B92023 */ subu $a0, $t5, $t9 -/* B7ED54 80107BB4 AFB90000 */ sw $t9, ($sp) -/* B7ED58 80107BB8 04800008 */ bltz $a0, .L80107BDC -/* B7ED5C 80107BBC 03207025 */ move $t6, $t9 -/* B7ED60 80107BC0 3C018015 */ lui $at, %hi(D_801539E4) # $at, 0x8015 -/* B7ED64 80107BC4 A42939E4 */ sh $t1, %lo(D_801539E4)($at) -/* B7ED68 80107BC8 3C018015 */ lui $at, %hi(D_801539E0) # $at, 0x8015 -/* B7ED6C 80107BCC A42A39E0 */ sh $t2, %lo(D_801539E0)($at) -/* B7ED70 80107BD0 00801825 */ move $v1, $a0 -/* B7ED74 80107BD4 10000006 */ b .L80107BF0 -/* B7ED78 80107BD8 AFAB0008 */ sw $t3, 8($sp) -.L80107BDC: -/* B7ED7C 80107BDC A42939E4 */ sh $t1, %lo(D_801539E4)($at) -/* B7ED80 80107BE0 3C018015 */ lui $at, %hi(D_801539E0) # $at, 0x8015 -/* B7ED84 80107BE4 A42A39E0 */ sh $t2, %lo(D_801539E0)($at) -/* B7ED88 80107BE8 00041823 */ negu $v1, $a0 -/* B7ED8C 80107BEC AFAB0008 */ sw $t3, 8($sp) -.L80107BF0: -/* B7ED90 80107BF0 0068001A */ div $zero, $v1, $t0 -/* B7ED94 80107BF4 3C098015 */ lui $t1, %hi(D_801539F8) # $t1, 0x8015 -/* B7ED98 80107BF8 852939F8 */ lh $t1, %lo(D_801539F8)($t1) -/* B7ED9C 80107BFC 84AB0002 */ lh $t3, 2($a1) -/* B7EDA0 80107C00 00003012 */ mflo $a2 -/* B7EDA4 80107C04 00063400 */ sll $a2, $a2, 0x10 -/* B7EDA8 80107C08 15000002 */ bnez $t0, .L80107C14 -/* B7EDAC 80107C0C 00000000 */ nop -/* B7EDB0 80107C10 0007000D */ break 7 -.L80107C14: -/* B7EDB4 80107C14 2401FFFF */ li $at, -1 -/* B7EDB8 80107C18 15010004 */ bne $t0, $at, .L80107C2C -/* B7EDBC 80107C1C 3C018000 */ lui $at, 0x8000 -/* B7EDC0 80107C20 14610002 */ bne $v1, $at, .L80107C2C -/* B7EDC4 80107C24 00000000 */ nop -/* B7EDC8 80107C28 0006000D */ break 6 -.L80107C2C: -/* B7EDCC 80107C2C 012B2023 */ subu $a0, $t1, $t3 -/* B7EDD0 80107C30 04800006 */ bltz $a0, .L80107C4C -/* B7EDD4 80107C34 00063403 */ sra $a2, $a2, 0x10 -/* B7EDD8 80107C38 3C018015 */ lui $at, %hi(D_801539E8) # $at, 0x8015 -/* B7EDDC 80107C3C A42739E8 */ sh $a3, %lo(D_801539E8)($at) -/* B7EDE0 80107C40 00801825 */ move $v1, $a0 -/* B7EDE4 80107C44 10000005 */ b .L80107C5C -/* B7EDE8 80107C48 AFAC0004 */ sw $t4, 4($sp) -.L80107C4C: -/* B7EDEC 80107C4C 3C018015 */ lui $at, %hi(D_801539E8) # $at, 0x8015 -/* B7EDF0 80107C50 A42739E8 */ sh $a3, %lo(D_801539E8)($at) -/* B7EDF4 80107C54 00041823 */ negu $v1, $a0 -/* B7EDF8 80107C58 AFAC0004 */ sw $t4, 4($sp) -.L80107C5C: -/* B7EDFC 80107C5C 0068001A */ div $zero, $v1, $t0 -/* B7EE00 80107C60 3C0A8015 */ lui $t2, %hi(D_801539FC) # $t2, 0x8015 -/* B7EE04 80107C64 854A39FC */ lh $t2, %lo(D_801539FC)($t2) -/* B7EE08 80107C68 84AC0004 */ lh $t4, 4($a1) -/* B7EE0C 80107C6C 00003812 */ mflo $a3 -/* B7EE10 80107C70 00073C00 */ sll $a3, $a3, 0x10 -/* B7EE14 80107C74 15000002 */ bnez $t0, .L80107C80 -/* B7EE18 80107C78 00000000 */ nop -/* B7EE1C 80107C7C 0007000D */ break 7 -.L80107C80: -/* B7EE20 80107C80 2401FFFF */ li $at, -1 -/* B7EE24 80107C84 15010004 */ bne $t0, $at, .L80107C98 -/* B7EE28 80107C88 3C018000 */ lui $at, 0x8000 -/* B7EE2C 80107C8C 14610002 */ bne $v1, $at, .L80107C98 -/* B7EE30 80107C90 00000000 */ nop -/* B7EE34 80107C94 0006000D */ break 6 -.L80107C98: -/* B7EE38 80107C98 014C2023 */ subu $a0, $t2, $t4 -/* B7EE3C 80107C9C 04800003 */ bltz $a0, .L80107CAC -/* B7EE40 80107CA0 00073C03 */ sra $a3, $a3, 0x10 -/* B7EE44 80107CA4 10000002 */ b .L80107CB0 -/* B7EE48 80107CA8 00801825 */ move $v1, $a0 -.L80107CAC: -/* B7EE4C 80107CAC 00041823 */ negu $v1, $a0 -.L80107CB0: -/* B7EE50 80107CB0 8FA40000 */ lw $a0, ($sp) -/* B7EE54 80107CB4 01A4082A */ slt $at, $t5, $a0 -/* B7EE58 80107CB8 54200006 */ bnezl $at, .L80107CD4 -/* B7EE5C 80107CBC 01A66821 */ addu $t5, $t5, $a2 -/* B7EE60 80107CC0 01A66823 */ subu $t5, $t5, $a2 -/* B7EE64 80107CC4 000D6C00 */ sll $t5, $t5, 0x10 -/* B7EE68 80107CC8 10000004 */ b .L80107CDC -/* B7EE6C 80107CCC 000D6C03 */ sra $t5, $t5, 0x10 -/* B7EE70 80107CD0 01A66821 */ addu $t5, $t5, $a2 -.L80107CD4: -/* B7EE74 80107CD4 000D6C00 */ sll $t5, $t5, 0x10 -/* B7EE78 80107CD8 000D6C03 */ sra $t5, $t5, 0x10 -.L80107CDC: -/* B7EE7C 80107CDC 012B082A */ slt $at, $t1, $t3 -/* B7EE80 80107CE0 54200006 */ bnezl $at, .L80107CFC -/* B7EE84 80107CE4 01274821 */ addu $t1, $t1, $a3 -/* B7EE88 80107CE8 01274823 */ subu $t1, $t1, $a3 -/* B7EE8C 80107CEC 00094C00 */ sll $t1, $t1, 0x10 -/* B7EE90 80107CF0 10000004 */ b .L80107D04 -/* B7EE94 80107CF4 00094C03 */ sra $t1, $t1, 0x10 -/* B7EE98 80107CF8 01274821 */ addu $t1, $t1, $a3 -.L80107CFC: -/* B7EE9C 80107CFC 00094C00 */ sll $t1, $t1, 0x10 -/* B7EEA0 80107D00 00094C03 */ sra $t1, $t1, 0x10 -.L80107D04: -/* B7EEA4 80107D04 014C082A */ slt $at, $t2, $t4 -/* B7EEA8 80107D08 14200013 */ bnez $at, .L80107D58 -/* B7EEAC 80107D0C 00000000 */ nop -/* B7EEB0 80107D10 0068001A */ div $zero, $v1, $t0 -/* B7EEB4 80107D14 00007812 */ mflo $t7 -/* B7EEB8 80107D18 000FC400 */ sll $t8, $t7, 0x10 -/* B7EEBC 80107D1C 0018CC03 */ sra $t9, $t8, 0x10 -/* B7EEC0 80107D20 01595023 */ subu $t2, $t2, $t9 -/* B7EEC4 80107D24 000A5400 */ sll $t2, $t2, 0x10 -/* B7EEC8 80107D28 15000002 */ bnez $t0, .L80107D34 -/* B7EECC 80107D2C 00000000 */ nop -/* B7EED0 80107D30 0007000D */ break 7 -.L80107D34: -/* B7EED4 80107D34 2401FFFF */ li $at, -1 -/* B7EED8 80107D38 15010004 */ bne $t0, $at, .L80107D4C -/* B7EEDC 80107D3C 3C018000 */ lui $at, 0x8000 -/* B7EEE0 80107D40 14610002 */ bne $v1, $at, .L80107D4C -/* B7EEE4 80107D44 00000000 */ nop -/* B7EEE8 80107D48 0006000D */ break 6 -.L80107D4C: -/* B7EEEC 80107D4C 000A5403 */ sra $t2, $t2, 0x10 -/* B7EEF0 80107D50 10000012 */ b .L80107D9C -/* B7EEF4 80107D54 2508FFFF */ addiu $t0, $t0, -1 -.L80107D58: -/* B7EEF8 80107D58 0068001A */ div $zero, $v1, $t0 -/* B7EEFC 80107D5C 00007012 */ mflo $t6 -/* B7EF00 80107D60 000E7C00 */ sll $t7, $t6, 0x10 -/* B7EF04 80107D64 000FC403 */ sra $t8, $t7, 0x10 -/* B7EF08 80107D68 01585021 */ addu $t2, $t2, $t8 -/* B7EF0C 80107D6C 000A5400 */ sll $t2, $t2, 0x10 -/* B7EF10 80107D70 000A5403 */ sra $t2, $t2, 0x10 -/* B7EF14 80107D74 15000002 */ bnez $t0, .L80107D80 -/* B7EF18 80107D78 00000000 */ nop -/* B7EF1C 80107D7C 0007000D */ break 7 -.L80107D80: -/* B7EF20 80107D80 2401FFFF */ li $at, -1 -/* B7EF24 80107D84 15010004 */ bne $t0, $at, .L80107D98 -/* B7EF28 80107D88 3C018000 */ lui $at, 0x8000 -/* B7EF2C 80107D8C 14610002 */ bne $v1, $at, .L80107D98 -/* B7EF30 80107D90 00000000 */ nop -/* B7EF34 80107D94 0006000D */ break 6 -.L80107D98: -/* B7EF38 80107D98 2508FFFF */ addiu $t0, $t0, -1 -.L80107D9C: -/* B7EF3C 80107D9C 00084400 */ sll $t0, $t0, 0x10 -/* B7EF40 80107DA0 00084403 */ sra $t0, $t0, 0x10 -/* B7EF44 80107DA4 3C018015 */ lui $at, %hi(D_801539EC) # $at, 0x8015 -/* B7EF48 80107DA8 15000018 */ bnez $t0, .L80107E0C -/* B7EF4C 80107DAC A42839EC */ sh $t0, %lo(D_801539EC)($at) -/* B7EF50 80107DB0 8FB9000C */ lw $t9, 0xc($sp) -/* B7EF54 80107DB4 8FAE0008 */ lw $t6, 8($sp) -/* B7EF58 80107DB8 3C018015 */ lui $at, %hi(D_801539E0) # $at, 0x8015 -/* B7EF5C 80107DBC A43939E0 */ sh $t9, %lo(D_801539E0)($at) -/* B7EF60 80107DC0 8FAF0004 */ lw $t7, 4($sp) -/* B7EF64 80107DC4 3C018015 */ lui $at, %hi(D_801539E4) # $at, 0x8015 -/* B7EF68 80107DC8 3C188015 */ lui $t8, %hi(D_801539F0) # $t8, 0x8015 -/* B7EF6C 80107DCC 871839F0 */ lh $t8, %lo(D_801539F0)($t8) -/* B7EF70 80107DD0 A42E39E4 */ sh $t6, %lo(D_801539E4)($at) -/* B7EF74 80107DD4 3C018015 */ lui $at, %hi(D_801539E8) # $at, 0x8015 -/* B7EF78 80107DD8 A42F39E8 */ sh $t7, %lo(D_801539E8)($at) -/* B7EF7C 80107DDC 3C018015 */ lui $at, %hi(D_801539F0) # $at, 0x8015 -/* B7EF80 80107DE0 3B190001 */ xori $t9, $t8, 1 -/* B7EF84 80107DE4 A43939F0 */ sh $t9, %lo(D_801539F0)($at) -/* B7EF88 80107DE8 00046C00 */ sll $t5, $a0, 0x10 -/* B7EF8C 80107DEC 000B4C00 */ sll $t1, $t3, 0x10 -/* B7EF90 80107DF0 000C5400 */ sll $t2, $t4, 0x10 -/* B7EF94 80107DF4 2408000C */ li $t0, 12 -/* B7EF98 80107DF8 3C018015 */ lui $at, %hi(D_801539EC) # $at, 0x8015 -/* B7EF9C 80107DFC 000D6C03 */ sra $t5, $t5, 0x10 -/* B7EFA0 80107E00 00094C03 */ sra $t1, $t1, 0x10 -/* B7EFA4 80107E04 000A5403 */ sra $t2, $t2, 0x10 -/* B7EFA8 80107E08 A42839EC */ sh $t0, %lo(D_801539EC)($at) -.L80107E0C: -/* B7EFAC 80107E0C 00402025 */ move $a0, $v0 -/* B7EFB0 80107E10 3C03E700 */ lui $v1, 0xe700 -/* B7EFB4 80107E14 AC830000 */ sw $v1, ($a0) -/* B7EFB8 80107E18 AC800004 */ sw $zero, 4($a0) -/* B7EFBC 80107E1C 24420008 */ addiu $v0, $v0, 8 -/* B7EFC0 80107E20 00402025 */ move $a0, $v0 -/* B7EFC4 80107E24 3C0EFC30 */ lui $t6, (0xFC309661 >> 16) # lui $t6, 0xfc30 -/* B7EFC8 80107E28 3C0F552E */ lui $t7, (0x552EFF7F >> 16) # lui $t7, 0x552e -/* B7EFCC 80107E2C 35EFFF7F */ ori $t7, (0x552EFF7F & 0xFFFF) # ori $t7, $t7, 0xff7f -/* B7EFD0 80107E30 35CE9661 */ ori $t6, (0xFC309661 & 0xFFFF) # ori $t6, $t6, 0x9661 -/* B7EFD4 80107E34 AC8E0000 */ sw $t6, ($a0) -/* B7EFD8 80107E38 AC8F0004 */ sw $t7, 4($a0) -/* B7EFDC 80107E3C 24420008 */ addiu $v0, $v0, 8 -/* B7EFE0 80107E40 00402025 */ move $a0, $v0 -/* B7EFE4 80107E44 3C18FA00 */ lui $t8, 0xfa00 -/* B7EFE8 80107E48 AC980000 */ sw $t8, ($a0) -/* B7EFEC 80107E4C 3C188015 */ lui $t8, %hi(D_801539E4) # $t8, 0x8015 -/* B7EFF0 80107E50 3C198015 */ lui $t9, %hi(D_801539E0) # $t9, 0x8015 -/* B7EFF4 80107E54 872E39E0 */ lh $t6, %lo(D_801539E0)($t9) -/* B7EFF8 80107E58 871839E4 */ lh $t8, %lo(D_801539E4)($t8) -/* B7EFFC 80107E5C 3C018015 */ lui $at, %hi(D_801539F8) # $at, 0x8015 -/* B7F000 80107E60 000E7E00 */ sll $t7, $t6, 0x18 -/* B7F004 80107E64 331900FF */ andi $t9, $t8, 0xff -/* B7F008 80107E68 00197400 */ sll $t6, $t9, 0x10 -/* B7F00C 80107E6C 3C198015 */ lui $t9, %hi(D_801539E8) # $t9, 0x8015 -/* B7F010 80107E70 873939E8 */ lh $t9, %lo(D_801539E8)($t9) -/* B7F014 80107E74 01EEC025 */ or $t8, $t7, $t6 -/* B7F018 80107E78 24420008 */ addiu $v0, $v0, 8 -/* B7F01C 80107E7C 332F00FF */ andi $t7, $t9, 0xff -/* B7F020 80107E80 000F7200 */ sll $t6, $t7, 8 -/* B7F024 80107E84 030EC825 */ or $t9, $t8, $t6 -/* B7F028 80107E88 372F00FF */ ori $t7, $t9, 0xff -/* B7F02C 80107E8C AC8F0004 */ sw $t7, 4($a0) -/* B7F030 80107E90 3C18FB00 */ lui $t8, 0xfb00 -/* B7F034 80107E94 AC580000 */ sw $t8, ($v0) -/* B7F038 80107E98 312F00FF */ andi $t7, $t1, 0xff -/* B7F03C 80107E9C 000FC400 */ sll $t8, $t7, 0x10 -/* B7F040 80107EA0 000DCE00 */ sll $t9, $t5, 0x18 -/* B7F044 80107EA4 03387025 */ or $t6, $t9, $t8 -/* B7F048 80107EA8 314F00FF */ andi $t7, $t2, 0xff -/* B7F04C 80107EAC 000FCA00 */ sll $t9, $t7, 8 -/* B7F050 80107EB0 01D9C025 */ or $t8, $t6, $t9 -/* B7F054 80107EB4 370F00FF */ ori $t7, $t8, 0xff -/* B7F058 80107EB8 AC4F0004 */ sw $t7, 4($v0) -/* B7F05C 80107EBC A42939F8 */ sh $t1, %lo(D_801539F8)($at) -/* B7F060 80107EC0 3C018015 */ lui $at, %hi(D_801539FC) # $at, 0x8015 -/* B7F064 80107EC4 8FA40070 */ lw $a0, 0x70($sp) -/* B7F068 80107EC8 A42A39FC */ sh $t2, %lo(D_801539FC)($at) -/* B7F06C 80107ECC 3C018015 */ lui $at, %hi(D_801539F4) # $at, 0x8015 -/* B7F070 80107ED0 24450008 */ addiu $a1, $v0, 8 -/* B7F074 80107ED4 A42D39F4 */ sh $t5, %lo(D_801539F4)($at) -/* B7F078 80107ED8 3C0EFD90 */ lui $t6, 0xfd90 -/* B7F07C 80107EDC 24995E08 */ addiu $t9, $a0, 0x5e08 -/* B7F080 80107EE0 ACB90004 */ sw $t9, 4($a1) -/* B7F084 80107EE4 ACAE0000 */ sw $t6, ($a1) -/* B7F088 80107EE8 24A20008 */ addiu $v0, $a1, 8 -/* B7F08C 80107EEC 00402825 */ move $a1, $v0 -/* B7F090 80107EF0 3C0F0708 */ lui $t7, (0x07080200 >> 16) # lui $t7, 0x708 -/* B7F094 80107EF4 35EF0200 */ ori $t7, (0x07080200 & 0xFFFF) # ori $t7, $t7, 0x200 -/* B7F098 80107EF8 3C18F590 */ lui $t8, 0xf590 -/* B7F09C 80107EFC ACB80000 */ sw $t8, ($a1) -/* B7F0A0 80107F00 ACAF0004 */ sw $t7, 4($a1) -/* B7F0A4 80107F04 24420008 */ addiu $v0, $v0, 8 -/* B7F0A8 80107F08 00402825 */ move $a1, $v0 -/* B7F0AC 80107F0C 3C0EE600 */ lui $t6, 0xe600 -/* B7F0B0 80107F10 ACAE0000 */ sw $t6, ($a1) -/* B7F0B4 80107F14 ACA00004 */ sw $zero, 4($a1) -/* B7F0B8 80107F18 24420008 */ addiu $v0, $v0, 8 -/* B7F0BC 80107F1C 00402825 */ move $a1, $v0 -/* B7F0C0 80107F20 3C180703 */ lui $t8, (0x0703F800 >> 16) # lui $t8, 0x703 -/* B7F0C4 80107F24 3718F800 */ ori $t8, (0x0703F800 & 0xFFFF) # ori $t8, $t8, 0xf800 -/* B7F0C8 80107F28 3C19F300 */ lui $t9, 0xf300 -/* B7F0CC 80107F2C ACB90000 */ sw $t9, ($a1) -/* B7F0D0 80107F30 ACB80004 */ sw $t8, 4($a1) -/* B7F0D4 80107F34 24420008 */ addiu $v0, $v0, 8 -/* B7F0D8 80107F38 00402825 */ move $a1, $v0 -/* B7F0DC 80107F3C ACA30000 */ sw $v1, ($a1) -/* B7F0E0 80107F40 24420008 */ addiu $v0, $v0, 8 -/* B7F0E4 80107F44 00401825 */ move $v1, $v0 -/* B7F0E8 80107F48 ACA00004 */ sw $zero, 4($a1) -/* B7F0EC 80107F4C 3C0E0008 */ lui $t6, (0x00080200 >> 16) # lui $t6, 8 -/* B7F0F0 80107F50 3C0FF580 */ lui $t7, (0xF5800200 >> 16) # lui $t7, 0xf580 -/* B7F0F4 80107F54 35EF0200 */ ori $t7, (0xF5800200 & 0xFFFF) # ori $t7, $t7, 0x200 -/* B7F0F8 80107F58 35CE0200 */ ori $t6, (0x00080200 & 0xFFFF) # ori $t6, $t6, 0x200 -/* B7F0FC 80107F5C AC6E0004 */ sw $t6, 4($v1) -/* B7F100 80107F60 AC6F0000 */ sw $t7, ($v1) -/* B7F104 80107F64 24420008 */ addiu $v0, $v0, 8 -/* B7F108 80107F68 00401825 */ move $v1, $v0 -/* B7F10C 80107F6C 3C180003 */ lui $t8, (0x0003C03C >> 16) # lui $t8, 3 -/* B7F110 80107F70 3718C03C */ ori $t8, (0x0003C03C & 0xFFFF) # ori $t8, $t8, 0xc03c -/* B7F114 80107F74 3C19F200 */ lui $t9, 0xf200 -/* B7F118 80107F78 AC790000 */ sw $t9, ($v1) -/* B7F11C 80107F7C AC780004 */ sw $t8, 4($v1) -/* B7F120 80107F80 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* B7F124 80107F84 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* B7F128 80107F88 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* B7F12C 80107F8C 44810000 */ mtc1 $at, $f0 -/* B7F130 80107F90 846F0B06 */ lh $t7, 0xb06($v1) -/* B7F134 80107F94 3C014180 */ li $at, 0x41800000 # 0.000000 -/* B7F138 80107F98 44815000 */ mtc1 $at, $f10 -/* B7F13C 80107F9C 448F2000 */ mtc1 $t7, $f4 -/* B7F140 80107FA0 3C068017 */ lui $a2, %hi(D_801759A0) # $a2, 0x8017 -/* B7F144 80107FA4 24C659A0 */ addiu $a2, %lo(D_801759A0) # addiu $a2, $a2, 0x59a0 -/* B7F148 80107FA8 468021A0 */ cvt.s.w $f6, $f4 -/* B7F14C 80107FAC 3C014480 */ li $at, 0x44800000 # 0.000000 -/* B7F150 80107FB0 44812000 */ mtc1 $at, $f4 -/* B7F154 80107FB4 87A8007A */ lh $t0, 0x7a($sp) -/* B7F158 80107FB8 3C078017 */ lui $a3, %hi(D_801759A4) # $a3, 0x8017 -/* B7F15C 80107FBC 87A9007E */ lh $t1, 0x7e($sp) -/* B7F160 80107FC0 46003203 */ div.s $f8, $f6, $f0 -/* B7F164 80107FC4 24E759A4 */ addiu $a3, %lo(D_801759A4) # addiu $a3, $a3, 0x59a4 -/* B7F168 80107FC8 3C01E400 */ lui $at, 0xe400 -/* B7F16C 80107FCC 24420008 */ addiu $v0, $v0, 8 -/* B7F170 80107FD0 460A4402 */ mul.s $f16, $f8, $f10 -/* B7F174 80107FD4 4600848D */ trunc.w.s $f18, $f16 -/* B7F178 80107FD8 44059000 */ mfc1 $a1, $f18 -/* B7F17C 80107FDC 00000000 */ nop -/* B7F180 80107FE0 ACC50000 */ sw $a1, ($a2) -/* B7F184 80107FE4 84780B06 */ lh $t8, 0xb06($v1) -/* B7F188 80107FE8 0105C821 */ addu $t9, $t0, $a1 -/* B7F18C 80107FEC 00401825 */ move $v1, $v0 -/* B7F190 80107FF0 44983000 */ mtc1 $t8, $f6 -/* B7F194 80107FF4 0019C080 */ sll $t8, $t9, 2 -/* B7F198 80107FF8 330F0FFF */ andi $t7, $t8, 0xfff -/* B7F19C 80107FFC 46803220 */ cvt.s.w $f8, $f6 -/* B7F1A0 80108000 0125C021 */ addu $t8, $t1, $a1 -/* B7F1A4 80108004 24420008 */ addiu $v0, $v0, 8 -/* B7F1A8 80108008 46004283 */ div.s $f10, $f8, $f0 -/* B7F1AC 8010800C 460A2403 */ div.s $f16, $f4, $f10 -/* B7F1B0 80108010 4600848D */ trunc.w.s $f18, $f16 -/* B7F1B4 80108014 440E9000 */ mfc1 $t6, $f18 -/* B7F1B8 80108018 00000000 */ nop -/* B7F1BC 8010801C ACEE0000 */ sw $t6, ($a3) -/* B7F1C0 80108020 000F7300 */ sll $t6, $t7, 0xc -/* B7F1C4 80108024 01C1C825 */ or $t9, $t6, $at -/* B7F1C8 80108028 00187880 */ sll $t7, $t8, 2 -/* B7F1CC 8010802C 31EE0FFF */ andi $t6, $t7, 0xfff -/* B7F1D0 80108030 032EC025 */ or $t8, $t9, $t6 -/* B7F1D4 80108034 00087880 */ sll $t7, $t0, 2 -/* B7F1D8 80108038 31F90FFF */ andi $t9, $t7, 0xfff -/* B7F1DC 8010803C AC780000 */ sw $t8, ($v1) -/* B7F1E0 80108040 0009C080 */ sll $t8, $t1, 2 -/* B7F1E4 80108044 330F0FFF */ andi $t7, $t8, 0xfff -/* B7F1E8 80108048 00197300 */ sll $t6, $t9, 0xc -/* B7F1EC 8010804C 01CFC825 */ or $t9, $t6, $t7 -/* B7F1F0 80108050 AC790004 */ sw $t9, 4($v1) -/* B7F1F4 80108054 00401825 */ move $v1, $v0 -/* B7F1F8 80108058 3C18E100 */ lui $t8, 0xe100 -/* B7F1FC 8010805C AC780000 */ sw $t8, ($v1) -/* B7F200 80108060 AC600004 */ sw $zero, 4($v1) -/* B7F204 80108064 24420008 */ addiu $v0, $v0, 8 -/* B7F208 80108068 00401825 */ move $v1, $v0 -/* B7F20C 8010806C 3C0EF100 */ lui $t6, 0xf100 -/* B7F210 80108070 AC6E0000 */ sw $t6, ($v1) -/* B7F214 80108074 8CE50000 */ lw $a1, ($a3) -/* B7F218 80108078 24420008 */ addiu $v0, $v0, 8 -/* B7F21C 8010807C 30A5FFFF */ andi $a1, $a1, 0xffff -/* B7F220 80108080 00057C00 */ sll $t7, $a1, 0x10 -/* B7F224 80108084 01E5C825 */ or $t9, $t7, $a1 -/* B7F228 80108088 AC790004 */ sw $t9, 4($v1) -/* B7F22C 8010808C 248320D8 */ addiu $v1, $a0, 0x20d8 -/* B7F230 80108090 24787FFF */ addiu $t8, $v1, 0x7fff -/* B7F234 80108094 931863E8 */ lbu $t8, 0x63e8($t8) -/* B7F238 80108098 24617FFF */ addiu $at, $v1, 0x7fff -/* B7F23C 8010809C 270E0001 */ addiu $t6, $t8, 1 -/* B7F240 801080A0 A02E63E8 */ sb $t6, 0x63e8($at) -/* B7F244 801080A4 8FAF0074 */ lw $t7, 0x74($sp) -/* B7F248 801080A8 ADE20000 */ sw $v0, ($t7) -.L801080AC: -/* B7F24C 801080AC 03E00008 */ jr $ra -/* B7F250 801080B0 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/asm/non_matchings/code/z_message_PAL/func_801080B4.s b/asm/non_matchings/code/z_message_PAL/func_801080B4.s deleted file mode 100644 index b1ebc4ffae..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_801080B4.s +++ /dev/null @@ -1,214 +0,0 @@ -glabel func_801080B4 -/* B7F254 801080B4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B7F258 801080B8 3C180001 */ lui $t8, 1 -/* B7F25C 801080BC AFBF001C */ sw $ra, 0x1c($sp) -/* B7F260 801080C0 AFA40028 */ sw $a0, 0x28($sp) -/* B7F264 801080C4 AFA5002C */ sw $a1, 0x2c($sp) -/* B7F268 801080C8 AFA60030 */ sw $a2, 0x30($sp) -/* B7F26C 801080CC AFA70034 */ sw $a3, 0x34($sp) -/* B7F270 801080D0 0304C021 */ addu $t8, $t8, $a0 -/* B7F274 801080D4 931803DC */ lbu $t8, 0x3dc($t8) -/* B7F278 801080D8 24010006 */ li $at, 6 -/* B7F27C 801080DC 8CC30000 */ lw $v1, ($a2) -/* B7F280 801080E0 1701000D */ bne $t8, $at, .L80108118 -/* B7F284 801080E4 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7F288 801080E8 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B7F28C 801080EC 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B7F290 801080F0 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7F294 801080F4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7F298 801080F8 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7F29C 801080FC AFA70010 */ sw $a3, 0x10($sp) -/* B7F2A0 80108100 AFB90014 */ sw $t9, 0x14($sp) -/* B7F2A4 80108104 00002025 */ move $a0, $zero -/* B7F2A8 80108108 24060004 */ li $a2, 4 -/* B7F2AC 8010810C 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7F2B0 80108110 AFA30020 */ sw $v1, 0x20($sp) -/* B7F2B4 80108114 8FA30020 */ lw $v1, 0x20($sp) -.L80108118: -/* B7F2B8 80108118 00601025 */ move $v0, $v1 -/* B7F2BC 8010811C 3C09E700 */ lui $t1, 0xe700 -/* B7F2C0 80108120 AC490000 */ sw $t1, ($v0) -/* B7F2C4 80108124 AC400004 */ sw $zero, 4($v0) -/* B7F2C8 80108128 24630008 */ addiu $v1, $v1, 8 -/* B7F2CC 8010812C 00601025 */ move $v0, $v1 -/* B7F2D0 80108130 3C0AFC11 */ lui $t2, (0xFC119623 >> 16) # lui $t2, 0xfc11 -/* B7F2D4 80108134 3C0BFF2F */ lui $t3, (0xFF2FFFFF >> 16) # lui $t3, 0xff2f -/* B7F2D8 80108138 356BFFFF */ ori $t3, (0xFF2FFFFF & 0xFFFF) # ori $t3, $t3, 0xffff -/* B7F2DC 8010813C 354A9623 */ ori $t2, (0xFC119623 & 0xFFFF) # ori $t2, $t2, 0x9623 -/* B7F2E0 80108140 AC4A0000 */ sw $t2, ($v0) -/* B7F2E4 80108144 AC4B0004 */ sw $t3, 4($v0) -/* B7F2E8 80108148 24630008 */ addiu $v1, $v1, 8 -/* B7F2EC 8010814C 00601025 */ move $v0, $v1 -/* B7F2F0 80108150 3C0CFA00 */ lui $t4, 0xfa00 -/* B7F2F4 80108154 AC4C0000 */ sw $t4, ($v0) -/* B7F2F8 80108158 8FA80028 */ lw $t0, 0x28($sp) -/* B7F2FC 8010815C 34018000 */ li $at, 32768 -/* B7F300 80108160 24630008 */ addiu $v1, $v1, 8 -/* B7F304 80108164 250820D8 */ addiu $t0, $t0, 0x20d8 -/* B7F308 80108168 01013821 */ addu $a3, $t0, $at -/* B7F30C 8010816C 84ED63E2 */ lh $t5, 0x63e2($a3) -/* B7F310 80108170 2401FF00 */ li $at, -256 -/* B7F314 80108174 3C068016 */ lui $a2, %hi(gGameInfo) # $a2, 0x8016 -/* B7F318 80108178 31AE00FF */ andi $t6, $t5, 0xff -/* B7F31C 8010817C 01C17825 */ or $t7, $t6, $at -/* B7F320 80108180 AC4F0004 */ sw $t7, 4($v0) -/* B7F324 80108184 97B8002E */ lhu $t8, 0x2e($sp) -/* B7F328 80108188 00601025 */ move $v0, $v1 -/* B7F32C 8010818C 3C0CFD18 */ lui $t4, 0xfd18 -/* B7F330 80108190 2B010066 */ slti $at, $t8, 0x66 -/* B7F334 80108194 1420002C */ bnez $at, .L80108248 -/* B7F338 80108198 24C6FA90 */ addiu $a2, %lo(gGameInfo) # addiu $a2, $a2, -0x570 -/* B7F33C 8010819C 00601025 */ move $v0, $v1 -/* B7F340 801081A0 3C19FD18 */ lui $t9, 0xfd18 -/* B7F344 801081A4 AC590000 */ sw $t9, ($v0) -/* B7F348 801081A8 8CEA62B0 */ lw $t2, 0x62b0($a3) -/* B7F34C 801081AC 24630008 */ addiu $v1, $v1, 8 -/* B7F350 801081B0 3C0CF518 */ lui $t4, 0xf518 -/* B7F354 801081B4 254B1000 */ addiu $t3, $t2, 0x1000 -/* B7F358 801081B8 AC4B0004 */ sw $t3, 4($v0) -/* B7F35C 801081BC 00601025 */ move $v0, $v1 -/* B7F360 801081C0 3C0D0700 */ lui $t5, 0x700 -/* B7F364 801081C4 AC4D0004 */ sw $t5, 4($v0) -/* B7F368 801081C8 AC4C0000 */ sw $t4, ($v0) -/* B7F36C 801081CC 24630008 */ addiu $v1, $v1, 8 -/* B7F370 801081D0 00601025 */ move $v0, $v1 -/* B7F374 801081D4 3C0EE600 */ lui $t6, 0xe600 -/* B7F378 801081D8 AC4E0000 */ sw $t6, ($v0) -/* B7F37C 801081DC AC400004 */ sw $zero, 4($v0) -/* B7F380 801081E0 24630008 */ addiu $v1, $v1, 8 -/* B7F384 801081E4 00601025 */ move $v0, $v1 -/* B7F388 801081E8 3C180723 */ lui $t8, (0x0723F0AB >> 16) # lui $t8, 0x723 -/* B7F38C 801081EC 3718F0AB */ ori $t8, (0x0723F0AB & 0xFFFF) # ori $t8, $t8, 0xf0ab -/* B7F390 801081F0 3C0FF300 */ lui $t7, 0xf300 -/* B7F394 801081F4 AC4F0000 */ sw $t7, ($v0) -/* B7F398 801081F8 AC580004 */ sw $t8, 4($v0) -/* B7F39C 801081FC 24630008 */ addiu $v1, $v1, 8 -/* B7F3A0 80108200 00601025 */ move $v0, $v1 -/* B7F3A4 80108204 AC490000 */ sw $t1, ($v0) -/* B7F3A8 80108208 AC400004 */ sw $zero, 4($v0) -/* B7F3AC 8010820C 24630008 */ addiu $v1, $v1, 8 -/* B7F3B0 80108210 00601025 */ move $v0, $v1 -/* B7F3B4 80108214 3C19F518 */ lui $t9, (0xF5180C00 >> 16) # lui $t9, 0xf518 -/* B7F3B8 80108218 37390C00 */ ori $t9, (0xF5180C00 & 0xFFFF) # ori $t9, $t9, 0xc00 -/* B7F3BC 8010821C AC590000 */ sw $t9, ($v0) -/* B7F3C0 80108220 AC400004 */ sw $zero, 4($v0) -/* B7F3C4 80108224 24630008 */ addiu $v1, $v1, 8 -/* B7F3C8 80108228 00601025 */ move $v0, $v1 -/* B7F3CC 8010822C 3C0B0005 */ lui $t3, (0x0005C05C >> 16) # lui $t3, 5 -/* B7F3D0 80108230 356BC05C */ ori $t3, (0x0005C05C & 0xFFFF) # ori $t3, $t3, 0xc05c -/* B7F3D4 80108234 3C0AF200 */ lui $t2, 0xf200 -/* B7F3D8 80108238 AC4A0000 */ sw $t2, ($v0) -/* B7F3DC 8010823C AC4B0004 */ sw $t3, 4($v0) -/* B7F3E0 80108240 10000029 */ b .L801082E8 -/* B7F3E4 80108244 24630008 */ addiu $v1, $v1, 8 -.L80108248: -/* B7F3E8 80108248 AC4C0000 */ sw $t4, ($v0) -/* B7F3EC 8010824C 8CED62B0 */ lw $t5, 0x62b0($a3) -/* B7F3F0 80108250 24630008 */ addiu $v1, $v1, 8 -/* B7F3F4 80108254 3C0FF518 */ lui $t7, 0xf518 -/* B7F3F8 80108258 25AE1000 */ addiu $t6, $t5, 0x1000 -/* B7F3FC 8010825C AC4E0004 */ sw $t6, 4($v0) -/* B7F400 80108260 00601025 */ move $v0, $v1 -/* B7F404 80108264 3C180700 */ lui $t8, 0x700 -/* B7F408 80108268 AC580004 */ sw $t8, 4($v0) -/* B7F40C 8010826C AC4F0000 */ sw $t7, ($v0) -/* B7F410 80108270 24630008 */ addiu $v1, $v1, 8 -/* B7F414 80108274 00601025 */ move $v0, $v1 -/* B7F418 80108278 3C19E600 */ lui $t9, 0xe600 -/* B7F41C 8010827C AC590000 */ sw $t9, ($v0) -/* B7F420 80108280 AC400004 */ sw $zero, 4($v0) -/* B7F424 80108284 24630008 */ addiu $v1, $v1, 8 -/* B7F428 80108288 00601025 */ move $v0, $v1 -/* B7F42C 8010828C 3C0B073F */ lui $t3, (0x073FF080 >> 16) # lui $t3, 0x73f -/* B7F430 80108290 356BF080 */ ori $t3, (0x073FF080 & 0xFFFF) # ori $t3, $t3, 0xf080 -/* B7F434 80108294 3C0AF300 */ lui $t2, 0xf300 -/* B7F438 80108298 AC4A0000 */ sw $t2, ($v0) -/* B7F43C 8010829C AC4B0004 */ sw $t3, 4($v0) -/* B7F440 801082A0 24630008 */ addiu $v1, $v1, 8 -/* B7F444 801082A4 00601025 */ move $v0, $v1 -/* B7F448 801082A8 AC490000 */ sw $t1, ($v0) -/* B7F44C 801082AC AC400004 */ sw $zero, 4($v0) -/* B7F450 801082B0 24630008 */ addiu $v1, $v1, 8 -/* B7F454 801082B4 00601025 */ move $v0, $v1 -/* B7F458 801082B8 3C0CF518 */ lui $t4, (0xF5181000 >> 16) # lui $t4, 0xf518 -/* B7F45C 801082BC 358C1000 */ ori $t4, (0xF5181000 & 0xFFFF) # ori $t4, $t4, 0x1000 -/* B7F460 801082C0 AC4C0000 */ sw $t4, ($v0) -/* B7F464 801082C4 AC400004 */ sw $zero, 4($v0) -/* B7F468 801082C8 24630008 */ addiu $v1, $v1, 8 -/* B7F46C 801082CC 00601025 */ move $v0, $v1 -/* B7F470 801082D0 3C0E0007 */ lui $t6, (0x0007C07C >> 16) # lui $t6, 7 -/* B7F474 801082D4 35CEC07C */ ori $t6, (0x0007C07C & 0xFFFF) # ori $t6, $t6, 0xc07c -/* B7F478 801082D8 3C0DF200 */ lui $t5, 0xf200 -/* B7F47C 801082DC AC4D0000 */ sw $t5, ($v0) -/* B7F480 801082E0 AC4E0004 */ sw $t6, 4($v0) -/* B7F484 801082E4 24630008 */ addiu $v1, $v1, 8 -.L801082E8: -/* B7F488 801082E8 8CC20000 */ lw $v0, ($a2) -/* B7F48C 801082EC 84EF63D8 */ lh $t7, 0x63d8($a3) -/* B7F490 801082F0 3C01E400 */ lui $at, 0xe400 -/* B7F494 801082F4 84580522 */ lh $t8, 0x522($v0) -/* B7F498 801082F8 8445052A */ lh $a1, 0x52a($v0) -/* B7F49C 801082FC 844E0524 */ lh $t6, 0x524($v0) -/* B7F4A0 80108300 01F8C821 */ addu $t9, $t7, $t8 -/* B7F4A4 80108304 03255021 */ addu $t2, $t9, $a1 -/* B7F4A8 80108308 00AE7821 */ addu $t7, $a1, $t6 -/* B7F4AC 8010830C 000FC080 */ sll $t8, $t7, 2 -/* B7F4B0 80108310 000A5880 */ sll $t3, $t2, 2 -/* B7F4B4 80108314 316C0FFF */ andi $t4, $t3, 0xfff -/* B7F4B8 80108318 33190FFF */ andi $t9, $t8, 0xfff -/* B7F4BC 8010831C 03215025 */ or $t2, $t9, $at -/* B7F4C0 80108320 000C6B00 */ sll $t5, $t4, 0xc -/* B7F4C4 80108324 014D5825 */ or $t3, $t2, $t5 -/* B7F4C8 80108328 00602025 */ move $a0, $v1 -/* B7F4CC 8010832C AC8B0000 */ sw $t3, ($a0) -/* B7F4D0 80108330 8CC20000 */ lw $v0, ($a2) -/* B7F4D4 80108334 84EC63D8 */ lh $t4, 0x63d8($a3) -/* B7F4D8 80108338 24630008 */ addiu $v1, $v1, 8 -/* B7F4DC 8010833C 844E0522 */ lh $t6, 0x522($v0) -/* B7F4E0 80108340 844D0524 */ lh $t5, 0x524($v0) -/* B7F4E4 80108344 00601025 */ move $v0, $v1 -/* B7F4E8 80108348 018E7821 */ addu $t7, $t4, $t6 -/* B7F4EC 8010834C 000FC080 */ sll $t8, $t7, 2 -/* B7F4F0 80108350 33190FFF */ andi $t9, $t8, 0xfff -/* B7F4F4 80108354 000D5880 */ sll $t3, $t5, 2 -/* B7F4F8 80108358 316C0FFF */ andi $t4, $t3, 0xfff -/* B7F4FC 8010835C 00195300 */ sll $t2, $t9, 0xc -/* B7F500 80108360 018A7025 */ or $t6, $t4, $t2 -/* B7F504 80108364 AC8E0004 */ sw $t6, 4($a0) -/* B7F508 80108368 3C0FE100 */ lui $t7, 0xe100 -/* B7F50C 8010836C AC4F0000 */ sw $t7, ($v0) -/* B7F510 80108370 AC400004 */ sw $zero, 4($v0) -/* B7F514 80108374 24630008 */ addiu $v1, $v1, 8 -/* B7F518 80108378 00601025 */ move $v0, $v1 -/* B7F51C 8010837C 97A40036 */ lhu $a0, 0x36($sp) -/* B7F520 80108380 3C190400 */ lui $t9, (0x04000400 >> 16) # lui $t9, 0x400 -/* B7F524 80108384 37390400 */ ori $t9, (0x04000400 & 0xFFFF) # ori $t9, $t9, 0x400 -/* B7F528 80108388 3C18F100 */ lui $t8, 0xf100 -/* B7F52C 8010838C AC580000 */ sw $t8, ($v0) -/* B7F530 80108390 AC590004 */ sw $t9, 4($v0) -/* B7F534 80108394 24630008 */ addiu $v1, $v1, 8 -/* B7F538 80108398 00601025 */ move $v0, $v1 -/* B7F53C 8010839C AC490000 */ sw $t1, ($v0) -/* B7F540 801083A0 AC400004 */ sw $zero, 4($v0) -/* B7F544 801083A4 24630008 */ addiu $v1, $v1, 8 -/* B7F548 801083A8 00601025 */ move $v0, $v1 -/* B7F54C 801083AC 3C0BFF2D */ lui $t3, (0xFF2DFEFF >> 16) # lui $t3, 0xff2d -/* B7F550 801083B0 3C0DFCFF */ lui $t5, (0xFCFF97FF >> 16) # lui $t5, 0xfcff -/* B7F554 801083B4 35AD97FF */ ori $t5, (0xFCFF97FF & 0xFFFF) # ori $t5, $t5, 0x97ff -/* B7F558 801083B8 356BFEFF */ ori $t3, (0xFF2DFEFF & 0xFFFF) # ori $t3, $t3, 0xfeff -/* B7F55C 801083BC AC4B0004 */ sw $t3, 4($v0) -/* B7F560 801083C0 AC4D0000 */ sw $t5, ($v0) -/* B7F564 801083C4 84EC63D8 */ lh $t4, 0x63d8($a3) -/* B7F568 801083C8 25017FFF */ addiu $at, $t0, 0x7fff -/* B7F56C 801083CC 24630008 */ addiu $v1, $v1, 8 -/* B7F570 801083D0 258A0020 */ addiu $t2, $t4, 0x20 -/* B7F574 801083D4 A42A63D9 */ sh $t2, 0x63d9($at) -/* B7F578 801083D8 8FAE0030 */ lw $t6, 0x30($sp) -/* B7F57C 801083DC 24840001 */ addiu $a0, $a0, 1 -/* B7F580 801083E0 3082FFFF */ andi $v0, $a0, 0xffff -/* B7F584 801083E4 ADC30000 */ sw $v1, ($t6) -/* B7F588 801083E8 8FBF001C */ lw $ra, 0x1c($sp) -/* B7F58C 801083EC 27BD0028 */ addiu $sp, $sp, 0x28 -/* B7F590 801083F0 03E00008 */ jr $ra -/* B7F594 801083F4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_801083F8.s b/asm/non_matchings/code/z_message_PAL/func_801083F8.s deleted file mode 100644 index de0e0508b1..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_801083F8.s +++ /dev/null @@ -1,241 +0,0 @@ -.rdata -glabel D_80153ED0 - # Recording Start / Recording Start / Recording Start / Recording Start -> - .asciz "録音開始 録音開始 録音開始 録音開始 -> " - .balign 4 - -glabel D_80153EFC - # Recording Playback / Recording Playback / Recording Playback / Recording Playback -> - .asciz "録音再生 録音再生 録音再生 録音再生 -> " - .balign 4 - -glabel D_80153F28 - # 8 Note Recording Start / 8 Note Recording Start / 8 Note Recording Start -> - .asciz "8音録音開始 8音録音開始 8音録音開始 -> " - .balign 4 - -glabel D_80153F54 - # 8 Note Playback / 8 Note Playback / 8 Note Playback -> - .asciz "8音再生 8音再生 8音再生 -> " - .balign 4 - -glabel D_80153F74 - # Musical Round Start / Musical Round Start / Musical Round Start / Musical Round Start -> - .asciz "輪唱開始 輪唱開始 輪唱開始 輪唱開始 -> " - .balign 4 - -glabel D_80153FA0 - # Frog Chorus / Frog Chorus -> - .asciz "カエルの合唱 カエルの合唱 -> " - .balign 4 - -glabel D_80153FC0 - # Ocarina(%d) - .asciz "オカリナ(%d) " - .balign 4 - -glabel D_80153FD0 - .asciz "000000000000 -> " - .balign 4 - -glabel D_80153FE4 - .asciz "111111111111 -> " - .balign 4 - -glabel D_80153FF8 - .asciz "222222222222 -> " - .balign 4 - -glabel D_8015400C - .asciz "msg_mode=%d\n" - .balign 4 - -.text -glabel func_801083F8 -/* B7F598 801083F8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B7F59C 801083FC 3C0E0001 */ lui $t6, 1 -/* B7F5A0 80108400 AFBF001C */ sw $ra, 0x1c($sp) -/* B7F5A4 80108404 AFB00018 */ sw $s0, 0x18($sp) -/* B7F5A8 80108408 01C47021 */ addu $t6, $t6, $a0 -/* B7F5AC 8010840C 91CE03DC */ lbu $t6, 0x3dc($t6) -/* B7F5B0 80108410 24010006 */ li $at, 6 -/* B7F5B4 80108414 240F0001 */ li $t7, 1 -/* B7F5B8 80108418 15C100A0 */ bne $t6, $at, .L8010869C -/* B7F5BC 8010841C 249020D8 */ addiu $s0, $a0, 0x20d8 -/* B7F5C0 80108420 3C010001 */ lui $at, 1 -/* B7F5C4 80108424 00240821 */ addu $at, $at, $a0 -/* B7F5C8 80108428 A42F04C6 */ sh $t7, 0x4c6($at) -/* B7F5CC 8010842C 34018000 */ li $at, 32768 -/* B7F5D0 80108430 0201C021 */ addu $t8, $s0, $at -/* B7F5D4 80108434 AFB80024 */ sw $t8, 0x24($sp) -/* B7F5D8 80108438 970563F0 */ lhu $a1, 0x63f0($t8) -/* B7F5DC 8010843C 2401002A */ li $at, 42 -/* B7F5E0 80108440 24080021 */ li $t0, 33 -/* B7F5E4 80108444 14A10007 */ bne $a1, $at, .L80108464 -/* B7F5E8 80108448 3C048015 */ lui $a0, %hi(D_80153ED0) # $a0, 0x8015 -/* B7F5EC 8010844C 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F5F0 80108450 A0286305 */ sb $t0, 0x6305($at) -/* B7F5F4 80108454 0C00084C */ jal osSyncPrintf -/* B7F5F8 80108458 24843ED0 */ addiu $a0, %lo(D_80153ED0) # addiu $a0, $a0, 0x3ed0 -/* B7F5FC 8010845C 1000008B */ b .L8010868C -/* B7F600 80108460 8FB90024 */ lw $t9, 0x24($sp) -.L80108464: -/* B7F604 80108464 2401002B */ li $at, 43 -/* B7F608 80108468 14A10021 */ bne $a1, $at, .L801084F0 -/* B7F60C 8010846C 3C048015 */ lui $a0, %hi(D_80153EFC) # $a0, 0x8015 -/* B7F610 80108470 0C00084C */ jal osSyncPrintf -/* B7F614 80108474 24843EFC */ addiu $a0, %lo(D_80153EFC) # addiu $a0, $a0, 0x3efc -/* B7F618 80108478 0C03B616 */ jal func_800ED858 -/* B7F61C 8010847C 24040001 */ li $a0, 1 -/* B7F620 80108480 0C03B616 */ jal func_800ED858 -/* B7F624 80108484 24040001 */ li $a0, 1 -/* B7F628 80108488 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B7F62C 8010848C 00000000 */ nop -/* B7F630 80108490 3C038015 */ lui $v1, %hi(D_8014B2FC) # $v1, 0x8015 -/* B7F634 80108494 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F638 80108498 AC2262B9 */ sw $v0, 0x62b9($at) -/* B7F63C 8010849C 2463B2FC */ addiu $v1, %lo(D_8014B2FC) # addiu $v1, $v1, -0x4d04 -/* B7F640 801084A0 A4600000 */ sh $zero, ($v1) -/* B7F644 801084A4 84690000 */ lh $t1, ($v1) -/* B7F648 801084A8 3C048015 */ lui $a0, %hi(D_8014B2F8) # $a0, 0x8015 -/* B7F64C 801084AC 8FAB0024 */ lw $t3, 0x24($sp) -/* B7F650 801084B0 2484B2F8 */ addiu $a0, %lo(D_8014B2F8) # addiu $a0, $a0, -0x4d08 -/* B7F654 801084B4 A4890000 */ sh $t1, ($a0) -/* B7F658 801084B8 848A0000 */ lh $t2, ($a0) -/* B7F65C 801084BC 8D6C62B8 */ lw $t4, 0x62b8($t3) -/* B7F660 801084C0 0C041A6C */ jal func_801069B0 -/* B7F664 801084C4 A18A0002 */ sb $t2, 2($t4) -/* B7F668 801084C8 240D0003 */ li $t5, 3 -/* B7F66C 801084CC 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F670 801084D0 240E0023 */ li $t6, 35 -/* B7F674 801084D4 A02D63E8 */ sb $t5, 0x63e8($at) -/* B7F678 801084D8 A02E6305 */ sb $t6, 0x6305($at) -/* B7F67C 801084DC 2404000F */ li $a0, 15 -/* B7F680 801084E0 0C03B64F */ jal func_800ED93C -/* B7F684 801084E4 24050001 */ li $a1, 1 -/* B7F688 801084E8 10000068 */ b .L8010868C -/* B7F68C 801084EC 8FB90024 */ lw $t9, 0x24($sp) -.L801084F0: -/* B7F690 801084F0 2401002C */ li $at, 44 -/* B7F694 801084F4 14A10008 */ bne $a1, $at, .L80108518 -/* B7F698 801084F8 240F0024 */ li $t7, 36 -/* B7F69C 801084FC 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F6A0 80108500 3C048015 */ lui $a0, %hi(D_80153F28) # $a0, 0x8015 -/* B7F6A4 80108504 A02F6305 */ sb $t7, 0x6305($at) -/* B7F6A8 80108508 0C00084C */ jal osSyncPrintf -/* B7F6AC 8010850C 24843F28 */ addiu $a0, %lo(D_80153F28) # addiu $a0, $a0, 0x3f28 -/* B7F6B0 80108510 1000005E */ b .L8010868C -/* B7F6B4 80108514 8FB90024 */ lw $t9, 0x24($sp) -.L80108518: -/* B7F6B8 80108518 2401002D */ li $at, 45 -/* B7F6BC 8010851C 14A10021 */ bne $a1, $at, .L801085A4 -/* B7F6C0 80108520 3C048015 */ lui $a0, %hi(D_80153F54) # $a0, 0x8015 -/* B7F6C4 80108524 0C00084C */ jal osSyncPrintf -/* B7F6C8 80108528 24843F54 */ addiu $a0, %lo(D_80153F54) # addiu $a0, $a0, 0x3f54 -/* B7F6CC 8010852C 0C03B616 */ jal func_800ED858 -/* B7F6D0 80108530 24040001 */ li $a0, 1 -/* B7F6D4 80108534 0C03B616 */ jal func_800ED858 -/* B7F6D8 80108538 24040001 */ li $a0, 1 -/* B7F6DC 8010853C 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B7F6E0 80108540 00000000 */ nop -/* B7F6E4 80108544 3C038015 */ lui $v1, %hi(D_8014B2FC) # $v1, 0x8015 -/* B7F6E8 80108548 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F6EC 8010854C AC2262B9 */ sw $v0, 0x62b9($at) -/* B7F6F0 80108550 2463B2FC */ addiu $v1, %lo(D_8014B2FC) # addiu $v1, $v1, -0x4d04 -/* B7F6F4 80108554 A4600000 */ sh $zero, ($v1) -/* B7F6F8 80108558 84780000 */ lh $t8, ($v1) -/* B7F6FC 8010855C 3C048015 */ lui $a0, %hi(D_8014B2F8) # $a0, 0x8015 -/* B7F700 80108560 8FA80024 */ lw $t0, 0x24($sp) -/* B7F704 80108564 2484B2F8 */ addiu $a0, %lo(D_8014B2F8) # addiu $a0, $a0, -0x4d08 -/* B7F708 80108568 A4980000 */ sh $t8, ($a0) -/* B7F70C 8010856C 84990000 */ lh $t9, ($a0) -/* B7F710 80108570 8D0962B8 */ lw $t1, 0x62b8($t0) -/* B7F714 80108574 0C041A6C */ jal func_801069B0 -/* B7F718 80108578 A1390002 */ sb $t9, 2($t1) -/* B7F71C 8010857C 240B0003 */ li $t3, 3 -/* B7F720 80108580 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F724 80108584 240A0028 */ li $t2, 40 -/* B7F728 80108588 A02B63E8 */ sb $t3, 0x63e8($at) -/* B7F72C 8010858C A02A6305 */ sb $t2, 0x6305($at) -/* B7F730 80108590 2404000D */ li $a0, 13 -/* B7F734 80108594 0C03B64F */ jal func_800ED93C -/* B7F738 80108598 24050001 */ li $a1, 1 -/* B7F73C 8010859C 1000003B */ b .L8010868C -/* B7F740 801085A0 8FB90024 */ lw $t9, 0x24($sp) -.L801085A4: -/* B7F744 801085A4 2401002E */ li $at, 46 -/* B7F748 801085A8 14A10008 */ bne $a1, $at, .L801085CC -/* B7F74C 801085AC 240C0029 */ li $t4, 41 -/* B7F750 801085B0 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F754 801085B4 3C048015 */ lui $a0, %hi(D_80153F74) # $a0, 0x8015 -/* B7F758 801085B8 A02C6305 */ sb $t4, 0x6305($at) -/* B7F75C 801085BC 0C00084C */ jal osSyncPrintf -/* B7F760 801085C0 24843F74 */ addiu $a0, %lo(D_80153F74) # addiu $a0, $a0, 0x3f74 -/* B7F764 801085C4 10000031 */ b .L8010868C -/* B7F768 801085C8 8FB90024 */ lw $t9, 0x24($sp) -.L801085CC: -/* B7F76C 801085CC 2401002F */ li $at, 47 -/* B7F770 801085D0 14A10009 */ bne $a1, $at, .L801085F8 -/* B7F774 801085D4 3C048015 */ lui $a0, %hi(D_80153FC0) -/* B7F778 801085D8 240D0031 */ li $t5, 49 -/* B7F77C 801085DC 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F780 801085E0 3C048015 */ lui $a0, %hi(D_80153FA0) # $a0, 0x8015 -/* B7F784 801085E4 A02D6305 */ sb $t5, 0x6305($at) -/* B7F788 801085E8 0C00084C */ jal osSyncPrintf -/* B7F78C 801085EC 24843FA0 */ addiu $a0, %lo(D_80153FA0) # addiu $a0, $a0, 0x3fa0 -/* B7F790 801085F0 10000026 */ b .L8010868C -/* B7F794 801085F4 8FB90024 */ lw $t9, 0x24($sp) -.L801085F8: -/* B7F798 801085F8 0C00084C */ jal osSyncPrintf -/* B7F79C 801085FC 24843FC0 */ addiu $a0, %lo(D_80153FC0) -/* B7F7A0 80108600 8FAE0024 */ lw $t6, 0x24($sp) -/* B7F7A4 80108604 3C048015 */ lui $a0, %hi(D_80153FD0) # $a0, 0x8015 -/* B7F7A8 80108608 24010001 */ li $at, 1 -/* B7F7AC 8010860C 95C563F0 */ lhu $a1, 0x63f0($t6) -/* B7F7B0 80108610 240F0009 */ li $t7, 9 -/* B7F7B4 80108614 24843FD0 */ addiu $a0, %lo(D_80153FD0) # addiu $a0, $a0, 0x3fd0 -/* B7F7B8 80108618 50A00005 */ beql $a1, $zero, .L80108630 -/* B7F7BC 8010861C 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F7C0 80108620 10A10002 */ beq $a1, $at, .L8010862C -/* B7F7C4 80108624 28A10022 */ slti $at, $a1, 0x22 -/* B7F7C8 80108628 14200005 */ bnez $at, .L80108640 -.L8010862C: -/* B7F7CC 8010862C 26017FFF */ addiu $at, $s0, 0x7fff -.L80108630: -/* B7F7D0 80108630 0C00084C */ jal osSyncPrintf -/* B7F7D4 80108634 A02F6305 */ sb $t7, 0x6305($at) -/* B7F7D8 80108638 10000014 */ b .L8010868C -/* B7F7DC 8010863C 8FB90024 */ lw $t9, 0x24($sp) -.L80108640: -/* B7F7E0 80108640 28A10002 */ slti $at, $a1, 2 -/* B7F7E4 80108644 1420000B */ bnez $at, .L80108674 -/* B7F7E8 80108648 2408000B */ li $t0, 11 -/* B7F7EC 8010864C 28A1000E */ slti $at, $a1, 0xe -/* B7F7F0 80108650 10200008 */ beqz $at, .L80108674 -/* B7F7F4 80108654 2418000A */ li $t8, 10 -/* B7F7F8 80108658 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F7FC 8010865C 3C048015 */ lui $a0, %hi(D_80153FE4) # $a0, 0x8015 -/* B7F800 80108660 A0386305 */ sb $t8, 0x6305($at) -/* B7F804 80108664 0C00084C */ jal osSyncPrintf -/* B7F808 80108668 24843FE4 */ addiu $a0, %lo(D_80153FE4) # addiu $a0, $a0, 0x3fe4 -/* B7F80C 8010866C 10000007 */ b .L8010868C -/* B7F810 80108670 8FB90024 */ lw $t9, 0x24($sp) -.L80108674: -/* B7F814 80108674 26017FFF */ addiu $at, $s0, 0x7fff -/* B7F818 80108678 3C048015 */ lui $a0, %hi(D_80153FF8) # $a0, 0x8015 -/* B7F81C 8010867C A0286305 */ sb $t0, 0x6305($at) -/* B7F820 80108680 0C00084C */ jal osSyncPrintf -/* B7F824 80108684 24843FF8 */ addiu $a0, %lo(D_80153FF8) # addiu $a0, $a0, 0x3ff8 -/* B7F828 80108688 8FB90024 */ lw $t9, 0x24($sp) -.L8010868C: -/* B7F82C 8010868C 3C048015 */ lui $a0, %hi(D_8015400C) # $a0, 0x8015 -/* B7F830 80108690 2484400C */ addiu $a0, %lo(D_8015400C) # addiu $a0, $a0, 0x400c -/* B7F834 80108694 0C00084C */ jal osSyncPrintf -/* B7F838 80108698 93256304 */ lbu $a1, 0x6304($t9) -.L8010869C: -/* B7F83C 8010869C 8FBF001C */ lw $ra, 0x1c($sp) -/* B7F840 801086A0 8FB00018 */ lw $s0, 0x18($sp) -/* B7F844 801086A4 27BD0030 */ addiu $sp, $sp, 0x30 -/* B7F848 801086A8 03E00008 */ jr $ra -/* B7F84C 801086AC 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_801086B0.s b/asm/non_matchings/code/z_message_PAL/func_801086B0.s deleted file mode 100644 index 38c2ed63ce..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_801086B0.s +++ /dev/null @@ -1,1338 +0,0 @@ -.rdata -glabel D_8015401C - # Timer (%x) (%x) - .asciz "タイマー (%x) (%x)" - .balign 4 - -glabel D_80154030 - # Total wct=%x(%d) - .asciz "合計wct=%x(%d)\n" - .balign 4 - -glabel D_80154040 - # Sound (SFX) - .asciz "サウンド(SE)\n" - .balign 4 - -.late_rodata -glabel jtbl_80154B48 - .word L801087EC - .word L801095F0 - .word L801097E4 - .word L801088E8 - .word L8010887C - .word L80108984 - .word L801089B8 - .word L80108A2C - .word L80108AD4 - .word L80109724 - .word L8010977C - .word L80108B34 - .word L80108AE0 - .word L801096B4 - .word L801097E4 - .word L80109680 - .word L80108B70 - .word L80108C0C - .word L80108CB8 - .word L801094E4 - .word L80108D00 - .word L801097E4 - .word L801097E4 - .word L801097E4 - .word L801097E4 - .word L80109510 - .word L80109528 - .word L8010958C - .word L801097E4 - .word L801097E4 - .word L801097E4 - .word L801088CC - -.text -glabel func_801086B0 -/* B7F850 801086B0 27BDFEC8 */ addiu $sp, $sp, -0x138 -/* B7F854 801086B4 AFB7003C */ sw $s7, 0x3c($sp) -/* B7F858 801086B8 3C178016 */ lui $s7, %hi(gGameInfo) # $s7, 0x8016 -/* B7F85C 801086BC AFBF0044 */ sw $ra, 0x44($sp) -/* B7F860 801086C0 AFBE0040 */ sw $fp, 0x40($sp) -/* B7F864 801086C4 AFB60038 */ sw $s6, 0x38($sp) -/* B7F868 801086C8 AFB50034 */ sw $s5, 0x34($sp) -/* B7F86C 801086CC AFB40030 */ sw $s4, 0x30($sp) -/* B7F870 801086D0 AFB3002C */ sw $s3, 0x2c($sp) -/* B7F874 801086D4 AFB20028 */ sw $s2, 0x28($sp) -/* B7F878 801086D8 AFB10024 */ sw $s1, 0x24($sp) -/* B7F87C 801086DC AFB00020 */ sw $s0, 0x20($sp) -/* B7F880 801086E0 AFA5013C */ sw $a1, 0x13c($sp) -/* B7F884 801086E4 8CAF0000 */ lw $t7, ($a1) -/* B7F888 801086E8 26F7FA90 */ addiu $s7, %lo(gGameInfo) # addiu $s7, $s7, -0x570 -/* B7F88C 801086EC 8EF80000 */ lw $t8, ($s7) -/* B7F890 801086F0 AFAF0120 */ sw $t7, 0x120($sp) -/* B7F894 801086F4 3C010001 */ lui $at, 1 -/* B7F898 801086F8 87190B00 */ lh $t9, 0xb00($t8) -/* B7F89C 801086FC 00240821 */ addu $at, $at, $a0 -/* B7F8A0 80108700 3C0E8015 */ lui $t6, %hi(D_8014B308) # $t6, 0x8015 -/* B7F8A4 80108704 A43904B0 */ sh $t9, 0x4b0($at) -/* B7F8A8 80108708 85CEB308 */ lh $t6, %lo(D_8014B308)($t6) -/* B7F8AC 8010870C 249120D8 */ addiu $s1, $a0, 0x20d8 -/* B7F8B0 80108710 0220B025 */ move $s6, $s1 -/* B7F8B4 80108714 15C00006 */ bnez $t6, .L80108730 -/* B7F8B8 80108718 34158000 */ li $s5, 32768 -/* B7F8BC 8010871C 8EEF0000 */ lw $t7, ($s7) -/* B7F8C0 80108720 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F8C4 80108724 85F80B02 */ lh $t8, 0xb02($t7) -/* B7F8C8 80108728 10000005 */ b .L80108740 -/* B7F8CC 8010872C A43863DB */ sh $t8, 0x63db($at) -.L80108730: -/* B7F8D0 80108730 8EF90000 */ lw $t9, ($s7) -/* B7F8D4 80108734 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F8D8 80108738 872E0496 */ lh $t6, 0x496($t9) -/* B7F8DC 8010873C A42E63DB */ sh $t6, 0x63db($at) -.L80108740: -/* B7F8E0 80108740 02358021 */ addu $s0, $s1, $s5 -/* B7F8E4 80108744 920F62FD */ lbu $t7, 0x62fd($s0) -/* B7F8E8 80108748 24010005 */ li $at, 5 -/* B7F8EC 8010874C 241800FF */ li $t8, 255 -/* B7F8F0 80108750 15E10007 */ bne $t7, $at, .L80108770 -/* B7F8F4 80108754 241E0002 */ li $fp, 2 -/* B7F8F8 80108758 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F8FC 8010875C A42063E1 */ sh $zero, 0x63e1($at) -/* B7F900 80108760 860763E0 */ lh $a3, 0x63e0($s0) -/* B7F904 80108764 A42763DF */ sh $a3, 0x63df($at) -/* B7F908 80108768 10000006 */ b .L80108784 -/* B7F90C 8010876C A42763DD */ sh $a3, 0x63dd($at) -.L80108770: -/* B7F910 80108770 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F914 80108774 A43863E1 */ sh $t8, 0x63e1($at) -/* B7F918 80108778 860763E0 */ lh $a3, 0x63e0($s0) -/* B7F91C 8010877C A42763DF */ sh $a3, 0x63df($at) -/* B7F920 80108780 A42763DD */ sh $a3, 0x63dd($at) -.L80108784: -/* B7F924 80108784 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F928 80108788 A42063D1 */ sh $zero, 0x63d1($at) -/* B7F92C 8010878C A7A00128 */ sh $zero, 0x128($sp) -/* B7F930 80108790 961963D2 */ lhu $t9, 0x63d2($s0) -/* B7F934 80108794 00009025 */ move $s2, $zero -/* B7F938 80108798 24140006 */ li $s4, 6 -/* B7F93C 8010879C 1B200458 */ blez $t9, .L80109900 -/* B7F940 801087A0 240D0004 */ li $t5, 4 -/* B7F944 801087A4 AFA40138 */ sw $a0, 0x138($sp) -/* B7F948 801087A8 240C000D */ li $t4, 13 -/* B7F94C 801087AC 240B000C */ li $t3, 12 -/* B7F950 801087B0 240A000B */ li $t2, 11 -/* B7F954 801087B4 2409000A */ li $t1, 10 -/* B7F958 801087B8 24080009 */ li $t0, 9 -/* B7F95C 801087BC 02327021 */ addu $t6, $s1, $s2 -.L801087C0: -/* B7F960 801087C0 01D57821 */ addu $t7, $t6, $s5 -/* B7F964 801087C4 91E26306 */ lbu $v0, 0x6306($t7) -/* B7F968 801087C8 2458FFFF */ addiu $t8, $v0, -1 -/* B7F96C 801087CC 2F010020 */ sltiu $at, $t8, 0x20 -/* B7F970 801087D0 10200404 */ beqz $at, .L801097E4 -/* B7F974 801087D4 0018C080 */ sll $t8, $t8, 2 -/* B7F978 801087D8 3C018015 */ lui $at, %hi(jtbl_80154B48) -/* B7F97C 801087DC 00380821 */ addu $at, $at, $t8 -/* B7F980 801087E0 8C384B48 */ lw $t8, %lo(jtbl_80154B48)($at) -/* B7F984 801087E4 03000008 */ jr $t8 -/* B7F988 801087E8 00000000 */ nop - -glabel L801087EC -/* B7F98C 801087EC 8EF90000 */ lw $t9, ($s7) -/* B7F990 801087F0 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F994 801087F4 872E0B00 */ lh $t6, 0xb00($t9) -/* B7F998 801087F8 A42E63D9 */ sh $t6, 0x63d9($at) -/* B7F99C 801087FC 920263E6 */ lbu $v0, 0x63e6($s0) -/* B7F9A0 80108800 34018000 */ li $at, 32768 -/* B7F9A4 80108804 02C19821 */ addu $s3, $s6, $at -/* B7F9A8 80108808 24010001 */ li $at, 1 -/* B7F9AC 8010880C 10410003 */ beq $v0, $at, .L8010881C -/* B7F9B0 80108810 24010003 */ li $at, 3 -/* B7F9B4 80108814 14410006 */ bne $v0, $at, .L80108830 -/* B7F9B8 80108818 00000000 */ nop -.L8010881C: -/* B7F9BC 8010881C 860F63D8 */ lh $t7, 0x63d8($s0) -/* B7F9C0 80108820 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F9C4 80108824 25F80020 */ addiu $t8, $t7, 0x20 -/* B7F9C8 80108828 A43863D9 */ sh $t8, 0x63d9($at) -/* B7F9CC 8010882C 920263E6 */ lbu $v0, 0x63e6($s0) -.L80108830: -/* B7F9D0 80108830 57C2000B */ bnel $fp, $v0, .L80108860 -/* B7F9D4 80108834 8EEF0000 */ lw $t7, ($s7) -/* B7F9D8 80108838 8EEE0000 */ lw $t6, ($s7) -/* B7F9DC 8010883C 861963DA */ lh $t9, 0x63da($s0) -/* B7F9E0 80108840 85CF0B02 */ lh $t7, 0xb02($t6) -/* B7F9E4 80108844 532F0006 */ beql $t9, $t7, .L80108860 -/* B7F9E8 80108848 8EEF0000 */ lw $t7, ($s7) -/* B7F9EC 8010884C 861863D8 */ lh $t8, 0x63d8($s0) -/* B7F9F0 80108850 26217FFF */ addiu $at, $s1, 0x7fff -/* B7F9F4 80108854 270E0020 */ addiu $t6, $t8, 0x20 -/* B7F9F8 80108858 A42E63D9 */ sh $t6, 0x63d9($at) -/* B7F9FC 8010885C 8EEF0000 */ lw $t7, ($s7) -.L80108860: -/* B7FA00 80108860 861963DA */ lh $t9, 0x63da($s0) -/* B7FA04 80108864 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FA08 80108868 85F80B04 */ lh $t8, 0xb04($t7) -/* B7FA0C 8010886C 03387021 */ addu $t6, $t9, $t8 -/* B7FA10 80108870 A42E63DB */ sh $t6, 0x63db($at) -/* B7FA14 80108874 1000041D */ b .L801098EC -/* B7FA18 80108878 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L8010887C -/* B7FA1C 8010887C 26420001 */ addiu $v0, $s2, 1 -/* B7FA20 80108880 3047FFFF */ andi $a3, $v0, 0xffff -/* B7FA24 80108884 02277821 */ addu $t7, $s1, $a3 -/* B7FA28 80108888 01F5C821 */ addu $t9, $t7, $s5 -/* B7FA2C 8010888C 93256306 */ lbu $a1, 0x6306($t9) -/* B7FA30 80108890 34018000 */ li $at, 32768 -/* B7FA34 80108894 02C19821 */ addu $s3, $s6, $at -/* B7FA38 80108898 30A5000F */ andi $a1, $a1, 0xf -/* B7FA3C 8010889C 30A5FFFF */ andi $a1, $a1, 0xffff -/* B7FA40 801088A0 3052FFFF */ andi $s2, $v0, 0xffff -/* B7FA44 801088A4 0C041DB3 */ jal func_801076CC -/* B7FA48 801088A8 02202025 */ move $a0, $s1 -/* B7FA4C 801088AC 24080009 */ li $t0, 9 -/* B7FA50 801088B0 2409000A */ li $t1, 10 -/* B7FA54 801088B4 240A000B */ li $t2, 11 -/* B7FA58 801088B8 240B000C */ li $t3, 12 -/* B7FA5C 801088BC 240C000D */ li $t4, 13 -/* B7FA60 801088C0 240D0004 */ li $t5, 4 -/* B7FA64 801088C4 10000409 */ b .L801098EC -/* B7FA68 801088C8 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L801088CC -/* B7FA6C 801088CC 861863D8 */ lh $t8, 0x63d8($s0) -/* B7FA70 801088D0 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FA74 801088D4 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B7FA78 801088D8 270E0006 */ addiu $t6, $t8, 6 -/* B7FA7C 801088DC A42E63D9 */ sh $t6, 0x63d9($at) -/* B7FA80 801088E0 10000402 */ b .L801098EC -/* B7FA84 801088E4 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L801088E8 -/* B7FA88 801088E8 920F6304 */ lbu $t7, 0x6304($s0) -/* B7FA8C 801088EC 3C198015 */ lui $t9, %hi(D_8014B300) # $t9, 0x8015 -/* B7FA90 801088F0 568F0021 */ bnel $s4, $t7, .L80108978 -/* B7FA94 801088F4 8FB80120 */ lw $t8, 0x120($sp) -/* B7FA98 801088F8 9339B300 */ lbu $t9, %lo(D_8014B300)($t9) -/* B7FA9C 801088FC 00002025 */ move $a0, $zero -/* B7FAA0 80108900 240E0004 */ li $t6, 4 -/* B7FAA4 80108904 17200016 */ bnez $t9, .L80108960 -/* B7FAA8 80108908 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FAAC 8010890C 8FAF0138 */ lw $t7, 0x138($sp) -/* B7FAB0 80108910 3C188013 */ lui $t8, %hi(D_801333E0) -/* B7FAB4 80108914 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B7FAB8 80108918 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B7FABC 8010891C 270733E0 */ addiu $a3, $t8, %lo(D_801333E0) -/* B7FAC0 80108920 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7FAC4 80108924 25F92200 */ addiu $t9, $t7, 0x2200 -/* B7FAC8 80108928 AFB90058 */ sw $t9, 0x58($sp) -/* B7FACC 8010892C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7FAD0 80108930 AFA70010 */ sw $a3, 0x10($sp) -/* B7FAD4 80108934 AFAE0014 */ sw $t6, 0x14($sp) -/* B7FAD8 80108938 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7FADC 8010893C 24060004 */ li $a2, 4 -/* B7FAE0 80108940 24180034 */ li $t8, 52 -/* B7FAE4 80108944 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FAE8 80108948 A0386305 */ sb $t8, 0x6305($at) -/* B7FAEC 8010894C 8FA40058 */ lw $a0, 0x58($sp) -/* B7FAF0 80108950 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B7FAF4 80108954 00002825 */ move $a1, $zero -/* B7FAF8 80108958 10000007 */ b .L80108978 -/* B7FAFC 8010895C 8FB80120 */ lw $t8, 0x120($sp) -.L80108960: -/* B7FB00 80108960 A02E6305 */ sb $t6, 0x6305($at) -/* B7FB04 80108964 A42063D7 */ sh $zero, 0x63d7($at) -/* B7FB08 80108968 960F63CE */ lhu $t7, 0x63ce($s0) -/* B7FB0C 8010896C 25F90001 */ addiu $t9, $t7, 1 -/* B7FB10 80108970 A43963CF */ sh $t9, 0x63cf($at) -/* B7FB14 80108974 8FB80120 */ lw $t8, 0x120($sp) -.L80108978: -/* B7FB18 80108978 8FAE013C */ lw $t6, 0x13c($sp) -/* B7FB1C 8010897C 100003EE */ b .L80109938 -/* B7FB20 80108980 ADD80000 */ sw $t8, ($t6) - -glabel L80108984 -/* B7FB24 80108984 26420001 */ addiu $v0, $s2, 1 -/* B7FB28 80108988 3047FFFF */ andi $a3, $v0, 0xffff -/* B7FB2C 8010898C 0227C821 */ addu $t9, $s1, $a3 -/* B7FB30 80108990 0335C021 */ addu $t8, $t9, $s5 -/* B7FB34 80108994 930E6306 */ lbu $t6, 0x6306($t8) -/* B7FB38 80108998 860F63D8 */ lh $t7, 0x63d8($s0) -/* B7FB3C 8010899C 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FB40 801089A0 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B7FB44 801089A4 01EEC821 */ addu $t9, $t7, $t6 -/* B7FB48 801089A8 A43963D9 */ sh $t9, 0x63d9($at) -/* B7FB4C 801089AC 3052FFFF */ andi $s2, $v0, 0xffff -/* B7FB50 801089B0 100003CE */ b .L801098EC -/* B7FB54 801089B4 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L801089B8 -/* B7FB58 801089B8 24180030 */ li $t8, 48 -/* B7FB5C 801089BC 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FB60 801089C0 A03863E5 */ sb $t8, 0x63e5($at) -/* B7FB64 801089C4 920F6304 */ lbu $t7, 0x6304($s0) -/* B7FB68 801089C8 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7FB6C 801089CC 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7FB70 801089D0 168F0012 */ bne $s4, $t7, .L80108A1C -/* B7FB74 801089D4 00002025 */ move $a0, $zero -/* B7FB78 801089D8 8FB80138 */ lw $t8, 0x138($sp) -/* B7FB7C 801089DC 3C0E8013 */ lui $t6, %hi(D_801333E0) -/* B7FB80 801089E0 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B7FB84 801089E4 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B7FB88 801089E8 25C733E0 */ addiu $a3, $t6, %lo(D_801333E0) -/* B7FB8C 801089EC 270F2200 */ addiu $t7, $t8, 0x2200 -/* B7FB90 801089F0 AFAF0058 */ sw $t7, 0x58($sp) -/* B7FB94 801089F4 AFA70010 */ sw $a3, 0x10($sp) -/* B7FB98 801089F8 AFB90014 */ sw $t9, 0x14($sp) -/* B7FB9C 801089FC 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7FBA0 80108A00 24060004 */ li $a2, 4 -/* B7FBA4 80108A04 240E0035 */ li $t6, 53 -/* B7FBA8 80108A08 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FBAC 80108A0C A02E6305 */ sb $t6, 0x6305($at) -/* B7FBB0 80108A10 8FA40058 */ lw $a0, 0x58($sp) -/* B7FBB4 80108A14 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B7FBB8 80108A18 00002825 */ move $a1, $zero -.L80108A1C: -/* B7FBBC 80108A1C 8FB90120 */ lw $t9, 0x120($sp) -/* B7FBC0 80108A20 8FB8013C */ lw $t8, 0x13c($sp) -/* B7FBC4 80108A24 100003C4 */ b .L80109938 -/* B7FBC8 80108A28 AF190000 */ sw $t9, ($t8) - -glabel L80108A2C -/* B7FBCC 80108A2C 960F63D2 */ lhu $t7, 0x63d2($s0) -/* B7FBD0 80108A30 264E0001 */ addiu $t6, $s2, 1 -/* B7FBD4 80108A34 55EE0028 */ bnel $t7, $t6, .L80108AD8 -/* B7FBD8 80108A38 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B7FBDC 80108A3C 92026304 */ lbu $v0, 0x6304($s0) -/* B7FBE0 80108A40 3244FFFF */ andi $a0, $s2, 0xffff -/* B7FBE4 80108A44 12820005 */ beq $s4, $v0, .L80108A5C -/* B7FBE8 80108A48 28410009 */ slti $at, $v0, 9 -/* B7FBEC 80108A4C 14200021 */ bnez $at, .L80108AD4 -/* B7FBF0 80108A50 28410021 */ slti $at, $v0, 0x21 -/* B7FBF4 80108A54 50200020 */ beql $at, $zero, .L80108AD8 -/* B7FBF8 80108A58 26C37FFF */ addiu $v1, $s6, 0x7fff -.L80108A5C: -/* B7FBFC 80108A5C 0224C821 */ addu $t9, $s1, $a0 -/* B7FC00 80108A60 0335C021 */ addu $t8, $t9, $s5 -/* B7FC04 80108A64 93026306 */ lbu $v0, 0x6306($t8) -/* B7FC08 80108A68 16820004 */ bne $s4, $v0, .L80108A7C -/* B7FC0C 80108A6C 00000000 */ nop -/* B7FC10 80108A70 24840002 */ addiu $a0, $a0, 2 -/* B7FC14 80108A74 1000FFF9 */ b .L80108A5C -/* B7FC18 80108A78 3084FFFF */ andi $a0, $a0, 0xffff -.L80108A7C: -/* B7FC1C 80108A7C 51020011 */ beql $t0, $v0, .L80108AC4 -/* B7FC20 80108A80 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC24 80108A84 5122000F */ beql $t1, $v0, .L80108AC4 -/* B7FC28 80108A88 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC2C 80108A8C 5142000D */ beql $t2, $v0, .L80108AC4 -/* B7FC30 80108A90 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC34 80108A94 5162000B */ beql $t3, $v0, .L80108AC4 -/* B7FC38 80108A98 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC3C 80108A9C 51820009 */ beql $t4, $v0, .L80108AC4 -/* B7FC40 80108AA0 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC44 80108AA4 51A20007 */ beql $t5, $v0, .L80108AC4 -/* B7FC48 80108AA8 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC4C 80108AAC 53C20005 */ beql $fp, $v0, .L80108AC4 -/* B7FC50 80108AB0 248FFFFF */ addiu $t7, $a0, -1 -/* B7FC54 80108AB4 24840001 */ addiu $a0, $a0, 1 -/* B7FC58 80108AB8 1000FFE8 */ b .L80108A5C -/* B7FC5C 80108ABC 3084FFFF */ andi $a0, $a0, 0xffff -/* B7FC60 80108AC0 248FFFFF */ addiu $t7, $a0, -1 -.L80108AC4: -/* B7FC64 80108AC4 25EE0001 */ addiu $t6, $t7, 1 -/* B7FC68 80108AC8 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FC6C 80108ACC 31F2FFFF */ andi $s2, $t7, 0xffff -/* B7FC70 80108AD0 A42E63D3 */ sh $t6, 0x63d3($at) -.L80108AD4: -glabel L80108AD4 -/* B7FC74 80108AD4 26C37FFF */ addiu $v1, $s6, 0x7fff -.L80108AD8: -/* B7FC78 80108AD8 10000384 */ b .L801098EC -/* B7FC7C 80108ADC 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L80108AE0 -/* B7FC80 80108AE0 961963D2 */ lhu $t9, 0x63d2($s0) -/* B7FC84 80108AE4 26580001 */ addiu $t8, $s2, 1 -/* B7FC88 80108AE8 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B7FC8C 80108AEC 1738000F */ bne $t9, $t8, .L80108B2C -/* B7FC90 80108AF0 00000000 */ nop -/* B7FC94 80108AF4 920F6304 */ lbu $t7, 0x6304($s0) -/* B7FC98 80108AF8 240E0007 */ li $t6, 7 -/* B7FC9C 80108AFC 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FCA0 80108B00 568F0007 */ bnel $s4, $t7, .L80108B20 -/* B7FCA4 80108B04 8FB90120 */ lw $t9, 0x120($sp) -/* B7FCA8 80108B08 A02E6305 */ sb $t6, 0x6305($at) -/* B7FCAC 80108B0C 8FA40138 */ lw $a0, 0x138($sp) -/* B7FCB0 80108B10 00002825 */ move $a1, $zero -/* B7FCB4 80108B14 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B7FCB8 80108B18 24842200 */ addiu $a0, $a0, 0x2200 -/* B7FCBC 80108B1C 8FB90120 */ lw $t9, 0x120($sp) -.L80108B20: -/* B7FCC0 80108B20 8FB8013C */ lw $t8, 0x13c($sp) -/* B7FCC4 80108B24 10000384 */ b .L80109938 -/* B7FCC8 80108B28 AF190000 */ sw $t9, ($t8) -.L80108B2C: -/* B7FCCC 80108B2C 1000036F */ b .L801098EC -/* B7FCD0 80108B30 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L80108B34 -/* B7FCD4 80108B34 920F6304 */ lbu $t7, 0x6304($s0) -/* B7FCD8 80108B38 26470001 */ addiu $a3, $s2, 1 -/* B7FCDC 80108B3C 30E7FFFF */ andi $a3, $a3, 0xffff -/* B7FCE0 80108B40 168F0007 */ bne $s4, $t7, .L80108B60 -/* B7FCE4 80108B44 02277021 */ addu $t6, $s1, $a3 -/* B7FCE8 80108B48 01D5C821 */ addu $t9, $t6, $s5 -/* B7FCEC 80108B4C 93386306 */ lbu $t8, 0x6306($t9) -/* B7FCF0 80108B50 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FCF4 80108B54 240F0008 */ li $t7, 8 -/* B7FCF8 80108B58 A02F6305 */ sb $t7, 0x6305($at) -/* B7FCFC 80108B5C A03863E8 */ sb $t8, 0x63e8($at) -.L80108B60: -/* B7FD00 80108B60 8FAE0120 */ lw $t6, 0x120($sp) -/* B7FD04 80108B64 8FB9013C */ lw $t9, 0x13c($sp) -/* B7FD08 80108B68 10000373 */ b .L80109938 -/* B7FD0C 80108B6C AF2E0000 */ sw $t6, ($t9) - -glabel L80108B70 -/* B7FD10 80108B70 92186304 */ lbu $t8, 0x6304($s0) -/* B7FD14 80108B74 240F0035 */ li $t7, 53 -/* B7FD18 80108B78 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FD1C 80108B7C 1698001F */ bne $s4, $t8, .L80108BFC -/* B7FD20 80108B80 240E0060 */ li $t6, 96 -/* B7FD24 80108B84 0232C821 */ addu $t9, $s1, $s2 -/* B7FD28 80108B88 A02F6305 */ sb $t7, 0x6305($at) -/* B7FD2C 80108B8C A02E63E5 */ sb $t6, 0x63e5($at) -/* B7FD30 80108B90 03351821 */ addu $v1, $t9, $s5 -/* B7FD34 80108B94 3C048015 */ lui $a0, %hi(D_8015401C) # $a0, 0x8015 -/* B7FD38 80108B98 2484401C */ addiu $a0, %lo(D_8015401C) # addiu $a0, $a0, 0x401c -/* B7FD3C 80108B9C 90656307 */ lbu $a1, 0x6307($v1) -/* B7FD40 80108BA0 0C00084C */ jal osSyncPrintf -/* B7FD44 80108BA4 90666308 */ lbu $a2, 0x6308($v1) -/* B7FD48 80108BA8 26420001 */ addiu $v0, $s2, 1 -/* B7FD4C 80108BAC 3047FFFF */ andi $a3, $v0, 0xffff -/* B7FD50 80108BB0 0227C021 */ addu $t8, $s1, $a3 -/* B7FD54 80108BB4 03157821 */ addu $t7, $t8, $s5 -/* B7FD58 80108BB8 91EE6306 */ lbu $t6, 0x6306($t7) -/* B7FD5C 80108BBC 24470001 */ addiu $a3, $v0, 1 -/* B7FD60 80108BC0 26217FFF */ addiu $at, $s1, 0x7fff -/* B7FD64 80108BC4 30E7FFFF */ andi $a3, $a3, 0xffff -/* B7FD68 80108BC8 000ECA00 */ sll $t9, $t6, 8 -/* B7FD6C 80108BCC A03963E8 */ sb $t9, 0x63e8($at) -/* B7FD70 80108BD0 02277821 */ addu $t7, $s1, $a3 -/* B7FD74 80108BD4 01F57021 */ addu $t6, $t7, $s5 -/* B7FD78 80108BD8 91D96306 */ lbu $t9, 0x6306($t6) -/* B7FD7C 80108BDC 921863E7 */ lbu $t8, 0x63e7($s0) -/* B7FD80 80108BE0 3C048015 */ lui $a0, %hi(D_80154030) # $a0, 0x8015 -/* B7FD84 80108BE4 24844030 */ addiu $a0, %lo(D_80154030) # addiu $a0, $a0, 0x4030 -/* B7FD88 80108BE8 03197825 */ or $t7, $t8, $t9 -/* B7FD8C 80108BEC A02F63E8 */ sb $t7, 0x63e8($at) -/* B7FD90 80108BF0 920563E7 */ lbu $a1, 0x63e7($s0) -/* B7FD94 80108BF4 0C00084C */ jal osSyncPrintf -/* B7FD98 80108BF8 00A03025 */ move $a2, $a1 -.L80108BFC: -/* B7FD9C 80108BFC 8FAE0120 */ lw $t6, 0x120($sp) -/* B7FDA0 80108C00 8FB8013C */ lw $t8, 0x13c($sp) -/* B7FDA4 80108C04 1000034C */ b .L80109938 -/* B7FDA8 80108C08 AF0E0000 */ sw $t6, ($t8) - -glabel L80108C0C -/* B7FDAC 80108C0C AFB20050 */ sw $s2, 0x50($sp) -/* B7FDB0 80108C10 92196304 */ lbu $t9, 0x6304($s0) -/* B7FDB4 80108C14 34018000 */ li $at, 32768 -/* B7FDB8 80108C18 02C19821 */ addu $s3, $s6, $at -/* B7FDBC 80108C1C 16990021 */ bne $s4, $t9, .L80108CA4 -/* B7FDC0 80108C20 3C0F8015 */ lui $t7, %hi(D_8014B318) # $t7, 0x8015 -/* B7FDC4 80108C24 85EFB318 */ lh $t7, %lo(D_8014B318)($t7) -/* B7FDC8 80108C28 240E0001 */ li $t6, 1 -/* B7FDCC 80108C2C 3C018015 */ lui $at, %hi(D_8014B318) # $at, 0x8015 -/* B7FDD0 80108C30 15E0001C */ bnez $t7, .L80108CA4 -/* B7FDD4 80108C34 3C048015 */ lui $a0, %hi(D_80154040) # $a0, 0x8015 -/* B7FDD8 80108C38 A42EB318 */ sh $t6, %lo(D_8014B318)($at) -/* B7FDDC 80108C3C 0C00084C */ jal osSyncPrintf -/* B7FDE0 80108C40 24844040 */ addiu $a0, %lo(D_80154040) # addiu $a0, $a0, 0x4040 -/* B7FDE4 80108C44 8FB80050 */ lw $t8, 0x50($sp) -/* B7FDE8 80108C48 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7FDEC 80108C4C 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B7FDF0 80108C50 0238C821 */ addu $t9, $s1, $t8 -/* B7FDF4 80108C54 03351821 */ addu $v1, $t9, $s5 -/* B7FDF8 80108C58 90626307 */ lbu $v0, 0x6307($v1) -/* B7FDFC 80108C5C 906F6308 */ lbu $t7, 0x6308($v1) -/* B7FE00 80108C60 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7FE04 80108C64 00021200 */ sll $v0, $v0, 8 -/* B7FE08 80108C68 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B7FE0C 80108C6C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7FE10 80108C70 01E22025 */ or $a0, $t7, $v0 -/* B7FE14 80108C74 3084FFFF */ andi $a0, $a0, 0xffff -/* B7FE18 80108C78 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7FE1C 80108C7C AFAE0014 */ sw $t6, 0x14($sp) -/* B7FE20 80108C80 AFA70010 */ sw $a3, 0x10($sp) -/* B7FE24 80108C84 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7FE28 80108C88 24060004 */ li $a2, 4 -/* B7FE2C 80108C8C 24080009 */ li $t0, 9 -/* B7FE30 80108C90 2409000A */ li $t1, 10 -/* B7FE34 80108C94 240A000B */ li $t2, 11 -/* B7FE38 80108C98 240B000C */ li $t3, 12 -/* B7FE3C 80108C9C 240C000D */ li $t4, 13 -/* B7FE40 80108CA0 240D0004 */ li $t5, 4 -.L80108CA4: -/* B7FE44 80108CA4 8FB20050 */ lw $s2, 0x50($sp) -/* B7FE48 80108CA8 966363D2 */ lhu $v1, 0x63d2($s3) -/* B7FE4C 80108CAC 26520002 */ addiu $s2, $s2, 2 -/* B7FE50 80108CB0 1000030E */ b .L801098EC -/* B7FE54 80108CB4 3252FFFF */ andi $s2, $s2, 0xffff - -glabel L80108CB8 -/* B7FE58 80108CB8 0232C021 */ addu $t8, $s1, $s2 -/* B7FE5C 80108CBC 0315C821 */ addu $t9, $t8, $s5 -/* B7FE60 80108CC0 34018000 */ li $at, 32768 -/* B7FE64 80108CC4 02C19821 */ addu $s3, $s6, $at -/* B7FE68 80108CC8 93256307 */ lbu $a1, 0x6307($t9) -/* B7FE6C 80108CCC 8FA40138 */ lw $a0, 0x138($sp) -/* B7FE70 80108CD0 27A60120 */ addiu $a2, $sp, 0x120 -/* B7FE74 80108CD4 0C04202D */ jal func_801080B4 -/* B7FE78 80108CD8 3247FFFF */ andi $a3, $s2, 0xffff -/* B7FE7C 80108CDC 24080009 */ li $t0, 9 -/* B7FE80 80108CE0 2409000A */ li $t1, 10 -/* B7FE84 80108CE4 240A000B */ li $t2, 11 -/* B7FE88 80108CE8 240B000C */ li $t3, 12 -/* B7FE8C 80108CEC 240C000D */ li $t4, 13 -/* B7FE90 80108CF0 240D0004 */ li $t5, 4 -/* B7FE94 80108CF4 3052FFFF */ andi $s2, $v0, 0xffff -/* B7FE98 80108CF8 100002FC */ b .L801098EC -/* B7FE9C 80108CFC 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L80108D00 -/* B7FEA0 80108D00 920F6304 */ lbu $t7, 0x6304($s0) -/* B7FEA4 80108D04 34018000 */ li $at, 32768 -/* B7FEA8 80108D08 02C19821 */ addu $s3, $s6, $at -/* B7FEAC 80108D0C 168F0011 */ bne $s4, $t7, .L80108D54 -/* B7FEB0 80108D10 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B7FEB4 80108D14 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B7FEB8 80108D18 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B7FEBC 80108D1C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B7FEC0 80108D20 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B7FEC4 80108D24 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B7FEC8 80108D28 AFA70010 */ sw $a3, 0x10($sp) -/* B7FECC 80108D2C AFAE0014 */ sw $t6, 0x14($sp) -/* B7FED0 80108D30 00002025 */ move $a0, $zero -/* B7FED4 80108D34 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B7FED8 80108D38 24060004 */ li $a2, 4 -/* B7FEDC 80108D3C 24080009 */ li $t0, 9 -/* B7FEE0 80108D40 2409000A */ li $t1, 10 -/* B7FEE4 80108D44 240A000B */ li $t2, 11 -/* B7FEE8 80108D48 240B000C */ li $t3, 12 -/* B7FEEC 80108D4C 240C000D */ li $t4, 13 -/* B7FEF0 80108D50 240D0004 */ li $t5, 4 -.L80108D54: -/* B7FEF4 80108D54 8FB80120 */ lw $t8, 0x120($sp) -/* B7FEF8 80108D58 3C0FE700 */ lui $t7, 0xe700 -/* B7FEFC 80108D5C 3C01E400 */ lui $at, 0xe400 -/* B7FF00 80108D60 27190008 */ addiu $t9, $t8, 8 -/* B7FF04 80108D64 AFB90120 */ sw $t9, 0x120($sp) -/* B7FF08 80108D68 AF000004 */ sw $zero, 4($t8) -/* B7FF0C 80108D6C AF0F0000 */ sw $t7, ($t8) -/* B7FF10 80108D70 8FAE0120 */ lw $t6, 0x120($sp) -/* B7FF14 80108D74 3C0FFF2F */ lui $t7, (0xFF2FFFFF >> 16) # lui $t7, 0xff2f -/* B7FF18 80108D78 3C19FC11 */ lui $t9, (0xFC119623 >> 16) # lui $t9, 0xfc11 -/* B7FF1C 80108D7C 25D80008 */ addiu $t8, $t6, 8 -/* B7FF20 80108D80 AFB80120 */ sw $t8, 0x120($sp) -/* B7FF24 80108D84 37399623 */ ori $t9, (0xFC119623 & 0xFFFF) # ori $t9, $t9, 0x9623 -/* B7FF28 80108D88 35EFFFFF */ ori $t7, (0xFF2FFFFF & 0xFFFF) # ori $t7, $t7, 0xffff -/* B7FF2C 80108D8C ADCF0004 */ sw $t7, 4($t6) -/* B7FF30 80108D90 ADD90000 */ sw $t9, ($t6) -/* B7FF34 80108D94 8FA30120 */ lw $v1, 0x120($sp) -/* B7FF38 80108D98 3C19FA00 */ lui $t9, 0xfa00 -/* B7FF3C 80108D9C 24780008 */ addiu $t8, $v1, 8 -/* B7FF40 80108DA0 AFB80120 */ sw $t8, 0x120($sp) -/* B7FF44 80108DA4 AC790000 */ sw $t9, ($v1) -/* B7FF48 80108DA8 920F63F9 */ lbu $t7, 0x63f9($s0) -/* B7FF4C 80108DAC 3C188015 */ lui $t8, %hi(D_80153930) # $t8, 0x8015 -/* B7FF50 80108DB0 27183930 */ addiu $t8, %lo(D_80153930) # addiu $t8, $t8, 0x3930 -/* B7FF54 80108DB4 000F7080 */ sll $t6, $t7, 2 -/* B7FF58 80108DB8 01CF7023 */ subu $t6, $t6, $t7 -/* B7FF5C 80108DBC 000E7040 */ sll $t6, $t6, 1 -/* B7FF60 80108DC0 01D81021 */ addu $v0, $t6, $t8 -/* B7FF64 80108DC4 84590004 */ lh $t9, 4($v0) -/* B7FF68 80108DC8 332F00FF */ andi $t7, $t9, 0xff -/* B7FF6C 80108DCC 84590000 */ lh $t9, ($v0) -/* B7FF70 80108DD0 000F7200 */ sll $t6, $t7, 8 -/* B7FF74 80108DD4 00197E00 */ sll $t7, $t9, 0x18 -/* B7FF78 80108DD8 84590002 */ lh $t9, 2($v0) -/* B7FF7C 80108DDC 01CFC025 */ or $t8, $t6, $t7 -/* B7FF80 80108DE0 332E00FF */ andi $t6, $t9, 0xff -/* B7FF84 80108DE4 000E7C00 */ sll $t7, $t6, 0x10 -/* B7FF88 80108DE8 860E63E2 */ lh $t6, 0x63e2($s0) -/* B7FF8C 80108DEC 030FC825 */ or $t9, $t8, $t7 -/* B7FF90 80108DF0 31D800FF */ andi $t8, $t6, 0xff -/* B7FF94 80108DF4 03387825 */ or $t7, $t9, $t8 -/* B7FF98 80108DF8 AC6F0004 */ sw $t7, 4($v1) -/* B7FF9C 80108DFC 8FA20120 */ lw $v0, 0x120($sp) -/* B7FFA0 80108E00 3C18FD90 */ lui $t8, 0xfd90 -/* B7FFA4 80108E04 3C038015 */ lui $v1, %hi(D_80153948) # $v1, 0x8015 -/* B7FFA8 80108E08 24590008 */ addiu $t9, $v0, 8 -/* B7FFAC 80108E0C AFB90120 */ sw $t9, 0x120($sp) -/* B7FFB0 80108E10 AC580000 */ sw $t8, ($v0) -/* B7FFB4 80108E14 8E0F62B0 */ lw $t7, 0x62b0($s0) -/* B7FFB8 80108E18 24633948 */ addiu $v1, %lo(D_80153948) # addiu $v1, $v1, 0x3948 -/* B7FFBC 80108E1C 25EE1000 */ addiu $t6, $t7, 0x1000 -/* B7FFC0 80108E20 AC4E0004 */ sw $t6, 4($v0) -/* B7FFC4 80108E24 8FB90120 */ lw $t9, 0x120($sp) -/* B7FFC8 80108E28 3C0E0700 */ lui $t6, 0x700 -/* B7FFCC 80108E2C 3C0FF590 */ lui $t7, 0xf590 -/* B7FFD0 80108E30 27380008 */ addiu $t8, $t9, 8 -/* B7FFD4 80108E34 AFB80120 */ sw $t8, 0x120($sp) -/* B7FFD8 80108E38 AF2E0004 */ sw $t6, 4($t9) -/* B7FFDC 80108E3C AF2F0000 */ sw $t7, ($t9) -/* B7FFE0 80108E40 8FB90120 */ lw $t9, 0x120($sp) -/* B7FFE4 80108E44 3C0FE600 */ lui $t7, 0xe600 -/* B7FFE8 80108E48 27380008 */ addiu $t8, $t9, 8 -/* B7FFEC 80108E4C AFB80120 */ sw $t8, 0x120($sp) -/* B7FFF0 80108E50 AF200004 */ sw $zero, 4($t9) -/* B7FFF4 80108E54 AF2F0000 */ sw $t7, ($t9) -/* B7FFF8 80108E58 8FAE0120 */ lw $t6, 0x120($sp) -/* B7FFFC 80108E5C 3C0F0747 */ lui $t7, (0x0747F156 >> 16) # lui $t7, 0x747 -/* B80000 80108E60 35EFF156 */ ori $t7, (0x0747F156 & 0xFFFF) # ori $t7, $t7, 0xf156 -/* B80004 80108E64 25D90008 */ addiu $t9, $t6, 8 -/* B80008 80108E68 AFB90120 */ sw $t9, 0x120($sp) -/* B8000C 80108E6C 3C18F300 */ lui $t8, 0xf300 -/* B80010 80108E70 ADD80000 */ sw $t8, ($t6) -/* B80014 80108E74 ADCF0004 */ sw $t7, 4($t6) -/* B80018 80108E78 8FAE0120 */ lw $t6, 0x120($sp) -/* B8001C 80108E7C 3C18E700 */ lui $t8, 0xe700 -/* B80020 80108E80 25D90008 */ addiu $t9, $t6, 8 -/* B80024 80108E84 AFB90120 */ sw $t9, 0x120($sp) -/* B80028 80108E88 ADC00004 */ sw $zero, 4($t6) -/* B8002C 80108E8C ADD80000 */ sw $t8, ($t6) -/* B80030 80108E90 8FAF0120 */ lw $t7, 0x120($sp) -/* B80034 80108E94 3C19F580 */ lui $t9, (0xF5800C00 >> 16) # lui $t9, 0xf580 -/* B80038 80108E98 37390C00 */ ori $t9, (0xF5800C00 & 0xFFFF) # ori $t9, $t9, 0xc00 -/* B8003C 80108E9C 25EE0008 */ addiu $t6, $t7, 8 -/* B80040 80108EA0 AFAE0120 */ sw $t6, 0x120($sp) -/* B80044 80108EA4 ADE00004 */ sw $zero, 4($t7) -/* B80048 80108EA8 ADF90000 */ sw $t9, ($t7) -/* B8004C 80108EAC 8FB80120 */ lw $t8, 0x120($sp) -/* B80050 80108EB0 3C190017 */ lui $t9, (0x0017C0BC >> 16) # lui $t9, 0x17 -/* B80054 80108EB4 3739C0BC */ ori $t9, (0x0017C0BC & 0xFFFF) # ori $t9, $t9, 0xc0bc -/* B80058 80108EB8 270F0008 */ addiu $t7, $t8, 8 -/* B8005C 80108EBC AFAF0120 */ sw $t7, 0x120($sp) -/* B80060 80108EC0 3C0EF200 */ lui $t6, 0xf200 -/* B80064 80108EC4 AF0E0000 */ sw $t6, ($t8) -/* B80068 80108EC8 AF190004 */ sw $t9, 4($t8) -/* B8006C 80108ECC 8FA20120 */ lw $v0, 0x120($sp) -/* B80070 80108ED0 244F0008 */ addiu $t7, $v0, 8 -/* B80074 80108ED4 AFAF0120 */ sw $t7, 0x120($sp) -/* B80078 80108ED8 920E63FA */ lbu $t6, 0x63fa($s0) -/* B8007C 80108EDC 000EC840 */ sll $t9, $t6, 1 -/* B80080 80108EE0 8EEE0000 */ lw $t6, ($s7) -/* B80084 80108EE4 0079C021 */ addu $t8, $v1, $t9 -/* B80088 80108EE8 870F0000 */ lh $t7, ($t8) -/* B8008C 80108EEC 85D90B0E */ lh $t9, 0xb0e($t6) -/* B80090 80108EF0 01F9C021 */ addu $t8, $t7, $t9 -/* B80094 80108EF4 270E0030 */ addiu $t6, $t8, 0x30 -/* B80098 80108EF8 000E7880 */ sll $t7, $t6, 2 -/* B8009C 80108EFC 860E63D8 */ lh $t6, 0x63d8($s0) -/* B800A0 80108F00 31F90FFF */ andi $t9, $t7, 0xfff -/* B800A4 80108F04 0321C025 */ or $t8, $t9, $at -/* B800A8 80108F08 25CF0061 */ addiu $t7, $t6, 0x61 -/* B800AC 80108F0C 000FC880 */ sll $t9, $t7, 2 -/* B800B0 80108F10 332E0FFF */ andi $t6, $t9, 0xfff -/* B800B4 80108F14 000E7B00 */ sll $t7, $t6, 0xc -/* B800B8 80108F18 030FC825 */ or $t9, $t8, $t7 -/* B800BC 80108F1C AC590000 */ sw $t9, ($v0) -/* B800C0 80108F20 920E63FA */ lbu $t6, 0x63fa($s0) -/* B800C4 80108F24 000EC040 */ sll $t8, $t6, 1 -/* B800C8 80108F28 8EEE0000 */ lw $t6, ($s7) -/* B800CC 80108F2C 00787821 */ addu $t7, $v1, $t8 -/* B800D0 80108F30 85F90000 */ lh $t9, ($t7) -/* B800D4 80108F34 85D80B0E */ lh $t8, 0xb0e($t6) -/* B800D8 80108F38 3C038015 */ lui $v1, %hi(D_80153948) # $v1, 0x8015 -/* B800DC 80108F3C 24633948 */ addiu $v1, %lo(D_80153948) # addiu $v1, $v1, 0x3948 -/* B800E0 80108F40 03387821 */ addu $t7, $t9, $t8 -/* B800E4 80108F44 861863D8 */ lh $t8, 0x63d8($s0) -/* B800E8 80108F48 000F7080 */ sll $t6, $t7, 2 -/* B800EC 80108F4C 31D90FFF */ andi $t9, $t6, 0xfff -/* B800F0 80108F50 270F0001 */ addiu $t7, $t8, 1 -/* B800F4 80108F54 000F7080 */ sll $t6, $t7, 2 -/* B800F8 80108F58 31D80FFF */ andi $t8, $t6, 0xfff -/* B800FC 80108F5C 00187B00 */ sll $t7, $t8, 0xc -/* B80100 80108F60 032F7025 */ or $t6, $t9, $t7 -/* B80104 80108F64 AC4E0004 */ sw $t6, 4($v0) -/* B80108 80108F68 8FB80120 */ lw $t8, 0x120($sp) -/* B8010C 80108F6C 3C0FE100 */ lui $t7, 0xe100 -/* B80110 80108F70 27190008 */ addiu $t9, $t8, 8 -/* B80114 80108F74 AFB90120 */ sw $t9, 0x120($sp) -/* B80118 80108F78 AF000004 */ sw $zero, 4($t8) -/* B8011C 80108F7C AF0F0000 */ sw $t7, ($t8) -/* B80120 80108F80 8FAE0120 */ lw $t6, 0x120($sp) -/* B80124 80108F84 3C0F0400 */ lui $t7, (0x04000400 >> 16) # lui $t7, 0x400 -/* B80128 80108F88 35EF0400 */ ori $t7, (0x04000400 & 0xFFFF) # ori $t7, $t7, 0x400 -/* B8012C 80108F8C 25D80008 */ addiu $t8, $t6, 8 -/* B80130 80108F90 AFB80120 */ sw $t8, 0x120($sp) -/* B80134 80108F94 3C19F100 */ lui $t9, 0xf100 -/* B80138 80108F98 ADD90000 */ sw $t9, ($t6) -/* B8013C 80108F9C ADCF0004 */ sw $t7, 4($t6) -/* B80140 80108FA0 8FA20120 */ lw $v0, 0x120($sp) -/* B80144 80108FA4 3C19FD90 */ lui $t9, 0xfd90 -/* B80148 80108FA8 24580008 */ addiu $t8, $v0, 8 -/* B8014C 80108FAC AFB80120 */ sw $t8, 0x120($sp) -/* B80150 80108FB0 AC590000 */ sw $t9, ($v0) -/* B80154 80108FB4 8E0F62B0 */ lw $t7, 0x62b0($s0) -/* B80158 80108FB8 25EE1900 */ addiu $t6, $t7, 0x1900 -/* B8015C 80108FBC AC4E0004 */ sw $t6, 4($v0) -/* B80160 80108FC0 8FB80120 */ lw $t8, 0x120($sp) -/* B80164 80108FC4 3C0E0700 */ lui $t6, 0x700 -/* B80168 80108FC8 3C0FF590 */ lui $t7, 0xf590 -/* B8016C 80108FCC 27190008 */ addiu $t9, $t8, 8 -/* B80170 80108FD0 AFB90120 */ sw $t9, 0x120($sp) -/* B80174 80108FD4 AF0E0004 */ sw $t6, 4($t8) -/* B80178 80108FD8 AF0F0000 */ sw $t7, ($t8) -/* B8017C 80108FDC 8FB80120 */ lw $t8, 0x120($sp) -/* B80180 80108FE0 3C0FE600 */ lui $t7, 0xe600 -/* B80184 80108FE4 27190008 */ addiu $t9, $t8, 8 -/* B80188 80108FE8 AFB90120 */ sw $t9, 0x120($sp) -/* B8018C 80108FEC AF000004 */ sw $zero, 4($t8) -/* B80190 80108FF0 AF0F0000 */ sw $t7, ($t8) -/* B80194 80108FF4 8FAE0120 */ lw $t6, 0x120($sp) -/* B80198 80108FF8 3C0F0747 */ lui $t7, (0x0747F156 >> 16) # lui $t7, 0x747 -/* B8019C 80108FFC 35EFF156 */ ori $t7, (0x0747F156 & 0xFFFF) # ori $t7, $t7, 0xf156 -/* B801A0 80109000 25D80008 */ addiu $t8, $t6, 8 -/* B801A4 80109004 AFB80120 */ sw $t8, 0x120($sp) -/* B801A8 80109008 3C19F300 */ lui $t9, 0xf300 -/* B801AC 8010900C ADD90000 */ sw $t9, ($t6) -/* B801B0 80109010 ADCF0004 */ sw $t7, 4($t6) -/* B801B4 80109014 8FAE0120 */ lw $t6, 0x120($sp) -/* B801B8 80109018 3C19E700 */ lui $t9, 0xe700 -/* B801BC 8010901C 25D80008 */ addiu $t8, $t6, 8 -/* B801C0 80109020 AFB80120 */ sw $t8, 0x120($sp) -/* B801C4 80109024 ADC00004 */ sw $zero, 4($t6) -/* B801C8 80109028 ADD90000 */ sw $t9, ($t6) -/* B801CC 8010902C 8FAF0120 */ lw $t7, 0x120($sp) -/* B801D0 80109030 3C18F580 */ lui $t8, (0xF5800C00 >> 16) # lui $t8, 0xf580 -/* B801D4 80109034 37180C00 */ ori $t8, (0xF5800C00 & 0xFFFF) # ori $t8, $t8, 0xc00 -/* B801D8 80109038 25EE0008 */ addiu $t6, $t7, 8 -/* B801DC 8010903C AFAE0120 */ sw $t6, 0x120($sp) -/* B801E0 80109040 ADE00004 */ sw $zero, 4($t7) -/* B801E4 80109044 ADF80000 */ sw $t8, ($t7) -/* B801E8 80109048 8FB90120 */ lw $t9, 0x120($sp) -/* B801EC 8010904C 3C180017 */ lui $t8, (0x0017C0BC >> 16) # lui $t8, 0x17 -/* B801F0 80109050 3718C0BC */ ori $t8, (0x0017C0BC & 0xFFFF) # ori $t8, $t8, 0xc0bc -/* B801F4 80109054 272F0008 */ addiu $t7, $t9, 8 -/* B801F8 80109058 AFAF0120 */ sw $t7, 0x120($sp) -/* B801FC 8010905C 3C0EF200 */ lui $t6, 0xf200 -/* B80200 80109060 AF2E0000 */ sw $t6, ($t9) -/* B80204 80109064 AF380004 */ sw $t8, 4($t9) -/* B80208 80109068 8FA20120 */ lw $v0, 0x120($sp) -/* B8020C 8010906C 244F0008 */ addiu $t7, $v0, 8 -/* B80210 80109070 AFAF0120 */ sw $t7, 0x120($sp) -/* B80214 80109074 920E63FA */ lbu $t6, 0x63fa($s0) -/* B80218 80109078 000EC040 */ sll $t8, $t6, 1 -/* B8021C 8010907C 8EEE0000 */ lw $t6, ($s7) -/* B80220 80109080 0078C821 */ addu $t9, $v1, $t8 -/* B80224 80109084 872F0000 */ lh $t7, ($t9) -/* B80228 80109088 85D80B0E */ lh $t8, 0xb0e($t6) -/* B8022C 8010908C 01F8C821 */ addu $t9, $t7, $t8 -/* B80230 80109090 272E0030 */ addiu $t6, $t9, 0x30 -/* B80234 80109094 000E7880 */ sll $t7, $t6, 2 -/* B80238 80109098 860E63D8 */ lh $t6, 0x63d8($s0) -/* B8023C 8010909C 31F80FFF */ andi $t8, $t7, 0xfff -/* B80240 801090A0 0301C825 */ or $t9, $t8, $at -/* B80244 801090A4 25CF00C2 */ addiu $t7, $t6, 0xc2 -/* B80248 801090A8 000FC080 */ sll $t8, $t7, 2 -/* B8024C 801090AC 330E0FFF */ andi $t6, $t8, 0xfff -/* B80250 801090B0 000E7B00 */ sll $t7, $t6, 0xc -/* B80254 801090B4 032FC025 */ or $t8, $t9, $t7 -/* B80258 801090B8 AC580000 */ sw $t8, ($v0) -/* B8025C 801090BC 920E63FA */ lbu $t6, 0x63fa($s0) -/* B80260 801090C0 000EC840 */ sll $t9, $t6, 1 -/* B80264 801090C4 8EEE0000 */ lw $t6, ($s7) -/* B80268 801090C8 00797821 */ addu $t7, $v1, $t9 -/* B8026C 801090CC 85F80000 */ lh $t8, ($t7) -/* B80270 801090D0 85D90B0E */ lh $t9, 0xb0e($t6) -/* B80274 801090D4 03197821 */ addu $t7, $t8, $t9 -/* B80278 801090D8 861963D8 */ lh $t9, 0x63d8($s0) -/* B8027C 801090DC 000F7080 */ sll $t6, $t7, 2 -/* B80280 801090E0 31D80FFF */ andi $t8, $t6, 0xfff -/* B80284 801090E4 272F0061 */ addiu $t7, $t9, 0x61 -/* B80288 801090E8 000F7080 */ sll $t6, $t7, 2 -/* B8028C 801090EC 31D90FFF */ andi $t9, $t6, 0xfff -/* B80290 801090F0 00197B00 */ sll $t7, $t9, 0xc -/* B80294 801090F4 030F7025 */ or $t6, $t8, $t7 -/* B80298 801090F8 AC4E0004 */ sw $t6, 4($v0) -/* B8029C 801090FC 8FB90120 */ lw $t9, 0x120($sp) -/* B802A0 80109100 3C0FE100 */ lui $t7, 0xe100 -/* B802A4 80109104 27380008 */ addiu $t8, $t9, 8 -/* B802A8 80109108 AFB80120 */ sw $t8, 0x120($sp) -/* B802AC 8010910C AF200004 */ sw $zero, 4($t9) -/* B802B0 80109110 AF2F0000 */ sw $t7, ($t9) -/* B802B4 80109114 8FAE0120 */ lw $t6, 0x120($sp) -/* B802B8 80109118 3C0F0400 */ lui $t7, (0x04000400 >> 16) # lui $t7, 0x400 -/* B802BC 8010911C 35EF0400 */ ori $t7, (0x04000400 & 0xFFFF) # ori $t7, $t7, 0x400 -/* B802C0 80109120 25D90008 */ addiu $t9, $t6, 8 -/* B802C4 80109124 AFB90120 */ sw $t9, 0x120($sp) -/* B802C8 80109128 3C18F100 */ lui $t8, 0xf100 -/* B802CC 8010912C ADD80000 */ sw $t8, ($t6) -/* B802D0 80109130 ADCF0004 */ sw $t7, 4($t6) -/* B802D4 80109134 8FAE0120 */ lw $t6, 0x120($sp) -/* B802D8 80109138 3C18E700 */ lui $t8, 0xe700 -/* B802DC 8010913C 25D90008 */ addiu $t9, $t6, 8 -/* B802E0 80109140 AFB90120 */ sw $t9, 0x120($sp) -/* B802E4 80109144 ADC00004 */ sw $zero, 4($t6) -/* B802E8 80109148 ADD80000 */ sw $t8, ($t6) -/* B802EC 8010914C 8FAF0120 */ lw $t7, 0x120($sp) -/* B802F0 80109150 3C19FA00 */ lui $t9, 0xfa00 -/* B802F4 80109154 01E01825 */ move $v1, $t7 -/* B802F8 80109158 25EE0008 */ addiu $t6, $t7, 8 -/* B802FC 8010915C AFAE0120 */ sw $t6, 0x120($sp) -/* B80300 80109160 AC790000 */ sw $t9, ($v1) -/* B80304 80109164 921863F8 */ lbu $t8, 0x63f8($s0) -/* B80308 80109168 3C0E8015 */ lui $t6, %hi(D_80153900) # $t6, 0x8015 -/* B8030C 8010916C 25CE3900 */ addiu $t6, %lo(D_80153900) # addiu $t6, $t6, 0x3900 -/* B80310 80109170 00187880 */ sll $t7, $t8, 2 -/* B80314 80109174 01F87823 */ subu $t7, $t7, $t8 -/* B80318 80109178 000F7840 */ sll $t7, $t7, 1 -/* B8031C 8010917C 01EE1021 */ addu $v0, $t7, $t6 -/* B80320 80109180 84590004 */ lh $t9, 4($v0) -/* B80324 80109184 3C01E400 */ lui $at, 0xe400 -/* B80328 80109188 333800FF */ andi $t8, $t9, 0xff -/* B8032C 8010918C 84590000 */ lh $t9, ($v0) -/* B80330 80109190 00187A00 */ sll $t7, $t8, 8 -/* B80334 80109194 0019C600 */ sll $t8, $t9, 0x18 -/* B80338 80109198 84590002 */ lh $t9, 2($v0) -/* B8033C 8010919C 01F87025 */ or $t6, $t7, $t8 -/* B80340 801091A0 332F00FF */ andi $t7, $t9, 0xff -/* B80344 801091A4 000FC400 */ sll $t8, $t7, 0x10 -/* B80348 801091A8 860F63E2 */ lh $t7, 0x63e2($s0) -/* B8034C 801091AC 01D8C825 */ or $t9, $t6, $t8 -/* B80350 801091B0 31EE00FF */ andi $t6, $t7, 0xff -/* B80354 801091B4 032EC025 */ or $t8, $t9, $t6 -/* B80358 801091B8 AC780004 */ sw $t8, 4($v1) -/* B8035C 801091BC 8FA20120 */ lw $v0, 0x120($sp) -/* B80360 801091C0 3C0EFD90 */ lui $t6, 0xfd90 -/* B80364 801091C4 24590008 */ addiu $t9, $v0, 8 -/* B80368 801091C8 AFB90120 */ sw $t9, 0x120($sp) -/* B8036C 801091CC AC4E0000 */ sw $t6, ($v0) -/* B80370 801091D0 8E1862B0 */ lw $t8, 0x62b0($s0) -/* B80374 801091D4 270F1000 */ addiu $t7, $t8, 0x1000 -/* B80378 801091D8 AC4F0004 */ sw $t7, 4($v0) -/* B8037C 801091DC 8FB90120 */ lw $t9, 0x120($sp) -/* B80380 801091E0 3C0F0700 */ lui $t7, 0x700 -/* B80384 801091E4 3C18F590 */ lui $t8, 0xf590 -/* B80388 801091E8 272E0008 */ addiu $t6, $t9, 8 -/* B8038C 801091EC AFAE0120 */ sw $t6, 0x120($sp) -/* B80390 801091F0 AF2F0004 */ sw $t7, 4($t9) -/* B80394 801091F4 AF380000 */ sw $t8, ($t9) -/* B80398 801091F8 8FB90120 */ lw $t9, 0x120($sp) -/* B8039C 801091FC 3C18E600 */ lui $t8, 0xe600 -/* B803A0 80109200 272E0008 */ addiu $t6, $t9, 8 -/* B803A4 80109204 AFAE0120 */ sw $t6, 0x120($sp) -/* B803A8 80109208 AF200004 */ sw $zero, 4($t9) -/* B803AC 8010920C AF380000 */ sw $t8, ($t9) -/* B803B0 80109210 8FAF0120 */ lw $t7, 0x120($sp) -/* B803B4 80109214 3C180747 */ lui $t8, (0x0747F156 >> 16) # lui $t8, 0x747 -/* B803B8 80109218 3718F156 */ ori $t8, (0x0747F156 & 0xFFFF) # ori $t8, $t8, 0xf156 -/* B803BC 8010921C 25F90008 */ addiu $t9, $t7, 8 -/* B803C0 80109220 AFB90120 */ sw $t9, 0x120($sp) -/* B803C4 80109224 3C0EF300 */ lui $t6, 0xf300 -/* B803C8 80109228 ADEE0000 */ sw $t6, ($t7) -/* B803CC 8010922C ADF80004 */ sw $t8, 4($t7) -/* B803D0 80109230 8FAF0120 */ lw $t7, 0x120($sp) -/* B803D4 80109234 3C0EE700 */ lui $t6, 0xe700 -/* B803D8 80109238 25F90008 */ addiu $t9, $t7, 8 -/* B803DC 8010923C AFB90120 */ sw $t9, 0x120($sp) -/* B803E0 80109240 ADE00004 */ sw $zero, 4($t7) -/* B803E4 80109244 ADEE0000 */ sw $t6, ($t7) -/* B803E8 80109248 8FB80120 */ lw $t8, 0x120($sp) -/* B803EC 8010924C 3C19F580 */ lui $t9, (0xF5800C00 >> 16) # lui $t9, 0xf580 -/* B803F0 80109250 37390C00 */ ori $t9, (0xF5800C00 & 0xFFFF) # ori $t9, $t9, 0xc00 -/* B803F4 80109254 270F0008 */ addiu $t7, $t8, 8 -/* B803F8 80109258 AFAF0120 */ sw $t7, 0x120($sp) -/* B803FC 8010925C AF000004 */ sw $zero, 4($t8) -/* B80400 80109260 AF190000 */ sw $t9, ($t8) -/* B80404 80109264 8FAE0120 */ lw $t6, 0x120($sp) -/* B80408 80109268 3C190017 */ lui $t9, (0x0017C0BC >> 16) # lui $t9, 0x17 -/* B8040C 8010926C 3739C0BC */ ori $t9, (0x0017C0BC & 0xFFFF) # ori $t9, $t9, 0xc0bc -/* B80410 80109270 25D80008 */ addiu $t8, $t6, 8 -/* B80414 80109274 AFB80120 */ sw $t8, 0x120($sp) -/* B80418 80109278 3C0FF200 */ lui $t7, 0xf200 -/* B8041C 8010927C ADCF0000 */ sw $t7, ($t6) -/* B80420 80109280 ADD90004 */ sw $t9, 4($t6) -/* B80424 80109284 8FA20120 */ lw $v0, 0x120($sp) -/* B80428 80109288 8EEF0000 */ lw $t7, ($s7) -/* B8042C 8010928C 24580008 */ addiu $t8, $v0, 8 -/* B80430 80109290 AFB80120 */ sw $t8, 0x120($sp) -/* B80434 80109294 85F90B0E */ lh $t9, 0xb0e($t7) -/* B80438 80109298 272E0030 */ addiu $t6, $t9, 0x30 -/* B8043C 8010929C 000EC080 */ sll $t8, $t6, 2 -/* B80440 801092A0 860E63D8 */ lh $t6, 0x63d8($s0) -/* B80444 801092A4 330F0FFF */ andi $t7, $t8, 0xfff -/* B80448 801092A8 01E1C825 */ or $t9, $t7, $at -/* B8044C 801092AC 25D80060 */ addiu $t8, $t6, 0x60 -/* B80450 801092B0 00187880 */ sll $t7, $t8, 2 -/* B80454 801092B4 31EE0FFF */ andi $t6, $t7, 0xfff -/* B80458 801092B8 000EC300 */ sll $t8, $t6, 0xc -/* B8045C 801092BC 03387825 */ or $t7, $t9, $t8 -/* B80460 801092C0 AC4F0000 */ sw $t7, ($v0) -/* B80464 801092C4 8EEE0000 */ lw $t6, ($s7) -/* B80468 801092C8 85D90B0E */ lh $t9, 0xb0e($t6) -/* B8046C 801092CC 860E63D8 */ lh $t6, 0x63d8($s0) -/* B80470 801092D0 0019C080 */ sll $t8, $t9, 2 -/* B80474 801092D4 330F0FFF */ andi $t7, $t8, 0xfff -/* B80478 801092D8 000EC880 */ sll $t9, $t6, 2 -/* B8047C 801092DC 33380FFF */ andi $t8, $t9, 0xfff -/* B80480 801092E0 00187300 */ sll $t6, $t8, 0xc -/* B80484 801092E4 01EEC825 */ or $t9, $t7, $t6 -/* B80488 801092E8 AC590004 */ sw $t9, 4($v0) -/* B8048C 801092EC 8FB80120 */ lw $t8, 0x120($sp) -/* B80490 801092F0 3C0EE100 */ lui $t6, 0xe100 -/* B80494 801092F4 270F0008 */ addiu $t7, $t8, 8 -/* B80498 801092F8 AFAF0120 */ sw $t7, 0x120($sp) -/* B8049C 801092FC AF000004 */ sw $zero, 4($t8) -/* B804A0 80109300 AF0E0000 */ sw $t6, ($t8) -/* B804A4 80109304 8FB90120 */ lw $t9, 0x120($sp) -/* B804A8 80109308 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 -/* B804AC 8010930C 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 -/* B804B0 80109310 27380008 */ addiu $t8, $t9, 8 -/* B804B4 80109314 AFB80120 */ sw $t8, 0x120($sp) -/* B804B8 80109318 3C0FF100 */ lui $t7, 0xf100 -/* B804BC 8010931C AF2F0000 */ sw $t7, ($t9) -/* B804C0 80109320 AF2E0004 */ sw $t6, 4($t9) -/* B804C4 80109324 8FA20120 */ lw $v0, 0x120($sp) -/* B804C8 80109328 3C0FFD90 */ lui $t7, 0xfd90 -/* B804CC 8010932C 24580008 */ addiu $t8, $v0, 8 -/* B804D0 80109330 AFB80120 */ sw $t8, 0x120($sp) -/* B804D4 80109334 AC4F0000 */ sw $t7, ($v0) -/* B804D8 80109338 8E0E62B0 */ lw $t6, 0x62b0($s0) -/* B804DC 8010933C 25D91900 */ addiu $t9, $t6, 0x1900 -/* B804E0 80109340 AC590004 */ sw $t9, 4($v0) -/* B804E4 80109344 8FB80120 */ lw $t8, 0x120($sp) -/* B804E8 80109348 3C190700 */ lui $t9, 0x700 -/* B804EC 8010934C 3C0EF590 */ lui $t6, 0xf590 -/* B804F0 80109350 270F0008 */ addiu $t7, $t8, 8 -/* B804F4 80109354 AFAF0120 */ sw $t7, 0x120($sp) -/* B804F8 80109358 AF190004 */ sw $t9, 4($t8) -/* B804FC 8010935C AF0E0000 */ sw $t6, ($t8) -/* B80500 80109360 8FB80120 */ lw $t8, 0x120($sp) -/* B80504 80109364 3C0EE600 */ lui $t6, 0xe600 -/* B80508 80109368 270F0008 */ addiu $t7, $t8, 8 -/* B8050C 8010936C AFAF0120 */ sw $t7, 0x120($sp) -/* B80510 80109370 AF000004 */ sw $zero, 4($t8) -/* B80514 80109374 AF0E0000 */ sw $t6, ($t8) -/* B80518 80109378 8FB90120 */ lw $t9, 0x120($sp) -/* B8051C 8010937C 3C0E0747 */ lui $t6, (0x0747F156 >> 16) # lui $t6, 0x747 -/* B80520 80109380 35CEF156 */ ori $t6, (0x0747F156 & 0xFFFF) # ori $t6, $t6, 0xf156 -/* B80524 80109384 27380008 */ addiu $t8, $t9, 8 -/* B80528 80109388 AFB80120 */ sw $t8, 0x120($sp) -/* B8052C 8010938C 3C0FF300 */ lui $t7, 0xf300 -/* B80530 80109390 AF2F0000 */ sw $t7, ($t9) -/* B80534 80109394 AF2E0004 */ sw $t6, 4($t9) -/* B80538 80109398 8FB90120 */ lw $t9, 0x120($sp) -/* B8053C 8010939C 3C0FE700 */ lui $t7, 0xe700 -/* B80540 801093A0 27380008 */ addiu $t8, $t9, 8 -/* B80544 801093A4 AFB80120 */ sw $t8, 0x120($sp) -/* B80548 801093A8 AF200004 */ sw $zero, 4($t9) -/* B8054C 801093AC AF2F0000 */ sw $t7, ($t9) -/* B80550 801093B0 8FAE0120 */ lw $t6, 0x120($sp) -/* B80554 801093B4 3C18F580 */ lui $t8, (0xF5800C00 >> 16) # lui $t8, 0xf580 -/* B80558 801093B8 37180C00 */ ori $t8, (0xF5800C00 & 0xFFFF) # ori $t8, $t8, 0xc00 -/* B8055C 801093BC 25D90008 */ addiu $t9, $t6, 8 -/* B80560 801093C0 AFB90120 */ sw $t9, 0x120($sp) -/* B80564 801093C4 ADC00004 */ sw $zero, 4($t6) -/* B80568 801093C8 ADD80000 */ sw $t8, ($t6) -/* B8056C 801093CC 8FAF0120 */ lw $t7, 0x120($sp) -/* B80570 801093D0 3C180017 */ lui $t8, (0x0017C0BC >> 16) # lui $t8, 0x17 -/* B80574 801093D4 3718C0BC */ ori $t8, (0x0017C0BC & 0xFFFF) # ori $t8, $t8, 0xc0bc -/* B80578 801093D8 25EE0008 */ addiu $t6, $t7, 8 -/* B8057C 801093DC AFAE0120 */ sw $t6, 0x120($sp) -/* B80580 801093E0 3C19F200 */ lui $t9, 0xf200 -/* B80584 801093E4 ADF90000 */ sw $t9, ($t7) -/* B80588 801093E8 ADF80004 */ sw $t8, 4($t7) -/* B8058C 801093EC 8FA20120 */ lw $v0, 0x120($sp) -/* B80590 801093F0 8EF90000 */ lw $t9, ($s7) -/* B80594 801093F4 244E0008 */ addiu $t6, $v0, 8 -/* B80598 801093F8 AFAE0120 */ sw $t6, 0x120($sp) -/* B8059C 801093FC 87380B0E */ lh $t8, 0xb0e($t9) -/* B805A0 80109400 270F0030 */ addiu $t7, $t8, 0x30 -/* B805A4 80109404 000F7080 */ sll $t6, $t7, 2 -/* B805A8 80109408 860F63D8 */ lh $t7, 0x63d8($s0) -/* B805AC 8010940C 31D90FFF */ andi $t9, $t6, 0xfff -/* B805B0 80109410 0321C025 */ or $t8, $t9, $at -/* B805B4 80109414 25EE00C0 */ addiu $t6, $t7, 0xc0 -/* B805B8 80109418 000EC880 */ sll $t9, $t6, 2 -/* B805BC 8010941C 332F0FFF */ andi $t7, $t9, 0xfff -/* B805C0 80109420 000F7300 */ sll $t6, $t7, 0xc -/* B805C4 80109424 030EC825 */ or $t9, $t8, $t6 -/* B805C8 80109428 AC590000 */ sw $t9, ($v0) -/* B805CC 8010942C 8EEF0000 */ lw $t7, ($s7) -/* B805D0 80109430 26217FFF */ addiu $at, $s1, 0x7fff -/* B805D4 80109434 85F80B0E */ lh $t8, 0xb0e($t7) -/* B805D8 80109438 860F63D8 */ lh $t7, 0x63d8($s0) -/* B805DC 8010943C 00187080 */ sll $t6, $t8, 2 -/* B805E0 80109440 31D90FFF */ andi $t9, $t6, 0xfff -/* B805E4 80109444 25F80060 */ addiu $t8, $t7, 0x60 -/* B805E8 80109448 00187080 */ sll $t6, $t8, 2 -/* B805EC 8010944C 31CF0FFF */ andi $t7, $t6, 0xfff -/* B805F0 80109450 000FC300 */ sll $t8, $t7, 0xc -/* B805F4 80109454 03387025 */ or $t6, $t9, $t8 -/* B805F8 80109458 AC4E0004 */ sw $t6, 4($v0) -/* B805FC 8010945C 8FAF0120 */ lw $t7, 0x120($sp) -/* B80600 80109460 3C18E100 */ lui $t8, 0xe100 -/* B80604 80109464 25F90008 */ addiu $t9, $t7, 8 -/* B80608 80109468 AFB90120 */ sw $t9, 0x120($sp) -/* B8060C 8010946C ADE00004 */ sw $zero, 4($t7) -/* B80610 80109470 ADF80000 */ sw $t8, ($t7) -/* B80614 80109474 8FAE0120 */ lw $t6, 0x120($sp) -/* B80618 80109478 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 -/* B8061C 8010947C 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* B80620 80109480 25CF0008 */ addiu $t7, $t6, 8 -/* B80624 80109484 AFAF0120 */ sw $t7, 0x120($sp) -/* B80628 80109488 3C19F100 */ lui $t9, 0xf100 -/* B8062C 8010948C ADD90000 */ sw $t9, ($t6) -/* B80630 80109490 ADD80004 */ sw $t8, 4($t6) -/* B80634 80109494 8FAE0120 */ lw $t6, 0x120($sp) -/* B80638 80109498 3C19E700 */ lui $t9, 0xe700 -/* B8063C 8010949C 25CF0008 */ addiu $t7, $t6, 8 -/* B80640 801094A0 AFAF0120 */ sw $t7, 0x120($sp) -/* B80644 801094A4 ADC00004 */ sw $zero, 4($t6) -/* B80648 801094A8 ADD90000 */ sw $t9, ($t6) -/* B8064C 801094AC 8FB80120 */ lw $t8, 0x120($sp) -/* B80650 801094B0 3C19FF2D */ lui $t9, (0xFF2DFEFF >> 16) # lui $t9, 0xff2d -/* B80654 801094B4 3C0FFCFF */ lui $t7, (0xFCFF97FF >> 16) # lui $t7, 0xfcff -/* B80658 801094B8 270E0008 */ addiu $t6, $t8, 8 -/* B8065C 801094BC AFAE0120 */ sw $t6, 0x120($sp) -/* B80660 801094C0 35EF97FF */ ori $t7, (0xFCFF97FF & 0xFFFF) # ori $t7, $t7, 0x97ff -/* B80664 801094C4 3739FEFF */ ori $t9, (0xFF2DFEFF & 0xFFFF) # ori $t9, $t9, 0xfeff -/* B80668 801094C8 AF190004 */ sw $t9, 4($t8) -/* B8066C 801094CC AF0F0000 */ sw $t7, ($t8) -/* B80670 801094D0 861863D8 */ lh $t8, 0x63d8($s0) -/* B80674 801094D4 270E0020 */ addiu $t6, $t8, 0x20 -/* B80678 801094D8 A42E63D9 */ sh $t6, 0x63d9($at) -/* B8067C 801094DC 10000103 */ b .L801098EC -/* B80680 801094E0 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L801094E4 -/* B80684 801094E4 26420001 */ addiu $v0, $s2, 1 -/* B80688 801094E8 3047FFFF */ andi $a3, $v0, 0xffff -/* B8068C 801094EC 02277821 */ addu $t7, $s1, $a3 -/* B80690 801094F0 01F5C821 */ addu $t9, $t7, $s5 -/* B80694 801094F4 93386306 */ lbu $t8, 0x6306($t9) -/* B80698 801094F8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8069C 801094FC 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B806A0 80109500 A43863EB */ sh $t8, 0x63eb($at) -/* B806A4 80109504 3052FFFF */ andi $s2, $v0, 0xffff -/* B806A8 80109508 100000F8 */ b .L801098EC -/* B806AC 8010950C 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L80109510 -/* B806B0 80109510 240E0001 */ li $t6, 1 -/* B806B4 80109514 26217FFF */ addiu $at, $s1, 0x7fff -/* B806B8 80109518 A42E63D7 */ sh $t6, 0x63d7($at) -/* B806BC 8010951C 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B806C0 80109520 100000F2 */ b .L801098EC -/* B806C4 80109524 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L80109528 -/* B806C8 80109528 240F0010 */ li $t7, 16 -/* B806CC 8010952C 26217FFF */ addiu $at, $s1, 0x7fff -/* B806D0 80109530 A02F63E5 */ sb $t7, 0x63e5($at) -/* B806D4 80109534 92196304 */ lbu $t9, 0x6304($s0) -/* B806D8 80109538 34018000 */ li $at, 32768 -/* B806DC 8010953C 02C19821 */ addu $s3, $s6, $at -/* B806E0 80109540 16990010 */ bne $s4, $t9, .L80109584 -/* B806E4 80109544 26217FFF */ addiu $at, $s1, 0x7fff -/* B806E8 80109548 961862F8 */ lhu $t8, 0x62f8($s0) -/* B806EC 8010954C 240E0004 */ li $t6, 4 -/* B806F0 80109550 A02E63E8 */ sb $t6, 0x63e8($at) -/* B806F4 80109554 A02063E6 */ sb $zero, 0x63e6($at) -/* B806F8 80109558 A43862FB */ sh $t8, 0x62fb($at) -/* B806FC 8010955C 8FA40138 */ lw $a0, 0x138($sp) -/* B80700 80109560 24050002 */ li $a1, 2 -/* B80704 80109564 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B80708 80109568 24842200 */ addiu $a0, $a0, 0x2200 -/* B8070C 8010956C 24080009 */ li $t0, 9 -/* B80710 80109570 2409000A */ li $t1, 10 -/* B80714 80109574 240A000B */ li $t2, 11 -/* B80718 80109578 240B000C */ li $t3, 12 -/* B8071C 8010957C 240C000D */ li $t4, 13 -/* B80720 80109580 240D0004 */ li $t5, 4 -.L80109584: -/* B80724 80109584 100000D9 */ b .L801098EC -/* B80728 80109588 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L8010958C -/* B8072C 8010958C 240F0020 */ li $t7, 32 -/* B80730 80109590 26217FFF */ addiu $at, $s1, 0x7fff -/* B80734 80109594 A02F63E5 */ sb $t7, 0x63e5($at) -/* B80738 80109598 92196304 */ lbu $t9, 0x6304($s0) -/* B8073C 8010959C 34018000 */ li $at, 32768 -/* B80740 801095A0 02C19821 */ addu $s3, $s6, $at -/* B80744 801095A4 16990010 */ bne $s4, $t9, .L801095E8 -/* B80748 801095A8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8074C 801095AC 961862F8 */ lhu $t8, 0x62f8($s0) -/* B80750 801095B0 240E0004 */ li $t6, 4 -/* B80754 801095B4 A02E63E8 */ sb $t6, 0x63e8($at) -/* B80758 801095B8 A02063E6 */ sb $zero, 0x63e6($at) -/* B8075C 801095BC A43862FB */ sh $t8, 0x62fb($at) -/* B80760 801095C0 8FA40138 */ lw $a0, 0x138($sp) -/* B80764 801095C4 24050002 */ li $a1, 2 -/* B80768 801095C8 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B8076C 801095CC 24842200 */ addiu $a0, $a0, 0x2200 -/* B80770 801095D0 24080009 */ li $t0, 9 -/* B80774 801095D4 2409000A */ li $t1, 10 -/* B80778 801095D8 240A000B */ li $t2, 11 -/* B8077C 801095DC 240B000C */ li $t3, 12 -/* B80780 801095E0 240C000D */ li $t4, 13 -/* B80784 801095E4 240D0004 */ li $t5, 4 -.L801095E8: -/* B80788 801095E8 100000C0 */ b .L801098EC -/* B8078C 801095EC 966363D2 */ lhu $v1, 0x63d2($s3) - -glabel L801095F0 -/* B80790 801095F0 920F6304 */ lbu $t7, 0x6304($s0) -/* B80794 801095F4 24190035 */ li $t9, 53 -/* B80798 801095F8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8079C 801095FC 568F001D */ bnel $s4, $t7, .L80109674 -/* B807A0 80109600 8FB90120 */ lw $t9, 0x120($sp) -/* B807A4 80109604 A0396305 */ sb $t9, 0x6305($at) -/* B807A8 80109608 921863E4 */ lbu $t8, 0x63e4($s0) -/* B807AC 8010960C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B807B0 80109610 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B807B4 80109614 17000016 */ bnez $t8, .L80109670 -/* B807B8 80109618 2404482E */ li $a0, 18478 -/* B807BC 8010961C 8FB90138 */ lw $t9, 0x138($sp) -/* B807C0 80109620 3C0E8013 */ lui $t6, %hi(D_801333E0) -/* B807C4 80109624 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B807C8 80109628 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B807CC 8010962C 25C733E0 */ addiu $a3, $t6, %lo(D_801333E0) -/* B807D0 80109630 27382200 */ addiu $t8, $t9, 0x2200 -/* B807D4 80109634 AFB80058 */ sw $t8, 0x58($sp) -/* B807D8 80109638 AFA70010 */ sw $a3, 0x10($sp) -/* B807DC 8010963C AFAF0014 */ sw $t7, 0x14($sp) -/* B807E0 80109640 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B807E4 80109644 24060004 */ li $a2, 4 -/* B807E8 80109648 8FA40058 */ lw $a0, 0x58($sp) -/* B807EC 8010964C 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B807F0 80109650 24050001 */ li $a1, 1 -/* B807F4 80109654 8FAE0138 */ lw $t6, 0x138($sp) -/* B807F8 80109658 91CF1D6C */ lbu $t7, 0x1d6c($t6) -/* B807FC 8010965C 01C02025 */ move $a0, $t6 -/* B80800 80109660 55E00004 */ bnezl $t7, .L80109674 -/* B80804 80109664 8FB90120 */ lw $t9, 0x120($sp) -/* B80808 80109668 0C021BC0 */ jal Interface_SetDoAction -/* B8080C 8010966C 24050003 */ li $a1, 3 -.L80109670: -/* B80810 80109670 8FB90120 */ lw $t9, 0x120($sp) -.L80109674: -/* B80814 80109674 8FB8013C */ lw $t8, 0x13c($sp) -/* B80818 80109678 100000AF */ b .L80109938 -/* B8081C 8010967C AF190000 */ sw $t9, ($t8) - -glabel L80109680 -/* B80820 80109680 960F63D2 */ lhu $t7, 0x63d2($s0) -/* B80824 80109684 264E0001 */ addiu $t6, $s2, 1 -/* B80828 80109688 26C37FFF */ addiu $v1, $s6, 0x7fff -/* B8082C 8010968C 15EE0007 */ bne $t7, $t6, .L801096AC -/* B80830 80109690 00000000 */ nop -/* B80834 80109694 0C0420FE */ jal func_801083F8 -/* B80838 80109698 8FA40138 */ lw $a0, 0x138($sp) -/* B8083C 8010969C 8FB90120 */ lw $t9, 0x120($sp) -/* B80840 801096A0 8FB8013C */ lw $t8, 0x13c($sp) -/* B80844 801096A4 100000A4 */ b .L80109938 -/* B80848 801096A8 AF190000 */ sw $t9, ($t8) -.L801096AC: -/* B8084C 801096AC 1000008F */ b .L801098EC -/* B80850 801096B0 946363D3 */ lhu $v1, 0x63d3($v1) - -glabel L801096B4 -/* B80854 801096B4 920F6304 */ lbu $t7, 0x6304($s0) -/* B80858 801096B8 240E0035 */ li $t6, 53 -/* B8085C 801096BC 26217FFF */ addiu $at, $s1, 0x7fff -/* B80860 801096C0 168F0014 */ bne $s4, $t7, .L80109714 -/* B80864 801096C4 24190060 */ li $t9, 96 -/* B80868 801096C8 26470001 */ addiu $a3, $s2, 1 -/* B8086C 801096CC 30E7FFFF */ andi $a3, $a3, 0xffff -/* B80870 801096D0 0227C021 */ addu $t8, $s1, $a3 -/* B80874 801096D4 A02E6305 */ sb $t6, 0x6305($at) -/* B80878 801096D8 A03963E5 */ sb $t9, 0x63e5($at) -/* B8087C 801096DC 03157821 */ addu $t7, $t8, $s5 -/* B80880 801096E0 91EE6306 */ lbu $t6, 0x6306($t7) -/* B80884 801096E4 24050001 */ li $a1, 1 -/* B80888 801096E8 A02E63E8 */ sb $t6, 0x63e8($at) -/* B8088C 801096EC 8FA40138 */ lw $a0, 0x138($sp) -/* B80890 801096F0 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B80894 801096F4 24842200 */ addiu $a0, $a0, 0x2200 -/* B80898 801096F8 8FB90138 */ lw $t9, 0x138($sp) -/* B8089C 801096FC 93381D6C */ lbu $t8, 0x1d6c($t9) -/* B808A0 80109700 03202025 */ move $a0, $t9 -/* B808A4 80109704 57000004 */ bnezl $t8, .L80109718 -/* B808A8 80109708 8FAF0120 */ lw $t7, 0x120($sp) -/* B808AC 8010970C 0C021BC0 */ jal Interface_SetDoAction -/* B808B0 80109710 24050003 */ li $a1, 3 -.L80109714: -/* B808B4 80109714 8FAF0120 */ lw $t7, 0x120($sp) -.L80109718: -/* B808B8 80109718 8FAE013C */ lw $t6, 0x13c($sp) -/* B808BC 8010971C 10000086 */ b .L80109938 -/* B808C0 80109720 ADCF0000 */ sw $t7, ($t6) - -glabel L80109724 -/* B808C4 80109724 92186304 */ lbu $t8, 0x6304($s0) -/* B808C8 80109728 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B808CC 8010972C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B808D0 80109730 1698000E */ bne $s4, $t8, .L8010976C -/* B808D4 80109734 00002025 */ move $a0, $zero -/* B808D8 80109738 3C198013 */ lui $t9, %hi(D_801333E0) -/* B808DC 8010973C 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B808E0 80109740 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B808E4 80109744 272733E0 */ addiu $a3, $t9, %lo(D_801333E0) -/* B808E8 80109748 AFA70010 */ sw $a3, 0x10($sp) -/* B808EC 8010974C AFAF0014 */ sw $t7, 0x14($sp) -/* B808F0 80109750 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B808F4 80109754 24060004 */ li $a2, 4 -/* B808F8 80109758 26217FFF */ addiu $at, $s1, 0x7fff -/* B808FC 8010975C 240E0035 */ li $t6, 53 -/* B80900 80109760 24180040 */ li $t8, 64 -/* B80904 80109764 A02E6305 */ sb $t6, 0x6305($at) -/* B80908 80109768 A03863E5 */ sb $t8, 0x63e5($at) -.L8010976C: -/* B8090C 8010976C 8FB90120 */ lw $t9, 0x120($sp) -/* B80910 80109770 8FAF013C */ lw $t7, 0x13c($sp) -/* B80914 80109774 10000070 */ b .L80109938 -/* B80918 80109778 ADF90000 */ sw $t9, ($t7) - -glabel L8010977C -/* B8091C 8010977C 920E6304 */ lbu $t6, 0x6304($s0) -/* B80920 80109780 24180035 */ li $t8, 53 -/* B80924 80109784 26217FFF */ addiu $at, $s1, 0x7fff -/* B80928 80109788 168E0012 */ bne $s4, $t6, .L801097D4 -/* B8092C 8010978C 24190050 */ li $t9, 80 -/* B80930 80109790 A0386305 */ sb $t8, 0x6305($at) -/* B80934 80109794 A03963E5 */ sb $t9, 0x63e5($at) -/* B80938 80109798 8FA40138 */ lw $a0, 0x138($sp) -/* B8093C 8010979C 00002825 */ move $a1, $zero -/* B80940 801097A0 0C01BBAF */ jal Font_LoadMessageBoxEndIcon -/* B80944 801097A4 24842200 */ addiu $a0, $a0, 0x2200 -/* B80948 801097A8 3C0F8013 */ lui $t7, %hi(D_801333E0) -/* B8094C 801097AC 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B80950 801097B0 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B80954 801097B4 25E733E0 */ addiu $a3, $t7, %lo(D_801333E0) -/* B80958 801097B8 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B8095C 801097BC 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B80960 801097C0 AFA70010 */ sw $a3, 0x10($sp) -/* B80964 801097C4 AFAE0014 */ sw $t6, 0x14($sp) -/* B80968 801097C8 2404482E */ li $a0, 18478 -/* B8096C 801097CC 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B80970 801097D0 24060004 */ li $a2, 4 -.L801097D4: -/* B80974 801097D4 8FB80120 */ lw $t8, 0x120($sp) -/* B80978 801097D8 8FB9013C */ lw $t9, 0x13c($sp) -/* B8097C 801097DC 10000056 */ b .L80109938 -/* B80980 801097E0 AF380000 */ sw $t8, ($t9) -.L801097E4: -glabel L801097E4 -/* B80984 801097E4 8FAF0138 */ lw $t7, 0x138($sp) -/* B80988 801097E8 34018000 */ li $at, 32768 -/* B8098C 801097EC 02C19821 */ addu $s3, $s6, $at -/* B80990 801097F0 25EE2200 */ addiu $t6, $t7, 0x2200 -/* B80994 801097F4 AFAE0058 */ sw $t6, 0x58($sp) -/* B80998 801097F8 92186304 */ lbu $t8, 0x6304($s0) -/* B8099C 801097FC 56980016 */ bnel $s4, $t8, .L80109858 -/* B809A0 80109800 8FAF0058 */ lw $t7, 0x58($sp) -/* B809A4 80109804 961963D2 */ lhu $t9, 0x63d2($s0) -/* B809A8 80109808 264F0001 */ addiu $t7, $s2, 1 -/* B809AC 8010980C 572F0012 */ bnel $t9, $t7, .L80109858 -/* B809B0 80109810 8FAF0058 */ lw $t7, 0x58($sp) -/* B809B4 80109814 960E63EA */ lhu $t6, 0x63ea($s0) -/* B809B8 80109818 961863E8 */ lhu $t8, 0x63e8($s0) -/* B809BC 8010981C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B809C0 80109820 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B809C4 80109824 15D8000B */ bne $t6, $t8, .L80109854 -/* B809C8 80109828 00002025 */ move $a0, $zero -/* B809CC 8010982C 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B809D0 80109830 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B809D4 80109834 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B809D8 80109838 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B809DC 8010983C AFB90014 */ sw $t9, 0x14($sp) -/* B809E0 80109840 24060004 */ li $a2, 4 -/* B809E4 80109844 AFA70010 */ sw $a3, 0x10($sp) -/* B809E8 80109848 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B809EC 8010984C AFA20050 */ sw $v0, 0x50($sp) -/* B809F0 80109850 8FA20050 */ lw $v0, 0x50($sp) -.L80109854: -/* B809F4 80109854 8FAF0058 */ lw $t7, 0x58($sp) -.L80109858: -/* B809F8 80109858 97AE0128 */ lhu $t6, 0x128($sp) -/* B809FC 8010985C 8FA40138 */ lw $a0, 0x138($sp) -/* B80A00 80109860 27A60120 */ addiu $a2, $sp, 0x120 -/* B80A04 80109864 01EE2821 */ addu $a1, $t7, $t6 -/* B80A08 80109868 24A50008 */ addiu $a1, $a1, 8 -/* B80A0C 8010986C 0C041BC7 */ jal func_80106F1C -/* B80A10 80109870 AFA20050 */ sw $v0, 0x50($sp) -/* B80A14 80109874 97B80128 */ lhu $t8, 0x128($sp) -/* B80A18 80109878 8EEF0000 */ lw $t7, ($s7) -/* B80A1C 8010987C 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* B80A20 80109880 27190080 */ addiu $t9, $t8, 0x80 -/* B80A24 80109884 A7B90128 */ sh $t9, 0x128($sp) -/* B80A28 80109888 85EE0B06 */ lh $t6, 0xb06($t7) -/* B80A2C 8010988C 44814000 */ mtc1 $at, $f8 -/* B80A30 80109890 8FA20050 */ lw $v0, 0x50($sp) -/* B80A34 80109894 448E2000 */ mtc1 $t6, $f4 -/* B80A38 80109898 3C018015 */ lui $at, %hi(D_80153980) -/* B80A3C 8010989C 0002C080 */ sll $t8, $v0, 2 -/* B80A40 801098A0 468021A0 */ cvt.s.w $f6, $f4 -/* B80A44 801098A4 00380821 */ addu $at, $at, $t8 -/* B80A48 801098A8 C4303980 */ lwc1 $f16, %lo(D_80153980)($at) -/* B80A4C 801098AC 860E63D8 */ lh $t6, 0x63d8($s0) -/* B80A50 801098B0 26217FFF */ addiu $at, $s1, 0x7fff -/* B80A54 801098B4 24080009 */ li $t0, 9 -/* B80A58 801098B8 46083283 */ div.s $f10, $f6, $f8 -/* B80A5C 801098BC 2409000A */ li $t1, 10 -/* B80A60 801098C0 240A000B */ li $t2, 11 -/* B80A64 801098C4 240B000C */ li $t3, 12 -/* B80A68 801098C8 240C000D */ li $t4, 13 -/* B80A6C 801098CC 240D0004 */ li $t5, 4 -/* B80A70 801098D0 460A8482 */ mul.s $f18, $f16, $f10 -/* B80A74 801098D4 4600910D */ trunc.w.s $f4, $f18 -/* B80A78 801098D8 440F2000 */ mfc1 $t7, $f4 -/* B80A7C 801098DC 00000000 */ nop -/* B80A80 801098E0 01CFC021 */ addu $t8, $t6, $t7 -/* B80A84 801098E4 A43863D9 */ sh $t8, 0x63d9($at) -/* B80A88 801098E8 966363D2 */ lhu $v1, 0x63d2($s3) -.L801098EC: -/* B80A8C 801098EC 26520001 */ addiu $s2, $s2, 1 -/* B80A90 801098F0 3252FFFF */ andi $s2, $s2, 0xffff -/* B80A94 801098F4 0243082A */ slt $at, $s2, $v1 -/* B80A98 801098F8 5420FBB1 */ bnezl $at, .L801087C0 -/* B80A9C 801098FC 02327021 */ addu $t6, $s1, $s2 -.L80109900: -/* B80AA0 80109900 960263E8 */ lhu $v0, 0x63e8($s0) -/* B80AA4 80109904 14400006 */ bnez $v0, .L80109920 -/* B80AA8 80109908 26590001 */ addiu $t9, $s2, 1 -/* B80AAC 8010990C 26217FFF */ addiu $at, $s1, 0x7fff -/* B80AB0 80109910 A43963D3 */ sh $t9, 0x63d3($at) -/* B80AB4 80109914 960E63EA */ lhu $t6, 0x63ea($s0) -/* B80AB8 80109918 10000004 */ b .L8010992C -/* B80ABC 8010991C A42E63E9 */ sh $t6, 0x63e9($at) -.L80109920: -/* B80AC0 80109920 244FFFFF */ addiu $t7, $v0, -1 -/* B80AC4 80109924 26217FFF */ addiu $at, $s1, 0x7fff -/* B80AC8 80109928 A42F63E9 */ sh $t7, 0x63e9($at) -.L8010992C: -/* B80ACC 8010992C 8FB80120 */ lw $t8, 0x120($sp) -/* B80AD0 80109930 8FB9013C */ lw $t9, 0x13c($sp) -/* B80AD4 80109934 AF380000 */ sw $t8, ($t9) -.L80109938: -/* B80AD8 80109938 8FBF0044 */ lw $ra, 0x44($sp) -/* B80ADC 8010993C 8FB00020 */ lw $s0, 0x20($sp) -/* B80AE0 80109940 8FB10024 */ lw $s1, 0x24($sp) -/* B80AE4 80109944 8FB20028 */ lw $s2, 0x28($sp) -/* B80AE8 80109948 8FB3002C */ lw $s3, 0x2c($sp) -/* B80AEC 8010994C 8FB40030 */ lw $s4, 0x30($sp) -/* B80AF0 80109950 8FB50034 */ lw $s5, 0x34($sp) -/* B80AF4 80109954 8FB60038 */ lw $s6, 0x38($sp) -/* B80AF8 80109958 8FB7003C */ lw $s7, 0x3c($sp) -/* B80AFC 8010995C 8FBE0040 */ lw $fp, 0x40($sp) -/* B80B00 80109960 03E00008 */ jr $ra -/* B80B04 80109964 27BD0138 */ addiu $sp, $sp, 0x138 - - diff --git a/asm/non_matchings/code/z_message_PAL/func_80109968.s b/asm/non_matchings/code/z_message_PAL/func_80109968.s deleted file mode 100644 index 4d07f47fab..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80109968.s +++ /dev/null @@ -1,142 +0,0 @@ -.rdata -glabel D_80154054 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_80154068 - # Item 32-0 - .asciz "アイテム32-0\n" - .balign 4 - -glabel D_80154078 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_8015408C - # Item 24=%d (%d) {%d} - .asciz "アイテム24=%d (%d) {%d}\n" - .balign 4 - -.text -glabel func_80109968 -/* B80B08 80109968 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B80B0C 8010996C AFB00020 */ sw $s0, 0x20($sp) -/* B80B10 80109970 30B0FFFF */ andi $s0, $a1, 0xffff -/* B80B14 80109974 24010076 */ li $at, 118 -/* B80B18 80109978 AFBF002C */ sw $ra, 0x2c($sp) -/* B80B1C 8010997C AFB20028 */ sw $s2, 0x28($sp) -/* B80B20 80109980 AFB10024 */ sw $s1, 0x24($sp) -/* B80B24 80109984 AFA40030 */ sw $a0, 0x30($sp) -/* B80B28 80109988 AFA50034 */ sw $a1, 0x34($sp) -/* B80B2C 8010998C 16010007 */ bne $s0, $at, .L801099AC -/* B80B30 80109990 AFA60038 */ sw $a2, 0x38($sp) -/* B80B34 80109994 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* B80B38 80109998 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* B80B3C 8010999C 240300FF */ li $v1, 255 -/* B80B40 801099A0 00811021 */ addu $v0, $a0, $at -/* B80B44 801099A4 A043015E */ sb $v1, 0x15e($v0) -/* B80B48 801099A8 A043015F */ sb $v1, 0x15f($v0) -.L801099AC: -/* B80B4C 801099AC 2A010066 */ slti $at, $s0, 0x66 -/* B80B50 801099B0 10200029 */ beqz $at, .L80109A58 -/* B80B54 801099B4 3C038016 */ lui $v1, %hi(gGameInfo) -/* B80B58 801099B8 3C0F8016 */ lui $t7, %hi(gSaveContext+0x1409) # $t7, 0x8016 -/* B80B5C 801099BC 91EFFA69 */ lbu $t7, %lo(gSaveContext+0x1409)($t7) -/* B80B60 801099C0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* B80B64 801099C4 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* B80B68 801099C8 8C620000 */ lw $v0, ($v1) -/* B80B6C 801099CC 3C198015 */ lui $t9, %hi(D_80153C40) -/* B80B70 801099D0 000FC040 */ sll $t8, $t7, 1 -/* B80B74 801099D4 0338C821 */ addu $t9, $t9, $t8 -/* B80B78 801099D8 87393C40 */ lh $t9, %lo(D_80153C40)($t9) -/* B80B7C 801099DC 844E0B00 */ lh $t6, 0xb00($v0) -/* B80B80 801099E0 240C0020 */ li $t4, 32 -/* B80B84 801099E4 34018000 */ li $at, 32768 -/* B80B88 801099E8 01D94023 */ subu $t0, $t6, $t9 -/* B80B8C 801099EC A4480522 */ sh $t0, 0x522($v0) -/* B80B90 801099F0 87A9003A */ lh $t1, 0x3a($sp) -/* B80B94 801099F4 8C6B0000 */ lw $t3, ($v1) -/* B80B98 801099F8 3C180075 */ lui $t8, %hi(_icon_item_staticSegmentRomStart) # $t8, 0x75 -/* B80B9C 801099FC 252A0006 */ addiu $t2, $t1, 6 -/* B80BA0 80109A00 A56A0524 */ sh $t2, 0x524($t3) -/* B80BA4 80109A04 8C6D0000 */ lw $t5, ($v1) -/* B80BA8 80109A08 2718C000 */ addiu $t8, %lo(_icon_item_staticSegmentRomStart) # addiu $t8, $t8, -0x4000 -/* B80BAC 80109A0C 240E05C1 */ li $t6, 1473 -/* B80BB0 80109A10 A5AC052A */ sh $t4, 0x52a($t5) -/* B80BB4 80109A14 8FB10030 */ lw $s1, 0x30($sp) -/* B80BB8 80109A18 00107B00 */ sll $t7, $s0, 0xc -/* B80BBC 80109A1C 3C078015 */ lui $a3, %hi(D_80154054) # $a3, 0x8015 -/* B80BC0 80109A20 263120D8 */ addiu $s1, $s1, 0x20d8 -/* B80BC4 80109A24 02219021 */ addu $s2, $s1, $at -/* B80BC8 80109A28 8E4462B0 */ lw $a0, 0x62b0($s2) -/* B80BCC 80109A2C AFAE0010 */ sw $t6, 0x10($sp) -/* B80BD0 80109A30 24E74054 */ addiu $a3, %lo(D_80154054) # addiu $a3, $a3, 0x4054 -/* B80BD4 80109A34 01F82821 */ addu $a1, $t7, $t8 -/* B80BD8 80109A38 24061000 */ li $a2, 4096 -/* B80BDC 80109A3C 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B80BE0 80109A40 24841000 */ addiu $a0, $a0, 0x1000 -/* B80BE4 80109A44 3C048015 */ lui $a0, %hi(D_80154068) # $a0, 0x8015 -/* B80BE8 80109A48 0C00084C */ jal osSyncPrintf -/* B80BEC 80109A4C 24844068 */ addiu $a0, %lo(D_80154068) # addiu $a0, $a0, 0x4068 -/* B80BF0 80109A50 1000002F */ b .L80109B10 -/* B80BF4 80109A54 964B63CE */ lhu $t3, 0x63ce($s2) -.L80109A58: -/* B80BF8 80109A58 3C088016 */ lui $t0, %hi(gSaveContext+0x1409) # $t0, 0x8016 -/* B80BFC 80109A5C 9108FA69 */ lbu $t0, %lo(gSaveContext+0x1409)($t0) -/* B80C00 80109A60 2463FA90 */ addiu $v1, %lo(gGameInfo) -/* B80C04 80109A64 8C620000 */ lw $v0, ($v1) -/* B80C08 80109A68 3C0A8015 */ lui $t2, %hi(D_80153C48) -/* B80C0C 80109A6C 00084840 */ sll $t1, $t0, 1 -/* B80C10 80109A70 01495021 */ addu $t2, $t2, $t1 -/* B80C14 80109A74 854A3C48 */ lh $t2, %lo(D_80153C48)($t2) -/* B80C18 80109A78 84590B00 */ lh $t9, 0xb00($v0) -/* B80C1C 80109A7C 24180018 */ li $t8, 24 -/* B80C20 80109A80 34018000 */ li $at, 32768 -/* B80C24 80109A84 032A5823 */ subu $t3, $t9, $t2 -/* B80C28 80109A88 A44B0522 */ sh $t3, 0x522($v0) -/* B80C2C 80109A8C 87AC003A */ lh $t4, 0x3a($sp) -/* B80C30 80109A90 8C6F0000 */ lw $t7, ($v1) -/* B80C34 80109A94 001040C0 */ sll $t0, $s0, 3 -/* B80C38 80109A98 258D000A */ addiu $t5, $t4, 0xa -/* B80C3C 80109A9C A5ED0524 */ sh $t5, 0x524($t7) -/* B80C40 80109AA0 8C6E0000 */ lw $t6, ($v1) -/* B80C44 80109AA4 01104021 */ addu $t0, $t0, $s0 -/* B80C48 80109AA8 00084200 */ sll $t0, $t0, 8 -/* B80C4C 80109AAC A5D8052A */ sh $t8, 0x52a($t6) -/* B80C50 80109AB0 8FB10030 */ lw $s1, 0x30($sp) -/* B80C54 80109AB4 3C19007D */ lui $t9, %hi(_icon_item_24_staticSegmentRomStart) # $t9, 0x7d -/* B80C58 80109AB8 27396000 */ addiu $t9, %lo(_icon_item_24_staticSegmentRomStart) # addiu $t9, $t9, 0x6000 -/* B80C5C 80109ABC 263120D8 */ addiu $s1, $s1, 0x20d8 -/* B80C60 80109AC0 02219021 */ addu $s2, $s1, $at -/* B80C64 80109AC4 3C01FFFC */ lui $at, (0xFFFC6A00 >> 16) # lui $at, 0xfffc -/* B80C68 80109AC8 8E4462B0 */ lw $a0, 0x62b0($s2) -/* B80C6C 80109ACC 34216A00 */ ori $at, (0xFFFC6A00 & 0xFFFF) # ori $at, $at, 0x6a00 -/* B80C70 80109AD0 01014821 */ addu $t1, $t0, $at -/* B80C74 80109AD4 240A05CA */ li $t2, 1482 -/* B80C78 80109AD8 3C078015 */ lui $a3, %hi(D_80154078) # $a3, 0x8015 -/* B80C7C 80109ADC 24E74078 */ addiu $a3, %lo(D_80154078) # addiu $a3, $a3, 0x4078 -/* B80C80 80109AE0 AFAA0010 */ sw $t2, 0x10($sp) -/* B80C84 80109AE4 01392821 */ addu $a1, $t1, $t9 -/* B80C88 80109AE8 24060900 */ li $a2, 2304 -/* B80C8C 80109AEC 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B80C90 80109AF0 24841000 */ addiu $a0, $a0, 0x1000 -/* B80C94 80109AF4 3C048015 */ lui $a0, %hi(D_8015408C) # $a0, 0x8015 -/* B80C98 80109AF8 2484408C */ addiu $a0, %lo(D_8015408C) # addiu $a0, $a0, 0x408c -/* B80C9C 80109AFC 02002825 */ move $a1, $s0 -/* B80CA0 80109B00 2606FF94 */ addiu $a2, $s0, -0x6c -/* B80CA4 80109B04 0C00084C */ jal osSyncPrintf -/* B80CA8 80109B08 24070054 */ li $a3, 84 -/* B80CAC 80109B0C 964B63CE */ lhu $t3, 0x63ce($s2) -.L80109B10: -/* B80CB0 80109B10 26217FFF */ addiu $at, $s1, 0x7fff -/* B80CB4 80109B14 240D0001 */ li $t5, 1 -/* B80CB8 80109B18 256C0001 */ addiu $t4, $t3, 1 -/* B80CBC 80109B1C A42C63CF */ sh $t4, 0x63cf($at) -/* B80CC0 80109B20 A02D63E7 */ sb $t5, 0x63e7($at) -/* B80CC4 80109B24 8FBF002C */ lw $ra, 0x2c($sp) -/* B80CC8 80109B28 8FB20028 */ lw $s2, 0x28($sp) -/* B80CCC 80109B2C 8FB10024 */ lw $s1, 0x24($sp) -/* B80CD0 80109B30 8FB00020 */ lw $s0, 0x20($sp) -/* B80CD4 80109B34 03E00008 */ jr $ra -/* B80CD8 80109B38 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/code/z_message_PAL/func_80109B3C.s b/asm/non_matchings/code/z_message_PAL/func_80109B3C.s deleted file mode 100644 index b79bd95f1c..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_80109B3C.s +++ /dev/null @@ -1,1589 +0,0 @@ -.rdata -glabel D_801540A8 - .asciz "JJ=%d\n" - .balign 4 - -glabel D_801540B4 - .asciz "NZ_NEXTMSG=%x, %x, %x\n" - .balign 4 - -glabel D_801540CC - # Name = - .asciz "\n名前 = " - .balign 4 - -glabel D_801540D8 - .asciz "%x " - .balign 4 - -glabel D_801540DC - # EVENT TIMER = - .asciz "\nEVENTタイマー = " - .balign 4 - -glabel D_801540F4 - # Horseback Archery Score = %d - .asciz "\n流鏑馬スコア = %d\n" - .balign 4 - -glabel D_8015410C - # Total Gold Skulltula Tokens = %d - .asciz "\n金スタ合計数 = %d" - .balign 4 - -glabel D_80154120 - .asciz "%x(%x) " - .balign 4 - -glabel D_80154128 - # Fishing Pond Fish Size = - .asciz "\n釣り堀魚サイズ = " - .balign 4 - -glabel D_8015413C - .asciz "%x(%x) " - .balign 4 - -glabel D_80154144 - # Ranking=%d - .asciz "ランキング=%d\n" - .balign 4 - -glabel D_80154154 - .asciz "HI_SCORE( kanfont->mbuff.nes_mes_buf[message->rdp] & 0xff000000 ) = %x\n" - .balign 4 - -glabel D_8015419C - .asciz "score=%d\n" - .balign 4 - -glabel D_801541A8 - # Zelda Time = - .asciz "\nゼルダ時間 = " - .balign 4 - -glabel D_801541B8 - .asciz "ITEM_NO=(%d) (%d)\n" - .balign 4 - -glabel D_801541CC - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801541E0 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801541F4 - .asciz "NZ_TIMER_END (key_off_flag=%d)\n" - .balign 4 - -glabel D_80154214 - .asciz "NZ_BGM (key_off_flag=%d)\n" - .balign 4 - -.late_rodata -glabel D_80154BC8 - .float 0.00359999993816 - -glabel jtbl_80154BCC - .word L8010A6FC - .word L8010A6FC - .word L8010A6FC - .word L8010A850 - .word L8010A850 - .word L8010B06C - .word L8010A850 - -.text -glabel func_80109B3C -/* B80CDC 80109B3C 27BDFF68 */ addiu $sp, $sp, -0x98 -/* B80CE0 80109B40 3C010001 */ lui $at, 1 -/* B80CE4 80109B44 AFBF0044 */ sw $ra, 0x44($sp) -/* B80CE8 80109B48 AFBE0040 */ sw $fp, 0x40($sp) -/* B80CEC 80109B4C AFB7003C */ sw $s7, 0x3c($sp) -/* B80CF0 80109B50 AFB60038 */ sw $s6, 0x38($sp) -/* B80CF4 80109B54 AFB50034 */ sw $s5, 0x34($sp) -/* B80CF8 80109B58 AFB40030 */ sw $s4, 0x30($sp) -/* B80CFC 80109B5C AFB3002C */ sw $s3, 0x2c($sp) -/* B80D00 80109B60 AFB20028 */ sw $s2, 0x28($sp) -/* B80D04 80109B64 AFB10024 */ sw $s1, 0x24($sp) -/* B80D08 80109B68 AFB00020 */ sw $s0, 0x20($sp) -/* B80D0C 80109B6C A7A00086 */ sh $zero, 0x86($sp) -/* B80D10 80109B70 00240821 */ addu $at, $at, $a0 -/* B80D14 80109B74 3C070001 */ lui $a3, 1 -/* B80D18 80109B78 00E43821 */ addu $a3, $a3, $a0 -/* B80D1C 80109B7C A42004C0 */ sh $zero, 0x4c0($at) -/* B80D20 80109B80 94E704C0 */ lhu $a3, 0x4c0($a3) -/* B80D24 80109B84 3C010001 */ lui $at, 1 -/* B80D28 80109B88 00240821 */ addu $at, $at, $a0 -/* B80D2C 80109B8C A42704C2 */ sh $a3, 0x4c2($at) -/* B80D30 80109B90 3C010001 */ lui $at, 1 -/* B80D34 80109B94 00240821 */ addu $at, $at, $a0 -/* B80D38 80109B98 A42704AE */ sh $a3, 0x4ae($at) -/* B80D3C 80109B9C 3C018015 */ lui $at, %hi(D_8014B2F0) # $at, 0x8015 -/* B80D40 80109BA0 A420B2F0 */ sh $zero, %lo(D_8014B2F0)($at) -/* B80D44 80109BA4 34018000 */ li $at, 32768 -/* B80D48 80109BA8 249720D8 */ addiu $s7, $a0, 0x20d8 -/* B80D4C 80109BAC 02E17021 */ addu $t6, $s7, $at -/* B80D50 80109BB0 0000A825 */ move $s5, $zero -/* B80D54 80109BB4 0000B025 */ move $s6, $zero -/* B80D58 80109BB8 AFAE0054 */ sw $t6, 0x54($sp) -/* B80D5C 80109BBC AFA40098 */ sw $a0, 0x98($sp) -/* B80D60 80109BC0 249E2200 */ addiu $fp, $a0, 0x2200 -.L80109BC4: -/* B80D64 80109BC4 8FAF0054 */ lw $t7, 0x54($sp) -/* B80D68 80109BC8 34028000 */ li $v0, 32768 -/* B80D6C 80109BCC 02F65021 */ addu $t2, $s7, $s6 -/* B80D70 80109BD0 95F863CE */ lhu $t8, 0x63ce($t7) -/* B80D74 80109BD4 01425821 */ addu $t3, $t2, $v0 -/* B80D78 80109BD8 24010004 */ li $at, 4 -/* B80D7C 80109BDC 03D8C821 */ addu $t9, $fp, $t8 -/* B80D80 80109BE0 03224821 */ addu $t1, $t9, $v0 -/* B80D84 80109BE4 91325C88 */ lbu $s2, 0x5c88($t1) -/* B80D88 80109BE8 A1726306 */ sb $s2, 0x6306($t3) -/* B80D8C 80109BEC 325100FF */ andi $s1, $s2, 0xff -/* B80D90 80109BF0 1241000B */ beq $s2, $at, .L80109C20 -/* B80D94 80109BF4 02408025 */ move $s0, $s2 -/* B80D98 80109BF8 24010007 */ li $at, 7 -/* B80D9C 80109BFC 12410008 */ beq $s2, $at, .L80109C20 -/* B80DA0 80109C00 2401000C */ li $at, 12 -/* B80DA4 80109C04 12410006 */ beq $s2, $at, .L80109C20 -/* B80DA8 80109C08 2401000B */ li $at, 11 -/* B80DAC 80109C0C 12410004 */ beq $s2, $at, .L80109C20 -/* B80DB0 80109C10 24140008 */ li $s4, 8 -/* B80DB4 80109C14 24010002 */ li $at, 2 -/* B80DB8 80109C18 1641007B */ bne $s2, $at, .L80109E08 -/* B80DBC 80109C1C 00009825 */ move $s3, $zero -.L80109C20: -/* B80DC0 80109C20 26E17FFF */ addiu $at, $s7, 0x7fff -/* B80DC4 80109C24 240C0006 */ li $t4, 6 -/* B80DC8 80109C28 240D0001 */ li $t5, 1 -/* B80DCC 80109C2C A02C6305 */ sb $t4, 0x6305($at) -/* B80DD0 80109C30 A42D63D3 */ sh $t5, 0x63d3($at) -/* B80DD4 80109C34 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B80DD8 80109C38 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* B80DDC 80109C3C 3C048015 */ lui $a0, %hi(D_801540A8) # $a0, 0x8015 -/* B80DE0 80109C40 248440A8 */ addiu $a0, %lo(D_801540A8) # addiu $a0, $a0, 0x40a8 -/* B80DE4 80109C44 844E0F16 */ lh $t6, 0xf16($v0) -/* B80DE8 80109C48 25CF0008 */ addiu $t7, $t6, 8 -/* B80DEC 80109C4C A44F0B02 */ sh $t7, 0xb02($v0) -/* B80DF0 80109C50 0C00084C */ jal osSyncPrintf -/* B80DF4 80109C54 87A50086 */ lh $a1, 0x86($sp) -/* B80DF8 80109C58 8FB80054 */ lw $t8, 0x54($sp) -/* B80DFC 80109C5C 24010004 */ li $at, 4 -/* B80E00 80109C60 87A90086 */ lh $t1, 0x86($sp) -/* B80E04 80109C64 931962FD */ lbu $t9, 0x62fd($t8) -/* B80E08 80109C68 5321001A */ beql $t9, $at, .L80109CD4 -/* B80E0C 80109C6C 24010007 */ li $at, 7 -/* B80E10 80109C70 15200007 */ bnez $t1, .L80109C90 -/* B80E14 80109C74 87AC0086 */ lh $t4, 0x86($sp) -/* B80E18 80109C78 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B80E1C 80109C7C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* B80E20 80109C80 844A0F16 */ lh $t2, 0xf16($v0) -/* B80E24 80109C84 254B001A */ addiu $t3, $t2, 0x1a -/* B80E28 80109C88 10000011 */ b .L80109CD0 -/* B80E2C 80109C8C A44B0B02 */ sh $t3, 0xb02($v0) -.L80109C90: -/* B80E30 80109C90 24010001 */ li $at, 1 -/* B80E34 80109C94 15810007 */ bne $t4, $at, .L80109CB4 -/* B80E38 80109C98 87AF0086 */ lh $t7, 0x86($sp) -/* B80E3C 80109C9C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B80E40 80109CA0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* B80E44 80109CA4 844D0F16 */ lh $t5, 0xf16($v0) -/* B80E48 80109CA8 25AE0014 */ addiu $t6, $t5, 0x14 -/* B80E4C 80109CAC 10000008 */ b .L80109CD0 -/* B80E50 80109CB0 A44E0B02 */ sh $t6, 0xb02($v0) -.L80109CB4: -/* B80E54 80109CB4 24010002 */ li $at, 2 -/* B80E58 80109CB8 15E10005 */ bne $t7, $at, .L80109CD0 -/* B80E5C 80109CBC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B80E60 80109CC0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* B80E64 80109CC4 84580F16 */ lh $t8, 0xf16($v0) -/* B80E68 80109CC8 27190010 */ addiu $t9, $t8, 0x10 -/* B80E6C 80109CCC A4590B02 */ sh $t9, 0xb02($v0) -.L80109CD0: -/* B80E70 80109CD0 24010007 */ li $at, 7 -.L80109CD4: -/* B80E74 80109CD4 1601002D */ bne $s0, $at, .L80109D8C -/* B80E78 80109CD8 8FA90054 */ lw $t1, 0x54($sp) -/* B80E7C 80109CDC 952363CE */ lhu $v1, 0x63ce($t1) -/* B80E80 80109CE0 34088000 */ li $t0, 32768 -/* B80E84 80109CE4 3C048015 */ lui $a0, %hi(D_801540B4) # $a0, 0x8015 -/* B80E88 80109CE8 03C35021 */ addu $t2, $fp, $v1 -/* B80E8C 80109CEC 03C36021 */ addu $t4, $fp, $v1 -/* B80E90 80109CF0 01881021 */ addu $v0, $t4, $t0 -/* B80E94 80109CF4 01485821 */ addu $t3, $t2, $t0 -/* B80E98 80109CF8 91655C88 */ lbu $a1, 0x5c88($t3) -/* B80E9C 80109CFC 90465C89 */ lbu $a2, 0x5c89($v0) -/* B80EA0 80109D00 90475C8A */ lbu $a3, 0x5c8a($v0) -/* B80EA4 80109D04 0C00084C */ jal osSyncPrintf -/* B80EA8 80109D08 248440B4 */ addiu $a0, %lo(D_801540B4) # addiu $a0, $a0, 0x40b4 -/* B80EAC 80109D0C 8FA40054 */ lw $a0, 0x54($sp) -/* B80EB0 80109D10 34038000 */ li $v1, 32768 -/* B80EB4 80109D14 26C20001 */ addiu $v0, $s6, 1 -/* B80EB8 80109D18 948D63CE */ lhu $t5, 0x63ce($a0) -/* B80EBC 80109D1C 00023C00 */ sll $a3, $v0, 0x10 -/* B80EC0 80109D20 00073C03 */ sra $a3, $a3, 0x10 -/* B80EC4 80109D24 03CD7021 */ addu $t6, $fp, $t5 -/* B80EC8 80109D28 01C37821 */ addu $t7, $t6, $v1 -/* B80ECC 80109D2C 91F25C89 */ lbu $s2, 0x5c89($t7) -/* B80ED0 80109D30 02E7C021 */ addu $t8, $s7, $a3 -/* B80ED4 80109D34 0303C821 */ addu $t9, $t8, $v1 -/* B80ED8 80109D38 A3326306 */ sb $s2, 0x6306($t9) -/* B80EDC 80109D3C 948963CE */ lhu $t1, 0x63ce($a0) -/* B80EE0 80109D40 0040B025 */ move $s6, $v0 -/* B80EE4 80109D44 26C20001 */ addiu $v0, $s6, 1 -/* B80EE8 80109D48 03C95021 */ addu $t2, $fp, $t1 -/* B80EEC 80109D4C 01435821 */ addu $t3, $t2, $v1 -/* B80EF0 80109D50 00023C00 */ sll $a3, $v0, 0x10 -/* B80EF4 80109D54 916C5C8A */ lbu $t4, 0x5c8a($t3) -/* B80EF8 80109D58 00073C03 */ sra $a3, $a3, 0x10 -/* B80EFC 80109D5C 0002B400 */ sll $s6, $v0, 0x10 -/* B80F00 80109D60 0016B403 */ sra $s6, $s6, 0x10 -/* B80F04 80109D64 02E76821 */ addu $t5, $s7, $a3 -/* B80F08 80109D68 01A37021 */ addu $t6, $t5, $v1 -/* B80F0C 80109D6C 02F67821 */ addu $t7, $s7, $s6 -/* B80F10 80109D70 01E3C021 */ addu $t8, $t7, $v1 -/* B80F14 80109D74 A1CC6306 */ sb $t4, 0x6306($t6) -/* B80F18 80109D78 93196306 */ lbu $t9, 0x6306($t8) -/* B80F1C 80109D7C 00125200 */ sll $t2, $s2, 8 -/* B80F20 80109D80 3C018015 */ lui $at, %hi(D_8014B304) # $at, 0x8015 -/* B80F24 80109D84 032A5825 */ or $t3, $t9, $t2 -/* B80F28 80109D88 A42BB304 */ sh $t3, %lo(D_8014B304)($at) -.L80109D8C: -/* B80F2C 80109D8C 2401000C */ li $at, 12 -/* B80F30 80109D90 16210012 */ bne $s1, $at, .L80109DDC -/* B80F34 80109D94 34038000 */ li $v1, 32768 -/* B80F38 80109D98 8FA40054 */ lw $a0, 0x54($sp) -/* B80F3C 80109D9C 26C20001 */ addiu $v0, $s6, 1 -/* B80F40 80109DA0 00023C00 */ sll $a3, $v0, 0x10 -/* B80F44 80109DA4 948D63CE */ lhu $t5, 0x63ce($a0) -/* B80F48 80109DA8 00073C03 */ sra $a3, $a3, 0x10 -/* B80F4C 80109DAC 02E7C021 */ addu $t8, $s7, $a3 -/* B80F50 80109DB0 03CD6021 */ addu $t4, $fp, $t5 -/* B80F54 80109DB4 01837021 */ addu $t6, $t4, $v1 -/* B80F58 80109DB8 91CF5C89 */ lbu $t7, 0x5c89($t6) -/* B80F5C 80109DBC 03034821 */ addu $t1, $t8, $v1 -/* B80F60 80109DC0 0002B400 */ sll $s6, $v0, 0x10 -/* B80F64 80109DC4 A12F6306 */ sb $t7, 0x6306($t1) -/* B80F68 80109DC8 949963CE */ lhu $t9, 0x63ce($a0) -/* B80F6C 80109DCC 26E17FFF */ addiu $at, $s7, 0x7fff -/* B80F70 80109DD0 0016B403 */ sra $s6, $s6, 0x10 -/* B80F74 80109DD4 272A0002 */ addiu $t2, $t9, 2 -/* B80F78 80109DD8 A42A63CF */ sh $t2, 0x63cf($at) -.L80109DDC: -/* B80F7C 80109DDC 26E17FFF */ addiu $at, $s7, 0x7fff -/* B80F80 80109DE0 A43663D5 */ sh $s6, 0x63d5($at) -/* B80F84 80109DE4 3C0B8015 */ lui $t3, %hi(D_8014B300) # $t3, 0x8015 -/* B80F88 80109DE8 916BB300 */ lbu $t3, %lo(D_8014B300)($t3) -/* B80F8C 80109DEC 8FAD0054 */ lw $t5, 0x54($sp) -/* B80F90 80109DF0 516004A8 */ beql $t3, $zero, .L8010B094 -/* B80F94 80109DF4 8FBF0044 */ lw $ra, 0x44($sp) -/* B80F98 80109DF8 95AC63D4 */ lhu $t4, 0x63d4($t5) -/* B80F9C 80109DFC 26E17FFF */ addiu $at, $s7, 0x7fff -/* B80FA0 80109E00 100004A3 */ b .L8010B090 -/* B80FA4 80109E04 A42C63D3 */ sh $t4, 0x63d3($at) -.L80109E08: -/* B80FA8 80109E08 2401000F */ li $at, 15 -/* B80FAC 80109E0C 16010057 */ bne $s0, $at, .L80109F6C -/* B80FB0 80109E10 3C048015 */ lui $a0, %hi(D_801540CC) # $a0, 0x8015 -.L80109E14: -/* B80FB4 80109E14 3C0E8016 */ lui $t6, %hi(gSaveContext+0x23) -/* B80FB8 80109E18 01D47021 */ addu $t6, $t6, $s4 -/* B80FBC 80109E1C 91CEE683 */ lbu $t6, %lo(gSaveContext+0x23)($t6) -/* B80FC0 80109E20 2401003E */ li $at, 62 -/* B80FC4 80109E24 15C10006 */ bne $t6, $at, .L80109E40 -/* B80FC8 80109E28 00000000 */ nop -/* B80FCC 80109E2C 2694FFFF */ addiu $s4, $s4, -1 -/* B80FD0 80109E30 0014A400 */ sll $s4, $s4, 0x10 -/* B80FD4 80109E34 0014A403 */ sra $s4, $s4, 0x10 -/* B80FD8 80109E38 1E80FFF6 */ bgtz $s4, .L80109E14 -/* B80FDC 80109E3C 00000000 */ nop -.L80109E40: -/* B80FE0 80109E40 0C00084C */ jal osSyncPrintf -/* B80FE4 80109E44 248440CC */ addiu $a0, %lo(D_801540CC) # addiu $a0, $a0, 0x40cc -/* B80FE8 80109E48 1A800044 */ blez $s4, .L80109F5C -.L80109E4C: -/* B80FEC 80109E4C 3C118016 */ lui $s1, %hi(gSaveContext+0x24) -/* B80FF0 80109E50 02338821 */ addu $s1, $s1, $s3 -/* B80FF4 80109E54 9231E684 */ lbu $s1, %lo(gSaveContext+0x24)($s1) -/* B80FF8 80109E58 02F69021 */ addu $s2, $s7, $s6 -/* B80FFC 80109E5C 34018000 */ li $at, 32768 -/* B81000 80109E60 02419021 */ addu $s2, $s2, $at -/* B81004 80109E64 2401003E */ li $at, 62 -/* B81008 80109E68 16210004 */ bne $s1, $at, .L80109E7C -/* B8100C 80109E6C 02208025 */ move $s0, $s1 -/* B81010 80109E70 24110020 */ li $s1, 32 -/* B81014 80109E74 10000024 */ b .L80109F08 -/* B81018 80109E78 24100020 */ li $s0, 32 -.L80109E7C: -/* B8101C 80109E7C 24010040 */ li $at, 64 -/* B81020 80109E80 56010005 */ bnel $s0, $at, .L80109E98 -/* B81024 80109E84 2401003F */ li $at, 63 -/* B81028 80109E88 2411002E */ li $s1, 46 -/* B8102C 80109E8C 1000001E */ b .L80109F08 -/* B81030 80109E90 2410002E */ li $s0, 46 -/* B81034 80109E94 2401003F */ li $at, 63 -.L80109E98: -/* B81038 80109E98 56010005 */ bnel $s0, $at, .L80109EB0 -/* B8103C 80109E9C 2A01000A */ slti $at, $s0, 0xa -/* B81040 80109EA0 2411002D */ li $s1, 45 -/* B81044 80109EA4 10000018 */ b .L80109F08 -/* B81048 80109EA8 2410002D */ li $s0, 45 -/* B8104C 80109EAC 2A01000A */ slti $at, $s0, 0xa -.L80109EB0: -/* B81050 80109EB0 50200007 */ beql $at, $zero, .L80109ED0 -/* B81054 80109EB4 2A010024 */ slti $at, $s0, 0x24 -/* B81058 80109EB8 02008825 */ move $s1, $s0 -/* B8105C 80109EBC 26310030 */ addiu $s1, $s1, 0x30 -/* B81060 80109EC0 323100FF */ andi $s1, $s1, 0xff -/* B81064 80109EC4 10000010 */ b .L80109F08 -/* B81068 80109EC8 02208025 */ move $s0, $s1 -/* B8106C 80109ECC 2A010024 */ slti $at, $s0, 0x24 -.L80109ED0: -/* B81070 80109ED0 50200007 */ beql $at, $zero, .L80109EF0 -/* B81074 80109ED4 2A01003E */ slti $at, $s0, 0x3e -/* B81078 80109ED8 02008825 */ move $s1, $s0 -/* B8107C 80109EDC 26310037 */ addiu $s1, $s1, 0x37 -/* B81080 80109EE0 323100FF */ andi $s1, $s1, 0xff -/* B81084 80109EE4 10000008 */ b .L80109F08 -/* B81088 80109EE8 02208025 */ move $s0, $s1 -/* B8108C 80109EEC 2A01003E */ slti $at, $s0, 0x3e -.L80109EF0: -/* B81090 80109EF0 50200006 */ beql $at, $zero, .L80109F0C -/* B81094 80109EF4 24010020 */ li $at, 32 -/* B81098 80109EF8 02008825 */ move $s1, $s0 -/* B8109C 80109EFC 2631003D */ addiu $s1, $s1, 0x3d -/* B810A0 80109F00 323100FF */ andi $s1, $s1, 0xff -/* B810A4 80109F04 02208025 */ move $s0, $s1 -.L80109F08: -/* B810A8 80109F08 24010020 */ li $at, 32 -.L80109F0C: -/* B810AC 80109F0C 12010006 */ beq $s0, $at, .L80109F28 -/* B810B0 80109F10 03C02025 */ move $a0, $fp -/* B810B4 80109F14 2605FFE0 */ addiu $a1, $s0, -0x20 -/* B810B8 80109F18 30A500FF */ andi $a1, $a1, 0xff -/* B810BC 80109F1C 0C01BB98 */ jal Font_LoadChar -/* B810C0 80109F20 32A6FFFF */ andi $a2, $s5, 0xffff -/* B810C4 80109F24 26B50080 */ addiu $s5, $s5, 0x80 -.L80109F28: -/* B810C8 80109F28 3C048015 */ lui $a0, %hi(D_801540D8) # $a0, 0x8015 -/* B810CC 80109F2C 248440D8 */ addiu $a0, %lo(D_801540D8) # addiu $a0, $a0, 0x40d8 -/* B810D0 80109F30 0C00084C */ jal osSyncPrintf -/* B810D4 80109F34 02002825 */ move $a1, $s0 -/* B810D8 80109F38 26730001 */ addiu $s3, $s3, 1 -/* B810DC 80109F3C 00139C00 */ sll $s3, $s3, 0x10 -/* B810E0 80109F40 00139C03 */ sra $s3, $s3, 0x10 -/* B810E4 80109F44 26D60001 */ addiu $s6, $s6, 1 -/* B810E8 80109F48 0274082A */ slt $at, $s3, $s4 -/* B810EC 80109F4C 0016B400 */ sll $s6, $s6, 0x10 -/* B810F0 80109F50 A2516306 */ sb $s1, 0x6306($s2) -/* B810F4 80109F54 1420FFBD */ bnez $at, .L80109E4C -/* B810F8 80109F58 0016B403 */ sra $s6, $s6, 0x10 -.L80109F5C: -/* B810FC 80109F5C 26D6FFFF */ addiu $s6, $s6, -1 -/* B81100 80109F60 0016B400 */ sll $s6, $s6, 0x10 -/* B81104 80109F64 10000441 */ b .L8010B06C -/* B81108 80109F68 0016B403 */ sra $s6, $s6, 0x10 -.L80109F6C: -/* B8110C 80109F6C 24010016 */ li $at, 22 -/* B81110 80109F70 12010003 */ beq $s0, $at, .L80109F80 -/* B81114 80109F74 3C048015 */ lui $a0, %hi(D_801540DC) # $a0, 0x8015 -/* B81118 80109F78 24010017 */ li $at, 23 -/* B8111C 80109F7C 16010069 */ bne $s0, $at, .L8010A124 -.L80109F80: -/* B81120 80109F80 248440DC */ addiu $a0, %lo(D_801540DC) # addiu $a0, $a0, 0x40dc -/* B81124 80109F84 0C00084C */ jal osSyncPrintf -/* B81128 80109F88 00009825 */ move $s3, $zero -/* B8112C 80109F8C 00001C00 */ sll $v1, $zero, 0x10 -/* B81130 80109F90 00002400 */ sll $a0, $zero, 0x10 -/* B81134 80109F94 24010017 */ li $at, 23 -/* B81138 80109F98 00042403 */ sra $a0, $a0, 0x10 -/* B8113C 80109F9C 00031C03 */ sra $v1, $v1, 0x10 -/* B81140 80109FA0 16010004 */ bne $s0, $at, .L80109FB4 -/* B81144 80109FA4 00002825 */ move $a1, $zero -/* B81148 80109FA8 3C028016 */ lui $v0, %hi(gSaveContext+0x13d0) # $v0, 0x8016 -/* B8114C 80109FAC 10000003 */ b .L80109FBC -/* B81150 80109FB0 8442FA30 */ lh $v0, %lo(gSaveContext+0x13d0)($v0) -.L80109FB4: -/* B81154 80109FB4 3C028016 */ lui $v0, %hi(gSaveContext+0x13d4) -/* B81158 80109FB8 8442FA34 */ lh $v0, %lo(gSaveContext+0x13d4)($v0) -.L80109FBC: -/* B8115C 80109FBC 2841003C */ slti $at, $v0, 0x3c -/* B81160 80109FC0 A7A3007E */ sh $v1, 0x7e($sp) -/* B81164 80109FC4 14200014 */ bnez $at, .L8010A018 -/* B81168 80109FC8 A7A4007C */ sh $a0, 0x7c($sp) -/* B8116C 80109FCC 24630001 */ addiu $v1, $v1, 1 -.L80109FD0: -/* B81170 80109FD0 00031C00 */ sll $v1, $v1, 0x10 -/* B81174 80109FD4 00031C03 */ sra $v1, $v1, 0x10 -/* B81178 80109FD8 2861000A */ slti $at, $v1, 0xa -/* B8117C 80109FDC 14200007 */ bnez $at, .L80109FFC -/* B81180 80109FE0 2442FFC4 */ addiu $v0, $v0, -0x3c -/* B81184 80109FE4 24840001 */ addiu $a0, $a0, 1 -/* B81188 80109FE8 2463FFF6 */ addiu $v1, $v1, -0xa -/* B8118C 80109FEC 00042400 */ sll $a0, $a0, 0x10 -/* B81190 80109FF0 00031C00 */ sll $v1, $v1, 0x10 -/* B81194 80109FF4 00042403 */ sra $a0, $a0, 0x10 -/* B81198 80109FF8 00031C03 */ sra $v1, $v1, 0x10 -.L80109FFC: -/* B8119C 80109FFC 00021400 */ sll $v0, $v0, 0x10 -/* B811A0 8010A000 00021403 */ sra $v0, $v0, 0x10 -/* B811A4 8010A004 2841003C */ slti $at, $v0, 0x3c -/* B811A8 8010A008 5020FFF1 */ beql $at, $zero, .L80109FD0 -/* B811AC 8010A00C 24630001 */ addiu $v1, $v1, 1 -/* B811B0 8010A010 A7A4007C */ sh $a0, 0x7c($sp) -/* B811B4 8010A014 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A018: -/* B811B8 8010A018 2841000A */ slti $at, $v0, 0xa -/* B811BC 8010A01C A7A20082 */ sh $v0, 0x82($sp) -/* B811C0 8010A020 1420000B */ bnez $at, .L8010A050 -/* B811C4 8010A024 A7A50080 */ sh $a1, 0x80($sp) -.L8010A028: -/* B811C8 8010A028 2442FFF6 */ addiu $v0, $v0, -0xa -/* B811CC 8010A02C 00021400 */ sll $v0, $v0, 0x10 -/* B811D0 8010A030 24A50001 */ addiu $a1, $a1, 1 -/* B811D4 8010A034 00021403 */ sra $v0, $v0, 0x10 -/* B811D8 8010A038 2841000A */ slti $at, $v0, 0xa -/* B811DC 8010A03C 00052C00 */ sll $a1, $a1, 0x10 -/* B811E0 8010A040 1020FFF9 */ beqz $at, .L8010A028 -/* B811E4 8010A044 00052C03 */ sra $a1, $a1, 0x10 -/* B811E8 8010A048 A7A50080 */ sh $a1, 0x80($sp) -/* B811EC 8010A04C A7A20082 */ sh $v0, 0x82($sp) -.L8010A050: -/* B811F0 8010A050 0013C040 */ sll $t8, $s3, 1 -.L8010A054: -/* B811F4 8010A054 27AF007C */ addiu $t7, $sp, 0x7c -/* B811F8 8010A058 030F8021 */ addu $s0, $t8, $t7 -/* B811FC 8010A05C 86050000 */ lh $a1, ($s0) -/* B81200 8010A060 02F69021 */ addu $s2, $s7, $s6 -/* B81204 8010A064 34018000 */ li $at, 32768 -/* B81208 8010A068 24A50010 */ addiu $a1, $a1, 0x10 -/* B8120C 8010A06C 30A500FF */ andi $a1, $a1, 0xff -/* B81210 8010A070 02419021 */ addu $s2, $s2, $at -/* B81214 8010A074 03C02025 */ move $a0, $fp -/* B81218 8010A078 0C01BB98 */ jal Font_LoadChar -/* B8121C 8010A07C 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81220 8010A080 86090000 */ lh $t1, ($s0) -/* B81224 8010A084 26D60001 */ addiu $s6, $s6, 1 -/* B81228 8010A088 0016B400 */ sll $s6, $s6, 0x10 -/* B8122C 8010A08C 24010001 */ li $at, 1 -/* B81230 8010A090 25390030 */ addiu $t9, $t1, 0x30 -/* B81234 8010A094 26B50080 */ addiu $s5, $s5, 0x80 -/* B81238 8010A098 A2596306 */ sb $t9, 0x6306($s2) -/* B8123C 8010A09C 1661000E */ bne $s3, $at, .L8010A0D8 -/* B81240 8010A0A0 0016B403 */ sra $s6, $s6, 0x10 -/* B81244 8010A0A4 03C02025 */ move $a0, $fp -/* B81248 8010A0A8 24050002 */ li $a1, 2 -/* B8124C 8010A0AC 0C01BB98 */ jal Font_LoadChar -/* B81250 8010A0B0 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81254 8010A0B4 02F65821 */ addu $t3, $s7, $s6 -/* B81258 8010A0B8 26D60001 */ addiu $s6, $s6, 1 -/* B8125C 8010A0BC 25617FFF */ addiu $at, $t3, 0x7fff -/* B81260 8010A0C0 240A0022 */ li $t2, 34 -/* B81264 8010A0C4 0016B400 */ sll $s6, $s6, 0x10 -/* B81268 8010A0C8 26B50080 */ addiu $s5, $s5, 0x80 -/* B8126C 8010A0CC A02A6307 */ sb $t2, 0x6307($at) -/* B81270 8010A0D0 1000000C */ b .L8010A104 -/* B81274 8010A0D4 0016B403 */ sra $s6, $s6, 0x10 -.L8010A0D8: -/* B81278 8010A0D8 24010003 */ li $at, 3 -/* B8127C 8010A0DC 16610009 */ bne $s3, $at, .L8010A104 -/* B81280 8010A0E0 03C02025 */ move $a0, $fp -/* B81284 8010A0E4 24050002 */ li $a1, 2 -/* B81288 8010A0E8 0C01BB98 */ jal Font_LoadChar -/* B8128C 8010A0EC 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81290 8010A0F0 02F66021 */ addu $t4, $s7, $s6 -/* B81294 8010A0F4 25817FFF */ addiu $at, $t4, 0x7fff -/* B81298 8010A0F8 240D0022 */ li $t5, 34 -/* B8129C 8010A0FC 26B50080 */ addiu $s5, $s5, 0x80 -/* B812A0 8010A100 A02D6307 */ sb $t5, 0x6307($at) -.L8010A104: -/* B812A4 8010A104 26730001 */ addiu $s3, $s3, 1 -/* B812A8 8010A108 00139C00 */ sll $s3, $s3, 0x10 -/* B812AC 8010A10C 00139C03 */ sra $s3, $s3, 0x10 -/* B812B0 8010A110 2A610004 */ slti $at, $s3, 4 -/* B812B4 8010A114 5420FFCF */ bnezl $at, .L8010A054 -/* B812B8 8010A118 0013C040 */ sll $t8, $s3, 1 -/* B812BC 8010A11C 100003D4 */ b .L8010B070 -/* B812C0 8010A120 8FB90054 */ lw $t9, 0x54($sp) -.L8010A124: -/* B812C4 8010A124 24010018 */ li $at, 24 -/* B812C8 8010A128 1601005A */ bne $s0, $at, .L8010A294 -/* B812CC 8010A12C 3C048015 */ lui $a0, %hi(D_801540F4) # $a0, 0x8015 -/* B812D0 8010A130 3C058016 */ lui $a1, %hi(gSaveContext+0x1406) # $a1, 0x8016 -/* B812D4 8010A134 94A5FA66 */ lhu $a1, %lo(gSaveContext+0x1406)($a1) -/* B812D8 8010A138 248440F4 */ addiu $a0, %lo(D_801540F4) # addiu $a0, $a0, 0x40f4 -/* B812DC 8010A13C 00009825 */ move $s3, $zero -/* B812E0 8010A140 0C00084C */ jal osSyncPrintf -/* B812E4 8010A144 00008825 */ move $s1, $zero -/* B812E8 8010A148 3C028016 */ lui $v0, %hi(gSaveContext+0x1406) # $v0, 0x8016 -/* B812EC 8010A14C 8442FA66 */ lh $v0, %lo(gSaveContext+0x1406)($v0) -/* B812F0 8010A150 00002400 */ sll $a0, $zero, 0x10 -/* B812F4 8010A154 00042403 */ sra $a0, $a0, 0x10 -/* B812F8 8010A158 00001C00 */ sll $v1, $zero, 0x10 -/* B812FC 8010A15C 284103E8 */ slti $at, $v0, 0x3e8 -/* B81300 8010A160 00031C03 */ sra $v1, $v1, 0x10 -/* B81304 8010A164 00002825 */ move $a1, $zero -/* B81308 8010A168 1420000A */ bnez $at, .L8010A194 -/* B8130C 8010A16C A7A4007C */ sh $a0, 0x7c($sp) -.L8010A170: -/* B81310 8010A170 2442FC18 */ addiu $v0, $v0, -0x3e8 -/* B81314 8010A174 00021400 */ sll $v0, $v0, 0x10 -/* B81318 8010A178 24840001 */ addiu $a0, $a0, 1 -/* B8131C 8010A17C 00021403 */ sra $v0, $v0, 0x10 -/* B81320 8010A180 284103E8 */ slti $at, $v0, 0x3e8 -/* B81324 8010A184 00042400 */ sll $a0, $a0, 0x10 -/* B81328 8010A188 1020FFF9 */ beqz $at, .L8010A170 -/* B8132C 8010A18C 00042403 */ sra $a0, $a0, 0x10 -/* B81330 8010A190 A7A4007C */ sh $a0, 0x7c($sp) -.L8010A194: -/* B81334 8010A194 28410064 */ slti $at, $v0, 0x64 -/* B81338 8010A198 1420000A */ bnez $at, .L8010A1C4 -/* B8133C 8010A19C A7A3007E */ sh $v1, 0x7e($sp) -.L8010A1A0: -/* B81340 8010A1A0 2442FF9C */ addiu $v0, $v0, -0x64 -/* B81344 8010A1A4 00021400 */ sll $v0, $v0, 0x10 -/* B81348 8010A1A8 24630001 */ addiu $v1, $v1, 1 -/* B8134C 8010A1AC 00021403 */ sra $v0, $v0, 0x10 -/* B81350 8010A1B0 28410064 */ slti $at, $v0, 0x64 -/* B81354 8010A1B4 00031C00 */ sll $v1, $v1, 0x10 -/* B81358 8010A1B8 1020FFF9 */ beqz $at, .L8010A1A0 -/* B8135C 8010A1BC 00031C03 */ sra $v1, $v1, 0x10 -/* B81360 8010A1C0 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A1C4: -/* B81364 8010A1C4 2841000A */ slti $at, $v0, 0xa -/* B81368 8010A1C8 A7A20082 */ sh $v0, 0x82($sp) -/* B8136C 8010A1CC 1420000B */ bnez $at, .L8010A1FC -/* B81370 8010A1D0 A7A50080 */ sh $a1, 0x80($sp) -.L8010A1D4: -/* B81374 8010A1D4 2442FFF6 */ addiu $v0, $v0, -0xa -/* B81378 8010A1D8 00021400 */ sll $v0, $v0, 0x10 -/* B8137C 8010A1DC 24A50001 */ addiu $a1, $a1, 1 -/* B81380 8010A1E0 00021403 */ sra $v0, $v0, 0x10 -/* B81384 8010A1E4 2841000A */ slti $at, $v0, 0xa -/* B81388 8010A1E8 00052C00 */ sll $a1, $a1, 0x10 -/* B8138C 8010A1EC 1020FFF9 */ beqz $at, .L8010A1D4 -/* B81390 8010A1F0 00052C03 */ sra $a1, $a1, 0x10 -/* B81394 8010A1F4 A7A50080 */ sh $a1, 0x80($sp) -/* B81398 8010A1F8 A7A20082 */ sh $v0, 0x82($sp) -.L8010A1FC: -/* B8139C 8010A1FC 24010003 */ li $at, 3 -.L8010A200: -/* B813A0 8010A200 12610005 */ beq $s3, $at, .L8010A218 -/* B813A4 8010A204 00137040 */ sll $t6, $s3, 1 -/* B813A8 8010A208 03AEC021 */ addu $t8, $sp, $t6 -/* B813AC 8010A20C 8718007C */ lh $t8, 0x7c($t8) -/* B813B0 8010A210 13000002 */ beqz $t8, .L8010A21C -/* B813B4 8010A214 00000000 */ nop -.L8010A218: -/* B813B8 8010A218 24110001 */ li $s1, 1 -.L8010A21C: -/* B813BC 8010A21C 12200013 */ beqz $s1, .L8010A26C -/* B813C0 8010A220 03C02025 */ move $a0, $fp -/* B813C4 8010A224 00137840 */ sll $t7, $s3, 1 -/* B813C8 8010A228 27A9007C */ addiu $t1, $sp, 0x7c -/* B813CC 8010A22C 01E98021 */ addu $s0, $t7, $t1 -/* B813D0 8010A230 86050000 */ lh $a1, ($s0) -/* B813D4 8010A234 02F69021 */ addu $s2, $s7, $s6 -/* B813D8 8010A238 34018000 */ li $at, 32768 -/* B813DC 8010A23C 24A50010 */ addiu $a1, $a1, 0x10 -/* B813E0 8010A240 30A500FF */ andi $a1, $a1, 0xff -/* B813E4 8010A244 02419021 */ addu $s2, $s2, $at -/* B813E8 8010A248 0C01BB98 */ jal Font_LoadChar -/* B813EC 8010A24C 32A6FFFF */ andi $a2, $s5, 0xffff -/* B813F0 8010A250 86190000 */ lh $t9, ($s0) -/* B813F4 8010A254 26D60001 */ addiu $s6, $s6, 1 -/* B813F8 8010A258 0016B400 */ sll $s6, $s6, 0x10 -/* B813FC 8010A25C 272A0030 */ addiu $t2, $t9, 0x30 -/* B81400 8010A260 A24A6306 */ sb $t2, 0x6306($s2) -/* B81404 8010A264 26B50080 */ addiu $s5, $s5, 0x80 -/* B81408 8010A268 0016B403 */ sra $s6, $s6, 0x10 -.L8010A26C: -/* B8140C 8010A26C 26730001 */ addiu $s3, $s3, 1 -/* B81410 8010A270 00139C00 */ sll $s3, $s3, 0x10 -/* B81414 8010A274 00139C03 */ sra $s3, $s3, 0x10 -/* B81418 8010A278 2A610004 */ slti $at, $s3, 4 -/* B8141C 8010A27C 5420FFE0 */ bnezl $at, .L8010A200 -/* B81420 8010A280 24010003 */ li $at, 3 -/* B81424 8010A284 26D6FFFF */ addiu $s6, $s6, -1 -/* B81428 8010A288 0016B400 */ sll $s6, $s6, 0x10 -/* B8142C 8010A28C 10000377 */ b .L8010B06C -/* B81430 8010A290 0016B403 */ sra $s6, $s6, 0x10 -.L8010A294: -/* B81434 8010A294 24010019 */ li $at, 25 -/* B81438 8010A298 16010051 */ bne $s0, $at, .L8010A3E0 -/* B8143C 8010A29C 3C048015 */ lui $a0, %hi(D_8015410C) # $a0, 0x8015 -/* B81440 8010A2A0 3C058016 */ lui $a1, %hi(gSaveContext+0xd0) # $a1, 0x8016 -/* B81444 8010A2A4 84A5E730 */ lh $a1, %lo(gSaveContext+0xd0)($a1) -/* B81448 8010A2A8 2484410C */ addiu $a0, %lo(D_8015410C) # addiu $a0, $a0, 0x410c -/* B8144C 8010A2AC 00009825 */ move $s3, $zero -/* B81450 8010A2B0 0C00084C */ jal osSyncPrintf -/* B81454 8010A2B4 00008825 */ move $s1, $zero -/* B81458 8010A2B8 3C058016 */ lui $a1, %hi(gSaveContext+0xd0) -/* B8145C 8010A2BC 84A5E730 */ lh $a1, %lo(gSaveContext+0xd0)($a1) -/* B81460 8010A2C0 00002400 */ sll $a0, $zero, 0x10 -/* B81464 8010A2C4 00042403 */ sra $a0, $a0, 0x10 -/* B81468 8010A2C8 28A10064 */ slti $at, $a1, 0x64 -/* B8146C 8010A2CC 00001825 */ move $v1, $zero -/* B81470 8010A2D0 1420000A */ bnez $at, .L8010A2FC -/* B81474 8010A2D4 A7A4007C */ sh $a0, 0x7c($sp) -.L8010A2D8: -/* B81478 8010A2D8 24A5FF9C */ addiu $a1, $a1, -0x64 -/* B8147C 8010A2DC 00052C00 */ sll $a1, $a1, 0x10 -/* B81480 8010A2E0 24840001 */ addiu $a0, $a0, 1 -/* B81484 8010A2E4 00052C03 */ sra $a1, $a1, 0x10 -/* B81488 8010A2E8 28A10064 */ slti $at, $a1, 0x64 -/* B8148C 8010A2EC 00042400 */ sll $a0, $a0, 0x10 -/* B81490 8010A2F0 1020FFF9 */ beqz $at, .L8010A2D8 -/* B81494 8010A2F4 00042403 */ sra $a0, $a0, 0x10 -/* B81498 8010A2F8 A7A4007C */ sh $a0, 0x7c($sp) -.L8010A2FC: -/* B8149C 8010A2FC 28A1000A */ slti $at, $a1, 0xa -/* B814A0 8010A300 A7A3007E */ sh $v1, 0x7e($sp) -/* B814A4 8010A304 1420000B */ bnez $at, .L8010A334 -/* B814A8 8010A308 A7A50080 */ sh $a1, 0x80($sp) -.L8010A30C: -/* B814AC 8010A30C 24A5FFF6 */ addiu $a1, $a1, -0xa -/* B814B0 8010A310 00052C00 */ sll $a1, $a1, 0x10 -/* B814B4 8010A314 24630001 */ addiu $v1, $v1, 1 -/* B814B8 8010A318 00052C03 */ sra $a1, $a1, 0x10 -/* B814BC 8010A31C 28A1000A */ slti $at, $a1, 0xa -/* B814C0 8010A320 00031C00 */ sll $v1, $v1, 0x10 -/* B814C4 8010A324 1020FFF9 */ beqz $at, .L8010A30C -/* B814C8 8010A328 00031C03 */ sra $v1, $v1, 0x10 -/* B814CC 8010A32C A7A50080 */ sh $a1, 0x80($sp) -/* B814D0 8010A330 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A334: -/* B814D4 8010A334 24010002 */ li $at, 2 -.L8010A338: -/* B814D8 8010A338 12610005 */ beq $s3, $at, .L8010A350 -/* B814DC 8010A33C 00135840 */ sll $t3, $s3, 1 -/* B814E0 8010A340 03AB6821 */ addu $t5, $sp, $t3 -/* B814E4 8010A344 85AD007C */ lh $t5, 0x7c($t5) -/* B814E8 8010A348 11A00002 */ beqz $t5, .L8010A354 -/* B814EC 8010A34C 00000000 */ nop -.L8010A350: -/* B814F0 8010A350 24110001 */ li $s1, 1 -.L8010A354: -/* B814F4 8010A354 12200018 */ beqz $s1, .L8010A3B8 -/* B814F8 8010A358 03C02025 */ move $a0, $fp -/* B814FC 8010A35C 00136040 */ sll $t4, $s3, 1 -/* B81500 8010A360 27AE007C */ addiu $t6, $sp, 0x7c -/* B81504 8010A364 018E8021 */ addu $s0, $t4, $t6 -/* B81508 8010A368 86050000 */ lh $a1, ($s0) -/* B8150C 8010A36C 02F69021 */ addu $s2, $s7, $s6 -/* B81510 8010A370 34018000 */ li $at, 32768 -/* B81514 8010A374 24A50010 */ addiu $a1, $a1, 0x10 -/* B81518 8010A378 30A500FF */ andi $a1, $a1, 0xff -/* B8151C 8010A37C 02419021 */ addu $s2, $s2, $at -/* B81520 8010A380 0C01BB98 */ jal Font_LoadChar -/* B81524 8010A384 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81528 8010A388 86180000 */ lh $t8, ($s0) -/* B8152C 8010A38C 3C048015 */ lui $a0, %hi(D_80154120) # $a0, 0x8015 -/* B81530 8010A390 26B50080 */ addiu $s5, $s5, 0x80 -/* B81534 8010A394 270F0030 */ addiu $t7, $t8, 0x30 -/* B81538 8010A398 A24F6306 */ sb $t7, 0x6306($s2) -/* B8153C 8010A39C 86060000 */ lh $a2, ($s0) -/* B81540 8010A3A0 24844120 */ addiu $a0, %lo(D_80154120) # addiu $a0, $a0, 0x4120 -/* B81544 8010A3A4 0C00084C */ jal osSyncPrintf -/* B81548 8010A3A8 24C50010 */ addiu $a1, $a2, 0x10 -/* B8154C 8010A3AC 26D60001 */ addiu $s6, $s6, 1 -/* B81550 8010A3B0 0016B400 */ sll $s6, $s6, 0x10 -/* B81554 8010A3B4 0016B403 */ sra $s6, $s6, 0x10 -.L8010A3B8: -/* B81558 8010A3B8 26730001 */ addiu $s3, $s3, 1 -/* B8155C 8010A3BC 00139C00 */ sll $s3, $s3, 0x10 -/* B81560 8010A3C0 00139C03 */ sra $s3, $s3, 0x10 -/* B81564 8010A3C4 2A610003 */ slti $at, $s3, 3 -/* B81568 8010A3C8 5420FFDB */ bnezl $at, .L8010A338 -/* B8156C 8010A3CC 24010002 */ li $at, 2 -/* B81570 8010A3D0 26D6FFFF */ addiu $s6, $s6, -1 -/* B81574 8010A3D4 0016B400 */ sll $s6, $s6, 0x10 -/* B81578 8010A3D8 10000324 */ b .L8010B06C -/* B8157C 8010A3DC 0016B403 */ sra $s6, $s6, 0x10 -.L8010A3E0: -/* B81580 8010A3E0 2401001D */ li $at, 29 -/* B81584 8010A3E4 1601003D */ bne $s0, $at, .L8010A4DC -/* B81588 8010A3E8 3C048015 */ lui $a0, %hi(D_80154128) # $a0, 0x8015 -/* B8158C 8010A3EC 24844128 */ addiu $a0, %lo(D_80154128) # addiu $a0, $a0, 0x4128 -/* B81590 8010A3F0 0C00084C */ jal osSyncPrintf -/* B81594 8010A3F4 00009825 */ move $s3, $zero -/* B81598 8010A3F8 3C038016 */ lui $v1, %hi(gSaveContext+0x1406) # $v1, 0x8016 -/* B8159C 8010A3FC 8463FA66 */ lh $v1, %lo(gSaveContext+0x1406)($v1) -/* B815A0 8010A400 00002025 */ move $a0, $zero -/* B815A4 8010A404 A7A0007C */ sh $zero, 0x7c($sp) -/* B815A8 8010A408 2861000A */ slti $at, $v1, 0xa -/* B815AC 8010A40C 1420000B */ bnez $at, .L8010A43C -/* B815B0 8010A410 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A414: -/* B815B4 8010A414 2463FFF6 */ addiu $v1, $v1, -0xa -/* B815B8 8010A418 00031C00 */ sll $v1, $v1, 0x10 -/* B815BC 8010A41C 24840001 */ addiu $a0, $a0, 1 -/* B815C0 8010A420 00031C03 */ sra $v1, $v1, 0x10 -/* B815C4 8010A424 2861000A */ slti $at, $v1, 0xa -/* B815C8 8010A428 00042400 */ sll $a0, $a0, 0x10 -/* B815CC 8010A42C 1020FFF9 */ beqz $at, .L8010A414 -/* B815D0 8010A430 00042403 */ sra $a0, $a0, 0x10 -/* B815D4 8010A434 A7A4007C */ sh $a0, 0x7c($sp) -/* B815D8 8010A438 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A43C: -/* B815DC 8010A43C 24010001 */ li $at, 1 -.L8010A440: -/* B815E0 8010A440 12610004 */ beq $s3, $at, .L8010A454 -/* B815E4 8010A444 00134840 */ sll $t1, $s3, 1 -/* B815E8 8010A448 03A9C821 */ addu $t9, $sp, $t1 -/* B815EC 8010A44C 8739007C */ lh $t9, 0x7c($t9) -/* B815F0 8010A450 13200018 */ beqz $t9, .L8010A4B4 -.L8010A454: -/* B815F4 8010A454 00135040 */ sll $t2, $s3, 1 -/* B815F8 8010A458 27AB007C */ addiu $t3, $sp, 0x7c -/* B815FC 8010A45C 014B8021 */ addu $s0, $t2, $t3 -/* B81600 8010A460 86050000 */ lh $a1, ($s0) -/* B81604 8010A464 02F69021 */ addu $s2, $s7, $s6 -/* B81608 8010A468 34018000 */ li $at, 32768 -/* B8160C 8010A46C 24A50010 */ addiu $a1, $a1, 0x10 -/* B81610 8010A470 30A500FF */ andi $a1, $a1, 0xff -/* B81614 8010A474 02419021 */ addu $s2, $s2, $at -/* B81618 8010A478 03C02025 */ move $a0, $fp -/* B8161C 8010A47C 0C01BB98 */ jal Font_LoadChar -/* B81620 8010A480 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81624 8010A484 860D0000 */ lh $t5, ($s0) -/* B81628 8010A488 3C048015 */ lui $a0, %hi(D_8015413C) # $a0, 0x8015 -/* B8162C 8010A48C 26B50080 */ addiu $s5, $s5, 0x80 -/* B81630 8010A490 25AC0030 */ addiu $t4, $t5, 0x30 -/* B81634 8010A494 A24C6306 */ sb $t4, 0x6306($s2) -/* B81638 8010A498 86060000 */ lh $a2, ($s0) -/* B8163C 8010A49C 2484413C */ addiu $a0, %lo(D_8015413C) # addiu $a0, $a0, 0x413c -/* B81640 8010A4A0 0C00084C */ jal osSyncPrintf -/* B81644 8010A4A4 24C50010 */ addiu $a1, $a2, 0x10 -/* B81648 8010A4A8 26D60001 */ addiu $s6, $s6, 1 -/* B8164C 8010A4AC 0016B400 */ sll $s6, $s6, 0x10 -/* B81650 8010A4B0 0016B403 */ sra $s6, $s6, 0x10 -.L8010A4B4: -/* B81654 8010A4B4 26730001 */ addiu $s3, $s3, 1 -/* B81658 8010A4B8 00139C00 */ sll $s3, $s3, 0x10 -/* B8165C 8010A4BC 00139C03 */ sra $s3, $s3, 0x10 -/* B81660 8010A4C0 2A610002 */ slti $at, $s3, 2 -/* B81664 8010A4C4 5420FFDE */ bnezl $at, .L8010A440 -/* B81668 8010A4C8 24010001 */ li $at, 1 -/* B8166C 8010A4CC 26D6FFFF */ addiu $s6, $s6, -1 -/* B81670 8010A4D0 0016B400 */ sll $s6, $s6, 0x10 -/* B81674 8010A4D4 100002E5 */ b .L8010B06C -/* B81678 8010A4D8 0016B403 */ sra $s6, $s6, 0x10 -.L8010A4DC: -/* B8167C 8010A4DC 2401001E */ li $at, 30 -/* B81680 8010A4E0 1601013D */ bne $s0, $at, .L8010A9D8 -/* B81684 8010A4E4 8FA30054 */ lw $v1, 0x54($sp) -/* B81688 8010A4E8 946763CE */ lhu $a3, 0x63ce($v1) -/* B8168C 8010A4EC 26E17FFF */ addiu $at, $s7, 0x7fff -/* B81690 8010A4F0 34028000 */ li $v0, 32768 -/* B81694 8010A4F4 24E70001 */ addiu $a3, $a3, 1 -/* B81698 8010A4F8 30E7FFFF */ andi $a3, $a3, 0xffff -/* B8169C 8010A4FC A42763CF */ sh $a3, 0x63cf($at) -/* B816A0 8010A500 03C77021 */ addu $t6, $fp, $a3 -/* B816A4 8010A504 01C2C021 */ addu $t8, $t6, $v0 -/* B816A8 8010A508 930F5C88 */ lbu $t7, 0x5c88($t8) -/* B816AC 8010A50C 947963CE */ lhu $t9, 0x63ce($v1) -/* B816B0 8010A510 3C108016 */ lui $s0, %hi(gSaveContext+0xeba) -/* B816B4 8010A514 000F4880 */ sll $t1, $t7, 2 -/* B816B8 8010A518 03D95021 */ addu $t2, $fp, $t9 -/* B816BC 8010A51C 02098021 */ addu $s0, $s0, $t1 -/* B816C0 8010A520 01425821 */ addu $t3, $t2, $v0 -/* B816C4 8010A524 3C048015 */ lui $a0, %hi(D_80154144) # $a0, 0x8015 -/* B816C8 8010A528 9610F51A */ lhu $s0, %lo(gSaveContext+0xeba)($s0) -/* B816CC 8010A52C 24844144 */ addiu $a0, %lo(D_80154144) # addiu $a0, $a0, 0x4144 -/* B816D0 8010A530 0C00084C */ jal osSyncPrintf -/* B816D4 8010A534 91655C88 */ lbu $a1, 0x5c88($t3) -/* B816D8 8010A538 8FAD0054 */ lw $t5, 0x54($sp) -/* B816DC 8010A53C 24010002 */ li $at, 2 -/* B816E0 8010A540 3C0E8016 */ lui $t6, %hi(gSaveContext+4) # $t6, 0x8016 -/* B816E4 8010A544 95A363CE */ lhu $v1, 0x63ce($t5) -/* B816E8 8010A548 03C36021 */ addu $t4, $fp, $v1 -/* B816EC 8010A54C 25827FFF */ addiu $v0, $t4, 0x7fff -/* B816F0 8010A550 90425C89 */ lbu $v0, 0x5c89($v0) -/* B816F4 8010A554 304200FF */ andi $v0, $v0, 0xff -/* B816F8 8010A558 54410061 */ bnel $v0, $at, .L8010A6E0 -/* B816FC 8010A55C 2C410007 */ sltiu $at, $v0, 7 -/* B81700 8010A560 8DCEE664 */ lw $t6, %lo(gSaveContext+4)($t6) -/* B81704 8010A564 24010005 */ li $at, 5 -/* B81708 8010A568 24020011 */ li $v0, 17 -/* B8170C 8010A56C 11C00003 */ beqz $t6, .L8010A57C -/* B81710 8010A570 3C048015 */ lui $a0, %hi(D_80154154) # $a0, 0x8015 -/* B81714 8010A574 10000001 */ b .L8010A57C -/* B81718 8010A578 24020005 */ li $v0, 5 -.L8010A57C: -/* B8171C 8010A57C 14410004 */ bne $v0, $at, .L8010A590 -/* B81720 8010A580 24844154 */ addiu $a0, %lo(D_80154154) # addiu $a0, $a0, 0x4154 -/* B81724 8010A584 3210007F */ andi $s0, $s0, 0x7f -/* B81728 8010A588 1000001A */ b .L8010A5F4 -/* B8172C 8010A58C 3210FFFF */ andi $s0, $s0, 0xffff -.L8010A590: -/* B81730 8010A590 0003C040 */ sll $t8, $v1, 1 -/* B81734 8010A594 03D87821 */ addu $t7, $fp, $t8 -/* B81738 8010A598 25E97FFF */ addiu $t1, $t7, 0x7fff -/* B8173C 8010A59C 95295C89 */ lhu $t1, 0x5c89($t1) -/* B81740 8010A5A0 3C01FF00 */ lui $at, 0xff00 -/* B81744 8010A5A4 3C058016 */ lui $a1, %hi(gSaveContext+0xeb8) -/* B81748 8010A5A8 0121C824 */ and $t9, $t1, $at -/* B8174C 8010A5AC 00195080 */ sll $t2, $t9, 2 -/* B81750 8010A5B0 00AA2821 */ addu $a1, $a1, $t2 -/* B81754 8010A5B4 0C00084C */ jal osSyncPrintf -/* B81758 8010A5B8 8CA5F518 */ lw $a1, %lo(gSaveContext+0xeb8)($a1) -/* B8175C 8010A5BC 8FAB0054 */ lw $t3, 0x54($sp) -/* B81760 8010A5C0 3C108016 */ lui $s0, %hi(gSaveContext+0xeb8) -/* B81764 8010A5C4 3C01FF00 */ lui $at, 0xff00 -/* B81768 8010A5C8 956D63CE */ lhu $t5, 0x63ce($t3) -/* B8176C 8010A5CC 03CD6021 */ addu $t4, $fp, $t5 -/* B81770 8010A5D0 258E7FFF */ addiu $t6, $t4, 0x7fff -/* B81774 8010A5D4 91CE5C89 */ lbu $t6, 0x5c89($t6) -/* B81778 8010A5D8 000EC080 */ sll $t8, $t6, 2 -/* B8177C 8010A5DC 02188021 */ addu $s0, $s0, $t8 -/* B81780 8010A5E0 8E10F518 */ lw $s0, %lo(gSaveContext+0xeb8)($s0) -/* B81784 8010A5E4 02018024 */ and $s0, $s0, $at -/* B81788 8010A5E8 00108602 */ srl $s0, $s0, 0x18 -/* B8178C 8010A5EC 3210007F */ andi $s0, $s0, 0x7f -/* B81790 8010A5F0 3210FFFF */ andi $s0, $s0, 0xffff -.L8010A5F4: -/* B81794 8010A5F4 44902000 */ mtc1 $s0, $f4 -/* B81798 8010A5F8 3C048015 */ lui $a0, %hi(D_8015419C) # $a0, 0x8015 -/* B8179C 8010A5FC 06010005 */ bgez $s0, .L8010A614 -/* B817A0 8010A600 46802020 */ cvt.s.w $f0, $f4 -/* B817A4 8010A604 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B817A8 8010A608 44813000 */ mtc1 $at, $f6 -/* B817AC 8010A60C 00000000 */ nop -/* B817B0 8010A610 46060000 */ add.s $f0, $f0, $f6 -.L8010A614: -/* B817B4 8010A614 46000202 */ mul.s $f8, $f0, $f0 -/* B817B8 8010A618 3C018015 */ lui $at, %hi(D_80154BC8) -/* B817BC 8010A61C C42A4BC8 */ lwc1 $f10, %lo(D_80154BC8)($at) -/* B817C0 8010A620 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* B817C4 8010A624 44819000 */ mtc1 $at, $f18 -/* B817C8 8010A628 24100001 */ li $s0, 1 -/* B817CC 8010A62C 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* B817D0 8010A630 460A4402 */ mul.s $f16, $f8, $f10 -/* B817D4 8010A634 2484419C */ addiu $a0, %lo(D_8015419C) # addiu $a0, $a0, 0x419c -/* B817D8 8010A638 46128100 */ add.s $f4, $f16, $f18 -/* B817DC 8010A63C 444FF800 */ cfc1 $t7, $31 -/* B817E0 8010A640 44D0F800 */ ctc1 $s0, $31 -/* B817E4 8010A644 00000000 */ nop -/* B817E8 8010A648 460021A4 */ cvt.w.s $f6, $f4 -/* B817EC 8010A64C 4450F800 */ cfc1 $s0, $31 -/* B817F0 8010A650 00000000 */ nop -/* B817F4 8010A654 32100078 */ andi $s0, $s0, 0x78 -/* B817F8 8010A658 52000013 */ beql $s0, $zero, .L8010A6A8 -/* B817FC 8010A65C 44103000 */ mfc1 $s0, $f6 -/* B81800 8010A660 44813000 */ mtc1 $at, $f6 -/* B81804 8010A664 24100001 */ li $s0, 1 -/* B81808 8010A668 46062181 */ sub.s $f6, $f4, $f6 -/* B8180C 8010A66C 44D0F800 */ ctc1 $s0, $31 -/* B81810 8010A670 00000000 */ nop -/* B81814 8010A674 460031A4 */ cvt.w.s $f6, $f6 -/* B81818 8010A678 4450F800 */ cfc1 $s0, $31 -/* B8181C 8010A67C 00000000 */ nop -/* B81820 8010A680 32100078 */ andi $s0, $s0, 0x78 -/* B81824 8010A684 16000005 */ bnez $s0, .L8010A69C -/* B81828 8010A688 00000000 */ nop -/* B8182C 8010A68C 44103000 */ mfc1 $s0, $f6 -/* B81830 8010A690 3C018000 */ lui $at, 0x8000 -/* B81834 8010A694 10000007 */ b .L8010A6B4 -/* B81838 8010A698 02018025 */ or $s0, $s0, $at -.L8010A69C: -/* B8183C 8010A69C 10000005 */ b .L8010A6B4 -/* B81840 8010A6A0 2410FFFF */ li $s0, -1 -/* B81844 8010A6A4 44103000 */ mfc1 $s0, $f6 -.L8010A6A8: -/* B81848 8010A6A8 00000000 */ nop -/* B8184C 8010A6AC 0600FFFB */ bltz $s0, .L8010A69C -/* B81850 8010A6B0 00000000 */ nop -.L8010A6B4: -/* B81854 8010A6B4 44CFF800 */ ctc1 $t7, $31 -/* B81858 8010A6B8 3210FFFF */ andi $s0, $s0, 0xffff -/* B8185C 8010A6BC 0C00084C */ jal osSyncPrintf -/* B81860 8010A6C0 02002825 */ move $a1, $s0 -/* B81864 8010A6C4 8FA90054 */ lw $t1, 0x54($sp) -/* B81868 8010A6C8 953963CE */ lhu $t9, 0x63ce($t1) -/* B8186C 8010A6CC 03D95021 */ addu $t2, $fp, $t9 -/* B81870 8010A6D0 25427FFF */ addiu $v0, $t2, 0x7fff -/* B81874 8010A6D4 90425C89 */ lbu $v0, 0x5c89($v0) -/* B81878 8010A6D8 304200FF */ andi $v0, $v0, 0xff -/* B8187C 8010A6DC 2C410007 */ sltiu $at, $v0, 7 -.L8010A6E0: -/* B81880 8010A6E0 10200262 */ beqz $at, .L8010B06C -/* B81884 8010A6E4 00025880 */ sll $t3, $v0, 2 -/* B81888 8010A6E8 3C018015 */ lui $at, %hi(jtbl_80154BCC) -/* B8188C 8010A6EC 002B0821 */ addu $at, $at, $t3 -/* B81890 8010A6F0 8C2B4BCC */ lw $t3, %lo(jtbl_80154BCC)($at) -/* B81894 8010A6F4 01600008 */ jr $t3 -/* B81898 8010A6F8 00000000 */ nop -glabel L8010A6FC -/* B8189C 8010A6FC 00101400 */ sll $v0, $s0, 0x10 -/* B818A0 8010A700 00002400 */ sll $a0, $zero, 0x10 -/* B818A4 8010A704 00021403 */ sra $v0, $v0, 0x10 -/* B818A8 8010A708 00042403 */ sra $a0, $a0, 0x10 -/* B818AC 8010A70C 00001C00 */ sll $v1, $zero, 0x10 -/* B818B0 8010A710 284103E8 */ slti $at, $v0, 0x3e8 -/* B818B4 8010A714 00031C03 */ sra $v1, $v1, 0x10 -/* B818B8 8010A718 00002825 */ move $a1, $zero -/* B818BC 8010A71C A7A4007C */ sh $a0, 0x7c($sp) -/* B818C0 8010A720 00009825 */ move $s3, $zero -/* B818C4 8010A724 1420000A */ bnez $at, .L8010A750 -/* B818C8 8010A728 00008825 */ move $s1, $zero -.L8010A72C: -/* B818CC 8010A72C 2442FC18 */ addiu $v0, $v0, -0x3e8 -/* B818D0 8010A730 00021400 */ sll $v0, $v0, 0x10 -/* B818D4 8010A734 24840001 */ addiu $a0, $a0, 1 -/* B818D8 8010A738 00021403 */ sra $v0, $v0, 0x10 -/* B818DC 8010A73C 284103E8 */ slti $at, $v0, 0x3e8 -/* B818E0 8010A740 00042400 */ sll $a0, $a0, 0x10 -/* B818E4 8010A744 1020FFF9 */ beqz $at, .L8010A72C -/* B818E8 8010A748 00042403 */ sra $a0, $a0, 0x10 -/* B818EC 8010A74C A7A4007C */ sh $a0, 0x7c($sp) -.L8010A750: -/* B818F0 8010A750 28410064 */ slti $at, $v0, 0x64 -/* B818F4 8010A754 1420000A */ bnez $at, .L8010A780 -/* B818F8 8010A758 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A75C: -/* B818FC 8010A75C 2442FF9C */ addiu $v0, $v0, -0x64 -/* B81900 8010A760 00021400 */ sll $v0, $v0, 0x10 -/* B81904 8010A764 24630001 */ addiu $v1, $v1, 1 -/* B81908 8010A768 00021403 */ sra $v0, $v0, 0x10 -/* B8190C 8010A76C 28410064 */ slti $at, $v0, 0x64 -/* B81910 8010A770 00031C00 */ sll $v1, $v1, 0x10 -/* B81914 8010A774 1020FFF9 */ beqz $at, .L8010A75C -/* B81918 8010A778 00031C03 */ sra $v1, $v1, 0x10 -/* B8191C 8010A77C A7A3007E */ sh $v1, 0x7e($sp) -.L8010A780: -/* B81920 8010A780 2841000A */ slti $at, $v0, 0xa -/* B81924 8010A784 A7A20082 */ sh $v0, 0x82($sp) -/* B81928 8010A788 1420000B */ bnez $at, .L8010A7B8 -/* B8192C 8010A78C A7A50080 */ sh $a1, 0x80($sp) -.L8010A790: -/* B81930 8010A790 2442FFF6 */ addiu $v0, $v0, -0xa -/* B81934 8010A794 00021400 */ sll $v0, $v0, 0x10 -/* B81938 8010A798 24A50001 */ addiu $a1, $a1, 1 -/* B8193C 8010A79C 00021403 */ sra $v0, $v0, 0x10 -/* B81940 8010A7A0 2841000A */ slti $at, $v0, 0xa -/* B81944 8010A7A4 00052C00 */ sll $a1, $a1, 0x10 -/* B81948 8010A7A8 1020FFF9 */ beqz $at, .L8010A790 -/* B8194C 8010A7AC 00052C03 */ sra $a1, $a1, 0x10 -/* B81950 8010A7B0 A7A50080 */ sh $a1, 0x80($sp) -/* B81954 8010A7B4 A7A20082 */ sh $v0, 0x82($sp) -.L8010A7B8: -/* B81958 8010A7B8 24010003 */ li $at, 3 -.L8010A7BC: -/* B8195C 8010A7BC 12610005 */ beq $s3, $at, .L8010A7D4 -/* B81960 8010A7C0 00136840 */ sll $t5, $s3, 1 -/* B81964 8010A7C4 03AD6021 */ addu $t4, $sp, $t5 -/* B81968 8010A7C8 858C007C */ lh $t4, 0x7c($t4) -/* B8196C 8010A7CC 11800002 */ beqz $t4, .L8010A7D8 -/* B81970 8010A7D0 00000000 */ nop -.L8010A7D4: -/* B81974 8010A7D4 24110001 */ li $s1, 1 -.L8010A7D8: -/* B81978 8010A7D8 12200013 */ beqz $s1, .L8010A828 -/* B8197C 8010A7DC 03C02025 */ move $a0, $fp -/* B81980 8010A7E0 00137040 */ sll $t6, $s3, 1 -/* B81984 8010A7E4 27B8007C */ addiu $t8, $sp, 0x7c -/* B81988 8010A7E8 01D88021 */ addu $s0, $t6, $t8 -/* B8198C 8010A7EC 86050000 */ lh $a1, ($s0) -/* B81990 8010A7F0 02F69021 */ addu $s2, $s7, $s6 -/* B81994 8010A7F4 34018000 */ li $at, 32768 -/* B81998 8010A7F8 24A50010 */ addiu $a1, $a1, 0x10 -/* B8199C 8010A7FC 30A500FF */ andi $a1, $a1, 0xff -/* B819A0 8010A800 02419021 */ addu $s2, $s2, $at -/* B819A4 8010A804 0C01BB98 */ jal Font_LoadChar -/* B819A8 8010A808 32A6FFFF */ andi $a2, $s5, 0xffff -/* B819AC 8010A80C 860F0000 */ lh $t7, ($s0) -/* B819B0 8010A810 26D60001 */ addiu $s6, $s6, 1 -/* B819B4 8010A814 0016B400 */ sll $s6, $s6, 0x10 -/* B819B8 8010A818 25E90030 */ addiu $t1, $t7, 0x30 -/* B819BC 8010A81C A2496306 */ sb $t1, 0x6306($s2) -/* B819C0 8010A820 26B50080 */ addiu $s5, $s5, 0x80 -/* B819C4 8010A824 0016B403 */ sra $s6, $s6, 0x10 -.L8010A828: -/* B819C8 8010A828 26730001 */ addiu $s3, $s3, 1 -/* B819CC 8010A82C 00139C00 */ sll $s3, $s3, 0x10 -/* B819D0 8010A830 00139C03 */ sra $s3, $s3, 0x10 -/* B819D4 8010A834 2A610004 */ slti $at, $s3, 4 -/* B819D8 8010A838 5420FFE0 */ bnezl $at, .L8010A7BC -/* B819DC 8010A83C 24010003 */ li $at, 3 -/* B819E0 8010A840 26D6FFFF */ addiu $s6, $s6, -1 -/* B819E4 8010A844 0016B400 */ sll $s6, $s6, 0x10 -/* B819E8 8010A848 10000208 */ b .L8010B06C -/* B819EC 8010A84C 0016B403 */ sra $s6, $s6, 0x10 -glabel L8010A850 -/* B819F0 8010A850 00101400 */ sll $v0, $s0, 0x10 -/* B819F4 8010A854 00001C00 */ sll $v1, $zero, 0x10 -/* B819F8 8010A858 00002400 */ sll $a0, $zero, 0x10 -/* B819FC 8010A85C 00021403 */ sra $v0, $v0, 0x10 -/* B81A00 8010A860 00042403 */ sra $a0, $a0, 0x10 -/* B81A04 8010A864 00031C03 */ sra $v1, $v1, 0x10 -/* B81A08 8010A868 2841003C */ slti $at, $v0, 0x3c -/* B81A0C 8010A86C 00002825 */ move $a1, $zero -/* B81A10 8010A870 A7A3007E */ sh $v1, 0x7e($sp) -/* B81A14 8010A874 A7A4007C */ sh $a0, 0x7c($sp) -/* B81A18 8010A878 14200014 */ bnez $at, .L8010A8CC -/* B81A1C 8010A87C 00009825 */ move $s3, $zero -/* B81A20 8010A880 24630001 */ addiu $v1, $v1, 1 -.L8010A884: -/* B81A24 8010A884 00031C00 */ sll $v1, $v1, 0x10 -/* B81A28 8010A888 00031C03 */ sra $v1, $v1, 0x10 -/* B81A2C 8010A88C 2861000A */ slti $at, $v1, 0xa -/* B81A30 8010A890 14200007 */ bnez $at, .L8010A8B0 -/* B81A34 8010A894 2442FFC4 */ addiu $v0, $v0, -0x3c -/* B81A38 8010A898 24840001 */ addiu $a0, $a0, 1 -/* B81A3C 8010A89C 2463FFF6 */ addiu $v1, $v1, -0xa -/* B81A40 8010A8A0 00042400 */ sll $a0, $a0, 0x10 -/* B81A44 8010A8A4 00031C00 */ sll $v1, $v1, 0x10 -/* B81A48 8010A8A8 00042403 */ sra $a0, $a0, 0x10 -/* B81A4C 8010A8AC 00031C03 */ sra $v1, $v1, 0x10 -.L8010A8B0: -/* B81A50 8010A8B0 00021400 */ sll $v0, $v0, 0x10 -/* B81A54 8010A8B4 00021403 */ sra $v0, $v0, 0x10 -/* B81A58 8010A8B8 2841003C */ slti $at, $v0, 0x3c -/* B81A5C 8010A8BC 5020FFF1 */ beql $at, $zero, .L8010A884 -/* B81A60 8010A8C0 24630001 */ addiu $v1, $v1, 1 -/* B81A64 8010A8C4 A7A4007C */ sh $a0, 0x7c($sp) -/* B81A68 8010A8C8 A7A3007E */ sh $v1, 0x7e($sp) -.L8010A8CC: -/* B81A6C 8010A8CC 2841000A */ slti $at, $v0, 0xa -/* B81A70 8010A8D0 A7A20082 */ sh $v0, 0x82($sp) -/* B81A74 8010A8D4 1420000B */ bnez $at, .L8010A904 -/* B81A78 8010A8D8 A7A50080 */ sh $a1, 0x80($sp) -.L8010A8DC: -/* B81A7C 8010A8DC 2442FFF6 */ addiu $v0, $v0, -0xa -/* B81A80 8010A8E0 00021400 */ sll $v0, $v0, 0x10 -/* B81A84 8010A8E4 24A50001 */ addiu $a1, $a1, 1 -/* B81A88 8010A8E8 00021403 */ sra $v0, $v0, 0x10 -/* B81A8C 8010A8EC 2841000A */ slti $at, $v0, 0xa -/* B81A90 8010A8F0 00052C00 */ sll $a1, $a1, 0x10 -/* B81A94 8010A8F4 1020FFF9 */ beqz $at, .L8010A8DC -/* B81A98 8010A8F8 00052C03 */ sra $a1, $a1, 0x10 -/* B81A9C 8010A8FC A7A50080 */ sh $a1, 0x80($sp) -/* B81AA0 8010A900 A7A20082 */ sh $v0, 0x82($sp) -.L8010A904: -/* B81AA4 8010A904 0013C840 */ sll $t9, $s3, 1 -.L8010A908: -/* B81AA8 8010A908 27AA007C */ addiu $t2, $sp, 0x7c -/* B81AAC 8010A90C 032A8021 */ addu $s0, $t9, $t2 -/* B81AB0 8010A910 86050000 */ lh $a1, ($s0) -/* B81AB4 8010A914 02F69021 */ addu $s2, $s7, $s6 -/* B81AB8 8010A918 34018000 */ li $at, 32768 -/* B81ABC 8010A91C 24A50010 */ addiu $a1, $a1, 0x10 -/* B81AC0 8010A920 30A500FF */ andi $a1, $a1, 0xff -/* B81AC4 8010A924 02419021 */ addu $s2, $s2, $at -/* B81AC8 8010A928 03C02025 */ move $a0, $fp -/* B81ACC 8010A92C 0C01BB98 */ jal Font_LoadChar -/* B81AD0 8010A930 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81AD4 8010A934 860B0000 */ lh $t3, ($s0) -/* B81AD8 8010A938 26D60001 */ addiu $s6, $s6, 1 -/* B81ADC 8010A93C 0016B400 */ sll $s6, $s6, 0x10 -/* B81AE0 8010A940 24010001 */ li $at, 1 -/* B81AE4 8010A944 256D0030 */ addiu $t5, $t3, 0x30 -/* B81AE8 8010A948 26B50080 */ addiu $s5, $s5, 0x80 -/* B81AEC 8010A94C A24D6306 */ sb $t5, 0x6306($s2) -/* B81AF0 8010A950 1661000E */ bne $s3, $at, .L8010A98C -/* B81AF4 8010A954 0016B403 */ sra $s6, $s6, 0x10 -/* B81AF8 8010A958 03C02025 */ move $a0, $fp -/* B81AFC 8010A95C 24050002 */ li $a1, 2 -/* B81B00 8010A960 0C01BB98 */ jal Font_LoadChar -/* B81B04 8010A964 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81B08 8010A968 02F67021 */ addu $t6, $s7, $s6 -/* B81B0C 8010A96C 26D60001 */ addiu $s6, $s6, 1 -/* B81B10 8010A970 25C17FFF */ addiu $at, $t6, 0x7fff -/* B81B14 8010A974 240C0022 */ li $t4, 34 -/* B81B18 8010A978 0016B400 */ sll $s6, $s6, 0x10 -/* B81B1C 8010A97C 26B50080 */ addiu $s5, $s5, 0x80 -/* B81B20 8010A980 A02C6307 */ sb $t4, 0x6307($at) -/* B81B24 8010A984 1000000C */ b .L8010A9B8 -/* B81B28 8010A988 0016B403 */ sra $s6, $s6, 0x10 -.L8010A98C: -/* B81B2C 8010A98C 24010003 */ li $at, 3 -/* B81B30 8010A990 16610009 */ bne $s3, $at, .L8010A9B8 -/* B81B34 8010A994 03C02025 */ move $a0, $fp -/* B81B38 8010A998 24050002 */ li $a1, 2 -/* B81B3C 8010A99C 0C01BB98 */ jal Font_LoadChar -/* B81B40 8010A9A0 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81B44 8010A9A4 02F67821 */ addu $t7, $s7, $s6 -/* B81B48 8010A9A8 25E17FFF */ addiu $at, $t7, 0x7fff -/* B81B4C 8010A9AC 24180022 */ li $t8, 34 -/* B81B50 8010A9B0 26B50080 */ addiu $s5, $s5, 0x80 -/* B81B54 8010A9B4 A0386307 */ sb $t8, 0x6307($at) -.L8010A9B8: -/* B81B58 8010A9B8 26730001 */ addiu $s3, $s3, 1 -/* B81B5C 8010A9BC 00139C00 */ sll $s3, $s3, 0x10 -/* B81B60 8010A9C0 00139C03 */ sra $s3, $s3, 0x10 -/* B81B64 8010A9C4 2A610004 */ slti $at, $s3, 4 -/* B81B68 8010A9C8 5420FFCF */ bnezl $at, .L8010A908 -/* B81B6C 8010A9CC 0013C840 */ sll $t9, $s3, 1 -/* B81B70 8010A9D0 100001A7 */ b .L8010B070 -/* B81B74 8010A9D4 8FB90054 */ lw $t9, 0x54($sp) -.L8010A9D8: -/* B81B78 8010A9D8 2401001F */ li $at, 31 -/* B81B7C 8010A9DC 1601006B */ bne $s0, $at, .L8010AB8C -/* B81B80 8010A9E0 3C048015 */ lui $a0, %hi(D_801541A8) # $a0, 0x8015 -/* B81B84 8010A9E4 248441A8 */ addiu $a0, %lo(D_801541A8) # addiu $a0, $a0, 0x41a8 -/* B81B88 8010A9E8 0C00084C */ jal osSyncPrintf -/* B81B8C 8010A9EC 00009825 */ move $s3, $zero -/* B81B90 8010A9F0 3C098016 */ lui $t1, %hi(gSaveContext+0xc) -/* B81B94 8010A9F4 9529E66C */ lhu $t1, %lo(gSaveContext+0xc)($t1) -/* B81B98 8010A9F8 00002025 */ move $a0, $zero -/* B81B9C 8010A9FC 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B81BA0 8010AA00 44894000 */ mtc1 $t1, $f8 -/* B81BA4 8010AA04 05210004 */ bgez $t1, .L8010AA18 -/* B81BA8 8010AA08 468042A0 */ cvt.s.w $f10, $f8 -/* B81BAC 8010AA0C 44818000 */ mtc1 $at, $f16 -/* B81BB0 8010AA10 00000000 */ nop -/* B81BB4 8010AA14 46105280 */ add.s $f10, $f10, $f16 -.L8010AA18: -/* B81BB8 8010AA18 3C013CB4 */ li $at, 0x3CB40000 # 0.000000 -/* B81BBC 8010AA1C 44819000 */ mtc1 $at, $f18 -/* B81BC0 8010AA20 3C014270 */ li $at, 0x42700000 # 0.000000 -/* B81BC4 8010AA24 44812000 */ mtc1 $at, $f4 -/* B81BC8 8010AA28 46125002 */ mul.s $f0, $f10, $f18 -/* B81BCC 8010AA2C A7A4007C */ sh $a0, 0x7c($sp) -/* B81BD0 8010AA30 46040183 */ div.s $f6, $f0, $f4 -/* B81BD4 8010AA34 4600040D */ trunc.w.s $f16, $f0 -/* B81BD8 8010AA38 44028000 */ mfc1 $v0, $f16 -/* B81BDC 8010AA3C 00000000 */ nop -/* B81BE0 8010AA40 00021400 */ sll $v0, $v0, 0x10 -/* B81BE4 8010AA44 00021403 */ sra $v0, $v0, 0x10 -/* B81BE8 8010AA48 4600320D */ trunc.w.s $f8, $f6 -/* B81BEC 8010AA4C 44034000 */ mfc1 $v1, $f8 -/* B81BF0 8010AA50 00000000 */ nop -/* B81BF4 8010AA54 00031C00 */ sll $v1, $v1, 0x10 -/* B81BF8 8010AA58 00031C03 */ sra $v1, $v1, 0x10 -/* B81BFC 8010AA5C 2861000A */ slti $at, $v1, 0xa -/* B81C00 8010AA60 1420000B */ bnez $at, .L8010AA90 -/* B81C04 8010AA64 A7A3007E */ sh $v1, 0x7e($sp) -.L8010AA68: -/* B81C08 8010AA68 2463FFF6 */ addiu $v1, $v1, -0xa -/* B81C0C 8010AA6C 00031C00 */ sll $v1, $v1, 0x10 -/* B81C10 8010AA70 24840001 */ addiu $a0, $a0, 1 -/* B81C14 8010AA74 00031C03 */ sra $v1, $v1, 0x10 -/* B81C18 8010AA78 2861000A */ slti $at, $v1, 0xa -/* B81C1C 8010AA7C 00042400 */ sll $a0, $a0, 0x10 -/* B81C20 8010AA80 1020FFF9 */ beqz $at, .L8010AA68 -/* B81C24 8010AA84 00042403 */ sra $a0, $a0, 0x10 -/* B81C28 8010AA88 A7A4007C */ sh $a0, 0x7c($sp) -/* B81C2C 8010AA8C A7A3007E */ sh $v1, 0x7e($sp) -.L8010AA90: -/* B81C30 8010AA90 2401003C */ li $at, 60 -/* B81C34 8010AA94 0041001A */ div $zero, $v0, $at -/* B81C38 8010AA98 00001010 */ mfhi $v0 -/* B81C3C 8010AA9C 00021400 */ sll $v0, $v0, 0x10 -/* B81C40 8010AAA0 00021403 */ sra $v0, $v0, 0x10 -/* B81C44 8010AAA4 2841000A */ slti $at, $v0, 0xa -/* B81C48 8010AAA8 00002825 */ move $a1, $zero -/* B81C4C 8010AAAC A7A20082 */ sh $v0, 0x82($sp) -/* B81C50 8010AAB0 1420000B */ bnez $at, .L8010AAE0 -/* B81C54 8010AAB4 A7A00080 */ sh $zero, 0x80($sp) -.L8010AAB8: -/* B81C58 8010AAB8 2442FFF6 */ addiu $v0, $v0, -0xa -/* B81C5C 8010AABC 00021400 */ sll $v0, $v0, 0x10 -/* B81C60 8010AAC0 24A50001 */ addiu $a1, $a1, 1 -/* B81C64 8010AAC4 00021403 */ sra $v0, $v0, 0x10 -/* B81C68 8010AAC8 2841000A */ slti $at, $v0, 0xa -/* B81C6C 8010AACC 00052C00 */ sll $a1, $a1, 0x10 -/* B81C70 8010AAD0 1020FFF9 */ beqz $at, .L8010AAB8 -/* B81C74 8010AAD4 00052C03 */ sra $a1, $a1, 0x10 -/* B81C78 8010AAD8 A7A50080 */ sh $a1, 0x80($sp) -/* B81C7C 8010AADC A7A20082 */ sh $v0, 0x82($sp) -.L8010AAE0: -/* B81C80 8010AAE0 00135840 */ sll $t3, $s3, 1 -.L8010AAE4: -/* B81C84 8010AAE4 27AD007C */ addiu $t5, $sp, 0x7c -/* B81C88 8010AAE8 016D8021 */ addu $s0, $t3, $t5 -/* B81C8C 8010AAEC 86050000 */ lh $a1, ($s0) -/* B81C90 8010AAF0 02F69021 */ addu $s2, $s7, $s6 -/* B81C94 8010AAF4 34018000 */ li $at, 32768 -/* B81C98 8010AAF8 24A50010 */ addiu $a1, $a1, 0x10 -/* B81C9C 8010AAFC 30A500FF */ andi $a1, $a1, 0xff -/* B81CA0 8010AB00 02419021 */ addu $s2, $s2, $at -/* B81CA4 8010AB04 03C02025 */ move $a0, $fp -/* B81CA8 8010AB08 0C01BB98 */ jal Font_LoadChar -/* B81CAC 8010AB0C 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81CB0 8010AB10 860C0000 */ lh $t4, ($s0) -/* B81CB4 8010AB14 26D60001 */ addiu $s6, $s6, 1 -/* B81CB8 8010AB18 0016B400 */ sll $s6, $s6, 0x10 -/* B81CBC 8010AB1C 24010001 */ li $at, 1 -/* B81CC0 8010AB20 258E0030 */ addiu $t6, $t4, 0x30 -/* B81CC4 8010AB24 26B50080 */ addiu $s5, $s5, 0x80 -/* B81CC8 8010AB28 A24E6306 */ sb $t6, 0x6306($s2) -/* B81CCC 8010AB2C 1661000D */ bne $s3, $at, .L8010AB64 -/* B81CD0 8010AB30 0016B403 */ sra $s6, $s6, 0x10 -/* B81CD4 8010AB34 03C02025 */ move $a0, $fp -/* B81CD8 8010AB38 2405001A */ li $a1, 26 -/* B81CDC 8010AB3C 0C01BB98 */ jal Font_LoadChar -/* B81CE0 8010AB40 32A6FFFF */ andi $a2, $s5, 0xffff -/* B81CE4 8010AB44 02F67821 */ addu $t7, $s7, $s6 -/* B81CE8 8010AB48 26D60001 */ addiu $s6, $s6, 1 -/* B81CEC 8010AB4C 25E17FFF */ addiu $at, $t7, 0x7fff -/* B81CF0 8010AB50 2418003A */ li $t8, 58 -/* B81CF4 8010AB54 0016B400 */ sll $s6, $s6, 0x10 -/* B81CF8 8010AB58 26B50080 */ addiu $s5, $s5, 0x80 -/* B81CFC 8010AB5C A0386307 */ sb $t8, 0x6307($at) -/* B81D00 8010AB60 0016B403 */ sra $s6, $s6, 0x10 -.L8010AB64: -/* B81D04 8010AB64 26730001 */ addiu $s3, $s3, 1 -/* B81D08 8010AB68 00139C00 */ sll $s3, $s3, 0x10 -/* B81D0C 8010AB6C 00139C03 */ sra $s3, $s3, 0x10 -/* B81D10 8010AB70 2A610004 */ slti $at, $s3, 4 -/* B81D14 8010AB74 5420FFDB */ bnezl $at, .L8010AAE4 -/* B81D18 8010AB78 00135840 */ sll $t3, $s3, 1 -/* B81D1C 8010AB7C 26D6FFFF */ addiu $s6, $s6, -1 -/* B81D20 8010AB80 0016B400 */ sll $s6, $s6, 0x10 -/* B81D24 8010AB84 10000139 */ b .L8010B06C -/* B81D28 8010AB88 0016B403 */ sra $s6, $s6, 0x10 -.L8010AB8C: -/* B81D2C 8010AB8C 24010013 */ li $at, 19 -/* B81D30 8010AB90 16010026 */ bne $s0, $at, .L8010AC2C -/* B81D34 8010AB94 8FA30054 */ lw $v1, 0x54($sp) -/* B81D38 8010AB98 946963CE */ lhu $t1, 0x63ce($v1) -/* B81D3C 8010AB9C 26C20001 */ addiu $v0, $s6, 1 -/* B81D40 8010ABA0 00023C00 */ sll $a3, $v0, 0x10 -/* B81D44 8010ABA4 03C9C821 */ addu $t9, $fp, $t1 -/* B81D48 8010ABA8 272A7FFF */ addiu $t2, $t9, 0x7fff -/* B81D4C 8010ABAC 914A5C8A */ lbu $t2, 0x5c8a($t2) -/* B81D50 8010ABB0 00073C03 */ sra $a3, $a3, 0x10 -/* B81D54 8010ABB4 02E75821 */ addu $t3, $s7, $a3 -/* B81D58 8010ABB8 25617FFF */ addiu $at, $t3, 0x7fff -/* B81D5C 8010ABBC A02A6307 */ sb $t2, 0x6307($at) -/* B81D60 8010ABC0 946C63CE */ lhu $t4, 0x63ce($v1) -/* B81D64 8010ABC4 0002B400 */ sll $s6, $v0, 0x10 -/* B81D68 8010ABC8 0016B403 */ sra $s6, $s6, 0x10 -/* B81D6C 8010ABCC 02F66821 */ addu $t5, $s7, $s6 -/* B81D70 8010ABD0 03CC7021 */ addu $t6, $fp, $t4 -/* B81D74 8010ABD4 25C67FFF */ addiu $a2, $t6, 0x7fff -/* B81D78 8010ABD8 25A57FFF */ addiu $a1, $t5, 0x7fff -/* B81D7C 8010ABDC 3C048015 */ lui $a0, %hi(D_801541B8) # $a0, 0x8015 -/* B81D80 8010ABE0 248441B8 */ addiu $a0, %lo(D_801541B8) # addiu $a0, $a0, 0x41b8 -/* B81D84 8010ABE4 90A56307 */ lbu $a1, 0x6307($a1) -/* B81D88 8010ABE8 0C00084C */ jal osSyncPrintf -/* B81D8C 8010ABEC 90C65C8A */ lbu $a2, 0x5c8a($a2) -/* B81D90 8010ABF0 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* B81D94 8010ABF4 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* B81D98 8010ABF8 8FB80054 */ lw $t8, 0x54($sp) -/* B81D9C 8010ABFC 8FA40098 */ lw $a0, 0x98($sp) -/* B81DA0 8010AC00 87260F16 */ lh $a2, 0xf16($t9) -/* B81DA4 8010AC04 970F63CE */ lhu $t7, 0x63ce($t8) -/* B81DA8 8010AC08 24C6000A */ addiu $a2, $a2, 0xa -/* B81DAC 8010AC0C 03CF4821 */ addu $t1, $fp, $t7 -/* B81DB0 8010AC10 25257FFF */ addiu $a1, $t1, 0x7fff -/* B81DB4 8010AC14 00063400 */ sll $a2, $a2, 0x10 -/* B81DB8 8010AC18 00063403 */ sra $a2, $a2, 0x10 -/* B81DBC 8010AC1C 0C04265A */ jal func_80109968 -/* B81DC0 8010AC20 90A55C8A */ lbu $a1, 0x5c8a($a1) -/* B81DC4 8010AC24 10000112 */ b .L8010B070 -/* B81DC8 8010AC28 8FB90054 */ lw $t9, 0x54($sp) -.L8010AC2C: -/* B81DCC 8010AC2C 24010015 */ li $at, 21 -/* B81DD0 8010AC30 16010051 */ bne $s0, $at, .L8010AD78 -/* B81DD4 8010AC34 8FA20054 */ lw $v0, 0x54($sp) -/* B81DD8 8010AC38 944A63CE */ lhu $t2, 0x63ce($v0) -/* B81DDC 8010AC3C 26E17FFF */ addiu $at, $s7, 0x7fff -/* B81DE0 8010AC40 3C10008C */ lui $s0, %hi(_message_texture_staticSegmentRomStart) # $s0, 0x8c -/* B81DE4 8010AC44 03CA5821 */ addu $t3, $fp, $t2 -/* B81DE8 8010AC48 256D7FFF */ addiu $t5, $t3, 0x7fff -/* B81DEC 8010AC4C 91AD5C8A */ lbu $t5, 0x5c8a($t5) -/* B81DF0 8010AC50 2610F000 */ addiu $s0, %lo(_message_texture_staticSegmentRomStart) # addiu $s0, $s0, -0x1000 -/* B81DF4 8010AC54 3C078015 */ lui $a3, %hi(D_801541CC) # $a3, 0x8015 -/* B81DF8 8010AC58 000D6040 */ sll $t4, $t5, 1 -/* B81DFC 8010AC5C A42C63F7 */ sh $t4, 0x63f7($at) -/* B81E00 8010AC60 944E63CE */ lhu $t6, 0x63ce($v0) -/* B81E04 8010AC64 24E741CC */ addiu $a3, %lo(D_801541CC) # addiu $a3, $a3, 0x41cc -/* B81E08 8010AC68 24060900 */ li $a2, 2304 -/* B81E0C 8010AC6C 03CEC021 */ addu $t8, $fp, $t6 -/* B81E10 8010AC70 270F7FFF */ addiu $t7, $t8, 0x7fff -/* B81E14 8010AC74 91EF5C8B */ lbu $t7, 0x5c8b($t7) -/* B81E18 8010AC78 31E900F0 */ andi $t1, $t7, 0xf0 -/* B81E1C 8010AC7C 0009C903 */ sra $t9, $t1, 4 -/* B81E20 8010AC80 A03963F9 */ sb $t9, 0x63f9($at) -/* B81E24 8010AC84 944A63CE */ lhu $t2, 0x63ce($v0) -/* B81E28 8010AC88 03CA5821 */ addu $t3, $fp, $t2 -/* B81E2C 8010AC8C 256D7FFF */ addiu $t5, $t3, 0x7fff -/* B81E30 8010AC90 91AD5C8B */ lbu $t5, 0x5c8b($t5) -/* B81E34 8010AC94 31AC000F */ andi $t4, $t5, 0xf -/* B81E38 8010AC98 A02C63FA */ sb $t4, 0x63fa($at) -/* B81E3C 8010AC9C 944E63CE */ lhu $t6, 0x63ce($v0) -/* B81E40 8010ACA0 03CEC021 */ addu $t8, $fp, $t6 -/* B81E44 8010ACA4 270F7FFF */ addiu $t7, $t8, 0x7fff -/* B81E48 8010ACA8 91EF5C8C */ lbu $t7, 0x5c8c($t7) -/* B81E4C 8010ACAC 31E900F0 */ andi $t1, $t7, 0xf0 -/* B81E50 8010ACB0 0009C903 */ sra $t9, $t1, 4 -/* B81E54 8010ACB4 A03963FB */ sb $t9, 0x63fb($at) -/* B81E58 8010ACB8 944A63CE */ lhu $t2, 0x63ce($v0) -/* B81E5C 8010ACBC 24090002 */ li $t1, 2 -/* B81E60 8010ACC0 240F0726 */ li $t7, 1830 -/* B81E64 8010ACC4 03CA5821 */ addu $t3, $fp, $t2 -/* B81E68 8010ACC8 256D7FFF */ addiu $t5, $t3, 0x7fff -/* B81E6C 8010ACCC 91AD5C8C */ lbu $t5, 0x5c8c($t5) -/* B81E70 8010ACD0 31AC000F */ andi $t4, $t5, 0xf -/* B81E74 8010ACD4 A02C63FC */ sb $t4, 0x63fc($at) -/* B81E78 8010ACD8 944E63F6 */ lhu $t6, 0x63f6($v0) -/* B81E7C 8010ACDC 8C4462B0 */ lw $a0, 0x62b0($v0) -/* B81E80 8010ACE0 A7A90086 */ sh $t1, 0x86($sp) -/* B81E84 8010ACE4 000EC0C0 */ sll $t8, $t6, 3 -/* B81E88 8010ACE8 030EC021 */ addu $t8, $t8, $t6 -/* B81E8C 8010ACEC 0018C200 */ sll $t8, $t8, 8 -/* B81E90 8010ACF0 02182821 */ addu $a1, $s0, $t8 -/* B81E94 8010ACF4 AFAF0010 */ sw $t7, 0x10($sp) -/* B81E98 8010ACF8 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B81E9C 8010ACFC 24841000 */ addiu $a0, $a0, 0x1000 -/* B81EA0 8010AD00 8FA20054 */ lw $v0, 0x54($sp) -/* B81EA4 8010AD04 3C078015 */ lui $a3, %hi(D_801541E0) # $a3, 0x8015 -/* B81EA8 8010AD08 240B072A */ li $t3, 1834 -/* B81EAC 8010AD0C 945963F6 */ lhu $t9, 0x63f6($v0) -/* B81EB0 8010AD10 8C4462B0 */ lw $a0, 0x62b0($v0) -/* B81EB4 8010AD14 AFAB0010 */ sw $t3, 0x10($sp) -/* B81EB8 8010AD18 001950C0 */ sll $t2, $t9, 3 -/* B81EBC 8010AD1C 01595021 */ addu $t2, $t2, $t9 -/* B81EC0 8010AD20 000A5200 */ sll $t2, $t2, 8 -/* B81EC4 8010AD24 020A2821 */ addu $a1, $s0, $t2 -/* B81EC8 8010AD28 24A50900 */ addiu $a1, $a1, 0x900 -/* B81ECC 8010AD2C 24E741E0 */ addiu $a3, %lo(D_801541E0) # addiu $a3, $a3, 0x41e0 -/* B81ED0 8010AD30 24060900 */ li $a2, 2304 -/* B81ED4 8010AD34 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B81ED8 8010AD38 24841900 */ addiu $a0, $a0, 0x1900 -/* B81EDC 8010AD3C 8FAD0054 */ lw $t5, 0x54($sp) -/* B81EE0 8010AD40 26E17FFF */ addiu $at, $s7, 0x7fff -/* B81EE4 8010AD44 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B81EE8 8010AD48 95AC63CE */ lhu $t4, 0x63ce($t5) -/* B81EEC 8010AD4C 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* B81EF0 8010AD50 24090032 */ li $t1, 50 -/* B81EF4 8010AD54 258E0003 */ addiu $t6, $t4, 3 -/* B81EF8 8010AD58 A42E63CF */ sh $t6, 0x63cf($at) -/* B81EFC 8010AD5C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* B81F00 8010AD60 84580F16 */ lh $t8, 0xf16($v0) -/* B81F04 8010AD64 270F0008 */ addiu $t7, $t8, 8 -/* B81F08 8010AD68 A44F0B0E */ sh $t7, 0xb0e($v0) -/* B81F0C 8010AD6C 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* B81F10 8010AD70 100000BE */ b .L8010B06C -/* B81F14 8010AD74 A7290B00 */ sh $t1, 0xb00($t9) -.L8010AD78: -/* B81F18 8010AD78 24010005 */ li $at, 5 -/* B81F1C 8010AD7C 16010012 */ bne $s0, $at, .L8010ADC8 -/* B81F20 8010AD80 26C20001 */ addiu $v0, $s6, 1 -/* B81F24 8010AD84 8FAA0054 */ lw $t2, 0x54($sp) -/* B81F28 8010AD88 00021C00 */ sll $v1, $v0, 0x10 -/* B81F2C 8010AD8C 26E17FFF */ addiu $at, $s7, 0x7fff -/* B81F30 8010AD90 954763CE */ lhu $a3, 0x63ce($t2) -/* B81F34 8010AD94 00031C03 */ sra $v1, $v1, 0x10 -/* B81F38 8010AD98 02E36021 */ addu $t4, $s7, $v1 -/* B81F3C 8010AD9C 24E70001 */ addiu $a3, $a3, 1 -/* B81F40 8010ADA0 30E7FFFF */ andi $a3, $a3, 0xffff -/* B81F44 8010ADA4 03C75821 */ addu $t3, $fp, $a3 -/* B81F48 8010ADA8 256D7FFF */ addiu $t5, $t3, 0x7fff -/* B81F4C 8010ADAC A42763CF */ sh $a3, 0x63cf($at) -/* B81F50 8010ADB0 91AD5C89 */ lbu $t5, 0x5c89($t5) -/* B81F54 8010ADB4 25817FFF */ addiu $at, $t4, 0x7fff -/* B81F58 8010ADB8 0002B400 */ sll $s6, $v0, 0x10 -/* B81F5C 8010ADBC 0016B403 */ sra $s6, $s6, 0x10 -/* B81F60 8010ADC0 100000AA */ b .L8010B06C -/* B81F64 8010ADC4 A02D6307 */ sb $t5, 0x6307($at) -.L8010ADC8: -/* B81F68 8010ADC8 24010001 */ li $at, 1 -/* B81F6C 8010ADCC 16010004 */ bne $s0, $at, .L8010ADE0 -/* B81F70 8010ADD0 87AE0086 */ lh $t6, 0x86($sp) -/* B81F74 8010ADD4 25D80001 */ addiu $t8, $t6, 1 -/* B81F78 8010ADD8 100000A4 */ b .L8010B06C -/* B81F7C 8010ADDC A7B80086 */ sh $t8, 0x86($sp) -.L8010ADE0: -/* B81F80 8010ADE0 24010008 */ li $at, 8 -/* B81F84 8010ADE4 120100A1 */ beq $s0, $at, .L8010B06C -/* B81F88 8010ADE8 24010009 */ li $at, 9 -/* B81F8C 8010ADEC 1201009F */ beq $s0, $at, .L8010B06C -/* B81F90 8010ADF0 2401000D */ li $at, 13 -/* B81F94 8010ADF4 1201009D */ beq $s0, $at, .L8010B06C -/* B81F98 8010ADF8 24010010 */ li $at, 16 -/* B81F9C 8010ADFC 1201009B */ beq $s0, $at, .L8010B06C -/* B81FA0 8010AE00 2401000A */ li $at, 10 -/* B81FA4 8010AE04 12010099 */ beq $s0, $at, .L8010B06C -/* B81FA8 8010AE08 2401001A */ li $at, 26 -/* B81FAC 8010AE0C 12010097 */ beq $s0, $at, .L8010B06C -/* B81FB0 8010AE10 2401000E */ li $at, 14 -/* B81FB4 8010AE14 1601001A */ bne $s0, $at, .L8010AE80 -/* B81FB8 8010AE18 3C028015 */ lui $v0, %hi(D_8014B2F0) # $v0, 0x8015 -/* B81FBC 8010AE1C 2442B2F0 */ addiu $v0, %lo(D_8014B2F0) # addiu $v0, $v0, -0x4d10 -/* B81FC0 8010AE20 240F0001 */ li $t7, 1 -/* B81FC4 8010AE24 A44F0000 */ sh $t7, ($v0) -/* B81FC8 8010AE28 3C048015 */ lui $a0, %hi(D_801541F4) # $a0, 0x8015 -/* B81FCC 8010AE2C 248441F4 */ addiu $a0, %lo(D_801541F4) # addiu $a0, $a0, 0x41f4 -/* B81FD0 8010AE30 0C00084C */ jal osSyncPrintf -/* B81FD4 8010AE34 84450000 */ lh $a1, ($v0) -/* B81FD8 8010AE38 8FA90054 */ lw $t1, 0x54($sp) -/* B81FDC 8010AE3C 26C20001 */ addiu $v0, $s6, 1 -/* B81FE0 8010AE40 00021C00 */ sll $v1, $v0, 0x10 -/* B81FE4 8010AE44 952763CE */ lhu $a3, 0x63ce($t1) -/* B81FE8 8010AE48 26E17FFF */ addiu $at, $s7, 0x7fff -/* B81FEC 8010AE4C 00031C03 */ sra $v1, $v1, 0x10 -/* B81FF0 8010AE50 24E70001 */ addiu $a3, $a3, 1 -/* B81FF4 8010AE54 30E7FFFF */ andi $a3, $a3, 0xffff -/* B81FF8 8010AE58 03C7C821 */ addu $t9, $fp, $a3 -/* B81FFC 8010AE5C 272A7FFF */ addiu $t2, $t9, 0x7fff -/* B82000 8010AE60 A42763CF */ sh $a3, 0x63cf($at) -/* B82004 8010AE64 914A5C89 */ lbu $t2, 0x5c89($t2) -/* B82008 8010AE68 02E35821 */ addu $t3, $s7, $v1 -/* B8200C 8010AE6C 25617FFF */ addiu $at, $t3, 0x7fff -/* B82010 8010AE70 0002B400 */ sll $s6, $v0, 0x10 -/* B82014 8010AE74 0016B403 */ sra $s6, $s6, 0x10 -/* B82018 8010AE78 1000007C */ b .L8010B06C -/* B8201C 8010AE7C A02A6307 */ sb $t2, 0x6307($at) -.L8010AE80: -/* B82020 8010AE80 24010011 */ li $at, 17 -/* B82024 8010AE84 1601002A */ bne $s0, $at, .L8010AF30 -/* B82028 8010AE88 3C028015 */ lui $v0, %hi(D_8014B2F0) # $v0, 0x8015 -/* B8202C 8010AE8C 2442B2F0 */ addiu $v0, %lo(D_8014B2F0) # addiu $v0, $v0, -0x4d10 -/* B82030 8010AE90 240D0001 */ li $t5, 1 -/* B82034 8010AE94 A44D0000 */ sh $t5, ($v0) -/* B82038 8010AE98 3C048015 */ lui $a0, %hi(D_80154214) # $a0, 0x8015 -/* B8203C 8010AE9C 24844214 */ addiu $a0, %lo(D_80154214) # addiu $a0, $a0, 0x4214 -/* B82040 8010AEA0 0C00084C */ jal osSyncPrintf -/* B82044 8010AEA4 84450000 */ lh $a1, ($v0) -/* B82048 8010AEA8 8FAC0054 */ lw $t4, 0x54($sp) -/* B8204C 8010AEAC 26C20001 */ addiu $v0, $s6, 1 -/* B82050 8010AEB0 26E17FFF */ addiu $at, $s7, 0x7fff -/* B82054 8010AEB4 958763CE */ lhu $a3, 0x63ce($t4) -/* B82058 8010AEB8 00021C00 */ sll $v1, $v0, 0x10 -/* B8205C 8010AEBC 00031C03 */ sra $v1, $v1, 0x10 -/* B82060 8010AEC0 24E70001 */ addiu $a3, $a3, 1 -/* B82064 8010AEC4 30E7FFFF */ andi $a3, $a3, 0xffff -/* B82068 8010AEC8 03C77021 */ addu $t6, $fp, $a3 -/* B8206C 8010AECC 25D87FFF */ addiu $t8, $t6, 0x7fff -/* B82070 8010AED0 A42763CF */ sh $a3, 0x63cf($at) -/* B82074 8010AED4 93185C89 */ lbu $t8, 0x5c89($t8) -/* B82078 8010AED8 02E37821 */ addu $t7, $s7, $v1 -/* B8207C 8010AEDC 25E17FFF */ addiu $at, $t7, 0x7fff -/* B82080 8010AEE0 A0386307 */ sb $t8, 0x6307($at) -/* B82084 8010AEE4 8FA90054 */ lw $t1, 0x54($sp) -/* B82088 8010AEE8 0040B025 */ move $s6, $v0 -/* B8208C 8010AEEC 26C20001 */ addiu $v0, $s6, 1 -/* B82090 8010AEF0 952763CE */ lhu $a3, 0x63ce($t1) -/* B82094 8010AEF4 00021C00 */ sll $v1, $v0, 0x10 -/* B82098 8010AEF8 26E17FFF */ addiu $at, $s7, 0x7fff -/* B8209C 8010AEFC 24E70001 */ addiu $a3, $a3, 1 -/* B820A0 8010AF00 30E7FFFF */ andi $a3, $a3, 0xffff -/* B820A4 8010AF04 03C7C821 */ addu $t9, $fp, $a3 -/* B820A8 8010AF08 272A7FFF */ addiu $t2, $t9, 0x7fff -/* B820AC 8010AF0C A42763CF */ sh $a3, 0x63cf($at) -/* B820B0 8010AF10 00031C03 */ sra $v1, $v1, 0x10 -/* B820B4 8010AF14 914A5C89 */ lbu $t2, 0x5c89($t2) -/* B820B8 8010AF18 02E35821 */ addu $t3, $s7, $v1 -/* B820BC 8010AF1C 25617FFF */ addiu $at, $t3, 0x7fff -/* B820C0 8010AF20 0002B400 */ sll $s6, $v0, 0x10 -/* B820C4 8010AF24 0016B403 */ sra $s6, $s6, 0x10 -/* B820C8 8010AF28 10000050 */ b .L8010B06C -/* B820CC 8010AF2C A02A6307 */ sb $t2, 0x6307($at) -.L8010AF30: -/* B820D0 8010AF30 24010006 */ li $at, 6 -/* B820D4 8010AF34 12010004 */ beq $s0, $at, .L8010AF48 -/* B820D8 8010AF38 26C20001 */ addiu $v0, $s6, 1 -/* B820DC 8010AF3C 24010014 */ li $at, 20 -/* B820E0 8010AF40 56010013 */ bnel $s0, $at, .L8010AF90 -/* B820E4 8010AF44 24010012 */ li $at, 18 -.L8010AF48: -/* B820E8 8010AF48 8FAD0054 */ lw $t5, 0x54($sp) -/* B820EC 8010AF4C 00021C00 */ sll $v1, $v0, 0x10 -/* B820F0 8010AF50 26E17FFF */ addiu $at, $s7, 0x7fff -/* B820F4 8010AF54 95A763CE */ lhu $a3, 0x63ce($t5) -/* B820F8 8010AF58 00031C03 */ sra $v1, $v1, 0x10 -/* B820FC 8010AF5C 02E37821 */ addu $t7, $s7, $v1 -/* B82100 8010AF60 24E70001 */ addiu $a3, $a3, 1 -/* B82104 8010AF64 30E7FFFF */ andi $a3, $a3, 0xffff -/* B82108 8010AF68 03C76021 */ addu $t4, $fp, $a3 -/* B8210C 8010AF6C 258E7FFF */ addiu $t6, $t4, 0x7fff -/* B82110 8010AF70 A42763CF */ sh $a3, 0x63cf($at) -/* B82114 8010AF74 91D85C89 */ lbu $t8, 0x5c89($t6) -/* B82118 8010AF78 25E17FFF */ addiu $at, $t7, 0x7fff -/* B8211C 8010AF7C 0002B400 */ sll $s6, $v0, 0x10 -/* B82120 8010AF80 0016B403 */ sra $s6, $s6, 0x10 -/* B82124 8010AF84 10000039 */ b .L8010B06C -/* B82128 8010AF88 A0386307 */ sb $t8, 0x6307($at) -/* B8212C 8010AF8C 24010012 */ li $at, 18 -.L8010AF90: -/* B82130 8010AF90 16010022 */ bne $s0, $at, .L8010B01C -/* B82134 8010AF94 26C20001 */ addiu $v0, $s6, 1 -/* B82138 8010AF98 8FA90054 */ lw $t1, 0x54($sp) -/* B8213C 8010AF9C 26E17FFF */ addiu $at, $s7, 0x7fff -/* B82140 8010AFA0 00021C00 */ sll $v1, $v0, 0x10 -/* B82144 8010AFA4 952763CE */ lhu $a3, 0x63ce($t1) -/* B82148 8010AFA8 00031C03 */ sra $v1, $v1, 0x10 -/* B8214C 8010AFAC 02E35821 */ addu $t3, $s7, $v1 -/* B82150 8010AFB0 24E70001 */ addiu $a3, $a3, 1 -/* B82154 8010AFB4 30E7FFFF */ andi $a3, $a3, 0xffff -/* B82158 8010AFB8 03C7C821 */ addu $t9, $fp, $a3 -/* B8215C 8010AFBC 272A7FFF */ addiu $t2, $t9, 0x7fff -/* B82160 8010AFC0 A42763CF */ sh $a3, 0x63cf($at) -/* B82164 8010AFC4 914A5C89 */ lbu $t2, 0x5c89($t2) -/* B82168 8010AFC8 25617FFF */ addiu $at, $t3, 0x7fff -/* B8216C 8010AFCC 0040B025 */ move $s6, $v0 -/* B82170 8010AFD0 A02A6307 */ sb $t2, 0x6307($at) -/* B82174 8010AFD4 8FAD0054 */ lw $t5, 0x54($sp) -/* B82178 8010AFD8 26C20001 */ addiu $v0, $s6, 1 -/* B8217C 8010AFDC 00021C00 */ sll $v1, $v0, 0x10 -/* B82180 8010AFE0 95A763CE */ lhu $a3, 0x63ce($t5) -/* B82184 8010AFE4 26E17FFF */ addiu $at, $s7, 0x7fff -/* B82188 8010AFE8 00031C03 */ sra $v1, $v1, 0x10 -/* B8218C 8010AFEC 24E70001 */ addiu $a3, $a3, 1 -/* B82190 8010AFF0 30E7FFFF */ andi $a3, $a3, 0xffff -/* B82194 8010AFF4 03C76021 */ addu $t4, $fp, $a3 -/* B82198 8010AFF8 258E7FFF */ addiu $t6, $t4, 0x7fff -/* B8219C 8010AFFC A42763CF */ sh $a3, 0x63cf($at) -/* B821A0 8010B000 91CE5C89 */ lbu $t6, 0x5c89($t6) -/* B821A4 8010B004 02E3C021 */ addu $t8, $s7, $v1 -/* B821A8 8010B008 27017FFF */ addiu $at, $t8, 0x7fff -/* B821AC 8010B00C 0002B400 */ sll $s6, $v0, 0x10 -/* B821B0 8010B010 0016B403 */ sra $s6, $s6, 0x10 -/* B821B4 8010B014 10000015 */ b .L8010B06C -/* B821B8 8010B018 A02E6307 */ sb $t6, 0x6307($at) -.L8010B01C: -/* B821BC 8010B01C 2401001B */ li $at, 27 -/* B821C0 8010B020 16010004 */ bne $s0, $at, .L8010B034 -/* B821C4 8010B024 240F0002 */ li $t7, 2 -/* B821C8 8010B028 26E17FFF */ addiu $at, $s7, 0x7fff -/* B821CC 8010B02C 1000000F */ b .L8010B06C -/* B821D0 8010B030 A02F63E7 */ sb $t7, 0x63e7($at) -.L8010B034: -/* B821D4 8010B034 2401001C */ li $at, 28 -/* B821D8 8010B038 16010004 */ bne $s0, $at, .L8010B04C -/* B821DC 8010B03C 24090003 */ li $t1, 3 -/* B821E0 8010B040 26E17FFF */ addiu $at, $s7, 0x7fff -/* B821E4 8010B044 10000009 */ b .L8010B06C -/* B821E8 8010B048 A02963E7 */ sb $t1, 0x63e7($at) -.L8010B04C: -/* B821EC 8010B04C 24010020 */ li $at, 32 -/* B821F0 8010B050 12010006 */ beq $s0, $at, .L8010B06C -/* B821F4 8010B054 03C02025 */ move $a0, $fp -/* B821F8 8010B058 2605FFE0 */ addiu $a1, $s0, -0x20 -/* B821FC 8010B05C 30A500FF */ andi $a1, $a1, 0xff -/* B82200 8010B060 0C01BB98 */ jal Font_LoadChar -/* B82204 8010B064 32A6FFFF */ andi $a2, $s5, 0xffff -/* B82208 8010B068 26B50080 */ addiu $s5, $s5, 0x80 -.L8010B06C: -glabel L8010B06C -/* B8220C 8010B06C 8FB90054 */ lw $t9, 0x54($sp) -.L8010B070: -/* B82210 8010B070 26D60001 */ addiu $s6, $s6, 1 -/* B82214 8010B074 0016B400 */ sll $s6, $s6, 0x10 -/* B82218 8010B078 972A63CE */ lhu $t2, 0x63ce($t9) -/* B8221C 8010B07C 26E17FFF */ addiu $at, $s7, 0x7fff -/* B82220 8010B080 0016B403 */ sra $s6, $s6, 0x10 -/* B82224 8010B084 254B0001 */ addiu $t3, $t2, 1 -/* B82228 8010B088 1000FACE */ b .L80109BC4 -/* B8222C 8010B08C A42B63CF */ sh $t3, 0x63cf($at) -.L8010B090: -/* B82230 8010B090 8FBF0044 */ lw $ra, 0x44($sp) -.L8010B094: -/* B82234 8010B094 8FB00020 */ lw $s0, 0x20($sp) -/* B82238 8010B098 8FB10024 */ lw $s1, 0x24($sp) -/* B8223C 8010B09C 8FB20028 */ lw $s2, 0x28($sp) -/* B82240 8010B0A0 8FB3002C */ lw $s3, 0x2c($sp) -/* B82244 8010B0A4 8FB40030 */ lw $s4, 0x30($sp) -/* B82248 8010B0A8 8FB50034 */ lw $s5, 0x34($sp) -/* B8224C 8010B0AC 8FB60038 */ lw $s6, 0x38($sp) -/* B82250 8010B0B0 8FB7003C */ lw $s7, 0x3c($sp) -/* B82254 8010B0B4 8FBE0040 */ lw $fp, 0x40($sp) -/* B82258 8010B0B8 03E00008 */ jr $ra -/* B8225C 8010B0BC 27BD0098 */ addiu $sp, $sp, 0x98 \ No newline at end of file diff --git a/asm/non_matchings/code/z_message_PAL/func_8010B0C0.s b/asm/non_matchings/code/z_message_PAL/func_8010B0C0.s deleted file mode 100644 index 2305efffc3..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010B0C0.s +++ /dev/null @@ -1,434 +0,0 @@ -.rdata -glabel D_80154230 - .asciz "\x1b[33m" - .balign 4 - -glabel D_80154238 - .asciz "???????????????? z_message.c ??????????????????\n" - .balign 4 - -glabel D_80154290 - .asciz "\x1b[m" - .balign 4 - -glabel D_80154294 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801542A8 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801542BC - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801542D0 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801542E4 - # Text Box Type=%d - .asciz "吹き出し種類=%d\n" - .balign 4 - -glabel D_801542F8 - .asciz "../z_message_PAL.c" - .balign 4 - -.text -glabel func_8010B0C0 -/* B82260 8010B0C0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* B82264 8010B0C4 3C0F0001 */ lui $t7, 1 -/* B82268 8010B0C8 AFBF0024 */ sw $ra, 0x24($sp) -/* B8226C 8010B0CC AFB00020 */ sw $s0, 0x20($sp) -/* B82270 8010B0D0 AFA40048 */ sw $a0, 0x48($sp) -/* B82274 8010B0D4 AFA5004C */ sw $a1, 0x4c($sp) -/* B82278 8010B0D8 01E47821 */ addu $t7, $t7, $a0 -/* B8227C 8010B0DC 91EF03DC */ lbu $t7, 0x3dc($t7) -/* B82280 8010B0E0 3C108016 */ lui $s0, %hi(gGameInfo) # $s0, 0x8016 -/* B82284 8010B0E4 30A7FFFF */ andi $a3, $a1, 0xffff -/* B82288 8010B0E8 15E00005 */ bnez $t7, .L8010B100 -/* B8228C 8010B0EC 2610FA90 */ addiu $s0, %lo(gGameInfo) # addiu $s0, $s0, -0x570 -/* B82290 8010B0F0 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016 -/* B82294 8010B0F4 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0 -/* B82298 8010B0F8 94B813EA */ lhu $t8, 0x13ea($a1) -/* B8229C 8010B0FC A4B813EE */ sh $t8, 0x13ee($a1) -.L8010B100: -/* B822A0 8010B100 8E030000 */ lw $v1, ($s0) -/* B822A4 8010B104 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016 -/* B822A8 8010B108 24010010 */ li $at, 16 -/* B822AC 8010B10C 847904B2 */ lh $t9, 0x4b2($v1) -/* B822B0 8010B110 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0 -/* B822B4 8010B114 24040005 */ li $a0, 5 -/* B822B8 8010B118 17210007 */ bne $t9, $at, .L8010B138 -/* B822BC 8010B11C 00000000 */ nop -/* B822C0 8010B120 0C020978 */ jal Interface_ChangeAlpha -/* B822C4 8010B124 A7A7004E */ sh $a3, 0x4e($sp) -/* B822C8 8010B128 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016 -/* B822CC 8010B12C 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0 -/* B822D0 8010B130 97A7004E */ lhu $a3, 0x4e($sp) -/* B822D4 8010B134 8E030000 */ lw $v1, ($s0) -.L8010B138: -/* B822D8 8010B138 3C088015 */ lui $t0, %hi(D_8014B308) # $t0, 0x8015 -/* B822DC 8010B13C 2508B308 */ addiu $t0, %lo(D_8014B308) # addiu $t0, $t0, -0x4cf8 -/* B822E0 8010B140 A5000000 */ sh $zero, ($t0) -/* B822E4 8010B144 850A0000 */ lh $t2, ($t0) -/* B822E8 8010B148 3C048015 */ lui $a0, %hi(D_8014B300) # $a0, 0x8015 -/* B822EC 8010B14C 3C068015 */ lui $a2, %hi(D_8014B2F4) # $a2, 0x8015 -/* B822F0 8010B150 24C6B2F4 */ addiu $a2, %lo(D_8014B2F4) # addiu $a2, $a2, -0x4d0c -/* B822F4 8010B154 2484B300 */ addiu $a0, %lo(D_8014B300) # addiu $a0, $a0, -0x4d00 -/* B822F8 8010B158 3C018015 */ lui $at, %hi(D_8014B318) # $at, 0x8015 -/* B822FC 8010B15C A08A0000 */ sb $t2, ($a0) -/* B82300 8010B160 A0CA0000 */ sb $t2, ($a2) -/* B82304 8010B164 314B00FF */ andi $t3, $t2, 0xff -/* B82308 8010B168 A42BB318 */ sh $t3, %lo(D_8014B318)($at) -/* B8230C 8010B16C 28E10500 */ slti $at, $a3, 0x500 -/* B82310 8010B170 14200011 */ bnez $at, .L8010B1B8 -/* B82314 8010B174 00E01025 */ move $v0, $a3 -/* B82318 8010B178 28410600 */ slti $at, $v0, 0x600 -/* B8231C 8010B17C 1020000E */ beqz $at, .L8010B1B8 -/* B82320 8010B180 240C0001 */ li $t4, 1 -/* B82324 8010B184 A50C0000 */ sh $t4, ($t0) -/* B82328 8010B188 240D0055 */ li $t5, 85 -/* B8232C 8010B18C A46D0B06 */ sh $t5, 0xb06($v1) -/* B82330 8010B190 8E0F0000 */ lw $t7, ($s0) -/* B82334 8010B194 240E0006 */ li $t6, 6 -/* B82338 8010B198 24180014 */ li $t8, 20 -/* B8233C 8010B19C A5EE0B04 */ sh $t6, 0xb04($t7) -/* B82340 8010B1A0 8E190000 */ lw $t9, ($s0) -/* B82344 8010B1A4 24090030 */ li $t1, 48 -/* B82348 8010B1A8 A7380B00 */ sh $t8, 0xb00($t9) -/* B8234C 8010B1AC 8E0A0000 */ lw $t2, ($s0) -/* B82350 8010B1B0 10000009 */ b .L8010B1D8 -/* B82354 8010B1B4 A5490496 */ sh $t1, 0x496($t2) -.L8010B1B8: -/* B82358 8010B1B8 240B004B */ li $t3, 75 -/* B8235C 8010B1BC A46B0B06 */ sh $t3, 0xb06($v1) -/* B82360 8010B1C0 8E0D0000 */ lw $t5, ($s0) -/* B82364 8010B1C4 240C000C */ li $t4, 12 -/* B82368 8010B1C8 240E0041 */ li $t6, 65 -/* B8236C 8010B1CC A5AC0B04 */ sh $t4, 0xb04($t5) -/* B82370 8010B1D0 8E0F0000 */ lw $t7, ($s0) -/* B82374 8010B1D4 A5EE0B00 */ sh $t6, 0xb00($t7) -.L8010B1D8: -/* B82378 8010B1D8 240100C2 */ li $at, 194 -/* B8237C 8010B1DC 10410004 */ beq $v0, $at, .L8010B1F0 -/* B82380 8010B1E0 3C03F000 */ lui $v1, 0xf000 -/* B82384 8010B1E4 240100FA */ li $at, 250 -/* B82388 8010B1E8 1441000E */ bne $v0, $at, .L8010B224 -/* B8238C 8010B1EC 8FB00048 */ lw $s0, 0x48($sp) -.L8010B1F0: -/* B82390 8010B1F0 8CB800A4 */ lw $t8, 0xa4($a1) -/* B82394 8010B1F4 8FB00048 */ lw $s0, 0x48($sp) -/* B82398 8010B1F8 34018000 */ li $at, 32768 -/* B8239C 8010B1FC 0303C824 */ and $t9, $t8, $v1 -/* B823A0 8010B200 03234824 */ and $t1, $t9, $v1 -/* B823A4 8010B204 00095702 */ srl $t2, $t1, 0x1c -/* B823A8 8010B208 004A3821 */ addu $a3, $v0, $t2 -/* B823AC 8010B20C 261020D8 */ addiu $s0, $s0, 0x20d8 -/* B823B0 8010B210 02015821 */ addu $t3, $s0, $at -/* B823B4 8010B214 30E7FFFF */ andi $a3, $a3, 0xffff -/* B823B8 8010B218 00E01025 */ move $v0, $a3 -/* B823BC 8010B21C 1000001D */ b .L8010B294 -/* B823C0 8010B220 AFAB002C */ sw $t3, 0x2c($sp) -.L8010B224: -/* B823C4 8010B224 261020D8 */ addiu $s0, $s0, 0x20d8 -/* B823C8 8010B228 34018000 */ li $at, 32768 -/* B823CC 8010B22C 02016021 */ addu $t4, $s0, $at -/* B823D0 8010B230 AFAC002C */ sw $t4, 0x2c($sp) -/* B823D4 8010B234 958362F8 */ lhu $v1, 0x62f8($t4) -/* B823D8 8010B238 2401000C */ li $at, 12 -/* B823DC 8010B23C 3C0E8012 */ lui $t6, %hi(gBitFlags+8) # $t6, 0x8012 -/* B823E0 8010B240 1461000B */ bne $v1, $at, .L8010B270 -/* B823E4 8010B244 3C0F8012 */ lui $t7, %hi(gEquipShifts) # $t7, 0x8012 -/* B823E8 8010B248 8DCE7128 */ lw $t6, %lo(gBitFlags+8)($t6) -/* B823EC 8010B24C 91EF71F0 */ lbu $t7, %lo(gEquipShifts)($t7) -/* B823F0 8010B250 94B9009C */ lhu $t9, 0x9c($a1) -/* B823F4 8010B254 01EEC004 */ sllv $t8, $t6, $t7 -/* B823F8 8010B258 03194824 */ and $t1, $t8, $t9 -/* B823FC 8010B25C 51200005 */ beql $t1, $zero, .L8010B274 -/* B82400 8010B260 240100B4 */ li $at, 180 -/* B82404 8010B264 2407000B */ li $a3, 11 -/* B82408 8010B268 1000000A */ b .L8010B294 -/* B8240C 8010B26C 2402000B */ li $v0, 11 -.L8010B270: -/* B82410 8010B270 240100B4 */ li $at, 180 -.L8010B274: -/* B82414 8010B274 54610008 */ bnel $v1, $at, .L8010B298 -/* B82418 8010B278 24014077 */ li $at, 16503 -/* B8241C 8010B27C 94AA0EE6 */ lhu $t2, 0xee6($a1) -/* B82420 8010B280 314B0040 */ andi $t3, $t2, 0x40 -/* B82424 8010B284 51600004 */ beql $t3, $zero, .L8010B298 -/* B82428 8010B288 24014077 */ li $at, 16503 -/* B8242C 8010B28C 240700B5 */ li $a3, 181 -/* B82430 8010B290 240200B5 */ li $v0, 181 -.L8010B294: -/* B82434 8010B294 24014077 */ li $at, 16503 -.L8010B298: -/* B82438 8010B298 1041000A */ beq $v0, $at, .L8010B2C4 -/* B8243C 8010B29C 24040001 */ li $a0, 1 -/* B82440 8010B2A0 2401407A */ li $at, 16506 -/* B82444 8010B2A4 10410007 */ beq $v0, $at, .L8010B2C4 -/* B82448 8010B2A8 24012061 */ li $at, 8289 -/* B8244C 8010B2AC 10410005 */ beq $v0, $at, .L8010B2C4 -/* B82450 8010B2B0 24015035 */ li $at, 20533 -/* B82454 8010B2B4 10410003 */ beq $v0, $at, .L8010B2C4 -/* B82458 8010B2B8 240140AC */ li $at, 16556 -/* B8245C 8010B2BC 5441000B */ bnel $v0, $at, .L8010B2EC -/* B82460 8010B2C0 26017FFF */ addiu $at, $s0, 0x7fff -.L8010B2C4: -/* B82464 8010B2C4 AFA20030 */ sw $v0, 0x30($sp) -/* B82468 8010B2C8 0C020978 */ jal Interface_ChangeAlpha -/* B8246C 8010B2CC A7A7004E */ sh $a3, 0x4e($sp) -/* B82470 8010B2D0 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016 -/* B82474 8010B2D4 3C088015 */ lui $t0, %hi(D_8014B308) # $t0, 0x8015 -/* B82478 8010B2D8 2508B308 */ addiu $t0, %lo(D_8014B308) # addiu $t0, $t0, -0x4cf8 -/* B8247C 8010B2DC 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0 -/* B82480 8010B2E0 8FA20030 */ lw $v0, 0x30($sp) -/* B82484 8010B2E4 97A7004E */ lhu $a3, 0x4e($sp) -/* B82488 8010B2E8 26017FFF */ addiu $at, $s0, 0x7fff -.L8010B2EC: -/* B8248C 8010B2EC A42762F9 */ sh $a3, 0x62f9($at) -/* B82490 8010B2F0 24012030 */ li $at, 8240 -/* B82494 8010B2F4 14410013 */ bne $v0, $at, .L8010B344 -/* B82498 8010B2F8 3C048015 */ lui $a0, %hi(D_80154230) # $a0, 0x8015 -/* B8249C 8010B2FC 24844230 */ addiu $a0, %lo(D_80154230) # addiu $a0, $a0, 0x4230 -/* B824A0 8010B300 0C00084C */ jal osSyncPrintf -/* B824A4 8010B304 A7A7004E */ sh $a3, 0x4e($sp) -/* B824A8 8010B308 3C048015 */ lui $a0, %hi(D_80154238) # $a0, 0x8015 -/* B824AC 8010B30C 0C00084C */ jal osSyncPrintf -/* B824B0 8010B310 24844238 */ addiu $a0, %lo(D_80154238) # addiu $a0, $a0, 0x4238 -/* B824B4 8010B314 3C048015 */ lui $a0, %hi(D_80154290) # $a0, 0x8015 -/* B824B8 8010B318 0C00084C */ jal osSyncPrintf -/* B824BC 8010B31C 24844290 */ addiu $a0, %lo(D_80154290) # addiu $a0, $a0, 0x4290 -/* B824C0 8010B320 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016 -/* B824C4 8010B324 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0 -/* B824C8 8010B328 3C088015 */ lui $t0, %hi(D_8014B308) # $t0, 0x8015 -/* B824CC 8010B32C 97A7004E */ lhu $a3, 0x4e($sp) -/* B824D0 8010B330 2508B308 */ addiu $t0, %lo(D_8014B308) # addiu $t0, $t0, -0x4cf8 -/* B824D4 8010B334 A4A01400 */ sh $zero, 0x1400($a1) -/* B824D8 8010B338 A4A013FE */ sh $zero, 0x13fe($a1) -/* B824DC 8010B33C A4A013FC */ sh $zero, 0x13fc($a1) -/* B824E0 8010B340 A4A013FA */ sh $zero, 0x13fa($a1) -.L8010B344: -/* B824E4 8010B344 850C0000 */ lh $t4, ($t0) -/* B824E8 8010B348 8FA40048 */ lw $a0, 0x48($sp) -/* B824EC 8010B34C 51800018 */ beql $t4, $zero, .L8010B3B0 -/* B824F0 8010B350 90A21409 */ lbu $v0, 0x1409($a1) -/* B824F4 8010B354 0C041D8A */ jal func_80107628 -/* B824F8 8010B358 30E5FFFF */ andi $a1, $a3, 0xffff -/* B824FC 8010B35C 8FA20048 */ lw $v0, 0x48($sp) -/* B82500 8010B360 26017FFF */ addiu $at, $s0, 0x7fff -/* B82504 8010B364 3C0F0097 */ lui $t7, %hi(_staff_message_data_staticSegmentRomStart) # $t7, 0x97 -/* B82508 8010B368 8C4D2204 */ lw $t5, 0x2204($v0) -/* B8250C 8010B36C 25EF3000 */ addiu $t7, %lo(_staff_message_data_staticSegmentRomStart) # addiu $t7, $t7, 0x3000 -/* B82510 8010B370 3C078015 */ lui $a3, %hi(D_80154294) # $a3, 0x8015 -/* B82514 8010B374 AC2D6301 */ sw $t5, 0x6301($at) -/* B82518 8010B378 8C4E2200 */ lw $t6, 0x2200($v0) -/* B8251C 8010B37C 3401DC88 */ li $at, 56456 -/* B82520 8010B380 241807A2 */ li $t8, 1954 -/* B82524 8010B384 24422200 */ addiu $v0, $v0, 0x2200 -/* B82528 8010B388 8C460004 */ lw $a2, 4($v0) -/* B8252C 8010B38C AFA20030 */ sw $v0, 0x30($sp) -/* B82530 8010B390 AFB80010 */ sw $t8, 0x10($sp) -/* B82534 8010B394 00412021 */ addu $a0, $v0, $at -/* B82538 8010B398 24E74294 */ addiu $a3, %lo(D_80154294) # addiu $a3, $a3, 0x4294 -/* B8253C 8010B39C 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B82540 8010B3A0 01CF2821 */ addu $a1, $t6, $t7 -/* B82544 8010B3A4 1000004A */ b .L8010B4D0 -/* B82548 8010B3A8 8FA20030 */ lw $v0, 0x30($sp) -/* B8254C 8010B3AC 90A21409 */ lbu $v0, 0x1409($a1) -.L8010B3B0: -/* B82550 8010B3B0 8FA40048 */ lw $a0, 0x48($sp) -/* B82554 8010B3B4 24010001 */ li $at, 1 -/* B82558 8010B3B8 14400017 */ bnez $v0, .L8010B418 -/* B8255C 8010B3BC 00000000 */ nop -/* B82560 8010B3C0 0C041D12 */ jal func_80107448 -/* B82564 8010B3C4 30E5FFFF */ andi $a1, $a3, 0xffff -/* B82568 8010B3C8 8FA20048 */ lw $v0, 0x48($sp) -/* B8256C 8010B3CC 26017FFF */ addiu $at, $s0, 0x7fff -/* B82570 8010B3D0 3C0A008C */ lui $t2, %hi(_nes_message_data_staticSegmentRomStart) # $t2, 0x8c -/* B82574 8010B3D4 8C592204 */ lw $t9, 0x2204($v0) -/* B82578 8010B3D8 254A6000 */ addiu $t2, %lo(_nes_message_data_staticSegmentRomStart) # addiu $t2, $t2, 0x6000 -/* B8257C 8010B3DC 3C078015 */ lui $a3, %hi(D_801542A8) # $a3, 0x8015 -/* B82580 8010B3E0 AC396301 */ sw $t9, 0x6301($at) -/* B82584 8010B3E4 8C492200 */ lw $t1, 0x2200($v0) -/* B82588 8010B3E8 3401DC88 */ li $at, 56456 -/* B8258C 8010B3EC 240B07AE */ li $t3, 1966 -/* B82590 8010B3F0 24422200 */ addiu $v0, $v0, 0x2200 -/* B82594 8010B3F4 8C460004 */ lw $a2, 4($v0) -/* B82598 8010B3F8 AFA20030 */ sw $v0, 0x30($sp) -/* B8259C 8010B3FC AFAB0010 */ sw $t3, 0x10($sp) -/* B825A0 8010B400 00412021 */ addu $a0, $v0, $at -/* B825A4 8010B404 24E742A8 */ addiu $a3, %lo(D_801542A8) # addiu $a3, $a3, 0x42a8 -/* B825A8 8010B408 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B825AC 8010B40C 012A2821 */ addu $a1, $t1, $t2 -/* B825B0 8010B410 1000002F */ b .L8010B4D0 -/* B825B4 8010B414 8FA20030 */ lw $v0, 0x30($sp) -.L8010B418: -/* B825B8 8010B418 14410018 */ bne $v0, $at, .L8010B47C -/* B825BC 8010B41C 8FA40048 */ lw $a0, 0x48($sp) -/* B825C0 8010B420 8FA40048 */ lw $a0, 0x48($sp) -/* B825C4 8010B424 0C041D12 */ jal func_80107448 -/* B825C8 8010B428 30E5FFFF */ andi $a1, $a3, 0xffff -/* B825CC 8010B42C 8FA20048 */ lw $v0, 0x48($sp) -/* B825D0 8010B430 26017FFF */ addiu $at, $s0, 0x7fff -/* B825D4 8010B434 3C0E0090 */ lui $t6, %hi(_ger_message_data_staticSegmentRomStart) # $t6, 0x90 -/* B825D8 8010B438 8C4C2204 */ lw $t4, 0x2204($v0) -/* B825DC 8010B43C 25CEF000 */ addiu $t6, %lo(_ger_message_data_staticSegmentRomStart) # addiu $t6, $t6, -0x1000 -/* B825E0 8010B440 3C078015 */ lui $a3, %hi(D_801542BC) # $a3, 0x8015 -/* B825E4 8010B444 AC2C6301 */ sw $t4, 0x6301($at) -/* B825E8 8010B448 8C4D2200 */ lw $t5, 0x2200($v0) -/* B825EC 8010B44C 3401DC88 */ li $at, 56456 -/* B825F0 8010B450 240F07BA */ li $t7, 1978 -/* B825F4 8010B454 24422200 */ addiu $v0, $v0, 0x2200 -/* B825F8 8010B458 8C460004 */ lw $a2, 4($v0) -/* B825FC 8010B45C AFA20030 */ sw $v0, 0x30($sp) -/* B82600 8010B460 AFAF0010 */ sw $t7, 0x10($sp) -/* B82604 8010B464 00412021 */ addu $a0, $v0, $at -/* B82608 8010B468 24E742BC */ addiu $a3, %lo(D_801542BC) # addiu $a3, $a3, 0x42bc -/* B8260C 8010B46C 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B82610 8010B470 01AE2821 */ addu $a1, $t5, $t6 -/* B82614 8010B474 10000016 */ b .L8010B4D0 -/* B82618 8010B478 8FA20030 */ lw $v0, 0x30($sp) -.L8010B47C: -/* B8261C 8010B47C 0C041D12 */ jal func_80107448 -/* B82620 8010B480 30E5FFFF */ andi $a1, $a3, 0xffff -/* B82624 8010B484 8FA20048 */ lw $v0, 0x48($sp) -/* B82628 8010B488 26017FFF */ addiu $at, $s0, 0x7fff -/* B8262C 8010B48C 3C090094 */ lui $t1, %hi(_fra_message_data_staticSegmentRomStart) # $t1, 0x94 -/* B82630 8010B490 8C582204 */ lw $t8, 0x2204($v0) -/* B82634 8010B494 2529B000 */ addiu $t1, %lo(_fra_message_data_staticSegmentRomStart) # addiu $t1, $t1, -0x5000 -/* B82638 8010B498 3C078015 */ lui $a3, %hi(D_801542D0) # $a3, 0x8015 -/* B8263C 8010B49C AC386301 */ sw $t8, 0x6301($at) -/* B82640 8010B4A0 8C592200 */ lw $t9, 0x2200($v0) -/* B82644 8010B4A4 3401DC88 */ li $at, 56456 -/* B82648 8010B4A8 240A07C6 */ li $t2, 1990 -/* B8264C 8010B4AC 24422200 */ addiu $v0, $v0, 0x2200 -/* B82650 8010B4B0 8C460004 */ lw $a2, 4($v0) -/* B82654 8010B4B4 AFA20030 */ sw $v0, 0x30($sp) -/* B82658 8010B4B8 AFAA0010 */ sw $t2, 0x10($sp) -/* B8265C 8010B4BC 00412021 */ addu $a0, $v0, $at -/* B82660 8010B4C0 24E742D0 */ addiu $a3, %lo(D_801542D0) # addiu $a3, $a3, 0x42d0 -/* B82664 8010B4C4 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B82668 8010B4C8 03292821 */ addu $a1, $t9, $t1 -/* B8266C 8010B4CC 8FA20030 */ lw $v0, 0x30($sp) -.L8010B4D0: -/* B82670 8010B4D0 904B0008 */ lbu $t3, 8($v0) -/* B82674 8010B4D4 26017FFF */ addiu $at, $s0, 0x7fff -/* B82678 8010B4D8 3C048015 */ lui $a0, %hi(D_801542E4) # $a0, 0x8015 -/* B8267C 8010B4DC A02B62FD */ sb $t3, 0x62fd($at) -/* B82680 8010B4E0 8FAC002C */ lw $t4, 0x2c($sp) -/* B82684 8010B4E4 248442E4 */ addiu $a0, %lo(D_801542E4) # addiu $a0, $a0, 0x42e4 -/* B82688 8010B4E8 918D62FC */ lbu $t5, 0x62fc($t4) -/* B8268C 8010B4EC 000D7103 */ sra $t6, $t5, 4 -/* B82690 8010B4F0 A02E62FE */ sb $t6, 0x62fe($at) -/* B82694 8010B4F4 8FAF002C */ lw $t7, 0x2c($sp) -/* B82698 8010B4F8 91F862FC */ lbu $t8, 0x62fc($t7) -/* B8269C 8010B4FC 3319000F */ andi $t9, $t8, 0xf -/* B826A0 8010B500 A03962FF */ sb $t9, 0x62ff($at) -/* B826A4 8010B504 8FA9002C */ lw $t1, 0x2c($sp) -/* B826A8 8010B508 912562FD */ lbu $a1, 0x62fd($t1) -/* B826AC 8010B50C 0C00084C */ jal osSyncPrintf -/* B826B0 8010B510 A7A5003E */ sh $a1, 0x3e($sp) -/* B826B4 8010B514 87A3003E */ lh $v1, 0x3e($sp) -/* B826B8 8010B518 8FAA002C */ lw $t2, 0x2c($sp) -/* B826BC 8010B51C 3C0C8015 */ lui $t4, %hi(D_80153C50) # $t4, 0x8015 -/* B826C0 8010B520 28610004 */ slti $at, $v1, 4 -/* B826C4 8010B524 10200046 */ beqz $at, .L8010B640 -/* B826C8 8010B528 00035840 */ sll $t3, $v1, 1 -/* B826CC 8010B52C 258C3C50 */ addiu $t4, %lo(D_80153C50) # addiu $t4, $t4, 0x3c50 -/* B826D0 8010B530 016C1021 */ addu $v0, $t3, $t4 -/* B826D4 8010B534 844D0000 */ lh $t5, ($v0) -/* B826D8 8010B538 3C0F008C */ lui $t7, %hi(_message_staticSegmentRomStart) # $t7, 0x8c -/* B826DC 8010B53C 25EFA000 */ addiu $t7, %lo(_message_staticSegmentRomStart) # addiu $t7, $t7, -0x6000 -/* B826E0 8010B540 8D4462B0 */ lw $a0, 0x62b0($t2) -/* B826E4 8010B544 3C078015 */ lui $a3, %hi(D_801542F8) # $a3, 0x8015 -/* B826E8 8010B548 241807D6 */ li $t8, 2006 -/* B826EC 8010B54C 000D7300 */ sll $t6, $t5, 0xc -/* B826F0 8010B550 01CF2821 */ addu $a1, $t6, $t7 -/* B826F4 8010B554 AFB80010 */ sw $t8, 0x10($sp) -/* B826F8 8010B558 24E742F8 */ addiu $a3, %lo(D_801542F8) # addiu $a3, $a3, 0x42f8 -/* B826FC 8010B55C AFA20030 */ sw $v0, 0x30($sp) -/* B82700 8010B560 0C0006A8 */ jal DmaMgr_SendRequest1 -/* B82704 8010B564 24061000 */ li $a2, 4096 -/* B82708 8010B568 8FA20030 */ lw $v0, 0x30($sp) -/* B8270C 8010B56C 3C198015 */ lui $t9, %hi(D_80153C50) # $t9, 0x8015 -/* B82710 8010B570 27393C50 */ addiu $t9, %lo(D_80153C50) # addiu $t9, $t9, 0x3c50 -/* B82714 8010B574 14590006 */ bne $v0, $t9, .L8010B590 -/* B82718 8010B578 3C098015 */ lui $t1, %hi(D_80153C52) # $t1, 0x8015 -/* B8271C 8010B57C 26017FFF */ addiu $at, $s0, 0x7fff -/* B82720 8010B580 A42063FF */ sh $zero, 0x63ff($at) -/* B82724 8010B584 A4206401 */ sh $zero, 0x6401($at) -/* B82728 8010B588 1000001A */ b .L8010B5F4 -/* B8272C 8010B58C A4206403 */ sh $zero, 0x6403($at) -.L8010B590: -/* B82730 8010B590 25293C52 */ addiu $t1, %lo(D_80153C52) # addiu $t1, $t1, 0x3c52 -/* B82734 8010B594 14490009 */ bne $v0, $t1, .L8010B5BC -/* B82738 8010B598 3C0D8015 */ lui $t5, %hi(D_80153C54) # $t5, 0x8015 -/* B8273C 8010B59C 26017FFF */ addiu $at, $s0, 0x7fff -/* B82740 8010B5A0 240A0046 */ li $t2, 70 -/* B82744 8010B5A4 240B0032 */ li $t3, 50 -/* B82748 8010B5A8 240C001E */ li $t4, 30 -/* B8274C 8010B5AC A42A63FF */ sh $t2, 0x63ff($at) -/* B82750 8010B5B0 A42B6401 */ sh $t3, 0x6401($at) -/* B82754 8010B5B4 1000000F */ b .L8010B5F4 -/* B82758 8010B5B8 A42C6403 */ sh $t4, 0x6403($at) -.L8010B5BC: -/* B8275C 8010B5BC 25AD3C54 */ addiu $t5, %lo(D_80153C54) # addiu $t5, $t5, 0x3c54 -/* B82760 8010B5C0 144D0008 */ bne $v0, $t5, .L8010B5E4 -/* B82764 8010B5C4 241800FF */ li $t8, 255 -/* B82768 8010B5C8 26017FFF */ addiu $at, $s0, 0x7fff -/* B8276C 8010B5CC 240E000A */ li $t6, 10 -/* B82770 8010B5D0 240F0032 */ li $t7, 50 -/* B82774 8010B5D4 A42063FF */ sh $zero, 0x63ff($at) -/* B82778 8010B5D8 A42E6401 */ sh $t6, 0x6401($at) -/* B8277C 8010B5DC 10000005 */ b .L8010B5F4 -/* B82780 8010B5E0 A42F6403 */ sh $t7, 0x6403($at) -.L8010B5E4: -/* B82784 8010B5E4 26017FFF */ addiu $at, $s0, 0x7fff -/* B82788 8010B5E8 A43863FF */ sh $t8, 0x63ff($at) -/* B8278C 8010B5EC A4206401 */ sh $zero, 0x6401($at) -/* B82790 8010B5F0 A4206403 */ sh $zero, 0x6403($at) -.L8010B5F4: -/* B82794 8010B5F4 3C198015 */ lui $t9, %hi(D_80153C52) # $t9, 0x8015 -/* B82798 8010B5F8 27393C52 */ addiu $t9, %lo(D_80153C52) # addiu $t9, $t9, 0x3c52 -/* B8279C 8010B5FC 14590005 */ bne $v0, $t9, .L8010B614 -/* B827A0 8010B600 3C0A8015 */ lui $t2, %hi(D_80153C56) # $t2, 0x8015 -/* B827A4 8010B604 240900E6 */ li $t1, 230 -/* B827A8 8010B608 26017FFF */ addiu $at, $s0, 0x7fff -/* B827AC 8010B60C 1000000A */ b .L8010B638 -/* B827B0 8010B610 A4296405 */ sh $t1, 0x6405($at) -.L8010B614: -/* B827B4 8010B614 254A3C56 */ addiu $t2, %lo(D_80153C56) # addiu $t2, $t2, 0x3c56 -/* B827B8 8010B618 144A0005 */ bne $v0, $t2, .L8010B630 -/* B827BC 8010B61C 240C00AA */ li $t4, 170 -/* B827C0 8010B620 240B00B4 */ li $t3, 180 -/* B827C4 8010B624 26017FFF */ addiu $at, $s0, 0x7fff -/* B827C8 8010B628 10000003 */ b .L8010B638 -/* B827CC 8010B62C A42B6405 */ sh $t3, 0x6405($at) -.L8010B630: -/* B827D0 8010B630 26017FFF */ addiu $at, $s0, 0x7fff -/* B827D4 8010B634 A42C6405 */ sh $t4, 0x6405($at) -.L8010B638: -/* B827D8 8010B638 26017FFF */ addiu $at, $s0, 0x7fff -/* B827DC 8010B63C A4206407 */ sh $zero, 0x6407($at) -.L8010B640: -/* B827E0 8010B640 26017FFF */ addiu $at, $s0, 0x7fff -/* B827E4 8010B644 A02063E5 */ sb $zero, 0x63e5($at) -/* B827E8 8010B648 8FAD002C */ lw $t5, 0x2c($sp) -/* B827EC 8010B64C 91A263E4 */ lbu $v0, 0x63e4($t5) -/* B827F0 8010B650 A42063D3 */ sh $zero, 0x63d3($at) -/* B827F4 8010B654 A42263D7 */ sh $v0, 0x63d7($at) -/* B827F8 8010B658 A02263E7 */ sb $v0, 0x63e7($at) -/* B827FC 8010B65C 8FAE002C */ lw $t6, 0x2c($sp) -/* B82800 8010B660 95C263D2 */ lhu $v0, 0x63d2($t6) -/* B82804 8010B664 A42263D1 */ sh $v0, 0x63d1($at) -/* B82808 8010B668 A42263CF */ sh $v0, 0x63cf($at) -/* B8280C 8010B66C 8FBF0024 */ lw $ra, 0x24($sp) -/* B82810 8010B670 8FB00020 */ lw $s0, 0x20($sp) -/* B82814 8010B674 27BD0048 */ addiu $sp, $sp, 0x48 -/* B82818 8010B678 03E00008 */ jr $ra -/* B8281C 8010B67C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010B680.s b/asm/non_matchings/code/z_message_PAL/func_8010B680.s deleted file mode 100644 index 5662249cf7..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010B680.s +++ /dev/null @@ -1,57 +0,0 @@ -.rdata -glabel D_8015430C - .asciz "\x1b[34m" - .balign 4 - -glabel D_80154314 - # Message=%x(%d) - .asciz "めっせーじ=%x(%d)\n" - .balign 4 - -glabel D_80154328 - .asciz "\x1b[m" - .balign 4 - -.text -glabel func_8010B680 -/* B82820 8010B680 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B82824 8010B684 AFA40020 */ sw $a0, 0x20($sp) -/* B82828 8010B688 AFBF0014 */ sw $ra, 0x14($sp) -/* B8282C 8010B68C 3C048015 */ lui $a0, %hi(D_8015430C) # $a0, 0x8015 -/* B82830 8010B690 AFA50024 */ sw $a1, 0x24($sp) -/* B82834 8010B694 AFA60028 */ sw $a2, 0x28($sp) -/* B82838 8010B698 0C00084C */ jal osSyncPrintf -/* B8283C 8010B69C 2484430C */ addiu $a0, %lo(D_8015430C) # addiu $a0, $a0, 0x430c -/* B82840 8010B6A0 3C048015 */ lui $a0, %hi(D_80154314) # $a0, 0x8015 -/* B82844 8010B6A4 24844314 */ addiu $a0, %lo(D_80154314) # addiu $a0, $a0, 0x4314 -/* B82848 8010B6A8 97A50026 */ lhu $a1, 0x26($sp) -/* B8284C 8010B6AC 0C00084C */ jal osSyncPrintf -/* B82850 8010B6B0 8FA60028 */ lw $a2, 0x28($sp) -/* B82854 8010B6B4 3C048015 */ lui $a0, %hi(D_80154328) # $a0, 0x8015 -/* B82858 8010B6B8 0C00084C */ jal osSyncPrintf -/* B8285C 8010B6BC 24844328 */ addiu $a0, %lo(D_80154328) # addiu $a0, $a0, 0x4328 -/* B82860 8010B6C0 8FA40020 */ lw $a0, 0x20($sp) -/* B82864 8010B6C4 340EFFFF */ li $t6, 65535 -/* B82868 8010B6C8 248220D8 */ addiu $v0, $a0, 0x20d8 -/* B8286C 8010B6CC 24417FFF */ addiu $at, $v0, 0x7fff -/* B82870 8010B6D0 A42E63F1 */ sh $t6, 0x63f1($at) -/* B82874 8010B6D4 AFA20018 */ sw $v0, 0x18($sp) -/* B82878 8010B6D8 0C042C30 */ jal func_8010B0C0 -/* B8287C 8010B6DC 97A50026 */ lhu $a1, 0x26($sp) -/* B82880 8010B6E0 8FA20018 */ lw $v0, 0x18($sp) -/* B82884 8010B6E4 8FAF0028 */ lw $t7, 0x28($sp) -/* B82888 8010B6E8 24180001 */ li $t8, 1 -/* B8288C 8010B6EC 24417FFF */ addiu $at, $v0, 0x7fff -/* B82890 8010B6F0 A0386305 */ sb $t8, 0x6305($at) -/* B82894 8010B6F4 A02063E8 */ sb $zero, 0x63e8($at) -/* B82898 8010B6F8 A42063E9 */ sh $zero, 0x63e9($at) -/* B8289C 8010B6FC AC2F6409 */ sw $t7, 0x6409($at) -/* B828A0 8010B700 8FB90020 */ lw $t9, 0x20($sp) -/* B828A4 8010B704 3C010001 */ lui $at, 1 -/* B828A8 8010B708 00390821 */ addu $at, $at, $t9 -/* B828AC 8010B70C A42004C6 */ sh $zero, 0x4c6($at) -/* B828B0 8010B710 8FBF0014 */ lw $ra, 0x14($sp) -/* B828B4 8010B714 27BD0020 */ addiu $sp, $sp, 0x20 -/* B828B8 8010B718 03E00008 */ jr $ra -/* B828BC 8010B71C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010B720.s b/asm/non_matchings/code/z_message_PAL/func_8010B720.s deleted file mode 100644 index 50b85274a4..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010B720.s +++ /dev/null @@ -1,82 +0,0 @@ -.rdata -glabel D_8015432C - .asciz "\x1b[32m" - .balign 4 - -glabel D_80154334 - # Message=%x message->msg_data - .asciz "めっせーじ=%x message->msg_data\n" - .balign 4 - -glabel D_80154358 - .asciz "\x1b[m" - .balign 4 - -.text -glabel func_8010B720 -/* B828C0 8010B720 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B828C4 8010B724 AFA40020 */ sw $a0, 0x20($sp) -/* B828C8 8010B728 AFBF001C */ sw $ra, 0x1c($sp) -/* B828CC 8010B72C 3C048015 */ lui $a0, %hi(D_8015432C) # $a0, 0x8015 -/* B828D0 8010B730 AFB10018 */ sw $s1, 0x18($sp) -/* B828D4 8010B734 AFB00014 */ sw $s0, 0x14($sp) -/* B828D8 8010B738 AFA50024 */ sw $a1, 0x24($sp) -/* B828DC 8010B73C 0C00084C */ jal osSyncPrintf -/* B828E0 8010B740 2484432C */ addiu $a0, %lo(D_8015432C) # addiu $a0, $a0, 0x432c -/* B828E4 8010B744 8FB00020 */ lw $s0, 0x20($sp) -/* B828E8 8010B748 34018000 */ li $at, 32768 -/* B828EC 8010B74C 3C048015 */ lui $a0, %hi(D_80154334) # $a0, 0x8015 -/* B828F0 8010B750 261020D8 */ addiu $s0, $s0, 0x20d8 -/* B828F4 8010B754 02018821 */ addu $s1, $s0, $at -/* B828F8 8010B758 8E266300 */ lw $a2, 0x6300($s1) -/* B828FC 8010B75C 24844334 */ addiu $a0, %lo(D_80154334) # addiu $a0, $a0, 0x4334 -/* B82900 8010B760 0C00084C */ jal osSyncPrintf -/* B82904 8010B764 97A50026 */ lhu $a1, 0x26($sp) -/* B82908 8010B768 3C048015 */ lui $a0, %hi(D_80154358) # $a0, 0x8015 -/* B8290C 8010B76C 0C00084C */ jal osSyncPrintf -/* B82910 8010B770 24844358 */ addiu $a0, %lo(D_80154358) # addiu $a0, $a0, 0x4358 -/* B82914 8010B774 26017FFF */ addiu $at, $s0, 0x7fff -/* B82918 8010B778 AC206301 */ sw $zero, 0x6301($at) -/* B8291C 8010B77C 97A50026 */ lhu $a1, 0x26($sp) -/* B82920 8010B780 0C042C30 */ jal func_8010B0C0 -/* B82924 8010B784 8FA40020 */ lw $a0, 0x20($sp) -/* B82928 8010B788 26017FFF */ addiu $at, $s0, 0x7fff -/* B8292C 8010B78C A0206305 */ sb $zero, 0x6305($at) -/* B82930 8010B790 862E6404 */ lh $t6, 0x6404($s1) -/* B82934 8010B794 240F0005 */ li $t7, 5 -/* B82938 8010B798 24180003 */ li $t8, 3 -/* B8293C 8010B79C A02F6305 */ sb $t7, 0x6305($at) -/* B82940 8010B7A0 A03863E8 */ sb $t8, 0x63e8($at) -/* B82944 8010B7A4 A42063E9 */ sh $zero, 0x63e9($at) -/* B82948 8010B7A8 A42E6407 */ sh $t6, 0x6407($at) -/* B8294C 8010B7AC 962263E8 */ lhu $v0, 0x63e8($s1) -/* B82950 8010B7B0 241900FF */ li $t9, 255 -/* B82954 8010B7B4 A43963E3 */ sh $t9, 0x63e3($at) -/* B82958 8010B7B8 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* B8295C 8010B7BC A42263D3 */ sh $v0, 0x63d3($at) -/* B82960 8010B7C0 A42263D1 */ sh $v0, 0x63d1($at) -/* B82964 8010B7C4 A42263CF */ sh $v0, 0x63cf($at) -/* B82968 8010B7C8 A02263E5 */ sb $v0, 0x63e5($at) -/* B8296C 8010B7CC 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* B82970 8010B7D0 8FAA0020 */ lw $t2, 0x20($sp) -/* B82974 8010B7D4 3C0B0001 */ lui $t3, 1 -/* B82978 8010B7D8 850904D2 */ lh $t1, 0x4d2($t0) -/* B8297C 8010B7DC 016A5821 */ addu $t3, $t3, $t2 -/* B82980 8010B7E0 55200008 */ bnezl $t1, .L8010B804 -/* B82984 8010B7E4 862C6404 */ lh $t4, 0x6404($s1) -/* B82988 8010B7E8 856B06EA */ lh $t3, 0x6ea($t3) -/* B8298C 8010B7EC 01402025 */ move $a0, $t2 -/* B82990 8010B7F0 55600004 */ bnezl $t3, .L8010B804 -/* B82994 8010B7F4 862C6404 */ lh $t4, 0x6404($s1) -/* B82998 8010B7F8 0C021BC0 */ jal Interface_SetDoAction -/* B8299C 8010B7FC 24050010 */ li $a1, 16 -/* B829A0 8010B800 862C6404 */ lh $t4, 0x6404($s1) -.L8010B804: -/* B829A4 8010B804 26017FFF */ addiu $at, $s0, 0x7fff -/* B829A8 8010B808 A42C6407 */ sh $t4, 0x6407($at) -/* B829AC 8010B80C 8FBF001C */ lw $ra, 0x1c($sp) -/* B829B0 8010B810 8FB10018 */ lw $s1, 0x18($sp) -/* B829B4 8010B814 8FB00014 */ lw $s0, 0x14($sp) -/* B829B8 8010B818 03E00008 */ jr $ra -/* B829BC 8010B81C 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010B820.s b/asm/non_matchings/code/z_message_PAL/func_8010B820.s deleted file mode 100644 index 7b6109d270..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010B820.s +++ /dev/null @@ -1,407 +0,0 @@ -.rdata -glabel D_8015435C - .asciz "\x1b[32m" - .balign 4 - -glabel D_80154364 - .asciz "ocarina_check_bit[%d]=%x\n" - .balign 4 - -glabel D_80154380 - .asciz "ocarina_bit = %x\n" - .balign 4 - -glabel D_80154394 - .asciz "\x1b[m" - .balign 4 - -glabel D_80154398 - # [31m☆☆☆☆☆ Ocarina Number=%d(%d) ☆☆☆☆☆ - .asciz "\x1b[31m☆☆☆☆☆ オカリナ番号=%d(%d) ☆☆☆☆☆\n\x1b[m" - .balign 4 - -glabel D_801543CC - .asciz "ocarina_set 000000000000000000 = %d\n" - .balign 4 - -glabel D_801543F4 - .asciz "222222222\n" - .balign 4 - -glabel D_80154400 - .asciz "333333333\n" - .balign 4 - -glabel D_8015440C - # Ocarina Mode = %d (%x) - .asciz "オカリナモード = %d (%x)\n" - .balign 4 - -glabel D_80154428 - # Music Performance Start - .asciz "演奏開始\n" - .balign 4 - -glabel D_80154434 - # ?????Recording Playback / Recording Playback / Recording Playback / Recording Playback -> - .asciz "?????録音再生 録音再生 録音再生 録音再生 -> " - .balign 4 - -.text -glabel func_8010B820 -/* B829C0 8010B820 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B829C4 8010B824 AFA40058 */ sw $a0, 0x58($sp) -/* B829C8 8010B828 AFBF002C */ sw $ra, 0x2c($sp) -/* B829CC 8010B82C 3C048015 */ lui $a0, %hi(D_8015435C) # $a0, 0x8015 -/* B829D0 8010B830 AFB20028 */ sw $s2, 0x28($sp) -/* B829D4 8010B834 AFB10024 */ sw $s1, 0x24($sp) -/* B829D8 8010B838 AFB00020 */ sw $s0, 0x20($sp) -/* B829DC 8010B83C AFA5005C */ sw $a1, 0x5c($sp) -/* B829E0 8010B840 0C00084C */ jal osSyncPrintf -/* B829E4 8010B844 2484435C */ addiu $a0, %lo(D_8015435C) # addiu $a0, $a0, 0x435c -/* B829E8 8010B848 3005FFFF */ andi $a1, $zero, 0xffff -/* B829EC 8010B84C 00058400 */ sll $s0, $a1, 0x10 -/* B829F0 8010B850 3C028015 */ lui $v0, %hi(D_8014B31C) # $v0, 0x8015 -/* B829F4 8010B854 00108403 */ sra $s0, $s0, 0x10 -/* B829F8 8010B858 2442B31C */ addiu $v0, %lo(D_8014B31C) # addiu $v0, $v0, -0x4ce4 -/* B829FC 8010B85C 2A01000C */ slti $at, $s0, 0xc -/* B82A00 8010B860 1020001F */ beqz $at, .L8010B8E0 -/* B82A04 8010B864 A4400000 */ sh $zero, ($v0) -/* B82A08 8010B868 00107080 */ sll $t6, $s0, 2 -.L8010B86C: -/* B82A0C 8010B86C 3C0F8012 */ lui $t7, %hi(gBitFlags+0x18) -/* B82A10 8010B870 01EE7821 */ addu $t7, $t7, $t6 -/* B82A14 8010B874 3C188016 */ lui $t8, %hi(gSaveContext+0xa4) # $t8, 0x8016 -/* B82A18 8010B878 8F18E704 */ lw $t8, %lo(gSaveContext+0xa4)($t8) -/* B82A1C 8010B87C 8DEF7138 */ lw $t7, %lo(gBitFlags+0x18)($t7) -/* B82A20 8010B880 3C048015 */ lui $a0, %hi(D_80154364) # $a0, 0x8015 -/* B82A24 8010B884 24844364 */ addiu $a0, %lo(D_80154364) # addiu $a0, $a0, 0x4364 -/* B82A28 8010B888 01F8C824 */ and $t9, $t7, $t8 -/* B82A2C 8010B88C 1320000D */ beqz $t9, .L8010B8C4 -/* B82A30 8010B890 02002825 */ move $a1, $s0 -/* B82A34 8010B894 3C098015 */ lui $t1, %hi(D_80153C58) # $t1, 0x8015 -/* B82A38 8010B898 25293C58 */ addiu $t1, %lo(D_80153C58) # addiu $t1, $t1, 0x3c58 -/* B82A3C 8010B89C 00104040 */ sll $t0, $s0, 1 -/* B82A40 8010B8A0 01098821 */ addu $s1, $t0, $t1 -/* B82A44 8010B8A4 0C00084C */ jal osSyncPrintf -/* B82A48 8010B8A8 96260000 */ lhu $a2, ($s1) -/* B82A4C 8010B8AC 3C028015 */ lui $v0, %hi(D_8014B31C) # $v0, 0x8015 -/* B82A50 8010B8B0 2442B31C */ addiu $v0, %lo(D_8014B31C) # addiu $v0, $v0, -0x4ce4 -/* B82A54 8010B8B4 944A0000 */ lhu $t2, ($v0) -/* B82A58 8010B8B8 962B0000 */ lhu $t3, ($s1) -/* B82A5C 8010B8BC 014B6025 */ or $t4, $t2, $t3 -/* B82A60 8010B8C0 A44C0000 */ sh $t4, ($v0) -.L8010B8C4: -/* B82A64 8010B8C4 26100001 */ addiu $s0, $s0, 1 -/* B82A68 8010B8C8 00108400 */ sll $s0, $s0, 0x10 -/* B82A6C 8010B8CC 00108403 */ sra $s0, $s0, 0x10 -/* B82A70 8010B8D0 2A01000C */ slti $at, $s0, 0xc -/* B82A74 8010B8D4 5420FFE5 */ bnezl $at, .L8010B86C -/* B82A78 8010B8D8 00107080 */ sll $t6, $s0, 2 -/* B82A7C 8010B8DC 94450000 */ lhu $a1, ($v0) -.L8010B8E0: -/* B82A80 8010B8E0 3C0D8016 */ lui $t5, %hi(gSaveContext+0x12c5) # $t5, 0x8016 -/* B82A84 8010B8E4 91ADF925 */ lbu $t5, %lo(gSaveContext+0x12c5)($t5) -/* B82A88 8010B8E8 3C048015 */ lui $a0, %hi(D_80154380) # $a0, 0x8015 -/* B82A8C 8010B8EC 11A00003 */ beqz $t5, .L8010B8FC -/* B82A90 8010B8F0 34AE1000 */ ori $t6, $a1, 0x1000 -/* B82A94 8010B8F4 A44E0000 */ sh $t6, ($v0) -/* B82A98 8010B8F8 31C5FFFF */ andi $a1, $t6, 0xffff -.L8010B8FC: -/* B82A9C 8010B8FC 0C00084C */ jal osSyncPrintf -/* B82AA0 8010B900 24844380 */ addiu $a0, %lo(D_80154380) # addiu $a0, $a0, 0x4380 -/* B82AA4 8010B904 3C048015 */ lui $a0, %hi(D_80154394) # $a0, 0x8015 -/* B82AA8 8010B908 0C00084C */ jal osSyncPrintf -/* B82AAC 8010B90C 24844394 */ addiu $a0, %lo(D_80154394) # addiu $a0, $a0, 0x4394 -/* B82AB0 8010B910 3C0F8012 */ lui $t7, %hi(gBitFlags+0x3c) # $t7, 0x8012 -/* B82AB4 8010B914 3C188016 */ lui $t8, %hi(gSaveContext+0xa4) # $t8, 0x8016 -/* B82AB8 8010B918 8F18E704 */ lw $t8, %lo(gSaveContext+0xa4)($t8) -/* B82ABC 8010B91C 8DEF715C */ lw $t7, %lo(gBitFlags+0x3c)($t7) -/* B82AC0 8010B920 3C018015 */ lui $at, %hi(D_8014B314) # $at, 0x8015 -/* B82AC4 8010B924 01F8C824 */ and $t9, $t7, $t8 -/* B82AC8 8010B928 0C03B8F2 */ jal func_800EE3C8 -/* B82ACC 8010B92C A439B314 */ sh $t9, %lo(D_8014B314)($at) -/* B82AD0 8010B930 8FB20058 */ lw $s2, 0x58($sp) -/* B82AD4 8010B934 3C048015 */ lui $a0, %hi(D_8014B2F8) # $a0, 0x8015 -/* B82AD8 8010B938 2484B2F8 */ addiu $a0, %lo(D_8014B2F8) # addiu $a0, $a0, -0x4d08 -/* B82ADC 8010B93C 265220D8 */ addiu $s2, $s2, 0x20d8 -/* B82AE0 8010B940 26417FFF */ addiu $at, $s2, 0x7fff -/* B82AE4 8010B944 AC2262B9 */ sw $v0, 0x62b9($at) -/* B82AE8 8010B948 A4800000 */ sh $zero, ($a0) -/* B82AEC 8010B94C 34018000 */ li $at, 32768 -/* B82AF0 8010B950 02411821 */ addu $v1, $s2, $at -/* B82AF4 8010B954 8C6962B8 */ lw $t1, 0x62b8($v1) -/* B82AF8 8010B958 84880000 */ lh $t0, ($a0) -/* B82AFC 8010B95C 3C018015 */ lui $at, %hi(D_8014B2FC) # $at, 0x8015 -/* B82B00 8010B960 A1280002 */ sb $t0, 2($t1) -/* B82B04 8010B964 A420B2FC */ sh $zero, %lo(D_8014B2FC)($at) -/* B82B08 8010B968 0C041A6C */ jal func_801069B0 -/* B82B0C 8010B96C AFA30030 */ sw $v1, 0x30($sp) -/* B82B10 8010B970 240A00FF */ li $t2, 255 -/* B82B14 8010B974 26417FFF */ addiu $at, $s2, 0x7fff -/* B82B18 8010B978 A02A6411 */ sb $t2, 0x6411($at) -/* B82B1C 8010B97C 8FAB0030 */ lw $t3, 0x30($sp) -/* B82B20 8010B980 3C048015 */ lui $a0, %hi(D_80154398) # $a0, 0x8015 -/* B82B24 8010B984 24844398 */ addiu $a0, %lo(D_80154398) # addiu $a0, $a0, 0x4398 -/* B82B28 8010B988 91626410 */ lbu $v0, 0x6410($t3) -/* B82B2C 8010B98C 24060002 */ li $a2, 2 -/* B82B30 8010B990 A42263F3 */ sh $v0, 0x63f3($at) -/* B82B34 8010B994 97B1005E */ lhu $s1, 0x5e($sp) -/* B82B38 8010B998 3C018015 */ lui $at, %hi(D_8014B310) # $at, 0x8015 -/* B82B3C 8010B99C A422B310 */ sh $v0, %lo(D_8014B310)($at) -/* B82B40 8010B9A0 0C00084C */ jal osSyncPrintf -/* B82B44 8010B9A4 02202825 */ move $a1, $s1 -/* B82B48 8010B9A8 2A210893 */ slti $at, $s1, 0x893 -/* B82B4C 8010B9AC 14200006 */ bnez $at, .L8010B9C8 -/* B82B50 8010B9B0 A7A0004A */ sh $zero, 0x4a($sp) -/* B82B54 8010B9B4 8FA40058 */ lw $a0, 0x58($sp) -/* B82B58 8010B9B8 0C042C30 */ jal func_8010B0C0 -/* B82B5C 8010B9BC 97A5005E */ lhu $a1, 0x5e($sp) -/* B82B60 8010B9C0 10000047 */ b .L8010BAE0 -/* B82B64 8010B9C4 2630086E */ addiu $s0, $s1, 0x86e -.L8010B9C8: -/* B82B68 8010B9C8 2401002E */ li $at, 46 -/* B82B6C 8010B9CC 16210008 */ bne $s1, $at, .L8010B9F0 -/* B82B70 8010B9D0 97AC005E */ lhu $t4, 0x5e($sp) -/* B82B74 8010B9D4 26417FFF */ addiu $at, $s2, 0x7fff -/* B82B78 8010B9D8 A42C63F1 */ sh $t4, 0x63f1($at) -/* B82B7C 8010B9DC 8FA40058 */ lw $a0, 0x58($sp) -/* B82B80 8010B9E0 0C042C30 */ jal func_8010B0C0 -/* B82B84 8010B9E4 2405086D */ li $a1, 2157 -/* B82B88 8010B9E8 1000003D */ b .L8010BAE0 -/* B82B8C 8010B9EC 2630086E */ addiu $s0, $s1, 0x86e -.L8010B9F0: -/* B82B90 8010B9F0 24010001 */ li $at, 1 -/* B82B94 8010B9F4 12210004 */ beq $s1, $at, .L8010BA08 -/* B82B98 8010B9F8 3C048015 */ lui $a0, %hi(D_801543CC) # $a0, 0x8015 -/* B82B9C 8010B9FC 2A210022 */ slti $at, $s1, 0x22 -/* B82BA0 8010BA00 14200022 */ bnez $at, .L8010BA8C -/* B82BA4 8010BA04 97AF005E */ lhu $t7, 0x5e($sp) -.L8010BA08: -/* B82BA8 8010BA08 248443CC */ addiu $a0, %lo(D_801543CC) # addiu $a0, $a0, 0x43cc -/* B82BAC 8010BA0C 0C00084C */ jal osSyncPrintf -/* B82BB0 8010BA10 02202825 */ move $a1, $s1 -/* B82BB4 8010BA14 97AD005E */ lhu $t5, 0x5e($sp) -/* B82BB8 8010BA18 26417FFF */ addiu $at, $s2, 0x7fff -/* B82BBC 8010BA1C A42D63F1 */ sh $t5, 0x63f1($at) -/* B82BC0 8010BA20 2A210022 */ slti $at, $s1, 0x22 -/* B82BC4 8010BA24 1420000D */ bnez $at, .L8010BA5C -/* B82BC8 8010BA28 2A210028 */ slti $at, $s1, 0x28 -/* B82BCC 8010BA2C 1020000B */ beqz $at, .L8010BA5C -/* B82BD0 8010BA30 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B82BD4 8010BA34 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B82BD8 8010BA38 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B82BDC 8010BA3C 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B82BE0 8010BA40 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B82BE4 8010BA44 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B82BE8 8010BA48 AFAE0014 */ sw $t6, 0x14($sp) -/* B82BEC 8010BA4C AFA70010 */ sw $a3, 0x10($sp) -/* B82BF0 8010BA50 24044807 */ li $a0, 18439 -/* B82BF4 8010BA54 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B82BF8 8010BA58 24060004 */ li $a2, 4 -.L8010BA5C: -/* B82BFC 8010BA5C 2401002D */ li $at, 45 -/* B82C00 8010BA60 16210006 */ bne $s1, $at, .L8010BA7C -/* B82C04 8010BA64 8FA40058 */ lw $a0, 0x58($sp) -/* B82C08 8010BA68 8FA40058 */ lw $a0, 0x58($sp) -/* B82C0C 8010BA6C 0C042C30 */ jal func_8010B0C0 -/* B82C10 8010BA70 2405086F */ li $a1, 2159 -/* B82C14 8010BA74 1000001A */ b .L8010BAE0 -/* B82C18 8010BA78 2630086E */ addiu $s0, $s1, 0x86e -.L8010BA7C: -/* B82C1C 8010BA7C 0C042C30 */ jal func_8010B0C0 -/* B82C20 8010BA80 2405086E */ li $a1, 2158 -/* B82C24 8010BA84 10000016 */ b .L8010BAE0 -/* B82C28 8010BA88 2630086E */ addiu $s0, $s1, 0x86e -.L8010BA8C: -/* B82C2C 8010BA8C 26417FFF */ addiu $at, $s2, 0x7fff -/* B82C30 8010BA90 A42F63F1 */ sh $t7, 0x63f1($at) -/* B82C34 8010BA94 24180001 */ li $t8, 1 -/* B82C38 8010BA98 2A21000F */ slti $at, $s1, 0xf -/* B82C3C 8010BA9C 14200009 */ bnez $at, .L8010BAC4 -/* B82C40 8010BAA0 A7B8004A */ sh $t8, 0x4a($sp) -/* B82C44 8010BAA4 3C048015 */ lui $a0, %hi(D_801543F4) # $a0, 0x8015 -/* B82C48 8010BAA8 0C00084C */ jal osSyncPrintf -/* B82C4C 8010BAAC 248443F4 */ addiu $a0, %lo(D_801543F4) # addiu $a0, $a0, 0x43f4 -/* B82C50 8010BAB0 8FA40058 */ lw $a0, 0x58($sp) -/* B82C54 8010BAB4 0C042C30 */ jal func_8010B0C0 -/* B82C58 8010BAB8 2405086D */ li $a1, 2157 -/* B82C5C 8010BABC 10000008 */ b .L8010BAE0 -/* B82C60 8010BAC0 2630086E */ addiu $s0, $s1, 0x86e -.L8010BAC4: -/* B82C64 8010BAC4 3C048015 */ lui $a0, %hi(D_80154400) # $a0, 0x8015 -/* B82C68 8010BAC8 0C00084C */ jal osSyncPrintf -/* B82C6C 8010BACC 24844400 */ addiu $a0, %lo(D_80154400) # addiu $a0, $a0, 0x4400 -/* B82C70 8010BAD0 2630086E */ addiu $s0, $s1, 0x86e -/* B82C74 8010BAD4 3205FFFF */ andi $a1, $s0, 0xffff -/* B82C78 8010BAD8 0C042C30 */ jal func_8010B0C0 -/* B82C7C 8010BADC 8FA40058 */ lw $a0, 0x58($sp) -.L8010BAE0: -/* B82C80 8010BAE0 26417FFF */ addiu $at, $s2, 0x7fff -/* B82C84 8010BAE4 AC206409 */ sw $zero, 0x6409($at) -/* B82C88 8010BAE8 8FB90030 */ lw $t9, 0x30($sp) -/* B82C8C 8010BAEC 3C048015 */ lui $a0, %hi(D_8015440C) # $a0, 0x8015 -/* B82C90 8010BAF0 2484440C */ addiu $a0, %lo(D_8015440C) # addiu $a0, $a0, 0x440c -/* B82C94 8010BAF4 02003025 */ move $a2, $s0 -/* B82C98 8010BAF8 0C00084C */ jal osSyncPrintf -/* B82C9C 8010BAFC 972563F0 */ lhu $a1, 0x63f0($t9) -/* B82CA0 8010BB00 26417FFF */ addiu $at, $s2, 0x7fff -/* B82CA4 8010BB04 A42063E9 */ sh $zero, 0x63e9($at) -/* B82CA8 8010BB08 8FA80058 */ lw $t0, 0x58($sp) -/* B82CAC 8010BB0C 3C010001 */ lui $at, 1 -/* B82CB0 8010BB10 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* B82CB4 8010BB14 00280821 */ addu $at, $at, $t0 -/* B82CB8 8010BB18 2442FA90 */ addiu $v0, %lo(gGameInfo) # addiu $v0, $v0, -0x570 -/* B82CBC 8010BB1C A42004C6 */ sh $zero, 0x4c6($at) -/* B82CC0 8010BB20 8C4A0000 */ lw $t2, ($v0) -/* B82CC4 8010BB24 24090022 */ li $t1, 34 -/* B82CC8 8010BB28 240B008E */ li $t3, 142 -/* B82CCC 8010BB2C A5490F14 */ sh $t1, 0xf14($t2) -/* B82CD0 8010BB30 8C4C0000 */ lw $t4, ($v0) -/* B82CD4 8010BB34 24030200 */ li $v1, 512 -/* B82CD8 8010BB38 240F0100 */ li $t7, 256 -/* B82CDC 8010BB3C A58B0F16 */ sh $t3, 0xf16($t4) -/* B82CE0 8010BB40 8C4D0000 */ lw $t5, ($v0) -/* B82CE4 8010BB44 24190040 */ li $t9, 64 -/* B82CE8 8010BB48 26417FFF */ addiu $at, $s2, 0x7fff -/* B82CEC 8010BB4C A5A304B4 */ sh $v1, 0x4b4($t5) -/* B82CF0 8010BB50 8C4E0000 */ lw $t6, ($v0) -/* B82CF4 8010BB54 240B0004 */ li $t3, 4 -/* B82CF8 8010BB58 240C0002 */ li $t4, 2 -/* B82CFC 8010BB5C A5C304B6 */ sh $v1, 0x4b6($t6) -/* B82D00 8010BB60 8C580000 */ lw $t8, ($v0) -/* B82D04 8010BB64 240D0005 */ li $t5, 5 -/* B82D08 8010BB68 24050012 */ li $a1, 18 -/* B82D0C 8010BB6C A70F04C0 */ sh $t7, 0x4c0($t8) -/* B82D10 8010BB70 8C480000 */ lw $t0, ($v0) -/* B82D14 8010BB74 A51904C2 */ sh $t9, 0x4c2($t0) -/* B82D18 8010BB78 A02063E8 */ sb $zero, 0x63e8($at) -/* B82D1C 8010BB7C 8C490000 */ lw $t1, ($v0) -/* B82D20 8010BB80 26417FFF */ addiu $at, $s2, 0x7fff -/* B82D24 8010BB84 852A04AC */ lh $t2, 0x4ac($t1) -/* B82D28 8010BB88 51400005 */ beql $t2, $zero, .L8010BBA0 -/* B82D2C 8010BB8C A02C63E8 */ sb $t4, 0x63e8($at) -/* B82D30 8010BB90 26417FFF */ addiu $at, $s2, 0x7fff -/* B82D34 8010BB94 10000003 */ b .L8010BBA4 -/* B82D38 8010BB98 A02B6305 */ sb $t3, 0x6305($at) -/* B82D3C 8010BB9C A02C63E8 */ sb $t4, 0x63e8($at) -.L8010BBA0: -/* B82D40 8010BBA0 A02D6305 */ sb $t5, 0x6305($at) -.L8010BBA4: -/* B82D44 8010BBA4 8FAE0030 */ lw $t6, 0x30($sp) -/* B82D48 8010BBA8 26417FFF */ addiu $at, $s2, 0x7fff -/* B82D4C 8010BBAC 85CF6404 */ lh $t7, 0x6404($t6) -/* B82D50 8010BBB0 A42F6407 */ sh $t7, 0x6407($at) -/* B82D54 8010BBB4 87B8004A */ lh $t8, 0x4a($sp) -/* B82D58 8010BBB8 1700000B */ bnez $t8, .L8010BBE8 -/* B82D5C 8010BBBC 00000000 */ nop -/* B82D60 8010BBC0 0C021C23 */ jal Interface_LoadActionLabelB -/* B82D64 8010BBC4 8FA40058 */ lw $a0, 0x58($sp) -/* B82D68 8010BBC8 3C198016 */ lui $t9, %hi(gSaveContext+0x13ea) # $t9, 0x8016 -/* B82D6C 8010BBCC 9739FA4A */ lhu $t9, %lo(gSaveContext+0x13ea)($t9) -/* B82D70 8010BBD0 2404000A */ li $a0, 10 -/* B82D74 8010BBD4 0C020978 */ jal Interface_ChangeAlpha -/* B82D78 8010BBD8 A7B9004A */ sh $t9, 0x4a($sp) -/* B82D7C 8010BBDC 87A8004A */ lh $t0, 0x4a($sp) -/* B82D80 8010BBE0 3C018016 */ lui $at, %hi(gSaveContext+0x13ea) # $at, 0x8016 -/* B82D84 8010BBE4 A428FA4A */ sh $t0, %lo(gSaveContext+0x13ea)($at) -.L8010BBE8: -/* B82D88 8010BBE8 3C048015 */ lui $a0, %hi(D_80154428) # $a0, 0x8015 -/* B82D8C 8010BBEC 0C00084C */ jal osSyncPrintf -/* B82D90 8010BBF0 24844428 */ addiu $a0, %lo(D_80154428) # addiu $a0, $a0, 0x4428 -/* B82D94 8010BBF4 24010001 */ li $at, 1 -/* B82D98 8010BBF8 12210003 */ beq $s1, $at, .L8010BC08 -/* B82D9C 8010BBFC 24090009 */ li $t1, 9 -/* B82DA0 8010BC00 24010030 */ li $at, 48 -/* B82DA4 8010BC04 16210005 */ bne $s1, $at, .L8010BC1C -.L8010BC08: -/* B82DA8 8010BC08 26417FFF */ addiu $at, $s2, 0x7fff -/* B82DAC 8010BC0C 240A0063 */ li $t2, 99 -/* B82DB0 8010BC10 A0296305 */ sb $t1, 0x6305($at) -/* B82DB4 8010BC14 10000039 */ b .L8010BCFC -/* B82DB8 8010BC18 A02A62FE */ sb $t2, 0x62fe($at) -.L8010BC1C: -/* B82DBC 8010BC1C 2401002F */ li $at, 47 -/* B82DC0 8010BC20 16210006 */ bne $s1, $at, .L8010BC3C -/* B82DC4 8010BC24 240B0031 */ li $t3, 49 -/* B82DC8 8010BC28 26417FFF */ addiu $at, $s2, 0x7fff -/* B82DCC 8010BC2C 240C0002 */ li $t4, 2 -/* B82DD0 8010BC30 A02B6305 */ sb $t3, 0x6305($at) -/* B82DD4 8010BC34 10000031 */ b .L8010BCFC -/* B82DD8 8010BC38 A02C62FE */ sb $t4, 0x62fe($at) -.L8010BC3C: -/* B82DDC 8010BC3C 2401002E */ li $at, 46 -/* B82DE0 8010BC40 5621000A */ bnel $s1, $at, .L8010BC6C -/* B82DE4 8010BC44 2401002B */ li $at, 43 -/* B82DE8 8010BC48 0C020978 */ jal Interface_ChangeAlpha -/* B82DEC 8010BC4C 24040001 */ li $a0, 1 -/* B82DF0 8010BC50 0C0426CF */ jal func_80109B3C -/* B82DF4 8010BC54 8FA40058 */ lw $a0, 0x58($sp) -/* B82DF8 8010BC58 240D0029 */ li $t5, 41 -/* B82DFC 8010BC5C 26417FFF */ addiu $at, $s2, 0x7fff -/* B82E00 8010BC60 10000026 */ b .L8010BCFC -/* B82E04 8010BC64 A02D6305 */ sb $t5, 0x6305($at) -/* B82E08 8010BC68 2401002B */ li $at, 43 -.L8010BC6C: -/* B82E0C 8010BC6C 16210023 */ bne $s1, $at, .L8010BCFC -/* B82E10 8010BC70 3C048015 */ lui $a0, %hi(D_80154434) # $a0, 0x8015 -/* B82E14 8010BC74 0C00084C */ jal osSyncPrintf -/* B82E18 8010BC78 24844434 */ addiu $a0, %lo(D_80154434) # addiu $a0, $a0, 0x4434 -/* B82E1C 8010BC7C 0C03B616 */ jal func_800ED858 -/* B82E20 8010BC80 24040001 */ li $a0, 1 -/* B82E24 8010BC84 0C03B616 */ jal func_800ED858 -/* B82E28 8010BC88 24040001 */ li $a0, 1 -/* B82E2C 8010BC8C 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B82E30 8010BC90 00000000 */ nop -/* B82E34 8010BC94 3C048015 */ lui $a0, %hi(D_8014B2FC) # $a0, 0x8015 -/* B82E38 8010BC98 26417FFF */ addiu $at, $s2, 0x7fff -/* B82E3C 8010BC9C AC2262B9 */ sw $v0, 0x62b9($at) -/* B82E40 8010BCA0 2484B2FC */ addiu $a0, %lo(D_8014B2FC) # addiu $a0, $a0, -0x4d04 -/* B82E44 8010BCA4 A4800000 */ sh $zero, ($a0) -/* B82E48 8010BCA8 848E0000 */ lh $t6, ($a0) -/* B82E4C 8010BCAC 3C038015 */ lui $v1, %hi(D_8014B2F8) # $v1, 0x8015 -/* B82E50 8010BCB0 8FB80030 */ lw $t8, 0x30($sp) -/* B82E54 8010BCB4 2463B2F8 */ addiu $v1, %lo(D_8014B2F8) # addiu $v1, $v1, -0x4d08 -/* B82E58 8010BCB8 A46E0000 */ sh $t6, ($v1) -/* B82E5C 8010BCBC 846F0000 */ lh $t7, ($v1) -/* B82E60 8010BCC0 8F1962B8 */ lw $t9, 0x62b8($t8) -/* B82E64 8010BCC4 0C041A6C */ jal func_801069B0 -/* B82E68 8010BCC8 A32F0002 */ sb $t7, 2($t9) -/* B82E6C 8010BCCC 24080003 */ li $t0, 3 -/* B82E70 8010BCD0 26417FFF */ addiu $at, $s2, 0x7fff -/* B82E74 8010BCD4 24090023 */ li $t1, 35 -/* B82E78 8010BCD8 A02863E8 */ sb $t0, 0x63e8($at) -/* B82E7C 8010BCDC A0296305 */ sb $t1, 0x6305($at) -/* B82E80 8010BCE0 2404000F */ li $a0, 15 -/* B82E84 8010BCE4 0C03B64F */ jal func_800ED93C -/* B82E88 8010BCE8 24050001 */ li $a1, 1 -/* B82E8C 8010BCEC 3C018016 */ lui $at, %hi(gSaveContext+0x13ea) # $at, 0x8016 -/* B82E90 8010BCF0 A420FA4A */ sh $zero, %lo(gSaveContext+0x13ea)($at) -/* B82E94 8010BCF4 0C020978 */ jal Interface_ChangeAlpha -/* B82E98 8010BCF8 24040001 */ li $a0, 1 -.L8010BCFC: -/* B82E9C 8010BCFC 8FB10058 */ lw $s1, 0x58($sp) -/* B82EA0 8010BD00 00008025 */ move $s0, $zero -/* B82EA4 8010BD04 00001025 */ move $v0, $zero -/* B82EA8 8010BD08 26312200 */ addiu $s1, $s1, 0x2200 -/* B82EAC 8010BD0C 02202025 */ move $a0, $s1 -.L8010BD10: -/* B82EB0 8010BD10 34058140 */ li $a1, 33088 -/* B82EB4 8010BD14 3206FFFF */ andi $a2, $s0, 0xffff -/* B82EB8 8010BD18 0C01BB94 */ jal func_8006EE50 -/* B82EBC 8010BD1C A7A2004E */ sh $v0, 0x4e($sp) -/* B82EC0 8010BD20 87A2004E */ lh $v0, 0x4e($sp) -/* B82EC4 8010BD24 26100080 */ addiu $s0, $s0, 0x80 -/* B82EC8 8010BD28 24420001 */ addiu $v0, $v0, 1 -/* B82ECC 8010BD2C 00021400 */ sll $v0, $v0, 0x10 -/* B82ED0 8010BD30 00021403 */ sra $v0, $v0, 0x10 -/* B82ED4 8010BD34 28410030 */ slti $at, $v0, 0x30 -/* B82ED8 8010BD38 5420FFF5 */ bnezl $at, .L8010BD10 -/* B82EDC 8010BD3C 02202025 */ move $a0, $s1 -/* B82EE0 8010BD40 8FBF002C */ lw $ra, 0x2c($sp) -/* B82EE4 8010BD44 8FB00020 */ lw $s0, 0x20($sp) -/* B82EE8 8010BD48 8FB10024 */ lw $s1, 0x24($sp) -/* B82EEC 8010BD4C 8FB20028 */ lw $s2, 0x28($sp) -/* B82EF0 8010BD50 03E00008 */ jr $ra -/* B82EF4 8010BD54 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010BD58.s b/asm/non_matchings/code/z_message_PAL/func_8010BD58.s deleted file mode 100644 index c85aff56ea..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010BD58.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_8010BD58 -/* B82EF8 8010BD58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B82EFC 8010BD5C 3C010001 */ lui $at, 1 -/* B82F00 8010BD60 AFBF0014 */ sw $ra, 0x14($sp) -/* B82F04 8010BD64 AFA5001C */ sw $a1, 0x1c($sp) -/* B82F08 8010BD68 00240821 */ addu $at, $at, $a0 -/* B82F0C 8010BD6C 30A5FFFF */ andi $a1, $a1, 0xffff -/* B82F10 8010BD70 0C042E08 */ jal func_8010B820 -/* B82F14 8010BD74 A42004E6 */ sh $zero, 0x4e6($at) -/* B82F18 8010BD78 8FBF0014 */ lw $ra, 0x14($sp) -/* B82F1C 8010BD7C 27BD0018 */ addiu $sp, $sp, 0x18 -/* B82F20 8010BD80 03E00008 */ jr $ra -/* B82F24 8010BD84 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010BD88.s b/asm/non_matchings/code/z_message_PAL/func_8010BD88.s deleted file mode 100644 index 620ab0ad87..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010BD88.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8010BD88 -/* B82F28 8010BD88 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B82F2C 8010BD8C 3C010001 */ lui $at, 1 -/* B82F30 8010BD90 AFBF0014 */ sw $ra, 0x14($sp) -/* B82F34 8010BD94 AFA5001C */ sw $a1, 0x1c($sp) -/* B82F38 8010BD98 00240821 */ addu $at, $at, $a0 -/* B82F3C 8010BD9C 240E0001 */ li $t6, 1 -/* B82F40 8010BDA0 30A5FFFF */ andi $a1, $a1, 0xffff -/* B82F44 8010BDA4 0C042E08 */ jal func_8010B820 -/* B82F48 8010BDA8 A42E04E6 */ sh $t6, 0x4e6($at) -/* B82F4C 8010BDAC 8FBF0014 */ lw $ra, 0x14($sp) -/* B82F50 8010BDB0 27BD0018 */ addiu $sp, $sp, 0x18 -/* B82F54 8010BDB4 03E00008 */ jr $ra -/* B82F58 8010BDB8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010BDBC.s b/asm/non_matchings/code/z_message_PAL/func_8010BDBC.s deleted file mode 100644 index 81462e3d2c..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010BDBC.s +++ /dev/null @@ -1,86 +0,0 @@ -glabel func_8010BDBC -/* B82F5C 8010BDBC 34018000 */ li $at, 32768 -/* B82F60 8010BDC0 00811021 */ addu $v0, $a0, $at -/* B82F64 8010BDC4 8C4E6300 */ lw $t6, 0x6300($v0) -/* B82F68 8010BDC8 55C00004 */ bnezl $t6, .L8010BDDC -/* B82F6C 8010BDCC 90436304 */ lbu $v1, 0x6304($v0) -/* B82F70 8010BDD0 03E00008 */ jr $ra -/* B82F74 8010BDD4 00001025 */ move $v0, $zero -/* B82F78 8010BDD8 90436304 */ lbu $v1, 0x6304($v0) -.L8010BDDC: -/* B82F7C 8010BDDC 24010035 */ li $at, 53 -/* B82F80 8010BDE0 5461001D */ bnel $v1, $at, .L8010BE58 -/* B82F84 8010BDE4 24010034 */ li $at, 52 -/* B82F88 8010BDE8 904363E4 */ lbu $v1, 0x63e4($v0) -/* B82F8C 8010BDEC 24010030 */ li $at, 48 -/* B82F90 8010BDF0 54610004 */ bnel $v1, $at, .L8010BE04 -/* B82F94 8010BDF4 24010010 */ li $at, 16 -/* B82F98 8010BDF8 03E00008 */ jr $ra -/* B82F9C 8010BDFC 24020001 */ li $v0, 1 -/* B82FA0 8010BE00 24010010 */ li $at, 16 -.L8010BE04: -/* B82FA4 8010BE04 10610003 */ beq $v1, $at, .L8010BE14 -/* B82FA8 8010BE08 24010020 */ li $at, 32 -/* B82FAC 8010BE0C 54610004 */ bnel $v1, $at, .L8010BE20 -/* B82FB0 8010BE10 24010050 */ li $at, 80 -.L8010BE14: -/* B82FB4 8010BE14 03E00008 */ jr $ra -/* B82FB8 8010BE18 24020004 */ li $v0, 4 -/* B82FBC 8010BE1C 24010050 */ li $at, 80 -.L8010BE20: -/* B82FC0 8010BE20 10610003 */ beq $v1, $at, .L8010BE30 -/* B82FC4 8010BE24 24010040 */ li $at, 64 -/* B82FC8 8010BE28 54610004 */ bnel $v1, $at, .L8010BE3C -/* B82FCC 8010BE2C 24010060 */ li $at, 96 -.L8010BE30: -/* B82FD0 8010BE30 03E00008 */ jr $ra -/* B82FD4 8010BE34 24020005 */ li $v0, 5 -/* B82FD8 8010BE38 24010060 */ li $at, 96 -.L8010BE3C: -/* B82FDC 8010BE3C 14610003 */ bne $v1, $at, .L8010BE4C -/* B82FE0 8010BE40 00000000 */ nop -/* B82FE4 8010BE44 03E00008 */ jr $ra -/* B82FE8 8010BE48 24020003 */ li $v0, 3 -.L8010BE4C: -/* B82FEC 8010BE4C 03E00008 */ jr $ra -/* B82FF0 8010BE50 24020006 */ li $v0, 6 -/* B82FF4 8010BE54 24010034 */ li $at, 52 -.L8010BE58: -/* B82FF8 8010BE58 54610004 */ bnel $v1, $at, .L8010BE6C -/* B82FFC 8010BE5C 2401001A */ li $at, 26 -/* B83000 8010BE60 03E00008 */ jr $ra -/* B83004 8010BE64 2402000A */ li $v0, 10 -/* B83008 8010BE68 2401001A */ li $at, 26 -.L8010BE6C: -/* B8300C 8010BE6C 54610004 */ bnel $v1, $at, .L8010BE80 -/* B83010 8010BE70 944F63EE */ lhu $t7, 0x63ee($v0) -/* B83014 8010BE74 03E00008 */ jr $ra -/* B83018 8010BE78 24020007 */ li $v0, 7 -/* B8301C 8010BE7C 944F63EE */ lhu $t7, 0x63ee($v0) -.L8010BE80: -/* B83020 8010BE80 24010003 */ li $at, 3 -/* B83024 8010BE84 55E10004 */ bnel $t7, $at, .L8010BE98 -/* B83028 8010BE88 2401001F */ li $at, 31 -/* B8302C 8010BE8C 03E00008 */ jr $ra -/* B83030 8010BE90 24020008 */ li $v0, 8 -/* B83034 8010BE94 2401001F */ li $at, 31 -.L8010BE98: -/* B83038 8010BE98 54610004 */ bnel $v1, $at, .L8010BEAC -/* B8303C 8010BE9C 24010036 */ li $at, 54 -/* B83040 8010BEA0 03E00008 */ jr $ra -/* B83044 8010BEA4 24020009 */ li $v0, 9 -/* B83048 8010BEA8 24010036 */ li $at, 54 -.L8010BEAC: -/* B8304C 8010BEAC 54610008 */ bnel $v1, $at, .L8010BED0 -/* B83050 8010BEB0 24030003 */ li $v1, 3 -/* B83054 8010BEB4 905863E7 */ lbu $t8, 0x63e7($v0) -/* B83058 8010BEB8 24010001 */ li $at, 1 -/* B8305C 8010BEBC 57010004 */ bnel $t8, $at, .L8010BED0 -/* B83060 8010BEC0 24030003 */ li $v1, 3 -/* B83064 8010BEC4 03E00008 */ jr $ra -/* B83068 8010BEC8 24020002 */ li $v0, 2 -/* B8306C 8010BECC 24030003 */ li $v1, 3 -.L8010BED0: -/* B83070 8010BED0 03E00008 */ jr $ra -/* B83074 8010BED4 00601025 */ move $v0, $v1 - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010BED8.s b/asm/non_matchings/code/z_message_PAL/func_8010BED8.s deleted file mode 100644 index 2e57674f55..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010BED8.s +++ /dev/null @@ -1,296 +0,0 @@ -glabel func_8010BED8 -/* B83078 8010BED8 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* B8307C 8010BEDC AFA50064 */ sw $a1, 0x64($sp) -/* B83080 8010BEE0 8CA20000 */ lw $v0, ($a1) -/* B83084 8010BEE4 3C05E700 */ lui $a1, 0xe700 -/* B83088 8010BEE8 3C0CFA00 */ lui $t4, 0xfa00 -/* B8308C 8010BEEC 00401825 */ move $v1, $v0 -/* B83090 8010BEF0 AC650000 */ sw $a1, ($v1) -/* B83094 8010BEF4 AC600004 */ sw $zero, 4($v1) -/* B83098 8010BEF8 24420008 */ addiu $v0, $v0, 8 -/* B8309C 8010BEFC 00403025 */ move $a2, $v0 -/* B830A0 8010BF00 3401A0D8 */ li $at, 41176 -/* B830A4 8010BF04 00811821 */ addu $v1, $a0, $at -/* B830A8 8010BF08 ACCC0000 */ sw $t4, ($a2) -/* B830AC 8010BF0C 846E6400 */ lh $t6, 0x6400($v1) -/* B830B0 8010BF10 847863FE */ lh $t8, 0x63fe($v1) -/* B830B4 8010BF14 24420008 */ addiu $v0, $v0, 8 -/* B830B8 8010BF18 31CF00FF */ andi $t7, $t6, 0xff -/* B830BC 8010BF1C 0018CE00 */ sll $t9, $t8, 0x18 -/* B830C0 8010BF20 000FC400 */ sll $t8, $t7, 0x10 -/* B830C4 8010BF24 846F6402 */ lh $t7, 0x6402($v1) -/* B830C8 8010BF28 03387025 */ or $t6, $t9, $t8 -/* B830CC 8010BF2C 24010002 */ li $at, 2 -/* B830D0 8010BF30 31F900FF */ andi $t9, $t7, 0xff -/* B830D4 8010BF34 0019C200 */ sll $t8, $t9, 8 -/* B830D8 8010BF38 84796406 */ lh $t9, 0x6406($v1) -/* B830DC 8010BF3C 01D87825 */ or $t7, $t6, $t8 -/* B830E0 8010BF40 3C0AE600 */ lui $t2, 0xe600 -/* B830E4 8010BF44 332E00FF */ andi $t6, $t9, 0xff -/* B830E8 8010BF48 01EEC025 */ or $t8, $t7, $t6 -/* B830EC 8010BF4C ACD80004 */ sw $t8, 4($a2) -/* B830F0 8010BF50 906462FD */ lbu $a0, 0x62fd($v1) -/* B830F4 8010BF54 3C180700 */ lui $t8, (0x07000170 >> 16) # lui $t8, 0x700 -/* B830F8 8010BF58 3C0EF590 */ lui $t6, 0xf590 -/* B830FC 8010BF5C 10800003 */ beqz $a0, .L8010BF6C -/* B83100 8010BF60 3C19FD90 */ lui $t9, 0xfd90 -/* B83104 8010BF64 14810029 */ bne $a0, $at, .L8010C00C -/* B83108 8010BF68 00803025 */ move $a2, $a0 -.L8010BF6C: -/* B8310C 8010BF6C 00402025 */ move $a0, $v0 -/* B83110 8010BF70 AC990000 */ sw $t9, ($a0) -/* B83114 8010BF74 8C6F62B0 */ lw $t7, 0x62b0($v1) -/* B83118 8010BF78 24420008 */ addiu $v0, $v0, 8 -/* B8311C 8010BF7C 37180170 */ ori $t8, (0x07000170 & 0xFFFF) # ori $t8, $t8, 0x170 -/* B83120 8010BF80 AC8F0004 */ sw $t7, 4($a0) -/* B83124 8010BF84 00402025 */ move $a0, $v0 -/* B83128 8010BF88 AC8E0000 */ sw $t6, ($a0) -/* B8312C 8010BF8C AC980004 */ sw $t8, 4($a0) -/* B83130 8010BF90 24420008 */ addiu $v0, $v0, 8 -/* B83134 8010BF94 00402025 */ move $a0, $v0 -/* B83138 8010BF98 AC8A0000 */ sw $t2, ($a0) -/* B8313C 8010BF9C AC800004 */ sw $zero, 4($a0) -/* B83140 8010BFA0 24420008 */ addiu $v0, $v0, 8 -/* B83144 8010BFA4 00402025 */ move $a0, $v0 -/* B83148 8010BFA8 3C19077F */ lui $t9, (0x077FF100 >> 16) # lui $t9, 0x77f -/* B8314C 8010BFAC 3739F100 */ ori $t9, (0x077FF100 & 0xFFFF) # ori $t9, $t9, 0xf100 -/* B83150 8010BFB0 3C0BF300 */ lui $t3, 0xf300 -/* B83154 8010BFB4 AC8B0000 */ sw $t3, ($a0) -/* B83158 8010BFB8 AC990004 */ sw $t9, 4($a0) -/* B8315C 8010BFBC 24420008 */ addiu $v0, $v0, 8 -/* B83160 8010BFC0 00402025 */ move $a0, $v0 -/* B83164 8010BFC4 AC850000 */ sw $a1, ($a0) -/* B83168 8010BFC8 AC800004 */ sw $zero, 4($a0) -/* B8316C 8010BFCC 24420008 */ addiu $v0, $v0, 8 -/* B83170 8010BFD0 00402025 */ move $a0, $v0 -/* B83174 8010BFD4 3C0FF580 */ lui $t7, (0xF5801000 >> 16) # lui $t7, 0xf580 -/* B83178 8010BFD8 35EF1000 */ ori $t7, (0xF5801000 & 0xFFFF) # ori $t7, $t7, 0x1000 -/* B8317C 8010BFDC 240E0170 */ li $t6, 368 -/* B83180 8010BFE0 AC8E0004 */ sw $t6, 4($a0) -/* B83184 8010BFE4 AC8F0000 */ sw $t7, ($a0) -/* B83188 8010BFE8 24420008 */ addiu $v0, $v0, 8 -/* B8318C 8010BFEC 00402025 */ move $a0, $v0 -/* B83190 8010BFF0 3C18001F */ lui $t8, (0x001FC0FC >> 16) # lui $t8, 0x1f -/* B83194 8010BFF4 3718C0FC */ ori $t8, (0x001FC0FC & 0xFFFF) # ori $t8, $t8, 0xc0fc -/* B83198 8010BFF8 3C06F200 */ lui $a2, 0xf200 -/* B8319C 8010BFFC AC860000 */ sw $a2, ($a0) -/* B831A0 8010C000 AC980004 */ sw $t8, 4($a0) -/* B831A4 8010C004 1000003D */ b .L8010C0FC -/* B831A8 8010C008 24420008 */ addiu $v0, $v0, 8 -.L8010C00C: -/* B831AC 8010C00C 24010003 */ li $at, 3 -/* B831B0 8010C010 14C10008 */ bne $a2, $at, .L8010C034 -/* B831B4 8010C014 3C0AE600 */ lui $t2, 0xe600 -/* B831B8 8010C018 00402025 */ move $a0, $v0 -/* B831BC 8010C01C 3C19FB00 */ lui $t9, 0xfb00 -/* B831C0 8010C020 240F00FF */ li $t7, 255 -/* B831C4 8010C024 AC8F0004 */ sw $t7, 4($a0) -/* B831C8 8010C028 AC990000 */ sw $t9, ($a0) -/* B831CC 8010C02C 10000008 */ b .L8010C050 -/* B831D0 8010C030 24420008 */ addiu $v0, $v0, 8 -.L8010C034: -/* B831D4 8010C034 00402025 */ move $a0, $v0 -/* B831D8 8010C038 3C183214 */ lui $t8, (0x321400FF >> 16) # lui $t8, 0x3214 -/* B831DC 8010C03C 371800FF */ ori $t8, (0x321400FF & 0xFFFF) # ori $t8, $t8, 0xff -/* B831E0 8010C040 3C0EFB00 */ lui $t6, 0xfb00 -/* B831E4 8010C044 AC8E0000 */ sw $t6, ($a0) -/* B831E8 8010C048 AC980004 */ sw $t8, 4($a0) -/* B831EC 8010C04C 24420008 */ addiu $v0, $v0, 8 -.L8010C050: -/* B831F0 8010C050 00402025 */ move $a0, $v0 -/* B831F4 8010C054 3C19FD70 */ lui $t9, 0xfd70 -/* B831F8 8010C058 AC990000 */ sw $t9, ($a0) -/* B831FC 8010C05C 8C6F62B0 */ lw $t7, 0x62b0($v1) -/* B83200 8010C060 24420008 */ addiu $v0, $v0, 8 -/* B83204 8010C064 3C180704 */ lui $t8, (0x07040170 >> 16) # lui $t8, 0x704 -/* B83208 8010C068 AC8F0004 */ sw $t7, 4($a0) -/* B8320C 8010C06C 00402025 */ move $a0, $v0 -/* B83210 8010C070 37180170 */ ori $t8, (0x07040170 & 0xFFFF) # ori $t8, $t8, 0x170 -/* B83214 8010C074 3C0EF570 */ lui $t6, 0xf570 -/* B83218 8010C078 AC8E0000 */ sw $t6, ($a0) -/* B8321C 8010C07C AC980004 */ sw $t8, 4($a0) -/* B83220 8010C080 24420008 */ addiu $v0, $v0, 8 -/* B83224 8010C084 00402025 */ move $a0, $v0 -/* B83228 8010C088 AC8A0000 */ sw $t2, ($a0) -/* B8322C 8010C08C AC800004 */ sw $zero, 4($a0) -/* B83230 8010C090 24420008 */ addiu $v0, $v0, 8 -/* B83234 8010C094 00402025 */ move $a0, $v0 -/* B83238 8010C098 3C19077F */ lui $t9, (0x077FF100 >> 16) # lui $t9, 0x77f -/* B8323C 8010C09C 3739F100 */ ori $t9, (0x077FF100 & 0xFFFF) # ori $t9, $t9, 0xf100 -/* B83240 8010C0A0 3C0BF300 */ lui $t3, 0xf300 -/* B83244 8010C0A4 AC8B0000 */ sw $t3, ($a0) -/* B83248 8010C0A8 AC990004 */ sw $t9, 4($a0) -/* B8324C 8010C0AC 24420008 */ addiu $v0, $v0, 8 -/* B83250 8010C0B0 00402025 */ move $a0, $v0 -/* B83254 8010C0B4 AC850000 */ sw $a1, ($a0) -/* B83258 8010C0B8 AC800004 */ sw $zero, 4($a0) -/* B8325C 8010C0BC 24420008 */ addiu $v0, $v0, 8 -/* B83260 8010C0C0 00402025 */ move $a0, $v0 -/* B83264 8010C0C4 3C0E0004 */ lui $t6, (0x00040170 >> 16) # lui $t6, 4 -/* B83268 8010C0C8 3C0FF560 */ lui $t7, (0xF5601000 >> 16) # lui $t7, 0xf560 -/* B8326C 8010C0CC 35EF1000 */ ori $t7, (0xF5601000 & 0xFFFF) # ori $t7, $t7, 0x1000 -/* B83270 8010C0D0 35CE0170 */ ori $t6, (0x00040170 & 0xFFFF) # ori $t6, $t6, 0x170 -/* B83274 8010C0D4 AC8E0004 */ sw $t6, 4($a0) -/* B83278 8010C0D8 AC8F0000 */ sw $t7, ($a0) -/* B8327C 8010C0DC 24420008 */ addiu $v0, $v0, 8 -/* B83280 8010C0E0 00402025 */ move $a0, $v0 -/* B83284 8010C0E4 3C18001F */ lui $t8, (0x001FC0FC >> 16) # lui $t8, 0x1f -/* B83288 8010C0E8 3718C0FC */ ori $t8, (0x001FC0FC & 0xFFFF) # ori $t8, $t8, 0xc0fc -/* B8328C 8010C0EC 3C06F200 */ lui $a2, 0xf200 -/* B83290 8010C0F0 AC860000 */ sw $a2, ($a0) -/* B83294 8010C0F4 AC980004 */ sw $t8, 4($a0) -/* B83298 8010C0F8 24420008 */ addiu $v0, $v0, 8 -.L8010C0FC: -/* B8329C 8010C0FC 3C048016 */ lui $a0, %hi(gGameInfo) # $a0, 0x8016 -/* B832A0 8010C100 2484FA90 */ addiu $a0, %lo(gGameInfo) # addiu $a0, $a0, -0x570 -/* B832A4 8010C104 8C8D0000 */ lw $t5, ($a0) -/* B832A8 8010C108 3C07E400 */ lui $a3, 0xe400 -/* B832AC 8010C10C 00404025 */ move $t0, $v0 -/* B832B0 8010C110 85B904C2 */ lh $t9, 0x4c2($t5) -/* B832B4 8010C114 85AF0F16 */ lh $t7, 0xf16($t5) -/* B832B8 8010C118 24420008 */ addiu $v0, $v0, 8 -/* B832BC 8010C11C 00404825 */ move $t1, $v0 -/* B832C0 8010C120 032F7021 */ addu $t6, $t9, $t7 -/* B832C4 8010C124 000EC080 */ sll $t8, $t6, 2 -/* B832C8 8010C128 33190FFF */ andi $t9, $t8, 0xfff -/* B832CC 8010C12C 85B804C0 */ lh $t8, 0x4c0($t5) -/* B832D0 8010C130 85AE0F14 */ lh $t6, 0xf14($t5) -/* B832D4 8010C134 03277825 */ or $t7, $t9, $a3 -/* B832D8 8010C138 24420008 */ addiu $v0, $v0, 8 -/* B832DC 8010C13C 01D8C821 */ addu $t9, $t6, $t8 -/* B832E0 8010C140 00197080 */ sll $t6, $t9, 2 -/* B832E4 8010C144 31D80FFF */ andi $t8, $t6, 0xfff -/* B832E8 8010C148 0018CB00 */ sll $t9, $t8, 0xc -/* B832EC 8010C14C 01F97025 */ or $t6, $t7, $t9 -/* B832F0 8010C150 AD0E0000 */ sw $t6, ($t0) -/* B832F4 8010C154 8C8D0000 */ lw $t5, ($a0) -/* B832F8 8010C158 24010003 */ li $at, 3 -/* B832FC 8010C15C 85B80F16 */ lh $t8, 0xf16($t5) -/* B83300 8010C160 85AE0F14 */ lh $t6, 0xf14($t5) -/* B83304 8010C164 00187880 */ sll $t7, $t8, 2 -/* B83308 8010C168 31F90FFF */ andi $t9, $t7, 0xfff -/* B8330C 8010C16C 000EC080 */ sll $t8, $t6, 2 -/* B83310 8010C170 330F0FFF */ andi $t7, $t8, 0xfff -/* B83314 8010C174 000F7300 */ sll $t6, $t7, 0xc -/* B83318 8010C178 032EC025 */ or $t8, $t9, $t6 -/* B8331C 8010C17C AD180004 */ sw $t8, 4($t0) -/* B83320 8010C180 3C08E100 */ lui $t0, 0xe100 -/* B83324 8010C184 AD280000 */ sw $t0, ($t1) -/* B83328 8010C188 AD200004 */ sw $zero, 4($t1) -/* B8332C 8010C18C AFA20004 */ sw $v0, 4($sp) -/* B83330 8010C190 8FAF0004 */ lw $t7, 4($sp) -/* B83334 8010C194 3C09F100 */ lui $t1, 0xf100 -/* B83338 8010C198 24420008 */ addiu $v0, $v0, 8 -/* B8333C 8010C19C ADE90000 */ sw $t1, ($t7) -/* B83340 8010C1A0 8C8D0000 */ lw $t5, ($a0) -/* B83344 8010C1A4 85B904B6 */ lh $t9, 0x4b6($t5) -/* B83348 8010C1A8 00197040 */ sll $t6, $t9, 1 -/* B8334C 8010C1AC 31D8FFFF */ andi $t8, $t6, 0xffff -/* B83350 8010C1B0 85AE04B4 */ lh $t6, 0x4b4($t5) -/* B83354 8010C1B4 000E7C40 */ sll $t7, $t6, 0x11 -/* B83358 8010C1B8 8FAE0004 */ lw $t6, 4($sp) -/* B8335C 8010C1BC 030FC825 */ or $t9, $t8, $t7 -/* B83360 8010C1C0 3C0FFC61 */ lui $t7, (0xFC6196C3 >> 16) # lui $t7, 0xfc61 -/* B83364 8010C1C4 ADD90004 */ sw $t9, 4($t6) -/* B83368 8010C1C8 907862FD */ lbu $t8, 0x62fd($v1) -/* B8336C 8010C1CC 00401825 */ move $v1, $v0 -/* B83370 8010C1D0 3C19FF2F */ lui $t9, (0xFF2FFFFF >> 16) # lui $t9, 0xff2f -/* B83374 8010C1D4 1701005C */ bne $t8, $at, .L8010C348 -/* B83378 8010C1D8 35EF96C3 */ ori $t7, (0xFC6196C3 & 0xFFFF) # ori $t7, $t7, 0x96c3 -/* B8337C 8010C1DC 24420008 */ addiu $v0, $v0, 8 -/* B83380 8010C1E0 AC650000 */ sw $a1, ($v1) -/* B83384 8010C1E4 AC600004 */ sw $zero, 4($v1) -/* B83388 8010C1E8 00401825 */ move $v1, $v0 -/* B8338C 8010C1EC 3739FFFF */ ori $t9, (0xFF2FFFFF & 0xFFFF) # ori $t9, $t9, 0xffff -/* B83390 8010C1F0 AC790004 */ sw $t9, 4($v1) -/* B83394 8010C1F4 AC6F0000 */ sw $t7, ($v1) -/* B83398 8010C1F8 24420008 */ addiu $v0, $v0, 8 -/* B8339C 8010C1FC 00401825 */ move $v1, $v0 -/* B833A0 8010C200 3C0EFF64 */ lui $t6, (0xFF6400FF >> 16) # lui $t6, 0xff64 -/* B833A4 8010C204 35CE00FF */ ori $t6, (0xFF6400FF & 0xFFFF) # ori $t6, $t6, 0xff -/* B833A8 8010C208 AC6E0004 */ sw $t6, 4($v1) -/* B833AC 8010C20C AC6C0000 */ sw $t4, ($v1) -/* B833B0 8010C210 24420008 */ addiu $v0, $v0, 8 -/* B833B4 8010C214 00401825 */ move $v1, $v0 -/* B833B8 8010C218 3C0F0200 */ lui $t7, %hi(gOcarinaTrebleClefTex) # $t7, 0x200 -/* B833BC 8010C21C 25EF2E40 */ addiu $t7, %lo(gOcarinaTrebleClefTex) # addiu $t7, $t7, 0x2e40 -/* B833C0 8010C220 3C18FD90 */ lui $t8, 0xfd90 -/* B833C4 8010C224 AC780000 */ sw $t8, ($v1) -/* B833C8 8010C228 AC6F0004 */ sw $t7, 4($v1) -/* B833CC 8010C22C 24420008 */ addiu $v0, $v0, 8 -/* B833D0 8010C230 00401825 */ move $v1, $v0 -/* B833D4 8010C234 3C0E0704 */ lui $t6, (0x07040100 >> 16) # lui $t6, 0x704 -/* B833D8 8010C238 35CE0100 */ ori $t6, (0x07040100 & 0xFFFF) # ori $t6, $t6, 0x100 -/* B833DC 8010C23C 3C19F590 */ lui $t9, 0xf590 -/* B833E0 8010C240 AC790000 */ sw $t9, ($v1) -/* B833E4 8010C244 AC6E0004 */ sw $t6, 4($v1) -/* B833E8 8010C248 24420008 */ addiu $v0, $v0, 8 -/* B833EC 8010C24C 00401825 */ move $v1, $v0 -/* B833F0 8010C250 AC6A0000 */ sw $t2, ($v1) -/* B833F4 8010C254 AC600004 */ sw $zero, 4($v1) -/* B833F8 8010C258 24420008 */ addiu $v0, $v0, 8 -/* B833FC 8010C25C 00401825 */ move $v1, $v0 -/* B83400 8010C260 3C180707 */ lui $t8, (0x0707F800 >> 16) # lui $t8, 0x707 -/* B83404 8010C264 3718F800 */ ori $t8, (0x0707F800 & 0xFFFF) # ori $t8, $t8, 0xf800 -/* B83408 8010C268 AC780004 */ sw $t8, 4($v1) -/* B8340C 8010C26C AC6B0000 */ sw $t3, ($v1) -/* B83410 8010C270 24420008 */ addiu $v0, $v0, 8 -/* B83414 8010C274 00401825 */ move $v1, $v0 -/* B83418 8010C278 AC650000 */ sw $a1, ($v1) -/* B8341C 8010C27C AC600004 */ sw $zero, 4($v1) -/* B83420 8010C280 24420008 */ addiu $v0, $v0, 8 -/* B83424 8010C284 00401825 */ move $v1, $v0 -/* B83428 8010C288 3C190004 */ lui $t9, (0x00040100 >> 16) # lui $t9, 4 -/* B8342C 8010C28C 3C0FF580 */ lui $t7, (0xF5800200 >> 16) # lui $t7, 0xf580 -/* B83430 8010C290 35EF0200 */ ori $t7, (0xF5800200 & 0xFFFF) # ori $t7, $t7, 0x200 -/* B83434 8010C294 37390100 */ ori $t9, (0x00040100 & 0xFFFF) # ori $t9, $t9, 0x100 -/* B83438 8010C298 AC790004 */ sw $t9, 4($v1) -/* B8343C 8010C29C AC6F0000 */ sw $t7, ($v1) -/* B83440 8010C2A0 24420008 */ addiu $v0, $v0, 8 -/* B83444 8010C2A4 00401825 */ move $v1, $v0 -/* B83448 8010C2A8 3C0E0003 */ lui $t6, (0x0003C07C >> 16) # lui $t6, 3 -/* B8344C 8010C2AC 35CEC07C */ ori $t6, (0x0003C07C & 0xFFFF) # ori $t6, $t6, 0xc07c -/* B83450 8010C2B0 AC6E0004 */ sw $t6, 4($v1) -/* B83454 8010C2B4 AC660000 */ sw $a2, ($v1) -/* B83458 8010C2B8 8C8D0000 */ lw $t5, ($a0) -/* B8345C 8010C2BC 24420008 */ addiu $v0, $v0, 8 -/* B83460 8010C2C0 00401825 */ move $v1, $v0 -/* B83464 8010C2C4 85B80F24 */ lh $t8, 0xf24($t5) -/* B83468 8010C2C8 24420008 */ addiu $v0, $v0, 8 -/* B8346C 8010C2CC 270F0020 */ addiu $t7, $t8, 0x20 -/* B83470 8010C2D0 000FC880 */ sll $t9, $t7, 2 -/* B83474 8010C2D4 85AF0F22 */ lh $t7, 0xf22($t5) -/* B83478 8010C2D8 332E0FFF */ andi $t6, $t9, 0xfff -/* B8347C 8010C2DC 01C7C025 */ or $t8, $t6, $a3 -/* B83480 8010C2E0 25F90010 */ addiu $t9, $t7, 0x10 -/* B83484 8010C2E4 00197080 */ sll $t6, $t9, 2 -/* B83488 8010C2E8 31CF0FFF */ andi $t7, $t6, 0xfff -/* B8348C 8010C2EC 000FCB00 */ sll $t9, $t7, 0xc -/* B83490 8010C2F0 03197025 */ or $t6, $t8, $t9 -/* B83494 8010C2F4 AC6E0000 */ sw $t6, ($v1) -/* B83498 8010C2F8 8C8D0000 */ lw $t5, ($a0) -/* B8349C 8010C2FC 85AF0F24 */ lh $t7, 0xf24($t5) -/* B834A0 8010C300 85AE0F22 */ lh $t6, 0xf22($t5) -/* B834A4 8010C304 000FC080 */ sll $t8, $t7, 2 -/* B834A8 8010C308 33190FFF */ andi $t9, $t8, 0xfff -/* B834AC 8010C30C 000E7880 */ sll $t7, $t6, 2 -/* B834B0 8010C310 31F80FFF */ andi $t8, $t7, 0xfff -/* B834B4 8010C314 00187300 */ sll $t6, $t8, 0xc -/* B834B8 8010C318 032E7825 */ or $t7, $t9, $t6 -/* B834BC 8010C31C AC6F0004 */ sw $t7, 4($v1) -/* B834C0 8010C320 00401825 */ move $v1, $v0 -/* B834C4 8010C324 AC680000 */ sw $t0, ($v1) -/* B834C8 8010C328 AC600004 */ sw $zero, 4($v1) -/* B834CC 8010C32C 24420008 */ addiu $v0, $v0, 8 -/* B834D0 8010C330 00401825 */ move $v1, $v0 -/* B834D4 8010C334 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 -/* B834D8 8010C338 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* B834DC 8010C33C AC780004 */ sw $t8, 4($v1) -/* B834E0 8010C340 AC690000 */ sw $t1, ($v1) -/* B834E4 8010C344 24420008 */ addiu $v0, $v0, 8 -.L8010C348: -/* B834E8 8010C348 8FB90064 */ lw $t9, 0x64($sp) -/* B834EC 8010C34C 27BD0060 */ addiu $sp, $sp, 0x60 -/* B834F0 8010C350 03E00008 */ jr $ra -/* B834F4 8010C354 AF220000 */ sw $v0, ($t9) - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010C358.s b/asm/non_matchings/code/z_message_PAL/func_8010C358.s deleted file mode 100644 index 5f6e10bd26..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010C358.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8010C358 -/* B834F8 8010C358 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B834FC 8010C35C AFBF0014 */ sw $ra, 0x14($sp) -/* B83500 8010C360 240E00F0 */ li $t6, 240 -/* B83504 8010C364 240F0140 */ li $t7, 320 -/* B83508 8010C368 AFA40028 */ sw $a0, 0x28($sp) -/* B8350C 8010C36C AFAF0024 */ sw $t7, 0x24($sp) -/* B83510 8010C370 AFAE001C */ sw $t6, 0x1c($sp) -/* B83514 8010C374 AFA00018 */ sw $zero, 0x18($sp) -/* B83518 8010C378 AFA00020 */ sw $zero, 0x20($sp) -/* B8351C 8010C37C 0C02A93F */ jal View_SetViewport -/* B83520 8010C380 27A50018 */ addiu $a1, $sp, 0x18 -/* B83524 8010C384 0C02ACB1 */ jal func_800AB2C4 -/* B83528 8010C388 8FA40028 */ lw $a0, 0x28($sp) -/* B8352C 8010C38C 8FBF0014 */ lw $ra, 0x14($sp) -/* B83530 8010C390 27BD0028 */ addiu $sp, $sp, 0x28 -/* B83534 8010C394 03E00008 */ jr $ra -/* B83538 8010C398 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010C39C.s b/asm/non_matchings/code/z_message_PAL/func_8010C39C.s deleted file mode 100644 index 9585843621..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010C39C.s +++ /dev/null @@ -1,3565 +0,0 @@ -.rdata -glabel D_80154464 - # On Stage Performance - .asciz "台上演奏\n" - .balign 4 - -glabel D_80154470 - .asciz "Na_StartOcarinaSinglePlayCheck2( message->ocarina_no );\n" - .balign 4 - -glabel D_801544AC - # Performance Check=%d - .asciz "演奏チェック=%d\n" - .balign 4 - -glabel D_801544C0 - # locate=%d note_pt=%d - .asciz "locate=%d onpu_pt=%d\n" - .balign 4 - -glabel D_801544D8 - # Ocarina_Frog Correct Example Performance=%x - .asciz "Ocarina_Flog 正解模範演奏=%x\n" - .balign 4 - -glabel D_801544F8 - # Ocarina_Frog Correct Example Performance=%x - .asciz "Ocarina_Flog 正解模範演奏=%x\n" - .balign 4 - -glabel D_80154518 - # Ocarina_Free Correct Example Performance=%x - .asciz "Ocarina_Free 正解模範演奏=%x\n" - .balign 4 - -glabel D_80154538 - # Correct Example Performance=%x - .asciz "正解模範演奏=%x\n" - .balign 4 - -glabel D_8015454C - # kokokokokoko - .asciz "ここここここ\n" - .balign 4 - -glabel D_8015455C - # Cancel - .asciz "キャンセル\n" - .balign 4 - -glabel D_80154568 - .asciz "\x1b[32m" - .balign 4 - -glabel D_80154570 - .asciz "Na_StopOcarinaMode();\n" - .balign 4 - -glabel D_80154588 - .asciz "Na_StopOcarinaMode();\n" - .balign 4 - -glabel D_801545A0 - .asciz "Na_StopOcarinaMode();\n" - .balign 4 - -glabel D_801545B8 - .asciz "\x1b[m" - .balign 4 - -glabel D_801545BC - # ocarina_no=%d Song Chosen=%d - .asciz "ocarina_no=%d 選曲=%d\n" - .balign 4 - -glabel D_801545D4 - # Example Performance=%x - .asciz "模範演奏=%x\n" - .balign 4 - -glabel D_801545E4 - .asciz "\x1b[33m" - .balign 4 - -glabel D_801545EC - .asciz "☆☆☆ocarina=%d message->ocarina_no=%d " - .balign 4 - -glabel D_80154618 - .asciz "\x1b[33m" - .balign 4 - -glabel D_80154620 - .asciz "Ocarina_PC_Wind=%d(%d) ☆☆☆ " - .balign 4 - -glabel D_80154644 - .asciz "\x1b[32m" - .balign 4 - -glabel D_8015464C - .asciz "Ocarina_C_Wind=%d(%d) ☆☆☆ " - .balign 4 - -glabel D_8015466C - .asciz "\x1b[m" - .balign 4 - -glabel D_80154670 - .asciz "→ OCARINA_MODE=%d\n" - .balign 4 - -glabel D_80154688 - # note_buff[%d]=%x - .asciz "onpu_buff[%d]=%x\n" - .balign 4 - -glabel D_8015469C - .asciz "M_OCARINA20 : ocarina_no=%x status=%x\n" - .balign 4 - -glabel D_801546C8 - .asciz "\x1b[33m" - .balign 4 - -glabel D_801546D0 - # z_message.c Melody Acquired=%d - .asciz "z_message.c 取得メロディ=%d\n" - .balign 4 - -glabel D_801546F0 - .asciz "\x1b[m" - .balign 4 - -glabel D_801546F4 - # Scarecrow Recording Initialization - .asciz "案山子録音 初期化\n" - .balign 4 - -glabel D_80154708 - # note_pt=%d, locate=%d - .asciz "\nonpu_pt=%d, locate=%d" - .balign 4 - -glabel D_80154720 - # Button Entered【%d】=%d - .asciz " 入力ボタン【%d】=%d" - .balign 4 - -glabel D_80154738 - # Recording complete!!!!!!!!! message->info->status=%d - .asciz "録音終了!!!!!!!!! message->info->status=%d \n" - .balign 4 - -glabel D_80154770 - .asciz "aaaaaaaaaaaaaa\n" - .balign 4 - -glabel D_80154780 - # Recording complete!!!!!!!!!Recording Complete - .asciz "録音終了!!!!!!!!!録音終了\n" - .balign 4 - -glabel D_801547A4 - .asciz "\x1b[33m" - .balign 4 - -glabel D_801547AC - .asciz "\n====================================================================\n" - .balign 4 - -glabel D_801547F4 - .asciz "%d, " - .balign 4 - -glabel D_801547FC - .asciz "\x1b[m" - .balign 4 - -glabel D_80154800 - .asciz "\n====================================================================\n" - .balign 4 - -glabel D_80154848 - .asciz "status=%d (%d)\n" - .balign 4 - -glabel D_80154858 - .asciz "bbbbbbbbbbb\n" - .balign 4 - -glabel D_80154868 - # 8 Note Recording OK! - .asciz "8音録音OK!\n" - .balign 4 - -glabel D_80154878 - .asciz "\x1b[33m" - .balign 4 - -glabel D_80154880 - .asciz "\n====================================================================\n" - .balign 4 - -glabel D_801548C8 - .asciz "%d, " - .balign 4 - -glabel D_801548D0 - .asciz "\x1b[m" - .balign 4 - -glabel D_801548D4 - .asciz "\n====================================================================\n" - .balign 4 - -glabel D_8015491C - # Played an existing song!!! - .asciz "すでに存在する曲吹いた!!! \n" - .balign 4 - -glabel D_8015493C - .asciz "cccccccccccc\n" - .balign 4 - -glabel D_8015494C - # Musical round failed!!!!!!!!! - .asciz "輪唱失敗!!!!!!!!!\n" - .balign 4 - -glabel D_80154968 - # Musical round succeeded!!!!!!!!! - .asciz "輪唱成功!!!!!!!!!\n" - .balign 4 - -.late_rodata -glabel jtbl_80154BE8 - .word L8010C4F4 - .word L8010C4F4 - .word L8010C4F4 - .word L8010C4F4 - .word L8010C4FC - .word L8010C564 - .word L8010C578 - .word L8010C564 - .word L8010C5AC - .word L8010C5AC - .word L8010C5AC - .word L8010C750 - .word L8010CBFC - .word L8010D500 - .word L8010D50C - .word L8010D594 - .word L8010D65C - .word L8010D768 - .word L8010DC10 - .word L8010D924 - .word L8010D968 - .word L8010D9A0 - .word L8010D9D8 - .word L8010D824 - .word L8010DC10 - .word L8010DD08 - .word L8010DD1C - .word L8010CBFC - .word L8010D500 - .word L8010D594 - .word L8010DEAC - .word L8010EC60 - .word L8010DED8 - .word L8010DF4C - .word L8010E1D8 - .word L8010E334 - .word L8010E364 - .word L8010E544 - .word L8010CBFC - .word L8010E1D8 - .word L8010E580 - .word L8010E5F0 - .word L8010E730 - .word L8010E5F0 - .word L8010E730 - .word L8010E79C - .word L8010E904 - .word L8010EA20 - .word L8010EA70 - .word L8010EAE0 - .word L8010EB44 - .word L8010C578 - .word L8010EB4C - .word L8010EC58 - .word L8010EC58 - -.text -glabel func_8010C39C -/* B8353C 8010C39C 27BDFEA8 */ addiu $sp, $sp, -0x158 -/* B83540 8010C3A0 AFBF003C */ sw $ra, 0x3c($sp) -/* B83544 8010C3A4 AFB20038 */ sw $s2, 0x38($sp) -/* B83548 8010C3A8 AFB10034 */ sw $s1, 0x34($sp) -/* B8354C 8010C3AC AFB00030 */ sw $s0, 0x30($sp) -/* B83550 8010C3B0 AFA5015C */ sw $a1, 0x15c($sp) -/* B83554 8010C3B4 8C8E1C44 */ lw $t6, 0x1c44($a0) -/* B83558 8010C3B8 3C0FDB06 */ lui $t7, (0xDB060008 >> 16) # lui $t7, 0xdb06 -/* B8355C 8010C3BC 35EF0008 */ ori $t7, (0xDB060008 & 0xFFFF) # ori $t7, $t7, 8 -/* B83560 8010C3C0 AFAE0148 */ sw $t6, 0x148($sp) -/* B83564 8010C3C4 8CA20000 */ lw $v0, ($a1) -/* B83568 8010C3C8 3C010001 */ lui $at, 1 -/* B8356C 8010C3CC 0081C021 */ addu $t8, $a0, $at -/* B83570 8010C3D0 AFA20140 */ sw $v0, 0x140($sp) -/* B83574 8010C3D4 244E0008 */ addiu $t6, $v0, 8 -/* B83578 8010C3D8 AFAE0140 */ sw $t6, 0x140($sp) -/* B8357C 8010C3DC AC4F0000 */ sw $t7, ($v0) -/* B83580 8010C3E0 AFB8008C */ sw $t8, 0x8c($sp) -/* B83584 8010C3E4 8F0E0620 */ lw $t6, 0x620($t8) -/* B83588 8010C3E8 3C19DB06 */ lui $t9, (0xDB06001C >> 16) # lui $t9, 0xdb06 -/* B8358C 8010C3EC 3739001C */ ori $t9, (0xDB06001C & 0xFFFF) # ori $t9, $t9, 0x1c -/* B83590 8010C3F0 AC4E0004 */ sw $t6, 4($v0) -/* B83594 8010C3F4 8FAF0140 */ lw $t7, 0x140($sp) -/* B83598 8010C3F8 34018000 */ li $at, 32768 -/* B8359C 8010C3FC 249120D8 */ addiu $s1, $a0, 0x20d8 -/* B835A0 8010C400 25F80008 */ addiu $t8, $t7, 8 -/* B835A4 8010C404 AFB80140 */ sw $t8, 0x140($sp) -/* B835A8 8010C408 02218021 */ addu $s0, $s1, $at -/* B835AC 8010C40C ADF90000 */ sw $t9, ($t7) -/* B835B0 8010C410 8E0E62B0 */ lw $t6, 0x62b0($s0) -/* B835B4 8010C414 00809025 */ move $s2, $a0 -/* B835B8 8010C418 ADEE0004 */ sw $t6, 4($t7) -/* B835BC 8010C41C 8E0F6300 */ lw $t7, 0x6300($s0) -/* B835C0 8010C420 51E00BA2 */ beql $t7, $zero, .L8010F2AC -/* B835C4 8010C424 8FB80140 */ lw $t8, 0x140($sp) -/* B835C8 8010C428 961863F0 */ lhu $t8, 0x63f0($s0) -/* B835CC 8010C42C 2401002F */ li $at, 47 -/* B835D0 8010C430 13010014 */ beq $t8, $at, .L8010C484 -/* B835D4 8010C434 00000000 */ nop -/* B835D8 8010C438 92026304 */ lbu $v0, 0x6304($s0) -/* B835DC 8010C43C 24010017 */ li $at, 23 -/* B835E0 8010C440 10410010 */ beq $v0, $at, .L8010C484 -/* B835E4 8010C444 28410002 */ slti $at, $v0, 2 -/* B835E8 8010C448 1420000E */ bnez $at, .L8010C484 -/* B835EC 8010C44C 28410036 */ slti $at, $v0, 0x36 -/* B835F0 8010C450 1020000C */ beqz $at, .L8010C484 -/* B835F4 8010C454 00000000 */ nop -/* B835F8 8010C458 921962FD */ lbu $t9, 0x62fd($s0) -/* B835FC 8010C45C 2B210004 */ slti $at, $t9, 4 -/* B83600 8010C460 10200008 */ beqz $at, .L8010C484 -/* B83604 8010C464 00000000 */ nop -/* B83608 8010C468 0C0430D6 */ jal func_8010C358 -/* B8360C 8010C46C 02202025 */ move $a0, $s1 -/* B83610 8010C470 0C02515F */ jal func_8009457C -/* B83614 8010C474 27A40140 */ addiu $a0, $sp, 0x140 -/* B83618 8010C478 02402025 */ move $a0, $s2 -/* B8361C 8010C47C 0C042FB6 */ jal func_8010BED8 -/* B83620 8010C480 27A50140 */ addiu $a1, $sp, 0x140 -.L8010C484: -/* B83624 8010C484 0C02515F */ jal func_8009457C -/* B83628 8010C488 27A40140 */ addiu $a0, $sp, 0x140 -/* B8362C 8010C48C 8FAE0140 */ lw $t6, 0x140($sp) -/* B83630 8010C490 3C18E200 */ lui $t8, (0xE2001E01 >> 16) # lui $t8, 0xe200 -/* B83634 8010C494 37181E01 */ ori $t8, (0xE2001E01 & 0xFFFF) # ori $t8, $t8, 0x1e01 -/* B83638 8010C498 25CF0008 */ addiu $t7, $t6, 8 -/* B8363C 8010C49C AFAF0140 */ sw $t7, 0x140($sp) -/* B83640 8010C4A0 ADC00004 */ sw $zero, 4($t6) -/* B83644 8010C4A4 ADD80000 */ sw $t8, ($t6) -/* B83648 8010C4A8 8FB90140 */ lw $t9, 0x140($sp) -/* B8364C 8010C4AC 3C18FF2D */ lui $t8, (0xFF2DFEFF >> 16) # lui $t8, 0xff2d -/* B83650 8010C4B0 3C0FFCFF */ lui $t7, (0xFCFF97FF >> 16) # lui $t7, 0xfcff -/* B83654 8010C4B4 272E0008 */ addiu $t6, $t9, 8 -/* B83658 8010C4B8 AFAE0140 */ sw $t6, 0x140($sp) -/* B8365C 8010C4BC 35EF97FF */ ori $t7, (0xFCFF97FF & 0xFFFF) # ori $t7, $t7, 0x97ff -/* B83660 8010C4C0 3718FEFF */ ori $t8, (0xFF2DFEFF & 0xFFFF) # ori $t8, $t8, 0xfeff -/* B83664 8010C4C4 AF380004 */ sw $t8, 4($t9) -/* B83668 8010C4C8 AF2F0000 */ sw $t7, ($t9) -/* B8366C 8010C4CC 92026304 */ lbu $v0, 0x6304($s0) -/* B83670 8010C4D0 2459FFFF */ addiu $t9, $v0, -1 -/* B83674 8010C4D4 2F210037 */ sltiu $at, $t9, 0x37 -/* B83678 8010C4D8 102009E1 */ beqz $at, .L8010EC60 -/* B8367C 8010C4DC 0019C880 */ sll $t9, $t9, 2 -/* B83680 8010C4E0 3C018015 */ lui $at, %hi(jtbl_80154BE8) -/* B83684 8010C4E4 00390821 */ addu $at, $at, $t9 -/* B83688 8010C4E8 8C394BE8 */ lw $t9, %lo(jtbl_80154BE8)($at) -/* B8368C 8010C4EC 03200008 */ jr $t9 -/* B83690 8010C4F0 00000000 */ nop -glabel L8010C4F4 -/* B83694 8010C4F4 100009DF */ b .L8010EC74 -/* B83698 8010C4F8 2841000C */ slti $at, $v0, 0xc -glabel L8010C4FC -/* B8369C 8010C4FC 920E63E7 */ lbu $t6, 0x63e7($s0) -/* B836A0 8010C500 24010001 */ li $at, 1 -/* B836A4 8010C504 15C10015 */ bne $t6, $at, .L8010C55C -/* B836A8 8010C508 26442200 */ addiu $a0, $s2, 0x2200 -/* B836AC 8010C50C AFA40090 */ sw $a0, 0x90($sp) -/* B836B0 8010C510 00003025 */ move $a2, $zero -/* B836B4 8010C514 00003825 */ move $a3, $zero -.L8010C518: -/* B836B8 8010C518 8FA40090 */ lw $a0, 0x90($sp) -/* B836BC 8010C51C 34058140 */ li $a1, 33088 -/* B836C0 8010C520 A7A60132 */ sh $a2, 0x132($sp) -/* B836C4 8010C524 0C01BB94 */ jal func_8006EE50 -/* B836C8 8010C528 A7A70138 */ sh $a3, 0x138($sp) -/* B836CC 8010C52C 97A70138 */ lhu $a3, 0x138($sp) -/* B836D0 8010C530 97A60132 */ lhu $a2, 0x132($sp) -/* B836D4 8010C534 24E70001 */ addiu $a3, $a3, 1 -/* B836D8 8010C538 30E7FFFF */ andi $a3, $a3, 0xffff -/* B836DC 8010C53C 28E10030 */ slti $at, $a3, 0x30 -/* B836E0 8010C540 24C60080 */ addiu $a2, $a2, 0x80 -/* B836E4 8010C544 1420FFF4 */ bnez $at, .L8010C518 -/* B836E8 8010C548 30C6FFFF */ andi $a2, $a2, 0xffff -/* B836EC 8010C54C 02402025 */ move $a0, $s2 -/* B836F0 8010C550 0C0421AC */ jal func_801086B0 -/* B836F4 8010C554 27A50140 */ addiu $a1, $sp, 0x140 -/* B836F8 8010C558 92026304 */ lbu $v0, 0x6304($s0) -.L8010C55C: -/* B836FC 8010C55C 100009C5 */ b .L8010EC74 -/* B83700 8010C560 2841000C */ slti $at, $v0, 0xc -glabel L8010C564 -/* B83704 8010C564 02402025 */ move $a0, $s2 -/* B83708 8010C568 0C0421AC */ jal func_801086B0 -/* B8370C 8010C56C 27A50140 */ addiu $a1, $sp, 0x140 -/* B83710 8010C570 100009BF */ b .L8010EC70 -/* B83714 8010C574 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010C578 -/* B83718 8010C578 02402025 */ move $a0, $s2 -/* B8371C 8010C57C 0C0421AC */ jal func_801086B0 -/* B83720 8010C580 27A50140 */ addiu $a1, $sp, 0x140 -/* B83724 8010C584 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B83728 8010C588 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B8372C 8010C58C 8D280000 */ lw $t0, ($t1) -/* B83730 8010C590 02402025 */ move $a0, $s2 -/* B83734 8010C594 27A50140 */ addiu $a1, $sp, 0x140 -/* B83738 8010C598 85060B14 */ lh $a2, 0xb14($t0) -/* B8373C 8010C59C 0C041E60 */ jal func_80107980 -/* B83740 8010C5A0 85070B16 */ lh $a3, 0xb16($t0) -/* B83744 8010C5A4 100009B2 */ b .L8010EC70 -/* B83748 8010C5A8 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010C5AC -/* B8374C 8010C5AC 0C03B616 */ jal func_800ED858 -/* B83750 8010C5B0 24040001 */ li $a0, 1 -/* B83754 8010C5B4 0C03B8F5 */ jal func_800EE3D4 -/* B83758 8010C5B8 00000000 */ nop -/* B8375C 8010C5BC 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B83760 8010C5C0 26217FFF */ addiu $at, $s1, 0x7fff -/* B83764 8010C5C4 AC2262B9 */ sw $v0, 0x62b9($at) -/* B83768 8010C5C8 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B8376C 8010C5CC A5000000 */ sh $zero, ($t0) -/* B83770 8010C5D0 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B83774 8010C5D4 850F0000 */ lh $t7, ($t0) -/* B83778 8010C5D8 3C010001 */ lui $at, 1 -/* B8377C 8010C5DC 00320821 */ addu $at, $at, $s2 -/* B83780 8010C5E0 24190001 */ li $t9, 1 -/* B83784 8010C5E4 A30F0002 */ sb $t7, 2($t8) -/* B83788 8010C5E8 0C041A6C */ jal func_801069B0 -/* B8378C 8010C5EC A43904C6 */ sh $t9, 0x4c6($at) -/* B83790 8010C5F0 240E0001 */ li $t6, 1 -/* B83794 8010C5F4 3C018015 */ lui $at, %hi(D_80153CDC) # $at, 0x8015 -/* B83798 8010C5F8 A42E3CDC */ sh $t6, %lo(D_80153CDC)($at) -/* B8379C 8010C5FC 92026304 */ lbu $v0, 0x6304($s0) -/* B837A0 8010C600 240A0003 */ li $t2, 3 -/* B837A4 8010C604 3C018015 */ lui $at, %hi(D_80153CD8) # $at, 0x8015 -/* B837A8 8010C608 A42A3CD8 */ sh $t2, %lo(D_80153CD8)($at) -/* B837AC 8010C60C 24010009 */ li $at, 9 -/* B837B0 8010C610 5441002E */ bnel $v0, $at, .L8010C6CC -/* B837B4 8010C614 2401000A */ li $at, 10 -/* B837B8 8010C618 960263F0 */ lhu $v0, 0x63f0($s0) -/* B837BC 8010C61C 10400008 */ beqz $v0, .L8010C640 -/* B837C0 8010C620 24010001 */ li $at, 1 -/* B837C4 8010C624 10410006 */ beq $v0, $at, .L8010C640 -/* B837C8 8010C628 2401002C */ li $at, 44 -/* B837CC 8010C62C 10410004 */ beq $v0, $at, .L8010C640 -/* B837D0 8010C630 24010030 */ li $at, 48 -/* B837D4 8010C634 10410002 */ beq $v0, $at, .L8010C640 -/* B837D8 8010C638 28410022 */ slti $at, $v0, 0x22 -/* B837DC 8010C63C 14200014 */ bnez $at, .L8010C690 -.L8010C640: -/* B837E0 8010C640 24010001 */ li $at, 1 -/* B837E4 8010C644 10410002 */ beq $v0, $at, .L8010C650 -/* B837E8 8010C648 24010030 */ li $at, 48 -/* B837EC 8010C64C 14410008 */ bne $v0, $at, .L8010C670 -.L8010C650: -/* B837F0 8010C650 3C048015 */ lui $a0, %hi(D_8014B31C) # $a0, 0x8015 -/* B837F4 8010C654 9484B31C */ lhu $a0, %lo(D_8014B31C)($a0) -/* B837F8 8010C658 3401C000 */ li $at, 49152 -/* B837FC 8010C65C 00812021 */ addu $a0, $a0, $at -/* B83800 8010C660 0C03B301 */ jal func_800ECC04 -/* B83804 8010C664 3084FFFF */ andi $a0, $a0, 0xffff -/* B83808 8010C668 10000014 */ b .L8010C6BC -/* B8380C 8010C66C 2419000C */ li $t9, 12 -.L8010C670: -/* B83810 8010C670 3C048015 */ lui $a0, %hi(D_80154464) # $a0, 0x8015 -/* B83814 8010C674 0C00084C */ jal osSyncPrintf -/* B83818 8010C678 24844464 */ addiu $a0, %lo(D_80154464) # addiu $a0, $a0, 0x4464 -/* B8381C 8010C67C 3C048015 */ lui $a0, %hi(D_8014B31C) # $a0, 0x8015 -/* B83820 8010C680 0C03B301 */ jal func_800ECC04 -/* B83824 8010C684 9484B31C */ lhu $a0, %lo(D_8014B31C)($a0) -/* B83828 8010C688 1000000C */ b .L8010C6BC -/* B8382C 8010C68C 2419000C */ li $t9, 12 -.L8010C690: -/* B83830 8010C690 3C048015 */ lui $a0, %hi(D_80154470) # $a0, 0x8015 -/* B83834 8010C694 0C00084C */ jal osSyncPrintf -/* B83838 8010C698 24844470 */ addiu $a0, %lo(D_80154470) # addiu $a0, $a0, 0x4470 -/* B8383C 8010C69C 960F63F0 */ lhu $t7, 0x63f0($s0) -/* B83840 8010C6A0 24180001 */ li $t8, 1 -/* B83844 8010C6A4 34018000 */ li $at, 32768 -/* B83848 8010C6A8 01F82004 */ sllv $a0, $t8, $t7 -/* B8384C 8010C6AC 00812021 */ addu $a0, $a0, $at -/* B83850 8010C6B0 0C03B301 */ jal func_800ECC04 -/* B83854 8010C6B4 3084FFFF */ andi $a0, $a0, 0xffff -/* B83858 8010C6B8 2419000C */ li $t9, 12 -.L8010C6BC: -/* B8385C 8010C6BC 26217FFF */ addiu $at, $s1, 0x7fff -/* B83860 8010C6C0 10000019 */ b .L8010C728 -/* B83864 8010C6C4 A0396305 */ sb $t9, 0x6305($at) -/* B83868 8010C6C8 2401000A */ li $at, 10 -.L8010C6CC: -/* B8386C 8010C6CC 14410006 */ bne $v0, $at, .L8010C6E8 -/* B83870 8010C6D0 240E0014 */ li $t6, 20 -/* B83874 8010C6D4 26217FFF */ addiu $at, $s1, 0x7fff -/* B83878 8010C6D8 24180018 */ li $t8, 24 -/* B8387C 8010C6DC A02E63E8 */ sb $t6, 0x63e8($at) -/* B83880 8010C6E0 10000011 */ b .L8010C728 -/* B83884 8010C6E4 A0386305 */ sb $t8, 0x6305($at) -.L8010C6E8: -/* B83888 8010C6E8 960F63F0 */ lhu $t7, 0x63f0($s0) -/* B8388C 8010C6EC 240E0001 */ li $t6, 1 -/* B83890 8010C6F0 34018000 */ li $at, 32768 -/* B83894 8010C6F4 25F90011 */ addiu $t9, $t7, 0x11 -/* B83898 8010C6F8 032E2004 */ sllv $a0, $t6, $t9 -/* B8389C 8010C6FC 00812021 */ addu $a0, $a0, $at -/* B838A0 8010C700 0C03B301 */ jal func_800ECC04 -/* B838A4 8010C704 3084FFFF */ andi $a0, $a0, 0xffff -/* B838A8 8010C708 960563F0 */ lhu $a1, 0x63f0($s0) -/* B838AC 8010C70C 3C048015 */ lui $a0, %hi(D_801544AC) # $a0, 0x8015 -/* B838B0 8010C710 248444AC */ addiu $a0, %lo(D_801544AC) # addiu $a0, $a0, 0x44ac -/* B838B4 8010C714 0C00084C */ jal osSyncPrintf -/* B838B8 8010C718 24A5FFF1 */ addiu $a1, $a1, -0xf -/* B838BC 8010C71C 2418001B */ li $t8, 27 -/* B838C0 8010C720 26217FFF */ addiu $at, $s1, 0x7fff -/* B838C4 8010C724 A0386305 */ sb $t8, 0x6305($at) -.L8010C728: -/* B838C8 8010C728 960263F0 */ lhu $v0, 0x63f0($s0) -/* B838CC 8010C72C 24010001 */ li $at, 1 -/* B838D0 8010C730 10410005 */ beq $v0, $at, .L8010C748 -/* B838D4 8010C734 24010030 */ li $at, 48 -/* B838D8 8010C738 10410003 */ beq $v0, $at, .L8010C748 -/* B838DC 8010C73C 02402025 */ move $a0, $s2 -/* B838E0 8010C740 0C0421AC */ jal func_801086B0 -/* B838E4 8010C744 27A50140 */ addiu $a1, $sp, 0x140 -.L8010C748: -/* B838E8 8010C748 10000949 */ b .L8010EC70 -/* B838EC 8010C74C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010C750 -/* B838F0 8010C750 0C03B8F5 */ jal func_800EE3D4 -/* B838F4 8010C754 00000000 */ nop -/* B838F8 8010C758 26217FFF */ addiu $at, $s1, 0x7fff -/* B838FC 8010C75C AC2262B9 */ sw $v0, 0x62b9($at) -/* B83900 8010C760 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B83904 8010C764 90E30002 */ lbu $v1, 2($a3) -/* B83908 8010C768 10600029 */ beqz $v1, .L8010C810 -/* B8390C 8010C76C 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B83910 8010C770 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B83914 8010C774 3C048015 */ lui $a0, %hi(D_801544C0) # $a0, 0x8015 -/* B83918 8010C778 248444C0 */ addiu $a0, %lo(D_801544C0) # addiu $a0, $a0, 0x44c0 -/* B8391C 8010C77C 85060000 */ lh $a2, ($t0) -/* B83920 8010C780 0C00084C */ jal osSyncPrintf -/* B83924 8010C784 00602825 */ move $a1, $v1 -/* B83928 8010C788 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B8392C 8010C78C 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B83930 8010C790 24010001 */ li $at, 1 -/* B83934 8010C794 90E40002 */ lbu $a0, 2($a3) -/* B83938 8010C798 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B8393C 8010C79C 54810009 */ bnel $a0, $at, .L8010C7C4 -/* B83940 8010C7A0 850E0000 */ lh $t6, ($t0) -/* B83944 8010C7A4 850F0000 */ lh $t7, ($t0) -/* B83948 8010C7A8 24010008 */ li $at, 8 -/* B8394C 8010C7AC 55E10005 */ bnel $t7, $at, .L8010C7C4 -/* B83950 8010C7B0 850E0000 */ lh $t6, ($t0) -/* B83954 8010C7B4 A5000000 */ sh $zero, ($t0) -/* B83958 8010C7B8 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B8395C 8010C7BC 90E40002 */ lbu $a0, 2($a3) -/* B83960 8010C7C0 850E0000 */ lh $t6, ($t0) -.L8010C7C4: -/* B83964 8010C7C4 25D90001 */ addiu $t9, $t6, 1 -/* B83968 8010C7C8 54990012 */ bnel $a0, $t9, .L8010C814 -/* B8396C 8010C7CC 90F80001 */ lbu $t8, 1($a3) -/* B83970 8010C7D0 90E20000 */ lbu $v0, ($a3) -/* B83974 8010C7D4 3C018015 */ lui $at, %hi(D_8015394B) -/* B83978 8010C7D8 00240821 */ addu $at, $at, $a0 -/* B8397C 8010C7DC A022394B */ sb $v0, %lo(D_8015394B)($at) -/* B83980 8010C7E0 26217FFF */ addiu $at, $s1, 0x7fff -/* B83984 8010C7E4 A0226411 */ sb $v0, 0x6411($at) -/* B83988 8010C7E8 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B8398C 8010C7EC 3C018015 */ lui $at, %hi(D_8015394C) -/* B83990 8010C7F0 241800FF */ li $t8, 255 -/* B83994 8010C7F4 91EE0002 */ lbu $t6, 2($t7) -/* B83998 8010C7F8 002E0821 */ addu $at, $at, $t6 -/* B8399C 8010C7FC A038394C */ sb $t8, %lo(D_8015394C)($at) -/* B839A0 8010C800 85190000 */ lh $t9, ($t0) -/* B839A4 8010C804 272F0001 */ addiu $t7, $t9, 1 -/* B839A8 8010C808 A50F0000 */ sh $t7, ($t0) -/* B839AC 8010C80C 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010C810: -/* B839B0 8010C810 90F80001 */ lbu $t8, 1($a3) -.L8010C814: -/* B839B4 8010C814 26217FFF */ addiu $at, $s1, 0x7fff -/* B839B8 8010C818 A43863ED */ sh $t8, 0x63ed($at) -/* B839BC 8010C81C 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B839C0 8010C820 91C40001 */ lbu $a0, 1($t6) -/* B839C4 8010C824 2881000D */ slti $at, $a0, 0xd -/* B839C8 8010C828 102000C7 */ beqz $at, .L8010CB48 -/* B839CC 8010C82C 00803025 */ move $a2, $a0 -/* B839D0 8010C830 2405000C */ li $a1, 12 -/* B839D4 8010C834 10A4000C */ beq $a1, $a0, .L8010C868 -/* B839D8 8010C838 0004C840 */ sll $t9, $a0, 1 -/* B839DC 8010C83C 3C0F8015 */ lui $t7, %hi(D_8015396C) -/* B839E0 8010C840 01F97821 */ addu $t7, $t7, $t9 -/* B839E4 8010C844 85EF396C */ lh $t7, %lo(D_8015396C)($t7) -/* B839E8 8010C848 3C0E8012 */ lui $t6, %hi(gBitFlags+0x18) -/* B839EC 8010C84C 3C198016 */ lui $t9, %hi(gSaveContext+0xa4) # $t9, 0x8016 -/* B839F0 8010C850 000FC080 */ sll $t8, $t7, 2 -/* B839F4 8010C854 01D87021 */ addu $t6, $t6, $t8 -/* B839F8 8010C858 8DCE7138 */ lw $t6, %lo(gBitFlags+0x18)($t6) -/* B839FC 8010C85C 8F39E704 */ lw $t9, %lo(gSaveContext+0xa4)($t9) -/* B83A00 8010C860 01D97824 */ and $t7, $t6, $t9 -/* B83A04 8010C864 11E000A7 */ beqz $t7, .L8010CB04 -.L8010C868: -/* B83A08 8010C868 26217FFF */ addiu $at, $s1, 0x7fff -/* B83A0C 8010C86C A42463ED */ sh $a0, 0x63ed($at) -/* B83A10 8010C870 A42463F3 */ sh $a0, 0x63f3($at) -/* B83A14 8010C874 3C018015 */ lui $at, %hi(D_8014B310) # $at, 0x8015 -/* B83A18 8010C878 A424B310 */ sh $a0, %lo(D_8014B310)($at) -/* B83A1C 8010C87C 26217FFF */ addiu $at, $s1, 0x7fff -/* B83A20 8010C880 2418000D */ li $t8, 13 -/* B83A24 8010C884 240E0014 */ li $t6, 20 -/* B83A28 8010C888 A0386305 */ sb $t8, 0x6305($at) -/* B83A2C 8010C88C A02E63E8 */ sb $t6, 0x63e8($at) -/* B83A30 8010C890 960263F0 */ lhu $v0, 0x63f0($s0) -/* B83A34 8010C894 24010030 */ li $at, 48 -/* B83A38 8010C898 54410037 */ bnel $v0, $at, .L8010C978 -/* B83A3C 8010C89C 24010028 */ li $at, 40 -/* B83A40 8010C8A0 8E1962B8 */ lw $t9, 0x62b8($s0) -/* B83A44 8010C8A4 93260001 */ lbu $a2, 1($t9) -/* B83A48 8010C8A8 28C10006 */ slti $at, $a2, 6 -/* B83A4C 8010C8AC 14200003 */ bnez $at, .L8010C8BC -/* B83A50 8010C8B0 00000000 */ nop -/* B83A54 8010C8B4 14A60012 */ bne $a1, $a2, .L8010C900 -/* B83A58 8010C8B8 00000000 */ nop -.L8010C8BC: -/* B83A5C 8010C8BC 0C03B616 */ jal func_800ED858 -/* B83A60 8010C8C0 00002025 */ move $a0, $zero -/* B83A64 8010C8C4 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83A68 8010C8C8 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B83A6C 8010C8CC 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83A70 8010C8D0 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B83A74 8010C8D4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83A78 8010C8D8 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83A7C 8010C8DC AFAF0014 */ sw $t7, 0x14($sp) -/* B83A80 8010C8E0 AFA70010 */ sw $a3, 0x10($sp) -/* B83A84 8010C8E4 24044827 */ li $a0, 18471 -/* B83A88 8010C8E8 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83A8C 8010C8EC 24060004 */ li $a2, 4 -/* B83A90 8010C8F0 24180009 */ li $t8, 9 -/* B83A94 8010C8F4 26217FFF */ addiu $at, $s1, 0x7fff -/* B83A98 8010C8F8 1000007E */ b .L8010CAF4 -/* B83A9C 8010C8FC A0386305 */ sb $t8, 0x6305($at) -.L8010C900: -/* B83AA0 8010C900 3C048015 */ lui $a0, %hi(D_801544D8) # $a0, 0x8015 -/* B83AA4 8010C904 248444D8 */ addiu $a0, %lo(D_801544D8) # addiu $a0, $a0, 0x44d8 -/* B83AA8 8010C908 0C00084C */ jal osSyncPrintf -/* B83AAC 8010C90C 960563EC */ lhu $a1, 0x63ec($s0) -/* B83AB0 8010C910 02402025 */ move $a0, $s2 -/* B83AB4 8010C914 0C042DC8 */ jal func_8010B720 -/* B83AB8 8010C918 2405086F */ li $a1, 2159 -/* B83ABC 8010C91C 26217FFF */ addiu $at, $s1, 0x7fff -/* B83AC0 8010C920 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83AC4 8010C924 240E0011 */ li $t6, 17 -/* B83AC8 8010C928 24190003 */ li $t9, 3 -/* B83ACC 8010C92C 240F000A */ li $t7, 10 -/* B83AD0 8010C930 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B83AD4 8010C934 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83AD8 8010C938 A02E6305 */ sb $t6, 0x6305($at) -/* B83ADC 8010C93C A03962FE */ sb $t9, 0x62fe($at) -/* B83AE0 8010C940 A02F63E8 */ sb $t7, 0x63e8($at) -/* B83AE4 8010C944 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B83AE8 8010C948 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83AEC 8010C94C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83AF0 8010C950 AFB80014 */ sw $t8, 0x14($sp) -/* B83AF4 8010C954 AFA70010 */ sw $a3, 0x10($sp) -/* B83AF8 8010C958 24044807 */ li $a0, 18439 -/* B83AFC 8010C95C 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83B00 8010C960 24060004 */ li $a2, 4 -/* B83B04 8010C964 0C020978 */ jal Interface_ChangeAlpha -/* B83B08 8010C968 24040001 */ li $a0, 1 -/* B83B0C 8010C96C 10000061 */ b .L8010CAF4 -/* B83B10 8010C970 00000000 */ nop -/* B83B14 8010C974 24010028 */ li $at, 40 -.L8010C978: -/* B83B18 8010C978 54410037 */ bnel $v0, $at, .L8010CA58 -/* B83B1C 8010C97C 24010001 */ li $at, 1 -/* B83B20 8010C980 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B83B24 8010C984 91D90001 */ lbu $t9, 1($t6) -/* B83B28 8010C988 2B21000C */ slti $at, $t9, 0xc -/* B83B2C 8010C98C 10200014 */ beqz $at, .L8010C9E0 -/* B83B30 8010C990 00000000 */ nop -/* B83B34 8010C994 0C03B616 */ jal func_800ED858 -/* B83B38 8010C998 00002025 */ move $a0, $zero -/* B83B3C 8010C99C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83B40 8010C9A0 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B83B44 8010C9A4 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83B48 8010C9A8 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B83B4C 8010C9AC 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83B50 8010C9B0 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83B54 8010C9B4 AFAF0014 */ sw $t7, 0x14($sp) -/* B83B58 8010C9B8 AFA70010 */ sw $a3, 0x10($sp) -/* B83B5C 8010C9BC 24044827 */ li $a0, 18471 -/* B83B60 8010C9C0 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83B64 8010C9C4 24060004 */ li $a2, 4 -/* B83B68 8010C9C8 2418000A */ li $t8, 10 -/* B83B6C 8010C9CC 26217FFF */ addiu $at, $s1, 0x7fff -/* B83B70 8010C9D0 240E000E */ li $t6, 14 -/* B83B74 8010C9D4 A03863E8 */ sb $t8, 0x63e8($at) -/* B83B78 8010C9D8 10000046 */ b .L8010CAF4 -/* B83B7C 8010C9DC A02E6305 */ sb $t6, 0x6305($at) -.L8010C9E0: -/* B83B80 8010C9E0 3C048015 */ lui $a0, %hi(D_801544F8) # $a0, 0x8015 -/* B83B84 8010C9E4 248444F8 */ addiu $a0, %lo(D_801544F8) # addiu $a0, $a0, 0x44f8 -/* B83B88 8010C9E8 0C00084C */ jal osSyncPrintf -/* B83B8C 8010C9EC 960563EC */ lhu $a1, 0x63ec($s0) -/* B83B90 8010C9F0 02402025 */ move $a0, $s2 -/* B83B94 8010C9F4 0C042DC8 */ jal func_8010B720 -/* B83B98 8010C9F8 2405086F */ li $a1, 2159 -/* B83B9C 8010C9FC 26217FFF */ addiu $at, $s1, 0x7fff -/* B83BA0 8010CA00 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83BA4 8010CA04 24190011 */ li $t9, 17 -/* B83BA8 8010CA08 240F0003 */ li $t7, 3 -/* B83BAC 8010CA0C 2418000A */ li $t8, 10 -/* B83BB0 8010CA10 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B83BB4 8010CA14 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83BB8 8010CA18 A0396305 */ sb $t9, 0x6305($at) -/* B83BBC 8010CA1C A02F62FE */ sb $t7, 0x62fe($at) -/* B83BC0 8010CA20 A03863E8 */ sb $t8, 0x63e8($at) -/* B83BC4 8010CA24 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B83BC8 8010CA28 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83BCC 8010CA2C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83BD0 8010CA30 AFAE0014 */ sw $t6, 0x14($sp) -/* B83BD4 8010CA34 AFA70010 */ sw $a3, 0x10($sp) -/* B83BD8 8010CA38 24044807 */ li $a0, 18439 -/* B83BDC 8010CA3C 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83BE0 8010CA40 24060004 */ li $a2, 4 -/* B83BE4 8010CA44 0C020978 */ jal Interface_ChangeAlpha -/* B83BE8 8010CA48 24040001 */ li $a0, 1 -/* B83BEC 8010CA4C 10000029 */ b .L8010CAF4 -/* B83BF0 8010CA50 00000000 */ nop -/* B83BF4 8010CA54 24010001 */ li $at, 1 -.L8010CA58: -/* B83BF8 8010CA58 1441001B */ bne $v0, $at, .L8010CAC8 -/* B83BFC 8010CA5C 3C048015 */ lui $a0, %hi(D_80154518) # $a0, 0x8015 -/* B83C00 8010CA60 24844518 */ addiu $a0, %lo(D_80154518) # addiu $a0, $a0, 0x4518 -/* B83C04 8010CA64 0C00084C */ jal osSyncPrintf -/* B83C08 8010CA68 960563EC */ lhu $a1, 0x63ec($s0) -/* B83C0C 8010CA6C 02402025 */ move $a0, $s2 -/* B83C10 8010CA70 0C042DC8 */ jal func_8010B720 -/* B83C14 8010CA74 2405086F */ li $a1, 2159 -/* B83C18 8010CA78 26217FFF */ addiu $at, $s1, 0x7fff -/* B83C1C 8010CA7C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83C20 8010CA80 24190011 */ li $t9, 17 -/* B83C24 8010CA84 240F0003 */ li $t7, 3 -/* B83C28 8010CA88 2418000A */ li $t8, 10 -/* B83C2C 8010CA8C 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B83C30 8010CA90 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83C34 8010CA94 A0396305 */ sb $t9, 0x6305($at) -/* B83C38 8010CA98 A02F62FE */ sb $t7, 0x62fe($at) -/* B83C3C 8010CA9C A03863E8 */ sb $t8, 0x63e8($at) -/* B83C40 8010CAA0 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B83C44 8010CAA4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83C48 8010CAA8 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83C4C 8010CAAC AFAE0014 */ sw $t6, 0x14($sp) -/* B83C50 8010CAB0 AFA70010 */ sw $a3, 0x10($sp) -/* B83C54 8010CAB4 24044807 */ li $a0, 18439 -/* B83C58 8010CAB8 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83C5C 8010CABC 24060004 */ li $a2, 4 -/* B83C60 8010CAC0 1000000C */ b .L8010CAF4 -/* B83C64 8010CAC4 00000000 */ nop -.L8010CAC8: -/* B83C68 8010CAC8 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B83C6C 8010CACC 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B83C70 8010CAD0 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B83C74 8010CAD4 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B83C78 8010CAD8 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83C7C 8010CADC 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83C80 8010CAE0 AFB90014 */ sw $t9, 0x14($sp) -/* B83C84 8010CAE4 AFA70010 */ sw $a3, 0x10($sp) -/* B83C88 8010CAE8 24044807 */ li $a0, 18439 -/* B83C8C 8010CAEC 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83C90 8010CAF0 24060004 */ li $a2, 4 -.L8010CAF4: -/* B83C94 8010CAF4 0C020978 */ jal Interface_ChangeAlpha -/* B83C98 8010CAF8 24040001 */ li $a0, 1 -/* B83C9C 8010CAFC 10000036 */ b .L8010CBD8 -/* B83CA0 8010CB00 960263F0 */ lhu $v0, 0x63f0($s0) -.L8010CB04: -/* B83CA4 8010CB04 0C03B616 */ jal func_800ED858 -/* B83CA8 8010CB08 00002025 */ move $a0, $zero -/* B83CAC 8010CB0C 3C0F8013 */ lui $t7, %hi(D_801333E0) -/* B83CB0 8010CB10 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B83CB4 8010CB14 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B83CB8 8010CB18 25E733E0 */ addiu $a3, $t7, %lo(D_801333E0) -/* B83CBC 8010CB1C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83CC0 8010CB20 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83CC4 8010CB24 AFA70010 */ sw $a3, 0x10($sp) -/* B83CC8 8010CB28 AFB80014 */ sw $t8, 0x14($sp) -/* B83CCC 8010CB2C 24044827 */ li $a0, 18471 -/* B83CD0 8010CB30 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83CD4 8010CB34 24060004 */ li $a2, 4 -/* B83CD8 8010CB38 240E0009 */ li $t6, 9 -/* B83CDC 8010CB3C 26217FFF */ addiu $at, $s1, 0x7fff -/* B83CE0 8010CB40 10000024 */ b .L8010CBD4 -/* B83CE4 8010CB44 A02E6305 */ sb $t6, 0x6305($at) -.L8010CB48: -/* B83CE8 8010CB48 240100FF */ li $at, 255 -/* B83CEC 8010CB4C 54C10015 */ bnel $a2, $at, .L8010CBA4 -/* B83CF0 8010CB50 96590020 */ lhu $t9, 0x20($s2) -/* B83CF4 8010CB54 0C03B616 */ jal func_800ED858 -/* B83CF8 8010CB58 00002025 */ move $a0, $zero -/* B83CFC 8010CB5C 3C198013 */ lui $t9, %hi(D_801333E0) -/* B83D00 8010CB60 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B83D04 8010CB64 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B83D08 8010CB68 272733E0 */ addiu $a3, $t9, %lo(D_801333E0) -/* B83D0C 8010CB6C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B83D10 8010CB70 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B83D14 8010CB74 AFA70010 */ sw $a3, 0x10($sp) -/* B83D18 8010CB78 AFAF0014 */ sw $t7, 0x14($sp) -/* B83D1C 8010CB7C 24044827 */ li $a0, 18471 -/* B83D20 8010CB80 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B83D24 8010CB84 24060004 */ li $a2, 4 -/* B83D28 8010CB88 2418000A */ li $t8, 10 -/* B83D2C 8010CB8C 26217FFF */ addiu $at, $s1, 0x7fff -/* B83D30 8010CB90 240E000E */ li $t6, 14 -/* B83D34 8010CB94 A03863E8 */ sb $t8, 0x63e8($at) -/* B83D38 8010CB98 1000000E */ b .L8010CBD4 -/* B83D3C 8010CB9C A02E6305 */ sb $t6, 0x6305($at) -/* B83D40 8010CBA0 96590020 */ lhu $t9, 0x20($s2) -.L8010CBA4: -/* B83D44 8010CBA4 2401BFFF */ li $at, -16385 -/* B83D48 8010CBA8 03217827 */ nor $t7, $t9, $at -/* B83D4C 8010CBAC 55E0000A */ bnezl $t7, .L8010CBD8 -/* B83D50 8010CBB0 960263F0 */ lhu $v0, 0x63f0($s0) -/* B83D54 8010CBB4 0C03B616 */ jal func_800ED858 -/* B83D58 8010CBB8 00002025 */ move $a0, $zero -/* B83D5C 8010CBBC 3C010001 */ lui $at, 1 -/* B83D60 8010CBC0 00320821 */ addu $at, $at, $s2 -/* B83D64 8010CBC4 24180004 */ li $t8, 4 -/* B83D68 8010CBC8 A43804C6 */ sh $t8, 0x4c6($at) -/* B83D6C 8010CBCC 0C041B33 */ jal func_80106CCC -/* B83D70 8010CBD0 02402025 */ move $a0, $s2 -.L8010CBD4: -/* B83D74 8010CBD4 960263F0 */ lhu $v0, 0x63f0($s0) -.L8010CBD8: -/* B83D78 8010CBD8 24010001 */ li $at, 1 -/* B83D7C 8010CBDC 10410005 */ beq $v0, $at, .L8010CBF4 -/* B83D80 8010CBE0 24010030 */ li $at, 48 -/* B83D84 8010CBE4 10410003 */ beq $v0, $at, .L8010CBF4 -/* B83D88 8010CBE8 02402025 */ move $a0, $s2 -/* B83D8C 8010CBEC 0C0421AC */ jal func_801086B0 -/* B83D90 8010CBF0 27A50140 */ addiu $a1, $sp, 0x140 -.L8010CBF4: -/* B83D94 8010CBF4 1000081E */ b .L8010EC70 -/* B83D98 8010CBF8 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010CBFC -/* B83D9C 8010CBFC 3C0E8015 */ lui $t6, %hi(D_80153CDC) # $t6, 0x8015 -/* B83DA0 8010CC00 85CE3CDC */ lh $t6, %lo(D_80153CDC)($t6) -/* B83DA4 8010CC04 3C0F8015 */ lui $t7, %hi(D_80153CA8) # $t7, 0x8015 -/* B83DA8 8010CC08 25EF3CA8 */ addiu $t7, %lo(D_80153CA8) # addiu $t7, $t7, 0x3ca8 -/* B83DAC 8010CC0C 000EC880 */ sll $t9, $t6, 2 -/* B83DB0 8010CC10 032EC823 */ subu $t9, $t9, $t6 -/* B83DB4 8010CC14 0019C840 */ sll $t9, $t9, 1 -/* B83DB8 8010CC18 032F2821 */ addu $a1, $t9, $t7 -/* B83DBC 8010CC1C 3C068017 */ lui $a2, %hi(D_801759A8) # $a2, 0x8017 -/* B83DC0 8010CC20 84C659A8 */ lh $a2, %lo(D_801759A8)($a2) -/* B83DC4 8010CC24 84B80000 */ lh $t8, ($a1) -/* B83DC8 8010CC28 AFB90088 */ sw $t9, 0x88($sp) -/* B83DCC 8010CC2C 00D81823 */ subu $v1, $a2, $t8 -/* B83DD0 8010CC30 AFB80080 */ sw $t8, 0x80($sp) -/* B83DD4 8010CC34 04600003 */ bltz $v1, .L8010CC44 -/* B83DD8 8010CC38 03007025 */ move $t6, $t8 -/* B83DDC 8010CC3C 10000002 */ b .L8010CC48 -/* B83DE0 8010CC40 00601025 */ move $v0, $v1 -.L8010CC44: -/* B83DE4 8010CC44 00031023 */ negu $v0, $v1 -.L8010CC48: -/* B83DE8 8010CC48 3C0A8015 */ lui $t2, %hi(D_80153CD8) # $t2, 0x8015 -/* B83DEC 8010CC4C 854A3CD8 */ lh $t2, %lo(D_80153CD8)($t2) -/* B83DF0 8010CC50 3C078017 */ lui $a3, %hi(D_801759AC) # $a3, 0x8017 -/* B83DF4 8010CC54 84E759AC */ lh $a3, %lo(D_801759AC)($a3) -/* B83DF8 8010CC58 004A001A */ div $zero, $v0, $t2 -/* B83DFC 8010CC5C 84B90002 */ lh $t9, 2($a1) -/* B83E00 8010CC60 00004012 */ mflo $t0 -/* B83E04 8010CC64 00084400 */ sll $t0, $t0, 0x10 -/* B83E08 8010CC68 15400002 */ bnez $t2, .L8010CC74 -/* B83E0C 8010CC6C 00000000 */ nop -/* B83E10 8010CC70 0007000D */ break 7 -.L8010CC74: -/* B83E14 8010CC74 2401FFFF */ li $at, -1 -/* B83E18 8010CC78 15410004 */ bne $t2, $at, .L8010CC8C -/* B83E1C 8010CC7C 3C018000 */ lui $at, 0x8000 -/* B83E20 8010CC80 14410002 */ bne $v0, $at, .L8010CC8C -/* B83E24 8010CC84 00000000 */ nop -/* B83E28 8010CC88 0006000D */ break 6 -.L8010CC8C: -/* B83E2C 8010CC8C 00F91823 */ subu $v1, $a3, $t9 -/* B83E30 8010CC90 00084403 */ sra $t0, $t0, 0x10 -/* B83E34 8010CC94 AFB90078 */ sw $t9, 0x78($sp) -/* B83E38 8010CC98 04600003 */ bltz $v1, .L8010CCA8 -/* B83E3C 8010CC9C 03207825 */ move $t7, $t9 -/* B83E40 8010CCA0 10000002 */ b .L8010CCAC -/* B83E44 8010CCA4 00601025 */ move $v0, $v1 -.L8010CCA8: -/* B83E48 8010CCA8 00031023 */ negu $v0, $v1 -.L8010CCAC: -/* B83E4C 8010CCAC 004A001A */ div $zero, $v0, $t2 -/* B83E50 8010CCB0 3C098017 */ lui $t1, %hi(D_801759AA) # $t1, 0x8017 -/* B83E54 8010CCB4 852959AA */ lh $t1, %lo(D_801759AA)($t1) -/* B83E58 8010CCB8 84AB0004 */ lh $t3, 4($a1) -/* B83E5C 8010CCBC 00002012 */ mflo $a0 -/* B83E60 8010CCC0 00042400 */ sll $a0, $a0, 0x10 -/* B83E64 8010CCC4 15400002 */ bnez $t2, .L8010CCD0 -/* B83E68 8010CCC8 00000000 */ nop -/* B83E6C 8010CCCC 0007000D */ break 7 -.L8010CCD0: -/* B83E70 8010CCD0 2401FFFF */ li $at, -1 -/* B83E74 8010CCD4 15410004 */ bne $t2, $at, .L8010CCE8 -/* B83E78 8010CCD8 3C018000 */ lui $at, 0x8000 -/* B83E7C 8010CCDC 14410002 */ bne $v0, $at, .L8010CCE8 -/* B83E80 8010CCE0 00000000 */ nop -/* B83E84 8010CCE4 0006000D */ break 6 -.L8010CCE8: -/* B83E88 8010CCE8 012B1823 */ subu $v1, $t1, $t3 -/* B83E8C 8010CCEC 04600003 */ bltz $v1, .L8010CCFC -/* B83E90 8010CCF0 00042403 */ sra $a0, $a0, 0x10 -/* B83E94 8010CCF4 10000002 */ b .L8010CD00 -/* B83E98 8010CCF8 00601025 */ move $v0, $v1 -.L8010CCFC: -/* B83E9C 8010CCFC 00031023 */ negu $v0, $v1 -.L8010CD00: -/* B83EA0 8010CD00 8FB80080 */ lw $t8, 0x80($sp) -/* B83EA4 8010CD04 00D8082A */ slt $at, $a2, $t8 -/* B83EA8 8010CD08 54200006 */ bnezl $at, .L8010CD24 -/* B83EAC 8010CD0C 00C8C821 */ addu $t9, $a2, $t0 -/* B83EB0 8010CD10 00C87023 */ subu $t6, $a2, $t0 -/* B83EB4 8010CD14 3C018017 */ lui $at, %hi(D_801759A8) # $at, 0x8017 -/* B83EB8 8010CD18 10000004 */ b .L8010CD2C -/* B83EBC 8010CD1C A42E59A8 */ sh $t6, %lo(D_801759A8)($at) -/* B83EC0 8010CD20 00C8C821 */ addu $t9, $a2, $t0 -.L8010CD24: -/* B83EC4 8010CD24 3C018017 */ lui $at, %hi(D_801759A8) # $at, 0x8017 -/* B83EC8 8010CD28 A43959A8 */ sh $t9, %lo(D_801759A8)($at) -.L8010CD2C: -/* B83ECC 8010CD2C 8FAF0078 */ lw $t7, 0x78($sp) -/* B83ED0 8010CD30 00EF082A */ slt $at, $a3, $t7 -/* B83ED4 8010CD34 54200006 */ bnezl $at, .L8010CD50 -/* B83ED8 8010CD38 00E47021 */ addu $t6, $a3, $a0 -/* B83EDC 8010CD3C 00E4C023 */ subu $t8, $a3, $a0 -/* B83EE0 8010CD40 3C018017 */ lui $at, %hi(D_801759AC) # $at, 0x8017 -/* B83EE4 8010CD44 10000004 */ b .L8010CD58 -/* B83EE8 8010CD48 A43859AC */ sh $t8, %lo(D_801759AC)($at) -/* B83EEC 8010CD4C 00E47021 */ addu $t6, $a3, $a0 -.L8010CD50: -/* B83EF0 8010CD50 3C018017 */ lui $at, %hi(D_801759AC) # $at, 0x8017 -/* B83EF4 8010CD54 A42E59AC */ sh $t6, %lo(D_801759AC)($at) -.L8010CD58: -/* B83EF8 8010CD58 012B082A */ slt $at, $t1, $t3 -/* B83EFC 8010CD5C 14200013 */ bnez $at, .L8010CDAC -/* B83F00 8010CD60 00000000 */ nop -/* B83F04 8010CD64 004A001A */ div $zero, $v0, $t2 -/* B83F08 8010CD68 15400002 */ bnez $t2, .L8010CD74 -/* B83F0C 8010CD6C 00000000 */ nop -/* B83F10 8010CD70 0007000D */ break 7 -.L8010CD74: -/* B83F14 8010CD74 2401FFFF */ li $at, -1 -/* B83F18 8010CD78 15410004 */ bne $t2, $at, .L8010CD8C -/* B83F1C 8010CD7C 3C018000 */ lui $at, 0x8000 -/* B83F20 8010CD80 14410002 */ bne $v0, $at, .L8010CD8C -/* B83F24 8010CD84 00000000 */ nop -/* B83F28 8010CD88 0006000D */ break 6 -.L8010CD8C: -/* B83F2C 8010CD8C 0000C812 */ mflo $t9 -/* B83F30 8010CD90 00197C00 */ sll $t7, $t9, 0x10 -/* B83F34 8010CD94 000FC403 */ sra $t8, $t7, 0x10 -/* B83F38 8010CD98 01387023 */ subu $t6, $t1, $t8 -/* B83F3C 8010CD9C 3C018017 */ lui $at, %hi(D_801759AA) # $at, 0x8017 -/* B83F40 8010CDA0 A42E59AA */ sh $t6, %lo(D_801759AA)($at) -/* B83F44 8010CDA4 10000012 */ b .L8010CDF0 -/* B83F48 8010CDA8 AFAB0070 */ sw $t3, 0x70($sp) -.L8010CDAC: -/* B83F4C 8010CDAC 004A001A */ div $zero, $v0, $t2 -/* B83F50 8010CDB0 15400002 */ bnez $t2, .L8010CDBC -/* B83F54 8010CDB4 00000000 */ nop -/* B83F58 8010CDB8 0007000D */ break 7 -.L8010CDBC: -/* B83F5C 8010CDBC 2401FFFF */ li $at, -1 -/* B83F60 8010CDC0 15410004 */ bne $t2, $at, .L8010CDD4 -/* B83F64 8010CDC4 3C018000 */ lui $at, 0x8000 -/* B83F68 8010CDC8 14410002 */ bne $v0, $at, .L8010CDD4 -/* B83F6C 8010CDCC 00000000 */ nop -/* B83F70 8010CDD0 0006000D */ break 6 -.L8010CDD4: -/* B83F74 8010CDD4 0000C812 */ mflo $t9 -/* B83F78 8010CDD8 00197C00 */ sll $t7, $t9, 0x10 -/* B83F7C 8010CDDC 000FC403 */ sra $t8, $t7, 0x10 -/* B83F80 8010CDE0 01387021 */ addu $t6, $t1, $t8 -/* B83F84 8010CDE4 3C018017 */ lui $at, %hi(D_801759AA) # $at, 0x8017 -/* B83F88 8010CDE8 A42E59AA */ sh $t6, %lo(D_801759AA)($at) -/* B83F8C 8010CDEC AFAB0070 */ sw $t3, 0x70($sp) -.L8010CDF0: -/* B83F90 8010CDF0 8FB90088 */ lw $t9, 0x88($sp) -/* B83F94 8010CDF4 3C0F8015 */ lui $t7, %hi(D_80153CB4) # $t7, 0x8015 -/* B83F98 8010CDF8 25EF3CB4 */ addiu $t7, %lo(D_80153CB4) # addiu $t7, $t7, 0x3cb4 -/* B83F9C 8010CDFC 3C068017 */ lui $a2, %hi(D_801759AE) # $a2, 0x8017 -/* B83FA0 8010CE00 032F2821 */ addu $a1, $t9, $t7 -/* B83FA4 8010CE04 84B80000 */ lh $t8, ($a1) -/* B83FA8 8010CE08 84C659AE */ lh $a2, %lo(D_801759AE)($a2) -/* B83FAC 8010CE0C AFB8007C */ sw $t8, 0x7c($sp) -/* B83FB0 8010CE10 00D81823 */ subu $v1, $a2, $t8 -/* B83FB4 8010CE14 04600003 */ bltz $v1, .L8010CE24 -/* B83FB8 8010CE18 03007025 */ move $t6, $t8 -/* B83FBC 8010CE1C 10000002 */ b .L8010CE28 -/* B83FC0 8010CE20 00601025 */ move $v0, $v1 -.L8010CE24: -/* B83FC4 8010CE24 00031023 */ negu $v0, $v1 -.L8010CE28: -/* B83FC8 8010CE28 004A001A */ div $zero, $v0, $t2 -/* B83FCC 8010CE2C 3C078017 */ lui $a3, %hi(D_801759B2) # $a3, 0x8017 -/* B83FD0 8010CE30 84E759B2 */ lh $a3, %lo(D_801759B2)($a3) -/* B83FD4 8010CE34 84B90002 */ lh $t9, 2($a1) -/* B83FD8 8010CE38 00004012 */ mflo $t0 -/* B83FDC 8010CE3C 00084400 */ sll $t0, $t0, 0x10 -/* B83FE0 8010CE40 15400002 */ bnez $t2, .L8010CE4C -/* B83FE4 8010CE44 00000000 */ nop -/* B83FE8 8010CE48 0007000D */ break 7 -.L8010CE4C: -/* B83FEC 8010CE4C 2401FFFF */ li $at, -1 -/* B83FF0 8010CE50 15410004 */ bne $t2, $at, .L8010CE64 -/* B83FF4 8010CE54 3C018000 */ lui $at, 0x8000 -/* B83FF8 8010CE58 14410002 */ bne $v0, $at, .L8010CE64 -/* B83FFC 8010CE5C 00000000 */ nop -/* B84000 8010CE60 0006000D */ break 6 -.L8010CE64: -/* B84004 8010CE64 00F91823 */ subu $v1, $a3, $t9 -/* B84008 8010CE68 00084403 */ sra $t0, $t0, 0x10 -/* B8400C 8010CE6C AFB9006C */ sw $t9, 0x6c($sp) -/* B84010 8010CE70 04600003 */ bltz $v1, .L8010CE80 -/* B84014 8010CE74 03207825 */ move $t7, $t9 -/* B84018 8010CE78 10000002 */ b .L8010CE84 -/* B8401C 8010CE7C 00601025 */ move $v0, $v1 -.L8010CE80: -/* B84020 8010CE80 00031023 */ negu $v0, $v1 -.L8010CE84: -/* B84024 8010CE84 004A001A */ div $zero, $v0, $t2 -/* B84028 8010CE88 3C098017 */ lui $t1, %hi(D_801759B0) # $t1, 0x8017 -/* B8402C 8010CE8C 852959B0 */ lh $t1, %lo(D_801759B0)($t1) -/* B84030 8010CE90 84AB0004 */ lh $t3, 4($a1) -/* B84034 8010CE94 00002012 */ mflo $a0 -/* B84038 8010CE98 00042400 */ sll $a0, $a0, 0x10 -/* B8403C 8010CE9C 15400002 */ bnez $t2, .L8010CEA8 -/* B84040 8010CEA0 00000000 */ nop -/* B84044 8010CEA4 0007000D */ break 7 -.L8010CEA8: -/* B84048 8010CEA8 2401FFFF */ li $at, -1 -/* B8404C 8010CEAC 15410004 */ bne $t2, $at, .L8010CEC0 -/* B84050 8010CEB0 3C018000 */ lui $at, 0x8000 -/* B84054 8010CEB4 14410002 */ bne $v0, $at, .L8010CEC0 -/* B84058 8010CEB8 00000000 */ nop -/* B8405C 8010CEBC 0006000D */ break 6 -.L8010CEC0: -/* B84060 8010CEC0 012B1823 */ subu $v1, $t1, $t3 -/* B84064 8010CEC4 00042403 */ sra $a0, $a0, 0x10 -/* B84068 8010CEC8 04600003 */ bltz $v1, .L8010CED8 -/* B8406C 8010CECC AFAB0064 */ sw $t3, 0x64($sp) -/* B84070 8010CED0 10000002 */ b .L8010CEDC -/* B84074 8010CED4 00601025 */ move $v0, $v1 -.L8010CED8: -/* B84078 8010CED8 00031023 */ negu $v0, $v1 -.L8010CEDC: -/* B8407C 8010CEDC 3C0B8017 */ lui $t3, %hi(D_801759BA) # $t3, 0x8017 -/* B84080 8010CEE0 856B59BA */ lh $t3, %lo(D_801759BA)($t3) -/* B84084 8010CEE4 8FB8007C */ lw $t8, 0x7c($sp) -/* B84088 8010CEE8 0178082A */ slt $at, $t3, $t8 -/* B8408C 8010CEEC 54200006 */ bnezl $at, .L8010CF08 -/* B84090 8010CEF0 00C8C821 */ addu $t9, $a2, $t0 -/* B84094 8010CEF4 00C87023 */ subu $t6, $a2, $t0 -/* B84098 8010CEF8 3C018017 */ lui $at, %hi(D_801759AE) # $at, 0x8017 -/* B8409C 8010CEFC 10000004 */ b .L8010CF10 -/* B840A0 8010CF00 A42E59AE */ sh $t6, %lo(D_801759AE)($at) -/* B840A4 8010CF04 00C8C821 */ addu $t9, $a2, $t0 -.L8010CF08: -/* B840A8 8010CF08 3C018017 */ lui $at, %hi(D_801759AE) # $at, 0x8017 -/* B840AC 8010CF0C A43959AE */ sh $t9, %lo(D_801759AE)($at) -.L8010CF10: -/* B840B0 8010CF10 3C0C8017 */ lui $t4, %hi(D_801759BE) # $t4, 0x8017 -/* B840B4 8010CF14 858C59BE */ lh $t4, %lo(D_801759BE)($t4) -/* B840B8 8010CF18 8FAF006C */ lw $t7, 0x6c($sp) -/* B840BC 8010CF1C 018F082A */ slt $at, $t4, $t7 -/* B840C0 8010CF20 54200006 */ bnezl $at, .L8010CF3C -/* B840C4 8010CF24 00E47021 */ addu $t6, $a3, $a0 -/* B840C8 8010CF28 00E4C023 */ subu $t8, $a3, $a0 -/* B840CC 8010CF2C 3C018017 */ lui $at, %hi(D_801759B2) # $at, 0x8017 -/* B840D0 8010CF30 10000004 */ b .L8010CF44 -/* B840D4 8010CF34 A43859B2 */ sh $t8, %lo(D_801759B2)($at) -/* B840D8 8010CF38 00E47021 */ addu $t6, $a3, $a0 -.L8010CF3C: -/* B840DC 8010CF3C 3C018017 */ lui $at, %hi(D_801759B2) # $at, 0x8017 -/* B840E0 8010CF40 A42E59B2 */ sh $t6, %lo(D_801759B2)($at) -.L8010CF44: -/* B840E4 8010CF44 3C0D8017 */ lui $t5, %hi(D_801759BC) # $t5, 0x8017 -/* B840E8 8010CF48 85AD59BC */ lh $t5, %lo(D_801759BC)($t5) -/* B840EC 8010CF4C 8FB90064 */ lw $t9, 0x64($sp) -/* B840F0 8010CF50 01B9082A */ slt $at, $t5, $t9 -/* B840F4 8010CF54 14200012 */ bnez $at, .L8010CFA0 -/* B840F8 8010CF58 00000000 */ nop -/* B840FC 8010CF5C 004A001A */ div $zero, $v0, $t2 -/* B84100 8010CF60 15400002 */ bnez $t2, .L8010CF6C -/* B84104 8010CF64 00000000 */ nop -/* B84108 8010CF68 0007000D */ break 7 -.L8010CF6C: -/* B8410C 8010CF6C 2401FFFF */ li $at, -1 -/* B84110 8010CF70 15410004 */ bne $t2, $at, .L8010CF84 -/* B84114 8010CF74 3C018000 */ lui $at, 0x8000 -/* B84118 8010CF78 14410002 */ bne $v0, $at, .L8010CF84 -/* B8411C 8010CF7C 00000000 */ nop -/* B84120 8010CF80 0006000D */ break 6 -.L8010CF84: -/* B84124 8010CF84 00007812 */ mflo $t7 -/* B84128 8010CF88 000FC400 */ sll $t8, $t7, 0x10 -/* B8412C 8010CF8C 00187403 */ sra $t6, $t8, 0x10 -/* B84130 8010CF90 012EC823 */ subu $t9, $t1, $t6 -/* B84134 8010CF94 3C018017 */ lui $at, %hi(D_801759B0) # $at, 0x8017 -/* B84138 8010CF98 10000011 */ b .L8010CFE0 -/* B8413C 8010CF9C A43959B0 */ sh $t9, %lo(D_801759B0)($at) -.L8010CFA0: -/* B84140 8010CFA0 004A001A */ div $zero, $v0, $t2 -/* B84144 8010CFA4 15400002 */ bnez $t2, .L8010CFB0 -/* B84148 8010CFA8 00000000 */ nop -/* B8414C 8010CFAC 0007000D */ break 7 -.L8010CFB0: -/* B84150 8010CFB0 2401FFFF */ li $at, -1 -/* B84154 8010CFB4 15410004 */ bne $t2, $at, .L8010CFC8 -/* B84158 8010CFB8 3C018000 */ lui $at, 0x8000 -/* B8415C 8010CFBC 14410002 */ bne $v0, $at, .L8010CFC8 -/* B84160 8010CFC0 00000000 */ nop -/* B84164 8010CFC4 0006000D */ break 6 -.L8010CFC8: -/* B84168 8010CFC8 00007812 */ mflo $t7 -/* B8416C 8010CFCC 000FC400 */ sll $t8, $t7, 0x10 -/* B84170 8010CFD0 00187403 */ sra $t6, $t8, 0x10 -/* B84174 8010CFD4 012EC821 */ addu $t9, $t1, $t6 -/* B84178 8010CFD8 3C018017 */ lui $at, %hi(D_801759B0) # $at, 0x8017 -/* B8417C 8010CFDC A43959B0 */ sh $t9, %lo(D_801759B0)($at) -.L8010CFE0: -/* B84180 8010CFE0 8FAF0088 */ lw $t7, 0x88($sp) -/* B84184 8010CFE4 3C188015 */ lui $t8, %hi(D_80153CC0) # $t8, 0x8015 -/* B84188 8010CFE8 27183CC0 */ addiu $t8, %lo(D_80153CC0) # addiu $t8, $t8, 0x3cc0 -/* B8418C 8010CFEC 3C068017 */ lui $a2, %hi(D_801759B4) # $a2, 0x8017 -/* B84190 8010CFF0 01F82821 */ addu $a1, $t7, $t8 -/* B84194 8010CFF4 84A20000 */ lh $v0, ($a1) -/* B84198 8010CFF8 84C659B4 */ lh $a2, %lo(D_801759B4)($a2) -/* B8419C 8010CFFC AFA2005C */ sw $v0, 0x5c($sp) -/* B841A0 8010D000 00C21823 */ subu $v1, $a2, $v0 -/* B841A4 8010D004 04620004 */ bltzl $v1, .L8010D018 -/* B841A8 8010D008 00031023 */ negu $v0, $v1 -/* B841AC 8010D00C 10000002 */ b .L8010D018 -/* B841B0 8010D010 00601025 */ move $v0, $v1 -/* B841B4 8010D014 00031023 */ negu $v0, $v1 -.L8010D018: -/* B841B8 8010D018 004A001A */ div $zero, $v0, $t2 -/* B841BC 8010D01C 3C078017 */ lui $a3, %hi(D_801759B8) # $a3, 0x8017 -/* B841C0 8010D020 84E759B8 */ lh $a3, %lo(D_801759B8)($a3) -/* B841C4 8010D024 84A40002 */ lh $a0, 2($a1) -/* B841C8 8010D028 00004012 */ mflo $t0 -/* B841CC 8010D02C 00084400 */ sll $t0, $t0, 0x10 -/* B841D0 8010D030 15400002 */ bnez $t2, .L8010D03C -/* B841D4 8010D034 00000000 */ nop -/* B841D8 8010D038 0007000D */ break 7 -.L8010D03C: -/* B841DC 8010D03C 2401FFFF */ li $at, -1 -/* B841E0 8010D040 15410004 */ bne $t2, $at, .L8010D054 -/* B841E4 8010D044 3C018000 */ lui $at, 0x8000 -/* B841E8 8010D048 14410002 */ bne $v0, $at, .L8010D054 -/* B841EC 8010D04C 00000000 */ nop -/* B841F0 8010D050 0006000D */ break 6 -.L8010D054: -/* B841F4 8010D054 00E41823 */ subu $v1, $a3, $a0 -/* B841F8 8010D058 00084403 */ sra $t0, $t0, 0x10 -/* B841FC 8010D05C 04600003 */ bltz $v1, .L8010D06C -/* B84200 8010D060 AFA40054 */ sw $a0, 0x54($sp) -/* B84204 8010D064 10000002 */ b .L8010D070 -/* B84208 8010D068 00601025 */ move $v0, $v1 -.L8010D06C: -/* B8420C 8010D06C 00031023 */ negu $v0, $v1 -.L8010D070: -/* B84210 8010D070 004A001A */ div $zero, $v0, $t2 -/* B84214 8010D074 3C098017 */ lui $t1, %hi(D_801759B6) # $t1, 0x8017 -/* B84218 8010D078 852959B6 */ lh $t1, %lo(D_801759B6)($t1) -/* B8421C 8010D07C 84BF0004 */ lh $ra, 4($a1) -/* B84220 8010D080 00002012 */ mflo $a0 -/* B84224 8010D084 00042400 */ sll $a0, $a0, 0x10 -/* B84228 8010D088 15400002 */ bnez $t2, .L8010D094 -/* B8422C 8010D08C 00000000 */ nop -/* B84230 8010D090 0007000D */ break 7 -.L8010D094: -/* B84234 8010D094 2401FFFF */ li $at, -1 -/* B84238 8010D098 15410004 */ bne $t2, $at, .L8010D0AC -/* B8423C 8010D09C 3C018000 */ lui $at, 0x8000 -/* B84240 8010D0A0 14410002 */ bne $v0, $at, .L8010D0AC -/* B84244 8010D0A4 00000000 */ nop -/* B84248 8010D0A8 0006000D */ break 6 -.L8010D0AC: -/* B8424C 8010D0AC 013F1823 */ subu $v1, $t1, $ra -/* B84250 8010D0B0 04600003 */ bltz $v1, .L8010D0C0 -/* B84254 8010D0B4 00042403 */ sra $a0, $a0, 0x10 -/* B84258 8010D0B8 10000002 */ b .L8010D0C4 -/* B8425C 8010D0BC 00601025 */ move $v0, $v1 -.L8010D0C0: -/* B84260 8010D0C0 00031023 */ negu $v0, $v1 -.L8010D0C4: -/* B84264 8010D0C4 8FAE005C */ lw $t6, 0x5c($sp) -/* B84268 8010D0C8 00CE082A */ slt $at, $a2, $t6 -/* B8426C 8010D0CC 54200006 */ bnezl $at, .L8010D0E8 -/* B84270 8010D0D0 00C87821 */ addu $t7, $a2, $t0 -/* B84274 8010D0D4 00C8C823 */ subu $t9, $a2, $t0 -/* B84278 8010D0D8 3C018017 */ lui $at, %hi(D_801759B4) # $at, 0x8017 -/* B8427C 8010D0DC 10000004 */ b .L8010D0F0 -/* B84280 8010D0E0 A43959B4 */ sh $t9, %lo(D_801759B4)($at) -/* B84284 8010D0E4 00C87821 */ addu $t7, $a2, $t0 -.L8010D0E8: -/* B84288 8010D0E8 3C018017 */ lui $at, %hi(D_801759B4) # $at, 0x8017 -/* B8428C 8010D0EC A42F59B4 */ sh $t7, %lo(D_801759B4)($at) -.L8010D0F0: -/* B84290 8010D0F0 8FB80054 */ lw $t8, 0x54($sp) -/* B84294 8010D0F4 00F8082A */ slt $at, $a3, $t8 -/* B84298 8010D0F8 54200006 */ bnezl $at, .L8010D114 -/* B8429C 8010D0FC 00E4C821 */ addu $t9, $a3, $a0 -/* B842A0 8010D100 00E47023 */ subu $t6, $a3, $a0 -/* B842A4 8010D104 3C018017 */ lui $at, %hi(D_801759B8) # $at, 0x8017 -/* B842A8 8010D108 10000004 */ b .L8010D11C -/* B842AC 8010D10C A42E59B8 */ sh $t6, %lo(D_801759B8)($at) -/* B842B0 8010D110 00E4C821 */ addu $t9, $a3, $a0 -.L8010D114: -/* B842B4 8010D114 3C018017 */ lui $at, %hi(D_801759B8) # $at, 0x8017 -/* B842B8 8010D118 A43959B8 */ sh $t9, %lo(D_801759B8)($at) -.L8010D11C: -/* B842BC 8010D11C 013F082A */ slt $at, $t1, $ra -/* B842C0 8010D120 14200012 */ bnez $at, .L8010D16C -/* B842C4 8010D124 00000000 */ nop -/* B842C8 8010D128 004A001A */ div $zero, $v0, $t2 -/* B842CC 8010D12C 15400002 */ bnez $t2, .L8010D138 -/* B842D0 8010D130 00000000 */ nop -/* B842D4 8010D134 0007000D */ break 7 -.L8010D138: -/* B842D8 8010D138 2401FFFF */ li $at, -1 -/* B842DC 8010D13C 15410004 */ bne $t2, $at, .L8010D150 -/* B842E0 8010D140 3C018000 */ lui $at, 0x8000 -/* B842E4 8010D144 14410002 */ bne $v0, $at, .L8010D150 -/* B842E8 8010D148 00000000 */ nop -/* B842EC 8010D14C 0006000D */ break 6 -.L8010D150: -/* B842F0 8010D150 00007812 */ mflo $t7 -/* B842F4 8010D154 000FC400 */ sll $t8, $t7, 0x10 -/* B842F8 8010D158 00187403 */ sra $t6, $t8, 0x10 -/* B842FC 8010D15C 012EC823 */ subu $t9, $t1, $t6 -/* B84300 8010D160 3C018017 */ lui $at, %hi(D_801759B6) # $at, 0x8017 -/* B84304 8010D164 10000011 */ b .L8010D1AC -/* B84308 8010D168 A43959B6 */ sh $t9, %lo(D_801759B6)($at) -.L8010D16C: -/* B8430C 8010D16C 004A001A */ div $zero, $v0, $t2 -/* B84310 8010D170 15400002 */ bnez $t2, .L8010D17C -/* B84314 8010D174 00000000 */ nop -/* B84318 8010D178 0007000D */ break 7 -.L8010D17C: -/* B8431C 8010D17C 2401FFFF */ li $at, -1 -/* B84320 8010D180 15410004 */ bne $t2, $at, .L8010D194 -/* B84324 8010D184 3C018000 */ lui $at, 0x8000 -/* B84328 8010D188 14410002 */ bne $v0, $at, .L8010D194 -/* B8432C 8010D18C 00000000 */ nop -/* B84330 8010D190 0006000D */ break 6 -.L8010D194: -/* B84334 8010D194 00007812 */ mflo $t7 -/* B84338 8010D198 000FC400 */ sll $t8, $t7, 0x10 -/* B8433C 8010D19C 00187403 */ sra $t6, $t8, 0x10 -/* B84340 8010D1A0 012EC821 */ addu $t9, $t1, $t6 -/* B84344 8010D1A4 3C018017 */ lui $at, %hi(D_801759B6) # $at, 0x8017 -/* B84348 8010D1A8 A43959B6 */ sh $t9, %lo(D_801759B6)($at) -.L8010D1AC: -/* B8434C 8010D1AC 8FAF0088 */ lw $t7, 0x88($sp) -/* B84350 8010D1B0 3C188015 */ lui $t8, %hi(D_80153CCC) # $t8, 0x8015 -/* B84354 8010D1B4 27183CCC */ addiu $t8, %lo(D_80153CCC) # addiu $t8, $t8, 0x3ccc -/* B84358 8010D1B8 01F82821 */ addu $a1, $t7, $t8 -/* B8435C 8010D1BC 84A90000 */ lh $t1, ($a1) -/* B84360 8010D1C0 01691823 */ subu $v1, $t3, $t1 -/* B84364 8010D1C4 04620004 */ bltzl $v1, .L8010D1D8 -/* B84368 8010D1C8 00031023 */ negu $v0, $v1 -/* B8436C 8010D1CC 10000002 */ b .L8010D1D8 -/* B84370 8010D1D0 00601025 */ move $v0, $v1 -/* B84374 8010D1D4 00031023 */ negu $v0, $v1 -.L8010D1D8: -/* B84378 8010D1D8 004A001A */ div $zero, $v0, $t2 -/* B8437C 8010D1DC 84A60002 */ lh $a2, 2($a1) -/* B84380 8010D1E0 00004012 */ mflo $t0 -/* B84384 8010D1E4 00084400 */ sll $t0, $t0, 0x10 -/* B84388 8010D1E8 15400002 */ bnez $t2, .L8010D1F4 -/* B8438C 8010D1EC 00000000 */ nop -/* B84390 8010D1F0 0007000D */ break 7 -.L8010D1F4: -/* B84394 8010D1F4 2401FFFF */ li $at, -1 -/* B84398 8010D1F8 15410004 */ bne $t2, $at, .L8010D20C -/* B8439C 8010D1FC 3C018000 */ lui $at, 0x8000 -/* B843A0 8010D200 14410002 */ bne $v0, $at, .L8010D20C -/* B843A4 8010D204 00000000 */ nop -/* B843A8 8010D208 0006000D */ break 6 -.L8010D20C: -/* B843AC 8010D20C 01861823 */ subu $v1, $t4, $a2 -/* B843B0 8010D210 04600003 */ bltz $v1, .L8010D220 -/* B843B4 8010D214 00084403 */ sra $t0, $t0, 0x10 -/* B843B8 8010D218 10000002 */ b .L8010D224 -/* B843BC 8010D21C 00601025 */ move $v0, $v1 -.L8010D220: -/* B843C0 8010D220 00031023 */ negu $v0, $v1 -.L8010D224: -/* B843C4 8010D224 004A001A */ div $zero, $v0, $t2 -/* B843C8 8010D228 84A70004 */ lh $a3, 4($a1) -/* B843CC 8010D22C 00002012 */ mflo $a0 -/* B843D0 8010D230 00042400 */ sll $a0, $a0, 0x10 -/* B843D4 8010D234 15400002 */ bnez $t2, .L8010D240 -/* B843D8 8010D238 00000000 */ nop -/* B843DC 8010D23C 0007000D */ break 7 -.L8010D240: -/* B843E0 8010D240 2401FFFF */ li $at, -1 -/* B843E4 8010D244 15410004 */ bne $t2, $at, .L8010D258 -/* B843E8 8010D248 3C018000 */ lui $at, 0x8000 -/* B843EC 8010D24C 14410002 */ bne $v0, $at, .L8010D258 -/* B843F0 8010D250 00000000 */ nop -/* B843F4 8010D254 0006000D */ break 6 -.L8010D258: -/* B843F8 8010D258 01A71823 */ subu $v1, $t5, $a3 -/* B843FC 8010D25C 04600003 */ bltz $v1, .L8010D26C -/* B84400 8010D260 00042403 */ sra $a0, $a0, 0x10 -/* B84404 8010D264 10000002 */ b .L8010D270 -/* B84408 8010D268 00601025 */ move $v0, $v1 -.L8010D26C: -/* B8440C 8010D26C 00031023 */ negu $v0, $v1 -.L8010D270: -/* B84410 8010D270 0169082A */ slt $at, $t3, $t1 -/* B84414 8010D274 54200006 */ bnezl $at, .L8010D290 -/* B84418 8010D278 0168C821 */ addu $t9, $t3, $t0 -/* B8441C 8010D27C 01687023 */ subu $t6, $t3, $t0 -/* B84420 8010D280 3C018017 */ lui $at, %hi(D_801759BA) # $at, 0x8017 -/* B84424 8010D284 10000004 */ b .L8010D298 -/* B84428 8010D288 A42E59BA */ sh $t6, %lo(D_801759BA)($at) - - -/* B8442C 8010D28C 0168C821 */ addu $t9, $t3, $t0 -.L8010D290: -/* B84430 8010D290 3C018017 */ lui $at, %hi(D_801759BA) # $at, 0x8017 -/* B84434 8010D294 A43959BA */ sh $t9, %lo(D_801759BA)($at) -.L8010D298: -/* B84438 8010D298 0186082A */ slt $at, $t4, $a2 -/* B8443C 8010D29C 54200006 */ bnezl $at, .L8010D2B8 -/* B84440 8010D2A0 0184C021 */ addu $t8, $t4, $a0 -/* B84444 8010D2A4 01847823 */ subu $t7, $t4, $a0 -/* B84448 8010D2A8 3C018017 */ lui $at, %hi(D_801759BE) # $at, 0x8017 -/* B8444C 8010D2AC 10000004 */ b .L8010D2C0 -/* B84450 8010D2B0 A42F59BE */ sh $t7, %lo(D_801759BE)($at) -/* B84454 8010D2B4 0184C021 */ addu $t8, $t4, $a0 -.L8010D2B8: -/* B84458 8010D2B8 3C018017 */ lui $at, %hi(D_801759BE) # $at, 0x8017 -/* B8445C 8010D2BC A43859BE */ sh $t8, %lo(D_801759BE)($at) -.L8010D2C0: -/* B84460 8010D2C0 01A7082A */ slt $at, $t5, $a3 -/* B84464 8010D2C4 14200012 */ bnez $at, .L8010D310 -/* B84468 8010D2C8 00000000 */ nop -/* B8446C 8010D2CC 004A001A */ div $zero, $v0, $t2 -/* B84470 8010D2D0 15400002 */ bnez $t2, .L8010D2DC -/* B84474 8010D2D4 00000000 */ nop -/* B84478 8010D2D8 0007000D */ break 7 -.L8010D2DC: -/* B8447C 8010D2DC 2401FFFF */ li $at, -1 -/* B84480 8010D2E0 15410004 */ bne $t2, $at, .L8010D2F4 -/* B84484 8010D2E4 3C018000 */ lui $at, 0x8000 -/* B84488 8010D2E8 14410002 */ bne $v0, $at, .L8010D2F4 -/* B8448C 8010D2EC 00000000 */ nop -/* B84490 8010D2F0 0006000D */ break 6 -.L8010D2F4: -/* B84494 8010D2F4 00007012 */ mflo $t6 -/* B84498 8010D2F8 000ECC00 */ sll $t9, $t6, 0x10 -/* B8449C 8010D2FC 00197C03 */ sra $t7, $t9, 0x10 -/* B844A0 8010D300 01AFC023 */ subu $t8, $t5, $t7 -/* B844A4 8010D304 3C018017 */ lui $at, %hi(D_801759BC) # $at, 0x8017 -/* B844A8 8010D308 10000011 */ b .L8010D350 -/* B844AC 8010D30C A43859BC */ sh $t8, %lo(D_801759BC)($at) -.L8010D310: -/* B844B0 8010D310 004A001A */ div $zero, $v0, $t2 -/* B844B4 8010D314 15400002 */ bnez $t2, .L8010D320 -/* B844B8 8010D318 00000000 */ nop -/* B844BC 8010D31C 0007000D */ break 7 -.L8010D320: -/* B844C0 8010D320 2401FFFF */ li $at, -1 -/* B844C4 8010D324 15410004 */ bne $t2, $at, .L8010D338 -/* B844C8 8010D328 3C018000 */ lui $at, 0x8000 -/* B844CC 8010D32C 14410002 */ bne $v0, $at, .L8010D338 -/* B844D0 8010D330 00000000 */ nop -/* B844D4 8010D334 0006000D */ break 6 -.L8010D338: -/* B844D8 8010D338 00007012 */ mflo $t6 -/* B844DC 8010D33C 000ECC00 */ sll $t9, $t6, 0x10 -/* B844E0 8010D340 00197C03 */ sra $t7, $t9, 0x10 -/* B844E4 8010D344 01AFC021 */ addu $t8, $t5, $t7 -/* B844E8 8010D348 3C018017 */ lui $at, %hi(D_801759BC) # $at, 0x8017 -/* B844EC 8010D34C A43859BC */ sh $t8, %lo(D_801759BC)($at) -.L8010D350: -/* B844F0 8010D350 254AFFFF */ addiu $t2, $t2, -1 -/* B844F4 8010D354 000A5400 */ sll $t2, $t2, 0x10 -/* B844F8 8010D358 000A5403 */ sra $t2, $t2, 0x10 -/* B844FC 8010D35C 3C018015 */ lui $at, %hi(D_80153CD8) # $at, 0x8015 -/* B84500 8010D360 15400029 */ bnez $t2, .L8010D408 -/* B84504 8010D364 A42A3CD8 */ sh $t2, %lo(D_80153CD8)($at) -/* B84508 8010D368 8FAE0080 */ lw $t6, 0x80($sp) -/* B8450C 8010D36C 8FB90078 */ lw $t9, 0x78($sp) -/* B84510 8010D370 3C018017 */ lui $at, %hi(D_801759A8) # $at, 0x8017 -/* B84514 8010D374 A42E59A8 */ sh $t6, %lo(D_801759A8)($at) -/* B84518 8010D378 8FAF0070 */ lw $t7, 0x70($sp) -/* B8451C 8010D37C 3C018017 */ lui $at, %hi(D_801759AC) # $at, 0x8017 -/* B84520 8010D380 A43959AC */ sh $t9, %lo(D_801759AC)($at) -/* B84524 8010D384 8FB8007C */ lw $t8, 0x7c($sp) -/* B84528 8010D388 3C018017 */ lui $at, %hi(D_801759AA) # $at, 0x8017 -/* B8452C 8010D38C A42F59AA */ sh $t7, %lo(D_801759AA)($at) -/* B84530 8010D390 8FAE006C */ lw $t6, 0x6c($sp) -/* B84534 8010D394 3C018017 */ lui $at, %hi(D_801759AE) # $at, 0x8017 -/* B84538 8010D398 A43859AE */ sh $t8, %lo(D_801759AE)($at) -/* B8453C 8010D39C 8FB90064 */ lw $t9, 0x64($sp) -/* B84540 8010D3A0 3C018017 */ lui $at, %hi(D_801759B2) # $at, 0x8017 -/* B84544 8010D3A4 A42E59B2 */ sh $t6, %lo(D_801759B2)($at) -/* B84548 8010D3A8 8FAF005C */ lw $t7, 0x5c($sp) -/* B8454C 8010D3AC 3C018017 */ lui $at, %hi(D_801759B0) # $at, 0x8017 -/* B84550 8010D3B0 A43959B0 */ sh $t9, %lo(D_801759B0)($at) -/* B84554 8010D3B4 8FB80054 */ lw $t8, 0x54($sp) -/* B84558 8010D3B8 3C018017 */ lui $at, %hi(D_801759B4) # $at, 0x8017 -/* B8455C 8010D3BC A42F59B4 */ sh $t7, %lo(D_801759B4)($at) -/* B84560 8010D3C0 3C018017 */ lui $at, %hi(D_801759B8) # $at, 0x8017 -/* B84564 8010D3C4 A43859B8 */ sh $t8, %lo(D_801759B8)($at) -/* B84568 8010D3C8 3C018017 */ lui $at, %hi(D_801759B6) # $at, 0x8017 -/* B8456C 8010D3CC A43F59B6 */ sh $ra, %lo(D_801759B6)($at) -/* B84570 8010D3D0 3C018017 */ lui $at, %hi(D_801759BA) # $at, 0x8017 -/* B84574 8010D3D4 A42959BA */ sh $t1, %lo(D_801759BA)($at) -/* B84578 8010D3D8 3C018017 */ lui $at, %hi(D_801759BE) # $at, 0x8017 -/* B8457C 8010D3DC 3C0E8015 */ lui $t6, %hi(D_80153CDC) # $t6, 0x8015 -/* B84580 8010D3E0 85CE3CDC */ lh $t6, %lo(D_80153CDC)($t6) -/* B84584 8010D3E4 A42659BE */ sh $a2, %lo(D_801759BE)($at) -/* B84588 8010D3E8 3C018017 */ lui $at, %hi(D_801759BC) # $at, 0x8017 -/* B8458C 8010D3EC A42759BC */ sh $a3, %lo(D_801759BC)($at) -/* B84590 8010D3F0 3C018015 */ lui $at, %hi(D_80153CDC) # $at, 0x8015 -/* B84594 8010D3F4 39D90001 */ xori $t9, $t6, 1 -/* B84598 8010D3F8 A4393CDC */ sh $t9, %lo(D_80153CDC)($at) -/* B8459C 8010D3FC 240A0003 */ li $t2, 3 -/* B845A0 8010D400 3C018015 */ lui $at, %hi(D_80153CD8) # $at, 0x8015 -/* B845A4 8010D404 A42A3CD8 */ sh $t2, %lo(D_80153CD8)($at) -.L8010D408: -/* B845A8 8010D408 920F63E7 */ lbu $t7, 0x63e7($s0) -/* B845AC 8010D40C 26217FFF */ addiu $at, $s1, 0x7fff -/* B845B0 8010D410 25F8FFFF */ addiu $t8, $t7, -1 -/* B845B4 8010D414 A03863E8 */ sb $t8, 0x63e8($at) -/* B845B8 8010D418 920E63E7 */ lbu $t6, 0x63e7($s0) -/* B845BC 8010D41C 55C00034 */ bnezl $t6, .L8010D4F0 -/* B845C0 8010D420 02402025 */ move $a0, $s2 -/* B845C4 8010D424 0C03B616 */ jal func_800ED858 -/* B845C8 8010D428 00002025 */ move $a0, $zero -/* B845CC 8010D42C 92026304 */ lbu $v0, 0x6304($s0) -/* B845D0 8010D430 2401000D */ li $at, 13 -/* B845D4 8010D434 1441000F */ bne $v0, $at, .L8010D474 -/* B845D8 8010D438 3C048015 */ lui $a0, %hi(D_80154538) # $a0, 0x8015 -/* B845DC 8010D43C 24844538 */ addiu $a0, %lo(D_80154538) # addiu $a0, $a0, 0x4538 -/* B845E0 8010D440 0C00084C */ jal osSyncPrintf -/* B845E4 8010D444 960563EC */ lhu $a1, 0x63ec($s0) -/* B845E8 8010D448 02402025 */ move $a0, $s2 -/* B845EC 8010D44C 0C042DC8 */ jal func_8010B720 -/* B845F0 8010D450 2405086F */ li $a1, 2159 -/* B845F4 8010D454 26217FFF */ addiu $at, $s1, 0x7fff -/* B845F8 8010D458 24190011 */ li $t9, 17 -/* B845FC 8010D45C 240F0003 */ li $t7, 3 -/* B84600 8010D460 24180001 */ li $t8, 1 -/* B84604 8010D464 A0396305 */ sb $t9, 0x6305($at) -/* B84608 8010D468 A02F62FE */ sb $t7, 0x62fe($at) -/* B8460C 8010D46C 1000001F */ b .L8010D4EC -/* B84610 8010D470 A03863E8 */ sb $t8, 0x63e8($at) -.L8010D474: -/* B84614 8010D474 2401001C */ li $at, 28 -/* B84618 8010D478 14410016 */ bne $v0, $at, .L8010D4D4 -/* B8461C 8010D47C 00000000 */ nop -/* B84620 8010D480 960E63EC */ lhu $t6, 0x63ec($s0) -/* B84624 8010D484 29C10006 */ slti $at, $t6, 6 -/* B84628 8010D488 1420000B */ bnez $at, .L8010D4B8 -/* B8462C 8010D48C 02402025 */ move $a0, $s2 -/* B84630 8010D490 0C042DC8 */ jal func_8010B720 -/* B84634 8010D494 2405086F */ li $a1, 2159 -/* B84638 8010D498 26217FFF */ addiu $at, $s1, 0x7fff -/* B8463C 8010D49C 24190011 */ li $t9, 17 -/* B84640 8010D4A0 240F0003 */ li $t7, 3 -/* B84644 8010D4A4 24180001 */ li $t8, 1 -/* B84648 8010D4A8 A0396305 */ sb $t9, 0x6305($at) -/* B8464C 8010D4AC A02F62FE */ sb $t7, 0x62fe($at) -/* B84650 8010D4B0 1000000E */ b .L8010D4EC -/* B84654 8010D4B4 A03863E8 */ sb $t8, 0x63e8($at) -.L8010D4B8: -/* B84658 8010D4B8 0C041B33 */ jal func_80106CCC -/* B8465C 8010D4BC 02402025 */ move $a0, $s2 -/* B84660 8010D4C0 3C010001 */ lui $at, 1 -/* B84664 8010D4C4 00320821 */ addu $at, $at, $s2 -/* B84668 8010D4C8 240E0004 */ li $t6, 4 -/* B8466C 8010D4CC 10000007 */ b .L8010D4EC -/* B84670 8010D4D0 A42E04C6 */ sh $t6, 0x4c6($at) -.L8010D4D4: -/* B84674 8010D4D4 0C041B33 */ jal func_80106CCC -/* B84678 8010D4D8 02402025 */ move $a0, $s2 -/* B8467C 8010D4DC 3C010001 */ lui $at, 1 -/* B84680 8010D4E0 00320821 */ addu $at, $at, $s2 -/* B84684 8010D4E4 24190003 */ li $t9, 3 -/* B84688 8010D4E8 A43904C6 */ sh $t9, 0x4c6($at) -.L8010D4EC: -/* B8468C 8010D4EC 02402025 */ move $a0, $s2 -.L8010D4F0: -/* B84690 8010D4F0 0C0421AC */ jal func_801086B0 -/* B84694 8010D4F4 27A50140 */ addiu $a1, $sp, 0x140 -/* B84698 8010D4F8 100005DD */ b .L8010EC70 -/* B8469C 8010D4FC 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D500 -/* B846A0 8010D500 02402025 */ move $a0, $s2 -/* B846A4 8010D504 0C0421AC */ jal func_801086B0 -/* B846A8 8010D508 27A50140 */ addiu $a1, $sp, 0x140 -glabel L8010D50C -/* B846AC 8010D50C 920F63E7 */ lbu $t7, 0x63e7($s0) -/* B846B0 8010D510 26217FFF */ addiu $at, $s1, 0x7fff -/* B846B4 8010D514 25F8FFFF */ addiu $t8, $t7, -1 -/* B846B8 8010D518 A03863E8 */ sb $t8, 0x63e8($at) -/* B846BC 8010D51C 920E63E7 */ lbu $t6, 0x63e7($s0) -/* B846C0 8010D520 15C0001A */ bnez $t6, .L8010D58C -/* B846C4 8010D524 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B846C8 8010D528 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B846CC 8010D52C 8D2F0000 */ lw $t7, ($t1) -/* B846D0 8010D530 24190001 */ li $t9, 1 -/* B846D4 8010D534 2401001D */ li $at, 29 -/* B846D8 8010D538 A5F90F7A */ sh $t9, 0xf7a($t7) -/* B846DC 8010D53C 92186304 */ lbu $t8, 0x6304($s0) -/* B846E0 8010D540 1701000C */ bne $t8, $at, .L8010D574 -/* B846E4 8010D544 3C048015 */ lui $a0, %hi(D_8015454C) # $a0, 0x8015 -/* B846E8 8010D548 0C00084C */ jal osSyncPrintf -/* B846EC 8010D54C 2484454C */ addiu $a0, %lo(D_8015454C) # addiu $a0, $a0, 0x454c -/* B846F0 8010D550 02402025 */ move $a0, $s2 -/* B846F4 8010D554 0C042DC8 */ jal func_8010B720 -/* B846F8 8010D558 2405088B */ li $a1, 2187 -/* B846FC 8010D55C 0C0426CF */ jal func_80109B3C -/* B84700 8010D560 02402025 */ move $a0, $s2 -/* B84704 8010D564 240E001E */ li $t6, 30 -/* B84708 8010D568 26217FFF */ addiu $at, $s1, 0x7fff -/* B8470C 8010D56C 10000004 */ b .L8010D580 -/* B84710 8010D570 A02E6305 */ sb $t6, 0x6305($at) -.L8010D574: -/* B84714 8010D574 24190010 */ li $t9, 16 -/* B84718 8010D578 26217FFF */ addiu $at, $s1, 0x7fff -/* B8471C 8010D57C A0396305 */ sb $t9, 0x6305($at) -.L8010D580: -/* B84720 8010D580 3C048015 */ lui $a0, %hi(D_8015455C) # $a0, 0x8015 -/* B84724 8010D584 0C00084C */ jal osSyncPrintf -/* B84728 8010D588 2484455C */ addiu $a0, %lo(D_8015455C) # addiu $a0, $a0, 0x455c -.L8010D58C: -/* B8472C 8010D58C 100005B8 */ b .L8010EC70 -/* B84730 8010D590 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D594 -/* B84734 8010D594 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B84738 8010D598 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B8473C 8010D59C 00003825 */ move $a3, $zero -/* B84740 8010D5A0 00001825 */ move $v1, $zero -.L8010D5A4: -/* B84744 8010D5A4 8D280000 */ lw $t0, ($t1) -/* B84748 8010D5A8 00037840 */ sll $t7, $v1, 1 -/* B8474C 8010D5AC 24E70001 */ addiu $a3, $a3, 1 -/* B84750 8010D5B0 010F1021 */ addu $v0, $t0, $t7 -/* B84754 8010D5B4 84580F6E */ lh $t8, 0xf6e($v0) -/* B84758 8010D5B8 850E0F7A */ lh $t6, 0xf7a($t0) -/* B8475C 8010D5BC 30E7FFFF */ andi $a3, $a3, 0xffff -/* B84760 8010D5C0 28E10005 */ slti $at, $a3, 5 -/* B84764 8010D5C4 030EC821 */ addu $t9, $t8, $t6 -/* B84768 8010D5C8 00E01825 */ move $v1, $a3 -/* B8476C 8010D5CC 1420FFF5 */ bnez $at, .L8010D5A4 -/* B84770 8010D5D0 A4590F6E */ sh $t9, 0xf6e($v0) -/* B84774 8010D5D4 8D280000 */ lw $t0, ($t1) -/* B84778 8010D5D8 85020F7A */ lh $v0, 0xf7a($t0) -/* B8477C 8010D5DC 00427821 */ addu $t7, $v0, $v0 -/* B84780 8010D5E0 A50F0F7A */ sh $t7, 0xf7a($t0) -/* B84784 8010D5E4 8D380000 */ lw $t8, ($t1) -/* B84788 8010D5E8 870E0F7A */ lh $t6, 0xf7a($t8) -/* B8478C 8010D5EC 29C10226 */ slti $at, $t6, 0x226 -/* B84790 8010D5F0 14200018 */ bnez $at, .L8010D654 -/* B84794 8010D5F4 241900FF */ li $t9, 255 -/* B84798 8010D5F8 3C018015 */ lui $at, %hi(D_8015394C) # $at, 0x8015 -/* B8479C 8010D5FC A039394C */ sb $t9, %lo(D_8015394C)($at) -/* B847A0 8010D600 3C018015 */ lui $at, %hi(D_80153960) # $at, 0x8015 -/* B847A4 8010D604 A4203968 */ sh $zero, %lo(D_80153968)($at) -/* B847A8 8010D608 A4203966 */ sh $zero, %lo(D_80153966)($at) -/* B847AC 8010D60C A4203964 */ sh $zero, %lo(D_80153964)($at) -/* B847B0 8010D610 A4203962 */ sh $zero, %lo(D_80153962)($at) -/* B847B4 8010D614 A4203960 */ sh $zero, %lo(D_80153960)($at) -/* B847B8 8010D618 3C018015 */ lui $at, %hi(D_80153958) # $at, 0x8015 -/* B847BC 8010D61C A420395E */ sh $zero, %lo(D_8015395E)($at) -/* B847C0 8010D620 A420395C */ sh $zero, %lo(D_8015395C)($at) -/* B847C4 8010D624 A420395A */ sh $zero, %lo(D_8015395A)($at) -/* B847C8 8010D628 A4203958 */ sh $zero, %lo(D_80153958)($at) -/* B847CC 8010D62C 920F6304 */ lbu $t7, 0x6304($s0) -/* B847D0 8010D630 2401001E */ li $at, 30 -/* B847D4 8010D634 15E10004 */ bne $t7, $at, .L8010D648 -/* B847D8 8010D638 2418001F */ li $t8, 31 -/* B847DC 8010D63C 26217FFF */ addiu $at, $s1, 0x7fff -/* B847E0 8010D640 10000004 */ b .L8010D654 -/* B847E4 8010D644 A0386305 */ sb $t8, 0x6305($at) -.L8010D648: -/* B847E8 8010D648 240E0009 */ li $t6, 9 -/* B847EC 8010D64C 26217FFF */ addiu $at, $s1, 0x7fff -/* B847F0 8010D650 A02E6305 */ sb $t6, 0x6305($at) -.L8010D654: -/* B847F4 8010D654 10000586 */ b .L8010EC70 -/* B847F8 8010D658 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D65C -/* B847FC 8010D65C 921963E7 */ lbu $t9, 0x63e7($s0) -/* B84800 8010D660 26217FFF */ addiu $at, $s1, 0x7fff -/* B84804 8010D664 272FFFFF */ addiu $t7, $t9, -1 -/* B84808 8010D668 A02F63E8 */ sb $t7, 0x63e8($at) -/* B8480C 8010D66C 921863E7 */ lbu $t8, 0x63e7($s0) -/* B84810 8010D670 1700003B */ bnez $t8, .L8010D760 -/* B84814 8010D674 00000000 */ nop -/* B84818 8010D678 0C03B616 */ jal func_800ED858 -/* B8481C 8010D67C 00002025 */ move $a0, $zero -/* B84820 8010D680 3C048015 */ lui $a0, %hi(D_80154568) # $a0, 0x8015 -/* B84824 8010D684 0C00084C */ jal osSyncPrintf -/* B84828 8010D688 24844568 */ addiu $a0, %lo(D_80154568) # addiu $a0, $a0, 0x4568 -/* B8482C 8010D68C 3C048015 */ lui $a0, %hi(D_80154570) # $a0, 0x8015 -/* B84830 8010D690 0C00084C */ jal osSyncPrintf -/* B84834 8010D694 24844570 */ addiu $a0, %lo(D_80154570) # addiu $a0, $a0, 0x4570 -/* B84838 8010D698 3C048015 */ lui $a0, %hi(D_80154588) # $a0, 0x8015 -/* B8483C 8010D69C 0C00084C */ jal osSyncPrintf -/* B84840 8010D6A0 24844588 */ addiu $a0, %lo(D_80154588) # addiu $a0, $a0, 0x4588 -/* B84844 8010D6A4 3C048015 */ lui $a0, %hi(D_801545A0) # $a0, 0x8015 -/* B84848 8010D6A8 0C00084C */ jal osSyncPrintf -/* B8484C 8010D6AC 248445A0 */ addiu $a0, %lo(D_801545A0) # addiu $a0, $a0, 0x45a0 -/* B84850 8010D6B0 3C048015 */ lui $a0, %hi(D_801545B8) # $a0, 0x8015 -/* B84854 8010D6B4 0C00084C */ jal osSyncPrintf -/* B84858 8010D6B8 248445B8 */ addiu $a0, %lo(D_801545B8) # addiu $a0, $a0, 0x45b8 -/* B8485C 8010D6BC 0C0426CF */ jal func_80109B3C -/* B84860 8010D6C0 02402025 */ move $a0, $s2 -/* B84864 8010D6C4 240E0012 */ li $t6, 18 -/* B84868 8010D6C8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8486C 8010D6CC 0C03B8F5 */ jal func_800EE3D4 -/* B84870 8010D6D0 A02E6305 */ sb $t6, 0x6305($at) -/* B84874 8010D6D4 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B84878 8010D6D8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8487C 8010D6DC AC2262B9 */ sw $v0, 0x62b9($at) -/* B84880 8010D6E0 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B84884 8010D6E4 A5000000 */ sh $zero, ($t0) -/* B84888 8010D6E8 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B8488C 8010D6EC 85190000 */ lh $t9, ($t0) -/* B84890 8010D6F0 0C041A6C */ jal func_801069B0 -/* B84894 8010D6F4 A1F90002 */ sb $t9, 2($t7) -/* B84898 8010D6F8 960363EC */ lhu $v1, 0x63ec($s0) -/* B8489C 8010D6FC 28610006 */ slti $at, $v1, 6 -/* B848A0 8010D700 14200017 */ bnez $at, .L8010D760 -/* B848A4 8010D704 2861000D */ slti $at, $v1, 0xd -/* B848A8 8010D708 10200015 */ beqz $at, .L8010D760 -/* B848AC 8010D70C 00000000 */ nop -/* B848B0 8010D710 8FA80148 */ lw $t0, 0x148($sp) -/* B848B4 8010D714 00031040 */ sll $v0, $v1, 1 -/* B848B8 8010D718 3C188015 */ lui $t8, %hi(D_80153C78) -/* B848BC 8010D71C C5040028 */ lwc1 $f4, 0x28($t0) -/* B848C0 8010D720 8D070024 */ lw $a3, 0x24($t0) -/* B848C4 8010D724 0302C021 */ addu $t8, $t8, $v0 -/* B848C8 8010D728 E7A40010 */ swc1 $f4, 0x10($sp) -/* B848CC 8010D72C C506002C */ lwc1 $f6, 0x2c($t0) -/* B848D0 8010D730 87183C78 */ lh $t8, %lo(D_80153C78)($t8) -/* B848D4 8010D734 3C068015 */ lui $a2, %hi(D_80153C68) -/* B848D8 8010D738 00C23021 */ addu $a2, $a2, $v0 -/* B848DC 8010D73C 84C63C68 */ lh $a2, %lo(D_80153C68)($a2) -/* B848E0 8010D740 AFA00020 */ sw $zero, 0x20($sp) -/* B848E4 8010D744 AFA0001C */ sw $zero, 0x1c($sp) -/* B848E8 8010D748 AFA00018 */ sw $zero, 0x18($sp) -/* B848EC 8010D74C 26441C24 */ addiu $a0, $s2, 0x1c24 -/* B848F0 8010D750 02402825 */ move $a1, $s2 -/* B848F4 8010D754 E7A60014 */ swc1 $f6, 0x14($sp) -/* B848F8 8010D758 0C00C7D4 */ jal Actor_Spawn -/* B848FC 8010D75C AFB80024 */ sw $t8, 0x24($sp) -.L8010D760: -/* B84900 8010D760 10000543 */ b .L8010EC70 -/* B84904 8010D764 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D768 -/* B84908 8010D768 02402025 */ move $a0, $s2 -/* B8490C 8010D76C 0C0421AC */ jal func_801086B0 -/* B84910 8010D770 27A50140 */ addiu $a1, $sp, 0x140 -/* B84914 8010D774 0C03B616 */ jal func_800ED858 -/* B84918 8010D778 24040001 */ li $a0, 1 -/* B8491C 8010D77C 0C03B616 */ jal func_800ED858 -/* B84920 8010D780 24040001 */ li $a0, 1 -/* B84924 8010D784 960463EC */ lhu $a0, 0x63ec($s0) -/* B84928 8010D788 24050001 */ li $a1, 1 -/* B8492C 8010D78C 24840001 */ addiu $a0, $a0, 1 -/* B84930 8010D790 00042600 */ sll $a0, $a0, 0x18 -/* B84934 8010D794 0C03B64F */ jal func_800ED93C -/* B84938 8010D798 00042603 */ sra $a0, $a0, 0x18 -/* B8493C 8010D79C 960263EC */ lhu $v0, 0x63ec($s0) -/* B84940 8010D7A0 2405000C */ li $a1, 12 -/* B84944 8010D7A4 10A20007 */ beq $a1, $v0, .L8010D7C4 -/* B84948 8010D7A8 00027040 */ sll $t6, $v0, 1 -/* B8494C 8010D7AC 3C048015 */ lui $a0, %hi(D_80153CE0) -/* B84950 8010D7B0 008E2021 */ addu $a0, $a0, $t6 -/* B84954 8010D7B4 0C03D719 */ jal func_800F5C64 -/* B84958 8010D7B8 94843CE0 */ lhu $a0, %lo(D_80153CE0)($a0) -/* B8495C 8010D7BC 0C03DC98 */ jal Audio_SetSoundBanksMute -/* B84960 8010D7C0 24040020 */ li $a0, 32 -.L8010D7C4: -/* B84964 8010D7C4 3C010001 */ lui $at, 1 -/* B84968 8010D7C8 00320821 */ addu $at, $at, $s2 -/* B8496C 8010D7CC 24190001 */ li $t9, 1 -/* B84970 8010D7D0 A43904C6 */ sh $t9, 0x4c6($at) -/* B84974 8010D7D4 960263F0 */ lhu $v0, 0x63f0($s0) -/* B84978 8010D7D8 24010001 */ li $at, 1 -/* B8497C 8010D7DC 14410004 */ bne $v0, $at, .L8010D7F0 -/* B84980 8010D7E0 240F0029 */ li $t7, 41 -/* B84984 8010D7E4 26217FFF */ addiu $at, $s1, 0x7fff -/* B84988 8010D7E8 A42F63F1 */ sh $t7, 0x63f1($at) -/* B8498C 8010D7EC 960263F0 */ lhu $v0, 0x63f0($s0) -.L8010D7F0: -/* B84990 8010D7F0 24010030 */ li $at, 48 -/* B84994 8010D7F4 14410003 */ bne $v0, $at, .L8010D804 -/* B84998 8010D7F8 24180031 */ li $t8, 49 -/* B8499C 8010D7FC 26217FFF */ addiu $at, $s1, 0x7fff -/* B849A0 8010D800 A43863F1 */ sh $t8, 0x63f1($at) -.L8010D804: -/* B849A4 8010D804 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B849A8 8010D808 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B849AC 8010D80C A5000000 */ sh $zero, ($t0) -/* B849B0 8010D810 240E0013 */ li $t6, 19 -/* B849B4 8010D814 26217FFF */ addiu $at, $s1, 0x7fff -/* B849B8 8010D818 A02E6305 */ sb $t6, 0x6305($at) -/* B849BC 8010D81C 10000514 */ b .L8010EC70 -/* B849C0 8010D820 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D824 -/* B849C4 8010D824 921963E7 */ lbu $t9, 0x63e7($s0) -/* B849C8 8010D828 26217FFF */ addiu $at, $s1, 0x7fff -/* B849CC 8010D82C 272FFFFF */ addiu $t7, $t9, -1 -/* B849D0 8010D830 A02F63E8 */ sb $t7, 0x63e8($at) -/* B849D4 8010D834 921863E7 */ lbu $t8, 0x63e7($s0) -/* B849D8 8010D838 17000035 */ bnez $t8, .L8010D910 -/* B849DC 8010D83C 3C048015 */ lui $a0, %hi(D_801545BC) # $a0, 0x8015 -/* B849E0 8010D840 248445BC */ addiu $a0, %lo(D_801545BC) # addiu $a0, $a0, 0x45bc -/* B849E4 8010D844 960563F0 */ lhu $a1, 0x63f0($s0) -/* B849E8 8010D848 0C00084C */ jal osSyncPrintf -/* B849EC 8010D84C 24060016 */ li $a2, 22 -/* B849F0 8010D850 960263F0 */ lhu $v0, 0x63f0($s0) -/* B849F4 8010D854 28410008 */ slti $at, $v0, 8 -/* B849F8 8010D858 50200006 */ beql $at, $zero, .L8010D874 -/* B849FC 8010D85C 24010009 */ li $at, 9 -/* B84A00 8010D860 0C03B616 */ jal func_800ED858 -/* B84A04 8010D864 24040004 */ li $a0, 4 -/* B84A08 8010D868 10000019 */ b .L8010D8D0 -/* B84A0C 8010D86C 960563F0 */ lhu $a1, 0x63f0($s0) -/* B84A10 8010D870 24010009 */ li $at, 9 -.L8010D874: -/* B84A14 8010D874 54410006 */ bnel $v0, $at, .L8010D890 -/* B84A18 8010D878 2401000A */ li $at, 10 -/* B84A1C 8010D87C 0C03B616 */ jal func_800ED858 -/* B84A20 8010D880 24040002 */ li $a0, 2 -/* B84A24 8010D884 10000012 */ b .L8010D8D0 -/* B84A28 8010D888 960563F0 */ lhu $a1, 0x63f0($s0) -/* B84A2C 8010D88C 2401000A */ li $at, 10 -.L8010D890: -/* B84A30 8010D890 54410006 */ bnel $v0, $at, .L8010D8AC -/* B84A34 8010D894 2401000D */ li $at, 13 -/* B84A38 8010D898 0C03B616 */ jal func_800ED858 -/* B84A3C 8010D89C 24040003 */ li $a0, 3 -/* B84A40 8010D8A0 1000000B */ b .L8010D8D0 -/* B84A44 8010D8A4 960563F0 */ lhu $a1, 0x63f0($s0) -/* B84A48 8010D8A8 2401000D */ li $at, 13 -.L8010D8AC: -/* B84A4C 8010D8AC 14410005 */ bne $v0, $at, .L8010D8C4 -/* B84A50 8010D8B0 00000000 */ nop -/* B84A54 8010D8B4 0C03B616 */ jal func_800ED858 -/* B84A58 8010D8B8 24040005 */ li $a0, 5 -/* B84A5C 8010D8BC 10000004 */ b .L8010D8D0 -/* B84A60 8010D8C0 960563F0 */ lhu $a1, 0x63f0($s0) -.L8010D8C4: -/* B84A64 8010D8C4 0C03B616 */ jal func_800ED858 -/* B84A68 8010D8C8 24040001 */ li $a0, 1 -/* B84A6C 8010D8CC 960563F0 */ lhu $a1, 0x63f0($s0) -.L8010D8D0: -/* B84A70 8010D8D0 3C048015 */ lui $a0, %hi(D_801545D4) # $a0, 0x8015 -/* B84A74 8010D8D4 248445D4 */ addiu $a0, %lo(D_801545D4) # addiu $a0, $a0, 0x45d4 -/* B84A78 8010D8D8 0C00084C */ jal osSyncPrintf -/* B84A7C 8010D8DC 24A5FFFE */ addiu $a1, $a1, -2 -/* B84A80 8010D8E0 960463F0 */ lhu $a0, 0x63f0($s0) -/* B84A84 8010D8E4 24050002 */ li $a1, 2 -/* B84A88 8010D8E8 2484FFFF */ addiu $a0, $a0, -1 -/* B84A8C 8010D8EC 00042600 */ sll $a0, $a0, 0x18 -/* B84A90 8010D8F0 0C03B64F */ jal func_800ED93C -/* B84A94 8010D8F4 00042603 */ sra $a0, $a0, 0x18 -/* B84A98 8010D8F8 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B84A9C 8010D8FC 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B84AA0 8010D900 A5000000 */ sh $zero, ($t0) -/* B84AA4 8010D904 240E0019 */ li $t6, 25 -/* B84AA8 8010D908 26217FFF */ addiu $at, $s1, 0x7fff -/* B84AAC 8010D90C A02E6305 */ sb $t6, 0x6305($at) -.L8010D910: -/* B84AB0 8010D910 02402025 */ move $a0, $s2 -/* B84AB4 8010D914 0C0421AC */ jal func_801086B0 -/* B84AB8 8010D918 27A50140 */ addiu $a1, $sp, 0x140 -/* B84ABC 8010D91C 100004D4 */ b .L8010EC70 -/* B84AC0 8010D920 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D924 -/* B84AC4 8010D924 960563EC */ lhu $a1, 0x63ec($s0) -/* B84AC8 8010D928 02402025 */ move $a0, $s2 -/* B84ACC 8010D92C 24A50893 */ addiu $a1, $a1, 0x893 -/* B84AD0 8010D930 0C042DC8 */ jal func_8010B720 -/* B84AD4 8010D934 30A5FFFF */ andi $a1, $a1, 0xffff -/* B84AD8 8010D938 0C0426CF */ jal func_80109B3C -/* B84ADC 8010D93C 02402025 */ move $a0, $s2 -/* B84AE0 8010D940 24190015 */ li $t9, 21 -/* B84AE4 8010D944 26217FFF */ addiu $at, $s1, 0x7fff -/* B84AE8 8010D948 240F0014 */ li $t7, 20 -/* B84AEC 8010D94C A0396305 */ sb $t9, 0x6305($at) -/* B84AF0 8010D950 A02F63E8 */ sb $t7, 0x63e8($at) -/* B84AF4 8010D954 02402025 */ move $a0, $s2 -/* B84AF8 8010D958 0C0421AC */ jal func_801086B0 -/* B84AFC 8010D95C 27A50140 */ addiu $a1, $sp, 0x140 -/* B84B00 8010D960 100004C3 */ b .L8010EC70 -/* B84B04 8010D964 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D968 -/* B84B08 8010D968 921863E7 */ lbu $t8, 0x63e7($s0) -/* B84B0C 8010D96C 26217FFF */ addiu $at, $s1, 0x7fff -/* B84B10 8010D970 270EFFFF */ addiu $t6, $t8, -1 -/* B84B14 8010D974 A02E63E8 */ sb $t6, 0x63e8($at) -/* B84B18 8010D978 921963E7 */ lbu $t9, 0x63e7($s0) -/* B84B1C 8010D97C 17200003 */ bnez $t9, .L8010D98C -/* B84B20 8010D980 240F0016 */ li $t7, 22 -/* B84B24 8010D984 26217FFF */ addiu $at, $s1, 0x7fff -/* B84B28 8010D988 A02F6305 */ sb $t7, 0x6305($at) -.L8010D98C: -/* B84B2C 8010D98C 02402025 */ move $a0, $s2 -/* B84B30 8010D990 0C0421AC */ jal func_801086B0 -/* B84B34 8010D994 27A50140 */ addiu $a1, $sp, 0x140 -/* B84B38 8010D998 100004B5 */ b .L8010EC70 -/* B84B3C 8010D99C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D9A0 -/* B84B40 8010D9A0 0C03B616 */ jal func_800ED858 -/* B84B44 8010D9A4 00002025 */ move $a0, $zero -/* B84B48 8010D9A8 0C041A6C */ jal func_801069B0 -/* B84B4C 8010D9AC 00000000 */ nop -/* B84B50 8010D9B0 24180017 */ li $t8, 23 -/* B84B54 8010D9B4 26217FFF */ addiu $at, $s1, 0x7fff -/* B84B58 8010D9B8 240E0002 */ li $t6, 2 -/* B84B5C 8010D9BC A0386305 */ sb $t8, 0x6305($at) -/* B84B60 8010D9C0 A02E63E8 */ sb $t6, 0x63e8($at) -/* B84B64 8010D9C4 02402025 */ move $a0, $s2 -/* B84B68 8010D9C8 0C0421AC */ jal func_801086B0 -/* B84B6C 8010D9CC 27A50140 */ addiu $a1, $sp, 0x140 -/* B84B70 8010D9D0 100004A7 */ b .L8010EC70 -/* B84B74 8010D9D4 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010D9D8 -/* B84B78 8010D9D8 921963E7 */ lbu $t9, 0x63e7($s0) -/* B84B7C 8010D9DC 26217FFF */ addiu $at, $s1, 0x7fff -/* B84B80 8010D9E0 272FFFFF */ addiu $t7, $t9, -1 -/* B84B84 8010D9E4 A02F63E8 */ sb $t7, 0x63e8($at) -/* B84B88 8010D9E8 921863E7 */ lbu $t8, 0x63e7($s0) -/* B84B8C 8010D9EC 17000086 */ bnez $t8, .L8010DC08 -/* B84B90 8010D9F0 00000000 */ nop -/* B84B94 8010D9F4 960363EC */ lhu $v1, 0x63ec($s0) -/* B84B98 8010D9F8 28610006 */ slti $at, $v1, 6 -/* B84B9C 8010D9FC 1020002A */ beqz $at, .L8010DAA8 -/* B84BA0 8010DA00 00000000 */ nop -/* B84BA4 8010DA04 960263F0 */ lhu $v0, 0x63f0($s0) -/* B84BA8 8010DA08 2841000F */ slti $at, $v0, 0xf -/* B84BAC 8010DA0C 14200003 */ bnez $at, .L8010DA1C -/* B84BB0 8010DA10 28410015 */ slti $at, $v0, 0x15 -/* B84BB4 8010DA14 14200024 */ bnez $at, .L8010DAA8 -/* B84BB8 8010DA18 00000000 */ nop -.L8010DA1C: -/* B84BBC 8010DA1C 860E640C */ lh $t6, 0x640c($s0) -/* B84BC0 8010DA20 15C00005 */ bnez $t6, .L8010DA38 -/* B84BC4 8010DA24 3C190001 */ lui $t9, 1 -/* B84BC8 8010DA28 0332C821 */ addu $t9, $t9, $s2 -/* B84BCC 8010DA2C 93390759 */ lbu $t9, 0x759($t9) -/* B84BD0 8010DA30 24010003 */ li $at, 3 -/* B84BD4 8010DA34 17210009 */ bne $t9, $at, .L8010DA5C -.L8010DA38: -/* B84BD8 8010DA38 02402025 */ move $a0, $s2 -/* B84BDC 8010DA3C 2405088C */ li $a1, 2188 -/* B84BE0 8010DA40 0C042DA0 */ jal func_8010B680 -/* B84BE4 8010DA44 00003025 */ move $a2, $zero -/* B84BE8 8010DA48 3C010001 */ lui $at, 1 -/* B84BEC 8010DA4C 00320821 */ addu $at, $at, $s2 -/* B84BF0 8010DA50 240F0004 */ li $t7, 4 -/* B84BF4 8010DA54 1000006C */ b .L8010DC08 -/* B84BF8 8010DA58 A42F04C6 */ sh $t7, 0x4c6($at) -.L8010DA5C: -/* B84BFC 8010DA5C 3C188016 */ lui $t8, %hi(gSaveContext+0x13fa) # $t8, 0x8016 -/* B84C00 8010DA60 9718FA5A */ lhu $t8, %lo(gSaveContext+0x13fa)($t8) -/* B84C04 8010DA64 24010001 */ li $at, 1 -/* B84C08 8010DA68 330E000F */ andi $t6, $t8, 0xf -/* B84C0C 8010DA6C 11C1000A */ beq $t6, $at, .L8010DA98 -/* B84C10 8010DA70 2465088D */ addiu $a1, $v1, 0x88d -/* B84C14 8010DA74 30A5FFFF */ andi $a1, $a1, 0xffff -/* B84C18 8010DA78 02402025 */ move $a0, $s2 -/* B84C1C 8010DA7C 0C042DA0 */ jal func_8010B680 -/* B84C20 8010DA80 00003025 */ move $a2, $zero -/* B84C24 8010DA84 3C010001 */ lui $at, 1 -/* B84C28 8010DA88 00320821 */ addu $at, $at, $s2 -/* B84C2C 8010DA8C 24190001 */ li $t9, 1 -/* B84C30 8010DA90 1000005D */ b .L8010DC08 -/* B84C34 8010DA94 A43904C6 */ sh $t9, 0x4c6($at) -.L8010DA98: -/* B84C38 8010DA98 0C041B33 */ jal func_80106CCC -/* B84C3C 8010DA9C 02402025 */ move $a0, $s2 -/* B84C40 8010DAA0 10000059 */ b .L8010DC08 -/* B84C44 8010DAA4 00000000 */ nop -.L8010DAA8: -/* B84C48 8010DAA8 0C041B33 */ jal func_80106CCC -/* B84C4C 8010DAAC 02402025 */ move $a0, $s2 -/* B84C50 8010DAB0 960F63EC */ lhu $t7, 0x63ec($s0) -/* B84C54 8010DAB4 24010007 */ li $at, 7 -/* B84C58 8010DAB8 15E10005 */ bne $t7, $at, .L8010DAD0 -/* B84C5C 8010DABC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B84C60 8010DAC0 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B84C64 8010DAC4 8D2E0000 */ lw $t6, ($t1) -/* B84C68 8010DAC8 24180001 */ li $t8, 1 -/* B84C6C 8010DACC A5D805BE */ sh $t8, 0x5be($t6) -.L8010DAD0: -/* B84C70 8010DAD0 3C048015 */ lui $a0, %hi(D_801545E4) # $a0, 0x8015 -/* B84C74 8010DAD4 0C00084C */ jal osSyncPrintf -/* B84C78 8010DAD8 248445E4 */ addiu $a0, %lo(D_801545E4) # addiu $a0, $a0, 0x45e4 -/* B84C7C 8010DADC 3C048015 */ lui $a0, %hi(D_801545EC) # $a0, 0x8015 -/* B84C80 8010DAE0 248445EC */ addiu $a0, %lo(D_801545EC) # addiu $a0, $a0, 0x45ec -/* B84C84 8010DAE4 960563EC */ lhu $a1, 0x63ec($s0) -/* B84C88 8010DAE8 0C00084C */ jal osSyncPrintf -/* B84C8C 8010DAEC 960663F0 */ lhu $a2, 0x63f0($s0) -/* B84C90 8010DAF0 960263F0 */ lhu $v0, 0x63f0($s0) -/* B84C94 8010DAF4 24010029 */ li $at, 41 -/* B84C98 8010DAF8 1441000C */ bne $v0, $at, .L8010DB2C -/* B84C9C 8010DAFC 3C010001 */ lui $at, 1 -/* B84CA0 8010DB00 00320821 */ addu $at, $at, $s2 -/* B84CA4 8010DB04 24190001 */ li $t9, 1 -/* B84CA8 8010DB08 A43904C6 */ sh $t9, 0x4c6($at) -/* B84CAC 8010DB0C 960F63EC */ lhu $t7, 0x63ec($s0) -/* B84CB0 8010DB10 2405000C */ li $a1, 12 -/* B84CB4 8010DB14 14AF0034 */ bne $a1, $t7, .L8010DBE8 -/* B84CB8 8010DB18 3C010001 */ lui $at, 1 -/* B84CBC 8010DB1C 00320821 */ addu $at, $at, $s2 -/* B84CC0 8010DB20 2418000B */ li $t8, 11 -/* B84CC4 8010DB24 10000030 */ b .L8010DBE8 -/* B84CC8 8010DB28 A43804C6 */ sh $t8, 0x4c6($at) -.L8010DB2C: -/* B84CCC 8010DB2C 2841001C */ slti $at, $v0, 0x1c -/* B84CD0 8010DB30 14200017 */ bnez $at, .L8010DB90 -/* B84CD4 8010DB34 3C048015 */ lui $a0, %hi(D_80154618) # $a0, 0x8015 -/* B84CD8 8010DB38 0C00084C */ jal osSyncPrintf -/* B84CDC 8010DB3C 24844618 */ addiu $a0, %lo(D_80154618) # addiu $a0, $a0, 0x4618 -/* B84CE0 8010DB40 960663F0 */ lhu $a2, 0x63f0($s0) -/* B84CE4 8010DB44 3C048015 */ lui $a0, %hi(D_80154620) # $a0, 0x8015 -/* B84CE8 8010DB48 24844620 */ addiu $a0, %lo(D_80154620) # addiu $a0, $a0, 0x4620 -/* B84CEC 8010DB4C 2405001C */ li $a1, 28 -/* B84CF0 8010DB50 0C00084C */ jal osSyncPrintf -/* B84CF4 8010DB54 24C6FFE4 */ addiu $a2, $a2, -0x1c -/* B84CF8 8010DB58 960363EC */ lhu $v1, 0x63ec($s0) -/* B84CFC 8010DB5C 960E63F0 */ lhu $t6, 0x63f0($s0) -/* B84D00 8010DB60 2479001C */ addiu $t9, $v1, 0x1c -/* B84D04 8010DB64 15D90005 */ bne $t6, $t9, .L8010DB7C -/* B84D08 8010DB68 3C010001 */ lui $at, 1 -/* B84D0C 8010DB6C 00320821 */ addu $at, $at, $s2 -/* B84D10 8010DB70 240F0003 */ li $t7, 3 -/* B84D14 8010DB74 1000001C */ b .L8010DBE8 -/* B84D18 8010DB78 A42F04C6 */ sh $t7, 0x4c6($at) -.L8010DB7C: -/* B84D1C 8010DB7C 3C010001 */ lui $at, 1 -/* B84D20 8010DB80 00320821 */ addu $at, $at, $s2 -/* B84D24 8010DB84 2478FFFF */ addiu $t8, $v1, -1 -/* B84D28 8010DB88 10000017 */ b .L8010DBE8 -/* B84D2C 8010DB8C A43804C6 */ sh $t8, 0x4c6($at) -.L8010DB90: -/* B84D30 8010DB90 3C048015 */ lui $a0, %hi(D_80154644) # $a0, 0x8015 -/* B84D34 8010DB94 0C00084C */ jal osSyncPrintf -/* B84D38 8010DB98 24844644 */ addiu $a0, %lo(D_80154644) # addiu $a0, $a0, 0x4644 -/* B84D3C 8010DB9C 960663F0 */ lhu $a2, 0x63f0($s0) -/* B84D40 8010DBA0 3C048015 */ lui $a0, %hi(D_8015464C) # $a0, 0x8015 -/* B84D44 8010DBA4 2484464C */ addiu $a0, %lo(D_8015464C) # addiu $a0, $a0, 0x464c -/* B84D48 8010DBA8 2405000F */ li $a1, 15 -/* B84D4C 8010DBAC 0C00084C */ jal osSyncPrintf -/* B84D50 8010DBB0 24C6FFF1 */ addiu $a2, $a2, -0xf -/* B84D54 8010DBB4 961963EC */ lhu $t9, 0x63ec($s0) -/* B84D58 8010DBB8 960E63F0 */ lhu $t6, 0x63f0($s0) -/* B84D5C 8010DBBC 272F000F */ addiu $t7, $t9, 0xf -/* B84D60 8010DBC0 15CF0005 */ bne $t6, $t7, .L8010DBD8 -/* B84D64 8010DBC4 3C010001 */ lui $at, 1 -/* B84D68 8010DBC8 00320821 */ addu $at, $at, $s2 -/* B84D6C 8010DBCC 24180003 */ li $t8, 3 -/* B84D70 8010DBD0 10000005 */ b .L8010DBE8 -/* B84D74 8010DBD4 A43804C6 */ sh $t8, 0x4c6($at) -.L8010DBD8: -/* B84D78 8010DBD8 3C010001 */ lui $at, 1 -/* B84D7C 8010DBDC 00320821 */ addu $at, $at, $s2 -/* B84D80 8010DBE0 24190004 */ li $t9, 4 -/* B84D84 8010DBE4 A43904C6 */ sh $t9, 0x4c6($at) -.L8010DBE8: -/* B84D88 8010DBE8 3C048015 */ lui $a0, %hi(D_8015466C) # $a0, 0x8015 -/* B84D8C 8010DBEC 0C00084C */ jal osSyncPrintf -/* B84D90 8010DBF0 2484466C */ addiu $a0, %lo(D_8015466C) # addiu $a0, $a0, 0x466c -/* B84D94 8010DBF4 8FAE008C */ lw $t6, 0x8c($sp) -/* B84D98 8010DBF8 3C048015 */ lui $a0, %hi(D_80154670) # $a0, 0x8015 -/* B84D9C 8010DBFC 24844670 */ addiu $a0, %lo(D_80154670) # addiu $a0, $a0, 0x4670 -/* B84DA0 8010DC00 0C00084C */ jal osSyncPrintf -/* B84DA4 8010DC04 95C504C6 */ lhu $a1, 0x4c6($t6) -.L8010DC08: -/* B84DA8 8010DC08 10000419 */ b .L8010EC70 -/* B84DAC 8010DC0C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010DC10 -/* B84DB0 8010DC10 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B84DB4 8010DC14 00000000 */ nop -/* B84DB8 8010DC18 26217FFF */ addiu $at, $s1, 0x7fff -/* B84DBC 8010DC1C AC2262B9 */ sw $v0, 0x62b9($at) -/* B84DC0 8010DC20 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B84DC4 8010DC24 90EF0001 */ lbu $t7, 1($a3) -/* B84DC8 8010DC28 15E00016 */ bnez $t7, .L8010DC84 -/* B84DCC 8010DC2C 00000000 */ nop -/* B84DD0 8010DC30 92186304 */ lbu $t8, 0x6304($s0) -/* B84DD4 8010DC34 24010013 */ li $at, 19 -/* B84DD8 8010DC38 17010004 */ bne $t8, $at, .L8010DC4C -/* B84DDC 8010DC3C 24190014 */ li $t9, 20 -/* B84DE0 8010DC40 26217FFF */ addiu $at, $s1, 0x7fff -/* B84DE4 8010DC44 10000004 */ b .L8010DC58 -/* B84DE8 8010DC48 A0396305 */ sb $t9, 0x6305($at) -.L8010DC4C: -/* B84DEC 8010DC4C 240E001A */ li $t6, 26 -/* B84DF0 8010DC50 26217FFF */ addiu $at, $s1, 0x7fff -/* B84DF4 8010DC54 A02E6305 */ sb $t6, 0x6305($at) -.L8010DC58: -/* B84DF8 8010DC58 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B84DFC 8010DC5C 3C068015 */ lui $a2, %hi(D_8015394C) -/* B84E00 8010DC60 3C048015 */ lui $a0, %hi(D_80154688) # $a0, 0x8015 -/* B84E04 8010DC64 91E30002 */ lbu $v1, 2($t7) -/* B84E08 8010DC68 24844688 */ addiu $a0, %lo(D_80154688) # addiu $a0, $a0, 0x4688 -/* B84E0C 8010DC6C 00C33021 */ addu $a2, $a2, $v1 -/* B84E10 8010DC70 90C6394C */ lbu $a2, %lo(D_8015394C)($a2) -/* B84E14 8010DC74 0C00084C */ jal osSyncPrintf -/* B84E18 8010DC78 00602825 */ move $a1, $v1 -/* B84E1C 8010DC7C 10000023 */ b .L8010DD0C -/* B84E20 8010DC80 02402025 */ move $a0, $s2 -.L8010DC84: -/* B84E24 8010DC84 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B84E28 8010DC88 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B84E2C 8010DC8C 85180000 */ lh $t8, ($t0) -/* B84E30 8010DC90 53000008 */ beql $t8, $zero, .L8010DCB4 -/* B84E34 8010DC94 90E30002 */ lbu $v1, 2($a3) -/* B84E38 8010DC98 90F90002 */ lbu $t9, 2($a3) -/* B84E3C 8010DC9C 24010001 */ li $at, 1 -/* B84E40 8010DCA0 57210004 */ bnel $t9, $at, .L8010DCB4 -/* B84E44 8010DCA4 90E30002 */ lbu $v1, 2($a3) -/* B84E48 8010DCA8 A5000000 */ sh $zero, ($t0) -/* B84E4C 8010DCAC 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B84E50 8010DCB0 90E30002 */ lbu $v1, 2($a3) -.L8010DCB4: -/* B84E54 8010DCB4 50600015 */ beql $v1, $zero, .L8010DD0C -/* B84E58 8010DCB8 02402025 */ move $a0, $s2 -/* B84E5C 8010DCBC 850E0000 */ lh $t6, ($t0) -/* B84E60 8010DCC0 25CF0001 */ addiu $t7, $t6, 1 -/* B84E64 8010DCC4 546F0011 */ bnel $v1, $t7, .L8010DD0C -/* B84E68 8010DCC8 02402025 */ move $a0, $s2 -/* B84E6C 8010DCCC 90E20000 */ lbu $v0, ($a3) -/* B84E70 8010DCD0 3C018015 */ lui $at, %hi(D_8015394B) -/* B84E74 8010DCD4 00230821 */ addu $at, $at, $v1 -/* B84E78 8010DCD8 A022394B */ sb $v0, %lo(D_8015394B)($at) -/* B84E7C 8010DCDC 26217FFF */ addiu $at, $s1, 0x7fff -/* B84E80 8010DCE0 A0226411 */ sb $v0, 0x6411($at) -/* B84E84 8010DCE4 8E1962B8 */ lw $t9, 0x62b8($s0) -/* B84E88 8010DCE8 3C018015 */ lui $at, %hi(D_8015394C) -/* B84E8C 8010DCEC 241800FF */ li $t8, 255 -/* B84E90 8010DCF0 932E0002 */ lbu $t6, 2($t9) -/* B84E94 8010DCF4 002E0821 */ addu $at, $at, $t6 -/* B84E98 8010DCF8 A038394C */ sb $t8, %lo(D_8015394C)($at) -/* B84E9C 8010DCFC 850F0000 */ lh $t7, ($t0) -/* B84EA0 8010DD00 25F90001 */ addiu $t9, $t7, 1 -/* B84EA4 8010DD04 A5190000 */ sh $t9, ($t0) -glabel L8010DD08 -/* B84EA8 8010DD08 02402025 */ move $a0, $s2 -.L8010DD0C: -/* B84EAC 8010DD0C 0C0421AC */ jal func_801086B0 -/* B84EB0 8010DD10 27A50140 */ addiu $a1, $sp, 0x140 -/* B84EB4 8010DD14 100003D6 */ b .L8010EC70 -/* B84EB8 8010DD18 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010DD1C -/* B84EBC 8010DD1C 0C03B8F5 */ jal func_800EE3D4 -/* B84EC0 8010DD20 00000000 */ nop -/* B84EC4 8010DD24 26217FFF */ addiu $at, $s1, 0x7fff -/* B84EC8 8010DD28 AC2262B9 */ sw $v0, 0x62b9($at) -/* B84ECC 8010DD2C 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B84ED0 8010DD30 90E30002 */ lbu $v1, 2($a3) -/* B84ED4 8010DD34 10600013 */ beqz $v1, .L8010DD84 -/* B84ED8 8010DD38 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B84EDC 8010DD3C 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B84EE0 8010DD40 85050000 */ lh $a1, ($t0) -/* B84EE4 8010DD44 24B80001 */ addiu $t8, $a1, 1 -/* B84EE8 8010DD48 5478000F */ bnel $v1, $t8, .L8010DD88 -/* B84EEC 8010DD4C 90E60001 */ lbu $a2, 1($a3) -/* B84EF0 8010DD50 90EE0000 */ lbu $t6, ($a3) -/* B84EF4 8010DD54 3C018015 */ lui $at, %hi(D_8015394B) -/* B84EF8 8010DD58 00230821 */ addu $at, $at, $v1 -/* B84EFC 8010DD5C A02E394B */ sb $t6, %lo(D_8015394B)($at) -/* B84F00 8010DD60 8E1962B8 */ lw $t9, 0x62b8($s0) -/* B84F04 8010DD64 3C018015 */ lui $at, %hi(D_8015394C) -/* B84F08 8010DD68 240F00FF */ li $t7, 255 -/* B84F0C 8010DD6C 93380002 */ lbu $t8, 2($t9) -/* B84F10 8010DD70 24AE0001 */ addiu $t6, $a1, 1 -/* B84F14 8010DD74 00380821 */ addu $at, $at, $t8 -/* B84F18 8010DD78 A02F394C */ sb $t7, %lo(D_8015394C)($at) -/* B84F1C 8010DD7C A50E0000 */ sh $t6, ($t0) -/* B84F20 8010DD80 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010DD84: -/* B84F24 8010DD84 90E60001 */ lbu $a2, 1($a3) -.L8010DD88: -/* B84F28 8010DD88 28C1000D */ slti $at, $a2, 0xd -/* B84F2C 8010DD8C 10200030 */ beqz $at, .L8010DE50 -/* B84F30 8010DD90 3C048015 */ lui $a0, %hi(D_8015469C) # $a0, 0x8015 -/* B84F34 8010DD94 2484469C */ addiu $a0, %lo(D_8015469C) # addiu $a0, $a0, 0x469c -/* B84F38 8010DD98 0C00084C */ jal osSyncPrintf -/* B84F3C 8010DD9C 960563F0 */ lhu $a1, 0x63f0($s0) -/* B84F40 8010DDA0 8E1962B8 */ lw $t9, 0x62b8($s0) -/* B84F44 8010DDA4 26217FFF */ addiu $at, $s1, 0x7fff -/* B84F48 8010DDA8 2418001C */ li $t8, 28 -/* B84F4C 8010DDAC 932F0001 */ lbu $t7, 1($t9) -/* B84F50 8010DDB0 A0386305 */ sb $t8, 0x6305($at) -/* B84F54 8010DDB4 3C058015 */ lui $a1, %hi(D_8015396C) -/* B84F58 8010DDB8 A42F63ED */ sh $t7, 0x63ed($at) -/* B84F5C 8010DDBC 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B84F60 8010DDC0 02402025 */ move $a0, $s2 -/* B84F64 8010DDC4 91D90001 */ lbu $t9, 1($t6) -/* B84F68 8010DDC8 00197840 */ sll $t7, $t9, 1 -/* B84F6C 8010DDCC 00AF2821 */ addu $a1, $a1, $t7 -/* B84F70 8010DDD0 84A5396C */ lh $a1, %lo(D_8015396C)($a1) -/* B84F74 8010DDD4 24A5005A */ addiu $a1, $a1, 0x5a -/* B84F78 8010DDD8 0C021344 */ jal Item_Give -/* B84F7C 8010DDDC 30A500FF */ andi $a1, $a1, 0xff -/* B84F80 8010DDE0 3C048015 */ lui $a0, %hi(D_801546C8) # $a0, 0x8015 -/* B84F84 8010DDE4 0C00084C */ jal osSyncPrintf -/* B84F88 8010DDE8 248446C8 */ addiu $a0, %lo(D_801546C8) # addiu $a0, $a0, 0x46c8 -/* B84F8C 8010DDEC 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B84F90 8010DDF0 3C048015 */ lui $a0, %hi(D_801546D0) # $a0, 0x8015 -/* B84F94 8010DDF4 248446D0 */ addiu $a0, %lo(D_801546D0) # addiu $a0, $a0, 0x46d0 -/* B84F98 8010DDF8 93050001 */ lbu $a1, 1($t8) -/* B84F9C 8010DDFC 0C00084C */ jal osSyncPrintf -/* B84FA0 8010DE00 24A5005A */ addiu $a1, $a1, 0x5a -/* B84FA4 8010DE04 3C048015 */ lui $a0, %hi(D_801546F0) # $a0, 0x8015 -/* B84FA8 8010DE08 0C00084C */ jal osSyncPrintf -/* B84FAC 8010DE0C 248446F0 */ addiu $a0, %lo(D_801546F0) # addiu $a0, $a0, 0x46f0 -/* B84FB0 8010DE10 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B84FB4 8010DE14 240E0014 */ li $t6, 20 -/* B84FB8 8010DE18 26217FFF */ addiu $at, $s1, 0x7fff -/* B84FBC 8010DE1C 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B84FC0 8010DE20 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B84FC4 8010DE24 A02E63E8 */ sb $t6, 0x63e8($at) -/* B84FC8 8010DE28 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B84FCC 8010DE2C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B84FD0 8010DE30 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B84FD4 8010DE34 AFB90014 */ sw $t9, 0x14($sp) -/* B84FD8 8010DE38 AFA70010 */ sw $a3, 0x10($sp) -/* B84FDC 8010DE3C 24044807 */ li $a0, 18439 -/* B84FE0 8010DE40 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B84FE4 8010DE44 24060004 */ li $a2, 4 -/* B84FE8 8010DE48 10000014 */ b .L8010DE9C -/* B84FEC 8010DE4C 02402025 */ move $a0, $s2 -.L8010DE50: -/* B84FF0 8010DE50 240100FF */ li $at, 255 -/* B84FF4 8010DE54 14C10010 */ bne $a2, $at, .L8010DE98 -/* B84FF8 8010DE58 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B84FFC 8010DE5C 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B85000 8010DE60 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85004 8010DE64 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B85008 8010DE68 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B8500C 8010DE6C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85010 8010DE70 AFAF0014 */ sw $t7, 0x14($sp) -/* B85014 8010DE74 AFA70010 */ sw $a3, 0x10($sp) -/* B85018 8010DE78 24044827 */ li $a0, 18471 -/* B8501C 8010DE7C 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85020 8010DE80 24060004 */ li $a2, 4 -/* B85024 8010DE84 26217FFF */ addiu $at, $s1, 0x7fff -/* B85028 8010DE88 2418000A */ li $t8, 10 -/* B8502C 8010DE8C 240E001D */ li $t6, 29 -/* B85030 8010DE90 A03863E8 */ sb $t8, 0x63e8($at) -/* B85034 8010DE94 A02E6305 */ sb $t6, 0x6305($at) -.L8010DE98: -/* B85038 8010DE98 02402025 */ move $a0, $s2 -.L8010DE9C: -/* B8503C 8010DE9C 0C0421AC */ jal func_801086B0 -/* B85040 8010DEA0 27A50140 */ addiu $a1, $sp, 0x140 -/* B85044 8010DEA4 10000372 */ b .L8010EC70 -/* B85048 8010DEA8 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010DEAC -/* B8504C 8010DEAC 02402025 */ move $a0, $s2 -/* B85050 8010DEB0 0C0421AC */ jal func_801086B0 -/* B85054 8010DEB4 27A50140 */ addiu $a1, $sp, 0x140 -/* B85058 8010DEB8 0C041AF2 */ jal func_80106BC8 -/* B8505C 8010DEBC 02402025 */ move $a0, $s2 -/* B85060 8010DEC0 10400003 */ beqz $v0, .L8010DED0 -/* B85064 8010DEC4 02402025 */ move $a0, $s2 -/* B85068 8010DEC8 0C042F56 */ jal func_8010BD58 -/* B8506C 8010DECC 960563F0 */ lhu $a1, 0x63f0($s0) -.L8010DED0: -/* B85070 8010DED0 10000367 */ b .L8010EC70 -/* B85074 8010DED4 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010DED8 -/* B85078 8010DED8 3C048015 */ lui $a0, %hi(D_801546F4) # $a0, 0x8015 -/* B8507C 8010DEDC 0C00084C */ jal osSyncPrintf -/* B85080 8010DEE0 248446F4 */ addiu $a0, %lo(D_801546F4) # addiu $a0, $a0, 0x46f4 -/* B85084 8010DEE4 0C03B85C */ jal func_800EE170 -/* B85088 8010DEE8 24040001 */ li $a0, 1 -/* B8508C 8010DEEC 0C03B616 */ jal func_800ED858 -/* B85090 8010DEF0 24040001 */ li $a0, 1 -/* B85094 8010DEF4 0C03B8F2 */ jal func_800EE3C8 -/* B85098 8010DEF8 00000000 */ nop -/* B8509C 8010DEFC 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B850A0 8010DF00 26217FFF */ addiu $at, $s1, 0x7fff -/* B850A4 8010DF04 AC2262B9 */ sw $v0, 0x62b9($at) -/* B850A8 8010DF08 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B850AC 8010DF0C A5000000 */ sh $zero, ($t0) -/* B850B0 8010DF10 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B850B4 8010DF14 85190000 */ lh $t9, ($t0) -/* B850B8 8010DF18 3C098015 */ lui $t1, %hi(D_8014B2FC) # $t1, 0x8015 -/* B850BC 8010DF1C 2529B2FC */ addiu $t1, %lo(D_8014B2FC) # addiu $t1, $t1, -0x4d04 -/* B850C0 8010DF20 A1F90002 */ sb $t9, 2($t7) -/* B850C4 8010DF24 0C041A6C */ jal func_801069B0 -/* B850C8 8010DF28 A5200000 */ sh $zero, ($t1) -/* B850CC 8010DF2C 24180022 */ li $t8, 34 -/* B850D0 8010DF30 26217FFF */ addiu $at, $s1, 0x7fff -/* B850D4 8010DF34 A0386305 */ sb $t8, 0x6305($at) -/* B850D8 8010DF38 02402025 */ move $a0, $s2 -/* B850DC 8010DF3C 0C0421AC */ jal func_801086B0 -/* B850E0 8010DF40 27A50140 */ addiu $a1, $sp, 0x140 -/* B850E4 8010DF44 1000034A */ b .L8010EC70 -/* B850E8 8010DF48 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010DF4C -/* B850EC 8010DF4C 0C03B8F2 */ jal func_800EE3C8 -/* B850F0 8010DF50 00000000 */ nop -/* B850F4 8010DF54 26217FFF */ addiu $at, $s1, 0x7fff -/* B850F8 8010DF58 AC2262B9 */ sw $v0, 0x62b9($at) -/* B850FC 8010DF5C 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B85100 8010DF60 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85104 8010DF64 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85108 8010DF68 3C048015 */ lui $a0, %hi(D_80154708) # $a0, 0x8015 -/* B8510C 8010DF6C 24844708 */ addiu $a0, %lo(D_80154708) # addiu $a0, $a0, 0x4708 -/* B85110 8010DF70 85050000 */ lh $a1, ($t0) -/* B85114 8010DF74 0C00084C */ jal osSyncPrintf -/* B85118 8010DF78 91C60002 */ lbu $a2, 2($t6) -/* B8511C 8010DF7C 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85120 8010DF80 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85124 8010DF84 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85128 8010DF88 90E30002 */ lbu $v1, 2($a3) -/* B8512C 8010DF8C 5060003F */ beql $v1, $zero, .L8010E08C -/* B85130 8010DF90 90E60001 */ lbu $a2, 1($a3) -/* B85134 8010DF94 85190000 */ lh $t9, ($t0) -/* B85138 8010DF98 272F0001 */ addiu $t7, $t9, 1 -/* B8513C 8010DF9C 146F003A */ bne $v1, $t7, .L8010E088 -/* B85140 8010DFA0 3C098015 */ lui $t1, %hi(D_8014B2FC) # $t1, 0x8015 -/* B85144 8010DFA4 2529B2FC */ addiu $t1, %lo(D_8014B2FC) # addiu $t1, $t1, -0x4d04 -/* B85148 8010DFA8 85250000 */ lh $a1, ($t1) -/* B8514C 8010DFAC 28A10008 */ slti $at, $a1, 8 -/* B85150 8010DFB0 14200013 */ bnez $at, .L8010E000 -/* B85154 8010DFB4 24A2FFF8 */ addiu $v0, $a1, -8 -/* B85158 8010DFB8 3042FFFF */ andi $v0, $v0, 0xffff -/* B8515C 8010DFBC 00003825 */ move $a3, $zero -.L8010DFC0: -/* B85160 8010DFC0 3C188015 */ lui $t8, %hi(D_8015394C) # $t8, 0x8015 -/* B85164 8010DFC4 2718394C */ addiu $t8, %lo(D_8015394C) # addiu $t8, $t8, 0x394c -/* B85168 8010DFC8 24E70001 */ addiu $a3, $a3, 1 -/* B8516C 8010DFCC 00587021 */ addu $t6, $v0, $t8 -/* B85170 8010DFD0 91D90001 */ lbu $t9, 1($t6) -/* B85174 8010DFD4 30E7FFFF */ andi $a3, $a3, 0xffff -/* B85178 8010DFD8 00587821 */ addu $t7, $v0, $t8 -/* B8517C 8010DFDC 24420001 */ addiu $v0, $v0, 1 -/* B85180 8010DFE0 28E10008 */ slti $at, $a3, 8 -/* B85184 8010DFE4 3042FFFF */ andi $v0, $v0, 0xffff -/* B85188 8010DFE8 1420FFF5 */ bnez $at, .L8010DFC0 -/* B8518C 8010DFEC A1F90000 */ sb $t9, ($t7) -/* B85190 8010DFF0 24AEFFFF */ addiu $t6, $a1, -1 -/* B85194 8010DFF4 A52E0000 */ sh $t6, ($t1) -/* B85198 8010DFF8 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B8519C 8010DFFC 85250000 */ lh $a1, ($t1) -.L8010E000: -/* B851A0 8010E000 3C048015 */ lui $a0, %hi(D_80154720) # $a0, 0x8015 -/* B851A4 8010E004 24844720 */ addiu $a0, %lo(D_80154720) # addiu $a0, $a0, 0x4720 -/* B851A8 8010E008 0C00084C */ jal osSyncPrintf -/* B851AC 8010E00C 90E60000 */ lbu $a2, ($a3) -/* B851B0 8010E010 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B851B4 8010E014 3C098015 */ lui $t1, %hi(D_8014B2FC) # $t1, 0x8015 -/* B851B8 8010E018 2529B2FC */ addiu $t1, %lo(D_8014B2FC) # addiu $t1, $t1, -0x4d04 -/* B851BC 8010E01C 85390000 */ lh $t9, ($t1) -/* B851C0 8010E020 93020000 */ lbu $v0, ($t8) -/* B851C4 8010E024 3C018015 */ lui $at, %hi(D_8015394C) -/* B851C8 8010E028 00390821 */ addu $at, $at, $t9 -/* B851CC 8010E02C A022394C */ sb $v0, %lo(D_8015394C)($at) -/* B851D0 8010E030 26217FFF */ addiu $at, $s1, 0x7fff -/* B851D4 8010E034 A0226411 */ sb $v0, 0x6411($at) -/* B851D8 8010E038 852F0000 */ lh $t7, ($t1) -/* B851DC 8010E03C 3C018015 */ lui $at, %hi(D_8015394C) -/* B851E0 8010E040 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B851E4 8010E044 25EE0001 */ addiu $t6, $t7, 1 -/* B851E8 8010E048 A52E0000 */ sh $t6, ($t1) -/* B851EC 8010E04C 85390000 */ lh $t9, ($t1) -/* B851F0 8010E050 241800FF */ li $t8, 255 -/* B851F4 8010E054 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B851F8 8010E058 00390821 */ addu $at, $at, $t9 -/* B851FC 8010E05C A038394C */ sb $t8, %lo(D_8015394C)($at) -/* B85200 8010E060 850F0000 */ lh $t7, ($t0) -/* B85204 8010E064 24010008 */ li $at, 8 -/* B85208 8010E068 25EE0001 */ addiu $t6, $t7, 1 -/* B8520C 8010E06C A50E0000 */ sh $t6, ($t0) -/* B85210 8010E070 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85214 8010E074 90F80002 */ lbu $t8, 2($a3) -/* B85218 8010E078 57010004 */ bnel $t8, $at, .L8010E08C -/* B8521C 8010E07C 90E60001 */ lbu $a2, 1($a3) -/* B85220 8010E080 A5000000 */ sh $zero, ($t0) -/* B85224 8010E084 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010E088: -/* B85228 8010E088 90E60001 */ lbu $a2, 1($a3) -.L8010E08C: -/* B8522C 8010E08C 3C098015 */ lui $t1, %hi(D_8014B2FC) # $t1, 0x8015 -/* B85230 8010E090 2529B2FC */ addiu $t1, %lo(D_8014B2FC) # addiu $t1, $t1, -0x4d04 -/* B85234 8010E094 50C00007 */ beql $a2, $zero, .L8010E0B4 -/* B85238 8010E098 852E0000 */ lh $t6, ($t1) -/* B8523C 8010E09C 96590020 */ lhu $t9, 0x20($s2) -/* B85240 8010E0A0 2401BFFF */ li $at, -16385 -/* B85244 8010E0A4 03217827 */ nor $t7, $t9, $at -/* B85248 8010E0A8 55E00047 */ bnezl $t7, .L8010E1C8 -/* B8524C 8010E0AC 02402025 */ move $a0, $s2 -/* B85250 8010E0B0 852E0000 */ lh $t6, ($t1) -.L8010E0B4: -/* B85254 8010E0B4 11C00007 */ beqz $t6, .L8010E0D4 -/* B85258 8010E0B8 3C048015 */ lui $a0, %hi(D_80154738) # $a0, 0x8015 -/* B8525C 8010E0BC 24844738 */ addiu $a0, %lo(D_80154738) # addiu $a0, $a0, 0x4738 -/* B85260 8010E0C0 0C00084C */ jal osSyncPrintf -/* B85264 8010E0C4 00C02825 */ move $a1, $a2 -/* B85268 8010E0C8 24180001 */ li $t8, 1 -/* B8526C 8010E0CC 3C018016 */ lui $at, %hi(gSaveContext+0xf40) # $at, 0x8016 -/* B85270 8010E0D0 A038F5A0 */ sb $t8, %lo(gSaveContext+0xf40)($at) -.L8010E0D4: -/* B85274 8010E0D4 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85278 8010E0D8 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B8527C 8010E0DC 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85280 8010E0E0 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B85284 8010E0E4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85288 8010E0E8 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B8528C 8010E0EC AFB90014 */ sw $t9, 0x14($sp) -/* B85290 8010E0F0 AFA70010 */ sw $a3, 0x10($sp) -/* B85294 8010E0F4 24044827 */ li $a0, 18471 -/* B85298 8010E0F8 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B8529C 8010E0FC 24060004 */ li $a2, 4 -/* B852A0 8010E100 3C048015 */ lui $a0, %hi(D_80154770) # $a0, 0x8015 -/* B852A4 8010E104 0C00084C */ jal osSyncPrintf -/* B852A8 8010E108 24844770 */ addiu $a0, %lo(D_80154770) # addiu $a0, $a0, 0x4770 -/* B852AC 8010E10C 0C03B85C */ jal func_800EE170 -/* B852B0 8010E110 00002025 */ move $a0, $zero -/* B852B4 8010E114 240F000A */ li $t7, 10 -/* B852B8 8010E118 26217FFF */ addiu $at, $s1, 0x7fff -/* B852BC 8010E11C A02F63E8 */ sb $t7, 0x63e8($at) -/* B852C0 8010E120 3C010001 */ lui $at, 1 -/* B852C4 8010E124 00320821 */ addu $at, $at, $s2 -/* B852C8 8010E128 240E0004 */ li $t6, 4 -/* B852CC 8010E12C A42E04C6 */ sh $t6, 0x4c6($at) -/* B852D0 8010E130 0C041B33 */ jal func_80106CCC -/* B852D4 8010E134 02402025 */ move $a0, $s2 -/* B852D8 8010E138 3C048015 */ lui $a0, %hi(D_80154780) # $a0, 0x8015 -/* B852DC 8010E13C 0C00084C */ jal osSyncPrintf -/* B852E0 8010E140 24844780 */ addiu $a0, %lo(D_80154780) # addiu $a0, $a0, 0x4780 -/* B852E4 8010E144 3C048015 */ lui $a0, %hi(D_801547A4) # $a0, 0x8015 -/* B852E8 8010E148 0C00084C */ jal osSyncPrintf -/* B852EC 8010E14C 248447A4 */ addiu $a0, %lo(D_801547A4) # addiu $a0, $a0, 0x47a4 -/* B852F0 8010E150 3C048015 */ lui $a0, %hi(D_801547AC) # $a0, 0x8015 -/* B852F4 8010E154 0C00084C */ jal osSyncPrintf -/* B852F8 8010E158 248447AC */ addiu $a0, %lo(D_801547AC) # addiu $a0, $a0, 0x47ac -/* B852FC 8010E15C 3C048016 */ lui $a0, %hi(gSaveContext+0xf41) # $a0, 0x8016 -/* B85300 8010E160 3C058013 */ lui $a1, %hi(gScarecrowCustomSongPtr) # $a1, 0x8013 -/* B85304 8010E164 8CA51BE4 */ lw $a1, %lo(gScarecrowCustomSongPtr)($a1) -/* B85308 8010E168 2484F5A1 */ addiu $a0, %lo(gSaveContext+0xf41) # addiu $a0, $a0, -0xa5f -/* B8530C 8010E16C 0C01A508 */ jal MemCopy -/* B85310 8010E170 24060360 */ li $a2, 864 -/* B85314 8010E174 00003825 */ move $a3, $zero -.L8010E178: -/* B85318 8010E178 3C058016 */ lui $a1, %hi(gSaveContext+0xf41) -/* B8531C 8010E17C 00A72821 */ addu $a1, $a1, $a3 -/* B85320 8010E180 3C048015 */ lui $a0, %hi(D_801547F4) # $a0, 0x8015 -/* B85324 8010E184 248447F4 */ addiu $a0, %lo(D_801547F4) # addiu $a0, $a0, 0x47f4 -/* B85328 8010E188 90A5F5A1 */ lbu $a1, %lo(gSaveContext+0xf41)($a1) -/* B8532C 8010E18C 0C00084C */ jal osSyncPrintf -/* B85330 8010E190 A7A70138 */ sh $a3, 0x138($sp) -/* B85334 8010E194 97A70138 */ lhu $a3, 0x138($sp) -/* B85338 8010E198 24E70001 */ addiu $a3, $a3, 1 -/* B8533C 8010E19C 30E7FFFF */ andi $a3, $a3, 0xffff -/* B85340 8010E1A0 28E10360 */ slti $at, $a3, 0x360 -/* B85344 8010E1A4 1420FFF4 */ bnez $at, .L8010E178 -/* B85348 8010E1A8 00000000 */ nop -/* B8534C 8010E1AC 3C048015 */ lui $a0, %hi(D_801547FC) # $a0, 0x8015 -/* B85350 8010E1B0 0C00084C */ jal osSyncPrintf -/* B85354 8010E1B4 248447FC */ addiu $a0, %lo(D_801547FC) # addiu $a0, $a0, 0x47fc -/* B85358 8010E1B8 3C048015 */ lui $a0, %hi(D_80154800) # $a0, 0x8015 -/* B8535C 8010E1BC 0C00084C */ jal osSyncPrintf -/* B85360 8010E1C0 24844800 */ addiu $a0, %lo(D_80154800) # addiu $a0, $a0, 0x4800 -/* B85364 8010E1C4 02402025 */ move $a0, $s2 -.L8010E1C8: -/* B85368 8010E1C8 0C0421AC */ jal func_801086B0 -/* B8536C 8010E1CC 27A50140 */ addiu $a1, $sp, 0x140 -/* B85370 8010E1D0 100002A7 */ b .L8010EC70 -/* B85374 8010E1D4 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E1D8 -/* B85378 8010E1D8 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B8537C 8010E1DC 00000000 */ nop -/* B85380 8010E1E0 26217FFF */ addiu $at, $s1, 0x7fff -/* B85384 8010E1E4 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85388 8010E1E8 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B8538C 8010E1EC 90E30002 */ lbu $v1, 2($a3) -/* B85390 8010E1F0 10600033 */ beqz $v1, .L8010E2C0 -/* B85394 8010E1F4 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85398 8010E1F8 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B8539C 8010E1FC 85050000 */ lh $a1, ($t0) -/* B853A0 8010E200 24B80001 */ addiu $t8, $a1, 1 -/* B853A4 8010E204 1478002E */ bne $v1, $t8, .L8010E2C0 -/* B853A8 8010E208 3C098015 */ lui $t1, %hi(D_8014B2FC) # $t1, 0x8015 -/* B853AC 8010E20C 2529B2FC */ addiu $t1, %lo(D_8014B2FC) # addiu $t1, $t1, -0x4d04 -/* B853B0 8010E210 85230000 */ lh $v1, ($t1) -/* B853B4 8010E214 28610008 */ slti $at, $v1, 8 -/* B853B8 8010E218 14200013 */ bnez $at, .L8010E268 -/* B853BC 8010E21C 2462FFF8 */ addiu $v0, $v1, -8 -/* B853C0 8010E220 3C0A8015 */ lui $t2, %hi(D_8015394C) # $t2, 0x8015 -/* B853C4 8010E224 254A394C */ addiu $t2, %lo(D_8015394C) # addiu $t2, $t2, 0x394c -/* B853C8 8010E228 3042FFFF */ andi $v0, $v0, 0xffff -/* B853CC 8010E22C 00003825 */ move $a3, $zero -.L8010E230: -/* B853D0 8010E230 24E70001 */ addiu $a3, $a3, 1 -/* B853D4 8010E234 0142C821 */ addu $t9, $t2, $v0 -/* B853D8 8010E238 932F0001 */ lbu $t7, 1($t9) -/* B853DC 8010E23C 30E7FFFF */ andi $a3, $a3, 0xffff -/* B853E0 8010E240 01427021 */ addu $t6, $t2, $v0 -/* B853E4 8010E244 24420001 */ addiu $v0, $v0, 1 -/* B853E8 8010E248 28E10008 */ slti $at, $a3, 8 -/* B853EC 8010E24C 3042FFFF */ andi $v0, $v0, 0xffff -/* B853F0 8010E250 1420FFF7 */ bnez $at, .L8010E230 -/* B853F4 8010E254 A1CF0000 */ sb $t7, ($t6) -/* B853F8 8010E258 2478FFFF */ addiu $t8, $v1, -1 -/* B853FC 8010E25C A5380000 */ sh $t8, ($t1) -/* B85400 8010E260 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85404 8010E264 85230000 */ lh $v1, ($t1) -.L8010E268: -/* B85408 8010E268 90F90000 */ lbu $t9, ($a3) -/* B8540C 8010E26C 3C0A8015 */ lui $t2, %hi(D_8015394C) # $t2, 0x8015 -/* B85410 8010E270 254A394C */ addiu $t2, %lo(D_8015394C) # addiu $t2, $t2, 0x394c -/* B85414 8010E274 01437821 */ addu $t7, $t2, $v1 -/* B85418 8010E278 246E0001 */ addiu $t6, $v1, 1 -/* B8541C 8010E27C A1F90000 */ sb $t9, ($t7) -/* B85420 8010E280 A52E0000 */ sh $t6, ($t1) -/* B85424 8010E284 85390000 */ lh $t9, ($t1) -/* B85428 8010E288 241800FF */ li $t8, 255 -/* B8542C 8010E28C 24AE0001 */ addiu $t6, $a1, 1 -/* B85430 8010E290 01597821 */ addu $t7, $t2, $t9 -/* B85434 8010E294 A1F80000 */ sb $t8, ($t7) -/* B85438 8010E298 A50E0000 */ sh $t6, ($t0) -/* B8543C 8010E29C 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85440 8010E2A0 24010008 */ li $at, 8 -/* B85444 8010E2A4 90F90002 */ lbu $t9, 2($a3) -/* B85448 8010E2A8 17210005 */ bne $t9, $at, .L8010E2C0 -/* B8544C 8010E2AC 00000000 */ nop -/* B85450 8010E2B0 A5000000 */ sh $zero, ($t0) -/* B85454 8010E2B4 85180000 */ lh $t8, ($t0) -/* B85458 8010E2B8 A5380000 */ sh $t8, ($t1) -/* B8545C 8010E2BC 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010E2C0: -/* B85460 8010E2C0 3C048015 */ lui $a0, %hi(D_80154848) # $a0, 0x8015 -/* B85464 8010E2C4 24844848 */ addiu $a0, %lo(D_80154848) # addiu $a0, $a0, 0x4848 -/* B85468 8010E2C8 90E50001 */ lbu $a1, 1($a3) -/* B8546C 8010E2CC 0C00084C */ jal osSyncPrintf -/* B85470 8010E2D0 00003025 */ move $a2, $zero -/* B85474 8010E2D4 920263E7 */ lbu $v0, 0x63e7($s0) -/* B85478 8010E2D8 54400012 */ bnezl $v0, .L8010E324 -/* B8547C 8010E2DC 2458FFFF */ addiu $t8, $v0, -1 -/* B85480 8010E2E0 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B85484 8010E2E4 91EE0001 */ lbu $t6, 1($t7) -/* B85488 8010E2E8 15C00010 */ bnez $t6, .L8010E32C -/* B8548C 8010E2EC 3C048015 */ lui $a0, %hi(D_80154858) # $a0, 0x8015 -/* B85490 8010E2F0 0C00084C */ jal osSyncPrintf -/* B85494 8010E2F4 24844858 */ addiu $a0, %lo(D_80154858) # addiu $a0, $a0, 0x4858 -/* B85498 8010E2F8 0C03B616 */ jal func_800ED858 -/* B8549C 8010E2FC 00002025 */ move $a0, $zero -/* B854A0 8010E300 3C010001 */ lui $at, 1 -/* B854A4 8010E304 00320821 */ addu $at, $at, $s2 -/* B854A8 8010E308 2419000F */ li $t9, 15 -/* B854AC 8010E30C A43904C6 */ sh $t9, 0x4c6($at) -/* B854B0 8010E310 0C041B33 */ jal func_80106CCC -/* B854B4 8010E314 02402025 */ move $a0, $s2 -/* B854B8 8010E318 10000004 */ b .L8010E32C -/* B854BC 8010E31C 00000000 */ nop -/* B854C0 8010E320 2458FFFF */ addiu $t8, $v0, -1 -.L8010E324: -/* B854C4 8010E324 26217FFF */ addiu $at, $s1, 0x7fff -/* B854C8 8010E328 A03863E8 */ sb $t8, 0x63e8($at) -.L8010E32C: -/* B854CC 8010E32C 10000250 */ b .L8010EC70 -/* B854D0 8010E330 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E334 -/* B854D4 8010E334 0C03B85C */ jal func_800EE170 -/* B854D8 8010E338 24040002 */ li $a0, 2 -/* B854DC 8010E33C 0C03B616 */ jal func_800ED858 -/* B854E0 8010E340 24040001 */ li $a0, 1 -/* B854E4 8010E344 240F0025 */ li $t7, 37 -/* B854E8 8010E348 26217FFF */ addiu $at, $s1, 0x7fff -/* B854EC 8010E34C A02F6305 */ sb $t7, 0x6305($at) -/* B854F0 8010E350 02402025 */ move $a0, $s2 -/* B854F4 8010E354 0C0421AC */ jal func_801086B0 -/* B854F8 8010E358 27A50140 */ addiu $a1, $sp, 0x140 -/* B854FC 8010E35C 10000244 */ b .L8010EC70 -/* B85500 8010E360 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E364 -/* B85504 8010E364 0C03B8F2 */ jal func_800EE3C8 -/* B85508 8010E368 00000000 */ nop -/* B8550C 8010E36C 26217FFF */ addiu $at, $s1, 0x7fff -/* B85510 8010E370 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85514 8010E374 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85518 8010E378 90E30002 */ lbu $v1, 2($a3) -/* B8551C 8010E37C 10600015 */ beqz $v1, .L8010E3D4 -/* B85520 8010E380 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85524 8010E384 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85528 8010E388 85050000 */ lh $a1, ($t0) -/* B8552C 8010E38C 24AE0001 */ addiu $t6, $a1, 1 -/* B85530 8010E390 546E0011 */ bnel $v1, $t6, .L8010E3D8 -/* B85534 8010E394 90E60001 */ lbu $a2, 1($a3) -/* B85538 8010E398 90E20000 */ lbu $v0, ($a3) -/* B8553C 8010E39C 3C018015 */ lui $at, %hi(D_8015394C) -/* B85540 8010E3A0 00250821 */ addu $at, $at, $a1 -/* B85544 8010E3A4 A022394C */ sb $v0, %lo(D_8015394C)($at) -/* B85548 8010E3A8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8554C 8010E3AC A0226411 */ sb $v0, 0x6411($at) -/* B85550 8010E3B0 85190000 */ lh $t9, ($t0) -/* B85554 8010E3B4 3C018015 */ lui $at, %hi(D_8015394C) -/* B85558 8010E3B8 240F00FF */ li $t7, 255 -/* B8555C 8010E3BC 27380001 */ addiu $t8, $t9, 1 -/* B85560 8010E3C0 A5180000 */ sh $t8, ($t0) -/* B85564 8010E3C4 850E0000 */ lh $t6, ($t0) -/* B85568 8010E3C8 002E0821 */ addu $at, $at, $t6 -/* B8556C 8010E3CC A02F394C */ sb $t7, %lo(D_8015394C)($at) -/* B85570 8010E3D0 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010E3D4: -/* B85574 8010E3D4 90E60001 */ lbu $a2, 1($a3) -.L8010E3D8: -/* B85578 8010E3D8 14C00039 */ bnez $a2, .L8010E4C0 -/* B8557C 8010E3DC 3C048015 */ lui $a0, %hi(D_80154868) # $a0, 0x8015 -/* B85580 8010E3E0 0C00084C */ jal osSyncPrintf -/* B85584 8010E3E4 24844868 */ addiu $a0, %lo(D_80154868) # addiu $a0, $a0, 0x4868 -/* B85588 8010E3E8 24190014 */ li $t9, 20 -/* B8558C 8010E3EC 26217FFF */ addiu $at, $s1, 0x7fff -/* B85590 8010E3F0 A03963E8 */ sb $t9, 0x63e8($at) -/* B85594 8010E3F4 3C018016 */ lui $at, %hi(gSaveContext+0x12c5) # $at, 0x8016 -/* B85598 8010E3F8 24180001 */ li $t8, 1 -/* B8559C 8010E3FC A038F925 */ sb $t8, %lo(gSaveContext+0x12c5)($at) -/* B855A0 8010E400 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B855A4 8010E404 26217FFF */ addiu $at, $s1, 0x7fff -/* B855A8 8010E408 240F0027 */ li $t7, 39 -/* B855AC 8010E40C 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B855B0 8010E410 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B855B4 8010E414 A02F6305 */ sb $t7, 0x6305($at) -/* B855B8 8010E418 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B855BC 8010E41C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B855C0 8010E420 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B855C4 8010E424 AFAE0014 */ sw $t6, 0x14($sp) -/* B855C8 8010E428 AFA70010 */ sw $a3, 0x10($sp) -/* B855CC 8010E42C 24044807 */ li $a0, 18439 -/* B855D0 8010E430 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B855D4 8010E434 24060004 */ li $a2, 4 -/* B855D8 8010E438 3C048015 */ lui $a0, %hi(D_80154878) # $a0, 0x8015 -/* B855DC 8010E43C 0C00084C */ jal osSyncPrintf -/* B855E0 8010E440 24844878 */ addiu $a0, %lo(D_80154878) # addiu $a0, $a0, 0x4878 -/* B855E4 8010E444 3C048015 */ lui $a0, %hi(D_80154880) # $a0, 0x8015 -/* B855E8 8010E448 0C00084C */ jal osSyncPrintf -/* B855EC 8010E44C 24844880 */ addiu $a0, %lo(D_80154880) # addiu $a0, $a0, 0x4880 -/* B855F0 8010E450 3C048016 */ lui $a0, %hi(gSaveContext+0x12c6) # $a0, 0x8016 -/* B855F4 8010E454 3C058013 */ lui $a1, %hi(gScarecrowSpawnSongPtr) # $a1, 0x8013 -/* B855F8 8010E458 8CA51BE8 */ lw $a1, %lo(gScarecrowSpawnSongPtr)($a1) -/* B855FC 8010E45C 2484F926 */ addiu $a0, %lo(gSaveContext+0x12c6) # addiu $a0, $a0, -0x6da -/* B85600 8010E460 0C01A508 */ jal MemCopy -/* B85604 8010E464 24060080 */ li $a2, 128 -/* B85608 8010E468 00003825 */ move $a3, $zero -.L8010E46C: -/* B8560C 8010E46C 3C058016 */ lui $a1, %hi(gSaveContext+0x12c6) -/* B85610 8010E470 00A72821 */ addu $a1, $a1, $a3 -/* B85614 8010E474 3C048015 */ lui $a0, %hi(D_801548C8) # $a0, 0x8015 -/* B85618 8010E478 248448C8 */ addiu $a0, %lo(D_801548C8) # addiu $a0, $a0, 0x48c8 -/* B8561C 8010E47C 90A5F926 */ lbu $a1, %lo(gSaveContext+0x12c6)($a1) -/* B85620 8010E480 0C00084C */ jal osSyncPrintf -/* B85624 8010E484 A7A70138 */ sh $a3, 0x138($sp) -/* B85628 8010E488 97A70138 */ lhu $a3, 0x138($sp) -/* B8562C 8010E48C 24E70001 */ addiu $a3, $a3, 1 -/* B85630 8010E490 30E7FFFF */ andi $a3, $a3, 0xffff -/* B85634 8010E494 28E10080 */ slti $at, $a3, 0x80 -/* B85638 8010E498 1420FFF4 */ bnez $at, .L8010E46C -/* B8563C 8010E49C 00000000 */ nop -/* B85640 8010E4A0 3C048015 */ lui $a0, %hi(D_801548D0) # $a0, 0x8015 -/* B85644 8010E4A4 0C00084C */ jal osSyncPrintf -/* B85648 8010E4A8 248448D0 */ addiu $a0, %lo(D_801548D0) # addiu $a0, $a0, 0x48d0 -/* B8564C 8010E4AC 3C048015 */ lui $a0, %hi(D_801548D4) # $a0, 0x8015 -/* B85650 8010E4B0 0C00084C */ jal osSyncPrintf -/* B85654 8010E4B4 248448D4 */ addiu $a0, %lo(D_801548D4) # addiu $a0, $a0, 0x48d4 -/* B85658 8010E4B8 1000001E */ b .L8010E534 -/* B8565C 8010E4BC 02402025 */ move $a0, $s2 -.L8010E4C0: -/* B85660 8010E4C0 240100FF */ li $at, 255 -/* B85664 8010E4C4 10C10005 */ beq $a2, $at, .L8010E4DC -/* B85668 8010E4C8 00000000 */ nop -/* B8566C 8010E4CC 96590020 */ lhu $t9, 0x20($s2) -/* B85670 8010E4D0 2401BFFF */ li $at, -16385 -/* B85674 8010E4D4 0321C027 */ nor $t8, $t9, $at -/* B85678 8010E4D8 17000015 */ bnez $t8, .L8010E530 -.L8010E4DC: -/* B8567C 8010E4DC 3C048015 */ lui $a0, %hi(D_8015491C) # $a0, 0x8015 -/* B85680 8010E4E0 0C00084C */ jal osSyncPrintf -/* B85684 8010E4E4 2484491C */ addiu $a0, %lo(D_8015491C) # addiu $a0, $a0, 0x491c -/* B85688 8010E4E8 0C03B85C */ jal func_800EE170 -/* B8568C 8010E4EC 00002025 */ move $a0, $zero -/* B85690 8010E4F0 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85694 8010E4F4 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B85698 8010E4F8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B8569C 8010E4FC 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* B856A0 8010E500 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B856A4 8010E504 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B856A8 8010E508 AFAF0014 */ sw $t7, 0x14($sp) -/* B856AC 8010E50C AFA70010 */ sw $a3, 0x10($sp) -/* B856B0 8010E510 24044827 */ li $a0, 18471 -/* B856B4 8010E514 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B856B8 8010E518 24060004 */ li $a2, 4 -/* B856BC 8010E51C 0C041B33 */ jal func_80106CCC -/* B856C0 8010E520 02402025 */ move $a0, $s2 -/* B856C4 8010E524 240E0026 */ li $t6, 38 -/* B856C8 8010E528 26217FFF */ addiu $at, $s1, 0x7fff -/* B856CC 8010E52C A02E6305 */ sb $t6, 0x6305($at) -.L8010E530: -/* B856D0 8010E530 02402025 */ move $a0, $s2 -.L8010E534: -/* B856D4 8010E534 0C0421AC */ jal func_801086B0 -/* B856D8 8010E538 27A50140 */ addiu $a1, $sp, 0x140 -/* B856DC 8010E53C 100001CC */ b .L8010EC70 -/* B856E0 8010E540 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E544 -/* B856E4 8010E544 3C048015 */ lui $a0, %hi(D_8015493C) # $a0, 0x8015 -/* B856E8 8010E548 0C00084C */ jal osSyncPrintf -/* B856EC 8010E54C 2484493C */ addiu $a0, %lo(D_8015493C) # addiu $a0, $a0, 0x493c -/* B856F0 8010E550 0C03B616 */ jal func_800ED858 -/* B856F4 8010E554 00002025 */ move $a0, $zero -/* B856F8 8010E558 02402025 */ move $a0, $s2 -/* B856FC 8010E55C 240540AD */ li $a1, 16557 -/* B85700 8010E560 0C042DA0 */ jal func_8010B680 -/* B85704 8010E564 00003025 */ move $a2, $zero -/* B85708 8010E568 3C010001 */ lui $at, 1 -/* B8570C 8010E56C 00320821 */ addu $at, $at, $s2 -/* B85710 8010E570 24190004 */ li $t9, 4 -/* B85714 8010E574 A43904C6 */ sh $t9, 0x4c6($at) -/* B85718 8010E578 100001BD */ b .L8010EC70 -/* B8571C 8010E57C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E580 -/* B85720 8010E580 0C03B616 */ jal func_800ED858 -/* B85724 8010E584 24040001 */ li $a0, 1 -/* B85728 8010E588 0C03B616 */ jal func_800ED858 -/* B8572C 8010E58C 24040006 */ li $a0, 6 -/* B85730 8010E590 3C048016 */ lui $a0, %hi(gSaveContext+0x3f) # $a0, 0x8016 -/* B85734 8010E594 0C03B95F */ jal func_800EE57C -/* B85738 8010E598 9084E69F */ lbu $a0, %lo(gSaveContext+0x3f)($a0) -/* B8573C 8010E59C 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B85740 8010E5A0 00000000 */ nop -/* B85744 8010E5A4 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85748 8010E5A8 26217FFF */ addiu $at, $s1, 0x7fff -/* B8574C 8010E5AC AC2262B9 */ sw $v0, 0x62b9($at) -/* B85750 8010E5B0 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85754 8010E5B4 A5000000 */ sh $zero, ($t0) -/* B85758 8010E5B8 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B8575C 8010E5BC 85180000 */ lh $t8, ($t0) -/* B85760 8010E5C0 0C041A6C */ jal func_801069B0 -/* B85764 8010E5C4 A1F80002 */ sb $t8, 2($t7) -/* B85768 8010E5C8 2404000E */ li $a0, 14 -/* B8576C 8010E5CC 0C03B64F */ jal func_800ED93C -/* B85770 8010E5D0 24050001 */ li $a1, 1 -/* B85774 8010E5D4 26217FFF */ addiu $at, $s1, 0x7fff -/* B85778 8010E5D8 240E002A */ li $t6, 42 -/* B8577C 8010E5DC 24190002 */ li $t9, 2 -/* B85780 8010E5E0 A02E6305 */ sb $t6, 0x6305($at) -/* B85784 8010E5E4 A03963E8 */ sb $t9, 0x63e8($at) -/* B85788 8010E5E8 100001A1 */ b .L8010EC70 -/* B8578C 8010E5EC 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E5F0 -/* B85790 8010E5F0 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85794 8010E5F4 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B85798 8010E5F8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B8579C 8010E5FC 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B857A0 8010E600 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B857A4 8010E604 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B857A8 8010E608 AFB80014 */ sw $t8, 0x14($sp) -/* B857AC 8010E60C AFA70010 */ sw $a3, 0x10($sp) -/* B857B0 8010E610 24044038 */ li $a0, 16440 -/* B857B4 8010E614 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B857B8 8010E618 24060004 */ li $a2, 4 -/* B857BC 8010E61C 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B857C0 8010E620 00000000 */ nop -/* B857C4 8010E624 26217FFF */ addiu $at, $s1, 0x7fff -/* B857C8 8010E628 AC2262B9 */ sw $v0, 0x62b9($at) -/* B857CC 8010E62C 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B857D0 8010E630 90E30002 */ lbu $v1, 2($a3) -/* B857D4 8010E634 10600012 */ beqz $v1, .L8010E680 -/* B857D8 8010E638 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B857DC 8010E63C 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B857E0 8010E640 85050000 */ lh $a1, ($t0) -/* B857E4 8010E644 24AF0001 */ addiu $t7, $a1, 1 -/* B857E8 8010E648 546F000E */ bnel $v1, $t7, .L8010E684 -/* B857EC 8010E64C 920263E7 */ lbu $v0, 0x63e7($s0) -/* B857F0 8010E650 90EE0000 */ lbu $t6, ($a3) -/* B857F4 8010E654 3C018015 */ lui $at, %hi(D_8015394B) -/* B857F8 8010E658 00230821 */ addu $at, $at, $v1 -/* B857FC 8010E65C A02E394B */ sb $t6, %lo(D_8015394B)($at) -/* B85800 8010E660 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B85804 8010E664 3C018015 */ lui $at, %hi(D_8015394C) -/* B85808 8010E668 241900FF */ li $t9, 255 -/* B8580C 8010E66C 930F0002 */ lbu $t7, 2($t8) -/* B85810 8010E670 24AE0001 */ addiu $t6, $a1, 1 -/* B85814 8010E674 002F0821 */ addu $at, $at, $t7 -/* B85818 8010E678 A039394C */ sb $t9, %lo(D_8015394C)($at) -/* B8581C 8010E67C A50E0000 */ sh $t6, ($t0) -.L8010E680: -/* B85820 8010E680 920263E7 */ lbu $v0, 0x63e7($s0) -.L8010E684: -/* B85824 8010E684 54400026 */ bnezl $v0, .L8010E720 -/* B85828 8010E688 244EFFFF */ addiu $t6, $v0, -1 -/* B8582C 8010E68C 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B85830 8010E690 93190001 */ lbu $t9, 1($t8) -/* B85834 8010E694 17200024 */ bnez $t9, .L8010E728 -/* B85838 8010E698 00000000 */ nop -/* B8583C 8010E69C 920F6304 */ lbu $t7, 0x6304($s0) -/* B85840 8010E6A0 2401002A */ li $at, 42 -/* B85844 8010E6A4 15E1000D */ bne $t7, $at, .L8010E6DC -/* B85848 8010E6A8 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B8584C 8010E6AC 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B85850 8010E6B0 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85854 8010E6B4 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B85858 8010E6B8 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B8585C 8010E6BC 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85860 8010E6C0 AFAE0014 */ sw $t6, 0x14($sp) -/* B85864 8010E6C4 AFA70010 */ sw $a3, 0x10($sp) -/* B85868 8010E6C8 24044836 */ li $a0, 18486 -/* B8586C 8010E6CC 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85870 8010E6D0 24060004 */ li $a2, 4 -/* B85874 8010E6D4 1000000D */ b .L8010E70C -/* B85878 8010E6D8 92196304 */ lbu $t9, 0x6304($s0) -.L8010E6DC: -/* B8587C 8010E6DC 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85880 8010E6E0 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B85884 8010E6E4 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85888 8010E6E8 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B8588C 8010E6EC 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85890 8010E6F0 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85894 8010E6F4 AFB80014 */ sw $t8, 0x14($sp) -/* B85898 8010E6F8 AFA70010 */ sw $a3, 0x10($sp) -/* B8589C 8010E6FC 24044842 */ li $a0, 18498 -/* B858A0 8010E700 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B858A4 8010E704 24060004 */ li $a2, 4 -/* B858A8 8010E708 92196304 */ lbu $t9, 0x6304($s0) -.L8010E70C: -/* B858AC 8010E70C 26217FFF */ addiu $at, $s1, 0x7fff -/* B858B0 8010E710 272F0001 */ addiu $t7, $t9, 1 -/* B858B4 8010E714 10000004 */ b .L8010E728 -/* B858B8 8010E718 A02F6305 */ sb $t7, 0x6305($at) -/* B858BC 8010E71C 244EFFFF */ addiu $t6, $v0, -1 -.L8010E720: -/* B858C0 8010E720 26217FFF */ addiu $at, $s1, 0x7fff -/* B858C4 8010E724 A02E63E8 */ sb $t6, 0x63e8($at) -.L8010E728: -/* B858C8 8010E728 10000151 */ b .L8010EC70 -/* B858CC 8010E72C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E730 -/* B858D0 8010E730 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B858D4 8010E734 00000000 */ nop -/* B858D8 8010E738 26217FFF */ addiu $at, $s1, 0x7fff -/* B858DC 8010E73C AC2262B9 */ sw $v0, 0x62b9($at) -/* B858E0 8010E740 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B858E4 8010E744 90E30002 */ lbu $v1, 2($a3) -/* B858E8 8010E748 10600012 */ beqz $v1, .L8010E794 -/* B858EC 8010E74C 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B858F0 8010E750 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B858F4 8010E754 85050000 */ lh $a1, ($t0) -/* B858F8 8010E758 24B80001 */ addiu $t8, $a1, 1 -/* B858FC 8010E75C 1478000D */ bne $v1, $t8, .L8010E794 -/* B85900 8010E760 00000000 */ nop -/* B85904 8010E764 90F90000 */ lbu $t9, ($a3) -/* B85908 8010E768 3C018015 */ lui $at, %hi(D_8015394B) -/* B8590C 8010E76C 00230821 */ addu $at, $at, $v1 -/* B85910 8010E770 A039394B */ sb $t9, %lo(D_8015394B)($at) -/* B85914 8010E774 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B85918 8010E778 3C018015 */ lui $at, %hi(D_8015394C) -/* B8591C 8010E77C 240F00FF */ li $t7, 255 -/* B85920 8010E780 91D80002 */ lbu $t8, 2($t6) -/* B85924 8010E784 24B90001 */ addiu $t9, $a1, 1 -/* B85928 8010E788 00380821 */ addu $at, $at, $t8 -/* B8592C 8010E78C A02F394C */ sb $t7, %lo(D_8015394C)($at) -/* B85930 8010E790 A5190000 */ sh $t9, ($t0) -.L8010E794: -/* B85934 8010E794 10000136 */ b .L8010EC70 -/* B85938 8010E798 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E79C -/* B8593C 8010E79C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85940 8010E7A0 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B85944 8010E7A4 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85948 8010E7A8 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B8594C 8010E7AC 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85950 8010E7B0 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85954 8010E7B4 AFAE0014 */ sw $t6, 0x14($sp) -/* B85958 8010E7B8 AFA70010 */ sw $a3, 0x10($sp) -/* B8595C 8010E7BC 24044038 */ li $a0, 16440 -/* B85960 8010E7C0 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85964 8010E7C4 24060004 */ li $a2, 4 -/* B85968 8010E7C8 0C03B8F5 */ jal func_800EE3D4 -/* B8596C 8010E7CC 00000000 */ nop -/* B85970 8010E7D0 26217FFF */ addiu $at, $s1, 0x7fff -/* B85974 8010E7D4 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85978 8010E7D8 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B8597C 8010E7DC 90E30002 */ lbu $v1, 2($a3) -/* B85980 8010E7E0 10600013 */ beqz $v1, .L8010E830 -/* B85984 8010E7E4 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85988 8010E7E8 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B8598C 8010E7EC 85050000 */ lh $a1, ($t0) -/* B85990 8010E7F0 24AF0001 */ addiu $t7, $a1, 1 -/* B85994 8010E7F4 546F000F */ bnel $v1, $t7, .L8010E834 -/* B85998 8010E7F8 90E60001 */ lbu $a2, 1($a3) -/* B8599C 8010E7FC 90F80000 */ lbu $t8, ($a3) -/* B859A0 8010E800 3C018015 */ lui $at, %hi(D_8015394B) -/* B859A4 8010E804 00230821 */ addu $at, $at, $v1 -/* B859A8 8010E808 A038394B */ sb $t8, %lo(D_8015394B)($at) -/* B859AC 8010E80C 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B859B0 8010E810 3C018015 */ lui $at, %hi(D_8015394C) -/* B859B4 8010E814 241900FF */ li $t9, 255 -/* B859B8 8010E818 91CF0002 */ lbu $t7, 2($t6) -/* B859BC 8010E81C 24B80001 */ addiu $t8, $a1, 1 -/* B859C0 8010E820 002F0821 */ addu $at, $at, $t7 -/* B859C4 8010E824 A039394C */ sb $t9, %lo(D_8015394C)($at) -/* B859C8 8010E828 A5180000 */ sh $t8, ($t0) -/* B859CC 8010E82C 8E0762B8 */ lw $a3, 0x62b8($s0) -.L8010E830: -/* B859D0 8010E830 90E60001 */ lbu $a2, 1($a3) -.L8010E834: -/* B859D4 8010E834 240100FF */ li $at, 255 -/* B859D8 8010E838 14C10018 */ bne $a2, $at, .L8010E89C -/* B859DC 8010E83C 3C048015 */ lui $a0, %hi(D_8015494C) # $a0, 0x8015 -/* B859E0 8010E840 0C00084C */ jal osSyncPrintf -/* B859E4 8010E844 2484494C */ addiu $a0, %lo(D_8015494C) # addiu $a0, $a0, 0x494c -/* B859E8 8010E848 0C03B616 */ jal func_800ED858 -/* B859EC 8010E84C 00002025 */ move $a0, $zero -/* B859F0 8010E850 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B859F4 8010E854 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B859F8 8010E858 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B859FC 8010E85C 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B85A00 8010E860 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85A04 8010E864 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85A08 8010E868 AFAE0014 */ sw $t6, 0x14($sp) -/* B85A0C 8010E86C AFA70010 */ sw $a3, 0x10($sp) -/* B85A10 8010E870 24044827 */ li $a0, 18471 -/* B85A14 8010E874 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85A18 8010E878 24060004 */ li $a2, 4 -/* B85A1C 8010E87C 2419000A */ li $t9, 10 -/* B85A20 8010E880 26217FFF */ addiu $at, $s1, 0x7fff -/* B85A24 8010E884 A03963E8 */ sb $t9, 0x63e8($at) -/* B85A28 8010E888 3C010001 */ lui $at, 1 -/* B85A2C 8010E88C 00320821 */ addu $at, $at, $s2 -/* B85A30 8010E890 240F0003 */ li $t7, 3 -/* B85A34 8010E894 10000016 */ b .L8010E8F0 -/* B85A38 8010E898 A42F04C6 */ sh $t7, 0x4c6($at) -.L8010E89C: -/* B85A3C 8010E89C 2401000D */ li $at, 13 -/* B85A40 8010E8A0 14C10013 */ bne $a2, $at, .L8010E8F0 -/* B85A44 8010E8A4 3C048015 */ lui $a0, %hi(D_80154968) # $a0, 0x8015 -/* B85A48 8010E8A8 0C00084C */ jal osSyncPrintf -/* B85A4C 8010E8AC 24844968 */ addiu $a0, %lo(D_80154968) # addiu $a0, $a0, 0x4968 -/* B85A50 8010E8B0 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85A54 8010E8B4 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B85A58 8010E8B8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85A5C 8010E8BC 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B85A60 8010E8C0 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85A64 8010E8C4 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85A68 8010E8C8 AFB80014 */ sw $t8, 0x14($sp) -/* B85A6C 8010E8CC AFA70010 */ sw $a3, 0x10($sp) -/* B85A70 8010E8D0 24044824 */ li $a0, 18468 -/* B85A74 8010E8D4 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85A78 8010E8D8 24060004 */ li $a2, 4 -/* B85A7C 8010E8DC 26217FFF */ addiu $at, $s1, 0x7fff -/* B85A80 8010E8E0 240E002F */ li $t6, 47 -/* B85A84 8010E8E4 2419001E */ li $t9, 30 -/* B85A88 8010E8E8 A02E6305 */ sb $t6, 0x6305($at) -/* B85A8C 8010E8EC A03963E8 */ sb $t9, 0x63e8($at) -.L8010E8F0: -/* B85A90 8010E8F0 02402025 */ move $a0, $s2 -/* B85A94 8010E8F4 0C0421AC */ jal func_801086B0 -/* B85A98 8010E8F8 27A50140 */ addiu $a1, $sp, 0x140 -/* B85A9C 8010E8FC 100000DC */ b .L8010EC70 -/* B85AA0 8010E900 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010E904 -/* B85AA4 8010E904 0C03B8F5 */ jal func_800EE3D4 -/* B85AA8 8010E908 00000000 */ nop -/* B85AAC 8010E90C 26217FFF */ addiu $at, $s1, 0x7fff -/* B85AB0 8010E910 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85AB4 8010E914 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85AB8 8010E918 90E30002 */ lbu $v1, 2($a3) -/* B85ABC 8010E91C 10600012 */ beqz $v1, .L8010E968 -/* B85AC0 8010E920 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85AC4 8010E924 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85AC8 8010E928 85050000 */ lh $a1, ($t0) -/* B85ACC 8010E92C 24AF0001 */ addiu $t7, $a1, 1 -/* B85AD0 8010E930 546F000E */ bnel $v1, $t7, .L8010E96C -/* B85AD4 8010E934 921963E7 */ lbu $t9, 0x63e7($s0) -/* B85AD8 8010E938 90F80000 */ lbu $t8, ($a3) -/* B85ADC 8010E93C 3C018015 */ lui $at, %hi(D_8015394B) -/* B85AE0 8010E940 00230821 */ addu $at, $at, $v1 -/* B85AE4 8010E944 A038394B */ sb $t8, %lo(D_8015394B)($at) -/* B85AE8 8010E948 8E1962B8 */ lw $t9, 0x62b8($s0) -/* B85AEC 8010E94C 3C018015 */ lui $at, %hi(D_8015394C) -/* B85AF0 8010E950 240E00FF */ li $t6, 255 -/* B85AF4 8010E954 932F0002 */ lbu $t7, 2($t9) -/* B85AF8 8010E958 24B80001 */ addiu $t8, $a1, 1 -/* B85AFC 8010E95C 002F0821 */ addu $at, $at, $t7 -/* B85B00 8010E960 A02E394C */ sb $t6, %lo(D_8015394C)($at) -/* B85B04 8010E964 A5180000 */ sh $t8, ($t0) -.L8010E968: -/* B85B08 8010E968 921963E7 */ lbu $t9, 0x63e7($s0) -.L8010E96C: -/* B85B0C 8010E96C 26217FFF */ addiu $at, $s1, 0x7fff -/* B85B10 8010E970 272EFFFF */ addiu $t6, $t9, -1 -/* B85B14 8010E974 A02E63E8 */ sb $t6, 0x63e8($at) -/* B85B18 8010E978 920F63E7 */ lbu $t7, 0x63e7($s0) -/* B85B1C 8010E97C 55E00024 */ bnezl $t7, .L8010EA10 -/* B85B20 8010E980 02402025 */ move $a0, $s2 -/* B85B24 8010E984 0C03B97B */ jal func_800EE5EC -/* B85B28 8010E988 00000000 */ nop -/* B85B2C 8010E98C 24010001 */ li $at, 1 -/* B85B30 8010E990 1041001A */ beq $v0, $at, .L8010E9FC -/* B85B34 8010E994 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B85B38 8010E998 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013 -/* B85B3C 8010E99C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B85B40 8010E9A0 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8 -/* B85B44 8010E9A4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B85B48 8010E9A8 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B85B4C 8010E9AC AFB80014 */ sw $t8, 0x14($sp) -/* B85B50 8010E9B0 AFA70010 */ sw $a3, 0x10($sp) -/* B85B54 8010E9B4 24044836 */ li $a0, 18486 -/* B85B58 8010E9B8 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B85B5C 8010E9BC 24060004 */ li $a2, 4 -/* B85B60 8010E9C0 0C03B8F5 */ jal func_800EE3D4 -/* B85B64 8010E9C4 00000000 */ nop -/* B85B68 8010E9C8 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85B6C 8010E9CC 26217FFF */ addiu $at, $s1, 0x7fff -/* B85B70 8010E9D0 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85B74 8010E9D4 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85B78 8010E9D8 A5000000 */ sh $zero, ($t0) -/* B85B7C 8010E9DC 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B85B80 8010E9E0 85190000 */ lh $t9, ($t0) -/* B85B84 8010E9E4 0C041A6C */ jal func_801069B0 -/* B85B88 8010E9E8 A1D90002 */ sb $t9, 2($t6) -/* B85B8C 8010E9EC 240F0030 */ li $t7, 48 -/* B85B90 8010E9F0 26217FFF */ addiu $at, $s1, 0x7fff -/* B85B94 8010E9F4 10000005 */ b .L8010EA0C -/* B85B98 8010E9F8 A02F6305 */ sb $t7, 0x6305($at) -.L8010E9FC: -/* B85B9C 8010E9FC 3C010001 */ lui $at, 1 -/* B85BA0 8010EA00 00320821 */ addu $at, $at, $s2 -/* B85BA4 8010EA04 2418000F */ li $t8, 15 -/* B85BA8 8010EA08 A43804C6 */ sh $t8, 0x4c6($at) -.L8010EA0C: -/* B85BAC 8010EA0C 02402025 */ move $a0, $s2 -.L8010EA10: -/* B85BB0 8010EA10 0C0421AC */ jal func_801086B0 -/* B85BB4 8010EA14 27A50140 */ addiu $a1, $sp, 0x140 -/* B85BB8 8010EA18 10000095 */ b .L8010EC70 -/* B85BBC 8010EA1C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010EA20 -/* B85BC0 8010EA20 0C03E3FD */ jal Audio_IsSfxPlaying -/* B85BC4 8010EA24 24044836 */ li $a0, 18486 -/* B85BC8 8010EA28 1440000F */ bnez $v0, .L8010EA68 -/* B85BCC 8010EA2C 00000000 */ nop -/* B85BD0 8010EA30 0C03B8FE */ jal Audio_OcaGetDisplayStaff -/* B85BD4 8010EA34 00000000 */ nop -/* B85BD8 8010EA38 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85BDC 8010EA3C 26217FFF */ addiu $at, $s1, 0x7fff -/* B85BE0 8010EA40 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85BE4 8010EA44 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85BE8 8010EA48 A5000000 */ sh $zero, ($t0) -/* B85BEC 8010EA4C 8E0E62B8 */ lw $t6, 0x62b8($s0) -/* B85BF0 8010EA50 85190000 */ lh $t9, ($t0) -/* B85BF4 8010EA54 0C041A6C */ jal func_801069B0 -/* B85BF8 8010EA58 A1D90002 */ sb $t9, 2($t6) -/* B85BFC 8010EA5C 2404000E */ li $a0, 14 -/* B85C00 8010EA60 0C03B64F */ jal func_800ED93C -/* B85C04 8010EA64 24050001 */ li $a1, 1 -.L8010EA68: -/* B85C08 8010EA68 10000081 */ b .L8010EC70 -/* B85C0C 8010EA6C 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010EA70 -/* B85C10 8010EA70 0C03B616 */ jal func_800ED858 -/* B85C14 8010EA74 24040001 */ li $a0, 1 -/* B85C18 8010EA78 0C03B8F5 */ jal func_800EE3D4 -/* B85C1C 8010EA7C 00000000 */ nop -/* B85C20 8010EA80 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85C24 8010EA84 26217FFF */ addiu $at, $s1, 0x7fff -/* B85C28 8010EA88 AC2262B9 */ sw $v0, 0x62b9($at) -/* B85C2C 8010EA8C 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85C30 8010EA90 A5000000 */ sh $zero, ($t0) -/* B85C34 8010EA94 8E1862B8 */ lw $t8, 0x62b8($s0) -/* B85C38 8010EA98 850F0000 */ lh $t7, ($t0) -/* B85C3C 8010EA9C 3C010001 */ lui $at, 1 -/* B85C40 8010EAA0 00320821 */ addu $at, $at, $s2 -/* B85C44 8010EAA4 24190001 */ li $t9, 1 -/* B85C48 8010EAA8 A30F0002 */ sb $t7, 2($t8) -/* B85C4C 8010EAAC 0C041A6C */ jal func_801069B0 -/* B85C50 8010EAB0 A43904C6 */ sh $t9, 0x4c6($at) -/* B85C54 8010EAB4 3C048015 */ lui $a0, %hi(D_8014B31C) # $a0, 0x8015 -/* B85C58 8010EAB8 9484B31C */ lhu $a0, %lo(D_8014B31C)($a0) -/* B85C5C 8010EABC 3401C000 */ li $at, 49152 -/* B85C60 8010EAC0 00812021 */ addu $a0, $a0, $at -/* B85C64 8010EAC4 0C03B301 */ jal func_800ECC04 -/* B85C68 8010EAC8 3084FFFF */ andi $a0, $a0, 0xffff -/* B85C6C 8010EACC 240E0032 */ li $t6, 50 -/* B85C70 8010EAD0 26217FFF */ addiu $at, $s1, 0x7fff -/* B85C74 8010EAD4 A02E6305 */ sb $t6, 0x6305($at) -/* B85C78 8010EAD8 10000065 */ b .L8010EC70 -/* B85C7C 8010EADC 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010EAE0 -/* B85C80 8010EAE0 0C03B8F5 */ jal func_800EE3D4 -/* B85C84 8010EAE4 00000000 */ nop -/* B85C88 8010EAE8 26217FFF */ addiu $at, $s1, 0x7fff -/* B85C8C 8010EAEC AC2262B9 */ sw $v0, 0x62b9($at) -/* B85C90 8010EAF0 8E0762B8 */ lw $a3, 0x62b8($s0) -/* B85C94 8010EAF4 90E30002 */ lbu $v1, 2($a3) -/* B85C98 8010EAF8 10600011 */ beqz $v1, .L8010EB40 -/* B85C9C 8010EAFC 3C088015 */ lui $t0, %hi(D_8014B2F8) # $t0, 0x8015 -/* B85CA0 8010EB00 2508B2F8 */ addiu $t0, %lo(D_8014B2F8) # addiu $t0, $t0, -0x4d08 -/* B85CA4 8010EB04 850F0000 */ lh $t7, ($t0) -/* B85CA8 8010EB08 25F80001 */ addiu $t8, $t7, 1 -/* B85CAC 8010EB0C 5478000D */ bnel $v1, $t8, .L8010EB44 -/* B85CB0 8010EB10 92026304 */ lbu $v0, 0x6304($s0) -/* B85CB4 8010EB14 90F90000 */ lbu $t9, ($a3) -/* B85CB8 8010EB18 26217FFF */ addiu $at, $s1, 0x7fff -/* B85CBC 8010EB1C A0396411 */ sb $t9, 0x6411($at) -/* B85CC0 8010EB20 A5000000 */ sh $zero, ($t0) -/* B85CC4 8010EB24 8E0F62B8 */ lw $t7, 0x62b8($s0) -/* B85CC8 8010EB28 850E0000 */ lh $t6, ($t0) -/* B85CCC 8010EB2C 0C041A6C */ jal func_801069B0 -/* B85CD0 8010EB30 A1EE0002 */ sb $t6, 2($t7) -/* B85CD4 8010EB34 24180033 */ li $t8, 51 -/* B85CD8 8010EB38 26217FFF */ addiu $at, $s1, 0x7fff -/* B85CDC 8010EB3C A0386305 */ sb $t8, 0x6305($at) -.L8010EB40: -/* B85CE0 8010EB40 92026304 */ lbu $v0, 0x6304($s0) -.L8010EB44: -glabel L8010EB44 -/* B85CE4 8010EB44 1000004B */ b .L8010EC74 -/* B85CE8 8010EB48 2841000C */ slti $at, $v0, 0xc -glabel L8010EB4C -/* B85CEC 8010EB4C 02402025 */ move $a0, $s2 -/* B85CF0 8010EB50 0C0421AC */ jal func_801086B0 -/* B85CF4 8010EB54 27A50140 */ addiu $a1, $sp, 0x140 -/* B85CF8 8010EB58 920263E4 */ lbu $v0, 0x63e4($s0) -/* B85CFC 8010EB5C 24010010 */ li $at, 16 -/* B85D00 8010EB60 1041000B */ beq $v0, $at, .L8010EB90 -/* B85D04 8010EB64 24010020 */ li $at, 32 -/* B85D08 8010EB68 10410013 */ beq $v0, $at, .L8010EBB8 -/* B85D0C 8010EB6C 24010040 */ li $at, 64 -/* B85D10 8010EB70 1041001B */ beq $v0, $at, .L8010EBE0 -/* B85D14 8010EB74 24010050 */ li $at, 80 -/* B85D18 8010EB78 1041002D */ beq $v0, $at, .L8010EC30 -/* B85D1C 8010EB7C 24010060 */ li $at, 96 -/* B85D20 8010EB80 10410033 */ beq $v0, $at, .L8010EC50 -/* B85D24 8010EB84 00000000 */ nop -/* B85D28 8010EB88 10000029 */ b .L8010EC30 -/* B85D2C 8010EB8C 00000000 */ nop -.L8010EB90: -/* B85D30 8010EB90 02402025 */ move $a0, $s2 -/* B85D34 8010EB94 0C041B50 */ jal func_80106D40 -/* B85D38 8010EB98 24050001 */ li $a1, 1 -/* B85D3C 8010EB9C 02402025 */ move $a0, $s2 -/* B85D40 8010EBA0 27A50140 */ addiu $a1, $sp, 0x140 -/* B85D44 8010EBA4 860663D8 */ lh $a2, 0x63d8($s0) -/* B85D48 8010EBA8 0C041E60 */ jal func_80107980 -/* B85D4C 8010EBAC 860763DA */ lh $a3, 0x63da($s0) -/* B85D50 8010EBB0 10000027 */ b .L8010EC50 -/* B85D54 8010EBB4 00000000 */ nop -.L8010EBB8: -/* B85D58 8010EBB8 02402025 */ move $a0, $s2 -/* B85D5C 8010EBBC 0C041B50 */ jal func_80106D40 -/* B85D60 8010EBC0 24050002 */ li $a1, 2 -/* B85D64 8010EBC4 02402025 */ move $a0, $s2 -/* B85D68 8010EBC8 27A50140 */ addiu $a1, $sp, 0x140 -/* B85D6C 8010EBCC 860663D8 */ lh $a2, 0x63d8($s0) -/* B85D70 8010EBD0 0C041E60 */ jal func_80107980 -/* B85D74 8010EBD4 860763DA */ lh $a3, 0x63da($s0) -/* B85D78 8010EBD8 1000001D */ b .L8010EC50 -/* B85D7C 8010EBDC 00000000 */ nop -.L8010EBE0: -/* B85D80 8010EBE0 960262F8 */ lhu $v0, 0x62f8($s0) -/* B85D84 8010EBE4 2841006D */ slti $at, $v0, 0x6d -/* B85D88 8010EBE8 1420000F */ bnez $at, .L8010EC28 -/* B85D8C 8010EBEC 28410073 */ slti $at, $v0, 0x73 -/* B85D90 8010EBF0 1020000D */ beqz $at, .L8010EC28 -/* B85D94 8010EBF4 00000000 */ nop -/* B85D98 8010EBF8 921963E7 */ lbu $t9, 0x63e7($s0) -/* B85D9C 8010EBFC 26217FFF */ addiu $at, $s1, 0x7fff -/* B85DA0 8010EC00 272E0001 */ addiu $t6, $t9, 1 -/* B85DA4 8010EC04 A02E63E8 */ sb $t6, 0x63e8($at) -/* B85DA8 8010EC08 920F63E7 */ lbu $t7, 0x63e7($s0) -/* B85DAC 8010EC0C 29E1001F */ slti $at, $t7, 0x1f -/* B85DB0 8010EC10 14200005 */ bnez $at, .L8010EC28 -/* B85DB4 8010EC14 26217FFF */ addiu $at, $s1, 0x7fff -/* B85DB8 8010EC18 24180002 */ li $t8, 2 -/* B85DBC 8010EC1C 24190036 */ li $t9, 54 -/* B85DC0 8010EC20 A03863E8 */ sb $t8, 0x63e8($at) -/* B85DC4 8010EC24 A0396305 */ sb $t9, 0x6305($at) -.L8010EC28: -/* B85DC8 8010EC28 10000009 */ b .L8010EC50 -/* B85DCC 8010EC2C 00000000 */ nop -.L8010EC30: -/* B85DD0 8010EC30 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B85DD4 8010EC34 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B85DD8 8010EC38 8D280000 */ lw $t0, ($t1) -/* B85DDC 8010EC3C 02402025 */ move $a0, $s2 -/* B85DE0 8010EC40 27A50140 */ addiu $a1, $sp, 0x140 -/* B85DE4 8010EC44 85060B14 */ lh $a2, 0xb14($t0) -/* B85DE8 8010EC48 0C041E60 */ jal func_80107980 -/* B85DEC 8010EC4C 85070B16 */ lh $a3, 0xb16($t0) -.L8010EC50: -/* B85DF0 8010EC50 10000007 */ b .L8010EC70 -/* B85DF4 8010EC54 92026304 */ lbu $v0, 0x6304($s0) -glabel L8010EC58 -/* B85DF8 8010EC58 10000006 */ b .L8010EC74 -/* B85DFC 8010EC5C 2841000C */ slti $at, $v0, 0xc -.L8010EC60: -glabel L8010EC60 -/* B85E00 8010EC60 240E0006 */ li $t6, 6 -/* B85E04 8010EC64 26217FFF */ addiu $at, $s1, 0x7fff -/* B85E08 8010EC68 A02E6305 */ sb $t6, 0x6305($at) -/* B85E0C 8010EC6C 92026304 */ lbu $v0, 0x6304($s0) -.L8010EC70: -/* B85E10 8010EC70 2841000C */ slti $at, $v0, 0xc -.L8010EC74: -/* B85E14 8010EC74 1420018C */ bnez $at, .L8010F2A8 -/* B85E18 8010EC78 28410034 */ slti $at, $v0, 0x34 -/* B85E1C 8010EC7C 5020018B */ beql $at, $zero, .L8010F2AC -/* B85E20 8010EC80 8FB80140 */ lw $t8, 0x140($sp) -/* B85E24 8010EC84 960263F0 */ lhu $v0, 0x63f0($s0) -/* B85E28 8010EC88 24010001 */ li $at, 1 -/* B85E2C 8010EC8C 10410186 */ beq $v0, $at, .L8010F2A8 -/* B85E30 8010EC90 24010030 */ li $at, 48 -/* B85E34 8010EC94 50410185 */ beql $v0, $at, .L8010F2AC -/* B85E38 8010EC98 8FB80140 */ lw $t8, 0x140($sp) -/* B85E3C 8010EC9C 0C02515F */ jal func_8009457C -/* B85E40 8010ECA0 27A40140 */ addiu $a0, $sp, 0x140 -/* B85E44 8010ECA4 8FAF0140 */ lw $t7, 0x140($sp) -/* B85E48 8010ECA8 3C19FC30 */ lui $t9, (0xFC309661 >> 16) # lui $t9, 0xfc30 -/* B85E4C 8010ECAC 3C0E552E */ lui $t6, (0x552EFF7F >> 16) # lui $t6, 0x552e -/* B85E50 8010ECB0 25F80008 */ addiu $t8, $t7, 8 -/* B85E54 8010ECB4 AFB80140 */ sw $t8, 0x140($sp) -/* B85E58 8010ECB8 35CEFF7F */ ori $t6, (0x552EFF7F & 0xFFFF) # ori $t6, $t6, 0xff7f -/* B85E5C 8010ECBC 37399661 */ ori $t9, (0xFC309661 & 0xFFFF) # ori $t9, $t9, 0x9661 -/* B85E60 8010ECC0 ADF90000 */ sw $t9, ($t7) -/* B85E64 8010ECC4 ADEE0004 */ sw $t6, 4($t7) -/* B85E68 8010ECC8 92026304 */ lbu $v0, 0x6304($s0) -/* B85E6C 8010ECCC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B85E70 8010ECD0 2401001B */ li $at, 27 -/* B85E74 8010ECD4 14410093 */ bne $v0, $at, .L8010EF24 -/* B85E78 8010ECD8 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B85E7C 8010ECDC 960463F0 */ lhu $a0, 0x63f0($s0) -/* B85E80 8010ECE0 3C188013 */ lui $t8, %hi(gOcarinaSongNotes) # $t8, 0x8013 -/* B85E84 8010ECE4 27181C00 */ addiu $t8, %lo(gOcarinaSongNotes) # addiu $t8, $t8, 0x1c00 -/* B85E88 8010ECE8 2484FFF1 */ addiu $a0, $a0, -0xf -/* B85E8C 8010ECEC 00042400 */ sll $a0, $a0, 0x10 -/* B85E90 8010ECF0 00042403 */ sra $a0, $a0, 0x10 -/* B85E94 8010ECF4 000478C0 */ sll $t7, $a0, 3 -/* B85E98 8010ECF8 01E47821 */ addu $t7, $t7, $a0 -/* B85E9C 8010ECFC 01F8C821 */ addu $t9, $t7, $t8 -/* B85EA0 8010ED00 93280000 */ lbu $t0, ($t9) -/* B85EA4 8010ED04 8D2E0000 */ lw $t6, ($t1) -/* B85EA8 8010ED08 00003825 */ move $a3, $zero -/* B85EAC 8010ED0C 19000085 */ blez $t0, .L8010EF24 -/* B85EB0 8010ED10 95C50F4C */ lhu $a1, 0xf4c($t6) -/* B85EB4 8010ED14 000478C0 */ sll $t7, $a0, 3 -/* B85EB8 8010ED18 01E47821 */ addu $t7, $t7, $a0 -/* B85EBC 8010ED1C 3C0D0A0A */ lui $t5, (0x0A0A0A00 >> 16) # lui $t5, 0xa0a -/* B85EC0 8010ED20 3C0C9696 */ lui $t4, (0x96969696 >> 16) # lui $t4, 0x9696 -/* B85EC4 8010ED24 358C9696 */ ori $t4, (0x96969696 & 0xFFFF) # ori $t4, $t4, 0x9696 -/* B85EC8 8010ED28 35AD0A00 */ ori $t5, (0x0A0A0A00 & 0xFFFF) # ori $t5, $t5, 0xa00 -/* B85ECC 8010ED2C 01F8F821 */ addu $ra, $t7, $t8 -/* B85ED0 8010ED30 3C11FD70 */ lui $s1, 0xfd70 -/* B85ED4 8010ED34 3C0BFB00 */ lui $t3, 0xfb00 -/* B85ED8 8010ED38 3C0AFA00 */ lui $t2, 0xfa00 -/* B85EDC 8010ED3C 3C06E700 */ lui $a2, 0xe700 -.L8010ED40: -/* B85EE0 8010ED40 8FB90140 */ lw $t9, 0x140($sp) -/* B85EE4 8010ED44 03E72021 */ addu $a0, $ra, $a3 -/* B85EE8 8010ED48 3C01E400 */ lui $at, 0xe400 -/* B85EEC 8010ED4C 272E0008 */ addiu $t6, $t9, 8 -/* B85EF0 8010ED50 AFAE0140 */ sw $t6, 0x140($sp) -/* B85EF4 8010ED54 AF200004 */ sw $zero, 4($t9) -/* B85EF8 8010ED58 AF260000 */ sw $a2, ($t9) -/* B85EFC 8010ED5C 8FAF0140 */ lw $t7, 0x140($sp) -/* B85F00 8010ED60 24E70001 */ addiu $a3, $a3, 1 -/* B85F04 8010ED64 30E7FFFF */ andi $a3, $a3, 0xffff -/* B85F08 8010ED68 25F80008 */ addiu $t8, $t7, 8 -/* B85F0C 8010ED6C AFB80140 */ sw $t8, 0x140($sp) -/* B85F10 8010ED70 ADEC0004 */ sw $t4, 4($t7) -/* B85F14 8010ED74 ADEA0000 */ sw $t2, ($t7) -/* B85F18 8010ED78 8FB90140 */ lw $t9, 0x140($sp) -/* B85F1C 8010ED7C 3C0F8015 */ lui $t7, %hi(D_80153C94) -/* B85F20 8010ED80 272E0008 */ addiu $t6, $t9, 8 -/* B85F24 8010ED84 AFAE0140 */ sw $t6, 0x140($sp) -/* B85F28 8010ED88 AF2D0004 */ sw $t5, 4($t9) -/* B85F2C 8010ED8C AF2B0000 */ sw $t3, ($t9) -/* B85F30 8010ED90 8FA20140 */ lw $v0, 0x140($sp) -/* B85F34 8010ED94 24580008 */ addiu $t8, $v0, 8 -/* B85F38 8010ED98 AFB80140 */ sw $t8, 0x140($sp) -/* B85F3C 8010ED9C AC510000 */ sw $s1, ($v0) -/* B85F40 8010EDA0 90990001 */ lbu $t9, 1($a0) -/* B85F44 8010EDA4 00197080 */ sll $t6, $t9, 2 -/* B85F48 8010EDA8 01EE7821 */ addu $t7, $t7, $t6 -/* B85F4C 8010EDAC 8DEF3C94 */ lw $t7, %lo(D_80153C94)($t7) -/* B85F50 8010EDB0 3C0EF570 */ lui $t6, 0xf570 -/* B85F54 8010EDB4 AC4F0004 */ sw $t7, 4($v0) -/* B85F58 8010EDB8 8FB80140 */ lw $t8, 0x140($sp) -/* B85F5C 8010EDBC 3C0F0700 */ lui $t7, 0x700 -/* B85F60 8010EDC0 27190008 */ addiu $t9, $t8, 8 -/* B85F64 8010EDC4 AFB90140 */ sw $t9, 0x140($sp) -/* B85F68 8010EDC8 AF0F0004 */ sw $t7, 4($t8) -/* B85F6C 8010EDCC AF0E0000 */ sw $t6, ($t8) -/* B85F70 8010EDD0 8FB80140 */ lw $t8, 0x140($sp) -/* B85F74 8010EDD4 3C0EE600 */ lui $t6, 0xe600 -/* B85F78 8010EDD8 27190008 */ addiu $t9, $t8, 8 -/* B85F7C 8010EDDC AFB90140 */ sw $t9, 0x140($sp) -/* B85F80 8010EDE0 AF000004 */ sw $zero, 4($t8) -/* B85F84 8010EDE4 AF0E0000 */ sw $t6, ($t8) -/* B85F88 8010EDE8 8FAF0140 */ lw $t7, 0x140($sp) -/* B85F8C 8010EDEC 3C0E0707 */ lui $t6, (0x0707F400 >> 16) # lui $t6, 0x707 -/* B85F90 8010EDF0 35CEF400 */ ori $t6, (0x0707F400 & 0xFFFF) # ori $t6, $t6, 0xf400 -/* B85F94 8010EDF4 25F80008 */ addiu $t8, $t7, 8 -/* B85F98 8010EDF8 AFB80140 */ sw $t8, 0x140($sp) -/* B85F9C 8010EDFC 3C19F300 */ lui $t9, 0xf300 -/* B85FA0 8010EE00 ADF90000 */ sw $t9, ($t7) -/* B85FA4 8010EE04 ADEE0004 */ sw $t6, 4($t7) -/* B85FA8 8010EE08 8FAF0140 */ lw $t7, 0x140($sp) -/* B85FAC 8010EE0C 25F80008 */ addiu $t8, $t7, 8 -/* B85FB0 8010EE10 AFB80140 */ sw $t8, 0x140($sp) -/* B85FB4 8010EE14 ADE00004 */ sw $zero, 4($t7) -/* B85FB8 8010EE18 ADE60000 */ sw $a2, ($t7) -/* B85FBC 8010EE1C 8FB90140 */ lw $t9, 0x140($sp) -/* B85FC0 8010EE20 3C0FF568 */ lui $t7, (0xF5680400 >> 16) # lui $t7, 0xf568 -/* B85FC4 8010EE24 35EF0400 */ ori $t7, (0xF5680400 & 0xFFFF) # ori $t7, $t7, 0x400 -/* B85FC8 8010EE28 272E0008 */ addiu $t6, $t9, 8 -/* B85FCC 8010EE2C AFAE0140 */ sw $t6, 0x140($sp) -/* B85FD0 8010EE30 AF200004 */ sw $zero, 4($t9) -/* B85FD4 8010EE34 AF2F0000 */ sw $t7, ($t9) -/* B85FD8 8010EE38 8FB80140 */ lw $t8, 0x140($sp) -/* B85FDC 8010EE3C 3C0F0003 */ lui $t7, (0x0003C03C >> 16) # lui $t7, 3 -/* B85FE0 8010EE40 35EFC03C */ ori $t7, (0x0003C03C & 0xFFFF) # ori $t7, $t7, 0xc03c -/* B85FE4 8010EE44 27190008 */ addiu $t9, $t8, 8 -/* B85FE8 8010EE48 AFB90140 */ sw $t9, 0x140($sp) -/* B85FEC 8010EE4C 3C0EF200 */ lui $t6, 0xf200 -/* B85FF0 8010EE50 AF0E0000 */ sw $t6, ($t8) -/* B85FF4 8010EE54 AF0F0004 */ sw $t7, 4($t8) -/* B85FF8 8010EE58 8FA20140 */ lw $v0, 0x140($sp) -/* B85FFC 8010EE5C 908F0001 */ lbu $t7, 1($a0) -/* B86000 8010EE60 8D2E0000 */ lw $t6, ($t1) -/* B86004 8010EE64 24590008 */ addiu $t9, $v0, 8 -/* B86008 8010EE68 AFB90140 */ sw $t9, 0x140($sp) -/* B8600C 8010EE6C 000FC040 */ sll $t8, $t7, 1 -/* B86010 8010EE70 01D8C821 */ addu $t9, $t6, $t8 -/* B86014 8010EE74 872F0F6E */ lh $t7, 0xf6e($t9) -/* B86018 8010EE78 25EE0010 */ addiu $t6, $t7, 0x10 -/* B8601C 8010EE7C 000EC080 */ sll $t8, $t6, 2 -/* B86020 8010EE80 33190FFF */ andi $t9, $t8, 0xfff -/* B86024 8010EE84 24AE0010 */ addiu $t6, $a1, 0x10 -/* B86028 8010EE88 000EC080 */ sll $t8, $t6, 2 -/* B8602C 8010EE8C 03217825 */ or $t7, $t9, $at -/* B86030 8010EE90 33190FFF */ andi $t9, $t8, 0xfff -/* B86034 8010EE94 00197300 */ sll $t6, $t9, 0xc -/* B86038 8010EE98 01EEC025 */ or $t8, $t7, $t6 -/* B8603C 8010EE9C AC580000 */ sw $t8, ($v0) -/* B86040 8010EEA0 908F0001 */ lbu $t7, 1($a0) -/* B86044 8010EEA4 8D390000 */ lw $t9, ($t1) -/* B86048 8010EEA8 00E8082A */ slt $at, $a3, $t0 -/* B8604C 8010EEAC 000F7040 */ sll $t6, $t7, 1 -/* B86050 8010EEB0 032EC021 */ addu $t8, $t9, $t6 -/* B86054 8010EEB4 870F0F6E */ lh $t7, 0xf6e($t8) -/* B86058 8010EEB8 0005C080 */ sll $t8, $a1, 2 -/* B8605C 8010EEBC 000FC880 */ sll $t9, $t7, 2 -/* B86060 8010EEC0 332E0FFF */ andi $t6, $t9, 0xfff -/* B86064 8010EEC4 330F0FFF */ andi $t7, $t8, 0xfff -/* B86068 8010EEC8 000FCB00 */ sll $t9, $t7, 0xc -/* B8606C 8010EECC 01D9C025 */ or $t8, $t6, $t9 -/* B86070 8010EED0 AC580004 */ sw $t8, 4($v0) -/* B86074 8010EED4 8FAF0140 */ lw $t7, 0x140($sp) -/* B86078 8010EED8 3C19E100 */ lui $t9, 0xe100 -/* B8607C 8010EEDC 25EE0008 */ addiu $t6, $t7, 8 -/* B86080 8010EEE0 AFAE0140 */ sw $t6, 0x140($sp) -/* B86084 8010EEE4 ADE00004 */ sw $zero, 4($t7) -/* B86088 8010EEE8 ADF90000 */ sw $t9, ($t7) -/* B8608C 8010EEEC 8FB80140 */ lw $t8, 0x140($sp) -/* B86090 8010EEF0 3C190400 */ lui $t9, (0x04000400 >> 16) # lui $t9, 0x400 -/* B86094 8010EEF4 37390400 */ ori $t9, (0x04000400 & 0xFFFF) # ori $t9, $t9, 0x400 -/* B86098 8010EEF8 270F0008 */ addiu $t7, $t8, 8 -/* B8609C 8010EEFC AFAF0140 */ sw $t7, 0x140($sp) -/* B860A0 8010EF00 3C0EF100 */ lui $t6, 0xf100 -/* B860A4 8010EF04 AF0E0000 */ sw $t6, ($t8) -/* B860A8 8010EF08 AF190004 */ sw $t9, 4($t8) -/* B860AC 8010EF0C 8D380000 */ lw $t8, ($t1) -/* B860B0 8010EF10 870F0F4E */ lh $t7, 0xf4e($t8) -/* B860B4 8010EF14 00AF2821 */ addu $a1, $a1, $t7 -/* B860B8 8010EF18 1420FF89 */ bnez $at, .L8010ED40 -/* B860BC 8010EF1C 30A5FFFF */ andi $a1, $a1, 0xffff -/* B860C0 8010EF20 92026304 */ lbu $v0, 0x6304($s0) -.L8010EF24: -/* B860C4 8010EF24 24010021 */ li $at, 33 -/* B860C8 8010EF28 3C06E700 */ lui $a2, 0xe700 -/* B860CC 8010EF2C 3C0AFA00 */ lui $t2, 0xfa00 -/* B860D0 8010EF30 3C0BFB00 */ lui $t3, 0xfb00 -/* B860D4 8010EF34 104100DC */ beq $v0, $at, .L8010F2A8 -/* B860D8 8010EF38 3C11FD70 */ lui $s1, 0xfd70 -/* B860DC 8010EF3C 24010029 */ li $at, 41 -/* B860E0 8010EF40 504100DA */ beql $v0, $at, .L8010F2AC -/* B860E4 8010EF44 8FB80140 */ lw $t8, 0x140($sp) -/* B860E8 8010EF48 8D280000 */ lw $t0, ($t1) -/* B860EC 8010EF4C 00003825 */ move $a3, $zero -/* B860F0 8010EF50 95050F4C */ lhu $a1, 0xf4c($t0) -.L8010EF54: -/* B860F4 8010EF54 3C0E8015 */ lui $t6, %hi(D_8015394C) # $t6, 0x8015 -/* B860F8 8010EF58 25CE394C */ addiu $t6, %lo(D_8015394C) # addiu $t6, $t6, 0x394c -/* B860FC 8010EF5C 00EE2021 */ addu $a0, $a3, $t6 -/* B86100 8010EF60 90990000 */ lbu $t9, ($a0) -/* B86104 8010EF64 240100FF */ li $at, 255 -/* B86108 8010EF68 132100CF */ beq $t9, $at, .L8010F2A8 -/* B8610C 8010EF6C 3C0F8015 */ lui $t7, %hi(D_80153958) # $t7, 0x8015 -/* B86110 8010EF70 25EF3958 */ addiu $t7, %lo(D_80153958) # addiu $t7, $t7, 0x3958 -/* B86114 8010EF74 0007C040 */ sll $t8, $a3, 1 -/* B86118 8010EF78 030F1821 */ addu $v1, $t8, $t7 -/* B8611C 8010EF7C 84620000 */ lh $v0, ($v1) -/* B86120 8010EF80 240C00FF */ li $t4, 255 -/* B86124 8010EF84 5182000A */ beql $t4, $v0, .L8010EFB0 -/* B86128 8010EF88 8FAF0140 */ lw $t7, 0x140($sp) -/* B8612C 8010EF8C 850E0F78 */ lh $t6, 0xf78($t0) -/* B86130 8010EF90 004EC821 */ addu $t9, $v0, $t6 -/* B86134 8010EF94 A4790000 */ sh $t9, ($v1) -/* B86138 8010EF98 84780000 */ lh $t8, ($v1) -/* B8613C 8010EF9C 2B0100FF */ slti $at, $t8, 0xff -/* B86140 8010EFA0 54200003 */ bnezl $at, .L8010EFB0 -/* B86144 8010EFA4 8FAF0140 */ lw $t7, 0x140($sp) -/* B86148 8010EFA8 A46C0000 */ sh $t4, ($v1) -/* B8614C 8010EFAC 8FAF0140 */ lw $t7, 0x140($sp) -.L8010EFB0: -/* B86150 8010EFB0 25EE0008 */ addiu $t6, $t7, 8 -/* B86154 8010EFB4 AFAE0140 */ sw $t6, 0x140($sp) -/* B86158 8010EFB8 ADE00004 */ sw $zero, 4($t7) -/* B8615C 8010EFBC ADE60000 */ sw $a2, ($t7) -/* B86160 8010EFC0 90990000 */ lbu $t9, ($a0) -/* B86164 8010EFC4 5720002A */ bnezl $t9, .L8010F070 -/* B86168 8010EFC8 8FA20140 */ lw $v0, 0x140($sp) -/* B8616C 8010EFCC 8FA20140 */ lw $v0, 0x140($sp) -/* B86170 8010EFD0 3C188017 */ lui $t8, %hi(D_801759A8) # $t8, 0x8017 -/* B86174 8010EFD4 244F0008 */ addiu $t7, $v0, 8 -/* B86178 8010EFD8 AFAF0140 */ sw $t7, 0x140($sp) -/* B8617C 8010EFDC AC4A0000 */ sw $t2, ($v0) -/* B86180 8010EFE0 846E0000 */ lh $t6, ($v1) -/* B86184 8010EFE4 870F59A8 */ lh $t7, %lo(D_801759A8)($t8) -/* B86188 8010EFE8 31D900FF */ andi $t9, $t6, 0xff -/* B8618C 8010EFEC 000F7600 */ sll $t6, $t7, 0x18 -/* B86190 8010EFF0 3C0F8017 */ lui $t7, %hi(D_801759AC) # $t7, 0x8017 -/* B86194 8010EFF4 85EF59AC */ lh $t7, %lo(D_801759AC)($t7) -/* B86198 8010EFF8 032EC025 */ or $t8, $t9, $t6 -/* B8619C 8010EFFC 31F900FF */ andi $t9, $t7, 0xff -/* B861A0 8010F000 00197400 */ sll $t6, $t9, 0x10 -/* B861A4 8010F004 3C198017 */ lui $t9, %hi(D_801759AA) # $t9, 0x8017 -/* B861A8 8010F008 873959AA */ lh $t9, %lo(D_801759AA)($t9) -/* B861AC 8010F00C 030E7825 */ or $t7, $t8, $t6 -/* B861B0 8010F010 333800FF */ andi $t8, $t9, 0xff -/* B861B4 8010F014 00187200 */ sll $t6, $t8, 8 -/* B861B8 8010F018 01EEC825 */ or $t9, $t7, $t6 -/* B861BC 8010F01C AC590004 */ sw $t9, 4($v0) -/* B861C0 8010F020 8FA20140 */ lw $v0, 0x140($sp) -/* B861C4 8010F024 3C0E8017 */ lui $t6, %hi(D_801759AE) # $t6, 0x8017 -/* B861C8 8010F028 244F0008 */ addiu $t7, $v0, 8 -/* B861CC 8010F02C AFAF0140 */ sw $t7, 0x140($sp) -/* B861D0 8010F030 AC4B0000 */ sw $t3, ($v0) -/* B861D4 8010F034 3C0F8017 */ lui $t7, %hi(D_801759B2) # $t7, 0x8017 -/* B861D8 8010F038 85EF59B2 */ lh $t7, %lo(D_801759B2)($t7) -/* B861DC 8010F03C 85D959AE */ lh $t9, %lo(D_801759AE)($t6) -/* B861E0 8010F040 31EE00FF */ andi $t6, $t7, 0xff -/* B861E4 8010F044 0019C600 */ sll $t8, $t9, 0x18 -/* B861E8 8010F048 000ECC00 */ sll $t9, $t6, 0x10 -/* B861EC 8010F04C 3C0E8017 */ lui $t6, %hi(D_801759B0) # $t6, 0x8017 -/* B861F0 8010F050 85CE59B0 */ lh $t6, %lo(D_801759B0)($t6) -/* B861F4 8010F054 03197825 */ or $t7, $t8, $t9 -/* B861F8 8010F058 31D800FF */ andi $t8, $t6, 0xff -/* B861FC 8010F05C 0018CA00 */ sll $t9, $t8, 8 -/* B86200 8010F060 01F97025 */ or $t6, $t7, $t9 -/* B86204 8010F064 10000028 */ b .L8010F108 -/* B86208 8010F068 AC4E0004 */ sw $t6, 4($v0) -/* B8620C 8010F06C 8FA20140 */ lw $v0, 0x140($sp) -.L8010F070: -/* B86210 8010F070 3C188017 */ lui $t8, %hi(D_801759B4) # $t8, 0x8017 -/* B86214 8010F074 244F0008 */ addiu $t7, $v0, 8 -/* B86218 8010F078 AFAF0140 */ sw $t7, 0x140($sp) -/* B8621C 8010F07C AC4A0000 */ sw $t2, ($v0) -/* B86220 8010F080 84790000 */ lh $t9, ($v1) -/* B86224 8010F084 870F59B4 */ lh $t7, %lo(D_801759B4)($t8) -/* B86228 8010F088 332E00FF */ andi $t6, $t9, 0xff -/* B8622C 8010F08C 000FCE00 */ sll $t9, $t7, 0x18 -/* B86230 8010F090 3C0F8017 */ lui $t7, %hi(D_801759B8) # $t7, 0x8017 -/* B86234 8010F094 85EF59B8 */ lh $t7, %lo(D_801759B8)($t7) -/* B86238 8010F098 01D9C025 */ or $t8, $t6, $t9 -/* B8623C 8010F09C 31EE00FF */ andi $t6, $t7, 0xff -/* B86240 8010F0A0 000ECC00 */ sll $t9, $t6, 0x10 -/* B86244 8010F0A4 3C0E8017 */ lui $t6, %hi(D_801759B6) # $t6, 0x8017 -/* B86248 8010F0A8 85CE59B6 */ lh $t6, %lo(D_801759B6)($t6) -/* B8624C 8010F0AC 03197825 */ or $t7, $t8, $t9 -/* B86250 8010F0B0 31D800FF */ andi $t8, $t6, 0xff -/* B86254 8010F0B4 0018CA00 */ sll $t9, $t8, 8 -/* B86258 8010F0B8 01F97025 */ or $t6, $t7, $t9 -/* B8625C 8010F0BC AC4E0004 */ sw $t6, 4($v0) -/* B86260 8010F0C0 8FA20140 */ lw $v0, 0x140($sp) -/* B86264 8010F0C4 3C198017 */ lui $t9, %hi(D_801759BA) # $t9, 0x8017 -/* B86268 8010F0C8 244F0008 */ addiu $t7, $v0, 8 -/* B8626C 8010F0CC AFAF0140 */ sw $t7, 0x140($sp) -/* B86270 8010F0D0 AC4B0000 */ sw $t3, ($v0) -/* B86274 8010F0D4 3C0F8017 */ lui $t7, %hi(D_801759BE) # $t7, 0x8017 -/* B86278 8010F0D8 85EF59BE */ lh $t7, %lo(D_801759BE)($t7) -/* B8627C 8010F0DC 872E59BA */ lh $t6, %lo(D_801759BA)($t9) -/* B86280 8010F0E0 31F900FF */ andi $t9, $t7, 0xff -/* B86284 8010F0E4 000EC600 */ sll $t8, $t6, 0x18 -/* B86288 8010F0E8 00197400 */ sll $t6, $t9, 0x10 -/* B8628C 8010F0EC 3C198017 */ lui $t9, %hi(D_801759BC) # $t9, 0x8017 -/* B86290 8010F0F0 873959BC */ lh $t9, %lo(D_801759BC)($t9) -/* B86294 8010F0F4 030E7825 */ or $t7, $t8, $t6 -/* B86298 8010F0F8 333800FF */ andi $t8, $t9, 0xff -/* B8629C 8010F0FC 00187200 */ sll $t6, $t8, 8 -/* B862A0 8010F100 01EEC825 */ or $t9, $t7, $t6 -/* B862A4 8010F104 AC590004 */ sw $t9, 4($v0) -.L8010F108: -/* B862A8 8010F108 8FA20140 */ lw $v0, 0x140($sp) -/* B862AC 8010F10C 3C188015 */ lui $t8, %hi(D_80153C94) -/* B862B0 8010F110 3C01E400 */ lui $at, 0xe400 -/* B862B4 8010F114 244F0008 */ addiu $t7, $v0, 8 -/* B862B8 8010F118 AFAF0140 */ sw $t7, 0x140($sp) -/* B862BC 8010F11C AC510000 */ sw $s1, ($v0) -/* B862C0 8010F120 908E0000 */ lbu $t6, ($a0) -/* B862C4 8010F124 24E70001 */ addiu $a3, $a3, 1 -/* B862C8 8010F128 30E7FFFF */ andi $a3, $a3, 0xffff -/* B862CC 8010F12C 000EC880 */ sll $t9, $t6, 2 -/* B862D0 8010F130 0319C021 */ addu $t8, $t8, $t9 -/* B862D4 8010F134 8F183C94 */ lw $t8, %lo(D_80153C94)($t8) -/* B862D8 8010F138 3C19F570 */ lui $t9, 0xf570 -/* B862DC 8010F13C AC580004 */ sw $t8, 4($v0) -/* B862E0 8010F140 8FAF0140 */ lw $t7, 0x140($sp) -/* B862E4 8010F144 3C180700 */ lui $t8, 0x700 -/* B862E8 8010F148 25EE0008 */ addiu $t6, $t7, 8 -/* B862EC 8010F14C AFAE0140 */ sw $t6, 0x140($sp) -/* B862F0 8010F150 ADF80004 */ sw $t8, 4($t7) -/* B862F4 8010F154 ADF90000 */ sw $t9, ($t7) -/* B862F8 8010F158 8FAF0140 */ lw $t7, 0x140($sp) -/* B862FC 8010F15C 3C19E600 */ lui $t9, 0xe600 -/* B86300 8010F160 25EE0008 */ addiu $t6, $t7, 8 -/* B86304 8010F164 AFAE0140 */ sw $t6, 0x140($sp) -/* B86308 8010F168 ADE00004 */ sw $zero, 4($t7) -/* B8630C 8010F16C ADF90000 */ sw $t9, ($t7) -/* B86310 8010F170 8FB80140 */ lw $t8, 0x140($sp) -/* B86314 8010F174 3C190707 */ lui $t9, (0x0707F400 >> 16) # lui $t9, 0x707 -/* B86318 8010F178 3739F400 */ ori $t9, (0x0707F400 & 0xFFFF) # ori $t9, $t9, 0xf400 -/* B8631C 8010F17C 270F0008 */ addiu $t7, $t8, 8 -/* B86320 8010F180 AFAF0140 */ sw $t7, 0x140($sp) -/* B86324 8010F184 3C0EF300 */ lui $t6, 0xf300 -/* B86328 8010F188 AF0E0000 */ sw $t6, ($t8) -/* B8632C 8010F18C AF190004 */ sw $t9, 4($t8) -/* B86330 8010F190 8FB80140 */ lw $t8, 0x140($sp) -/* B86334 8010F194 270F0008 */ addiu $t7, $t8, 8 -/* B86338 8010F198 AFAF0140 */ sw $t7, 0x140($sp) -/* B8633C 8010F19C AF000004 */ sw $zero, 4($t8) -/* B86340 8010F1A0 AF060000 */ sw $a2, ($t8) -/* B86344 8010F1A4 8FAE0140 */ lw $t6, 0x140($sp) -/* B86348 8010F1A8 3C18F568 */ lui $t8, (0xF5680400 >> 16) # lui $t8, 0xf568 -/* B8634C 8010F1AC 37180400 */ ori $t8, (0xF5680400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* B86350 8010F1B0 25D90008 */ addiu $t9, $t6, 8 -/* B86354 8010F1B4 AFB90140 */ sw $t9, 0x140($sp) -/* B86358 8010F1B8 ADC00004 */ sw $zero, 4($t6) -/* B8635C 8010F1BC ADD80000 */ sw $t8, ($t6) -/* B86360 8010F1C0 8FAF0140 */ lw $t7, 0x140($sp) -/* B86364 8010F1C4 3C180003 */ lui $t8, (0x0003C03C >> 16) # lui $t8, 3 -/* B86368 8010F1C8 3718C03C */ ori $t8, (0x0003C03C & 0xFFFF) # ori $t8, $t8, 0xc03c -/* B8636C 8010F1CC 25EE0008 */ addiu $t6, $t7, 8 -/* B86370 8010F1D0 AFAE0140 */ sw $t6, 0x140($sp) -/* B86374 8010F1D4 3C19F200 */ lui $t9, 0xf200 -/* B86378 8010F1D8 ADF90000 */ sw $t9, ($t7) -/* B8637C 8010F1DC ADF80004 */ sw $t8, 4($t7) -/* B86380 8010F1E0 8FA20140 */ lw $v0, 0x140($sp) -/* B86384 8010F1E4 90980000 */ lbu $t8, ($a0) -/* B86388 8010F1E8 8D390000 */ lw $t9, ($t1) -/* B8638C 8010F1EC 244E0008 */ addiu $t6, $v0, 8 -/* B86390 8010F1F0 AFAE0140 */ sw $t6, 0x140($sp) -/* B86394 8010F1F4 00187840 */ sll $t7, $t8, 1 -/* B86398 8010F1F8 032F7021 */ addu $t6, $t9, $t7 -/* B8639C 8010F1FC 85D80F6E */ lh $t8, 0xf6e($t6) -/* B863A0 8010F200 27190010 */ addiu $t9, $t8, 0x10 -/* B863A4 8010F204 00197880 */ sll $t7, $t9, 2 -/* B863A8 8010F208 31EE0FFF */ andi $t6, $t7, 0xfff -/* B863AC 8010F20C 24B90010 */ addiu $t9, $a1, 0x10 -/* B863B0 8010F210 00197880 */ sll $t7, $t9, 2 -/* B863B4 8010F214 01C1C025 */ or $t8, $t6, $at -/* B863B8 8010F218 31EE0FFF */ andi $t6, $t7, 0xfff -/* B863BC 8010F21C 000ECB00 */ sll $t9, $t6, 0xc -/* B863C0 8010F220 03197825 */ or $t7, $t8, $t9 -/* B863C4 8010F224 AC4F0000 */ sw $t7, ($v0) -/* B863C8 8010F228 90980000 */ lbu $t8, ($a0) -/* B863CC 8010F22C 8D2E0000 */ lw $t6, ($t1) -/* B863D0 8010F230 28E10008 */ slti $at, $a3, 8 -/* B863D4 8010F234 0018C840 */ sll $t9, $t8, 1 -/* B863D8 8010F238 01D97821 */ addu $t7, $t6, $t9 -/* B863DC 8010F23C 85F80F6E */ lh $t8, 0xf6e($t7) -/* B863E0 8010F240 00057880 */ sll $t7, $a1, 2 -/* B863E4 8010F244 00187080 */ sll $t6, $t8, 2 -/* B863E8 8010F248 31D90FFF */ andi $t9, $t6, 0xfff -/* B863EC 8010F24C 31F80FFF */ andi $t8, $t7, 0xfff -/* B863F0 8010F250 00187300 */ sll $t6, $t8, 0xc -/* B863F4 8010F254 032E7825 */ or $t7, $t9, $t6 -/* B863F8 8010F258 AC4F0004 */ sw $t7, 4($v0) -/* B863FC 8010F25C 8FB80140 */ lw $t8, 0x140($sp) -/* B86400 8010F260 3C0EE100 */ lui $t6, 0xe100 -/* B86404 8010F264 27190008 */ addiu $t9, $t8, 8 -/* B86408 8010F268 AFB90140 */ sw $t9, 0x140($sp) -/* B8640C 8010F26C AF000004 */ sw $zero, 4($t8) -/* B86410 8010F270 AF0E0000 */ sw $t6, ($t8) -/* B86414 8010F274 8FAF0140 */ lw $t7, 0x140($sp) -/* B86418 8010F278 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 -/* B8641C 8010F27C 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 -/* B86420 8010F280 25F80008 */ addiu $t8, $t7, 8 -/* B86424 8010F284 AFB80140 */ sw $t8, 0x140($sp) -/* B86428 8010F288 3C19F100 */ lui $t9, 0xf100 -/* B8642C 8010F28C ADF90000 */ sw $t9, ($t7) -/* B86430 8010F290 ADEE0004 */ sw $t6, 4($t7) -/* B86434 8010F294 8D280000 */ lw $t0, ($t1) -/* B86438 8010F298 850F0F4E */ lh $t7, 0xf4e($t0) -/* B8643C 8010F29C 00AF2821 */ addu $a1, $a1, $t7 -/* B86440 8010F2A0 1420FF2C */ bnez $at, .L8010EF54 -/* B86444 8010F2A4 30A5FFFF */ andi $a1, $a1, 0xffff -.L8010F2A8: -/* B86448 8010F2A8 8FB80140 */ lw $t8, 0x140($sp) -.L8010F2AC: -/* B8644C 8010F2AC 8FB9015C */ lw $t9, 0x15c($sp) -/* B86450 8010F2B0 AF380000 */ sw $t8, ($t9) -/* B86454 8010F2B4 8FBF003C */ lw $ra, 0x3c($sp) -/* B86458 8010F2B8 8FB20038 */ lw $s2, 0x38($sp) -/* B8645C 8010F2BC 8FB10034 */ lw $s1, 0x34($sp) -/* B86460 8010F2C0 8FB00030 */ lw $s0, 0x30($sp) -/* B86464 8010F2C4 03E00008 */ jr $ra -/* B86468 8010F2C8 27BD0158 */ addiu $sp, $sp, 0x158 diff --git a/asm/non_matchings/code/z_message_PAL/func_8010F2CC.s b/asm/non_matchings/code/z_message_PAL/func_8010F2CC.s deleted file mode 100644 index 55e1d656c9..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010F2CC.s +++ /dev/null @@ -1,128 +0,0 @@ -.rdata -glabel D_80154984 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_80154998 - .asciz "../z_message_PAL.c" - .balign 4 - -.text -glabel func_8010F2CC -/* B8646C 8010F2CC 27BDFF98 */ addiu $sp, $sp, -0x68 -/* B86470 8010F2D0 AFBF0014 */ sw $ra, 0x14($sp) -/* B86474 8010F2D4 AFA40068 */ sw $a0, 0x68($sp) -/* B86478 8010F2D8 3C068015 */ lui $a2, %hi(D_80154984) # $a2, 0x8015 -/* B8647C 8010F2DC 24C64984 */ addiu $a2, %lo(D_80154984) # addiu $a2, $a2, 0x4984 -/* B86480 8010F2E0 27A40050 */ addiu $a0, $sp, 0x50 -/* B86484 8010F2E4 AFA5006C */ sw $a1, 0x6c($sp) -/* B86488 8010F2E8 0C031AB1 */ jal Graph_OpenDisps -/* B8648C 8010F2EC 24070D9D */ li $a3, 3485 -/* B86490 8010F2F0 8FAE0068 */ lw $t6, 0x68($sp) -/* B86494 8010F2F4 3C0F8015 */ lui $t7, %hi(D_80153CF8) # $t7, 0x8015 -/* B86498 8010F2F8 85EF3CF8 */ lh $t7, %lo(D_80153CF8)($t7) -/* B8649C 8010F2FC 85C20000 */ lh $v0, ($t6) -/* B864A0 8010F300 8FA5006C */ lw $a1, 0x6c($sp) -/* B864A4 8010F304 3C018015 */ lui $at, %hi(D_80153CF8) # $at, 0x8015 -/* B864A8 8010F308 11E20004 */ beq $t7, $v0, .L8010F31C -/* B864AC 8010F30C 2403001E */ li $v1, 30 -/* B864B0 8010F310 A4223CF8 */ sh $v0, %lo(D_80153CF8)($at) -/* B864B4 8010F314 3C018015 */ lui $at, %hi(D_80153CFC) # $at, 0x8015 -/* B864B8 8010F318 A4233CFC */ sh $v1, %lo(D_80153CFC)($at) -.L8010F31C: -/* B864BC 8010F31C 3C038015 */ lui $v1, %hi(D_80153CFC) # $v1, 0x8015 -/* B864C0 8010F320 84633CFC */ lh $v1, %lo(D_80153CFC)($v1) -/* B864C4 8010F324 3C018015 */ lui $at, %hi(D_80153CFC) # $at, 0x8015 -/* B864C8 8010F328 3C04E700 */ lui $a0, 0xe700 -/* B864CC 8010F32C 10600050 */ beqz $v1, .L8010F470 -/* B864D0 8010F330 3C06E300 */ lui $a2, (0xE3000A01 >> 16) # lui $a2, 0xe300 -/* B864D4 8010F334 2463FFFF */ addiu $v1, $v1, -1 -/* B864D8 8010F338 00031C00 */ sll $v1, $v1, 0x10 -/* B864DC 8010F33C 00031C03 */ sra $v1, $v1, 0x10 -/* B864E0 8010F340 A4233CFC */ sh $v1, %lo(D_80153CFC)($at) -/* B864E4 8010F344 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B864E8 8010F348 34C60A01 */ ori $a2, (0xE3000A01 & 0xFFFF) # ori $a2, $a2, 0xa01 -/* B864EC 8010F34C 3C070030 */ lui $a3, 0x30 -/* B864F0 8010F350 24580008 */ addiu $t8, $v0, 8 -/* B864F4 8010F354 ACB802C0 */ sw $t8, 0x2c0($a1) -/* B864F8 8010F358 AC400004 */ sw $zero, 4($v0) -/* B864FC 8010F35C AC440000 */ sw $a0, ($v0) -/* B86500 8010F360 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86504 8010F364 3C08E200 */ lui $t0, (0xE200001C >> 16) # lui $t0, 0xe200 -/* B86508 8010F368 3508001C */ ori $t0, (0xE200001C & 0xFFFF) # ori $t0, $t0, 0x1c -/* B8650C 8010F36C 24590008 */ addiu $t9, $v0, 8 -/* B86510 8010F370 ACB902C0 */ sw $t9, 0x2c0($a1) -/* B86514 8010F374 AC470004 */ sw $a3, 4($v0) -/* B86518 8010F378 AC460000 */ sw $a2, ($v0) -/* B8651C 8010F37C 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86520 8010F380 3C0C0001 */ lui $t4, (0x00010001 >> 16) # lui $t4, 1 -/* B86524 8010F384 358C0001 */ ori $t4, (0x00010001 & 0xFFFF) # ori $t4, $t4, 1 -/* B86528 8010F388 244A0008 */ addiu $t2, $v0, 8 -/* B8652C 8010F38C ACAA02C0 */ sw $t2, 0x2c0($a1) -/* B86530 8010F390 AC400004 */ sw $zero, 4($v0) -/* B86534 8010F394 AC480000 */ sw $t0, ($v0) -/* B86538 8010F398 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B8653C 8010F39C 3C09F700 */ lui $t1, 0xf700 -/* B86540 8010F3A0 3C0EF64F */ lui $t6, (0xF64FC258 >> 16) # lui $t6, 0xf64f -/* B86544 8010F3A4 244B0008 */ addiu $t3, $v0, 8 -/* B86548 8010F3A8 ACAB02C0 */ sw $t3, 0x2c0($a1) -/* B8654C 8010F3AC AC4C0004 */ sw $t4, 4($v0) -/* B86550 8010F3B0 AC490000 */ sw $t1, ($v0) -/* B86554 8010F3B4 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86558 8010F3B8 35CEC258 */ ori $t6, (0xF64FC258 & 0xFFFF) # ori $t6, $t6, 0xc258 -/* B8655C 8010F3BC 240F01B8 */ li $t7, 440 -/* B86560 8010F3C0 244D0008 */ addiu $t5, $v0, 8 -/* B86564 8010F3C4 ACAD02C0 */ sw $t5, 0x2c0($a1) -/* B86568 8010F3C8 AC4F0004 */ sw $t7, 4($v0) -/* B8656C 8010F3CC AC4E0000 */ sw $t6, ($v0) -/* B86570 8010F3D0 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86574 8010F3D4 240DFFFF */ li $t5, -1 -/* B86578 8010F3D8 3C0FF60F */ lui $t7, (0xF60F0230 >> 16) # lui $t7, 0xf60f -/* B8657C 8010F3DC 24580008 */ addiu $t8, $v0, 8 -/* B86580 8010F3E0 ACB802C0 */ sw $t8, 0x2c0($a1) -/* B86584 8010F3E4 AC400004 */ sw $zero, 4($v0) -/* B86588 8010F3E8 AC440000 */ sw $a0, ($v0) -/* B8658C 8010F3EC 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86590 8010F3F0 3C18000A */ lui $t8, (0x000A01E0 >> 16) # lui $t8, 0xa -/* B86594 8010F3F4 371801E0 */ ori $t8, (0x000A01E0 & 0xFFFF) # ori $t8, $t8, 0x1e0 -/* B86598 8010F3F8 24590008 */ addiu $t9, $v0, 8 -/* B8659C 8010F3FC ACB902C0 */ sw $t9, 0x2c0($a1) -/* B865A0 8010F400 AC400004 */ sw $zero, 4($v0) -/* B865A4 8010F404 AC440000 */ sw $a0, ($v0) -/* B865A8 8010F408 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B865AC 8010F40C 35EF0230 */ ori $t7, (0xF60F0230 & 0xFFFF) # ori $t7, $t7, 0x230 -/* B865B0 8010F410 244A0008 */ addiu $t2, $v0, 8 -/* B865B4 8010F414 ACAA02C0 */ sw $t2, 0x2c0($a1) -/* B865B8 8010F418 AC470004 */ sw $a3, 4($v0) -/* B865BC 8010F41C AC460000 */ sw $a2, ($v0) -/* B865C0 8010F420 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B865C4 8010F424 244B0008 */ addiu $t3, $v0, 8 -/* B865C8 8010F428 ACAB02C0 */ sw $t3, 0x2c0($a1) -/* B865CC 8010F42C AC400004 */ sw $zero, 4($v0) -/* B865D0 8010F430 AC480000 */ sw $t0, ($v0) -/* B865D4 8010F434 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B865D8 8010F438 244C0008 */ addiu $t4, $v0, 8 -/* B865DC 8010F43C ACAC02C0 */ sw $t4, 0x2c0($a1) -/* B865E0 8010F440 AC4D0004 */ sw $t5, 4($v0) -/* B865E4 8010F444 AC490000 */ sw $t1, ($v0) -/* B865E8 8010F448 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B865EC 8010F44C 244E0008 */ addiu $t6, $v0, 8 -/* B865F0 8010F450 ACAE02C0 */ sw $t6, 0x2c0($a1) -/* B865F4 8010F454 AC580004 */ sw $t8, 4($v0) -/* B865F8 8010F458 AC4F0000 */ sw $t7, ($v0) -/* B865FC 8010F45C 8CA202C0 */ lw $v0, 0x2c0($a1) -/* B86600 8010F460 24590008 */ addiu $t9, $v0, 8 -/* B86604 8010F464 ACB902C0 */ sw $t9, 0x2c0($a1) -/* B86608 8010F468 AC400004 */ sw $zero, 4($v0) -/* B8660C 8010F46C AC440000 */ sw $a0, ($v0) -.L8010F470: -/* B86610 8010F470 3C068015 */ lui $a2, %hi(D_80154998) # $a2, 0x8015 -/* B86614 8010F474 24C64998 */ addiu $a2, %lo(D_80154998) # addiu $a2, $a2, 0x4998 -/* B86618 8010F478 27A40050 */ addiu $a0, $sp, 0x50 -/* B8661C 8010F47C 0C031AD5 */ jal Graph_CloseDisps -/* B86620 8010F480 24070DB9 */ li $a3, 3513 -/* B86624 8010F484 8FBF0014 */ lw $ra, 0x14($sp) -/* B86628 8010F488 27BD0068 */ addiu $sp, $sp, 0x68 -/* B8662C 8010F48C 03E00008 */ jr $ra -/* B86630 8010F490 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010F494.s b/asm/non_matchings/code/z_message_PAL/func_8010F494.s deleted file mode 100644 index 70754a88f6..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010F494.s +++ /dev/null @@ -1,86 +0,0 @@ -.rdata -glabel D_801549AC - .asciz "%s" - .balign 4 - -glabel D_801549B0 - .asciz "MESSAGE" - .balign 4 - -glabel D_801549B8 - .asciz "%s" - .balign 4 - -glabel D_801549BC - .asciz "=" - .balign 4 - -glabel D_801549C0 - .asciz "%x" - .balign 4 - -.text -glabel func_8010F494 -/* B86634 8010F494 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* B86638 8010F498 AFB00020 */ sw $s0, 0x20($sp) -/* B8663C 8010F49C 27B0002C */ addiu $s0, $sp, 0x2c -/* B86640 8010F4A0 AFBF0024 */ sw $ra, 0x24($sp) -/* B86644 8010F4A4 AFA40060 */ sw $a0, 0x60($sp) -/* B86648 8010F4A8 AFA50064 */ sw $a1, 0x64($sp) -/* B8664C 8010F4AC 0C03EEE3 */ jal GfxPrint_Init -/* B86650 8010F4B0 02002025 */ move $a0, $s0 -/* B86654 8010F4B4 8FAE0064 */ lw $t6, 0x64($sp) -/* B86658 8010F4B8 02002025 */ move $a0, $s0 -/* B8665C 8010F4BC 0C03EF07 */ jal GfxPrint_Open -/* B86660 8010F4C0 8DC50000 */ lw $a1, ($t6) -/* B86664 8010F4C4 02002025 */ move $a0, $s0 -/* B86668 8010F4C8 24050006 */ li $a1, 6 -/* B8666C 8010F4CC 0C03ED07 */ jal GfxPrint_SetPos -/* B86670 8010F4D0 2406001A */ li $a2, 26 -/* B86674 8010F4D4 240F00FF */ li $t7, 255 -/* B86678 8010F4D8 AFAF0010 */ sw $t7, 0x10($sp) -/* B8667C 8010F4DC 02002025 */ move $a0, $s0 -/* B86680 8010F4E0 240500FF */ li $a1, 255 -/* B86684 8010F4E4 2406003C */ li $a2, 60 -/* B86688 8010F4E8 0C03ECEB */ jal GfxPrint_SetColor -/* B8668C 8010F4EC 00003825 */ move $a3, $zero -/* B86690 8010F4F0 3C058015 */ lui $a1, %hi(D_801549AC) # $a1, 0x8015 -/* B86694 8010F4F4 3C068015 */ lui $a2, %hi(D_801549B0) # $a2, 0x8015 -/* B86698 8010F4F8 24C649B0 */ addiu $a2, %lo(D_801549B0) # addiu $a2, $a2, 0x49b0 -/* B8669C 8010F4FC 24A549AC */ addiu $a1, %lo(D_801549AC) # addiu $a1, $a1, 0x49ac -/* B866A0 8010F500 0C03EF2D */ jal GfxPrint_Printf -/* B866A4 8010F504 02002025 */ move $a0, $s0 -/* B866A8 8010F508 02002025 */ move $a0, $s0 -/* B866AC 8010F50C 2405000E */ li $a1, 14 -/* B866B0 8010F510 0C03ED07 */ jal GfxPrint_SetPos -/* B866B4 8010F514 2406001A */ li $a2, 26 -/* B866B8 8010F518 3C058015 */ lui $a1, %hi(D_801549B8) # $a1, 0x8015 -/* B866BC 8010F51C 3C068015 */ lui $a2, %hi(D_801549BC) # $a2, 0x8015 -/* B866C0 8010F520 24C649BC */ addiu $a2, %lo(D_801549BC) # addiu $a2, $a2, 0x49bc -/* B866C4 8010F524 24A549B8 */ addiu $a1, %lo(D_801549B8) # addiu $a1, $a1, 0x49b8 -/* B866C8 8010F528 0C03EF2D */ jal GfxPrint_Printf -/* B866CC 8010F52C 02002025 */ move $a0, $s0 -/* B866D0 8010F530 02002025 */ move $a0, $s0 -/* B866D4 8010F534 24050010 */ li $a1, 16 -/* B866D8 8010F538 0C03ED07 */ jal GfxPrint_SetPos -/* B866DC 8010F53C 2406001A */ li $a2, 26 -/* B866E0 8010F540 8FB80060 */ lw $t8, 0x60($sp) -/* B866E4 8010F544 3C060001 */ lui $a2, 1 -/* B866E8 8010F548 3C058015 */ lui $a1, %hi(D_801549C0) # $a1, 0x8015 -/* B866EC 8010F54C 00D83021 */ addu $a2, $a2, $t8 -/* B866F0 8010F550 94C603D0 */ lhu $a2, 0x3d0($a2) -/* B866F4 8010F554 24A549C0 */ addiu $a1, %lo(D_801549C0) # addiu $a1, $a1, 0x49c0 -/* B866F8 8010F558 0C03EF2D */ jal GfxPrint_Printf -/* B866FC 8010F55C 02002025 */ move $a0, $s0 -/* B86700 8010F560 0C03EF19 */ jal GfxPrint_Close -/* B86704 8010F564 02002025 */ move $a0, $s0 -/* B86708 8010F568 8FB90064 */ lw $t9, 0x64($sp) -/* B8670C 8010F56C 02002025 */ move $a0, $s0 -/* B86710 8010F570 0C03EF05 */ jal GfxPrint_Destroy -/* B86714 8010F574 AF220000 */ sw $v0, ($t9) -/* B86718 8010F578 8FBF0024 */ lw $ra, 0x24($sp) -/* B8671C 8010F57C 8FB00020 */ lw $s0, 0x20($sp) -/* B86720 8010F580 27BD0060 */ addiu $sp, $sp, 0x60 -/* B86724 8010F584 03E00008 */ jr $ra -/* B86728 8010F588 00000000 */ nop - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010F58C.s b/asm/non_matchings/code/z_message_PAL/func_8010F58C.s deleted file mode 100644 index cb5f7188d7..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010F58C.s +++ /dev/null @@ -1,102 +0,0 @@ -.rdata -glabel D_801549C4 - .asciz "../z_message_PAL.c" - .balign 4 - -glabel D_801549D8 - .asciz "../z_message_PAL.c" - .balign 4 - -.text -glabel func_8010F58C -/* B8672C 8010F58C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B86730 8010F590 AFBF001C */ sw $ra, 0x1c($sp) -/* B86734 8010F594 AFB10018 */ sw $s1, 0x18($sp) -/* B86738 8010F598 AFB00014 */ sw $s0, 0x14($sp) -/* B8673C 8010F59C 8C850000 */ lw $a1, ($a0) -/* B86740 8010F5A0 00808825 */ move $s1, $a0 -/* B86744 8010F5A4 3C068015 */ lui $a2, %hi(D_801549C4) # $a2, 0x8015 -/* B86748 8010F5A8 24C649C4 */ addiu $a2, %lo(D_801549C4) # addiu $a2, $a2, 0x49c4 -/* B8674C 8010F5AC 27A40038 */ addiu $a0, $sp, 0x38 -/* B86750 8010F5B0 24070DE2 */ li $a3, 3554 -/* B86754 8010F5B4 0C031AB1 */ jal Graph_OpenDisps -/* B86758 8010F5B8 00A08025 */ move $s0, $a1 -/* B8675C 8010F5BC 3C0E8016 */ lui $t6, %hi(gSaveContext+0xf40) # $t6, 0x8016 -/* B86760 8010F5C0 91CEF5A0 */ lbu $t6, %lo(gSaveContext+0xf40)($t6) -/* B86764 8010F5C4 27A4004E */ addiu $a0, $sp, 0x4e -/* B86768 8010F5C8 A7AE004E */ sh $t6, 0x4e($sp) -/* B8676C 8010F5CC 0C043CB3 */ jal func_8010F2CC -/* B86770 8010F5D0 8E250000 */ lw $a1, ($s1) -/* B86774 8010F5D4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* B86778 8010F5D8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* B8677C 8010F5DC 3C190001 */ lui $t9, 1 -/* B86780 8010F5E0 0331C821 */ addu $t9, $t9, $s1 -/* B86784 8010F5E4 85F812D4 */ lh $t8, 0x12d4($t7) -/* B86788 8010F5E8 5300001E */ beql $t8, $zero, .L8010F664 -/* B8678C 8010F5EC 8E0402C0 */ lw $a0, 0x2c0($s0) -/* B86790 8010F5F0 973903D0 */ lhu $t9, 0x3d0($t9) -/* B86794 8010F5F4 5320001B */ beql $t9, $zero, .L8010F664 -/* B86798 8010F5F8 8E0402C0 */ lw $a0, 0x2c0($s0) -/* B8679C 8010F5FC 8E0402C0 */ lw $a0, 0x2c0($s0) -/* B867A0 8010F600 0C031B08 */ jal Graph_GfxPlusOne -/* B867A4 8010F604 AFA40050 */ sw $a0, 0x50($sp) -/* B867A8 8010F608 AFA20054 */ sw $v0, 0x54($sp) -/* B867AC 8010F60C 8E0302B0 */ lw $v1, 0x2b0($s0) -/* B867B0 8010F610 3C09DE00 */ lui $t1, 0xde00 -/* B867B4 8010F614 02202025 */ move $a0, $s1 -/* B867B8 8010F618 24680008 */ addiu $t0, $v1, 8 -/* B867BC 8010F61C AE0802B0 */ sw $t0, 0x2b0($s0) -/* B867C0 8010F620 AC690000 */ sw $t1, ($v1) -/* B867C4 8010F624 8FAA0054 */ lw $t2, 0x54($sp) -/* B867C8 8010F628 27A50054 */ addiu $a1, $sp, 0x54 -/* B867CC 8010F62C 0C043D25 */ jal func_8010F494 -/* B867D0 8010F630 AC6A0004 */ sw $t2, 4($v1) -/* B867D4 8010F634 8FAB0054 */ lw $t3, 0x54($sp) -/* B867D8 8010F638 3C0DDF00 */ lui $t5, 0xdf00 -/* B867DC 8010F63C 256C0008 */ addiu $t4, $t3, 8 -/* B867E0 8010F640 AFAC0054 */ sw $t4, 0x54($sp) -/* B867E4 8010F644 AD600004 */ sw $zero, 4($t3) -/* B867E8 8010F648 AD6D0000 */ sw $t5, ($t3) -/* B867EC 8010F64C 8FA50054 */ lw $a1, 0x54($sp) -/* B867F0 8010F650 0C031B0A */ jal Graph_BranchDlist -/* B867F4 8010F654 8FA40050 */ lw $a0, 0x50($sp) -/* B867F8 8010F658 8FAE0054 */ lw $t6, 0x54($sp) -/* B867FC 8010F65C AE0E02C0 */ sw $t6, 0x2c0($s0) -/* B86800 8010F660 8E0402C0 */ lw $a0, 0x2c0($s0) -.L8010F664: -/* B86804 8010F664 0C031B08 */ jal Graph_GfxPlusOne -/* B86808 8010F668 AFA40050 */ sw $a0, 0x50($sp) -/* B8680C 8010F66C AFA20054 */ sw $v0, 0x54($sp) -/* B86810 8010F670 8E0302B0 */ lw $v1, 0x2b0($s0) -/* B86814 8010F674 3C18DE00 */ lui $t8, 0xde00 -/* B86818 8010F678 02202025 */ move $a0, $s1 -/* B8681C 8010F67C 246F0008 */ addiu $t7, $v1, 8 -/* B86820 8010F680 AE0F02B0 */ sw $t7, 0x2b0($s0) -/* B86824 8010F684 AC780000 */ sw $t8, ($v1) -/* B86828 8010F688 8FB90054 */ lw $t9, 0x54($sp) -/* B8682C 8010F68C 27A50054 */ addiu $a1, $sp, 0x54 -/* B86830 8010F690 0C0430E7 */ jal func_8010C39C -/* B86834 8010F694 AC790004 */ sw $t9, 4($v1) -/* B86838 8010F698 8FA80054 */ lw $t0, 0x54($sp) -/* B8683C 8010F69C 3C0ADF00 */ lui $t2, 0xdf00 -/* B86840 8010F6A0 25090008 */ addiu $t1, $t0, 8 -/* B86844 8010F6A4 AFA90054 */ sw $t1, 0x54($sp) -/* B86848 8010F6A8 AD000004 */ sw $zero, 4($t0) -/* B8684C 8010F6AC AD0A0000 */ sw $t2, ($t0) -/* B86850 8010F6B0 8FA50054 */ lw $a1, 0x54($sp) -/* B86854 8010F6B4 0C031B0A */ jal Graph_BranchDlist -/* B86858 8010F6B8 8FA40050 */ lw $a0, 0x50($sp) -/* B8685C 8010F6BC 8FAB0054 */ lw $t3, 0x54($sp) -/* B86860 8010F6C0 3C068015 */ lui $a2, %hi(D_801549D8) # $a2, 0x8015 -/* B86864 8010F6C4 24C649D8 */ addiu $a2, %lo(D_801549D8) # addiu $a2, $a2, 0x49d8 -/* B86868 8010F6C8 AE0B02C0 */ sw $t3, 0x2c0($s0) -/* B8686C 8010F6CC 8E250000 */ lw $a1, ($s1) -/* B86870 8010F6D0 27A40038 */ addiu $a0, $sp, 0x38 -/* B86874 8010F6D4 0C031AD5 */ jal Graph_CloseDisps -/* B86878 8010F6D8 24070DFE */ li $a3, 3582 -/* B8687C 8010F6DC 8FBF001C */ lw $ra, 0x1c($sp) -/* B86880 8010F6E0 8FB00014 */ lw $s0, 0x14($sp) -/* B86884 8010F6E4 8FB10018 */ lw $s1, 0x18($sp) -/* B86888 8010F6E8 03E00008 */ jr $ra -/* B8688C 8010F6EC 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/code/z_message_PAL/func_8010F6F0.s b/asm/non_matchings/code/z_message_PAL/func_8010F6F0.s deleted file mode 100644 index 10d5bcb997..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8010F6F0.s +++ /dev/null @@ -1,980 +0,0 @@ -.rdata -glabel D_801549EC - .asciz "msgno=%d\n" - .balign 4 - -glabel D_801549F8 - # Message found!!! = %x - .asciz " メッセージが,見つかった!!! = %x\n" - .balign 4 - -glabel D_80154A20 - .asciz "dxpos=%d dypos=%d dypos1 dypos2=%d\n" - .balign 4 - -glabel D_80154A48 - .asciz "message->msg_disp_type=%x\n" - .balign 4 - -glabel D_80154A64 - .asciz "OCARINA_MODE=%d -> " - .balign 4 - -glabel D_80154A78 - .asciz "InRaceSeq=%d(%d) OCARINA_MODE=%d --> " - .balign 4 - -glabel D_80154AA0 - .asciz "OCARINA_MODE=%d\n" - .balign 4 - -glabel D_80154AB4 - .asciz "select=%d\n" - .balign 4 - -glabel D_80154AC0 - .asciz "\x1b[32m" - .balign 4 - -glabel D_80154AC8 - .asciz "day_time=%x active_camera=%d " - .balign 4 - -glabel D_80154AE8 - .asciz "=== day_time=%x " - .balign 4 - -glabel D_80154AFC - .asciz "\x1b[m" - .balign 4 - -glabel D_80154B00 - .asciz "OCARINA_MODE=%d chk_ocarina_no=%d\n" - .balign 4 - -.late_rodata -glabel jtbl_80154CC4 - .word L8010F8F8 - .word L8010FCE0 - .word L8010FCF0 - .word L8010FD24 - .word L8010FD80 - .word L8010FDB0 - .word L8010FE10 - .word L8010FE58 - -.text -glabel func_8010F6F0 -/* B86890 8010F6F0 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B86894 8010F6F4 AFBF001C */ sw $ra, 0x1c($sp) -/* B86898 8010F6F8 AFA40058 */ sw $a0, 0x58($sp) -/* B8689C 8010F6FC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B868A0 8010F700 8C8F1C44 */ lw $t7, 0x1c44($a0) -/* B868A4 8010F704 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B868A8 8010F708 8D260000 */ lw $a2, ($t1) -/* B868AC 8010F70C AFAF004C */ sw $t7, 0x4c($sp) -/* B868B0 8010F710 24820014 */ addiu $v0, $a0, 0x14 -/* B868B4 8010F714 84D812D4 */ lh $t8, 0x12d4($a2) -/* B868B8 8010F718 5300004E */ beql $t8, $zero, .L8010F854 -/* B868BC 8010F71C 8FB80058 */ lw $t8, 0x58($sp) -/* B868C0 8010F720 9459000C */ lhu $t9, 0xc($v0) -/* B868C4 8010F724 2401FBFF */ li $at, -1025 -/* B868C8 8010F728 03215027 */ nor $t2, $t9, $at -/* B868CC 8010F72C 5540001D */ bnezl $t2, .L8010F7A4 -/* B868D0 8010F730 84D90530 */ lh $t9, 0x530($a2) -/* B868D4 8010F734 944B0000 */ lhu $t3, ($v0) -/* B868D8 8010F738 2401FFDF */ li $at, -33 -/* B868DC 8010F73C 3C048015 */ lui $a0, %hi(D_801549EC) # $a0, 0x8015 -/* B868E0 8010F740 01616027 */ nor $t4, $t3, $at -/* B868E4 8010F744 15800016 */ bnez $t4, .L8010F7A0 -/* B868E8 8010F748 248449EC */ addiu $a0, %lo(D_801549EC) # addiu $a0, $a0, 0x49ec -/* B868EC 8010F74C 3C058015 */ lui $a1, %hi(D_80153D78) # $a1, 0x8015 -/* B868F0 8010F750 0C00084C */ jal osSyncPrintf -/* B868F4 8010F754 94A53D78 */ lhu $a1, %lo(D_80153D78)($a1) -/* B868F8 8010F758 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B868FC 8010F75C 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B86900 8010F760 8D2D0000 */ lw $t5, ($t1) -/* B86904 8010F764 8FA40058 */ lw $a0, 0x58($sp) -/* B86908 8010F768 00003025 */ move $a2, $zero -/* B8690C 8010F76C 0C042DA0 */ jal func_8010B680 -/* B86910 8010F770 95A50532 */ lhu $a1, 0x532($t5) -/* B86914 8010F774 3C0F8015 */ lui $t7, %hi(D_80153D78) # $t7, 0x8015 -/* B86918 8010F778 95EF3D78 */ lhu $t7, %lo(D_80153D78)($t7) -/* B8691C 8010F77C 2401000A */ li $at, 10 -/* B86920 8010F780 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B86924 8010F784 25F80001 */ addiu $t8, $t7, 1 -/* B86928 8010F788 0301001A */ div $zero, $t8, $at -/* B8692C 8010F78C 00007010 */ mfhi $t6 -/* B86930 8010F790 3C018015 */ lui $at, %hi(D_80153D78) # $at, 0x8015 -/* B86934 8010F794 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B86938 8010F798 A42E3D78 */ sh $t6, %lo(D_80153D78)($at) -/* B8693C 8010F79C 8D260000 */ lw $a2, ($t1) -.L8010F7A0: -/* B86940 8010F7A0 84D90530 */ lh $t9, 0x530($a2) -.L8010F7A4: -/* B86944 8010F7A4 5320002B */ beql $t9, $zero, .L8010F854 -/* B86948 8010F7A8 8FB80058 */ lw $t8, 0x58($sp) -/* B8694C 8010F7AC 84C50532 */ lh $a1, 0x532($a2) -/* B86950 8010F7B0 34078000 */ li $a3, 32768 -/* B86954 8010F7B4 3C088015 */ lui $t0, %hi(D_801538F0) # $t0, 0x8015 -/* B86958 8010F7B8 10E50025 */ beq $a3, $a1, .L8010F850 -/* B8695C 8010F7BC 250838F0 */ addiu $t0, %lo(D_801538F0) # addiu $t0, $t0, 0x38f0 -/* B86960 8010F7C0 3404FFFD */ li $a0, 65533 -/* B86964 8010F7C4 8D020000 */ lw $v0, ($t0) -.L8010F7C8: -/* B86968 8010F7C8 24AF0001 */ addiu $t7, $a1, 1 -/* B8696C 8010F7CC 94430000 */ lhu $v1, ($v0) -/* B86970 8010F7D0 5083001B */ beql $a0, $v1, .L8010F840 -/* B86974 8010F7D4 A4CF0532 */ sh $t7, 0x532($a2) -.L8010F7D8: -/* B86978 8010F7D8 54650015 */ bnel $v1, $a1, .L8010F830 -/* B8697C 8010F7DC 94430008 */ lhu $v1, 8($v0) -/* B86980 8010F7E0 3C048015 */ lui $a0, %hi(D_801549F8) # $a0, 0x8015 -/* B86984 8010F7E4 0C00084C */ jal osSyncPrintf -/* B86988 8010F7E8 248449F8 */ addiu $a0, %lo(D_801549F8) # addiu $a0, $a0, 0x49f8 -/* B8698C 8010F7EC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B86990 8010F7F0 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B86994 8010F7F4 8D2A0000 */ lw $t2, ($t1) -/* B86998 8010F7F8 8FA40058 */ lw $a0, 0x58($sp) -/* B8699C 8010F7FC 00003025 */ move $a2, $zero -/* B869A0 8010F800 0C042DA0 */ jal func_8010B680 -/* B869A4 8010F804 95450532 */ lhu $a1, 0x532($t2) -/* B869A8 8010F808 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B869AC 8010F80C 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B869B0 8010F810 8D260000 */ lw $a2, ($t1) -/* B869B4 8010F814 84CB0532 */ lh $t3, 0x532($a2) -/* B869B8 8010F818 256C0001 */ addiu $t4, $t3, 1 -/* B869BC 8010F81C A4CC0532 */ sh $t4, 0x532($a2) -/* B869C0 8010F820 8D2D0000 */ lw $t5, ($t1) -/* B869C4 8010F824 100002F5 */ b .L801103FC -/* B869C8 8010F828 A5A00530 */ sh $zero, 0x530($t5) -/* B869CC 8010F82C 94430008 */ lhu $v1, 8($v0) -.L8010F830: -/* B869D0 8010F830 24420008 */ addiu $v0, $v0, 8 -/* B869D4 8010F834 1483FFE8 */ bne $a0, $v1, .L8010F7D8 -/* B869D8 8010F838 00000000 */ nop -/* B869DC 8010F83C A4CF0532 */ sh $t7, 0x532($a2) -.L8010F840: -/* B869E0 8010F840 8D260000 */ lw $a2, ($t1) -/* B869E4 8010F844 84C50532 */ lh $a1, 0x532($a2) -/* B869E8 8010F848 54E5FFDF */ bnel $a3, $a1, .L8010F7C8 -/* B869EC 8010F84C 8D020000 */ lw $v0, ($t0) -.L8010F850: -/* B869F0 8010F850 8FB80058 */ lw $t8, 0x58($sp) -.L8010F854: -/* B869F4 8010F854 34018000 */ li $at, 32768 -/* B869F8 8010F858 270E20D8 */ addiu $t6, $t8, 0x20d8 -/* B869FC 8010F85C AFAE0030 */ sw $t6, 0x30($sp) -/* B86A00 8010F860 01C14021 */ addu $t0, $t6, $at -/* B86A04 8010F864 8D196300 */ lw $t9, 0x6300($t0) -/* B86A08 8010F868 532002E5 */ beql $t9, $zero, .L80110400 -/* B86A0C 8010F86C 8FBF001C */ lw $ra, 0x1c($sp) -/* B86A10 8010F870 91056304 */ lbu $a1, 0x6304($t0) -/* B86A14 8010F874 28A10036 */ slti $at, $a1, 0x36 -/* B86A18 8010F878 14200008 */ bnez $at, .L8010F89C -/* B86A1C 8010F87C 24010036 */ li $at, 54 -/* B86A20 8010F880 10A1020A */ beq $a1, $at, .L801100AC -/* B86A24 8010F884 8FAC0030 */ lw $t4, 0x30($sp) -/* B86A28 8010F888 24010037 */ li $at, 55 -/* B86A2C 8010F88C 50A102DC */ beql $a1, $at, .L80110400 -/* B86A30 8010F890 8FBF001C */ lw $ra, 0x1c($sp) -/* B86A34 8010F894 100002D6 */ b .L801103F0 -/* B86A38 8010F898 8FAC0030 */ lw $t4, 0x30($sp) -.L8010F89C: -/* B86A3C 8010F89C 28A10035 */ slti $at, $a1, 0x35 -/* B86A40 8010F8A0 14200005 */ bnez $at, .L8010F8B8 -/* B86A44 8010F8A4 24010035 */ li $at, 53 -/* B86A48 8010F8A8 50A10185 */ beql $a1, $at, .L8010FEC0 -/* B86A4C 8010F8AC 910263E4 */ lbu $v0, 0x63e4($t0) -/* B86A50 8010F8B0 100002CF */ b .L801103F0 -/* B86A54 8010F8B4 8FAC0030 */ lw $t4, 0x30($sp) -.L8010F8B8: -/* B86A58 8010F8B8 28A10009 */ slti $at, $a1, 9 -/* B86A5C 8010F8BC 14200006 */ bnez $at, .L8010F8D8 -/* B86A60 8010F8C0 24AAFFFF */ addiu $t2, $a1, -1 -/* B86A64 8010F8C4 24010034 */ li $at, 52 -/* B86A68 8010F8C8 10A1016F */ beq $a1, $at, .L8010FE88 -/* B86A6C 8010F8CC 8FA40058 */ lw $a0, 0x58($sp) -/* B86A70 8010F8D0 100002C7 */ b .L801103F0 -/* B86A74 8010F8D4 8FAC0030 */ lw $t4, 0x30($sp) -.L8010F8D8: -/* B86A78 8010F8D8 2D410008 */ sltiu $at, $t2, 8 -/* B86A7C 8010F8DC 102002C3 */ beqz $at, .L801103EC -/* B86A80 8010F8E0 000A5080 */ sll $t2, $t2, 2 -/* B86A84 8010F8E4 3C018015 */ lui $at, %hi(jtbl_80154CC4) -/* B86A88 8010F8E8 002A0821 */ addu $at, $at, $t2 -/* B86A8C 8010F8EC 8C2A4CC4 */ lw $t2, %lo(jtbl_80154CC4)($at) -/* B86A90 8010F8F0 01400008 */ jr $t2 -/* B86A94 8010F8F4 00000000 */ nop -glabel L8010F8F8 -/* B86A98 8010F8F8 3C048015 */ lui $a0, %hi(D_8014B2F4) # $a0, 0x8015 -/* B86A9C 8010F8FC 2484B2F4 */ addiu $a0, %lo(D_8014B2F4) # addiu $a0, $a0, -0x4d0c -/* B86AA0 8010F900 908B0000 */ lbu $t3, ($a0) -/* B86AA4 8010F904 24010040 */ li $at, 64 -/* B86AA8 8010F908 00001825 */ move $v1, $zero -/* B86AAC 8010F90C 256C0001 */ addiu $t4, $t3, 1 -/* B86AB0 8010F910 A08C0000 */ sb $t4, ($a0) -/* B86AB4 8010F914 84C204B2 */ lh $v0, 0x4b2($a2) -/* B86AB8 8010F918 318D00FF */ andi $t5, $t4, 0xff -/* B86ABC 8010F91C 14410005 */ bne $v0, $at, .L8010F934 -/* B86AC0 8010F920 29A10004 */ slti $at, $t5, 4 -/* B86AC4 8010F924 14200013 */ bnez $at, .L8010F974 -/* B86AC8 8010F928 00000000 */ nop -/* B86ACC 8010F92C 10000011 */ b .L8010F974 -/* B86AD0 8010F930 24030001 */ li $v1, 1 -.L8010F934: -/* B86AD4 8010F934 14400005 */ bnez $v0, .L8010F94C -/* B86AD8 8010F938 8FAF0058 */ lw $t7, 0x58($sp) -/* B86ADC 8010F93C 85F800A4 */ lh $t8, 0xa4($t7) -/* B86AE0 8010F940 24010045 */ li $at, 69 -/* B86AE4 8010F944 57010004 */ bnel $t8, $at, .L8010F958 -/* B86AE8 8010F948 908E0000 */ lbu $t6, ($a0) -.L8010F94C: -/* B86AEC 8010F94C 10000009 */ b .L8010F974 -/* B86AF0 8010F950 24030001 */ li $v1, 1 -/* B86AF4 8010F954 908E0000 */ lbu $t6, ($a0) -.L8010F958: -/* B86AF8 8010F958 29C10004 */ slti $at, $t6, 4 -/* B86AFC 8010F95C 50200005 */ beql $at, $zero, .L8010F974 -/* B86B00 8010F960 24030001 */ li $v1, 1 -/* B86B04 8010F964 8D196408 */ lw $t9, 0x6408($t0) -/* B86B08 8010F968 17200002 */ bnez $t9, .L8010F974 -/* B86B0C 8010F96C 00000000 */ nop -/* B86B10 8010F970 24030001 */ li $v1, 1 -.L8010F974: -/* B86B14 8010F974 506002A2 */ beql $v1, $zero, .L80110400 -/* B86B18 8010F978 8FBF001C */ lw $ra, 0x1c($sp) -/* B86B1C 8010F97C 8D0A6408 */ lw $t2, 0x6408($t0) -/* B86B20 8010F980 8FA40058 */ lw $a0, 0x58($sp) -/* B86B24 8010F984 27A70040 */ addiu $a3, $sp, 0x40 -/* B86B28 8010F988 5140002E */ beql $t2, $zero, .L8010FA44 -/* B86B2C 8010F98C 84D90B24 */ lh $t9, 0xb24($a2) -/* B86B30 8010F990 8C851C44 */ lw $a1, 0x1c44($a0) -/* B86B34 8010F994 AFA80024 */ sw $t0, 0x24($sp) -/* B86B38 8010F998 0C00BCDD */ jal func_8002F374 -/* B86B3C 8010F99C 27A60044 */ addiu $a2, $sp, 0x44 -/* B86B40 8010F9A0 8FA80024 */ lw $t0, 0x24($sp) -/* B86B44 8010F9A4 8FA40058 */ lw $a0, 0x58($sp) -/* B86B48 8010F9A8 27A60044 */ addiu $a2, $sp, 0x44 -/* B86B4C 8010F9AC 27A7003E */ addiu $a3, $sp, 0x3e -/* B86B50 8010F9B0 0C00BCDD */ jal func_8002F374 -/* B86B54 8010F9B4 8D056408 */ lw $a1, 0x6408($t0) -/* B86B58 8010F9B8 87A2003E */ lh $v0, 0x3e($sp) -/* B86B5C 8010F9BC 87A70040 */ lh $a3, 0x40($sp) -/* B86B60 8010F9C0 8FA80024 */ lw $t0, 0x24($sp) -/* B86B64 8010F9C4 00E2082A */ slt $at, $a3, $v0 -/* B86B68 8010F9C8 14200009 */ bnez $at, .L8010F9F0 -/* B86B6C 8010F9CC 0047C023 */ subu $t8, $v0, $a3 -/* B86B70 8010F9D0 00E26023 */ subu $t4, $a3, $v0 -/* B86B74 8010F9D4 05810003 */ bgez $t4, .L8010F9E4 -/* B86B78 8010F9D8 000C6843 */ sra $t5, $t4, 1 -/* B86B7C 8010F9DC 25810001 */ addiu $at, $t4, 1 -/* B86B80 8010F9E0 00016843 */ sra $t5, $at, 1 -.L8010F9E4: -/* B86B84 8010F9E4 01A27821 */ addu $t7, $t5, $v0 -/* B86B88 8010F9E8 10000009 */ b .L8010FA10 -/* B86B8C 8010F9EC A7AF0042 */ sh $t7, 0x42($sp) -.L8010F9F0: -/* B86B90 8010F9F0 07010003 */ bgez $t8, .L8010FA00 -/* B86B94 8010F9F4 00187043 */ sra $t6, $t8, 1 -/* B86B98 8010F9F8 27010001 */ addiu $at, $t8, 1 -/* B86B9C 8010F9FC 00017043 */ sra $t6, $at, 1 -.L8010FA00: -/* B86BA0 8010FA00 01C72021 */ addu $a0, $t6, $a3 -/* B86BA4 8010FA04 00042400 */ sll $a0, $a0, 0x10 -/* B86BA8 8010FA08 00042403 */ sra $a0, $a0, 0x10 -/* B86BAC 8010FA0C A7A40042 */ sh $a0, 0x42($sp) -.L8010FA10: -/* B86BB0 8010FA10 3C048015 */ lui $a0, %hi(D_80154A20) # $a0, 0x8015 -/* B86BB4 8010FA14 24844A20 */ addiu $a0, %lo(D_80154A20) # addiu $a0, $a0, 0x4a20 -/* B86BB8 8010FA18 87A50044 */ lh $a1, 0x44($sp) -/* B86BBC 8010FA1C 87A60042 */ lh $a2, 0x42($sp) -/* B86BC0 8010FA20 AFA20010 */ sw $v0, 0x10($sp) -/* B86BC4 8010FA24 0C00084C */ jal osSyncPrintf -/* B86BC8 8010FA28 AFA80024 */ sw $t0, 0x24($sp) -/* B86BCC 8010FA2C 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B86BD0 8010FA30 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B86BD4 8010FA34 87A40042 */ lh $a0, 0x42($sp) -/* B86BD8 8010FA38 10000007 */ b .L8010FA58 -/* B86BDC 8010FA3C 8FA80024 */ lw $t0, 0x24($sp) -/* B86BE0 8010FA40 84D90B24 */ lh $t9, 0xb24($a2) -.L8010FA44: -/* B86BE4 8010FA44 A4D90F14 */ sh $t9, 0xf14($a2) -/* B86BE8 8010FA48 8D260000 */ lw $a2, ($t1) -/* B86BEC 8010FA4C 84CA0B26 */ lh $t2, 0xb26($a2) -/* B86BF0 8010FA50 A4CA0F16 */ sh $t2, 0xf16($a2) -/* B86BF4 8010FA54 87A40042 */ lh $a0, 0x42($sp) -.L8010FA58: -/* B86BF8 8010FA58 910262FE */ lbu $v0, 0x62fe($t0) -/* B86BFC 8010FA5C 910362FD */ lbu $v1, 0x62fd($t0) -/* B86C00 8010FA60 24010001 */ li $at, 1 -/* B86C04 8010FA64 1440003E */ bnez $v0, .L8010FB60 -/* B86C08 8010FA68 00000000 */ nop -/* B86C0C 8010FA6C 8D260000 */ lw $a2, ($t1) -/* B86C10 8010FA70 8FAC0058 */ lw $t4, 0x58($sp) -/* B86C14 8010FA74 84CB04B2 */ lh $t3, 0x4b2($a2) -/* B86C18 8010FA78 55600006 */ bnezl $t3, .L8010FA94 -/* B86C1C 8010FA7C 84CD0B4C */ lh $t5, 0xb4c($a2) -/* B86C20 8010FA80 858200A4 */ lh $v0, 0xa4($t4) -/* B86C24 8010FA84 24010045 */ li $at, 69 -/* B86C28 8010FA88 54410011 */ bnel $v0, $at, .L8010FAD0 -/* B86C2C 8010FA8C 24010020 */ li $at, 32 -/* B86C30 8010FA90 84CD0B4C */ lh $t5, 0xb4c($a2) -.L8010FA94: -/* B86C34 8010FA94 00031040 */ sll $v0, $v1, 1 -/* B86C38 8010FA98 3C188015 */ lui $t8, %hi(D_80153D18) -/* B86C3C 8010FA9C 008D082A */ slt $at, $a0, $t5 -/* B86C40 8010FAA0 10200007 */ beqz $at, .L8010FAC0 -/* B86C44 8010FAA4 0302C021 */ addu $t8, $t8, $v0 -/* B86C48 8010FAA8 00031040 */ sll $v0, $v1, 1 -/* B86C4C 8010FAAC 3C0F8015 */ lui $t7, %hi(D_80153D0C) -/* B86C50 8010FAB0 01E27821 */ addu $t7, $t7, $v0 -/* B86C54 8010FAB4 85EF3D0C */ lh $t7, %lo(D_80153D0C)($t7) -/* B86C58 8010FAB8 10000041 */ b .L8010FBC0 -/* B86C5C 8010FABC A4CF0B26 */ sh $t7, 0xb26($a2) -.L8010FAC0: -/* B86C60 8010FAC0 87183D18 */ lh $t8, %lo(D_80153D18)($t8) -/* B86C64 8010FAC4 1000003E */ b .L8010FBC0 -/* B86C68 8010FAC8 A4D80B26 */ sh $t8, 0xb26($a2) -/* B86C6C 8010FACC 24010020 */ li $at, 32 -.L8010FAD0: -/* B86C70 8010FAD0 10410005 */ beq $v0, $at, .L8010FAE8 -/* B86C74 8010FAD4 24010021 */ li $at, 33 -/* B86C78 8010FAD8 10410003 */ beq $v0, $at, .L8010FAE8 -/* B86C7C 8010FADC 24010022 */ li $at, 34 -/* B86C80 8010FAE0 54410011 */ bnel $v0, $at, .L8010FB28 -/* B86C84 8010FAE4 84CB0B50 */ lh $t3, 0xb50($a2) -.L8010FAE8: -/* B86C88 8010FAE8 84CE0B4E */ lh $t6, 0xb4e($a2) -/* B86C8C 8010FAEC 00031040 */ sll $v0, $v1, 1 -/* B86C90 8010FAF0 3C0A8015 */ lui $t2, %hi(D_80153D18) -/* B86C94 8010FAF4 008E082A */ slt $at, $a0, $t6 -/* B86C98 8010FAF8 10200007 */ beqz $at, .L8010FB18 -/* B86C9C 8010FAFC 01425021 */ addu $t2, $t2, $v0 -/* B86CA0 8010FB00 00031040 */ sll $v0, $v1, 1 -/* B86CA4 8010FB04 3C198015 */ lui $t9, %hi(D_80153D0C) -/* B86CA8 8010FB08 0322C821 */ addu $t9, $t9, $v0 -/* B86CAC 8010FB0C 87393D0C */ lh $t9, %lo(D_80153D0C)($t9) -/* B86CB0 8010FB10 1000002B */ b .L8010FBC0 -/* B86CB4 8010FB14 A4D90B26 */ sh $t9, 0xb26($a2) -.L8010FB18: -/* B86CB8 8010FB18 854A3D18 */ lh $t2, %lo(D_80153D18)($t2) -/* B86CBC 8010FB1C 10000028 */ b .L8010FBC0 -/* B86CC0 8010FB20 A4CA0B26 */ sh $t2, 0xb26($a2) -/* B86CC4 8010FB24 84CB0B50 */ lh $t3, 0xb50($a2) -.L8010FB28: -/* B86CC8 8010FB28 00031040 */ sll $v0, $v1, 1 -/* B86CCC 8010FB2C 3C0D8015 */ lui $t5, %hi(D_80153D18) -/* B86CD0 8010FB30 008B082A */ slt $at, $a0, $t3 -/* B86CD4 8010FB34 10200007 */ beqz $at, .L8010FB54 -/* B86CD8 8010FB38 01A26821 */ addu $t5, $t5, $v0 -/* B86CDC 8010FB3C 00031040 */ sll $v0, $v1, 1 -/* B86CE0 8010FB40 3C0C8015 */ lui $t4, %hi(D_80153D0C) -/* B86CE4 8010FB44 01826021 */ addu $t4, $t4, $v0 -/* B86CE8 8010FB48 858C3D0C */ lh $t4, %lo(D_80153D0C)($t4) -/* B86CEC 8010FB4C 1000001C */ b .L8010FBC0 -/* B86CF0 8010FB50 A4CC0B26 */ sh $t4, 0xb26($a2) -.L8010FB54: -/* B86CF4 8010FB54 85AD3D18 */ lh $t5, %lo(D_80153D18)($t5) -/* B86CF8 8010FB58 10000019 */ b .L8010FBC0 -/* B86CFC 8010FB5C A4CD0B26 */ sh $t5, 0xb26($a2) -.L8010FB60: -/* B86D00 8010FB60 14410008 */ bne $v0, $at, .L8010FB84 -/* B86D04 8010FB64 00402025 */ move $a0, $v0 -/* B86D08 8010FB68 00031040 */ sll $v0, $v1, 1 -/* B86D0C 8010FB6C 3C0F8015 */ lui $t7, %hi(D_80153D18) -/* B86D10 8010FB70 01E27821 */ addu $t7, $t7, $v0 -/* B86D14 8010FB74 85EF3D18 */ lh $t7, %lo(D_80153D18)($t7) -/* B86D18 8010FB78 8D380000 */ lw $t8, ($t1) -/* B86D1C 8010FB7C 10000010 */ b .L8010FBC0 -/* B86D20 8010FB80 A70F0B26 */ sh $t7, 0xb26($t8) -.L8010FB84: -/* B86D24 8010FB84 24010002 */ li $at, 2 -/* B86D28 8010FB88 14810008 */ bne $a0, $at, .L8010FBAC -/* B86D2C 8010FB8C 00031040 */ sll $v0, $v1, 1 -/* B86D30 8010FB90 00031040 */ sll $v0, $v1, 1 -/* B86D34 8010FB94 3C0E8015 */ lui $t6, %hi(D_80153D24) -/* B86D38 8010FB98 01C27021 */ addu $t6, $t6, $v0 -/* B86D3C 8010FB9C 85CE3D24 */ lh $t6, %lo(D_80153D24)($t6) -/* B86D40 8010FBA0 8D390000 */ lw $t9, ($t1) -/* B86D44 8010FBA4 10000006 */ b .L8010FBC0 -/* B86D48 8010FBA8 A72E0B26 */ sh $t6, 0xb26($t9) -.L8010FBAC: -/* B86D4C 8010FBAC 3C0A8015 */ lui $t2, %hi(D_80153D0C) -/* B86D50 8010FBB0 01425021 */ addu $t2, $t2, $v0 -/* B86D54 8010FBB4 854A3D0C */ lh $t2, %lo(D_80153D0C)($t2) -/* B86D58 8010FBB8 8D2B0000 */ lw $t3, ($t1) -/* B86D5C 8010FBBC A56A0B26 */ sh $t2, 0xb26($t3) -.L8010FBC0: -/* B86D60 8010FBC0 3C0C8015 */ lui $t4, %hi(D_80153D00) -/* B86D64 8010FBC4 01826021 */ addu $t4, $t4, $v0 -/* B86D68 8010FBC8 858C3D00 */ lh $t4, %lo(D_80153D00)($t4) -/* B86D6C 8010FBCC 8D2D0000 */ lw $t5, ($t1) -/* B86D70 8010FBD0 3C188015 */ lui $t8, %hi(D_80153D30) -/* B86D74 8010FBD4 0302C021 */ addu $t8, $t8, $v0 -/* B86D78 8010FBD8 A5AC0B24 */ sh $t4, 0xb24($t5) -/* B86D7C 8010FBDC 8D260000 */ lw $a2, ($t1) -/* B86D80 8010FBE0 87183D30 */ lh $t8, %lo(D_80153D30)($t8) -/* B86D84 8010FBE4 3C048015 */ lui $a0, %hi(D_80154A48) # $a0, 0x8015 -/* B86D88 8010FBE8 84CF0B26 */ lh $t7, 0xb26($a2) -/* B86D8C 8010FBEC 24844A48 */ addiu $a0, %lo(D_80154A48) # addiu $a0, $a0, 0x4a48 -/* B86D90 8010FBF0 01F87021 */ addu $t6, $t7, $t8 -/* B86D94 8010FBF4 A4CE0B16 */ sh $t6, 0xb16($a2) -/* B86D98 8010FBF8 8D260000 */ lw $a2, ($t1) -/* B86D9C 8010FBFC 84D90B26 */ lh $t9, 0xb26($a2) -/* B86DA0 8010FC00 272A0014 */ addiu $t2, $t9, 0x14 -/* B86DA4 8010FC04 A4CA0B1A */ sh $t2, 0xb1a($a2) -/* B86DA8 8010FC08 8D260000 */ lw $a2, ($t1) -/* B86DAC 8010FC0C 84CB0B26 */ lh $t3, 0xb26($a2) -/* B86DB0 8010FC10 256C0020 */ addiu $t4, $t3, 0x20 -/* B86DB4 8010FC14 A4CC0B1C */ sh $t4, 0xb1c($a2) -/* B86DB8 8010FC18 8D260000 */ lw $a2, ($t1) -/* B86DBC 8010FC1C 84CD0B26 */ lh $t5, 0xb26($a2) -/* B86DC0 8010FC20 25AF002C */ addiu $t7, $t5, 0x2c -/* B86DC4 8010FC24 A4CF0B1E */ sh $t7, 0xb1e($a2) -/* B86DC8 8010FC28 910562FC */ lbu $a1, 0x62fc($t0) -/* B86DCC 8010FC2C AFA80024 */ sw $t0, 0x24($sp) -/* B86DD0 8010FC30 0C00084C */ jal osSyncPrintf -/* B86DD4 8010FC34 30A500F0 */ andi $a1, $a1, 0xf0 -/* B86DD8 8010FC38 8FA80024 */ lw $t0, 0x24($sp) -/* B86DDC 8010FC3C 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* B86DE0 8010FC40 24010004 */ li $at, 4 -/* B86DE4 8010FC44 910262FD */ lbu $v0, 0x62fd($t0) -/* B86DE8 8010FC48 2529FA90 */ addiu $t1, %lo(gGameInfo) # addiu $t1, $t1, -0x570 -/* B86DEC 8010FC4C 8FAE0030 */ lw $t6, 0x30($sp) -/* B86DF0 8010FC50 10410002 */ beq $v0, $at, .L8010FC5C -/* B86DF4 8010FC54 24010005 */ li $at, 5 -/* B86DF8 8010FC58 14410015 */ bne $v0, $at, .L8010FCB0 -.L8010FC5C: -/* B86DFC 8010FC5C 24180003 */ li $t8, 3 -/* B86E00 8010FC60 25C17FFF */ addiu $at, $t6, 0x7fff -/* B86E04 8010FC64 A0386305 */ sb $t8, 0x6305($at) -/* B86E08 8010FC68 8D260000 */ lw $a2, ($t1) -/* B86E0C 8010FC6C 240B0100 */ li $t3, 256 -/* B86E10 8010FC70 240D0040 */ li $t5, 64 -/* B86E14 8010FC74 84D90B24 */ lh $t9, 0xb24($a2) -/* B86E18 8010FC78 24020200 */ li $v0, 512 -/* B86E1C 8010FC7C A4D90F14 */ sh $t9, 0xf14($a2) -/* B86E20 8010FC80 8D260000 */ lw $a2, ($t1) -/* B86E24 8010FC84 84CA0B26 */ lh $t2, 0xb26($a2) -/* B86E28 8010FC88 A4CA0F16 */ sh $t2, 0xf16($a2) -/* B86E2C 8010FC8C 8D2C0000 */ lw $t4, ($t1) -/* B86E30 8010FC90 A58B04C0 */ sh $t3, 0x4c0($t4) -/* B86E34 8010FC94 8D2F0000 */ lw $t7, ($t1) -/* B86E38 8010FC98 A5ED04C2 */ sh $t5, 0x4c2($t7) -/* B86E3C 8010FC9C 8D380000 */ lw $t8, ($t1) -/* B86E40 8010FCA0 A70204B4 */ sh $v0, 0x4b4($t8) -/* B86E44 8010FCA4 8D2E0000 */ lw $t6, ($t1) -/* B86E48 8010FCA8 100001D4 */ b .L801103FC -/* B86E4C 8010FCAC A5C204B6 */ sh $v0, 0x4b6($t6) -.L8010FCB0: -/* B86E50 8010FCB0 0C041C91 */ jal func_80107244 -/* B86E54 8010FCB4 8FA40030 */ lw $a0, 0x30($sp) -/* B86E58 8010FCB8 0C03DA47 */ jal Audio_PlaySoundIfNotInCutscene -/* B86E5C 8010FCBC 00002025 */ move $a0, $zero -/* B86E60 8010FCC0 8FB90030 */ lw $t9, 0x30($sp) -/* B86E64 8010FCC4 240A0002 */ li $t2, 2 -/* B86E68 8010FCC8 27217FFF */ addiu $at, $t9, 0x7fff -/* B86E6C 8010FCCC A02063E8 */ sb $zero, 0x63e8($at) -/* B86E70 8010FCD0 8FAB0030 */ lw $t3, 0x30($sp) -/* B86E74 8010FCD4 25617FFF */ addiu $at, $t3, 0x7fff -/* B86E78 8010FCD8 100001C8 */ b .L801103FC -/* B86E7C 8010FCDC A02A6305 */ sb $t2, 0x6305($at) -glabel L8010FCE0 -/* B86E80 8010FCE0 0C041C91 */ jal func_80107244 -/* B86E84 8010FCE4 8FA40030 */ lw $a0, 0x30($sp) -/* B86E88 8010FCE8 100001C5 */ b .L80110400 -/* B86E8C 8010FCEC 8FBF001C */ lw $ra, 0x1c($sp) -glabel L8010FCF0 -/* B86E90 8010FCF0 8FAD0030 */ lw $t5, 0x30($sp) -/* B86E94 8010FCF4 240C0004 */ li $t4, 4 -/* B86E98 8010FCF8 25A17FFF */ addiu $at, $t5, 0x7fff -/* B86E9C 8010FCFC A02C6305 */ sb $t4, 0x6305($at) -/* B86EA0 8010FD00 8D2F0000 */ lw $t7, ($t1) -/* B86EA4 8010FD04 8FA40058 */ lw $a0, 0x58($sp) -/* B86EA8 8010FD08 85F804D2 */ lh $t8, 0x4d2($t7) -/* B86EAC 8010FD0C 570001BC */ bnezl $t8, .L80110400 -/* B86EB0 8010FD10 8FBF001C */ lw $ra, 0x1c($sp) -/* B86EB4 8010FD14 0C021BC0 */ jal Interface_SetDoAction -/* B86EB8 8010FD18 24050010 */ li $a1, 16 -/* B86EBC 8010FD1C 100001B8 */ b .L80110400 -/* B86EC0 8010FD20 8FBF001C */ lw $ra, 0x1c($sp) -glabel L8010FD24 -/* B86EC4 8010FD24 8FA40058 */ lw $a0, 0x58($sp) -/* B86EC8 8010FD28 0C0426CF */ jal func_80109B3C -/* B86ECC 8010FD2C AFA80024 */ sw $t0, 0x24($sp) -/* B86ED0 8010FD30 3C0E8015 */ lui $t6, %hi(D_8014B2F0) # $t6, 0x8015 -/* B86ED4 8010FD34 85CEB2F0 */ lh $t6, %lo(D_8014B2F0)($t6) -/* B86ED8 8010FD38 8FA80024 */ lw $t0, 0x24($sp) -/* B86EDC 8010FD3C 24040001 */ li $a0, 1 -/* B86EE0 8010FD40 11C00004 */ beqz $t6, .L8010FD54 -/* B86EE4 8010FD44 00000000 */ nop -/* B86EE8 8010FD48 0C020978 */ jal Interface_ChangeAlpha -/* B86EEC 8010FD4C AFA80024 */ sw $t0, 0x24($sp) -/* B86EF0 8010FD50 8FA80024 */ lw $t0, 0x24($sp) -.L8010FD54: -/* B86EF4 8010FD54 3C198015 */ lui $t9, %hi(D_80153D74) # $t9, 0x8015 -/* B86EF8 8010FD58 93393D74 */ lbu $t9, %lo(D_80153D74)($t9) -/* B86EFC 8010FD5C 8FAB0030 */ lw $t3, 0x30($sp) -/* B86F00 8010FD60 532001A7 */ beql $t9, $zero, .L80110400 -/* B86F04 8010FD64 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F08 8010FD68 950A63D4 */ lhu $t2, 0x63d4($t0) -/* B86F0C 8010FD6C 25617FFF */ addiu $at, $t3, 0x7fff -/* B86F10 8010FD70 A42A63D3 */ sh $t2, 0x63d3($at) -/* B86F14 8010FD74 3C018015 */ lui $at, %hi(D_80153D74) # $at, 0x8015 -/* B86F18 8010FD78 100001A0 */ b .L801103FC -/* B86F1C 8010FD7C A0203D74 */ sb $zero, %lo(D_80153D74)($at) -glabel L8010FD80 -/* B86F20 8010FD80 910C63E7 */ lbu $t4, 0x63e7($t0) -/* B86F24 8010FD84 8FAF0030 */ lw $t7, 0x30($sp) -/* B86F28 8010FD88 258DFFFF */ addiu $t5, $t4, -1 -/* B86F2C 8010FD8C 25E17FFF */ addiu $at, $t7, 0x7fff -/* B86F30 8010FD90 A02D63E8 */ sb $t5, 0x63e8($at) -/* B86F34 8010FD94 911863E7 */ lbu $t8, 0x63e7($t0) -/* B86F38 8010FD98 57000199 */ bnezl $t8, .L80110400 -/* B86F3C 8010FD9C 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F40 8010FDA0 0C0426CF */ jal func_80109B3C -/* B86F44 8010FDA4 8FA40058 */ lw $a0, 0x58($sp) -/* B86F48 8010FDA8 10000195 */ b .L80110400 -/* B86F4C 8010FDAC 8FBF001C */ lw $ra, 0x1c($sp) -glabel L8010FDB0 -/* B86F50 8010FDB0 910E62FD */ lbu $t6, 0x62fd($t0) -/* B86F54 8010FDB4 24010004 */ li $at, 4 -/* B86F58 8010FDB8 51C10191 */ beql $t6, $at, .L80110400 -/* B86F5C 8010FDBC 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F60 8010FDC0 84D904D2 */ lh $t9, 0x4d2($a2) -/* B86F64 8010FDC4 8FAA0058 */ lw $t2, 0x58($sp) -/* B86F68 8010FDC8 5720018D */ bnezl $t9, .L80110400 -/* B86F6C 8010FDCC 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F70 8010FDD0 954B0020 */ lhu $t3, 0x20($t2) -/* B86F74 8010FDD4 2401BFFF */ li $at, -16385 -/* B86F78 8010FDD8 01616027 */ nor $t4, $t3, $at -/* B86F7C 8010FDDC 55800188 */ bnezl $t4, .L80110400 -/* B86F80 8010FDE0 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F84 8010FDE4 950D63D6 */ lhu $t5, 0x63d6($t0) -/* B86F88 8010FDE8 240F0001 */ li $t7, 1 -/* B86F8C 8010FDEC 3C018015 */ lui $at, %hi(D_8014B300) # $at, 0x8015 -/* B86F90 8010FDF0 55A00183 */ bnezl $t5, .L80110400 -/* B86F94 8010FDF4 8FBF001C */ lw $ra, 0x1c($sp) -/* B86F98 8010FDF8 8FAE0030 */ lw $t6, 0x30($sp) -/* B86F9C 8010FDFC A02FB300 */ sb $t7, %lo(D_8014B300)($at) -/* B86FA0 8010FE00 951863D4 */ lhu $t8, 0x63d4($t0) -/* B86FA4 8010FE04 25C17FFF */ addiu $at, $t6, 0x7fff -/* B86FA8 8010FE08 1000017C */ b .L801103FC -/* B86FAC 8010FE0C A43863D3 */ sh $t8, 0x63d3($at) -glabel L8010FE10 -/* B86FB0 8010FE10 84D904D2 */ lh $t9, 0x4d2($a2) -/* B86FB4 8010FE14 8FA40058 */ lw $a0, 0x58($sp) -/* B86FB8 8010FE18 57200179 */ bnezl $t9, .L80110400 -/* B86FBC 8010FE1C 8FBF001C */ lw $ra, 0x1c($sp) -/* B86FC0 8010FE20 0C041AF2 */ jal func_80106BC8 -/* B86FC4 8010FE24 AFA80024 */ sw $t0, 0x24($sp) -/* B86FC8 8010FE28 10400174 */ beqz $v0, .L801103FC -/* B86FCC 8010FE2C 8FA80024 */ lw $t0, 0x24($sp) -/* B86FD0 8010FE30 8FAB0030 */ lw $t3, 0x30($sp) -/* B86FD4 8010FE34 240A0006 */ li $t2, 6 -/* B86FD8 8010FE38 25617FFF */ addiu $at, $t3, 0x7fff -/* B86FDC 8010FE3C A02A6305 */ sb $t2, 0x6305($at) -/* B86FE0 8010FE40 8FAF0030 */ lw $t7, 0x30($sp) -/* B86FE4 8010FE44 950C63D2 */ lhu $t4, 0x63d2($t0) -/* B86FE8 8010FE48 25E17FFF */ addiu $at, $t7, 0x7fff -/* B86FEC 8010FE4C 258D0001 */ addiu $t5, $t4, 1 -/* B86FF0 8010FE50 1000016A */ b .L801103FC -/* B86FF4 8010FE54 A42D63D3 */ sh $t5, 0x63d3($at) -glabel L8010FE58 -/* B86FF8 8010FE58 911863E7 */ lbu $t8, 0x63e7($t0) -/* B86FFC 8010FE5C 8FB90030 */ lw $t9, 0x30($sp) -/* B87000 8010FE60 270EFFFF */ addiu $t6, $t8, -1 -/* B87004 8010FE64 27217FFF */ addiu $at, $t9, 0x7fff -/* B87008 8010FE68 A02E63E8 */ sb $t6, 0x63e8($at) -/* B8700C 8010FE6C 910A63E7 */ lbu $t2, 0x63e7($t0) -/* B87010 8010FE70 8FAC0030 */ lw $t4, 0x30($sp) -/* B87014 8010FE74 15400161 */ bnez $t2, .L801103FC -/* B87018 8010FE78 25817FFF */ addiu $at, $t4, 0x7fff -/* B8701C 8010FE7C 240B0004 */ li $t3, 4 -/* B87020 8010FE80 1000015E */ b .L801103FC -/* B87024 8010FE84 A02B6305 */ sb $t3, 0x6305($at) -.L8010FE88: -/* B87028 8010FE88 0C041AF2 */ jal func_80106BC8 -/* B8702C 8010FE8C AFA80024 */ sw $t0, 0x24($sp) -/* B87030 8010FE90 1040015A */ beqz $v0, .L801103FC -/* B87034 8010FE94 8FA80024 */ lw $t0, 0x24($sp) -/* B87038 8010FE98 8FA20030 */ lw $v0, 0x30($sp) -/* B8703C 8010FE9C 240D0004 */ li $t5, 4 -/* B87040 8010FEA0 24417FFF */ addiu $at, $v0, 0x7fff -/* B87044 8010FEA4 A02D6305 */ sb $t5, 0x6305($at) -/* B87048 8010FEA8 A42063D7 */ sh $zero, 0x63d7($at) -/* B8704C 8010FEAC 950F63CE */ lhu $t7, 0x63ce($t0) -/* B87050 8010FEB0 25F80001 */ addiu $t8, $t7, 1 -/* B87054 8010FEB4 10000151 */ b .L801103FC -/* B87058 8010FEB8 A43863CF */ sh $t8, 0x63cf($at) -/* B8705C 8010FEBC 910263E4 */ lbu $v0, 0x63e4($t0) -.L8010FEC0: -/* B87060 8010FEC0 24010060 */ li $at, 96 -/* B87064 8010FEC4 8FAA0030 */ lw $t2, 0x30($sp) -/* B87068 8010FEC8 5441000D */ bnel $v0, $at, .L8010FF00 -/* B8706C 8010FECC 24010040 */ li $at, 64 -/* B87070 8010FED0 910E63E7 */ lbu $t6, 0x63e7($t0) -/* B87074 8010FED4 25417FFF */ addiu $at, $t2, 0x7fff -/* B87078 8010FED8 25D9FFFF */ addiu $t9, $t6, -1 -/* B8707C 8010FEDC A03963E8 */ sb $t9, 0x63e8($at) -/* B87080 8010FEE0 910B63E7 */ lbu $t3, 0x63e7($t0) -/* B87084 8010FEE4 55600146 */ bnezl $t3, .L80110400 -/* B87088 8010FEE8 8FBF001C */ lw $ra, 0x1c($sp) -/* B8708C 8010FEEC 0C041B33 */ jal func_80106CCC -/* B87090 8010FEF0 8FA40058 */ lw $a0, 0x58($sp) -/* B87094 8010FEF4 10000142 */ b .L80110400 -/* B87098 8010FEF8 8FBF001C */ lw $ra, 0x1c($sp) -/* B8709C 8010FEFC 24010040 */ li $at, 64 -.L8010FF00: -/* B870A0 8010FF00 1041013E */ beq $v0, $at, .L801103FC -/* B870A4 8010FF04 24010050 */ li $at, 80 -/* B870A8 8010FF08 5041013D */ beql $v0, $at, .L80110400 -/* B870AC 8010FF0C 8FBF001C */ lw $ra, 0x1c($sp) -/* B870B0 8010FF10 84CC04D2 */ lh $t4, 0x4d2($a2) -/* B870B4 8010FF14 24010010 */ li $at, 16 -/* B870B8 8010FF18 55800139 */ bnezl $t4, .L80110400 -/* B870BC 8010FF1C 8FBF001C */ lw $ra, 0x1c($sp) -/* B870C0 8010FF20 14410034 */ bne $v0, $at, .L8010FFF4 -/* B870C4 8010FF24 8FAD0058 */ lw $t5, 0x58($sp) -/* B870C8 8010FF28 3C010001 */ lui $at, 1 -/* B870CC 8010FF2C 01A11021 */ addu $v0, $t5, $at -/* B870D0 8010FF30 944F04C6 */ lhu $t7, 0x4c6($v0) -/* B870D4 8010FF34 24010001 */ li $at, 1 -/* B870D8 8010FF38 01A02025 */ move $a0, $t5 -/* B870DC 8010FF3C 55E1002E */ bnel $t7, $at, .L8010FFF8 -/* B870E0 8010FF40 8FA40058 */ lw $a0, 0x58($sp) -/* B870E4 8010FF44 AFA20030 */ sw $v0, 0x30($sp) -/* B870E8 8010FF48 0C041AF2 */ jal func_80106BC8 -/* B870EC 8010FF4C AFA80024 */ sw $t0, 0x24($sp) -/* B870F0 8010FF50 1040012A */ beqz $v0, .L801103FC -/* B870F4 8010FF54 8FA80024 */ lw $t0, 0x24($sp) -/* B870F8 8010FF58 8FB80030 */ lw $t8, 0x30($sp) -/* B870FC 8010FF5C 3C048015 */ lui $a0, %hi(D_80154A64) # $a0, 0x8015 -/* B87100 8010FF60 24844A64 */ addiu $a0, %lo(D_80154A64) # addiu $a0, $a0, 0x4a64 -/* B87104 8010FF64 970504C6 */ lhu $a1, 0x4c6($t8) -/* B87108 8010FF68 0C00084C */ jal osSyncPrintf -/* B8710C 8010FF6C AFA80024 */ sw $t0, 0x24($sp) -/* B87110 8010FF70 8FA80024 */ lw $t0, 0x24($sp) -/* B87114 8010FF74 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B87118 8010FF78 3C048015 */ lui $a0, %hi(D_80154A78) # $a0, 0x8015 -/* B8711C 8010FF7C 910E63E5 */ lbu $t6, 0x63e5($t0) -/* B87120 8010FF80 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B87124 8010FF84 8FAC0058 */ lw $t4, 0x58($sp) -/* B87128 8010FF88 15C00007 */ bnez $t6, .L8010FFA8 -/* B8712C 8010FF8C 24844A78 */ addiu $a0, %lo(D_80154A78) # addiu $a0, $a0, 0x4a78 -/* B87130 8010FF90 8FAA0058 */ lw $t2, 0x58($sp) -/* B87134 8010FF94 3C010001 */ lui $at, 1 -/* B87138 8010FF98 24190002 */ li $t9, 2 -/* B8713C 8010FF9C 002A0821 */ addu $at, $at, $t2 -/* B87140 8010FFA0 10000005 */ b .L8010FFB8 -/* B87144 8010FFA4 A43904C6 */ sh $t9, 0x4c6($at) -.L8010FFA8: -/* B87148 8010FFA8 3C010001 */ lui $at, 1 -/* B8714C 8010FFAC 002C0821 */ addu $at, $at, $t4 -/* B87150 8010FFB0 240B0004 */ li $t3, 4 -/* B87154 8010FFB4 A42B04C6 */ sh $t3, 0x4c6($at) -.L8010FFB8: -/* B87158 8010FFB8 946513FA */ lhu $a1, 0x13fa($v1) -/* B8715C 8010FFBC 8FAF0030 */ lw $t7, 0x30($sp) -/* B87160 8010FFC0 24060001 */ li $a2, 1 -/* B87164 8010FFC4 30A5000F */ andi $a1, $a1, 0xf -/* B87168 8010FFC8 0C00084C */ jal osSyncPrintf -/* B8716C 8010FFCC 95E704C6 */ lhu $a3, 0x4c6($t7) -/* B87170 8010FFD0 0C041B33 */ jal func_80106CCC -/* B87174 8010FFD4 8FA40058 */ lw $a0, 0x58($sp) -/* B87178 8010FFD8 8FAD0030 */ lw $t5, 0x30($sp) -/* B8717C 8010FFDC 3C048015 */ lui $a0, %hi(D_80154AA0) # $a0, 0x8015 -/* B87180 8010FFE0 24844AA0 */ addiu $a0, %lo(D_80154AA0) # addiu $a0, $a0, 0x4aa0 -/* B87184 8010FFE4 0C00084C */ jal osSyncPrintf -/* B87188 8010FFE8 95A504C6 */ lhu $a1, 0x4c6($t5) -/* B8718C 8010FFEC 10000104 */ b .L80110400 -/* B87190 8010FFF0 8FBF001C */ lw $ra, 0x1c($sp) -.L8010FFF4: -/* B87194 8010FFF4 8FA40058 */ lw $a0, 0x58($sp) -.L8010FFF8: -/* B87198 8010FFF8 0C041B22 */ jal func_80106C88 -/* B8719C 8010FFFC AFA80024 */ sw $t0, 0x24($sp) -/* B871A0 80110000 104000FE */ beqz $v0, .L801103FC -/* B871A4 80110004 8FA80024 */ lw $t0, 0x24($sp) -/* B871A8 80110008 3C048015 */ lui $a0, %hi(D_80154AB4) # $a0, 0x8015 -/* B871AC 8011000C 910563E4 */ lbu $a1, 0x63e4($t0) -/* B871B0 80110010 AFA80024 */ sw $t0, 0x24($sp) -/* B871B4 80110014 0C00084C */ jal osSyncPrintf -/* B871B8 80110018 24844AB4 */ addiu $a0, %lo(D_80154AB4) # addiu $a0, $a0, 0x4ab4 -/* B871BC 8011001C 8FA80024 */ lw $t0, 0x24($sp) -/* B871C0 80110020 24010030 */ li $at, 48 -/* B871C4 80110024 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B871C8 80110028 911863E4 */ lbu $t8, 0x63e4($t0) -/* B871CC 8011002C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B871D0 80110030 24044808 */ li $a0, 18440 -/* B871D4 80110034 17010012 */ bne $t8, $at, .L80110080 -/* B871D8 80110038 3C058013 */ lui $a1, %hi(D_801333D4) -/* B871DC 8011003C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B871E0 80110040 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B871E4 80110044 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B871E8 80110048 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B871EC 8011004C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B871F0 80110050 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B871F4 80110054 AFAE0014 */ sw $t6, 0x14($sp) -/* B871F8 80110058 AFA70010 */ sw $a3, 0x10($sp) -/* B871FC 8011005C 24044818 */ li $a0, 18456 -/* B87200 80110060 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B87204 80110064 24060004 */ li $a2, 4 -/* B87208 80110068 3C058015 */ lui $a1, %hi(D_8014B304) # $a1, 0x8015 -/* B8720C 8011006C 94A5B304 */ lhu $a1, %lo(D_8014B304)($a1) -/* B87210 80110070 0C042DC8 */ jal func_8010B720 -/* B87214 80110074 8FA40058 */ lw $a0, 0x58($sp) -/* B87218 80110078 100000E1 */ b .L80110400 -/* B8721C 8011007C 8FBF001C */ lw $ra, 0x1c($sp) -.L80110080: -/* B87220 80110080 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* B87224 80110084 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* B87228 80110088 AFB90014 */ sw $t9, 0x14($sp) -/* B8722C 8011008C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B87230 80110090 24060004 */ li $a2, 4 -/* B87234 80110094 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B87238 80110098 AFA70010 */ sw $a3, 0x10($sp) -/* B8723C 8011009C 0C041B33 */ jal func_80106CCC -/* B87240 801100A0 8FA40058 */ lw $a0, 0x58($sp) -/* B87244 801100A4 100000D6 */ b .L80110400 -/* B87248 801100A8 8FBF001C */ lw $ra, 0x1c($sp) -.L801100AC: -/* B8724C 801100AC 910A63E7 */ lbu $t2, 0x63e7($t0) -/* B87250 801100B0 25817FFF */ addiu $at, $t4, 0x7fff -/* B87254 801100B4 254BFFFF */ addiu $t3, $t2, -1 -/* B87258 801100B8 A02B63E8 */ sb $t3, 0x63e8($at) -/* B8725C 801100BC 910F63E7 */ lbu $t7, 0x63e7($t0) -/* B87260 801100C0 55E000CF */ bnezl $t7, .L80110400 -/* B87264 801100C4 8FBF001C */ lw $ra, 0x1c($sp) -/* B87268 801100C8 950262F8 */ lhu $v0, 0x62f8($t0) -/* B8726C 801100CC 284100C2 */ slti $at, $v0, 0xc2 -/* B87270 801100D0 14200002 */ bnez $at, .L801100DC -/* B87274 801100D4 284100C7 */ slti $at, $v0, 0xc7 -/* B87278 801100D8 14200004 */ bnez $at, .L801100EC -.L801100DC: -/* B8727C 801100DC 284100FA */ slti $at, $v0, 0xfa -/* B87280 801100E0 14200007 */ bnez $at, .L80110100 -/* B87284 801100E4 284100FE */ slti $at, $v0, 0xfe -/* B87288 801100E8 10200005 */ beqz $at, .L80110100 -.L801100EC: -/* B8728C 801100EC 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B87290 801100F0 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B87294 801100F4 240D0140 */ li $t5, 320 -/* B87298 801100F8 A46D1424 */ sh $t5, 0x1424($v1) -/* B8729C 801100FC 950262F8 */ lhu $v0, 0x62f8($t0) -.L80110100: -/* B872A0 80110100 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B872A4 80110104 2401301F */ li $at, 12319 -/* B872A8 80110108 10410011 */ beq $v0, $at, .L80110150 -/* B872AC 8011010C 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B872B0 80110110 2401000A */ li $at, 10 -/* B872B4 80110114 1041000E */ beq $v0, $at, .L80110150 -/* B872B8 80110118 2401000C */ li $at, 12 -/* B872BC 8011011C 1041000C */ beq $v0, $at, .L80110150 -/* B872C0 80110120 240100CF */ li $at, 207 -/* B872C4 80110124 1041000A */ beq $v0, $at, .L80110150 -/* B872C8 80110128 2401021C */ li $at, 540 -/* B872CC 8011012C 10410008 */ beq $v0, $at, .L80110150 -/* B872D0 80110130 24010009 */ li $at, 9 -/* B872D4 80110134 10410006 */ beq $v0, $at, .L80110150 -/* B872D8 80110138 24014078 */ li $at, 16504 -/* B872DC 8011013C 10410004 */ beq $v0, $at, .L80110150 -/* B872E0 80110140 24012015 */ li $at, 8213 -/* B872E4 80110144 10410002 */ beq $v0, $at, .L80110150 -/* B872E8 80110148 24013040 */ li $at, 12352 -/* B872EC 8011014C 14410002 */ bne $v0, $at, .L80110158 -.L80110150: -/* B872F0 80110150 24180032 */ li $t8, 50 -/* B872F4 80110154 A47813EE */ sh $t8, 0x13ee($v1) -.L80110158: -/* B872F8 80110158 8FAE0058 */ lw $t6, 0x58($sp) -/* B872FC 8011015C 3C048015 */ lui $a0, %hi(D_80154AC0) # $a0, 0x8015 -/* B87300 80110160 24844AC0 */ addiu $a0, %lo(D_80154AC0) # addiu $a0, $a0, 0x4ac0 -/* B87304 80110164 91D91D6C */ lbu $t9, 0x1d6c($t6) -/* B87308 80110168 1720003E */ bnez $t9, .L80110264 -/* B8730C 8011016C 00000000 */ nop -/* B87310 80110170 0C00084C */ jal osSyncPrintf -/* B87314 80110174 AFA80024 */ sw $t0, 0x24($sp) -/* B87318 80110178 8FAA0058 */ lw $t2, 0x58($sp) -/* B8731C 8011017C 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B87320 80110180 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B87324 80110184 3C048015 */ lui $a0, %hi(D_80154AC8) # $a0, 0x8015 -/* B87328 80110188 24844AC8 */ addiu $a0, %lo(D_80154AC8) # addiu $a0, $a0, 0x4ac8 -/* B8732C 8011018C 8C650008 */ lw $a1, 8($v1) -/* B87330 80110190 0C00084C */ jal osSyncPrintf -/* B87334 80110194 854607A0 */ lh $a2, 0x7a0($t2) -/* B87338 80110198 8FA80024 */ lw $t0, 0x24($sp) -/* B8733C 8011019C 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B87340 801101A0 24012061 */ li $at, 8289 -/* B87344 801101A4 950262F8 */ lhu $v0, 0x62f8($t0) -/* B87348 801101A8 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B8734C 801101AC 1041002D */ beq $v0, $at, .L80110264 -/* B87350 801101B0 24012025 */ li $at, 8229 -/* B87354 801101B4 1041002B */ beq $v0, $at, .L80110264 -/* B87358 801101B8 2401208C */ li $at, 8332 -/* B8735C 801101BC 10410029 */ beq $v0, $at, .L80110264 -/* B87360 801101C0 2841088D */ slti $at, $v0, 0x88d -/* B87364 801101C4 14200005 */ bnez $at, .L801101DC -/* B87368 801101C8 28410893 */ slti $at, $v0, 0x893 -/* B8736C 801101CC 50200004 */ beql $at, $zero, .L801101E0 -/* B87370 801101D0 24013055 */ li $at, 12373 -/* B87374 801101D4 910B63E5 */ lbu $t3, 0x63e5($t0) -/* B87378 801101D8 11600022 */ beqz $t3, .L80110264 -.L801101DC: -/* B8737C 801101DC 24013055 */ li $at, 12373 -.L801101E0: -/* B87380 801101E0 10410020 */ beq $v0, $at, .L80110264 -/* B87384 801101E4 00000000 */ nop -/* B87388 801101E8 8C620008 */ lw $v0, 8($v1) -/* B8738C 801101EC 3401FFF0 */ li $at, 65520 -/* B87390 801101F0 3C048015 */ lui $a0, %hi(D_80154AE8) # $a0, 0x8015 -/* B87394 801101F4 0041082A */ slt $at, $v0, $at -/* B87398 801101F8 1020001A */ beqz $at, .L80110264 -/* B8739C 801101FC 00402825 */ move $a1, $v0 -/* B873A0 80110200 24844AE8 */ addiu $a0, %lo(D_80154AE8) # addiu $a0, $a0, 0x4ae8 -/* B873A4 80110204 0C00084C */ jal osSyncPrintf -/* B873A8 80110208 AFA80024 */ sw $t0, 0x24($sp) -/* B873AC 8011020C 8FAC0058 */ lw $t4, 0x58($sp) -/* B873B0 80110210 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B873B4 80110214 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B873B8 80110218 858F07A0 */ lh $t7, 0x7a0($t4) -/* B873BC 8011021C 8FA80024 */ lw $t0, 0x24($sp) -/* B873C0 80110220 15E00010 */ bnez $t7, .L80110264 -/* B873C4 80110224 00000000 */ nop -/* B873C8 80110228 946413EE */ lhu $a0, 0x13ee($v1) -/* B873CC 8011022C 24010001 */ li $at, 1 -/* B873D0 80110230 240D0032 */ li $t5, 50 -/* B873D4 80110234 50800006 */ beql $a0, $zero, .L80110250 -/* B873D8 80110238 A46D13EE */ sh $t5, 0x13ee($v1) -/* B873DC 8011023C 10810003 */ beq $a0, $at, .L8011024C -/* B873E0 80110240 24010002 */ li $at, 2 -/* B873E4 80110244 54810004 */ bnel $a0, $at, .L80110258 -/* B873E8 80110248 A46013EA */ sh $zero, 0x13ea($v1) -.L8011024C: -/* B873EC 8011024C A46D13EE */ sh $t5, 0x13ee($v1) -.L80110250: -/* B873F0 80110250 31A4FFFF */ andi $a0, $t5, 0xffff -/* B873F4 80110254 A46013EA */ sh $zero, 0x13ea($v1) -.L80110258: -/* B873F8 80110258 0C020978 */ jal Interface_ChangeAlpha -/* B873FC 8011025C AFA80024 */ sw $t0, 0x24($sp) -/* B87400 80110260 8FA80024 */ lw $t0, 0x24($sp) -.L80110264: -/* B87404 80110264 3C048015 */ lui $a0, %hi(D_80154AFC) # $a0, 0x8015 -/* B87408 80110268 24844AFC */ addiu $a0, %lo(D_80154AFC) # addiu $a0, $a0, 0x4afc -/* B8740C 8011026C 0C00084C */ jal osSyncPrintf -/* B87410 80110270 AFA80024 */ sw $t0, 0x24($sp) -/* B87414 80110274 8FA40030 */ lw $a0, 0x30($sp) -/* B87418 80110278 8FA70058 */ lw $a3, 0x58($sp) -/* B8741C 8011027C 8FA80024 */ lw $t0, 0x24($sp) -/* B87420 80110280 24817FFF */ addiu $at, $a0, 0x7fff -/* B87424 80110284 AC206301 */ sw $zero, 0x6301($at) -/* B87428 80110288 A0206305 */ sb $zero, 0x6305($at) -/* B8742C 8011028C 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* B87430 80110290 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* B87434 80110294 00E11021 */ addu $v0, $a3, $at -/* B87438 80110298 A44001FC */ sh $zero, 0x1fc($v0) -/* B8743C 8011029C 845801FC */ lh $t8, 0x1fc($v0) -/* B87440 801102A0 24817FFF */ addiu $at, $a0, 0x7fff -/* B87444 801102A4 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016 -/* B87448 801102A8 A45801FA */ sh $t8, 0x1fa($v0) -/* B8744C 801102AC A02063E8 */ sb $zero, 0x63e8($at) -/* B87450 801102B0 910E63E7 */ lbu $t6, 0x63e7($t0) -/* B87454 801102B4 3C050001 */ lui $a1, 1 -/* B87458 801102B8 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0 -/* B8745C 801102BC A42E62F9 */ sh $t6, 0x62f9($at) -/* B87460 801102C0 911963E4 */ lbu $t9, 0x63e4($t0) -/* B87464 801102C4 24010040 */ li $at, 64 -/* B87468 801102C8 240A0002 */ li $t2, 2 -/* B8746C 801102CC 17210007 */ bne $t9, $at, .L801102EC -/* B87470 801102D0 00A72821 */ addu $a1, $a1, $a3 -/* B87474 801102D4 24817FFF */ addiu $at, $a0, 0x7fff -/* B87478 801102D8 A02063E5 */ sb $zero, 0x63e5($at) -/* B8747C 801102DC 3C010001 */ lui $at, 1 -/* B87480 801102E0 00270821 */ addu $at, $at, $a3 -/* B87484 801102E4 10000003 */ b .L801102F4 -/* B87488 801102E8 A42A04C6 */ sh $t2, 0x4c6($at) -.L801102EC: -/* B8748C 801102EC 24817FFF */ addiu $at, $a0, 0x7fff -/* B87490 801102F0 A02063E5 */ sb $zero, 0x63e5($at) -.L801102F4: -/* B87494 801102F4 8C6200A4 */ lw $v0, 0xa4($v1) -/* B87498 801102F8 3C01F000 */ lui $at, 0xf000 -/* B8749C 801102FC 3C048015 */ lui $a0, %hi(D_80154B00) # $a0, 0x8015 -/* B874A0 80110300 00415824 */ and $t3, $v0, $at -/* B874A4 80110304 3C014000 */ lui $at, 0x4000 -/* B874A8 80110308 1561000A */ bne $t3, $at, .L80110334 -/* B874AC 8011030C 24844B00 */ addiu $a0, %lo(D_80154B00) # addiu $a0, $a0, 0x4b00 -/* B874B0 80110310 846F002E */ lh $t7, 0x2e($v1) -/* B874B4 80110314 84780030 */ lh $t8, 0x30($v1) -/* B874B8 80110318 3C014000 */ lui $at, 0x4000 -/* B874BC 8011031C 00416026 */ xor $t4, $v0, $at -/* B874C0 80110320 25ED0010 */ addiu $t5, $t7, 0x10 -/* B874C4 80110324 270E0010 */ addiu $t6, $t8, 0x10 -/* B874C8 80110328 AC6C00A4 */ sw $t4, 0xa4($v1) -/* B874CC 8011032C A46D002E */ sh $t5, 0x2e($v1) -/* B874D0 80110330 A46E0030 */ sh $t6, 0x30($v1) -.L80110334: -/* B874D4 80110334 950363F0 */ lhu $v1, 0x63f0($t0) -/* B874D8 80110338 24010031 */ li $at, 49 -/* B874DC 8011033C 3C198015 */ lui $t9, %hi(D_8014B310) # $t9, 0x8015 -/* B874E0 80110340 50610023 */ beql $v1, $at, .L801103D0 -/* B874E4 80110344 240A00FF */ li $t2, 255 -/* B874E8 80110348 8739B310 */ lh $t9, %lo(D_8014B310)($t9) -/* B874EC 8011034C 24010006 */ li $at, 6 -/* B874F0 80110350 8FAB004C */ lw $t3, 0x4c($sp) -/* B874F4 80110354 17210009 */ bne $t9, $at, .L8011037C -/* B874F8 80110358 240AFF20 */ li $t2, -224 -/* B874FC 8011035C A56A0690 */ sh $t2, 0x690($t3) -/* B87500 80110360 8FAC004C */ lw $t4, 0x4c($sp) -/* B87504 80110364 3C010001 */ lui $at, 1 -/* B87508 80110368 8D82068C */ lw $v0, 0x68c($t4) -/* B8750C 8011036C 8C4F0004 */ lw $t7, 4($v0) -/* B87510 80110370 01E16825 */ or $t5, $t7, $at -/* B87514 80110374 AC4D0004 */ sw $t5, 4($v0) -/* B87518 80110378 950363F0 */ lhu $v1, 0x63f0($t0) -.L8011037C: -/* B8751C 8011037C 24010029 */ li $at, 41 -/* B87520 80110380 14610012 */ bne $v1, $at, .L801103CC -/* B87524 80110384 3C020001 */ lui $v0, 1 -/* B87528 80110388 00471021 */ addu $v0, $v0, $a3 -/* B8752C 8011038C 944204C6 */ lhu $v0, 0x4c6($v0) -/* B87530 80110390 24010001 */ li $at, 1 -/* B87534 80110394 24180004 */ li $t8, 4 -/* B87538 80110398 10410002 */ beq $v0, $at, .L801103A4 -/* B8753C 8011039C 2401000B */ li $at, 11 -/* B87540 801103A0 1441000A */ bne $v0, $at, .L801103CC -.L801103A4: -/* B87544 801103A4 3C010001 */ lui $at, 1 -/* B87548 801103A8 00270821 */ addu $at, $at, $a3 -/* B8754C 801103AC A43804C6 */ sh $t8, 0x4c6($at) -/* B87550 801103B0 950E63F2 */ lhu $t6, 0x63f2($t0) -/* B87554 801103B4 24010009 */ li $at, 9 -/* B87558 801103B8 24190001 */ li $t9, 1 -/* B8755C 801103BC 15C10003 */ bne $t6, $at, .L801103CC -/* B87560 801103C0 3C010001 */ lui $at, 1 -/* B87564 801103C4 00270821 */ addu $at, $at, $a3 -/* B87568 801103C8 A43904C6 */ sh $t9, 0x4c6($at) -.L801103CC: -/* B8756C 801103CC 240A00FF */ li $t2, 255 -.L801103D0: -/* B87570 801103D0 3C018015 */ lui $at, %hi(D_8014B310) # $at, 0x8015 -/* B87574 801103D4 A42AB310 */ sh $t2, %lo(D_8014B310)($at) -/* B87578 801103D8 950663F2 */ lhu $a2, 0x63f2($t0) -/* B8757C 801103DC 0C00084C */ jal osSyncPrintf -/* B87580 801103E0 94A504C6 */ lhu $a1, 0x4c6($a1) -/* B87584 801103E4 10000006 */ b .L80110400 -/* B87588 801103E8 8FBF001C */ lw $ra, 0x1c($sp) -.L801103EC: -/* B8758C 801103EC 8FAC0030 */ lw $t4, 0x30($sp) -.L801103F0: -/* B87590 801103F0 240B00FF */ li $t3, 255 -/* B87594 801103F4 25817FFF */ addiu $at, $t4, 0x7fff -/* B87598 801103F8 A02B6411 */ sb $t3, 0x6411($at) -.L801103FC: -/* B8759C 801103FC 8FBF001C */ lw $ra, 0x1c($sp) -.L80110400: -/* B875A0 80110400 27BD0058 */ addiu $sp, $sp, 0x58 -/* B875A4 80110404 03E00008 */ jr $ra -/* B875A8 80110408 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/code/z_message_PAL/func_8011040C.s b/asm/non_matchings/code/z_message_PAL/func_8011040C.s deleted file mode 100644 index b29c1b8ac9..0000000000 --- a/asm/non_matchings/code/z_message_PAL/func_8011040C.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8011040C -/* B875AC 8011040C 3C0E8015 */ lui $t6, %hi(D_8014B320) # $t6, 0x8015 -/* B875B0 80110410 25CEB320 */ addiu $t6, %lo(D_8014B320) # addiu $t6, $t6, -0x4ce0 -/* B875B4 80110414 3C018015 */ lui $at, %hi(D_801538F0) # $at, 0x8015 -/* B875B8 80110418 AC2E38F0 */ sw $t6, %lo(D_801538F0)($at) -/* B875BC 8011041C 3C0F8015 */ lui $t7, %hi(D_8014F548) # $t7, 0x8015 -/* B875C0 80110420 25EFF548 */ addiu $t7, %lo(D_8014F548) # addiu $t7, $t7, -0xab8 -/* B875C4 80110424 3C018015 */ lui $at, %hi(D_801538F4) # $at, 0x8015 -/* B875C8 80110428 AC2F38F4 */ sw $t7, %lo(D_801538F4)($at) -/* B875CC 8011042C 3C188015 */ lui $t8, %hi(D_80151658) # $t8, 0x8015 -/* B875D0 80110430 27181658 */ addiu $t8, %lo(D_80151658) # addiu $t8, $t8, 0x1658 -/* B875D4 80110434 3C018015 */ lui $at, %hi(D_801538F8) # $at, 0x8015 -/* B875D8 80110438 AC3838F8 */ sw $t8, %lo(D_801538F8)($at) -/* B875DC 8011043C 3C198015 */ lui $t9, %hi(D_80153768) # $t9, 0x8015 -/* B875E0 80110440 27393768 */ addiu $t9, %lo(D_80153768) # addiu $t9, $t9, 0x3768 -/* B875E4 80110444 3C018015 */ lui $at, %hi(D_801538FC) -/* B875E8 80110448 03E00008 */ jr $ra -/* B875EC 8011044C AC3938FC */ sw $t9, %lo(D_801538FC)($at) - diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s index 3578ec6c54..04e46b2556 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s @@ -726,14 +726,14 @@ glabel L808D8220 /* 01A54 808D82C4 8FA40074 */ lw $a0, 0x0074($sp) /* 01A58 808D82C8 14610004 */ bne $v1, $at, .L808D82DC /* 01A5C 808D82CC 240570C8 */ addiu $a1, $zero, 0x70C8 ## $a1 = 000070C8 -/* 01A60 808D82D0 0C042DA0 */ jal func_8010B680 +/* 01A60 808D82D0 0C042DA0 */ jal Message_StartTextbox /* 01A64 808D82D4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 01A68 808D82D8 8E030674 */ lw $v1, 0x0674($s0) ## 00000674 .L808D82DC: /* 01A6C 808D82DC 2C6100B5 */ sltiu $at, $v1, 0x00B5 /* 01A70 808D82E0 142002FC */ bne $at, $zero, .L808D8ED4 /* 01A74 808D82E4 8FA40074 */ lw $a0, 0x0074($sp) -/* 01A78 808D82E8 0C042F6F */ jal func_8010BDBC +/* 01A78 808D82E8 0C042F6F */ jal Message_GetState /* 01A7C 808D82EC 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 01A80 808D82F0 144002F8 */ bne $v0, $zero, .L808D8ED4 /* 01A84 808D82F4 240E000F */ addiu $t6, $zero, 0x000F ## $t6 = 0000000F @@ -756,14 +756,14 @@ glabel L808D8308 /* 01AC4 808D8334 8FA40074 */ lw $a0, 0x0074($sp) /* 01AC8 808D8338 14610004 */ bne $v1, $at, .L808D834C /* 01ACC 808D833C 240570C9 */ addiu $a1, $zero, 0x70C9 ## $a1 = 000070C9 -/* 01AD0 808D8340 0C042DA0 */ jal func_8010B680 +/* 01AD0 808D8340 0C042DA0 */ jal Message_StartTextbox /* 01AD4 808D8344 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 01AD8 808D8348 8E030674 */ lw $v1, 0x0674($s0) ## 00000674 .L808D834C: /* 01ADC 808D834C 2C610065 */ sltiu $at, $v1, 0x0065 /* 01AE0 808D8350 142002E0 */ bne $at, $zero, .L808D8ED4 /* 01AE4 808D8354 8FA40074 */ lw $a0, 0x0074($sp) -/* 01AE8 808D8358 0C042F6F */ jal func_8010BDBC +/* 01AE8 808D8358 0C042F6F */ jal Message_GetState /* 01AEC 808D835C 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 01AF0 808D8360 144002DC */ bne $v0, $zero, .L808D8ED4 /* 01AF4 808D8364 24180010 */ addiu $t8, $zero, 0x0010 ## $t8 = 00000010 @@ -811,7 +811,7 @@ glabel L808D83A4 /* 01B90 808D8400 1040000D */ beq $v0, $zero, .L808D8438 /* 01B94 808D8404 8FA40074 */ lw $a0, 0x0074($sp) /* 01B98 808D8408 240570CA */ addiu $a1, $zero, 0x70CA ## $a1 = 000070CA -/* 01B9C 808D840C 0C042DA0 */ jal func_8010B680 +/* 01B9C 808D840C 0C042DA0 */ jal Message_StartTextbox /* 01BA0 808D8410 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 01BA4 808D8414 3C050601 */ lui $a1, %hi(D_060089F8) ## $a1 = 06010000 /* 01BA8 808D8418 24A589F8 */ addiu $a1, $a1, %lo(D_060089F8) ## $a1 = 060089F8 @@ -828,7 +828,7 @@ glabel L808D83A4 /* 01BD0 808D8440 2D610065 */ sltiu $at, $t3, 0x0065 /* 01BD4 808D8444 542002A4 */ bnel $at, $zero, .L808D8ED8 /* 01BD8 808D8448 8605067A */ lh $a1, 0x067A($s0) ## 0000067A -/* 01BDC 808D844C 0C042F6F */ jal func_8010BDBC +/* 01BDC 808D844C 0C042F6F */ jal Message_GetState /* 01BE0 808D8450 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 01BE4 808D8454 1440029F */ bne $v0, $zero, .L808D8ED4 /* 01BE8 808D8458 240C0011 */ addiu $t4, $zero, 0x0011 ## $t4 = 00000011 @@ -916,7 +916,7 @@ glabel L808D8468 /* 01D0C 808D857C E60606F4 */ swc1 $f6, 0x06F4($s0) ## 000006F4 /* 01D10 808D8580 8FA40074 */ lw $a0, 0x0074($sp) /* 01D14 808D8584 240570CB */ addiu $a1, $zero, 0x70CB ## $a1 = 000070CB -/* 01D18 808D8588 0C042DA0 */ jal func_8010B680 +/* 01D18 808D8588 0C042DA0 */ jal Message_StartTextbox /* 01D1C 808D858C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 01D20 808D8590 10000251 */ beq $zero, $zero, .L808D8ED8 /* 01D24 808D8594 8605067A */ lh $a1, 0x067A($s0) ## 0000067A @@ -960,7 +960,7 @@ glabel L808D8598 /* 01DB4 808D8624 2D010033 */ sltiu $at, $t0, 0x0033 /* 01DB8 808D8628 5420022B */ bnel $at, $zero, .L808D8ED8 /* 01DBC 808D862C 8605067A */ lh $a1, 0x067A($s0) ## 0000067A -/* 01DC0 808D8630 0C042F6F */ jal func_8010BDBC +/* 01DC0 808D8630 0C042F6F */ jal Message_GetState /* 01DC4 808D8634 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 01DC8 808D8638 14400226 */ bne $v0, $zero, .L808D8ED4 /* 01DCC 808D863C 24090013 */ addiu $t1, $zero, 0x0013 ## $t1 = 00000013 @@ -968,7 +968,7 @@ glabel L808D8598 /* 01DD4 808D8644 AE000674 */ sw $zero, 0x0674($s0) ## 00000674 /* 01DD8 808D8648 8FA40074 */ lw $a0, 0x0074($sp) /* 01DDC 808D864C 240570CC */ addiu $a1, $zero, 0x70CC ## $a1 = 000070CC -/* 01DE0 808D8650 0C042DA0 */ jal func_8010B680 +/* 01DE0 808D8650 0C042DA0 */ jal Message_StartTextbox /* 01DE4 808D8654 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 01DE8 808D8658 3C050600 */ lui $a1, %hi(D_06007268) ## $a1 = 06000000 /* 01DEC 808D865C 24A57268 */ addiu $a1, $a1, %lo(D_06007268) ## $a1 = 06007268 @@ -1073,7 +1073,7 @@ glabel L808D86B4 /* 01F54 808D87C4 2C610051 */ sltiu $at, $v1, 0x0051 /* 01F58 808D87C8 142001C2 */ bne $at, $zero, .L808D8ED4 /* 01F5C 808D87CC 8FA40074 */ lw $a0, 0x0074($sp) -/* 01F60 808D87D0 0C042F6F */ jal func_8010BDBC +/* 01F60 808D87D0 0C042F6F */ jal Message_GetState /* 01F64 808D87D4 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 01F68 808D87D8 144001BE */ bne $v0, $zero, .L808D8ED4 /* 01F6C 808D87DC 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000 @@ -1229,7 +1229,7 @@ glabel L808D8980 /* 02190 808D8A00 E6060694 */ swc1 $f6, 0x0694($s0) ## 00000694 /* 02194 808D8A04 8FA40074 */ lw $a0, 0x0074($sp) /* 02198 808D8A08 240570CD */ addiu $a1, $zero, 0x70CD ## $a1 = 000070CD -/* 0219C 808D8A0C 0C042DA0 */ jal func_8010B680 +/* 0219C 808D8A0C 0C042DA0 */ jal Message_StartTextbox /* 021A0 808D8A10 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 021A4 808D8A14 8E030674 */ lw $v1, 0x0674($s0) ## 00000674 .L808D8A18: @@ -1237,7 +1237,7 @@ glabel L808D8980 /* 021AC 808D8A1C 5420012E */ bnel $at, $zero, .L808D8ED8 /* 021B0 808D8A20 8605067A */ lh $a1, 0x067A($s0) ## 0000067A /* 021B4 808D8A24 8FA40074 */ lw $a0, 0x0074($sp) -/* 021B8 808D8A28 0C042F6F */ jal func_8010BDBC +/* 021B8 808D8A28 0C042F6F */ jal Message_GetState /* 021BC 808D8A2C 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 021C0 808D8A30 14400128 */ bne $v0, $zero, .L808D8ED4 /* 021C4 808D8A34 240A0016 */ addiu $t2, $zero, 0x0016 ## $t2 = 00000016 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s index 20cd8caaed..95f32d5e12 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s @@ -302,7 +302,7 @@ glabel L808D95A8 /* 02D9C 808D960C AE000674 */ sw $zero, 0x0674($s0) ## 00000674 /* 02DA0 808D9610 8FA400B4 */ lw $a0, 0x00B4($sp) /* 02DA4 808D9614 240570CE */ addiu $a1, $zero, 0x70CE ## $a1 = 000070CE -/* 02DA8 808D9618 0C042DA0 */ jal func_8010B680 +/* 02DA8 808D9618 0C042DA0 */ jal Message_StartTextbox /* 02DAC 808D961C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 02DB0 808D9620 3C01447A */ lui $at, 0x447A ## $at = 447A0000 /* 02DB4 808D9624 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00 @@ -373,7 +373,7 @@ glabel L808D9654 /* 02EA0 808D9710 2D810065 */ sltiu $at, $t4, 0x0065 /* 02EA4 808D9714 54200015 */ bnel $at, $zero, .L808D976C /* 02EA8 808D9718 3C014180 */ lui $at, 0x4180 ## $at = 41800000 -/* 02EAC 808D971C 0C042F6F */ jal func_8010BDBC +/* 02EAC 808D971C 0C042F6F */ jal Message_GetState /* 02EB0 808D9720 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 02EB4 808D9724 14400010 */ bne $v0, $zero, .L808D9768 /* 02EB8 808D9728 8FA40054 */ lw $a0, 0x0054($sp) @@ -499,7 +499,7 @@ glabel L808D98C8 /* 03068 808D98D8 A20D01A0 */ sb $t5, 0x01A0($s0) ## 000001A0 /* 0306C 808D98DC 8FA400B4 */ lw $a0, 0x00B4($sp) /* 03070 808D98E0 240570CF */ addiu $a1, $zero, 0x70CF ## $a1 = 000070CF -/* 03074 808D98E4 0C042DA0 */ jal func_8010B680 +/* 03074 808D98E4 0C042DA0 */ jal Message_StartTextbox /* 03078 808D98E8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 0307C 808D98EC 240F0005 */ addiu $t7, $zero, 0x0005 ## $t7 = 00000005 /* 03080 808D98F0 A60F0678 */ sh $t7, 0x0678($s0) ## 00000678 @@ -514,7 +514,7 @@ glabel L808D9900 /* 0309C 808D990C 2F210047 */ sltiu $at, $t9, 0x0047 /* 030A0 808D9910 1420004E */ bne $at, $zero, .L808D9A4C /* 030A4 808D9914 8FA400B4 */ lw $a0, 0x00B4($sp) -/* 030A8 808D9918 0C042F6F */ jal func_8010BDBC +/* 030A8 808D9918 0C042F6F */ jal Message_GetState /* 030AC 808D991C 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 030B0 808D9920 1440004A */ bne $v0, $zero, .L808D9A4C /* 030B4 808D9924 24090006 */ addiu $t1, $zero, 0x0006 ## $t1 = 00000006 @@ -1331,14 +1331,14 @@ glabel L808DA450 /* 03C60 808DA4D0 460A4401 */ sub.s $f16, $f8, $f10 /* 03C64 808DA4D4 14610004 */ bne $v1, $at, .L808DA4E8 /* 03C68 808DA4D8 E6100694 */ swc1 $f16, 0x0694($s0) ## 00000694 -/* 03C6C 808DA4DC 0C042DA0 */ jal func_8010B680 +/* 03C6C 808DA4DC 0C042DA0 */ jal Message_StartTextbox /* 03C70 808DA4E0 8FA400B4 */ lw $a0, 0x00B4($sp) /* 03C74 808DA4E4 8E030674 */ lw $v1, 0x0674($s0) ## 00000674 .L808DA4E8: /* 03C78 808DA4E8 2C610065 */ sltiu $at, $v1, 0x0065 /* 03C7C 808DA4EC 14200007 */ bne $at, $zero, .L808DA50C /* 03C80 808DA4F0 8FA400B4 */ lw $a0, 0x00B4($sp) -/* 03C84 808DA4F4 0C042F6F */ jal func_8010BDBC +/* 03C84 808DA4F4 0C042F6F */ jal Message_GetState /* 03C88 808DA4F8 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 03C8C 808DA4FC 14400003 */ bne $v0, $zero, .L808DA50C /* 03C90 808DA500 240B041F */ addiu $t3, $zero, 0x041F ## $t3 = 0000041F @@ -1579,14 +1579,14 @@ glabel L808DA77C /* 03FF4 808DA864 14610005 */ bne $v1, $at, .L808DA87C /* 03FF8 808DA868 8FA400B4 */ lw $a0, 0x00B4($sp) /* 03FFC 808DA86C 240570D1 */ addiu $a1, $zero, 0x70D1 ## $a1 = 000070D1 -/* 04000 808DA870 0C042DA0 */ jal func_8010B680 +/* 04000 808DA870 0C042DA0 */ jal Message_StartTextbox /* 04004 808DA874 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 04008 808DA878 8E030674 */ lw $v1, 0x0674($s0) ## 00000674 .L808DA87C: /* 0400C 808DA87C 2C610097 */ sltiu $at, $v1, 0x0097 /* 04010 808DA880 1420000F */ bne $at, $zero, .L808DA8C0 /* 04014 808DA884 8FA400B4 */ lw $a0, 0x00B4($sp) -/* 04018 808DA888 0C042F6F */ jal func_8010BDBC +/* 04018 808DA888 0C042F6F */ jal Message_GetState /* 0401C 808DA88C 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 04020 808DA890 1440000B */ bne $v0, $zero, .L808DA8C0 /* 04024 808DA894 2418006B */ addiu $t8, $zero, 0x006B ## $t8 = 0000006B @@ -1594,7 +1594,7 @@ glabel L808DA77C /* 0402C 808DA89C AE000674 */ sw $zero, 0x0674($s0) ## 00000674 /* 04030 808DA8A0 8FA400B4 */ lw $a0, 0x00B4($sp) /* 04034 808DA8A4 240570D2 */ addiu $a1, $zero, 0x70D2 ## $a1 = 000070D2 -/* 04038 808DA8A8 0C042DA0 */ jal func_8010B680 +/* 04038 808DA8A8 0C042DA0 */ jal Message_StartTextbox /* 0403C 808DA8AC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 04040 808DA8B0 8FA400B4 */ lw $a0, 0x00B4($sp) /* 04044 808DA8B4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 @@ -1666,7 +1666,7 @@ glabel L808DA8C8 /* 04140 808DA9B0 1420000D */ bne $at, $zero, .L808DA9E8 /* 04144 808DA9B4 E6060694 */ swc1 $f6, 0x0694($s0) ## 00000694 /* 04148 808DA9B8 8FA400B4 */ lw $a0, 0x00B4($sp) -/* 0414C 808DA9BC 0C042F6F */ jal func_8010BDBC +/* 0414C 808DA9BC 0C042F6F */ jal Message_GetState /* 04150 808DA9C0 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8 /* 04154 808DA9C4 3C088090 */ lui $t0, %hi(D_808F93D4) ## $t0 = 80900000 /* 04158 808DA9C8 14400007 */ bne $v0, $zero, .L808DA9E8 diff --git a/assets/.gitignore b/assets/.gitignore index 7e53529fcc..e5633a6496 100644 --- a/assets/.gitignore +++ b/assets/.gitignore @@ -1,5 +1,6 @@ *.bin *.c +!text/*.c *.h *.cfg *.vtx.inc diff --git a/assets/text/charmap.txt b/assets/text/charmap.txt new file mode 100644 index 0000000000..e68a67228d --- /dev/null +++ b/assets/text/charmap.txt @@ -0,0 +1,50 @@ +{ + '\n' : 0x01, + + '‾' : 0x7F, + 'À' : 0x80, + 'î' : 0x81, + 'Â' : 0x82, + 'Ä' : 0x83, + 'Ç' : 0x84, + 'È' : 0x85, + 'É' : 0x86, + 'Ê' : 0x87, + 'Ë' : 0x88, + 'Ï' : 0x89, + 'Ô' : 0x8A, + 'Ö' : 0x8B, + 'Ù' : 0x8C, + 'Û' : 0x8D, + 'Ü' : 0x8E, + 'ß' : 0x8F, + 'à' : 0x90, + 'á' : 0x91, + 'â' : 0x92, + 'ä' : 0x93, + 'ç' : 0x94, + 'è' : 0x95, + 'é' : 0x96, + 'ê' : 0x97, + 'ë' : 0x98, + 'ï' : 0x99, + 'ô' : 0x9A, + 'ö' : 0x9B, + 'ù' : 0x9C, + 'û' : 0x9D, + 'ü' : 0x9E, + + '[A]' : 0x9F, + '[B]' : 0xA0, + '[C]' : 0xA1, + '[L]' : 0xA2, + '[R]' : 0xA3, + '[Z]' : 0xA4, + '[C-Up]' : 0xA5, + '[C-Down]' : 0xA6, + '[C-Left]' : 0xA7, + '[C-Right]' : 0xA8, + '▼' : 0xA9, + '[Control-Pad]' : 0xAA, + '[D-Pad]' : 0xAB, +} diff --git a/assets/text/fra_message_data_static.c b/assets/text/fra_message_data_static.c new file mode 100644 index 0000000000..abad26c541 --- /dev/null +++ b/assets/text/fra_message_data_static.c @@ -0,0 +1,8 @@ +#define MESSAGE_DATA_STATIC + +#include "message_data_fmt.h" + +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \ + const char _message_##textId##_fra[sizeof(fraMessage)] = { fraMessage END }; + +#include "assets/text/message_data.enc.h" diff --git a/assets/text/ger_message_data_static.c b/assets/text/ger_message_data_static.c new file mode 100644 index 0000000000..c4b8229a00 --- /dev/null +++ b/assets/text/ger_message_data_static.c @@ -0,0 +1,8 @@ +#define MESSAGE_DATA_STATIC + +#include "message_data_fmt.h" + +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \ + const char _message_##textId##_ger[sizeof(gerMessage)] = { gerMessage END }; + +#include "assets/text/message_data.enc.h" diff --git a/assets/text/nes_message_data_static.c b/assets/text/nes_message_data_static.c new file mode 100644 index 0000000000..2c37692d26 --- /dev/null +++ b/assets/text/nes_message_data_static.c @@ -0,0 +1,12 @@ +#define MESSAGE_DATA_STATIC + +#include "message_data_fmt.h" + +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \ + const char _message_##textId##_nes[sizeof(nesMessage)] = { nesMessage END }; + +#define DEFINE_MESSAGE_FFFC + +#include "assets/text/message_data.enc.h" + +#undef DEFINE_MESSAGE_FFFC diff --git a/assets/text/staff_message_data_static.c b/assets/text/staff_message_data_static.c new file mode 100644 index 0000000000..5ad50b044a --- /dev/null +++ b/assets/text/staff_message_data_static.c @@ -0,0 +1,8 @@ +#define MESSAGE_DATA_STATIC + +#include "message_data_fmt.h" + +#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \ + const char _message_##textId##_staff[sizeof(staffMessage)] = { staffMessage END }; + +#include "assets/text/message_data_staff.enc.h" diff --git a/assets/xml/code/fbdemo_circle.xml b/assets/xml/code/fbdemo_circle.xml index fd55a887ed..bb05c7bf2a 100644 --- a/assets/xml/code/fbdemo_circle.xml +++ b/assets/xml/code/fbdemo_circle.xml @@ -10,4 +10,4 @@ - \ No newline at end of file + diff --git a/assets/xml/code/fbdemo_triforce.xml b/assets/xml/code/fbdemo_triforce.xml index b45b2ca9f5..1a21af3bcb 100644 --- a/assets/xml/code/fbdemo_triforce.xml +++ b/assets/xml/code/fbdemo_triforce.xml @@ -5,4 +5,4 @@ - \ No newline at end of file + diff --git a/assets/xml/code/fbdemo_wipe1.xml b/assets/xml/code/fbdemo_wipe1.xml index 498d150fce..f826fec325 100644 --- a/assets/xml/code/fbdemo_wipe1.xml +++ b/assets/xml/code/fbdemo_wipe1.xml @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/assets/xml/overlays/ovl_En_Sth.xml b/assets/xml/overlays/ovl_En_Sth.xml index 125109dad6..ccc45fb1c9 100644 --- a/assets/xml/overlays/ovl_En_Sth.xml +++ b/assets/xml/overlays/ovl_En_Sth.xml @@ -12,4 +12,4 @@ - \ No newline at end of file + diff --git a/data/z_message_PAL.bss.s b/data/z_message_PAL.bss.s deleted file mode 100644 index 6803e43157..0000000000 --- a/data/z_message_PAL.bss.s +++ /dev/null @@ -1,52 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -.balign 16 - -glabel D_801759A0 - .space 0x4 - -glabel D_801759A4 - .space 0x4 - -glabel D_801759A8 - .space 0x2 - -glabel D_801759AA - .space 0x2 - -glabel D_801759AC - .space 0x2 - -glabel D_801759AE - .space 0x2 - -glabel D_801759B0 - .space 0x2 - -glabel D_801759B2 - .space 0x2 - -glabel D_801759B4 - .space 0x2 - -glabel D_801759B6 - .space 0x2 - -glabel D_801759B8 - .space 0x2 - -glabel D_801759BA - .space 0x2 - -glabel D_801759BC - .space 0x2 - -glabel D_801759BE - .space 0x2 diff --git a/data/z_message_PAL.rodata.s b/data/z_message_PAL.rodata.s deleted file mode 100644 index 5f65435cf5..0000000000 --- a/data/z_message_PAL.rodata.s +++ /dev/null @@ -1,242 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purposee registers - -.section .rodata - -.balign 16 - -glabel D_8014B2F0 - .word 0x00000000 - -glabel D_8014B2F4 - .word 0x00000000 - -glabel D_8014B2F8 - .word 0x00000000 - -glabel D_8014B2FC - .word 0x00000000 - -glabel D_8014B300 - .word 0x00000000 - -glabel D_8014B304 - .word 0x00000000 - -glabel D_8014B308 - .word 0x00000000, 0x00000000 - -glabel D_8014B310 - .word 0x00FF0000 - -glabel D_8014B314 - .word 0x00000000 - -glabel D_8014B318 - .word 0x00000000 - -glabel D_8014B31C - .word 0x00000000 - -# english message entry table -glabel D_8014B320 - .incbin "baserom.z64", 0xBC24C0, 0x4228 - -# german message entry table -glabel D_8014F548 - .incbin "baserom.z64", 0xBC66E8, 0x2110 - -# french message entry table -glabel D_80151658 - .incbin "baserom.z64", 0xBC87F8, 0x2110 - -# credits (staff) message entry table -glabel D_80153768 - .incbin "baserom.z64", 0xBCA908, 0x188 - -glabel D_801538F0 - .word D_8014B320 - -glabel D_801538F4 - .word D_8014F548 - -glabel D_801538F8 - .word D_80151658 - -glabel D_801538FC - .word D_80153768 - -glabel D_80153900 - .word 0x00FF00FF, 0x00FF0032, 0x00140000, 0x00FF003C, 0x000000FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF - -glabel D_80153930 - .word 0x00000000, 0x000000DC, 0x00960000, 0x00000000, 0x00000000, 0x00000000 - -glabel D_80153948 - .byte 0x00, 0x01, 0x00 - -glabel D_8015394B - .byte 0x02 - -glabel D_8015394C - .word 0x00000000, 0x00000000, 0x00000000 - -glabel D_80153958 - .half 0x0000 - -glabel D_8015395A - .half 0x0000 - -glabel D_8015395C - .half 0x0000 - -glabel D_8015395E - .half 0x0000 - -glabel D_80153960 - .half 0x0000 - -glabel D_80153962 - .half 0x0000 - -glabel D_80153964 - .half 0x0000 - -glabel D_80153966 - .half 0x0000 - -glabel D_80153968 - .word 0x00000000 - -glabel D_8015396C - .word 0x00000001, 0x00020003, 0x00040005, 0x00080007, 0x00060009 - -glabel D_80153980 - .word 0x000A000B - -glabel D_80153984 - .word 0x00000000 - -glabel D_80153988 - .word 0x3F99999A, 0x3FC00000, 0x3FE66666, 0x40000000, 0x40066666, 0x400CCCCD, 0x40066666, 0x40000000 - -glabel D_801539A8 - .word 0x3F19999A, 0x3F400000, 0x3F666666, 0x3F800000, 0x3F866666, 0x3F8CCCCD, 0x3F866666, 0x3F800000 - -glabel D_801539C8 - .word 0x000000C8, 0x00500032, 0x00FF0082 - -glabel D_801539D4 - .word 0x00000000, 0x00000000, 0x00FF0082 - -glabel D_801539E0 - .word 0x00000000 - -glabel D_801539E4 - .word 0x00C80000 - -glabel D_801539E8 - .word 0x00500000 - -glabel D_801539EC - .word 0x000C0000 - -glabel D_801539F0 - .word 0x00000000 - -glabel D_801539F4 - .word 0x00000000 - -glabel D_801539F8 - .word 0x00000000 - -glabel D_801539FC - .incbin "baserom.z64", 0xBCAB9C, 0x244 - -glabel D_80153C40 - .word 0x004A004A, 0x004A0000 - -glabel D_80153C48 - .word 0x00480048, 0x00480000 - -glabel D_80153C50 - .half 0x0000 - -glabel D_80153C52 - .half 0x0001 - -glabel D_80153C54 - .half 0x0003 - -glabel D_80153C56 - .half 0x0002 - -glabel D_80153C58 - .word 0x00010002, 0x00040008, 0x00100020, 0x01000080 - -glabel D_80153C68 - .word 0x00400200, 0x04000800, 0x10000000, 0x01990198 - -glabel D_80153C78 - .word 0x018A017E, 0x018A018B, 0x01CB0000, 0x00000000, 0x00000000, 0x00010000, 0x00000000 - -glabel D_80153C94 - .word 0x02002940, 0x02002A40, 0x02002B40, 0x02002C40, 0x02002D40 - -glabel D_80153CA8 - .word 0x005000FF, 0x00960064, 0x00FF00C8 - -glabel D_80153CB4 - .word 0x000A000A, 0x000A0032, 0x00FF0032 - -glabel D_80153CC0 - .word 0x00FF00FF, 0x003200FF, 0x00FF00B4 - -glabel D_80153CCC - .word 0x000A000A, 0x000A006E, 0x006E0032 - -glabel D_80153CD8 - .word 0x000C0000 - -glabel D_80153CDC - .word 0x00010000 - -glabel D_80153CE0 - .word 0x00340033, 0x00350036, 0x00370025, 0x00440045, 0x00460047, 0x00480049 - -glabel D_80153CF8 - .word 0x00000000 - -glabel D_80153CFC - .word 0x00000000 - -glabel D_80153D00 - .word 0x00220022, 0x00220022, 0x00220022 - -glabel D_80153D0C - .word 0x008E008E, 0x008E008E, 0x00AE008E - -glabel D_80153D18 - .word 0x00260026, 0x00260026, 0x00AE0026 - -glabel D_80153D24 - .word 0x005A005A, 0x005A005A, 0x00AE005A - -glabel D_80153D30 - .word 0x003B003B, 0x003B003B, 0x0022003B, 0x04000400, 0x02000000, 0x10380008, 0x200A088B, 0x00070009, 0x000A107E, 0x20082007, 0x00150016, 0x00170003, 0x0000270B, 0x00C8012C, 0x012DFFDA, 0x00140016, 0x00140016 - -glabel D_80153D74 - .word 0x00000000 - -glabel D_80153D78 - .word 0x00000000 - -glabel D_80153D7C - .word 0x00000000 - -glabel D_80153D80 - .word 0x00000000 diff --git a/extract_assets.py b/extract_assets.py index 6e04f7d6e8..0364059508 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -1,11 +1,7 @@ #!/usr/bin/env python3 -import argparse +import argparse, json, os, signal, time from multiprocessing import Pool, cpu_count, Event, Manager, ProcessError -import os -import json -import time -import signal EXTRACTED_ASSETS_NAMEFILE = ".extracted-assets.json" @@ -101,6 +97,18 @@ def main(): del extractedAssetsTracker[fullPath] ExtractFunc(fullPath) else: + extract_text_path = "assets/text/message_data.h" + if os.path.isfile(extract_text_path): + extract_text_path = None + extract_staff_text_path = "assets/text/message_data_staff.h" + if os.path.isfile(extract_staff_text_path): + extract_staff_text_path = None + # Only extract text if the header does not already exist, or if --force was passed + if args.force or extract_text_path is not None or extract_staff_text_path is not None: + print("Extracting text") + from tools import msgdis + msgdis.extract_all_text(extract_text_path, extract_staff_text_path) + xmlFiles = [] for currentPath, _, files in os.walk(os.path.join("assets", "xml")): for file in files: @@ -131,4 +139,4 @@ def main(): exit(1) if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index 0d275ba2d1..68f0acdd97 100644 --- a/include/functions.h +++ b/include/functions.h @@ -427,14 +427,14 @@ PosRot* Actor_GetFocus(PosRot* arg0, Actor* actor); PosRot* Actor_GetWorld(PosRot* arg0, Actor* actor); PosRot* Actor_GetWorldPosShapeRot(PosRot* arg0, Actor* actor); s32 func_8002F0C8(Actor* actor, Player* player, s32 arg2); -u32 func_8002F194(Actor* actor, GlobalContext* globalCtx); +u32 Actor_ProcessTalkRequest(Actor* actor, GlobalContext* globalCtx); s32 func_8002F1C4(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, u32 arg4); s32 func_8002F298(Actor* actor, GlobalContext* globalCtx, f32 arg2, u32 arg3); s32 func_8002F2CC(Actor* actor, GlobalContext* globalCtx, f32 arg2); s32 func_8002F2F4(Actor* actor, GlobalContext* globalCtx); -u32 func_8002F334(Actor* actor, GlobalContext* globalCtx); +u32 Actor_TextboxIsClosing(Actor* actor, GlobalContext* globalCtx); s8 func_8002F368(GlobalContext* globalCtx); -void func_8002F374(GlobalContext* globalCtx, Actor* actor, s16* x, s16* y); +void Actor_GetScreenPos(GlobalContext* globalCtx, Actor* actor, s16* x, s16* y); u32 Actor_HasParent(Actor* actor, GlobalContext* globalCtx); s32 func_8002F434(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzRange, f32 yRange); void func_8002F554(Actor* actor, GlobalContext* globalCtx, s32 getItemId); @@ -505,7 +505,7 @@ void func_8003424C(GlobalContext* globalCtx, Vec3f* arg1); void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 xluFlag, s16 duration); Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx); Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx); -s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, u16 (*unkFunc1)(GlobalContext*, Actor*), +s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 interactRange, u16 (*unkFunc1)(GlobalContext*, Actor*), s16 (*unkFunc2)(GlobalContext*, Actor*)); s16 func_800347E8(s16 arg0); void func_80034A14(Actor* actor, struct_80034A14_arg1* arg1, s16 arg2, s16 arg3); @@ -865,9 +865,9 @@ s32 Jpeg_Decode(void* data, void* zbuffer, void* workBuff, u32 workSize); void KaleidoSetup_Update(GlobalContext* globalCtx); void KaleidoSetup_Init(GlobalContext* globalCtx); void KaleidoSetup_Destroy(GlobalContext* globalCtx); -void func_8006EE50(Font* font, s16 arg1, s16 arg2); +void func_8006EE50(Font* font, u16 arg1, u16 arg2); void Font_LoadChar(Font* font, u8 character, u16 codePointIndex); -void Font_LoadMessageBoxEndIcon(Font* font, u16 icon); +void Font_LoadMessageBoxIcon(Font* font, u16 icon); void Font_LoadOrderedFont(Font* font); s32 func_8006F0A0(s32 arg0); u16 Environment_GetPixelDepth(s32 x, s32 y); @@ -2011,14 +2011,14 @@ void AudioSeq_ResetSequencePlayer(SequencePlayer* seqPlayer); void AudioSeq_InitSequencePlayerChannels(s32 playerIdx); void AudioSeq_InitSequencePlayers(void); void func_800ECC04(u16); -void func_800ED858(u8); -void func_800ED93C(s8 songIdx, s8 arg1); -void func_800EE170(u8); -OcarinaStaff* func_800EE3C8(void); -OcarinaStaff* func_800EE3D4(void); -OcarinaStaff* Audio_OcaGetDisplayStaff(void); -void func_800EE57C(u8 minigameIdx); -s32 func_800EE5EC(void); +void Audio_OcaSetInstrument(u8); +void Audio_OcaSetSongPlayback(s8 songIdxPlusOne, s8 playbackState); +void Audio_OcaSetRecordingState(u8); +OcarinaStaff* Audio_OcaGetRecordingStaff(void); +OcarinaStaff* Audio_OcaGetPlayingStaff(void); +OcarinaStaff* Audio_OcaGetDisplayingStaff(void); +void Audio_OcaMemoryGameStart(u8 minigameIdx); +s32 Audio_OcaMemoryGameGenNote(void); void func_800EE824(void); void AudioDebug_Draw(GfxPrint* printer); void AudioDebug_ScrPrt(const s8* str, u16 num); @@ -2063,7 +2063,7 @@ s32 func_800F5A58(u8); void func_800F5ACC(u16 bgmID); void func_800F5B58(void); void func_800F5BF0(u8 arg0); -void func_800F5C64(u16); +void Audio_PlayFanfare(u16); void func_800F5C2C(void); void func_800F5E18(u8 playerIdx, u16 seqId, u8 fadeTimer, s8 arg3, s8 arg4); void func_800F5E90(u8); @@ -2374,45 +2374,23 @@ s32 __osSpSetPc(void* pc); f32 absf(f32); void* func_80106860(void* ptr, s32 val, size_t size); void* func_801068B0(void* dst, void* src, size_t size); -// ? func_801069B0(?); -void func_80106AA8(GlobalContext* globalCtx); -u8 func_80106BC8(GlobalContext* globalCtx); -// ? func_80106C88(?); -void func_80106CCC(GlobalContext*); -// ? func_80106D40(?); -// ? func_80106F1C(?); -// ? func_80107244(?); -// ? func_80107448(?); -// ? func_80107628(?); -// ? func_801076CC(?); -// ? func_80107980(?); -// ? func_801080B4(?); -// ? func_801083F8(?); -// ? func_801086B0(?); -// ? func_80109968(?); -// ? func_80109B3C(?); -// ? func_8010B0C0(?); -void func_8010B680(GlobalContext*, u16 textID, Actor* actor); -void func_8010B720(GlobalContext* globalCtx, u16 textId); -// ? func_8010B820(?); -// ? func_8010BD58(?); +void Message_UpdateOcarinaGame(GlobalContext* globalCtx); +u8 Message_ShouldAdvance(GlobalContext* globalCtx); +void Message_CloseTextbox(GlobalContext*); +void Message_StartTextbox(GlobalContext* globalCtx, u16 textId, Actor* actor); +void Message_ContinueTextbox(GlobalContext* globalCtx, u16 textId); void func_8010BD58(GlobalContext* globalCtx, u16 arg1); void func_8010BD88(GlobalContext* globalCtx, u16 arg1); -u8 func_8010BDBC(MessageContext* msgCtx); -// ? func_8010BED8(?); -// ? func_8010C358(?); -// ? func_8010C39C(?); -// ? func_8010F2CC(?); -// ? func_8010F494(?); -void func_8010F58C(GlobalContext* globalCtx); -void func_8010F6F0(GlobalContext* globalCtx); -void func_8011040C(void); +u8 Message_GetState(MessageContext* msgCtx); +void Message_Draw(GlobalContext* globalCtx); +void Message_Update(GlobalContext* globalCtx); +void Message_SetTables(void); void GameOver_Init(GlobalContext* globalCtx); void GameOver_FadeInLights(GlobalContext* globalCtx); void GameOver_Update(GlobalContext* globalCtx); void func_80110990(GlobalContext* globalCtx); void func_801109B0(GlobalContext* globalCtx); -void func_80110F68(GlobalContext* globalCtx); +void Message_Init(GlobalContext* globalCtx); void func_80112098(GlobalContext* globalCtx); void Title_Init(GameState* thisx); diff --git a/include/message_data_fmt.h b/include/message_data_fmt.h new file mode 100644 index 0000000000..fffac116c8 --- /dev/null +++ b/include/message_data_fmt.h @@ -0,0 +1,178 @@ +#ifndef MESSAGE_DATA_FMT_H +#define MESSAGE_DATA_FMT_H + +/* + * Macros to create both a constant and a string literal from a magic value + * The constants are used in code files when parsing text for various purposes + * The strings are used in the message_data_static files themselves, as you can only concat strings with other strings + */ + +#define GLUE(a, b) a##b + +#define STRINGIFY(s) #s +#define EXPAND_AND_STRINGIFY(s) STRINGIFY(s) + +#define HEX(N) GLUE(0x, N) +#define STR(N) EXPAND_AND_STRINGIFY(GLUE(\x, N)) + +/* + * Text control characters + */ + +// Control character magic values, in 2-digit hex without prefix + +#define CTRL_NEWLINE 01 +#define CTRL_END 02 +#define CTRL_BOX_BREAK 04 +#define CTRL_COLOR 05 +#define CTRL_SHIFT 06 +#define CTRL_TEXTID 07 +#define CTRL_QUICKTEXT_ENABLE 08 +#define CTRL_QUICKTEXT_DISABLE 09 +#define CTRL_PERSISTENT 0A +#define CTRL_EVENT 0B +#define CTRL_BOX_BREAK_DELAYED 0C +#define CTRL_AWAIT_BUTTON_PRESS 0D +#define CTRL_FADE 0E +#define CTRL_NAME 0F +#define CTRL_OCARINA 10 +#define CTRL_FADE2 11 +#define CTRL_SFX 12 +#define CTRL_ITEM_ICON 13 +#define CTRL_TEXT_SPEED 14 +#define CTRL_BACKGROUND 15 +#define CTRL_MARATHON_TIME 16 +#define CTRL_RACE_TIME 17 +#define CTRL_POINTS 18 +#define CTRL_TOKENS 19 +#define CTRL_UNSKIPPABLE 1A +#define CTRL_TWO_CHOICE 1B +#define CTRL_THREE_CHOICE 1C +#define CTRL_FISH_INFO 1D +#define CTRL_HIGHSCORE 1E +#define CTRL_TIME 1F + +/* + * Colors + */ + +#define COLOR_STR(N) EXPAND_AND_STRINGIFY(GLUE(\x4, N)) + +// Color magic values, in single-digit hex without prefix + +#define CTRL_DEFAULT 0 +#define CTRL_RED 1 +#define CTRL_ADJUSTABLE 2 +#define CTRL_BLUE 3 +#define CTRL_LIGHTBLUE 4 +#define CTRL_PURPLE 5 +#define CTRL_YELLOW 6 +#define CTRL_BLACK 7 + +#ifdef MESSAGE_DATA_STATIC +// For use in message_data_static files + +#define ARG(x) x + +// while a control character, newlines are handled in the charmap conversion +// stage to allow normal newline \n usage in message_data_static files +#define NEWLINE STR(CTRL_NEWLINE) +#define END STR(CTRL_END) +#define BOX_BREAK STR(CTRL_BOX_BREAK) +#define COLOR(x) STR(CTRL_COLOR) ARG(x) // 1 +#define SHIFT(x) STR(CTRL_SHIFT) ARG(x) // 1 +#define TEXTID(x) STR(CTRL_TEXTID) ARG(x) // 2 +#define QUICKTEXT_ENABLE STR(CTRL_QUICKTEXT_ENABLE) +#define QUICKTEXT_DISABLE STR(CTRL_QUICKTEXT_DISABLE) +#define PERSISTENT STR(CTRL_PERSISTENT) +#define EVENT STR(CTRL_EVENT) +#define BOX_BREAK_DELAYED(x) STR(CTRL_BOX_BREAK_DELAYED) ARG(x) // 1 +#define AWAIT_BUTTON_PRESS STR(CTRL_AWAIT_BUTTON_PRESS) +#define FADE(x) STR(CTRL_FADE) ARG(x) // 1 +#define NAME STR(CTRL_NAME) +#define OCARINA STR(CTRL_OCARINA) +#define FADE2(x) STR(CTRL_FADE2) ARG(x) // 2 +#define SFX(x) STR(CTRL_SFX) ARG(x) // 2 +#define ITEM_ICON(x) STR(CTRL_ITEM_ICON) ARG(x) // 1 +#define TEXT_SPEED(x) STR(CTRL_TEXT_SPEED) ARG(x) // 1 +#define BACKGROUND(x,y,z) STR(CTRL_BACKGROUND) ARG(x) ARG(y) ARG(z) +#define MARATHON_TIME STR(CTRL_MARATHON_TIME) +#define RACE_TIME STR(CTRL_RACE_TIME) +#define POINTS STR(CTRL_POINTS) +#define TOKENS STR(CTRL_TOKENS) +#define UNSKIPPABLE STR(CTRL_UNSKIPPABLE) +#define TWO_CHOICE STR(CTRL_TWO_CHOICE) +#define THREE_CHOICE STR(CTRL_THREE_CHOICE) +#define FISH_INFO STR(CTRL_FISH_INFO) +#define HIGHSCORE(x) STR(CTRL_HIGHSCORE) ARG(x) // 1 +#define TIME STR(CTRL_TIME) + +/* + * Highscore values as strings, for code references the HighScores + * enum should be used. + */ + +#define HS_HORSE_ARCHERY "\x00" +#define HS_POE_POINTS "\x01" +#define HS_LARGEST_FISH "\x02" +#define HS_HORSE_RACE "\x03" +#define HS_MARATHON "\x04" +#define HS_DAMPE_RACE "\x06" + +/* + * Color values as strings + */ + +#define DEFAULT COLOR_STR(CTRL_DEFAULT) +#define RED COLOR_STR(CTRL_RED) +#define ADJUSTABLE COLOR_STR(CTRL_ADJUSTABLE) +#define BLUE COLOR_STR(CTRL_BLUE) +#define LIGHTBLUE COLOR_STR(CTRL_LIGHTBLUE) +#define PURPLE COLOR_STR(CTRL_PURPLE) +#define YELLOW COLOR_STR(CTRL_YELLOW) +#define BLACK COLOR_STR(CTRL_BLACK) + +#else +// For use in code files +#define MSGCOL_DEFAULT HEX(CTRL_DEFAULT) +#define MSGCOL_RED HEX(CTRL_RED) +#define MSGCOL_ADJUSTABLE HEX(CTRL_ADJUSTABLE) +#define MSGCOL_BLUE HEX(CTRL_BLUE) +#define MSGCOL_LIGHTBLUE HEX(CTRL_LIGHTBLUE) +#define MSGCOL_PURPLE HEX(CTRL_PURPLE) +#define MSGCOL_YELLOW HEX(CTRL_YELLOW) +#define MSGCOL_BLACK HEX(CTRL_BLACK) + +#define MESSAGE_NEWLINE HEX(CTRL_NEWLINE) +#define MESSAGE_END HEX(CTRL_END) +#define MESSAGE_BOX_BREAK HEX(CTRL_BOX_BREAK) +#define MESSAGE_COLOR HEX(CTRL_COLOR) +#define MESSAGE_SHIFT HEX(CTRL_SHIFT) +#define MESSAGE_TEXTID HEX(CTRL_TEXTID) +#define MESSAGE_QUICKTEXT_ENABLE HEX(CTRL_QUICKTEXT_ENABLE) +#define MESSAGE_QUICKTEXT_DISABLE HEX(CTRL_QUICKTEXT_DISABLE) +#define MESSAGE_PERSISTENT HEX(CTRL_PERSISTENT) +#define MESSAGE_EVENT HEX(CTRL_EVENT) +#define MESSAGE_BOX_BREAK_DELAYED HEX(CTRL_BOX_BREAK_DELAYED) +#define MESSAGE_AWAIT_BUTTON_PRESS HEX(CTRL_AWAIT_BUTTON_PRESS) +#define MESSAGE_FADE HEX(CTRL_FADE) +#define MESSAGE_NAME HEX(CTRL_NAME) +#define MESSAGE_OCARINA HEX(CTRL_OCARINA) +#define MESSAGE_FADE2 HEX(CTRL_FADE2) +#define MESSAGE_SFX HEX(CTRL_SFX) +#define MESSAGE_ITEM_ICON HEX(CTRL_ITEM_ICON) +#define MESSAGE_TEXT_SPEED HEX(CTRL_TEXT_SPEED) +#define MESSAGE_BACKGROUND HEX(CTRL_BACKGROUND) +#define MESSAGE_MARATHON_TIME HEX(CTRL_MARATHON_TIME) +#define MESSAGE_RACE_TIME HEX(CTRL_RACE_TIME) +#define MESSAGE_POINTS HEX(CTRL_POINTS) +#define MESSAGE_TOKENS HEX(CTRL_TOKENS) +#define MESSAGE_UNSKIPPABLE HEX(CTRL_UNSKIPPABLE) +#define MESSAGE_TWO_CHOICE HEX(CTRL_TWO_CHOICE) +#define MESSAGE_THREE_CHOICE HEX(CTRL_THREE_CHOICE) +#define MESSAGE_FISH_INFO HEX(CTRL_FISH_INFO) +#define MESSAGE_HIGHSCORE HEX(CTRL_HIGHSCORE) +#define MESSAGE_TIME HEX(CTRL_TIME) +#endif + +#endif diff --git a/include/message_data_static.h b/include/message_data_static.h new file mode 100644 index 0000000000..3b125647b5 --- /dev/null +++ b/include/message_data_static.h @@ -0,0 +1,55 @@ +#ifndef MESSAGE_DATA_STATIC_H +#define MESSAGE_DATA_STATIC_H + +#include "global.h" +#include "message_data_fmt.h" + +typedef enum { + /* 0 */ TEXTBOX_TYPE_BLACK, + /* 1 */ TEXTBOX_TYPE_WOODEN, + /* 2 */ TEXTBOX_TYPE_BLUE, + /* 3 */ TEXTBOX_TYPE_OCARINA, + /* 4 */ TEXTBOX_TYPE_NONE_BOTTOM, + /* 5 */ TEXTBOX_TYPE_NONE_NO_SHADOW, + /* 11 */ TEXTBOX_TYPE_CREDITS = 11 +} TextBoxType; + +typedef enum { + /* 0 */ TEXTBOX_BG_CROSS +} TextBoxBackground; + +typedef enum { + /* 0 */ TEXTBOX_POS_VARIABLE, + /* 1 */ TEXTBOX_POS_TOP, + /* 2 */ TEXTBOX_POS_BOTTOM, + /* 3 */ TEXTBOX_POS_MIDDLE +} TextBoxPosition; + +typedef struct { + u16 textId; + u8 typePos; + const char* segment; +} MessageTableEntry; + +/* + * Message Symbol Declarations + */ + +#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \ + extern const char _message_##textId##_staff[]; + +#include "text/message_data_staff.h" + +#undef DEFINE_MESSAGE + +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \ + extern const char _message_##textId##_nes[]; \ + extern const char _message_##textId##_ger[]; \ + extern const char _message_##textId##_fra[]; + +#include "text/message_data.h" +extern const char _message_0xFFFC_nes[]; + +#undef DEFINE_MESSAGE + +#endif diff --git a/include/regs.h b/include/regs.h index a282977bda..51625dc893 100644 --- a/include/regs.h +++ b/include/regs.h @@ -122,5 +122,44 @@ #define R_DISABLE_INPUT_DISPLAY HREG(47) #define R_EN_GOROIWA_SPEED mREG(12) #define R_NAVI_MSG_REGION_ALPHA nREG(87) +#define R_TEXT_DROP_SHADOW_OFFSET XREG(60) +#define R_TEXTBOX_X_TARGET XREG(72) +#define R_TEXTBOX_Y_TARGET XREG(73) +#define R_TEXTBOX_TEXWIDTH YREG(16) +#define R_TEXTBOX_TEXHEIGHT YREG(17) +#define R_TEXTBOX_WIDTH YREG(22) +#define R_TEXTBOX_HEIGHT YREG(23) +#define R_MESSAGE_DEBUGGER_SELECT YREG(78) +#define R_MESSAGE_DEBUGGER_TEXTID YREG(79) +#define R_TEXT_LINE_SPACING XREG(56) +#define R_TEXT_CHAR_SCALE XREG(57) +#define R_TEXTBOX_ICON_XPOS YREG(71) +#define R_TEXTBOX_ICON_YPOS YREG(72) +#define R_TEXTBOX_ICON_SIZE YREG(75) +#define R_TEXTBOX_X VREG(0) +#define R_TEXTBOX_Y VREG(1) +#define R_TEXTBOX_END_XPOS XREG(64) +#define R_TEXTBOX_END_YPOS XREG(65) +#define R_TEXTBOX_WIDTH_TARGET XREG(74) +#define R_TEXTBOX_HEIGHT_TARGET XREG(75) +#define R_TEXTBOX_TEXWIDTH_TARGET XREG(76) +#define R_TEXTBOX_TEXHEIGHT_TARGET XREG(77) +#define R_TEXT_ADJUST_COLOR_1_R VREG(33) +#define R_TEXT_ADJUST_COLOR_1_G VREG(34) +#define R_TEXT_ADJUST_COLOR_1_B VREG(35) +#define R_TEXT_ADJUST_COLOR_2_R VREG(36) +#define R_TEXT_ADJUST_COLOR_2_G VREG(37) +#define R_TEXT_ADJUST_COLOR_2_B VREG(38) +#define R_TEXT_CHOICE_XPOS XREG(66) +#define R_TEXT_CHOICE_YPOS(choice) XREG(67 + (choice)) +#define R_TEXT_INIT_XPOS XREG(54) +#define R_TEXT_INIT_YPOS XREG(55) +#define R_TEXTBOX_BG_YPOS XREG(61) +#define R_TEXTBOX_CLEF_XPOS VREG(7) +#define R_TEXTBOX_CLEF_YPOS VREG(8) +#define R_OCARINA_NOTES_XPOS VREG(28) +#define R_OCARINA_NOTES_YPOS(note) VREG(45 + (note)) +#define R_OCARINA_NOTES_XPOS_OFFSET VREG(29) +#define R_OCARINA_NOTES_YPOS_OFFSET VREG(51) #endif diff --git a/include/segment_symbols.h b/include/segment_symbols.h index ac6d99dc2f..49459ef69b 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -43,10 +43,16 @@ DECLARE_ROM_SEGMENT(do_action_static) DECLARE_ROM_SEGMENT(message_static) DECLARE_ROM_SEGMENT(message_texture_static) DECLARE_ROM_SEGMENT(nes_font_static) + +DECLARE_SEGMENT(nes_message_data_static) DECLARE_ROM_SEGMENT(nes_message_data_static) +DECLARE_SEGMENT(ger_message_data_static) DECLARE_ROM_SEGMENT(ger_message_data_static) +DECLARE_SEGMENT(fra_message_data_static) DECLARE_ROM_SEGMENT(fra_message_data_static) +DECLARE_SEGMENT(staff_message_data_static) DECLARE_ROM_SEGMENT(staff_message_data_static) + DECLARE_ROM_SEGMENT(map_grand_static) DECLARE_ROM_SEGMENT(map_i_static) DECLARE_ROM_SEGMENT(map_48x85_static) diff --git a/include/variables.h b/include/variables.h index 6fd3a9a080..614d6a0818 100644 --- a/include/variables.h +++ b/include/variables.h @@ -13,8 +13,6 @@ extern Gfx D_06025658[]; extern Gfx D_060257B8[]; extern Gfx D_0602A738[]; extern Gfx D_0602CB48[]; -//extern ? D_070380D4; -//extern ? D_0703811C; //extern ? D_80000004; //extern ? D_80000008; @@ -369,10 +367,10 @@ extern u8 gAudioSfxSwapOff; extern u8 D_801333F8; //extern ? sSeqCmdWrPos; //extern ? sSeqCmdRdPos; -//extern ? D_80133408; +extern u8 D_80133408; extern u8 D_8013340C; extern u8 gAudioSpecId; -//extern ? D_80133418; +extern u8 D_80133418; extern AudioSpec gAudioSpecs[18]; extern s32 gOverlayLogSeverity; //extern ? D_80134480; @@ -384,2442 +382,13 @@ extern u32 gOSContInitialized; // = 0 extern s32 __osPfsInodeCacheChannel; extern u8 __osPfsInodeCacheBank; extern s32 __osPfsLastChannel; -//extern ? D_80135130; -//extern ? D_80135158; -//extern ? D_801351A8; -//extern ? D_801351BC; -//extern ? D_801351F8; -//extern ? D_8013520C; -//extern ? D_80135220; -//extern ? D_80135230; -//extern ? D_80135244; -//extern ? D_80135264; -//extern ? D_80135278; -//extern ? D_801352B8; -//extern ? D_801352CC; -//extern ? D_801352E0; -//extern ? D_801352F4; -//extern ? D_80135308; -//extern ? D_8013531C; -//extern ? D_80135330; -//extern ? D_80135344; -//extern ? D_80135358; -//extern ? D_801353A4; -//extern ? D_801353B8; -//extern ? D_801353E0; -//extern ? D_801353F4; -//extern ? D_80135418; -//extern ? D_80135450; -//extern ? D_80135458; -//extern ? D_80135494; -//extern ? D_80135498; -//extern ? D_801354B4; -//extern ? D_801354E0; -//extern ? D_80135504; -//extern ? D_80135518; -//extern ? D_80135548; -//extern ? D_8013555C; -//extern ? D_80135594; -//extern ? D_801355C0; -//extern ? D_801355D4; -//extern ? D_801355E8; -//extern ? D_801355FC; -//extern ? D_80135610; -//extern ? D_80135624; -//extern ? D_80135638; -//extern ? D_8013564C; -//extern ? D_80135660; -//extern ? D_80135674; -//extern ? D_80135688; -//extern ? D_8013569C; -//extern ? D_801356C0; -//extern ? D_801356F8; -//extern ? D_8013571C; -//extern ? D_80135730; -//extern ? D_80135750; -//extern ? D_80135780; -//extern ? D_8013579C; -//extern ? D_801357C0; -//extern ? D_801357F8; -//extern ? D_8013581C; -//extern ? D_80135838; -//extern ? D_80135878; -//extern ? D_80135894; -//extern ? D_8013589C; -//extern ? D_80135958; -//extern ? D_8013595C; -//extern ? D_80135964; -//extern ? D_801359AC; -//extern ? D_801359B0; -//extern ? D_80135A4C; -//extern ? D_80135A54; -//extern ? D_80135ADC; -//extern ? D_80135AE8; -//extern ? D_80135BB4; -//extern ? D_80135BBC; -//extern ? D_80135BF4; -//extern ? D_80135C00; -//extern ? D_80135C24; -//extern ? D_80135FD8; -//extern ? D_80135FE8; -//extern ? D_80135FF0; -//extern ? D_80135FF4; -//extern ? D_80136010; -//extern ? D_80136028; -//extern ? D_80136040; -//extern ? D_80136048; -//extern ? D_80136078; -//extern ? D_8013607C; -//extern ? D_80136080; -//extern ? D_80136090; -//extern ? D_801360A0; -//extern ? D_801360B0; -//extern ? D_801360C0; -//extern ? D_801360D0; -//extern ? D_801360E0; -//extern ? D_801360F0; -//extern ? D_80136100; -//extern ? D_80136110; -//extern ? D_80136130; -//extern ? D_80136140; -//extern ? D_80136150; -//extern ? D_80136160; -//extern ? D_80136170; -//extern ? D_80136180; -//extern ? D_80136184; -//extern ? D_801361B8; -extern char D_80136208[]; -extern char D_80136218[]; -extern char D_80136228[]; -extern char D_80136238[]; -//extern ? D_8013627C; -//extern ? D_8013628C; -//extern ? D_8013629C; -//extern ? D_801362AC; -//extern ? D_801362BC; -//extern ? D_801362CC; -//extern ? D_801362E4; -//extern ? D_801362F4; -//extern ? D_80136304; -//extern ? D_80136340; -//extern ? D_80136354; -//extern ? D_80136358; -//extern ? D_80136374; -//extern ? D_80136384; -//extern ? D_80136398; -//extern ? D_801363A4; -//extern ? D_801363B4; -//extern ? D_801363C4; -//extern ? D_801363D4; -//extern ? D_801363E4; -//extern ? D_801363F4; -//extern ? D_80136408; -//extern ? D_80136434; -//extern ? D_80136458; -//extern ? D_80136480; -//extern ? D_80136490; -//extern ? D_801364A0; -//extern ? D_801364B4; -//extern ? D_801364C4; -//extern ? D_801364D4; -//extern ? D_801364D8; -//extern ? D_80136508; -//extern ? D_80136518; -//extern ? D_8013653C; -//extern ? D_8013654C; -//extern ? D_8013657C; -//extern ? D_80136598; -//extern ? D_801365BC; -//extern ? D_801365D4; -//extern ? D_801365E4; -//extern ? D_80136610; -//extern ? D_80136614; -//extern ? D_8013662C; -//extern ? D_8013663C; -//extern ? D_80136640; -//extern ? D_8013665C; -//extern ? D_80136684; -//extern ? D_801366A0; -//extern ? D_801366B8; -//extern ? D_801366D8; -//extern ? D_801366E8; -//extern ? D_801366FC; -//extern ? D_80136754; -//extern ? D_8013675C; -//extern ? D_8013678C; -//extern ? D_80136790; -//extern ? D_801367D8; -//extern ? D_80136818; -//extern ? D_8013681C; -//extern ? D_80136838; -//extern ? D_80136848; -//extern ? D_8013686C; -//extern ? D_80136870; -//extern ? D_8013688C; -//extern ? D_8013689C; -//extern ? D_801368B8; -//extern ? D_801368D8; -//extern ? D_801368E8; -//extern ? D_80136904; -//extern ? D_80136914; -//extern ? D_80136924; -//extern ? D_80136934; -//extern ? D_80136944; -//extern ? D_80136954; -//extern ? D_80136964; -//extern ? D_80136974; -//extern ? D_80136984; -//extern ? D_80136994; -//extern ? D_801369A4; -//extern ? D_801369B4; -//extern ? D_801369C4; -//extern ? D_801369D4; -//extern ? D_801369F4; -//extern ? D_80136A04; -//extern ? D_80136A14; -//extern ? D_80136A24; -//extern ? D_80136A34; -//extern ? D_80136A44; -extern char D_80136A54[]; -extern char D_80136A68[]; -extern char D_80136A7C[]; -extern char D_80136A90[]; -extern char D_80136AA4[]; -extern char D_80136AB8[]; -extern f32 D_80136D3C; -extern f32 D_80136D40; -extern f32 D_80136D44; -//extern ? D_801385A4; -//extern ? D_801385B8; -//extern ? D_801385F8; -//extern ? D_8013861C; -//extern ? D_80138620; -//extern ? D_80138634; -//extern ? D_80138654; -//extern ? D_8013866C; -//extern ? D_80138670; -//extern ? D_80138678; -//extern ? D_801386CC; -//extern ? D_801386D0; -//extern ? D_801386E4; -//extern ? D_801386F4; -//extern ? D_80138708; -//extern ? D_80138718; -//extern ? D_80138724; -//extern ? D_80138780; -//extern ? D_80138784; -//extern ? D_80138798; -//extern ? D_801387A8; -//extern ? D_801387BC; -//extern ? D_801387CC; -//extern ? D_80138810; -//extern ? D_80138834; -//extern ? D_80138858; -//extern ? D_8013887C; -//extern ? D_801388A4; -//extern ? D_801388B4; -//extern ? D_801388C4; -//extern ? D_801388CC; -//extern ? D_801388F0; -//extern ? D_801388F4; -//extern ? D_80138900; -//extern ? D_8013894C; -//extern ? D_80138950; -//extern ? D_80138960; -//extern ? D_80138980; -//extern ? D_80138990; -//extern ? D_801389A0; -//extern ? D_801389C0; -//extern ? D_801389D0; -//extern ? D_801389F0; -//extern ? D_80138A00; -//extern ? D_80138A10; -//extern ? D_80138A50; -//extern ? D_80138A60; -//extern ? D_80138A80; -//extern ? D_80138AA4; -//extern ? D_80138AB4; -//extern ? D_80138AC4; -//extern ? D_80138AE0; -//extern ? D_80138AF0; -//extern ? D_80138B30; -//extern ? D_80138B40; -//extern ? D_80138B68; -//extern ? D_80138B78; -//extern ? D_80138B8C; -//extern ? D_80138B9C; -//extern ? D_80138BB0; -//extern ? D_80138BC0; -//extern ? D_80138BC8; -//extern ? D_80138C14; -//extern ? D_80138C18; -//extern ? D_80138C20; -//extern ? D_80138C44; -//extern ? D_80138C48; -//extern ? D_80138C50; -//extern ? D_80138C74; -//extern ? D_80138C78; -//extern ? D_80138C80; -//extern ? D_80138CE0; -//extern ? D_80138CEC; -//extern ? D_80138D5C; -//extern ? D_80138D60; -//extern ? D_80138D68; -//extern ? D_80138DA4; -//extern ? D_80138DAC; -//extern ? D_80138DE8; -//extern ? D_80138E2C; -//extern ? D_80138E3C; -//extern ? D_80138E80; -//extern ? D_80138E90; -//extern ? D_80138E98; -//extern ? D_80138EBC; -//extern ? D_80138EC0; -//extern ? D_80138EC8; -//extern ? D_80138EEC; -//extern ? D_80138EF0; -//extern ? D_80138F04; -//extern ? D_80138F14; -//extern ? D_80138F28; -//extern ? D_80138FD0; -//extern ? D_80138FD8; -//extern ? D_80139038; -//extern ? D_80139060; -//extern ? D_80139094; -//extern ? D_801390B4; -//extern ? D_801390D4; -//extern ? D_801390F4; -//extern ? D_8013912C; -//extern ? D_80139140; -//extern ? D_80139168; -//extern ? D_801391B4; -//extern ? D_80139218; -//extern ? D_80139248; -//extern ? D_80139294; -//extern ? D_801392DC; -//extern ? D_8013930C; -//extern ? D_80139344; -//extern ? D_8013935C; -//extern ? D_8013938C; -//extern ? D_801393DC; -//extern ? D_801393FC; -//extern ? D_80139408; -//extern ? D_80139450; -//extern ? D_80139488; -//extern ? D_801394C0; -//extern ? D_801394F8; -//extern ? D_80139530; -//extern ? D_80139550; -//extern ? D_8013956C; -//extern ? D_80139588; -//extern ? D_801395A4; -//extern ? D_801395C0; -//extern ? D_801395DC; -//extern ? D_80139604; -//extern ? D_8013960C; -//extern ? D_80139614; -//extern ? D_80139644; -//extern ? D_80139654; -//extern ? D_8013965C; -//extern ? D_80139690; -//extern ? D_801396D4; -//extern ? D_80139714; -//extern ? D_80139754; -//extern ? D_80139764; -//extern ? D_80139794; -//extern ? D_801397C4; -//extern ? D_801397E4; -//extern ? D_801397F4; -//extern ? D_80139824; -//extern ? D_8013984C; -//extern ? D_801398C0; -//extern ? D_801398E4; -//extern ? D_80139910; -//extern ? D_80139930; -//extern ? D_80139960; -//extern ? D_80139964; -//extern ? D_80139968; -//extern ? D_8013996C; -//extern ? D_80139970; -//extern ? D_80139984; -//extern ? D_801399A4; -//extern ? D_801399CC; -//extern ? D_801399E8; -//extern ? D_80139A00; -//extern ? D_80139A24; -//extern ? D_80139A34; -//extern ? D_80139A48; -//extern ? D_80139A60; -//extern ? D_80139A84; -//extern ? D_80139AA8; -//extern ? D_80139AD4; -//extern ? D_80139AE8; -//extern ? D_80139B08; -//extern ? D_80139B28; -//extern ? D_80139B4C; -//extern ? D_80139B74; -//extern ? D_80139B98; -//extern ? D_80139BB4; -//extern ? D_80139BD8; -//extern ? D_80139BF0; -//extern ? D_80139C34; -//extern ? D_80139C58; -//extern ? D_80139C90; -//extern ? D_80139CC0; -//extern ? D_80139D00; -//extern ? D_80139D2C; -//extern ? D_80139D54; -//extern ? D_8013A580; -//extern ? D_8013A5B0; -//extern ? D_8013A5C8; -//extern ? D_8013A5D8; -//extern ? D_8013A5F0; -//extern ? D_8013A608; -//extern ? D_8013A620; -//extern ? D_8013A638; -//extern ? D_8013A640; -//extern ? D_8013A670; -//extern ? D_8013A674; -//extern ? D_8013A68C; -//extern ? D_8013A694; -//extern ? D_8013A6C4; -//extern ? D_8013A6C8; -//extern ? D_8013A6E0; -//extern ? D_8013A6E8; -//extern ? D_8013A714; -//extern ? D_8013A718; -//extern ? D_8013A738; -//extern ? D_8013A750; -//extern ? D_8013A768; -//extern ? D_8013A780; -//extern ? D_8013A788; -//extern ? D_8013A7B4; -//extern ? D_8013A7B8; -//extern ? D_8013A7D0; -//extern ? D_8013A7D8; -//extern ? D_8013A804; -//extern ? D_8013A808; -//extern ? D_8013A828; -//extern ? D_8013A840; -//extern ? D_8013A868; -//extern ? D_8013A880; -//extern ? D_8013A8BC; -//extern ? D_8013A8E4; -//extern ? D_8013A8FC; -//extern ? D_8013A94C; -//extern ? D_8013A988; -//extern ? D_8013A9B0; -//extern ? D_8013A9C8; -//extern ? D_8013AA04; -//extern ? D_8013AA2C; -//extern ? D_8013AA44; -//extern ? D_8013AA94; -//extern ? D_8013AAD0; -//extern ? D_8013AAF8; -//extern ? D_8013AB10; -//extern ? D_8013AB4C; -//extern ? D_8013AB74; -//extern ? D_8013AB8C; -//extern ? D_8013ABDC; -//extern ? D_8013AC18; -//extern ? D_8013AC58; -//extern ? D_8013AC7C; -//extern ? D_8013ACA0; -//extern ? D_8013ACB8; -//extern ? D_8013B830; -//extern ? D_8013B844; -//extern ? D_8013B858; -//extern ? D_8013B864; -//extern ? D_8013B868; -//extern ? D_8013B87C; -//extern ? D_8013B890; -//extern ? D_8013B8A4; -//extern ? D_8013B8B0; -//extern ? D_8013B8B4; -//extern ? D_8013B9E0; -//extern ? D_8013BA00; -//extern ? D_8013BA18; -//extern ? D_8013BA38; -//extern ? D_8013BA58; -//extern ? D_8013BA78; -//extern ? D_8013BA98; -//extern ? D_8013BAB8; -//extern ? D_8013BAFC; -//extern ? D_8013BD40; -//extern ? D_8013BD4C; -//extern ? D_8013BD5C; -//extern ? D_8013BD6C; -//extern ? D_8013BD7C; -//extern ? D_8013BD94; -//extern ? D_8013BDAC; -//extern ? D_8013BDBC; -//extern ? D_8013BE88; -//extern ? D_8013BE98; -//extern ? D_8013BEA4; -//extern ? D_8013BEB8; -//extern ? D_8013BEF4; -//extern ? D_8013BF00; -//extern ? D_8013BF30; -//extern ? D_8013BF6C; -//extern ? D_8013BF98; -//extern ? D_8013BFBC; -//extern ? D_8013BFE0; -//extern ? D_8013C004; -//extern ? D_8013C028; -//extern ? D_8013C04C; -//extern ? D_8013C07C; -//extern ? D_8013C084; -//extern ? D_8013C0A0; -//extern ? D_8013C0A4; -//extern ? D_8013C160; -extern char D_8013C190[]; -//extern ? D_8013C1A0; -//extern ? D_8013C1B0; -//extern ? D_8013C1C0; -//extern ? D_8013C1E4; -//extern ? D_8013C218; -//extern ? D_8013C22C; -//extern ? D_8013C240; -//extern ? D_8013C2C0; -//extern ? D_8013C2F4; -//extern ? D_8013C330; -//extern ? D_8013C340; -//extern ? D_8013C350; -//extern ? D_8013C360; -//extern ? D_8013C370; -//extern ? D_8013C380; -//extern ? D_8013C390; -//extern ? D_8013C3D0; -//extern ? D_8013C3D8; -//extern ? D_8013C3E0; -//extern ? D_8013C3E4; -//extern ? D_8013C3F0; -//extern ? D_8013C3F8; -//extern ? D_8013C3FC; -//extern ? D_8013C400; -//extern ? D_8013C404; -//extern ? D_8013C408; -//extern ? D_8013C410; -//extern ? D_8013C414; -//extern ? D_8013C420; -//extern ? D_8013C428; -//extern ? D_8013C42C; -//extern ? D_8013C430; -//extern ? D_8013C434; -//extern ? D_8013C438; -//extern ? D_8013C440; -//extern ? D_8013C444; -//extern ? D_8013C44C; -//extern ? D_8013C450; -//extern ? D_8013C458; -//extern ? D_8013C470; -//extern ? D_8013C480; -//extern ? D_8013C490; -//extern ? D_8013C4C8; -//extern ? D_8013C500; -//extern ? D_8013C52C; -//extern ? D_8013C55C; -//extern ? D_8013C56C; -//extern ? D_8013C57C; -//extern ? D_8013C58C; -//extern ? D_8013C59C; -//extern ? D_8013C5AC; -//extern ? D_8013C5BC; -//extern ? D_8013C5CC; -//extern ? D_8013C5DC; -//extern ? D_8013C5EC; -//extern ? D_8013C5FC; -//extern ? D_8013C60C; -//extern ? D_8013C61C; -//extern ? D_8013C62C; -//extern ? D_8013C63C; -//extern ? D_8013C64C; -//extern ? D_8013C65C; -//extern ? D_8013C66C; -//extern ? D_8013C67C; -//extern ? D_8013C68C; -//extern ? D_8013C69C; -//extern ? D_8013C6D4; -//extern ? D_8013C6E8; -//extern ? D_8013C6FC; -//extern ? D_8013C710; -//extern ? D_8013C724; -//extern ? D_8013C738; -//extern ? D_8013C750; -//extern ? D_8013C760; -//extern ? D_8013C770; -//extern ? D_8013C780; -//extern ? D_8013C840; -extern char D_8013C860[]; -extern char D_8013C874[]; -extern f32 D_8013C888; -extern f32 D_8013C88C; -extern f32 D_8013C890; -extern f32 D_8013C894; -extern f32 D_8013C898; -//extern ? D_8013C8A0; -//extern ? D_8013C8B0; -//extern ? D_8013C8C0; -//extern ? D_8013C8D0; -//extern ? D_8013C8E0; -//extern ? D_8013CB20; -//extern ? D_8013CB2C; -//extern ? D_8013CB40; -//extern ? D_8013CB4C; -//extern ? D_8013CB58; -//extern ? D_8013CB68; -extern f32 D_8013CB80; -//extern ? D_8013CBA0; -//extern ? D_8013CBC0; -//extern ? D_8013CBD4; -//extern ? D_8013CBD8; -//extern ? D_8013CC18; -//extern ? D_8013CC60; -//extern ? D_8013CCA8; -//extern ? D_8013CCDC; -//extern ? D_8013CD20; -//extern ? D_8013CD6C; -//extern ? D_8013CDB4; -//extern ? D_8013CDEC; -//extern ? D_8013CE14; -//extern ? D_8013D700; -//extern ? D_8013D708; -//extern ? D_8013D75C; -//extern ? D_8013D760; -//extern ? D_8013D768; -//extern ? D_8013D774; -//extern ? D_8013D778; -//extern ? D_8013D788; -//extern ? D_8013D790; -//extern ? D_8013D7E0; -//extern ? D_8013D7E4; -//extern ? D_8013D7F4; -//extern ? D_8013D810; -//extern ? D_8013D864; -//extern ? D_8013D87C; -//extern ? D_8013D884; -//extern ? D_8013D894; -//extern ? D_8013D898; -//extern ? D_8013D8A8; -//extern ? D_8013D8E8; -//extern ? D_8013D908; -//extern ? D_8013D918; -//extern ? D_8013D928; -//extern ? D_8013D938; -//extern ? D_8013D948; -//extern ? D_8013D958; -//extern ? D_8013D968; -//extern ? D_8013D988; -//extern ? D_8013D998; -//extern ? D_8013D9C0; -//extern ? D_8013D9C8; -//extern ? D_8013D9D8; -//extern ? D_8013E770; -//extern ? D_8013E784; -//extern ? D_8013E798; -//extern ? D_8013E7AC; -//extern ? D_8013E7C0; -//extern ? D_8013E7D4; -//extern ? D_8013E7E8; -//extern ? D_8013E7FC; -//extern ? D_8013E810; -//extern ? D_8013E824; -//extern ? D_8013E838; -//extern ? D_8013E84C; -//extern ? D_8013E860; -//extern ? D_8013E874; -//extern ? D_8013E888; -//extern ? D_8013E89C; -//extern ? D_8013E8B0; -//extern ? D_8013E8C4; -//extern ? D_8013E8D8; -//extern ? D_8013E8EC; -extern u32* D_8013E960; -extern u32* D_8013E99C; -//extern ? D_8013E9B4; -//extern ? D_8013E9C4; -//extern ? D_8013E9E0; -//extern ? D_8013EA20; -//extern ? D_8013EAE0; -//extern ? D_8013EAE8; -//extern ? D_8013EAF4; -//extern ? D_8013EAFC; -//extern ? D_8013EB08; -//extern ? D_8013EB14; -//extern ? D_8013EB20; -//extern ? D_8013EB2C; -//extern ? D_8013EB38; -//extern ? D_8013EB44; -//extern ? D_8013EB50; -//extern ? D_8013EB5C; -//extern ? D_8013EB68; -//extern ? D_8013EB74; -//extern ? D_8013EB80; -//extern ? D_8013EB8C; -//extern ? D_8013EB98; -//extern ? D_8013EBA4; -//extern ? D_8013EBB0; -//extern ? D_8013EBBC; -//extern ? D_8013EBC8; -//extern ? D_8013EBD4; -//extern ? D_8013EBE0; -//extern ? D_8013EBEC; -//extern ? D_8013EBF8; -//extern ? D_8013EC04; -//extern ? D_8013EC10; -//extern ? D_8013EC1C; -//extern ? D_8013EC28; -//extern ? D_8013EC34; -//extern ? D_8013EC40; -//extern ? D_8013EC4C; -//extern ? D_8013EC58; -//extern ? D_8013EC64; -//extern ? D_8013EC70; -//extern ? D_8013EC7C; -//extern ? D_8013EC88; -//extern ? D_8013EC94; -//extern ? D_8013ECA0; -//extern ? D_8013ECAC; -//extern ? D_8013ECB8; -//extern ? D_8013ECC4; -//extern ? D_8013ECD0; -//extern ? D_8013ECDC; -//extern ? D_8013ECE8; -//extern ? D_8013ECF4; -//extern ? D_8013ED00; -//extern ? D_8013ED0C; -//extern ? D_8013ED18; -//extern ? D_8013ED24; -//extern ? D_8013ED30; -//extern ? D_8013ED3C; -//extern ? D_8013ED48; -//extern ? D_8013ED54; -//extern ? D_8013ED60; -//extern ? D_8013ED6C; -//extern ? D_8013ED78; -//extern ? D_8013ED84; -//extern ? D_8013ED90; -//extern ? D_8013ED9C; -//extern ? D_8013EDA8; -//extern ? D_8013EDB4; -//extern ? D_8013EDC0; -//extern ? D_8013EDCC; -//extern ? D_8013EDD8; -//extern ? D_8013EDE4; -//extern ? D_8013EDF0; -//extern ? D_8013EDFC; -//extern ? D_8013EE08; -//extern ? D_8013EE14; -//extern ? D_8013EE20; -//extern ? D_8013EE2C; -//extern ? D_8013EE38; -//extern ? D_8013EE44; -//extern ? D_8013EE50; -//extern ? D_8013EE5C; -//extern ? D_8013EE68; -//extern ? D_8013EE74; -//extern ? D_8013EE80; -//extern ? D_8013EE8C; -//extern ? D_8013EE98; -//extern ? D_8013EEA4; -//extern ? D_8013EEB0; -//extern ? D_8013EEBC; -//extern ? D_8013EEC8; -//extern ? D_8013EED4; -//extern ? D_8013EEE0; -//extern ? D_8013EEEC; -//extern ? D_8013EEF8; -//extern ? D_8013EF04; -//extern ? D_8013EF10; -//extern ? D_8013EF1C; -//extern ? D_8013F2C0; -//extern ? D_8013F2D0; -//extern ? D_8013F2E0; -//extern ? D_8013F2F0; -//extern ? D_8013F310; -//extern ? D_8013FF50; -//extern ? D_8013FF64; -//extern ? D_8013FF78; -//extern ? D_8013FF8C; -//extern ? D_8013FF94; -//extern ? D_8013FFB8; -//extern ? D_8013FFBC; -//extern ? D_8013FFD0; -//extern ? D_8013FFE4; -//extern ? D_8013FFF8; -//extern ? D_8014000C; -//extern ? D_80140020; -//extern ? D_80140034; -//extern ? D_80140048; -//extern ? D_80140050; -//extern ? D_80140074; -//extern ? D_80140078; -//extern ? D_8014008C; -//extern ? D_801400A0; -//extern ? D_801400B4; -//extern ? D_801400C8; -//extern ? D_801400DC; -//extern ? D_801400F0; -//extern ? D_80140104; -//extern ? D_8014010C; -//extern ? D_8014012C; -//extern ? D_80140130; -//extern ? D_80140144; -//extern ? D_80140158; -//extern ? D_8014016C; -//extern ? D_80140180; -//extern ? D_80140194; -//extern ? D_801401A8; -//extern ? D_801401BC; -//extern ? D_801401C4; -//extern ? D_801401E4; -//extern ? D_801401E8; -//extern ? D_801401FC; -//extern ? D_80140210; -//extern ? D_80140224; -//extern ? D_80140238; -//extern ? D_8014024C; -//extern ? D_80140258; -//extern ? D_8014026C; -//extern ? D_8014027C; -//extern ? D_80140290; -//extern ? D_801402A4; -//extern ? D_801402B8; -//extern ? D_801402C4; -//extern ? D_801402D8; -//extern ? D_801402E0; -//extern ? D_80140310; -//extern ? D_80140314; -//extern ? D_80140328; -//extern ? D_8014033C; -//extern ? D_80140350; -//extern ? D_80140358; -//extern ? D_8014038C; -//extern ? D_80140390; -//extern ? D_801403A4; -//extern ? D_801403B8; -//extern ? D_801403CC; -//extern ? D_801403E0; -//extern ? D_801403F4; -//extern ? D_80140410; -//extern ? D_8014042C; -//extern ? D_80140460; -//extern ? D_80140464; -//extern ? D_80140478; -//extern ? D_8014048C; -//extern ? D_801404B0; -//extern ? D_801404C4; -//extern ? D_801404CC; -//extern ? D_801404FC; -//extern ? D_80140500; -//extern ? D_80140514; -//extern ? D_80140528; -//extern ? D_8014054C; -//extern ? D_80140560; -//extern ? D_80140568; -//extern ? D_8014059C; -//extern ? D_801405A0; -//extern ? D_801405B4; -//extern ? D_801405C8; -//extern ? D_801405D0; -//extern ? D_80140604; -//extern ? D_80140608; -//extern ? D_8014061C; -//extern ? D_80140638; -//extern ? D_8014064C; -//extern ? D_80140680; -//extern ? D_8014068C; -//extern ? D_80140698; -//extern ? D_801406A4; -//extern ? D_801406B0; -//extern ? D_801406BC; -//extern ? D_801406C8; -//extern ? D_801406D4; -//extern ? D_801406F0; -//extern ? D_80140700; -//extern ? D_8014071C; -//extern ? D_8014072C; -//extern ? D_8014073C; -//extern ? D_80140754; -//extern ? D_80140764; -//extern ? D_80140774; -//extern ? D_8014078C; -//extern ? D_8014079C; -//extern ? D_801407AC; -//extern ? D_801407BC; -//extern ? D_801407D0; -//extern ? D_801407DC; -//extern ? D_8014080C; -//extern ? D_80140810; -//extern ? D_80140850; -//extern ? D_80140864; -//extern ? D_80140878; -//extern ? D_80140880; -//extern ? D_801408A4; -//extern ? D_801408B4; -//extern ? D_801408B8; -//extern ? D_801408C0; -//extern ? D_80140908; -//extern ? D_80140910; -//extern ? D_80140958; -//extern ? D_8014095C; -//extern ? D_80140964; -//extern ? D_801409AC; -//extern ? D_801409B4; -//extern ? D_801409FC; -//extern ? D_80140A00; -//extern ? D_80140A20; -//extern ? D_80140A44; -//extern ? D_80140A88; -//extern ? D_80140AB4; -//extern ? D_80140AD0; -//extern ? D_80140B0C; -//extern ? D_80140B3C; -//extern ? D_80140B5C; -//extern ? D_80140B74; -//extern ? D_80140BB8; -//extern ? D_80140BBC; -//extern ? D_80140BC0; -//extern ? D_80140BD4; -//extern ? D_80140BEC; -//extern ? D_80140C14; -//extern ? D_80140C58; -//extern ? D_80140C94; -//extern ? D_80140CA8; -//extern ? D_80140CC4; -//extern ? D_80140CDC; -//extern ? D_80140CF0; -//extern ? D_80140D08; -//extern ? D_80140D58; -//extern ? D_80140D5C; -//extern ? D_80140D60; -//extern ? D_80140D74; -//extern ? D_80140D80; -//extern ? D_80140D8C; -//extern ? D_80140D9C; -//extern ? D_80140DB8; -//extern ? D_80140DF0; -//extern ? D_80140E00; -//extern ? D_80140E18; -//extern ? D_80140E2C; -//extern ? D_80140E3C; -//extern ? D_80140E60; -//extern ? D_80140E70; -//extern ? D_80140E88; -//extern ? D_80140E98; -//extern ? D_80140EC4; -//extern ? D_80140EE0; -//extern ? D_80140EFC; -//extern ? D_80140F28; -//extern ? D_80140F30; -//extern ? D_80140F4C; -//extern ? D_80140F68; -//extern ? D_80140F84; -//extern ? D_80140F88; -//extern ? D_80140F94; -//extern ? D_80140FAC; -extern char D_80141030[]; -//extern ? D_80141060; -//extern ? D_80141064; -//extern ? D_80141070; -//extern ? D_8014107C; -//extern ? D_80141088; -//extern ? D_801410A0; -//extern ? D_801410AC; -//extern ? D_801410B8; -//extern ? D_801410C4; -//extern ? D_801410D0; -//extern ? D_801410E4; -//extern ? D_801410F0; -//extern ? D_80141104; -//extern ? D_80141110; -//extern ? D_8014111C; -//extern ? D_80141128; -//extern ? D_80141134; -//extern ? D_80141140; -//extern ? D_80141144; -//extern ? D_80141150; -//extern ? D_8014115C; -//extern ? D_80141168; -//extern ? D_801411A0; -//extern ? D_801411AC; -//extern ? D_801411BC; -//extern ? D_801411C0; -//extern ? D_801411C8; -//extern ? D_801411D4; -//extern ? D_801411E0; -//extern ? D_801411F0; -//extern ? D_801411F4; -//extern ? D_80141200; -//extern ? D_8014120C; -//extern ? D_80141210; -//extern ? D_8014121C; -//extern ? D_80141228; -//extern ? D_80141234; -//extern ? D_80141240; -//extern ? D_8014124C; -//extern ? D_80141250; -//extern ? D_8014125C; -//extern ? D_80141268; -//extern ? D_80141274; -//extern ? D_80141280; -//extern ? D_8014128C; -//extern ? D_80141290; -//extern ? D_8014129C; -//extern ? D_801412A8; -//extern ? D_801412B4; -//extern ? D_801412BC; -//extern ? D_801412C8; -//extern ? D_801412D4; -//extern ? D_801412E0; -//extern ? D_801412EC; -//extern ? D_801412F0; -//extern ? D_801412FC; -//extern ? D_80141308; -//extern ? D_80141314; -//extern ? D_80141320; -//extern ? D_8014132C; -//extern ? D_80141334; -//extern ? D_80141340; -//extern ? D_80141348; -//extern ? D_80141380; -//extern ? D_801413A0; -//extern ? D_801413B0; -//extern ? D_801413C4; -//extern ? D_801413D4; -//extern ? D_801413F4; -//extern ? D_80141404; -//extern ? D_80141428; -//extern ? D_80141438; -//extern ? D_8014145C; -//extern ? D_8014146C; -//extern ? D_80141490; -//extern ? D_801414A0; -//extern ? D_801414C4; -//extern ? D_801414D4; -//extern ? D_801414F4; -//extern ? D_80141504; -//extern ? D_80141528; -//extern ? D_80141538; -//extern ? D_8014155C; -//extern ? D_8014156C; -//extern ? D_80141594; -//extern ? D_801415A4; -//extern ? D_801415CC; -//extern ? D_801415DC; -//extern ? D_80141604; -//extern ? D_80141614; -//extern ? D_8014163C; -//extern ? D_8014164C; -//extern ? D_80141670; -//extern ? D_80141680; -//extern ? D_801416A8; -//extern ? D_801416B8; -//extern ? D_801416E0; -//extern ? D_801416F0; -//extern ? D_80141718; -//extern ? D_80141728; -//extern ? D_80141750; -//extern ? D_80141760; -//extern ? D_80141784; -//extern ? D_80141798; -//extern ? D_801417C0; -//extern ? D_801417D0; -//extern ? D_801417E0; -//extern ? D_801417F4; -//extern ? D_80141804; -//extern ? D_80141814; -//extern ? D_80141824; -//extern ? D_80141850; -//extern ? D_80141860; -//extern ? D_80141884; -//extern ? D_801418A4; -//extern ? D_801418B4; -//extern ? D_801418C4; -//extern ? D_801418D4; -//extern ? D_801418FC; -//extern ? D_80141910; -//extern ? D_80141920; -//extern ? D_80141948; -//extern ? D_80141958; -//extern ? D_80141968; -//extern ? D_80141978; -//extern ? D_801419A0; -//extern ? D_801419B0; -//extern ? D_801419C0; -//extern ? D_801419D0; -//extern ? D_801419F8; -//extern ? D_80141A08; -//extern ? D_80141A18; -//extern ? D_80141A38; -//extern ? D_80141A60; -//extern ? D_80141A70; -//extern ? D_80141A80; -//extern ? D_80141A90; -//extern ? D_80141AA0; -//extern ? D_80141AC8; -//extern ? D_80141AD8; -//extern ? D_80141AE8; -//extern ? D_80141AF8; -//extern ? D_80141B20; -//extern ? D_80141B30; -//extern ? D_80141B40; -//extern ? D_80141B50; -//extern ? D_80141B78; -//extern ? D_80141B88; -//extern ? D_80141B98; -//extern ? D_80141BA8; -//extern ? D_80141BD0; -//extern ? D_80141BE0; -//extern ? D_80141BF0; -//extern ? D_80141C00; -//extern ? D_80141C28; -//extern ? D_80141C38; -//extern ? D_80141C48; -//extern ? D_80141C58; -//extern ? D_80141C68; -//extern ? D_80141C90; -//extern ? D_80141CA0; -//extern ? D_80141CB0; -//extern ? D_80141CC0; -//extern ? D_80141CD0; -//extern ? D_80141CF8; -//extern ? D_80141D08; -//extern ? D_80141D18; -//extern ? D_80141D28; -//extern ? D_80141D50; -//extern ? D_80141D60; -//extern ? D_80141D70; -//extern ? D_80141D80; -//extern ? D_80141DA8; -//extern ? D_80141DB8; -//extern ? D_80141DC8; -//extern ? D_80141DD8; -//extern ? D_80141E00; -//extern ? D_80141E10; -//extern ? D_80141E20; -//extern ? D_80141E30; -//extern ? D_80141E40; -//extern ? D_80141E68; -//extern ? D_80141E78; -//extern ? D_80141E88; -//extern ? D_80141E98; -//extern ? D_80141EC0; -//extern ? D_80141ED0; -//extern ? D_80141EE0; -//extern ? D_80141EF0; -//extern ? D_80141F18; -//extern ? D_80141F28; -//extern ? D_80141F38; -//extern ? D_80141F48; -//extern ? D_80141F70; -//extern ? D_80141F80; -//extern ? D_80141F90; -//extern ? D_80141FA0; -//extern ? D_80141FC8; -//extern ? D_80141FD8; -//extern ? D_80141FE8; -//extern ? D_80141FF8; -//extern ? D_80142008; -//extern ? D_80142030; -//extern ? D_80142040; -//extern ? D_80142050; -//extern ? D_80142060; -//extern ? D_80142088; -//extern ? D_80142098; -//extern ? D_801420A8; -//extern ? D_801420B8; -//extern ? D_801420E0; -//extern ? D_801420F0; -//extern ? D_80142100; -//extern ? D_80142110; -//extern ? D_80142138; -//extern ? D_80142148; -//extern ? D_80142158; -//extern ? D_80142168; -//extern ? D_80142190; -//extern ? D_801421A0; -//extern ? D_801421B0; -//extern ? D_801421C0; -//extern ? D_801421E8; -//extern ? D_801421F8; -//extern ? D_80142208; -//extern ? D_80142218; -//extern ? D_80142240; -//extern ? D_80142250; -//extern ? D_80142260; -//extern ? D_80142270; -//extern ? D_80142298; -//extern ? D_801422A8; -//extern ? D_801422B8; -//extern ? D_801422C8; -//extern ? D_801422F0; -//extern ? D_80142300; -//extern ? D_80142310; -//extern ? D_80142320; -//extern ? D_80142348; -//extern ? D_80142358; -//extern ? D_80142368; -//extern ? D_80142378; -//extern ? D_801423A0; -//extern ? D_801423B0; -//extern ? D_801423C0; -//extern ? D_801423D0; -//extern ? D_801423F8; -//extern ? D_80142408; -//extern ? D_80142418; -//extern ? D_80142428; -//extern ? D_80142450; -//extern ? D_80142460; -//extern ? D_80142470; -//extern ? D_80142480; -//extern ? D_801424A8; -//extern ? D_801424B8; -//extern ? D_801424C8; -//extern ? D_801424D8; -//extern ? D_80142500; -//extern ? D_80142510; -//extern ? D_80142520; -//extern ? D_80142530; -//extern ? D_80142558; -//extern ? D_80142568; -//extern ? D_80142578; -//extern ? D_80142588; -//extern ? D_801425B0; -//extern ? D_801425C0; -//extern ? D_801425D0; -//extern ? D_801425E0; -//extern ? D_80142608; -//extern ? D_80142618; -//extern ? D_80142628; -//extern ? D_80142638; -//extern ? D_80142660; -//extern ? D_80142670; -//extern ? D_80142680; -//extern ? D_80142690; -//extern ? D_801426B8; -//extern ? D_801426C8; -//extern ? D_801426D8; -//extern ? D_801426E8; -//extern ? D_80142710; -//extern ? D_80142720; -//extern ? D_80142730; -//extern ? D_80142740; -//extern ? D_80142768; -//extern ? D_80142778; -//extern ? D_80142788; -//extern ? D_80142798; -//extern ? D_801427C0; -//extern ? D_801427D0; -//extern ? D_801427E0; -//extern ? D_801427F0; -//extern ? D_80142818; -//extern ? D_80142828; -//extern ? D_80142838; -//extern ? D_80142848; -//extern ? D_80142870; -//extern ? D_80142880; -//extern ? D_80142890; -//extern ? D_801428A0; -//extern ? D_801428C8; -//extern ? D_801428D8; -//extern ? D_801428E8; -//extern ? D_801428F8; -//extern ? D_80142920; -//extern ? D_80142930; -//extern ? D_80142940; -//extern ? D_80142950; -//extern ? D_80142978; -//extern ? D_80142988; -//extern ? D_80142998; -//extern ? D_801429A8; -//extern ? D_801429D0; -//extern ? D_801429E0; -//extern ? D_801429F0; -//extern ? D_80142A00; -//extern ? D_80142A28; -//extern ? D_80142A38; -//extern ? D_80142A48; -//extern ? D_80142A58; -//extern ? D_80142A80; -//extern ? D_80142A90; -//extern ? D_80142AA0; -//extern ? D_80142AB0; -//extern ? D_80142AD8; -//extern ? D_80142AE8; -//extern ? D_80142AF8; -//extern ? D_80142B08; -//extern ? D_80142B30; -//extern ? D_80142B40; -//extern ? D_80142B50; -//extern ? D_80142B60; -//extern ? D_80142B88; -//extern ? D_80142B98; -//extern ? D_80142BA8; -//extern ? D_80142BB8; -//extern ? D_80142BE0; -//extern ? D_80142BF0; -//extern ? D_80142C00; -//extern ? D_80142C6C; -//extern ? D_80142C74; -//extern ? D_80142C84; -//extern ? D_80142C9C; -//extern ? D_80142CAC; -//extern ? D_80142CBC; -//extern ? D_80142CD4; -//extern ? D_80142CF4; -//extern ? D_80142D0C; -//extern ? D_80142D1C; -//extern ? D_80142D2C; -//extern ? D_80142D44; -//extern ? D_80142D54; -//extern ? D_80142D64; -//extern ? D_80142D7C; -//extern ? D_80142D8C; -//extern ? D_80142E80; -//extern ? D_80142E94; -//extern ? D_80142EA8; -//extern ? D_80142EBC; -//extern ? D_80142ED0; -//extern ? D_80142EE0; -//extern ? D_80142F18; -//extern ? D_80142F28; -//extern ? D_80142F40; -//extern ? D_80142F58; -//extern ? D_80142F68; -//extern ? D_80142F78; -//extern ? D_80142F88; -//extern ? D_80142F98; -//extern ? D_80142FA8; -//extern ? D_80142FC4; -//extern ? D_80142FD4; -//extern ? D_80142FE4; -//extern ? D_80142FF4; -//extern ? D_80143004; -//extern ? D_80143024; -//extern ? D_80143034; -//extern ? D_80143044; -//extern ? D_80143054; -//extern ? D_80143070; -//extern ? D_801430C0; -//extern ? D_80143100; -//extern ? D_8014311C; -//extern ? D_8014313C; -//extern ? D_80143154; -//extern ? D_801434D8; -//extern ? D_801434F8; -//extern ? D_80143518; -//extern ? D_80143538; -//extern ? D_80143558; -//extern ? D_80143578; -//extern ? D_80143598; -//extern ? D_801435C4; -//extern ? D_801435D0; -//extern ? D_801435DC; -//extern ? D_801435F0; -//extern ? D_801435FC; -//extern ? D_80143608; -//extern ? D_80143628; -//extern ? D_80143640; -//extern ? D_8014365C; -//extern ? D_80143670; -//extern ? D_8014368C; -//extern ? D_801436AC; -//extern ? D_801436CC; -//extern ? D_801436DC; -//extern ? D_801436EC; -//extern ? D_801436FC; -//extern ? D_8014370C; -//extern ? D_8014371C; -//extern ? D_80143738; -//extern ? D_8014375C; -//extern ? D_80143774; -//extern ? D_80143790; -//extern ? D_801437A4; -//extern ? D_801437C0; -//extern ? D_801437E0; -//extern ? D_80143800; -//extern ? D_80143810; -//extern ? D_80143820; -//extern ? D_80143830; -//extern ? D_80143840; -//extern ? D_80143850; -//extern ? D_8014386C; -//extern ? D_801438AC; -//extern ? D_801438B4; -//extern ? D_801438C0; -//extern ? D_801438E4; -//extern ? D_80143908; -//extern ? D_8014392C; -//extern ? D_80143968; -//extern ? D_80143978; -//extern ? D_801439A4; -//extern ? D_801439B4; -//extern ? D_801439C4; -//extern ? D_801439F0; -//extern ? D_80143A00; -//extern ? D_80143A10; -//extern ? D_80143A20; -//extern ? D_80143A30; -//extern ? D_80143A40; -//extern ? D_80143A6C; -//extern ? D_80143A7C; -//extern ? D_80143A8C; -//extern ? D_80143AB8; -//extern ? D_80143AC8; -//extern ? D_80143B0C; -//extern ? D_80143B28; -//extern ? D_80143B30; -//extern ? D_80143B3C; -//extern ? D_80143B60; -//extern ? D_80143B84; -//extern ? D_80143BA8; -//extern ? D_80143BE8; -//extern ? D_80143BF8; -//extern ? D_80143C08; -//extern ? D_80143C18; -//extern ? D_80143C1C; -//extern ? D_80143C20; -//extern ? D_80143C40; -//extern ? D_80143CF0; -//extern ? D_80143D08; -//extern ? D_80143D28; -//extern ? D_80143D50; -//extern ? D_80143D74; -//extern ? D_80143D98; -//extern ? D_80143DBC; -//extern ? D_80143DEC; -//extern ? D_80143E30; -//extern ? D_80143E44; -//extern ? D_80143E5C; -//extern ? D_80143E64; -//extern ? D_80143E94; -//extern ? D_80143E98; -//extern ? D_80143EA0; -//extern ? D_80143ED4; -//extern ? D_80143ED8; -//extern ? D_80143EF0; -//extern ? D_80143F04; -//extern ? D_80143F1C; -//extern ? D_80143F24; -//extern ? D_80143F40; -//extern ? D_80143F44; -//extern ? D_80143F50; -//extern ? D_80143F58; -//extern ? D_80143F70; -//extern ? D_80143F74; -//extern ? D_80143F7C; -//extern ? D_80143F94; -//extern ? D_80143F98; -//extern ? D_80143FC4; -//extern ? D_80143FE0; -//extern ? D_80143FFC; -//extern ? D_80144018; -//extern ? D_80144038; -//extern ? D_80144054; -//extern ? D_80144070; -//extern ? D_8014408C; -//extern ? D_801440AC; -//extern ? D_801440D8; -//extern ? D_801440F4; -//extern ? D_801440FC; -//extern ? D_80144120; -//extern ? D_80144124; -//extern ? D_8014412C; -//extern ? D_80144150; -//extern ? D_80144154; -//extern ? D_8014415C; -//extern ? D_80144180; -//extern ? D_80144190; -//extern ? D_801441AC; -//extern ? D_801441B8; -//extern ? D_801441DC; -//extern ? D_801441E8; -//extern ? D_80144204; -//extern ? D_80144220; -//extern ? D_8014422C; -//extern ? D_80144244; -//extern ? D_80144250; -//extern ? D_80144268; -//extern ? D_80144294; -//extern ? D_801442A8; -//extern ? D_801442C8; -//extern ? D_801442E0; -//extern ? D_801442FC; -//extern ? D_80144300; -//extern ? D_8014431C; -//extern ? D_80144340; -//extern ? D_80144364; -//extern ? D_80144370; -//extern ? D_80144394; -//extern ? D_801443B0; -//extern ? D_801443BC; -//extern ? D_801443C4; -//extern ? D_801443D0; -//extern ? D_801443D8; -//extern ? D_801443E4; -//extern ? D_801443EC; -//extern ? D_801443F8; -//extern ? D_80144400; -//extern ? D_8014440C; -//extern ? D_80144414; -//extern ? D_80144420; -//extern ? D_80144428; -//extern ? D_80144434; -//extern ? D_8014443C; -//extern ? D_80144448; -//extern ? D_80144454; -//extern ? D_8014445C; -//extern ? D_80144468; -//extern ? D_80144470; -//extern ? D_8014447C; -//extern ? D_80144484; -//extern ? D_80144490; -//extern ? D_80144498; -//extern ? D_801444A4; -//extern ? D_801444AC; -//extern ? D_801444B8; -//extern ? D_801444C0; -//extern ? D_801444CC; -//extern ? D_801444D4; -//extern ? D_801444E0; -//extern ? D_801444E8; -//extern ? D_801444F4; -//extern ? D_801444FC; -//extern ? D_80144508; -//extern ? D_80144510; -//extern ? D_8014451C; -//extern ? D_80144524; -//extern ? D_80144530; -//extern ? D_80144538; -//extern ? D_80144544; -//extern ? D_8014454C; -//extern ? D_80144558; -//extern ? D_80144560; -//extern ? D_8014459C; -//extern ? D_801445CC; -//extern ? D_801445D8; -//extern ? D_801445E0; -//extern ? D_801445EC; -//extern ? D_801445F4; -//extern ? D_80144600; -//extern ? D_80144608; -//extern ? D_80144614; -//extern ? D_8014461C; -//extern ? D_80144628; -//extern ? D_80144630; -//extern ? D_8014463C; -//extern ? D_80144644; -//extern ? D_80144650; -//extern ? D_80144658; -//extern ? D_80144664; -//extern ? D_8014466C; -//extern ? D_80144678; -//extern ? D_80144680; -//extern ? D_8014468C; -//extern ? D_80144694; -//extern ? D_801446A0; -//extern ? D_801446A8; -//extern ? D_801446B4; -//extern ? D_801446BC; -//extern ? D_801446C8; -//extern ? D_801446D0; -//extern ? D_801446DC; -//extern ? D_801446E4; -//extern ? D_801446F0; -//extern ? D_801446F8; -//extern ? D_80144704; -//extern ? D_8014470C; -//extern ? D_80144718; -//extern ? D_80144720; -//extern ? D_8014472C; -//extern ? D_80144738; -//extern ? D_80144744; -//extern ? D_80144750; -//extern ? D_80144758; -//extern ? D_80144764; -//extern ? D_8014476C; -//extern ? D_80144778; -//extern ? D_80144780; -//extern ? D_8014478C; -//extern ? D_80144798; -//extern ? D_801447AC; -//extern ? D_801447C8; -//extern ? D_801447D4; -//extern ? D_801447E4; -//extern ? D_80144870; -//extern ? D_801448AC; -//extern ? D_801448EC; -//extern ? D_8014492C; -//extern ? D_80144A20; -//extern ? D_80144A28; -//extern ? D_80144A38; -//extern ? D_80144A40; -//extern ? D_80144A50; -//extern ? D_80144A58; -//extern ? D_80144A68; -//extern ? D_80144A70; -//extern ? D_80144A80; -//extern ? D_80144A88; -//extern ? D_80144A98; -//extern ? D_80144AA0; -//extern ? D_80144AB0; -//extern ? D_80144AB8; -//extern ? D_80144AC8; -//extern ? D_80144AD0; -//extern ? D_80144AE0; -//extern ? D_80144AE8; -//extern ? D_80144AF8; -//extern ? D_80144B00; -//extern ? D_80144B10; -//extern ? D_80144B18; -//extern ? D_80144B28; -//extern ? D_80144B30; -//extern ? D_80144B40; -//extern ? D_80144B50; -//extern ? D_80144B60; -//extern ? D_80144B6C; -//extern ? D_80144B7C; -//extern ? D_80144B8C; -//extern ? D_80144B9C; -//extern ? D_80144BA8; -//extern ? D_80144BB8; -//extern ? D_80144BC8; -//extern ? D_80144BD8; -//extern ? D_80144BE0; -//extern ? D_80144BF0; -//extern ? D_80144BF8; -//extern ? D_80144C08; -//extern ? D_80144C10; -//extern ? D_80144C20; -//extern ? D_80144C40; -//extern ? D_80144C80; -//extern ? D_80144CBC; -//extern ? D_80144CF0; -//extern ? D_80144D10; -//extern ? D_80144D24; -//extern ? D_80144D2C; -//extern ? D_80144D30; -//extern ? D_80144D50; -//extern ? D_80144D5C; -//extern ? D_80144D8C; -//extern ? D_80144D98; -//extern ? D_80144DA4; -//extern ? D_80144DB0; -//extern ? D_80144DBC; -//extern ? D_80144DC8; -//extern ? D_80144DE8; -//extern ? D_80144DF4; -//extern ? D_80144E08; -//extern ? D_80144E1C; -//extern ? D_80144E28; -//extern ? D_80144E3C; -//extern ? D_80144E40; -//extern ? D_80144E48; -//extern ? D_80144E88; -//extern ? D_80144EB4; -//extern ? D_80144EB8; -//extern ? D_80144EDC; -//extern ? D_80144EE8; -//extern ? D_80144EFC; -//extern ? D_80144F10; -//extern ? D_80144F1C; -//extern ? D_80144F38; -//extern ? D_80144F60; -//extern ? D_80144F80; -//extern ? D_80144F98; -//extern ? D_80144FA8; -//extern ? D_80144FB4; -//extern ? D_80144FD4; -//extern ? D_80144FF0; -//extern ? D_80145008; -//extern ? D_80145018; -//extern ? D_80145024; -//extern ? D_8014503C; -//extern ? D_80145054; -//extern ? D_8014509C; -//extern ? D_801450B8; -//extern ? D_801450C0; -//extern ? D_801450E4; -//extern ? D_801450F0; -//extern ? D_80145100; -//extern ? D_80145118; -//extern ? D_80145128; -//extern ? D_80145134; -//extern ? D_80145144; -//extern ? D_80145150; -//extern ? D_80145160; -//extern ? D_80145170; -//extern ? D_80145180; -//extern ? D_8014518C; -//extern ? D_8014519C; -//extern ? D_801451AC; -//extern ? D_801451BC; -//extern ? D_801451CC; -//extern ? D_801451DC; -//extern ? D_801451EC; -//extern ? D_80145200; -//extern ? D_80145210; -//extern ? D_8014521C; -//extern ? D_80145228; -//extern ? D_80145240; -//extern ? D_80145248; -//extern ? D_80145264; -//extern ? D_80145268; -//extern ? D_8014527C; -//extern ? D_8014528C; -//extern ? D_80145298; -//extern ? D_801452A4; -//extern ? D_801452B0; -//extern ? D_801452C0; -//extern ? D_801452D4; -//extern ? D_801452E8; -//extern ? D_801452FC; -//extern ? D_80145308; -//extern ? D_80145314; -//extern ? D_80145324; -//extern ? D_80145338; -//extern ? D_8014534C; -//extern ? D_80145360; -//extern ? D_8014536C; -//extern ? D_80145378; -//extern ? D_80145384; -//extern ? D_80145394; -//extern ? D_80145398; -//extern ? D_801453CC; -//extern ? D_801453D8; -//extern ? D_801453DC; -//extern ? D_80145410; -//extern ? D_8014541C; -//extern ? D_80145420; -//extern ? D_8014545C; -//extern ? D_80145460; -//extern ? D_8014549C; -//extern ? D_801454A0; -//extern ? D_801454DC; -//extern ? D_80145510; -//extern ? D_80145530; -//extern ? D_80145548; -//extern ? D_80145554; -//extern ? D_80145560; -//extern ? D_80145578; -//extern ? D_80145594; -//extern ? D_801455A0; -//extern ? D_801455C0; -//extern ? D_80145604; -//extern ? D_80145650; -//extern ? D_80145660; -//extern ? D_80145670; -//extern ? D_80145678; -//extern ? D_801456AC; -//extern ? D_801456B0; -//extern ? D_801456C4; -//extern ? D_801456EC; -//extern ? D_801456F8; -//extern ? D_80145718; -//extern ? D_80145720; -//extern ? D_8014573C; -//extern ? D_80145744; -//extern ? D_8014574C; -//extern ? D_80145754; -//extern ? D_8014575C; -//extern ? D_80145780; -//extern ? D_80145794; -//extern ? D_80145D40; -//extern ? D_80145D54; -//extern ? D_80145D60; -//extern ? D_80145D80; -//extern ? D_80145D8C; -//extern ? D_80145DEC; -//extern ? D_80145DF8; -//extern ? D_80145E58; -//extern ? D_80145E64; -//extern ? D_80145EBC; -//extern ? D_80145F18; -//extern ? D_80145F24; -//extern ? D_80145F48; -extern char D_80145F68[]; -extern char D_80145F94[]; -extern char D_80145FA0[]; -extern char D_80145FFC[]; -extern char D_80146014[]; -//extern ? D_80146020; -//extern ? D_80146038; -//extern ? D_80146044; -//extern ? D_80146064; -//extern ? D_8014606C; -//extern ? D_8014607C; -//extern ? D_80146088; -//extern ? D_801460B0; -//extern ? D_801460CC; -//extern ? D_801460E0; -//extern ? D_801460F0; -//extern ? D_801460FC; -//extern ? D_8014610C; -extern char D_801461CC[]; -//extern ? D_80146118; -//extern ? D_80146128; -//extern ? D_80146150; -//extern ? D_80146160; -//extern ? D_8014616C; -//extern ? D_80146198; -//extern ? D_801461A4; -//extern ? D_801461E0; -//extern ? D_801461F0; -//extern ? D_80146200; -//extern ? D_80146214; -extern char D_80146230[]; -extern char D_80146238[]; -//extern ? D_8014624C; -//extern ? D_80146260; -//extern ? D_80146274; -//extern ? D_8014627C; -//extern ? D_80146290; -//extern ? D_801462A4; -//extern ? D_801462A8; -//extern ? D_801462BC; -//extern ? D_801462D0; -//extern ? D_801462FC; -//extern ? D_80146318; -//extern ? D_80146344; -//extern ? D_80146360; -//extern ? D_8014638C; -//extern ? D_801463D0; -//extern ? D_801463DC; -//extern ? D_80146414; -//extern ? D_80146430; -//extern ? D_80146434; -//extern ? D_80146440; -//extern ? D_8014647C; -//extern ? D_80146480; -//extern ? D_8014648C; -//extern ? D_801464D0; -//extern ? D_80146570; -//extern ? D_80146580; -//extern ? D_8014659C; -//extern ? D_801465AC; -//extern ? D_80146670; -//extern ? D_80146690; -//extern ? D_80146698; -//extern ? D_801466A4; -//extern ? D_801466A8; -//extern ? D_801466B4; -//extern ? D_801466BC; -//extern ? D_801466C8; -//extern ? D_801466D0; -//extern ? D_801466DC; -//extern ? D_801466E0; -//extern ? D_801466EC; -//extern ? D_80146744; -//extern ? D_80146798; -//extern ? D_801467B8; -//extern ? D_801467D8; -//extern ? D_801467E0; -//extern ? D_80146810; -//extern ? D_80146858; -//extern ? D_8014685C; -//extern ? D_80146884; -//extern ? D_801468A8; -//extern ? D_801468B8; -//extern ? D_801468E0; -//extern ? D_801468F0; -//extern ? D_8014691C; -//extern ? D_8014692C; -//extern ? D_80146958; -//extern ? D_80146968; -//extern ? D_80146994; -//extern ? D_801469CC; -//extern ? D_801469F0; -//extern ? D_801469F8; -//extern ? D_80146A04; -//extern ? D_80146A0C; -//extern ? D_80147A98; -//extern ? D_80147AA4; -//extern ? D_80147AAC; -//extern ? D_80147AB4; -//extern ? D_80147AC0; -//extern ? D_80147AC8; -//extern ? D_80147AD4; -//extern ? D_80147AE4; -//extern ? D_80147AE8; -//extern ? D_80147AF4; -//extern ? D_80147B08; -//extern ? D_80147B18; -//extern ? D_80147B28; -//extern ? D_80147B38; -//extern ? D_80147B44; -//extern ? D_80147B50; -//extern ? D_80147B60; -//extern ? D_80147B70; -//extern ? D_80147B7C; -//extern ? D_80147B80; -//extern ? D_80147B9C; -//extern ? D_80147BA4; -//extern ? D_80147BAC; -//extern ? D_80147BB8; -//extern ? D_80147BC0; -//extern ? D_80147BCC; -//extern ? D_80147BE0; -//extern ? D_80147BE4; -//extern ? D_80147C04; -//extern ? D_80147C08; -//extern ? D_80147D98; -//extern ? D_80147D9C; -//extern ? D_80147DB8; -//extern ? D_80147DD0; -//extern ? D_80147E14; -//extern ? D_80147E58; -//extern ? D_80147E60; -//extern ? D_80147E6C; -//extern ? D_80147E70; -//extern ? D_80147E7C; -//extern ? D_80147E98; -//extern ? D_80147EB0; -//extern ? D_80147EC4; -//extern ? D_80147EF8; -//extern ? D_80147F18; -//extern ? D_80147F44; -//extern ? D_80147F5C; -//extern ? D_80147F90; -//extern ? D_80147FAC; -//extern ? D_80147FCC; -//extern ? D_80147FEC; -//extern ? D_80148008; -//extern ? D_8014802C; -//extern ? D_80148044; -//extern ? D_8014808C; -//extern ? D_80148374; -//extern ? D_80148380; -//extern ? D_801483A4; -//extern ? D_80148434; -//extern ? D_8014844C; -//extern ? D_80148450; -//extern ? D_8014845C; -//extern ? D_80148480; -//extern ? D_8014849C; -//extern ? D_801484C0; -//extern ? D_801484DC; -//extern ? D_801484F0; -//extern ? D_80148504; -//extern ? D_80148518; -//extern ? D_8014851C; -//extern ? D_80148544; -//extern ? D_80148568; -//extern ? D_8014858C; -//extern ? D_801485D0; -//extern ? D_801485D8; -//extern ? D_801485DC; -//extern ? D_801485E0; -//extern ? D_801485E4; -//extern ? D_801485E8; -//extern ? D_801485EC; -//extern ? D_801485F0; -//extern ? D_801485F4; -//extern ? D_801485F8; -//extern ? D_80148614; -//extern ? D_80148638; -//extern ? D_80148654; -//extern ? D_80148698; -//extern ? D_801486A0; -//extern ? D_801486A4; -//extern ? D_801486A8; -//extern ? D_801486AC; -//extern ? D_801486B0; -//extern ? D_801486B4; -//extern ? D_801486B8; -//extern ? D_801486BC; -//extern ? D_801486C0; -//extern ? D_801486E4; -//extern ? D_80148700; -//extern ? D_80148724; -//extern ? D_80148740; -//extern ? D_80148764; -//extern ? D_80148780; -//extern ? D_8014879C; -//extern ? D_801487B8; -//extern ? D_801487D4; -//extern ? D_801487F0; -//extern ? D_8014881C; -//extern ? D_8014882C; -//extern ? D_80148848; -//extern ? D_80148858; -//extern ? D_80148868; -//extern ? D_80148878; -//extern ? D_80148884; -//extern ? D_80148898; -//extern ? D_801488B8; -//extern ? D_801488DC; -//extern ? D_80148900; -//extern ? D_80148924; -//extern ? D_80148944; -//extern ? D_80148964; -//extern ? D_8014897C; -//extern ? D_80148998; -//extern ? D_801489BC; -//extern ? D_801489DC; -//extern ? D_801489F8; -//extern ? D_801489FC; -//extern ? D_80148A00; -//extern ? D_80148A04; -//extern ? D_80148B38; -//extern ? D_80148B5C; -//extern ? D_80148B7C; -//extern ? D_80148B90; -//extern ? D_80148BA0; -//extern ? D_80148BB8; -//extern ? D_80148BCC; -//extern ? D_80148BE0; -//extern ? D_80148BFC; -//extern ? D_80148C10; -//extern ? D_80148C2C; -//extern ? D_80148C5C; -//extern ? D_80148C80; -//extern ? D_80148CA0; -//extern ? D_80148CD0; -//extern ? D_80148CF4; -//extern ? D_80148CFC; -//extern ? D_80148D04; -//extern ? D_80148D2C; -//extern ? D_80148D34; -//extern ? D_80148D3C; -//extern ? D_80148D5C; -//extern ? D_80148D84; -//extern ? D_80148D9C; -//extern ? D_80148DA0; -//extern ? D_80148DB8; -//extern ? D_80148DBC; -//extern ? D_80148DD4; -//extern ? D_80148DD8; -//extern ? D_80148DEC; -//extern ? D_80148DF0; -//extern ? D_80148DF4; -//extern ? D_80148E10; -//extern ? D_80148E30; -//extern ? D_80148E44; -//extern ? D_80148E60; -//extern ? D_80148E78; -//extern ? D_80148E90; -//extern ? D_80148EA8; -//extern ? D_80148EC8; -//extern ? D_80148EE4; -//extern ? D_80148EFC; -//extern ? D_80148F18; -//extern ? D_80148F30; -//extern ? D_80148F48; -//extern ? D_80148F60; -//extern ? D_80148F80; -//extern ? D_80148F94; -//extern ? D_80148FB4; -//extern ? D_80148FD4; -//extern ? D_80148FF4; -//extern ? D_80149018; -//extern ? D_8014903C; -//extern ? D_80149060; -//extern ? D_80149080; -//extern ? D_801490A4; -//extern ? D_801490C8; -//extern ? D_801490F0; -//extern ? D_80149114; -//extern ? D_80149138; -//extern ? D_80149164; -//extern ? D_80149194; -//extern ? D_801491B0; -//extern ? D_801491D0; -//extern ? D_801491E8; -//extern ? D_80149204; -//extern ? D_80149218; -//extern ? D_80149420; -//extern ? D_8014942C; -//extern ? D_80149438; -//extern ? D_80149444; -//extern ? D_80149450; -//extern ? D_80149C60; -//extern ? D_80149C88; -//extern ? D_80149CB0; -//extern ? D_80149CC8; -//extern ? D_80149CE0; -//extern ? D_80149CF8; -//extern ? D_80149D10; -//extern ? D_80149D28; -//extern ? D_80149D2C; -//extern ? D_80149D40; -//extern ? D_80149D48; -//extern ? D_80149D58; -//extern ? D_80149D5C; -//extern ? D_80149D64; -//extern ? D_80149D74; -//extern ? D_80149D80; -//extern ? D_80149D94; -//extern ? D_80149DA4; -//extern ? D_80149DB8; -//extern ? D_80149DBC; -//extern ? D_80149DCC; -//extern ? D_80149DDC; -//extern ? D_80149DEC; -//extern ? D_80149DF8; -//extern ? D_80149E08; -//extern ? D_80149E18; -//extern ? D_80149E28; -//extern ? D_80149E38; -//extern ? D_80149E44; -//extern ? D_80149E50; -//extern ? D_80149E60; -//extern ? D_80149E68; -//extern ? D_80149EAC; -//extern ? D_80149EF0; -//extern ? D_80149F34; -//extern ? D_80149F48; -//extern ? D_80149F4C; -//extern ? D_80149F5C; -//extern ? D_80149F6C; -//extern ? D_80149F7C; -//extern ? D_80149F88; -//extern ? D_80149F94; -//extern ? D_80149FA4; -//extern ? D_80149FB0; -//extern ? D_80149FBC; -//extern ? D_80149FC4; -//extern ? D_80149FD0; -//extern ? D_80149FE0; -//extern ? D_80149FEC; -//extern ? D_80149FF0; -//extern ? D_80149FF4; -//extern ? D_8014A004; -//extern ? D_8014A014; -//extern ? D_8014A024; -//extern ? D_8014A030; -//extern ? D_8014A03C; -//extern ? D_8014A048; -//extern ? D_8014A054; -//extern ? D_8014A058; -//extern ? D_8014A05C; -//extern ? D_8014A060; -//extern ? D_8014A068; -//extern ? D_8014A06C; -//extern ? D_8014A074; -//extern ? D_8014A080; -//extern ? D_8014A08C; -//extern ? D_8014A098; -//extern ? D_8014A0A4; -//extern ? D_8014A0AC; -//extern ? D_8014A0B8; -//extern ? D_8014A0C4; -//extern ? D_8014A0D0; -//extern ? D_8014A0DC; -//extern ? D_8014A0E8; -//extern ? D_8014A0F4; -//extern ? D_8014A100; -//extern ? D_8014A108; -//extern ? D_8014A10C; -//extern ? D_8014A110; -//extern ? D_8014A114; -//extern ? D_8014A118; -//extern ? D_8014A11C; -//extern ? D_8014A120; -//extern ? D_8014A124; -//extern ? D_8014A128; -//extern ? D_8014A12C; -//extern ? D_8014A130; -//extern ? D_8014A134; -//extern ? D_8014A140; -//extern ? D_8014A154; -//extern ? D_8014A178; -//extern ? D_8014A19C; -//extern ? D_8014A1BC; -//extern ? D_8014A1C4; -//extern ? D_8014A1E4; -//extern ? D_8014A1EC; -//extern ? D_8014A200; -//extern ? D_8014A210; -//extern ? D_8014A224; -//extern ? D_8014A228; -//extern ? D_8014A23C; -//extern ? D_8014A250; -//extern ? D_8014A260; -//extern ? D_8014A268; -//extern ? D_8014A27C; -//extern ? D_8014A290; -//extern ? D_8014A2A8; -//extern ? D_8014A2C0; -//extern ? D_8014A2DC; -//extern ? D_8014A2E4; -//extern ? D_8014A30C; -//extern ? D_8014A310; -//extern ? D_8014A324; -//extern ? D_8014A334; -//extern ? D_8014A344; -//extern ? D_8014A350; -//extern ? D_8014A354; -//extern ? D_8014A364; -//extern ? D_8014A384; -//extern ? D_8014A39C; -//extern ? D_8014A3B4; -//extern ? D_8014A3D8; -//extern ? D_8014A3F0; -//extern ? D_8014A404; -//extern ? D_8014A414; -//extern ? D_8014A428; -//extern ? D_8014A43C; -//extern ? D_8014A450; -//extern ? D_8014A45C; -//extern ? D_8014A460; + extern const s16 D_8014A6C0[]; #define gTatumsPerBeat (D_8014A6C0[1]) extern const AudioContextInitSizes D_8014A6C4; -//extern ? D_8014A710; -//extern ? D_8014A728; -//extern ? D_8014A730; -//extern ? D_8014A738; -//extern ? D_8014A744; -//extern ? D_8014A750; -//extern ? D_8014A75C; -//extern ? D_8014A764; -//extern ? D_8014A770; -//extern ? D_8014A778; -//extern ? D_8014A784; -//extern ? D_8014A790; -//extern ? D_8014A798; -//extern ? D_8014A7A0; -//extern ? D_8014A7A8; -//extern ? D_8014A7B0; -//extern ? D_8014A7B8; -//extern ? D_8014A7BC; -//extern ? D_8014A7D0; -//extern ? D_8014A7E0; -//extern ? D_8014A7E8; -//extern ? D_8014A7F0; -//extern ? D_8014A7FC; -//extern ? D_8014A808; -//extern ? D_8014A814; -//extern ? D_8014A820; -//extern ? D_8014A82C; -//extern ? D_8014A838; -//extern ? D_8014A844; -//extern ? D_8014A854; -//extern ? D_8014A8B0; -//extern ? D_8014A8B4; -//extern ? D_8014A8C4; -//extern ? D_8014A8C8; -//extern ? D_8014A8D8; -//extern ? D_8014A8DC; -//extern ? D_8014A8EC; -//extern ? D_8014A8F0; -//extern ? D_8014A900; -//extern ? D_8014A920; -//extern ? D_8014A950; -//extern ? D_8014A968; -//extern ? D_8014A980; -//extern ? D_8014A9B8; -//extern ? D_8014A9EC; -//extern ? D_8014AA20; -//extern ? D_8014AA38; -//extern ? D_8014AA5C; -//extern ? D_8014AA80; -//extern ? D_8014B210; -//extern ? D_8014B280; -//extern ? D_8014B2E0; -//extern ? D_8014B2E8; -//extern ? D_8014B2F0; -//extern ? D_8014B2F4; -//extern ? D_8014B2F8; -//extern ? D_8014B2FC; -//extern ? D_8014B300; -//extern ? D_8014B304; -//extern ? D_8014B308; -//extern ? D_8014B310; -//extern ? D_8014B314; -//extern ? D_8014B318; -//extern ? D_8014B31C; -//extern ? D_8014B320; -//extern ? D_8014F548; -//extern ? D_8014FFFF; -//extern ? D_80151658; -//extern ? D_801533D4; -//extern ? D_80153768; -//extern ? D_801538F0; -//extern ? D_801538F4; -//extern ? D_801538F8; -//extern ? D_801538FC; -//extern ? D_80153900; -//extern ? D_80153930; -//extern ? D_80153948; -//extern ? D_8015394C; -//extern ? D_80153958; -//extern ? D_8015395A; -//extern ? D_8015395C; -//extern ? D_8015395E; -extern s16 D_80153960[]; -//extern ? D_80153962; -//extern ? D_80153964; -//extern ? D_80153966; -//extern ? D_80153968; -//extern ? D_80153984; -//extern ? D_801539C8; -//extern ? D_801539D4; -//extern ? D_801539E0; -//extern ? D_801539E4; -//extern ? D_801539E8; -//extern ? D_801539EC; -//extern ? D_801539F0; -//extern ? D_801539F4; -//extern ? D_801539F8; -//extern ? D_801539FC; -//extern ? D_80153C50; -//extern ? D_80153C52; -//extern ? D_80153C54; -//extern ? D_80153C56; -//extern ? D_80153C58; -//extern ? D_80153CA8; -//extern ? D_80153CB4; -//extern ? D_80153CC0; -//extern ? D_80153CCC; -//extern ? D_80153CD8; -//extern ? D_80153CDC; -//extern ? D_80153CF8; -//extern ? D_80153CFC; -//extern ? D_80153D74; -//extern ? D_80153D78; -//extern ? D_80153D90; -//extern ? D_80153DEC; -//extern ? D_80153E48; -//extern ? D_80153E74; -//extern ? D_80153ED0; -//extern ? D_80153EFC; -//extern ? D_80153F28; -//extern ? D_80153F54; -//extern ? D_80153F74; -//extern ? D_80153FA0; -//extern ? D_80153FD0; -//extern ? D_80153FE4; -//extern ? D_80153FF8; -//extern ? D_8015400C; -//extern ? D_8015401C; -//extern ? D_80154030; -//extern ? D_80154040; -//extern ? D_80154054; -//extern ? D_80154068; -//extern ? D_80154078; -//extern ? D_8015408C; -//extern ? D_801540A8; -//extern ? D_801540B4; -//extern ? D_801540CC; -//extern ? D_801540D8; -//extern ? D_801540DC; -//extern ? D_801540F4; -//extern ? D_8015410C; -//extern ? D_80154120; -//extern ? D_80154128; -//extern ? D_8015413C; -//extern ? D_80154144; -//extern ? D_80154154; -//extern ? D_8015419C; -//extern ? D_801541A8; -//extern ? D_801541B8; -//extern ? D_801541CC; -//extern ? D_801541E0; -//extern ? D_801541F4; -//extern ? D_80154214; -//extern ? D_80154230; -//extern ? D_80154238; -//extern ? D_80154290; -//extern ? D_80154294; -//extern ? D_801542A8; -//extern ? D_801542BC; -//extern ? D_801542D0; -//extern ? D_801542E4; -//extern ? D_801542F8; -//extern ? D_8015430C; -//extern ? D_80154314; -//extern ? D_80154328; -//extern ? D_8015432C; -//extern ? D_80154334; -//extern ? D_80154358; -//extern ? D_8015435C; -//extern ? D_80154364; -//extern ? D_80154380; -//extern ? D_80154394; -//extern ? D_80154398; -//extern ? D_801543CC; -//extern ? D_801543F4; -//extern ? D_80154400; -//extern ? D_8015440C; -//extern ? D_80154428; -//extern ? D_80154434; -//extern ? D_80154464; -//extern ? D_80154470; -//extern ? D_801544AC; -//extern ? D_801544C0; -//extern ? D_801544D8; -//extern ? D_801544F8; -//extern ? D_80154518; -//extern ? D_80154538; -//extern ? D_8015454C; -//extern ? D_8015455C; -//extern ? D_80154568; -//extern ? D_80154570; -//extern ? D_80154588; -//extern ? D_801545A0; -//extern ? D_801545B8; -//extern ? D_801545BC; -//extern ? D_801545D4; -//extern ? D_801545E4; -//extern ? D_801545EC; -//extern ? D_80154618; -//extern ? D_80154620; -//extern ? D_80154644; -//extern ? D_8015464C; -//extern ? D_8015466C; -//extern ? D_80154670; -//extern ? D_80154688; -//extern ? D_8015469C; -//extern ? D_801546C8; -//extern ? D_801546D0; -//extern ? D_801546F0; -//extern ? D_801546F4; -//extern ? D_80154708; -//extern ? D_80154720; -//extern ? D_80154738; -//extern ? D_80154770; -//extern ? D_80154780; -//extern ? D_801547A4; -//extern ? D_801547AC; -//extern ? D_801547F4; -//extern ? D_801547FC; -//extern ? D_80154800; -//extern ? D_80154848; -//extern ? D_80154858; -//extern ? D_80154868; -//extern ? D_80154878; -//extern ? D_80154880; -//extern ? D_801548C8; -//extern ? D_801548D0; -//extern ? D_801548D4; -//extern ? D_8015491C; -//extern ? D_8015493C; -//extern ? D_8015494C; -//extern ? D_80154968; -//extern ? D_80154984; -//extern ? D_80154998; -//extern ? D_801549AC; -//extern ? D_801549B0; -//extern ? D_801549B8; -//extern ? D_801549BC; -//extern ? D_801549C0; -//extern ? D_801549C4; -//extern ? D_801549D8; -//extern ? D_801549EC; -//extern ? D_801549F8; -//extern ? D_80154A20; -//extern ? D_80154A48; -//extern ? D_80154A64; -//extern ? D_80154A78; -//extern ? D_80154AA0; -//extern ? D_80154AB4; -//extern ? D_80154AC0; -//extern ? D_80154AC8; -//extern ? D_80154AE8; -//extern ? D_80154AFC; -//extern ? D_80154B00; +extern s16 gOcarinaSongItemMap[]; +extern u8 gAudioBankTable[]; +extern u8 D_80155340[]; extern u8 gSoundFontTable[]; extern u8 gSequenceFontTable[]; extern u8 gSequenceTable[]; @@ -2828,6 +397,7 @@ extern u8 D_80155F50[]; extern u8 D_80157580[]; extern u8 D_801579A0[]; extern u64 gJpegUCodeData[]; + //extern ? D_8015BC30; //extern ? D_8015BC3C; //extern ? D_8015BC48; @@ -3077,20 +647,6 @@ extern OSMesgQueue __osContMesgQueue; extern OSMesg __osContMesgBuff[4]; extern __OSInode __osPfsInodeCache; extern OSPifRam gPifMempakBuf; -//extern ? D_801759A0; -//extern ? D_801759A4; -//extern ? D_801759A8; -//extern ? D_801759AA; -//extern ? D_801759AC; -//extern ? D_801759AE; -//extern ? D_801759B0; -//extern ? D_801759B2; -//extern ? D_801759B4; -//extern ? D_801759B6; -//extern ? D_801759B8; -//extern ? D_801759BA; -//extern ? D_801759BC; -//extern ? D_801759BE; extern u16 gZBuffer[SCREEN_HEIGHT][SCREEN_WIDTH]; // 0x25800 bytes extern u64 gGfxSPTaskOutputBuffer[0x3000]; // 0x18000 bytes extern u8 gGfxSPTaskYieldBuffer[OS_YIELD_DATA_SIZE]; // 0xC00 bytes diff --git a/include/z64.h b/include/z64.h index 1723216162..a53ac315a8 100644 --- a/include/z64.h +++ b/include/z64.h @@ -333,54 +333,298 @@ typedef struct { } SkyboxContext; // size = 0x160 typedef enum { - MESSAGE_ICON_TRIANGLE, - MESSAGE_ICON_SQUARE, - MESSAGE_ICON_ARROW -} MessageBoxIcon; + /* 0 */ OCARINA_SONG_MINUET, + /* 1 */ OCARINA_SONG_BOLERO, + /* 2 */ OCARINA_SONG_SERENADE, + /* 3 */ OCARINA_SONG_REQUIEM, + /* 4 */ OCARINA_SONG_NOCTURNE, + /* 5 */ OCARINA_SONG_PRELUDE, + /* 6 */ OCARINA_SONG_SARIAS, + /* 7 */ OCARINA_SONG_EPONAS, + /* 8 */ OCARINA_SONG_LULLABY, + /* 9 */ OCARINA_SONG_SUNS, + /* 10 */ OCARINA_SONG_TIME, + /* 11 */ OCARINA_SONG_STORMS, + /* 12 */ OCARINA_SONG_SCARECROW, + /* 13 */ OCARINA_SONG_MEMORY_GAME, + /* 14 */ OCARINA_SONG_MAX, + /* 14 */ OCARINA_SONG_SCARECROW_LONG = OCARINA_SONG_MAX // anything larger than 13 is considered the long scarecrow's song +} OcarinaSongId; +typedef enum { + /* 0x00 */ OCARINA_ACTION_UNK_0, // acts like free play but never set + /* 0x01 */ OCARINA_ACTION_FREE_PLAY, + /* 0x02 */ OCARINA_ACTION_TEACH_MINUET, // Song demonstrations by teachers + /* 0x03 */ OCARINA_ACTION_TEACH_BOLERO, + /* 0x04 */ OCARINA_ACTION_TEACH_SERENADE, + /* 0x05 */ OCARINA_ACTION_TEACH_REQUIEM, + /* 0x06 */ OCARINA_ACTION_TEACH_NOCTURNE, + /* 0x07 */ OCARINA_ACTION_TEACH_PRELUDE, + /* 0x08 */ OCARINA_ACTION_TEACH_SARIA, + /* 0x09 */ OCARINA_ACTION_TEACH_EPONA, + /* 0x0A */ OCARINA_ACTION_TEACH_LULLABY, + /* 0x0B */ OCARINA_ACTION_TEACH_SUNS, + /* 0x0C */ OCARINA_ACTION_TEACH_TIME, + /* 0x0D */ OCARINA_ACTION_TEACH_STORMS, + /* 0x0E */ OCARINA_ACTION_UNK_E, + /* 0x0F */ OCARINA_ACTION_PLAYBACK_MINUET, // Playing back a particular song + /* 0x10 */ OCARINA_ACTION_PLAYBACK_BOLERO, + /* 0x11 */ OCARINA_ACTION_PLAYBACK_SERENADE, + /* 0x12 */ OCARINA_ACTION_PLAYBACK_REQUIEM, + /* 0x13 */ OCARINA_ACTION_PLAYBACK_NOCTURNE, + /* 0x14 */ OCARINA_ACTION_PLAYBACK_PRELUDE, + /* 0x15 */ OCARINA_ACTION_PLAYBACK_SARIA, + /* 0x16 */ OCARINA_ACTION_PLAYBACK_EPONA, + /* 0x17 */ OCARINA_ACTION_PLAYBACK_LULLABY, + /* 0x18 */ OCARINA_ACTION_PLAYBACK_SUNS, + /* 0x19 */ OCARINA_ACTION_PLAYBACK_TIME, + /* 0x1A */ OCARINA_ACTION_PLAYBACK_STORMS, + /* 0x1B */ OCARINA_ACTION_UNK_1B, + /* 0x1C */ OCARINA_ACTION_CHECK_MINUET, // Playing songs for check spots + /* 0x1D */ OCARINA_ACTION_CHECK_BOLERO, + /* 0x1E */ OCARINA_ACTION_CHECK_SERENADE, + /* 0x1F */ OCARINA_ACTION_CHECK_REQUIEM, + /* 0020 */ OCARINA_ACTION_CHECK_NOCTURNE, + /* 0x21 */ OCARINA_ACTION_CHECK_PRELUDE, + /* 0x22 */ OCARINA_ACTION_CHECK_SARIA, + /* 0x23 */ OCARINA_ACTION_CHECK_EPONA, + /* 0x24 */ OCARINA_ACTION_CHECK_LULLABY, + /* 0x25 */ OCARINA_ACTION_CHECK_SUNS, + /* 0x26 */ OCARINA_ACTION_CHECK_TIME, + /* 0x27 */ OCARINA_ACTION_CHECK_STORMS, + /* 0x28 */ OCARINA_ACTION_CHECK_SCARECROW, // Playing back the song as adult that was set as child + /* 0x29 */ OCARINA_ACTION_FREE_PLAY_DONE, + /* 0x2A */ OCARINA_ACTION_SCARECROW_LONG_RECORDING, + /* 0x2B */ OCARINA_ACTION_SCARECROW_LONG_PLAYBACK, + /* 0x2C */ OCARINA_ACTION_SCARECROW_RECORDING, + /* 0x2D */ OCARINA_ACTION_SCARECROW_PLAYBACK, + /* 0x2E */ OCARINA_ACTION_MEMORY_GAME, + /* 0x2F */ OCARINA_ACTION_FROGS, + /* 0x30 */ OCARINA_ACTION_CHECK_NOWARP, // Check for any of sarias - storms + /* 0x31 */ OCARINA_ACTION_CHECK_NOWARP_DONE +} OcarinaSongActionIDs; + +typedef enum { + /* 0x00 */ OCARINA_MODE_00, + /* 0x01 */ OCARINA_MODE_01, + /* 0x02 */ OCARINA_MODE_02, + /* 0x03 */ OCARINA_MODE_03, + /* 0x04 */ OCARINA_MODE_04, + /* 0x05 */ OCARINA_MODE_05, + /* 0x06 */ OCARINA_MODE_06, + /* 0x07 */ OCARINA_MODE_07, + /* 0x08 */ OCARINA_MODE_08, + /* 0x09 */ OCARINA_MODE_09, + /* 0x0A */ OCARINA_MODE_0A, + /* 0x0B */ OCARINA_MODE_0B, + /* 0x0C */ OCARINA_MODE_0C, + /* 0x0D */ OCARINA_MODE_0D, + /* 0x0E */ OCARINA_MODE_0E, + /* 0x0F */ OCARINA_MODE_0F +} OcarinaMode; + +typedef enum { + TEXTBOX_ICON_TRIANGLE, + TEXTBOX_ICON_SQUARE, + TEXTBOX_ICON_ARROW +} TextBoxIcon; + +typedef enum { + LANGUAGE_ENG, + LANGUAGE_GER, + LANGUAGE_FRA, + LANGUAGE_MAX +} Language; + +// TODO get these properties from the textures themselves +#define FONT_CHAR_TEX_WIDTH 16 +#define FONT_CHAR_TEX_HEIGHT 16 #define FONT_CHAR_TEX_SIZE ((16 * 16) / 2) // 16x16 I4 texture +// TODO get these properties from the textures themselves +#define MESSAGE_STATIC_TEX_SIZE 0x1000 + +typedef enum { + /* 0x00 */ MSGMODE_NONE, + /* 0x01 */ MSGMODE_TEXT_START, + /* 0x02 */ MSGMODE_TEXT_BOX_GROWING, + /* 0x03 */ MSGMODE_TEXT_STARTING, + /* 0x04 */ MSGMODE_TEXT_NEXT_MSG, + /* 0x05 */ MSGMODE_TEXT_CONTINUING, + /* 0x06 */ MSGMODE_TEXT_DISPLAYING, + /* 0x07 */ MSGMODE_TEXT_AWAIT_INPUT, + /* 0x08 */ MSGMODE_TEXT_DELAYED_BREAK, + /* 0x09 */ MSGMODE_OCARINA_STARTING, + /* 0x0A */ MSGMODE_SONG_DEMONSTRATION_STARTING, + /* 0x0B */ MSGMODE_SONG_PLAYBACK_STARTING, + /* 0x0C */ MSGMODE_OCARINA_PLAYING, + /* 0x0D */ MSGMODE_OCARINA_CORRECT_PLAYBACK, + /* 0x0E */ MSGMODE_OCARINA_FAIL, // Failed to play a valid song after entering 8 notes + /* 0x0F */ MSGMODE_OCARINA_FAIL_NO_TEXT, // Never set, only compared against + /* 0x10 */ MSGMODE_OCARINA_NOTES_DROP, + /* 0x11 */ MSGMODE_SONG_PLAYED, // Played a full named song correctly + /* 0x12 */ MSGMODE_SETUP_DISPLAY_SONG_PLAYED, + /* 0x13 */ MSGMODE_DISPLAY_SONG_PLAYED, + /* 0x14 */ MSGMODE_DISPLAY_SONG_PLAYED_TEXT_BEGIN, + /* 0x15 */ MSGMODE_DISPLAY_SONG_PLAYED_TEXT, + /* 0x16 */ MSGMODE_SONG_PLAYED_ACT_BEGIN, + /* 0x17 */ MSGMODE_SONG_PLAYED_ACT, // Act on a played song + /* 0x18 */ MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT, + /* 0x19 */ MSGMODE_SONG_DEMONSTRATION, + /* 0x1A */ MSGMODE_SONG_DEMONSTRATION_DONE, + /* 0x1B */ MSGMODE_SONG_PLAYBACK, + /* 0x1C */ MSGMODE_SONG_PLAYBACK_SUCCESS, + /* 0x1D */ MSGMODE_SONG_PLAYBACK_FAIL, + /* 0x1E */ MSGMODE_SONG_PLAYBACK_NOTES_DROP, + /* 0x1F */ MSGMODE_OCARINA_AWAIT_INPUT, + /* 0x20 */ MSGMODE_UNK_20, // Never set and does nothing + /* 0x21 */ MSGMODE_SCARECROW_LONG_RECORDING_START, + /* 0x22 */ MSGMODE_SCARECROW_LONG_RECORDING_ONGOING, + /* 0x23 */ MSGMODE_SCARECROW_LONG_PLAYBACK, + /* 0x24 */ MSGMODE_SCARECROW_RECORDING_START, + /* 0x25 */ MSGMODE_SCARECROW_RECORDING_ONGOING, + /* 0x26 */ MSGMODE_SCARECROW_RECORDING_FAILED, + /* 0x27 */ MSGMODE_SCARECROW_RECORDING_DONE, + /* 0x28 */ MSGMODE_SCARECROW_PLAYBACK, + /* 0x29 */ MSGMODE_MEMORY_GAME_START, + /* 0x2A */ MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING, + /* 0x2B */ MSGMODE_MEMORY_GAME_LEFT_SKULLKID_WAIT, + /* 0x2C */ MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING, + /* 0x2D */ MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_WAIT, + /* 0x2E */ MSGMODE_MEMORY_GAME_PLAYER_PLAYING, + /* 0x2F */ MSGMODE_MEMORY_GAME_ROUND_SUCCESS, + /* 0x30 */ MSGMODE_MEMORY_GAME_START_NEXT_ROUND, + /* 0x31 */ MSGMODE_FROGS_START, + /* 0x32 */ MSGMODE_FROGS_PLAYING, + /* 0x33 */ MSGMODE_FROGS_WAITING, + /* 0x34 */ MSGMODE_TEXT_AWAIT_NEXT, + /* 0x35 */ MSGMODE_TEXT_DONE, + /* 0x36 */ MSGMODE_TEXT_CLOSING, + /* 0x37 */ MSGMODE_PAUSED // Causes the message system to do nothing until external code sets a new message mode or calls a public function +} MessageMode; + +typedef enum { + /* 0 */ TEXT_STATE_NONE, + /* 1 */ TEXT_STATE_DONE_HAS_NEXT, + /* 2 */ TEXT_STATE_CLOSING, + /* 3 */ TEXT_STATE_DONE_FADING, + /* 4 */ TEXT_STATE_CHOICE, + /* 5 */ TEXT_STATE_EVENT, + /* 6 */ TEXT_STATE_DONE, + /* 7 */ TEXT_STATE_SONG_DEMO_DONE, + /* 8 */ TEXT_STATE_8, + /* 9 */ TEXT_STATE_9, + /* 10 */ TEXT_STATE_AWAITING_NEXT +} TextState; + typedef struct { - /* 0x0000 */ u32 msgOffset; - /* 0x0004 */ u32 msgLength; - /* 0x0008 */ char unk_8[0x3C00]; - /* 0x3C08 */ u8 iconBuf[FONT_CHAR_TEX_SIZE]; - /* 0x3C88 */ u8 fontBuf[FONT_CHAR_TEX_SIZE * 320]; // size possibly unconfirmed - /* 0xDC88 */ char msgBuf[1064]; // size unconfirmed - /* 0xE0B0 */ char unk_E0B0[0xD8]; + /* 0x0000 */ u32 msgOffset; + /* 0x0004 */ u32 msgLength; + /* 0x0008 */ u8 charTexBuf[FONT_CHAR_TEX_SIZE * 120]; + /* 0x3C08 */ u8 iconBuf[FONT_CHAR_TEX_SIZE]; + /* 0x3C88 */ u8 fontBuf[FONT_CHAR_TEX_SIZE * 320]; + union { + /* 0xDC88 */ char msgBuf[1280]; + /* 0xDC88 */ u16 msgBufWide[640]; + }; } Font; // size = 0xE188 +#define TEXTBOX_ENDTYPE_DEFAULT 0x00 +#define TEXTBOX_ENDTYPE_2_CHOICE 0x10 +#define TEXTBOX_ENDTYPE_3_CHOICE 0x20 +#define TEXTBOX_ENDTYPE_HAS_NEXT 0x30 +#define TEXTBOX_ENDTYPE_PERSISTENT 0x40 +#define TEXTBOX_ENDTYPE_EVENT 0x50 +#define TEXTBOX_ENDTYPE_FADING 0x60 + typedef struct { /* 0x0000 */ View view; /* 0x0128 */ Font font; - /* 0xE2B0 */ u8* textboxSegment; // "fukidashiSegment" - /* 0xE2B4 */ char unk_E2B4[0x44]; - /* 0xE2FA */ u16 unk_E2F8; - /* 0xE2FA */ u16 unk_E2FA; - /* 0xE2FC */ char unk_E2FC[0x04]; - /* 0xE300 */ s32 unk_E300; - /* 0xE304 */ u8 msgMode; - /* 0xE305 */ char unk_E305[0xD1]; - /* 0xE3D6 */ u16 unk_E3D6; - /* 0xE3D8 */ char unk_E3D8[0x0A]; - /* 0xE3E2 */ u16 unk_E3E2; - /* 0xE3E4 */ u8 unk_E3E4; + /* 0xE2B0 */ void* textboxSegment; // original name: "fukidashiSegment" + /* 0xE2B4 */ char unk_E2B4[0x4]; + /* 0xE2B8 */ OcarinaStaff* ocarinaStaff; // original name : "info" + /* 0xE2BC */ char unk_E2BC[0x3C]; + /* 0xE2F8 */ u16 textId; + /* 0xE2FA */ u16 choiceTextId; + /* 0xE2FC */ u8 textBoxProperties; // original name : "msg_disp_type" + /* 0xE2FD */ u8 textBoxType; // "Text Box Type" + /* 0xE2FE */ u8 textBoxPos; // text box position + /* 0xE300 */ s32 msgLength; // original name : "msg_data" + /* 0xE304 */ u8 msgMode; // original name: "msg_mode" + /* 0xE305 */ char unk_E305[0x1]; + /* 0xE306 */ u8 msgBufDecoded[200]; // decoded message buffer, may be smaller than this + /* 0xE3CE */ u16 msgBufPos; // original name : "rdp" + /* 0xE3D0 */ u16 unk_E3D0; // unused, only ever set to 0 + /* 0xE3D2 */ u16 textDrawPos; // draw all decoded characters up to this buffer position + /* 0xE3D4 */ u16 decodedTextLen; // decoded message buffer length + /* 0xE3D6 */ u16 textUnskippable; + /* 0xE3D8 */ s16 textPosX; + /* 0xE3DA */ s16 textPosY; + /* 0xE3DC */ s16 textColorR; + /* 0xE3DE */ s16 textColorG; + /* 0xE3E0 */ s16 textColorB; + /* 0xE3E2 */ s16 textColorAlpha; + /* 0xE3E4 */ u8 textboxEndType; // original name : "select" /* 0xE3E5 */ u8 choiceIndex; - /* 0xE3E6 */ char unk_E3E6[0x01]; - /* 0xE3E7 */ u8 unk_E3E7; - /* 0xE3E8 */ char unk_E3E8[0x04]; - /* 0xE3EC */ u16 unk_E3EC; - /* 0xE3EE */ u16 unk_E3EE; - /* 0xE3F0 */ u16 unk_E3F0; - /* 0xE3F2 */ u16 unk_E3F2; - /* 0xE3F4 */ u16 unk_E3F4; - /* 0xE3F6 */ char unk_E3F6[0x16]; - /* 0xE40C */ u16 unk_E40C; - /* 0xE40E */ s16 unk_E40E; - /* 0xE410 */ u8 unk_E410; - /* 0xE411 */ char unk_E411[0x07]; + /* 0xE3E6 */ u8 choiceNum; // textboxes that are not choice textboxes have a choiceNum of 1 + /* 0xE3E7 */ u8 stateTimer; + /* 0xE3E8 */ u16 textDelayTimer; + /* 0xE3EA */ u16 textDelay; + /* 0xE3EA */ u16 lastPlayedSong; // original references : "Ocarina_Flog" , "Ocarina_Free" + /* 0xE3EE */ u16 ocarinaMode; // original name : "ocarina_mode" + /* 0xE3F0 */ u16 ocarinaAction; // original name : "ocarina_no" + /* 0xE3F2 */ u16 unk_E3F2; // this is like "lastPlayedSong" but set less often, original name : "chk_ocarina_no" + /* 0xE3F4 */ u16 unk_E3F4; // unused, only set to 0 in z_actor + /* 0xE3F6 */ u16 textboxBackgroundIdx; + /* 0xE3F8 */ u8 textboxBackgroundForeColorIdx; + /* 0xE3F8 */ u8 textboxBackgroundBackColorIdx; + /* 0xE3F8 */ u8 textboxBackgroundYOffsetIdx; + /* 0xE3F8 */ u8 textboxBackgroundUnkArg; // unused, set by the textbox background control character arguments + /* 0xE3FC */ char unk_E3FC[0x2]; + /* 0xE3FE */ s16 textboxColorRed; + /* 0xE400 */ s16 textboxColorGreen; + /* 0xE402 */ s16 textboxColorBlue; + /* 0xE404 */ s16 textboxColorAlphaTarget; + /* 0xE406 */ s16 textboxColorAlphaCurrent; + /* 0xE408 */ Actor* talkActor; + /* 0xE40C */ s16 disableWarpSongs; // warp song flag set by scene commands + /* 0xE40E */ s16 unk_E40E; // ocarina related + /* 0xE410 */ u8 lastOcaNoteIdx; } MessageContext; // size = 0xE418 +typedef enum { + /* 0x00 */ DO_ACTION_ATTACK, + /* 0x01 */ DO_ACTION_CHECK, + /* 0x02 */ DO_ACTION_ENTER, + /* 0x03 */ DO_ACTION_RETURN, + /* 0x04 */ DO_ACTION_OPEN, + /* 0x05 */ DO_ACTION_JUMP, + /* 0x06 */ DO_ACTION_DECIDE, + /* 0x07 */ DO_ACTION_DIVE, + /* 0x08 */ DO_ACTION_FASTER, + /* 0x09 */ DO_ACTION_THROW, + /* 0x0A */ DO_ACTION_NONE, // in do_action_static, the texture at this position is NAVI, however this value is in practice the "No Action" value + /* 0x0B */ DO_ACTION_CLIMB, + /* 0x0C */ DO_ACTION_DROP, + /* 0x0D */ DO_ACTION_DOWN, + /* 0x0E */ DO_ACTION_SAVE, + /* 0x0F */ DO_ACTION_SPEAK, + /* 0x10 */ DO_ACTION_NEXT, + /* 0x11 */ DO_ACTION_GRAB, + /* 0x12 */ DO_ACTION_STOP, + /* 0x13 */ DO_ACTION_PUTAWAY, + /* 0x14 */ DO_ACTION_REEL, + /* 0x15 */ DO_ACTION_1, + /* 0x16 */ DO_ACTION_2, + /* 0x17 */ DO_ACTION_3, + /* 0x18 */ DO_ACTION_4, + /* 0x19 */ DO_ACTION_5, + /* 0x1A */ DO_ACTION_6, + /* 0x1B */ DO_ACTION_7, + /* 0x1C */ DO_ACTION_8, + /* 0x1D */ DO_ACTION_MAX +} DoAction; + typedef struct { /* 0x0000 */ View view; /* 0x0128 */ Vtx* actionVtx; @@ -457,12 +701,6 @@ typedef struct { } restrictions; } InterfaceContext; // size = 0x270 -typedef struct { - /* 0x00 */ u8 unk_00; - /* 0x01 */ u8 unk_01; - /* 0x02 */ u8 unk_02; -} UnkAudioStruct; - typedef struct { /* 0x00 */ void* loadedRamAddr; /* 0x04 */ u32 vromStart; @@ -513,7 +751,7 @@ typedef struct { /* 0x0168 */ Vtx* cursorVtx; /* 0x016C */ Vtx* saveVtx; /* 0x0170 */ char unk_170[0x24]; - /* 0x0194 */ OcarinaStaff* unk_194; + /* 0x0194 */ OcarinaStaff* ocarinaStaff; /* 0x0198 */ char unk_198[0x20]; /* 0x01B8 */ OSMesgQueue loadQueue; /* 0x01D0 */ OSMesg loadMsg; @@ -556,7 +794,7 @@ typedef struct { /* 0x025E */ u16 nameColorSet; // 0 = white; 1 = grey /* 0x0260 */ s16 cursorColorSet; // 0 = white; 4 = yellow; 8 = green /* 0x0262 */ s16 promptChoice; // save/continue choice: 0 = yes; 4 = no - /* 0x0264 */ s16 unk_264; + /* 0x0264 */ s16 ocarinaSongIdx; /* 0x0266 */ u8 worldMapPoints[20]; // 0 = hidden; 1 = displayed; 2 = highlighted /* 0x027A */ u8 tradeQuestLocation; /* 0x027C */ SkelAnime playerSkelAnime; diff --git a/include/z64audio.h b/include/z64audio.h index ce1b716b6a..b4b0ccd0cc 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -1028,8 +1028,17 @@ typedef struct { typedef struct { u8 noteIdx; - u8 state; - u8 pos; + u8 state; // original name: "status" + u8 pos; // original name: "locate" } OcarinaStaff; +typedef enum { + /* 0 */ OCARINA_NOTE_A, + /* 1 */ OCARINA_NOTE_C_DOWN, + /* 2 */ OCARINA_NOTE_C_RIGHT, + /* 3 */ OCARINA_NOTE_C_LEFT, + /* 4 */ OCARINA_NOTE_C_UP, + /* -1 */ OCARINA_NOTE_INVALID = 0xFF +} OcarinaNoteIdx; + #endif diff --git a/include/z64cutscene.h b/include/z64cutscene.h index faebefe8ee..b092bb2029 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -159,36 +159,6 @@ typedef union CutsceneData { #define CS_CMD_CONTINUE 0 #define CS_CMD_STOP -1 -typedef enum { - /* 0x00 */ OCARINA_ACTION_UNK_0, - /* 0x01 */ OCARINA_ACTION_FREE_PLAY_OCARINA, - /* 0x02 */ OCARINA_ACTION_MINUET, - /* 0x03 */ OCARINA_ACTION_BOLERO, - /* 0x04 */ OCARINA_ACTION_SERENADE, - /* 0x05 */ OCARINA_ACTION_REQUIEM, - /* 0x06 */ OCARINA_ACTION_NOCTURNE, - /* 0x07 */ OCARINA_ACTION_PRELUDE, - /* 0x08 */ OCARINA_ACTION_SARIAS_SONG, - /* 0x09 */ OCARINA_ACTION_EPONAS_SONG, - /* 0x0A */ OCARINA_ACTION_ZELDAS_LULLABY, - /* 0x0B */ OCARINA_ACTION_SUNS_SONG, - /* 0x0C */ OCARINA_ACTION_SONG_OF_TIME, - /* 0x0D */ OCARINA_ACTION_SONG_OF_STORMS, - /* 0x0E */ OCARINA_ACTION_OCARINA_ACTION_UNK_E, - /* 0x0F */ OCARINA_ACTION_MINUET_PLAYBACK, - /* 0x10 */ OCARINA_ACTION_BOLERO_PLAYBACK, - /* 0x11 */ OCARINA_ACTION_SERENADE_PLAYBACK, - /* 0x12 */ OCARINA_ACTION_REQUIEM_PLAYBACK, - /* 0013 */ OCARINA_ACTION_NOCTURNE_PLAYBACK, - /* 0x14 */ OCARINA_ACTION_PRELUDE_PLAYBACK, - /* 0x15 */ OCARINA_ACTION_SARIAS_SONG_PLAYBACK, - /* 0x16 */ OCARINA_ACTION_EPONAS_SONG_PLAYBACK, - /* 0x17 */ OCARINA_ACTION_ZELDAS_LULLABY_PLAYBACK, - /* 0x18 */ OCARINA_ACTION_SUNS_SONG_PLAYBACK, - /* 0x19 */ OCARINA_ACTION_SONG_OF_TIME_PLAYBACK, - /* 0x1A */ OCARINA_ACTION_SONG_OF_STORMS_PLAYBACK -} OcarinaSongActionIDs; - // TODO confirm correctness, clarify names typedef enum { /* 0x00 */ INVALID_DESTINATION_0, diff --git a/include/z64save.h b/include/z64save.h index 4aeabbdb26..7cb6193c86 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -84,7 +84,7 @@ typedef struct { /* 0x003C */ u8 doubleMagic; /* 0x003D */ u8 doubleDefense; /* 0x003E */ u8 bgsFlag; - /* 0x003F */ u8 ocarinaGameReward; + /* 0x003F */ u8 ocarinaGameRoundNum; /* 0x0040 */ ItemEquips childEquips; /* 0x004A */ ItemEquips adultEquips; /* 0x0054 */ u32 unk_54; // this may be incorrect, currently used for alignement diff --git a/spec b/spec index d4e901c5c3..4adb84f9e9 100644 --- a/spec +++ b/spec @@ -238,25 +238,29 @@ endseg beginseg name "nes_message_data_static" romalign 0x1000 - include "build/baserom/nes_message_data_static.o" + include "build/assets/text/nes_message_data_static.o" + number 7 endseg beginseg name "ger_message_data_static" romalign 0x1000 - include "build/baserom/ger_message_data_static.o" + include "build/assets/text/ger_message_data_static.o" + number 7 endseg beginseg name "fra_message_data_static" romalign 0x1000 - include "build/baserom/fra_message_data_static.o" + include "build/assets/text/fra_message_data_static.o" + number 7 endseg beginseg name "staff_message_data_static" romalign 0x1000 - include "build/baserom/staff_message_data_static.o" + include "build/assets/text/staff_message_data_static.o" + number 7 endseg beginseg @@ -506,9 +510,7 @@ beginseg include "build/src/code/code_801067F0.o" include "build/src/code/code_80106860.o" include "build/src/code/code_801068B0.o" - include "build/data/z_message_PAL.rodata.o" - include "build/src/code/z_message_PAL.o" - include "build/data/z_message_PAL.bss.o" + include_data_with_rodata "build/src/code/z_message_PAL.o" include "build/src/code/z_game_over.o" include "build/src/code/z_construct.o" include "build/data/rsp.text.o" diff --git a/src/code/audio_load.c b/src/code/audio_load.c index 291ee56709..a29b883a92 100644 --- a/src/code/audio_load.c +++ b/src/code/audio_load.c @@ -213,7 +213,8 @@ void AudioLoad_InitSampleDmaBuffers(s32 arg0) { t2 = 3 * gAudioContext.numNotes * gAudioContext.audioBufferParameters.specUnk4; for (i = 0; i < t2; i++) { dma = &gAudioContext.sampleDmas[gAudioContext.sampleDmaCount]; - dma->ramAddr = AudioHeap_AllocAttemptExternal(&gAudioContext.notesAndBuffersPool, gAudioContext.sampleDmaBufSize); + dma->ramAddr = + AudioHeap_AllocAttemptExternal(&gAudioContext.notesAndBuffersPool, gAudioContext.sampleDmaBufSize); if (dma->ramAddr == NULL) { break; } else { @@ -243,7 +244,8 @@ void AudioLoad_InitSampleDmaBuffers(s32 arg0) { for (j = 0; j < gAudioContext.numNotes; j++) { dma = &gAudioContext.sampleDmas[gAudioContext.sampleDmaCount]; - dma->ramAddr = AudioHeap_AllocAttemptExternal(&gAudioContext.notesAndBuffersPool, gAudioContext.sampleDmaBufSize); + dma->ramAddr = + AudioHeap_AllocAttemptExternal(&gAudioContext.notesAndBuffersPool, gAudioContext.sampleDmaBufSize); if (dma->ramAddr == NULL) { break; } else { diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index 3dad66642f..811e16447c 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -82,9 +82,6 @@ typedef enum { #define SCROLL_PRINT_BUF_SIZE 25 -#define OCA_SONGS_SCARECROW 12 -#define OCA_SONGS_MEMORYGAME 13 - #define SFX_PLAYER_CHANNEL_OCARINA 13 extern f32 D_8012F6B4[]; // from audio_synthesis @@ -219,8 +216,8 @@ u8 sOcaMinigameAppendPos = 0; u8 sOcaMinigameEndPos = 0; u8 sOcaMinigameNoteCnts[] = { 5, 6, 8 }; -OcarinaNote sOcarinaSongs[14][20] = { - // minuet +OcarinaNote sOcarinaSongs[OCARINA_SONG_MAX][20] = { + // Minuet { { 2, 0, 18, 86, 0, 0, 0 }, { 14, 0, 18, 92, 0, 0, 0 }, @@ -231,7 +228,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 86, 0, 0, 0 }, }, - // bolero + // Bolero { { 5, 0, 15, 80, 0, 0, 0 }, { 2, 0, 15, 72, 0, 0, 0 }, @@ -244,7 +241,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 66, 0, 0, 0 }, }, - // serenade + // Serenade { { 2, 0, 36, 60, 0, 0, 0 }, { 5, 0, 36, 78, 0, 0, 0 }, @@ -255,7 +252,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // requiem + // Requiem { { 2, 0, 45, 88, 0, 0, 0 }, { 5, 0, 23, 86, 0, 0, 0 }, @@ -266,7 +263,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 94, 0, 0, 0 }, }, - // nocturne + // Nocturne { { 11, 0, 36, 88, 0, 0, 0 }, { 9, 0, 33, 84, 0, 0, 0 }, @@ -279,7 +276,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 96, 0, 0, 0 }, }, - // prelude + // Prelude { { 14, 0, 15, 84, 0, 0, 0 }, { 9, 0, 45, 88, 0, 0, 0 }, @@ -291,7 +288,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // sarias + // Sarias { { 5, 0, 17, 84, 0, 0, 0 }, { 9, 0, 17, 88, 0, 0, 0 }, @@ -302,7 +299,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // epona + // Epona { { 14, 0, 18, 84, 0, 0, 0 }, { 11, 0, 18, 88, 0, 0, 0 }, @@ -313,7 +310,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // lullaby + // Lullaby { { 11, 0, 51, 84, 0, 0, 0 }, { 14, 0, 25, 88, 0, 0, 0 }, @@ -324,7 +321,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // suns + // Suns { { 9, 0, 12, 84, 0, 0, 0 }, { 5, 0, 13, 88, 0, 0, 0 }, @@ -336,7 +333,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // song of time + // Song of Time { { 9, 0, 32, 84, 0, 0, 0 }, { 2, 0, 65, 88, 0, 0, 0 }, @@ -347,7 +344,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // storms + // Storms { { 2, 0, 11, 84, 0, 0, 0 }, { 5, 0, 11, 88, 0, 0, 0 }, @@ -358,13 +355,13 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // scarecrow + // Scarecrow { { 2, 0, 3, 0, 0, 0, 0 }, { 0xFF, 0, 0, 255, 0, 0, 0 }, }, - // OCA_SONGS_MEMORYGAME + // Lost Woods Memory Game { { 2, 0, 3, 0, 0, 0, 0 }, { 0xFF, 0, 0, 0, 0, 0, 0 }, @@ -372,9 +369,13 @@ OcarinaNote sOcarinaSongs[14][20] = { }; OcarinaNote* sPlaybackSong = sOcarinaSongs[0]; -u8 D_80131844[14] = { 0, 3, 2, 1, 3, 2, 1, 0, 1, 0, 1, 2, 3, 0 }; -u8* gFrogsSongPtr = D_80131844; -u8 D_80131858 = 0; // "REC" +u8 sFrogsSongNotes[14] = { + OCARINA_NOTE_A, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_A, +}; +u8* gFrogsSongPtr = sFrogsSongNotes; +u8 sRecordingState = 0; u8 sRecordSongPos = 0; u32 D_80131860 = 0; u8 D_80131864 = 0; @@ -392,26 +393,137 @@ OcarinaNote sPierresSong[108] = { }; OcarinaNote* gScarecrowCustomSongPtr = sPierresSong; -u8* gScarecrowSpawnSongPtr = (u8*)&sOcarinaSongs[OCA_SONGS_SCARECROW]; -OcarinaNote* D_80131BEC = sOcarinaSongs[OCA_SONGS_MEMORYGAME]; +u8* gScarecrowSpawnSongPtr = (u8*)&sOcarinaSongs[OCARINA_SONG_SCARECROW]; +OcarinaNote* D_80131BEC = sOcarinaSongs[OCARINA_SONG_MEMORY_GAME]; u8 sNoteValueIndexMap[16] = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 5, 3, 3, 4, 4, 4 }; -// clang-format off -OcarinaSongInfo gOcarinaSongNotes[14] = { - { 6, { 0, 4, 3, 2, 3, 2 }}, - { 8, { 1, 0, 1, 0, 2, 1, 2, 1 }}, - { 5, { 0, 1, 2, 2, 3 }}, - { 6, { 0, 1, 0, 2, 1, 0 }}, - { 7, { 3, 2, 2, 0, 3, 2, 1 }}, - { 6, { 4, 2, 4, 2, 3, 4 }}, - { 6, { 1, 2, 3, 1, 2, 3 }}, - { 6, { 4, 3, 2, 4, 3, 2 }}, - { 6, { 3, 4, 2, 3, 4, 2 }}, - { 6, { 2, 1, 4, 2, 1, 4 }}, - { 6, { 2, 0, 1, 2, 0, 1 }}, - { 6, { 0, 1, 4, 0, 1, 4 }}, - { 8, { 0, 0, 0, 0, 0, 0, 0, 0 }}, - { 0, { 0, 0, 0, 0, 0, 0, 0, 0 }}, +OcarinaSongInfo gOcarinaSongNotes[OCARINA_SONG_MAX] = { + // Minuet + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + } }, + // Bolero + { 8, + { + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + } }, + // Serenade + { 5, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + } }, + // Requiem + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + } }, + // Nocturne + { 7, + { + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + } }, + // Prelude + { 6, + { + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + } }, + // Sarias + { 6, + { + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + } }, + // Epona + { 6, + { + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + } }, + // Lullaby + { 6, + { + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + } }, + // Suns + { 6, + { + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + } }, + // Song of Time + { 6, + { + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + } }, + // Storms + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + } }, + // Scarecrow + { 8, { 0, 0, 0, 0, 0, 0, 0, 0 } }, + // Lost Woods Memory Game + { 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }, }; // clang-format on @@ -454,9 +566,9 @@ u8 D_8016B9F3; u8 D_8016B9F4; u16 D_8016B9F6; -OcarinaStaff D_8016B9F8; // playing along staff? -OcarinaStaff sDisplayedStaff; // displayed staff? -OcarinaStaff D_8016BA00; // ?? note and status not updated, pos updated as you play +OcarinaStaff sPlayingStaff; +OcarinaStaff sDisplayedStaff; +OcarinaStaff sRecordingStaff; u32 D_8016BA04; typedef struct { s8 x; @@ -474,7 +586,7 @@ u8 sOcarinaHasStartedSong; u8 sOcarinaSongNoteStartIdx; u8 sOcarinaSongCnt; u16 sOcarinaAvailSongs; -u8 D_8016BA2E; +u8 sStaffPlayingPos; u16 sLearnSongPos[0x10]; u16 D_8016BA50[0x10]; u16 D_8016BA70[0x10]; @@ -547,7 +659,7 @@ f32 Audio_OcaAdjStick(s8 inp) { return ret; } -u8 func_800ECAF0(void) { +u8 Audio_OcaGetPlayingState(void) { u8 ret; if (D_80131878 != 0) { @@ -585,7 +697,7 @@ void func_800ECB7C(u8 songIdx) { while (savedSongIdx < 8 && scarecrowSongIdx < 0x10) { noteIdx = sOcarinaSongs[songIdx][scarecrowSongIdx++].noteIdx; if (noteIdx != 0xFF) { - gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[savedSongIdx++] = sNoteValueIndexMap[noteIdx]; + gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[savedSongIdx++] = sNoteValueIndexMap[noteIdx]; } } } @@ -594,15 +706,15 @@ void func_800ECB7C(u8 songIdx) { void func_800ECC04(u16 flg) { u8 i; - if ((sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF) && ((flg & 0xFFF) == 0xFFF)) { + if ((sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF) && ((flg & 0xFFF) == 0xFFF)) { flg |= 0x1000; } - if ((flg == 0xCFFF) && (sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF)) { + if ((flg == 0xCFFF) && (sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF)) { flg = 0xDFFF; } - if ((flg == 0xFFF) && (sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF)) { + if ((flg == 0xFFF) && (sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF)) { flg = 0x1FFF; } @@ -617,8 +729,8 @@ void func_800ECC04(u16 flg) { D_8013187C = 8; sOcarinaHasStartedSong = 0; D_80131878 = 0; - D_8016BA2E = 0; - D_8016B9F8.state = func_800ECAF0(); + sStaffPlayingPos = 0; + sPlayingStaff.state = Audio_OcaGetPlayingState(); sOcarinaInpEnabled = 1; D_80130F4C = 0; for (i = 0; i < 0xE; i++) { @@ -637,8 +749,7 @@ void func_800ECC04(u16 flg) { } if (flg & 0xD000) { - func_800ECB7C(0xC); - return; + func_800ECB7C(OCARINA_SONG_SCARECROW); } } else { D_80130F3C = 0; @@ -707,7 +818,8 @@ void func_800ECDF8(void) { if (sCurOcarinaBtnVal != sLearnSongExpectedNote[i]) { sOcarinaAvailSongs ^= sh; } - while (prevNote->noteIdx == note->noteIdx || (note->noteIdx == 0xFF && note->unk_02 != 0)) { + while (prevNote->noteIdx == note->noteIdx || + (note->noteIdx == OCARINA_NOTE_INVALID && note->unk_02 != 0)) { D_8016BA70[i] += note->unk_02; prevNote = &sOcarinaSongs[i][sLearnSongPos[i]]; note = &sOcarinaSongs[i][sLearnSongPos[i] + 1]; @@ -722,7 +834,7 @@ void func_800ECDF8(void) { } } - if (sOcarinaAvailSongs == 0 && D_8016BA2E >= D_8013187C) { + if (sOcarinaAvailSongs == 0 && sStaffPlayingPos >= D_8013187C) { sOcarinaInpEnabled = 0; if (CHECK_BTN_ANY(D_80130F3C, BTN_B) && sCurOcarinaBtnVal == sOcarinaSongs[i][0].noteIdx) { D_80130F4C = D_80130F3C; @@ -734,7 +846,7 @@ void func_800ECDF8(void) { if (!inputChanged) { sLearnSongLastBtn = sCurOcarinaBtnVal; - D_8016BA2E += sp57 + 1; + sStaffPlayingPos += sp57 + 1; } } } @@ -754,9 +866,9 @@ void func_800ED200(void) { if (sOcarinaHasStartedSong) { if ((sPrevOcarinaNoteVal != sCurOcarinaBtnVal) && (sCurOcarinaBtnVal != 0xFF)) { - D_8016BA2E++; - if (D_8016BA2E >= 9) { - D_8016BA2E = 1; + sStaffPlayingPos++; + if (sStaffPlayingPos >= 9) { + sStaffPlayingPos = 1; } if (sOcarinaSongAppendPos == 8) { @@ -839,17 +951,17 @@ void func_800ED458(s32 arg0) { sCurOcarinaBtnIdx = 4; } - if (sCurOcarinaBtnVal != 0xFF && sCurOcarinaBtnPress & 0x10 && D_80131858 != 2) { + if (sCurOcarinaBtnVal != 0xFF && sCurOcarinaBtnPress & 0x10 && sRecordingState != 2) { sCurOcarinaBtnIdx += 0x80; sCurOcarinaBtnVal++; } - if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & 0x2000) && (D_80131858 != 2)) { + if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & 0x2000) && (sRecordingState != 2)) { sCurOcarinaBtnIdx += 0x40; sCurOcarinaBtnVal--; } - if (D_80131858 != 2) { + if (sRecordingState != 2) { D_80130F2C = sCurOcaStick.y; D_80130F24 = Audio_OcaAdjStick(D_80130F2C); @@ -874,7 +986,7 @@ void func_800ED848(u8 inputEnabled) { sOcarinaInpEnabled = inputEnabled; } -void func_800ED858(u8 arg0) { +void Audio_OcaSetInstrument(u8 arg0) { if (D_80130F10 == arg0) { return; } @@ -902,25 +1014,25 @@ void func_800ED858(u8 arg0) { } } -void func_800ED93C(s8 songIdx, s8 arg1) { - if (songIdx == 0) { +void Audio_OcaSetSongPlayback(s8 songIdxPlusOne, s8 playbackState) { + if (songIdxPlusOne == 0) { sPlaybackState = 0; Audio_StopSfxById(NA_SE_OC_OCARINA); return; } - if (songIdx < 0xF) { - sPlaybackSong = sOcarinaSongs[songIdx - 1]; + if (songIdxPlusOne < 0xF) { + sPlaybackSong = sOcarinaSongs[songIdxPlusOne - 1]; } else { sPlaybackSong = sPierresSong; } - sPlaybackState = arg1; + sPlaybackState = playbackState; sNotePlaybackTimer = 0; sDisplayedNoteValue = 0xFF; sPlaybackNotePos = 0; sStaffPlaybackPos = 0; - while (sPlaybackSong[sPlaybackNotePos].noteIdx == 0xFF) { + while (sPlaybackSong[sPlaybackNotePos].noteIdx == OCARINA_NOTE_INVALID) { sPlaybackNotePos++; } } @@ -1020,7 +1132,7 @@ void func_800EDD68(u8 arg0) { s32 t; OcarinaNote* song; - if (D_80131858 == 1) { + if (sRecordingState == 1) { song = gScarecrowCustomSongPtr; } else { song = D_80131BEC; @@ -1058,26 +1170,26 @@ void func_800EDD68(u8 arg0) { song[sRecordSongPos].unk_02 = 0; - if (D_80131858 == 2) { - if (D_8016BA2E >= 8) { + if (sRecordingState == 2) { + if (sStaffPlayingPos >= 8) { for (i = 0; i < sRecordSongPos; i++) { song[i] = song[i + 1]; } - func_800ECB7C(OCA_SONGS_MEMORYGAME); + func_800ECB7C(OCARINA_SONG_MEMORY_GAME); - for (i = 0; i < OCA_SONGS_SCARECROW; i++) { + for (i = 0; i < OCARINA_SONG_SCARECROW; i++) { for (j = 0; j < 9 - gOcarinaSongNotes[i].len; j++) { for (k = 0; k < gOcarinaSongNotes[i].len && k + j < 8 && - gOcarinaSongNotes[i].notesIdx[k] == gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[k + j]; + gOcarinaSongNotes[i].notesIdx[k] == gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[k + j]; k++) { ; } if (k == gOcarinaSongNotes[i].len) { - D_80131858 = 0xFF; - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sRecordingState = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; return; } } @@ -1085,8 +1197,8 @@ void func_800EDD68(u8 arg0) { i = 1; while (i < 8) { - if (gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[0] != - gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[i]) { + if (gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[0] != + gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[i]) { i = 9; } else { i++; @@ -1094,35 +1206,35 @@ void func_800EDD68(u8 arg0) { } if (i == 8) { - D_80131858 = 0xFF; - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sRecordingState = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; return; } for (i = 0; i < sRecordSongPos; i++) { - sOcarinaSongs[OCA_SONGS_SCARECROW][i] = sOcarinaSongs[OCA_SONGS_MEMORYGAME][i]; + sOcarinaSongs[OCARINA_SONG_SCARECROW][i] = sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][i]; } sOcarinaInpEnabled = 0; } else { - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; } } - D_80131858 = 0; + sRecordingState = 0; } // start custom song? /** - * arg0 = 1, start - * arg0 = 0, finish - * arg0 = 2, also start? + * recordingState = 1, start long scarecrows song + * recordingState = 0, end + * recordingState = 2, also scarecrows song */ -void func_800EE170(u8 arg0) { - if ((u32)arg0 == D_80131858) { +void Audio_OcaSetRecordingState(u8 recordingState) { + if ((u32)recordingState == sRecordingState) { return; } - if (arg0 != 0) { + if (recordingState != 0) { D_80131860 = D_8016BA04; D_80131864 = 0xFF; D_80131868 = 0x57; @@ -1131,41 +1243,41 @@ void func_800EE170(u8 arg0) { D_80131874 = 0; sRecordSongPos = 0; sOcarinaInpEnabled = 1; - D_8016BA2E = 0; + sStaffPlayingPos = 0; D_8016BAA0 = sPierresSong[1]; } else { if (sRecordSongPos == 0) { sPierresSong[1] = D_8016BAA0; } else { - if (D_80131858 == 2) { - D_8016BA2E = 1; + if (sRecordingState == 2) { + sStaffPlayingPos = 1; } func_800EDD68(1); } sOcarinaInpEnabled = 0; - D_8016BA2E = 0; + sStaffPlayingPos = 0; } - D_80131858 = arg0; + sRecordingState = recordingState; } -void func_800EE29C(void) { - D_8016BA00.state = D_80131858; - D_8016BA00.pos = D_8016BA2E; - if (D_80131858 == 0xFF) { - D_80131858 = 0; +void Audio_OcaUpdateRecordingStaff(void) { + sRecordingStaff.state = sRecordingState; + sRecordingStaff.pos = sStaffPlayingPos; + if (sRecordingState == 0xFF) { + sRecordingState = 0; } } -void func_800EE2D4(void) { - D_8016B9F8.noteIdx = sCurOcarinaBtnIdx & 0x3F; - D_8016B9F8.state = func_800ECAF0(); - D_8016B9F8.pos = D_8016BA2E; +void Audio_OcaUpdatePlayingStaff(void) { + sPlayingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; + sPlayingStaff.state = Audio_OcaGetPlayingState(); + sPlayingStaff.pos = sStaffPlayingPos; } -void func_800EE318(void) { +void Audio_OcaUpdateDisplayedStaff(void) { if ((sDisplayedNoteValue & 0x3F) < 0x10) { sDisplayedStaff.noteIdx = Audio_OcaMapNoteValue(sDisplayedNoteValue); } @@ -1181,42 +1293,42 @@ void func_800EE318(void) { } } -OcarinaStaff* func_800EE3C8(void) { - return &D_8016BA00; +OcarinaStaff* Audio_OcaGetRecordingStaff(void) { + return &sRecordingStaff; } -OcarinaStaff* func_800EE3D4(void) { - if (D_8016B9F8.state < 0xFE) { +OcarinaStaff* Audio_OcaGetPlayingStaff(void) { + if (sPlayingStaff.state < 0xFE) { D_80130F3C = 0; } - return &D_8016B9F8; + return &sPlayingStaff; } -OcarinaStaff* Audio_OcaGetDisplayStaff(void) { +OcarinaStaff* Audio_OcaGetDisplayingStaff(void) { return &sDisplayedStaff; } void func_800EE404(void) { s32 noteChanged; - if ((D_80131858 != 0) && ((D_8016BA04 - D_80131860) >= 3)) { + if ((sRecordingState != 0) && ((D_8016BA04 - D_80131860) >= 3)) { noteChanged = false; if (D_80131864 != sCurOcarinaBtnVal) { if (sCurOcarinaBtnVal != 0xFF) { - D_8016BA00.noteIdx = sCurOcarinaBtnIdx & 0x3F; - D_8016BA2E++; - } else if ((D_80131858 == 2) && (D_8016BA2E == 8)) { + sRecordingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; + sStaffPlayingPos++; + } else if ((sRecordingState == 2) && (sStaffPlayingPos == 8)) { func_800EDD68(1); return; } - if (D_8016BA2E > 8) { - if (D_80131858 == 2) { + if (sStaffPlayingPos > 8) { + if (sRecordingState == 2) { // notes played are over 8 and in recording mode. func_800EDD68(1); return; } - D_8016BA2E = true; + sStaffPlayingPos = true; } noteChanged = true; @@ -1235,22 +1347,22 @@ void func_800EE404(void) { } } -void func_800EE57C(u8 minigameIdx) { +void Audio_OcaMemoryGameStart(u8 minigameRound) { u8 i; - if (minigameIdx > 2) { - minigameIdx = 2; + if (minigameRound > 2) { + minigameRound = 2; } sOcaMinigameAppendPos = 0; - sOcaMinigameEndPos = sOcaMinigameNoteCnts[minigameIdx]; + sOcaMinigameEndPos = sOcaMinigameNoteCnts[minigameRound]; for (i = 0; i < 3; i++) { - func_800EE5EC(); + Audio_OcaMemoryGameGenNote(); } } -s32 func_800EE5EC(void) { +s32 Audio_OcaMemoryGameGenNote(void) { u32 rnd; u8 rndNote; @@ -1261,22 +1373,22 @@ s32 func_800EE5EC(void) { rnd = Audio_NextRandom(); rndNote = sOcarinaNoteValues[rnd % 5]; - if (sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos - 1].noteIdx == rndNote) { + if (sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos - 1].noteIdx == rndNote) { rndNote = sOcarinaNoteValues[(rnd + 1) % 5]; } - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].noteIdx = rndNote; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].unk_02 = 0x2D; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].volume = 0x50; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].vibrato = 0; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].tone = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].noteIdx = rndNote; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].unk_02 = 0x2D; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].volume = 0x50; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].vibrato = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].tone = 0; sOcaMinigameAppendPos++; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].noteIdx = 0xFF; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].unk_02 = 0; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos + 1].noteIdx = 0xFF; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos + 1].unk_02 = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].noteIdx = 0xFF; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].unk_02 = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos + 1].noteIdx = 0xFF; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos + 1].unk_02 = 0; if (1) {} return 0; } @@ -1313,9 +1425,9 @@ void func_800EE6F4(void) { sPrevOcarinaNoteVal = sCurOcarinaBtnVal; } - func_800EE2D4(); - func_800EE318(); - func_800EE29C(); + Audio_OcaUpdatePlayingStaff(); + Audio_OcaUpdateDisplayedStaff(); + Audio_OcaUpdateRecordingStaff(); } void func_800EE824(void) { @@ -1330,20 +1442,20 @@ void func_800EE824(void) { D_80131C80++; } else { D_80131C80 = 3; - func_800ED858(0); + Audio_OcaSetInstrument(0); } D_80131C88 = 1200; } break; case 1: Audio_SetSoundBanksMute(0); - func_800ED858(D_80131C84); - func_800ED93C(0xF, 1); + Audio_OcaSetInstrument(D_80131C84); + Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1); D_80131C84++; D_80131C80++; break; case 2: - if (Audio_OcaGetDisplayStaff()->state == 0) { + if (Audio_OcaGetDisplayingStaff()->state == 0) { D_80131C80 = 0; } break; @@ -1351,15 +1463,15 @@ void func_800EE824(void) { } void func_800EE930(void) { - D_8016B9F8.noteIdx = 0xFF; - D_8016B9F8.state = 0xFF; - D_8016B9F8.pos = 0; - sDisplayedStaff.noteIdx = 0xFF; + sPlayingStaff.noteIdx = OCARINA_NOTE_INVALID; + sPlayingStaff.state = 0xFF; + sPlayingStaff.pos = 0; + sDisplayedStaff.noteIdx = OCARINA_NOTE_INVALID; sDisplayedStaff.state = 0; sDisplayedStaff.pos = 0; - D_8016BA00.noteIdx = 0xFF; - D_8016BA00.state = 0xFF; - D_8016BA00.pos = 0; + sRecordingStaff.noteIdx = OCARINA_NOTE_INVALID; + sRecordingStaff.state = 0xFF; + sRecordingStaff.pos = 0; D_80131880 = 0; } @@ -2022,7 +2134,8 @@ void AudioDebug_Draw(GfxPrint* printer) { sDisplayedStaff.pos); GfxPrint_SetPos(printer, 3, 5); - GfxPrint_Printf(printer, "PLAY INFO : %2d %02x %d", D_8016B9F8.noteIdx, D_8016B9F8.state, D_8016B9F8.pos); + GfxPrint_Printf(printer, "PLAY INFO : %2d %02x %d", sPlayingStaff.noteIdx, sPlayingStaff.state, + sPlayingStaff.pos); GfxPrint_SetPos(printer, 3, 6); GfxPrint_Printf(printer, "8note REC POINTER : %08x", gScarecrowSpawnSongPtr); @@ -2037,7 +2150,7 @@ void AudioDebug_Draw(GfxPrint* printer) { GfxPrint_SetPos(printer, 3, 24); GfxPrint_Printf(printer, "OCA:%02x SEQ:%04x PLAY:%02x REC:%02x", D_80130F10, D_80130F3C, sPlaybackState, - D_80131858); + sRecordingState); break; case PAGE_SFX_PARAMETER_CHANGE: @@ -2438,15 +2551,13 @@ void AudioDebug_ProcessInput_SfxSwap(void) { val = gAudioSfxSwapSource[sAudioSfxSwapSel] >> ((3 - sAudioSfxSwapNibbleSel) * 4); val = (val + step) & 0xF; gAudioSfxSwapSource[sAudioSfxSwapSel] = - (gAudioSfxSwapSource[sAudioSfxSwapSel] & - ((0xF << ((3 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + + (gAudioSfxSwapSource[sAudioSfxSwapSel] & ((0xF << ((3 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + (val << ((3 - sAudioSfxSwapNibbleSel) * 4)); } else { val = gAudioSfxSwapTarget[sAudioSfxSwapSel] >> ((7 - sAudioSfxSwapNibbleSel) * 4); val = (val + step) & 0xF; gAudioSfxSwapTarget[sAudioSfxSwapSel] = - (gAudioSfxSwapTarget[sAudioSfxSwapSel] & - ((0xF << ((7 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + + (gAudioSfxSwapTarget[sAudioSfxSwapSel] & ((0xF << ((7 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + (val << ((7 - sAudioSfxSwapNibbleSel) * 4)); } } @@ -3648,7 +3759,7 @@ void func_800F595C(u16 arg0) { u8 arg0b = arg0 & 0xFF; if (D_80130658[arg0b] & 2) { - func_800F5C64(arg0); + Audio_PlayFanfare(arg0); } else if (D_80130658[arg0b] & 4) { Audio_StartSeq(1, 0, arg0); @@ -3730,7 +3841,7 @@ void func_800F5C2C(void) { D_80130628 = NA_BGM_DISABLED; } -void func_800F5C64(u16 arg0) { +void Audio_PlayFanfare(u16 seqId) { u16 sp26; u32 sp20; u8* sp1C; @@ -3738,14 +3849,14 @@ void func_800F5C64(u16 arg0) { sp26 = func_800FA0B4(1); sp1C = func_800E5E84(sp26 & 0xFF, &sp20); - sp18 = func_800E5E84(arg0 & 0xFF, &sp20); + sp18 = func_800E5E84(seqId & 0xFF, &sp20); if ((sp26 == NA_BGM_DISABLED) || (*sp1C == *sp18)) { D_8016B9F4 = 1; } else { D_8016B9F4 = 5; Audio_SeqCmd1(1, 0); } - D_8016B9F6 = arg0; + D_8016B9F6 = seqId; } void func_800F5CF8(void) { @@ -4125,7 +4236,7 @@ void func_800F6C34(void) { sAudioExtraFilter = 0; sAudioBaseFilter2 = 0; sAudioExtraFilter2 = 0; - func_800ED858(0); + Audio_OcaSetInstrument(0); sRiverFreqScaleLerp.remainingFrames = 0; sWaterfallFreqScaleLerp.remainingFrames = 0; sRiverFreqScaleLerp.value = 1.0f; diff --git a/src/code/code_800F9280.c b/src/code/code_800F9280.c index f6eddd4a6f..4d2a5143fd 100644 --- a/src/code/code_800F9280.c +++ b/src/code/code_800F9280.c @@ -2,7 +2,6 @@ #include "global.h" #include "ultra64/abi.h" -extern unk_D_8016E750 D_8016E750[4]; extern u8 D_8016E348[4]; extern u32 sAudioSeqCmds[0x100]; extern u8 sSeqCmdRdPos; diff --git a/src/code/db_camera.c b/src/code/db_camera.c index 2a97382281..f686a7f37a 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -1293,9 +1293,8 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) { DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].cameraRoll, &D_8012D084[10], 3); func_8006376C(0x10, 0x16, (dbCamera->sub.unk_0A == 2) ? 7 : 4, D_8012D084); func_8006376C(0xF, 0x17, (dbCamera->sub.unk_0A == 3) ? 7 : 4, - (dbCamera->sub.mode == 1) ? D_8012CF14 - : (dbCamera->sub.mode == 0) ? *D_8012CF18 - : D_8012CFB0); + (dbCamera->sub.mode == 1) ? D_8012CF14 + : (dbCamera->sub.mode == 0) ? *D_8012CF18 : D_8012CFB0); if (dbCamera->sub.unk_0C) { D_8012D05C[80] = '>'; } else { @@ -1320,9 +1319,9 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) { if (dbCamera->sub.mode != 1) { func_8006376C(3, 0x16, - ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) ? 7 - : !D_80161144 ? 4 - : 3, + ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) + ? 7 + : !D_80161144 ? 4 : 3, D_8012CF30); sp110 = 'X'; DbCamera_SetTextValue(dbCamera->at.x, &sp111, 6); @@ -1333,11 +1332,10 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) { sp110 = 'Z'; DbCamera_SetTextValue(dbCamera->at.z, &sp111, 6); func_8006376C(3, 0x19, 2, &sp110); - func_8006376C(0x1E, 0x16, - ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7 - : D_80161144 ? 4 - : 3, - D_8012CF34); + func_8006376C( + 0x1E, 0x16, + ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7 : D_80161144 ? 4 : 3, + D_8012CF34); sp110 = 'X'; DbCamera_SetTextValue(dbCamera->eye.x, &sp111, 6); func_8006376C(0x1E, 0x17, 2, &sp110); @@ -1352,9 +1350,9 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) { OLib_Vec3fDiffToVecSphGeo(&spFC, sp90, sp7C); spFC.yaw -= cam->playerPosRot.rot.y; func_8006376C(3, 0x16, - ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) ? 7 - : !D_80161144 ? 4 - : 3, + ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) + ? 7 + : !D_80161144 ? 4 : 3, D_8012CF30); DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &D_8012D0E4[10], 4); func_8006376C(3, 0x17, 3, D_8012D0E4); @@ -1364,11 +1362,10 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) { func_8006376C(3, 0x19, 3, D_8012D0D4); OLib_Vec3fDiffToVecSphGeo(&spFC, sp90, sp80); spFC.yaw -= cam->playerPosRot.rot.y; - func_8006376C(0x1E, 0x16, - ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7 - : D_80161144 ? 4 - : 3, - D_8012CF34); + func_8006376C( + 0x1E, 0x16, + ((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7 : D_80161144 ? 4 : 3, + D_8012CF34); DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &D_8012D0E4[10], 4); func_8006376C(0x1C, 0x17, 3, D_8012D0E4); DbCamera_SetTextValue(spFC.yaw * 0.00549325f, &D_8012D0F8[10], 4); diff --git a/src/code/fault.c b/src/code/fault.c index 52fe378f2a..397d8bf1af 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -283,7 +283,7 @@ void Fault_UpdatePadImpl() { } u32 Fault_WaitForInputImpl() { - Input* curInput = &sFaultStructPtr->padInput; + Input* input = &sFaultStructPtr->padInput; s32 count = 600; u32 kDown; @@ -291,7 +291,7 @@ u32 Fault_WaitForInputImpl() { Fault_Sleep(0x10); Fault_UpdatePadImpl(); - kDown = curInput->press.button; + kDown = input->press.button; if (kDown == BTN_L) { sFaultStructPtr->faultActive = !sFaultStructPtr->faultActive; @@ -539,7 +539,7 @@ void Fault_Wait5Seconds(void) { } void Fault_WaitForButtonCombo() { - Input* curInput = &sFaultStructPtr->padInput; + Input* input = &sFaultStructPtr->padInput; s32 state; u32 s1; u32 s2; @@ -567,8 +567,8 @@ void Fault_WaitForButtonCombo() { Fault_Sleep(0x10); Fault_UpdatePadImpl(); - kDown = curInput->press.button; - kCur = curInput->cur.button; + kDown = input->press.button; + kCur = input->cur.button; if ((kCur == 0) && (s1 == s2)) { s1 = 0; @@ -717,7 +717,7 @@ void Fault_DrawMemDumpPage(const char* title, u32* addr, u32 param_3) { } void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) { - Input* curInput = &sFaultStructPtr->padInput; + Input* input = &sFaultStructPtr->padInput; u32 addr = pc; s32 count; u32 off; @@ -743,7 +743,7 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) { count--; Fault_Sleep(0x10); Fault_UpdatePadImpl(); - if (CHECK_BTN_ALL(curInput->press.button, BTN_L)) { + if (CHECK_BTN_ALL(input->press.button, BTN_L)) { sFaultStructPtr->faultActive = false; } } @@ -751,40 +751,40 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) { do { Fault_Sleep(0x10); Fault_UpdatePadImpl(); - } while (curInput->press.button == 0); + } while (input->press.button == 0); - if (CHECK_BTN_ALL(curInput->press.button, BTN_START) || CHECK_BTN_ALL(curInput->cur.button, BTN_A)) { + if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->cur.button, BTN_A)) { return; } off = 0x10; - if (CHECK_BTN_ALL(curInput->cur.button, BTN_Z)) { + if (CHECK_BTN_ALL(input->cur.button, BTN_Z)) { off = 0x100; } - if (CHECK_BTN_ALL(curInput->cur.button, BTN_B)) { + if (CHECK_BTN_ALL(input->cur.button, BTN_B)) { off <<= 8; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_DUP)) { + if (CHECK_BTN_ALL(input->press.button, BTN_DUP)) { addr -= off; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_DDOWN)) { + if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) { addr += off; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_CUP)) { + if (CHECK_BTN_ALL(input->press.button, BTN_CUP)) { addr = pc; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_CDOWN)) { + if (CHECK_BTN_ALL(input->press.button, BTN_CDOWN)) { addr = sp; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_CLEFT)) { + if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) { addr = unk0; } - if (CHECK_BTN_ALL(curInput->press.button, BTN_CRIGHT)) { + if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) { addr = unk1; } - } while (!CHECK_BTN_ALL(curInput->press.button, BTN_L)); + } while (!CHECK_BTN_ALL(input->press.button, BTN_L)); sFaultStructPtr->faultActive = true; } diff --git a/src/code/ucode_disas.c b/src/code/ucode_disas.c index f94fa5137e..ded32479a0 100644 --- a/src/code/ucode_disas.c +++ b/src/code/ucode_disas.c @@ -708,10 +708,11 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { Gfillrect setscissor = ptr->fillrect; const char* modeStr; - modeStr = (setscissor.pad == G_SC_NON_INTERLACE) ? "G_SC_NON_INTERLACE" - : (setscissor.pad == G_SC_ODD_INTERLACE) ? "G_SC_ODD_INTERLACE" - : (setscissor.pad == G_SC_EVEN_INTERLACE) ? "G_SC_EVEN_INTERLACE" - : "???"; + modeStr = (setscissor.pad == G_SC_NON_INTERLACE) + ? "G_SC_NON_INTERLACE" + : (setscissor.pad == G_SC_ODD_INTERLACE) + ? "G_SC_ODD_INTERLACE" + : (setscissor.pad == G_SC_EVEN_INTERLACE) ? "G_SC_EVEN_INTERLACE" : "???"; if ((setscissor.x0frac | setscissor.y0frac | setscissor.x1frac | setscissor.y1frac)) { if (1) {} @@ -737,15 +738,12 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { u32 siz = ((curGfx->words.w0 & 0x180000) >> 0x13) & 0xff; DISAS_LOG("gsDPSetColorImage(G_IM_FMT_%s, G_IM_SIZ_%s, %d, 0x%08x(0x%08x) ),", - (fmt == G_IM_FMT_RGBA) ? "RGBA" - : (fmt == G_IM_FMT_YUV) ? "YUV" - : (fmt == G_IM_FMT_CI) ? "CI" - : (fmt == G_IM_FMT_IA) ? "IA" - : "I", - (siz == G_IM_SIZ_4b) ? "4b" - : (siz == G_IM_SIZ_8b) ? "8b" - : (siz == G_IM_SIZ_16b) ? "16b" - : "32b", + (fmt == G_IM_FMT_RGBA) + ? "RGBA" + : (fmt == G_IM_FMT_YUV) ? "YUV" + : (fmt == G_IM_FMT_CI) ? "CI" : (fmt == G_IM_FMT_IA) ? "IA" : "I", + (siz == G_IM_SIZ_4b) ? "4b" + : (siz == G_IM_SIZ_8b) ? "8b" : (siz == G_IM_SIZ_16b) ? "16b" : "32b", (curGfx->dma.len & 0xfff) + 1, curGfx->setimg.dram, addr); if (this->pipeSyncRequired) { @@ -768,15 +766,12 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { u32 siz = ((curGfx->words.w0 & 0x180000) >> 0x13) & 0xff; DISAS_LOG("gsDPSetTextureImage(G_IM_FMT_%s, G_IM_SIZ_%s, %d, 0x%08x(0x%08x)),", - (fmt == G_IM_FMT_RGBA) ? "RGBA" - : (fmt == G_IM_FMT_YUV) ? "YUV" - : (fmt == G_IM_FMT_CI) ? "CI" - : (fmt == G_IM_FMT_IA) ? "IA" - : "I", - (siz == G_IM_SIZ_4b) ? "4b" - : (siz == G_IM_SIZ_8b) ? "8b" - : (siz == G_IM_SIZ_16b) ? "16b" - : "32b", + (fmt == G_IM_FMT_RGBA) + ? "RGBA" + : (fmt == G_IM_FMT_YUV) ? "YUV" + : (fmt == G_IM_FMT_CI) ? "CI" : (fmt == G_IM_FMT_IA) ? "IA" : "I", + (siz == G_IM_SIZ_4b) ? "4b" + : (siz == G_IM_SIZ_8b) ? "8b" : (siz == G_IM_SIZ_16b) ? "16b" : "32b", (curGfx->dma.len & 0xfff) + 1, curGfx->setimg.dram, addr); } break; @@ -994,11 +989,15 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { case G_MODIFYVTX: { DISAS_LOG("gsSPModifyVertex(%d, %s, %08x),", curGfx->dma.par, - (curGfx->dma.len == G_MWO_POINT_RGBA) ? "G_MWO_POINT_RGBA" - : (curGfx->dma.len == G_MWO_POINT_ST) ? "G_MWO_POINT_ST" - : (curGfx->dma.len == G_MWO_POINT_XYSCREEN) ? "G_MWO_POINT_XYSCREEN" - : (curGfx->dma.len == G_MWO_POINT_ZSCREEN) ? "G_MWO_POINT_ZSCREEN" - : "G_MWO_POINT_????", + (curGfx->dma.len == G_MWO_POINT_RGBA) + ? "G_MWO_POINT_RGBA" + : (curGfx->dma.len == G_MWO_POINT_ST) + ? "G_MWO_POINT_ST" + : (curGfx->dma.len == G_MWO_POINT_XYSCREEN) + ? "G_MWO_POINT_XYSCREEN" + : (curGfx->dma.len == G_MWO_POINT_ZSCREEN) + ? "G_MWO_POINT_ZSCREEN" + : "G_MWO_POINT_????", curGfx->dma.addr); this->vtxCnt += curGfx->dma.par; this->spvtxCnt++; @@ -1211,9 +1210,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { } } break; - default: { - DISAS_LOG("AnyDisplayList(),"); - } break; + default: { DISAS_LOG("AnyDisplayList(),"); } break; } } break; @@ -1338,9 +1335,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, GfxMod* ptr) { DISAS_LOG("gsSPObjRenderMode(0x%08x),", dma.addr); } break; - default: { - DISAS_LOG("AnyDisplayList(),"); - } break; + default: { DISAS_LOG("AnyDisplayList(),"); } break; } } } diff --git a/src/code/z_actor.c b/src/code/z_actor.c index fdd8bfd438..36533a77c2 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1489,7 +1489,7 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) { return false; } -u32 func_8002F194(Actor* actor, GlobalContext* globalCtx) { +u32 Actor_ProcessTalkRequest(Actor* actor, GlobalContext* globalCtx) { if (actor->flags & 0x100) { actor->flags &= ~0x100; return true; @@ -1530,8 +1530,8 @@ s32 func_8002F2F4(Actor* actor, GlobalContext* globalCtx) { return func_8002F2CC(actor, globalCtx, var1); } -u32 func_8002F334(Actor* actor, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { +u32 Actor_TextboxIsClosing(Actor* actor, GlobalContext* globalCtx) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return true; } else { return false; @@ -1544,13 +1544,13 @@ s8 func_8002F368(GlobalContext* globalCtx) { return player->exchangeItemId; } -void func_8002F374(GlobalContext* globalCtx, Actor* actor, s16* x, s16* y) { - Vec3f sp1C; - f32 sp18; +void Actor_GetScreenPos(GlobalContext* globalCtx, Actor* actor, s16* x, s16* y) { + Vec3f projectedPos; + f32 w; - func_8002BE04(globalCtx, &actor->focus.pos, &sp1C, &sp18); - *x = sp1C.x * sp18 * 160.0f + 160.0f; - *y = sp1C.y * sp18 * -120.0f + 120.0f; + func_8002BE04(globalCtx, &actor->focus.pos, &projectedPos, &w); + *x = projectedPos.x * w * (SCREEN_WIDTH / 2) + (SCREEN_WIDTH / 2); + *y = projectedPos.y * w * -(SCREEN_HEIGHT / 2) + (SCREEN_HEIGHT / 2); } u32 Actor_HasParent(Actor* actor, GlobalContext* globalCtx) { @@ -2862,7 +2862,7 @@ s32 func_80032880(GlobalContext* globalCtx, Actor* actor) { s16 sp1E; s16 sp1C; - func_8002F374(globalCtx, actor, &sp1E, &sp1C); + Actor_GetScreenPos(globalCtx, actor, &sp1E, &sp1C); return (sp1E > -20) && (sp1E < 340) && (sp1C > -160) && (sp1C < 400); } @@ -3585,12 +3585,12 @@ Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx) { return func_8002EB44(object, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx); } -s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, callback1_800343CC unkFunc1, +s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 interactRange, callback1_800343CC unkFunc1, callback2_800343CC unkFunc2) { - s16 sp26; - s16 sp24; + s16 x; + s16 y; - if (func_8002F194(actor, globalCtx)) { + if (Actor_ProcessTalkRequest(actor, globalCtx)) { *arg2 = 1; return true; } @@ -3600,13 +3600,13 @@ s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, c return false; } - func_8002F374(globalCtx, actor, &sp26, &sp24); + Actor_GetScreenPos(globalCtx, actor, &x, &y); - if ((sp26 < 0) || (sp26 > SCREEN_WIDTH) || (sp24 < 0) || (sp24 > SCREEN_HEIGHT)) { + if ((x < 0) || (x > SCREEN_WIDTH) || (y < 0) || (y > SCREEN_HEIGHT)) { return false; } - if (!func_8002F2CC(actor, globalCtx, arg3)) { + if (!func_8002F2CC(actor, globalCtx, interactRange)) { return false; } @@ -4128,7 +4128,7 @@ void func_800359B8(Actor* actor, s16 arg1, Vec3s* arg2) { } void func_80035B18(GlobalContext* globalCtx, Actor* actor, u16 textId) { - func_8010B720(globalCtx, textId); + Message_ContinueTextbox(globalCtx, textId); actor->textId = textId; } @@ -5203,7 +5203,7 @@ s32 func_800374E0(GlobalContext* globalCtx, Actor* actor, u16 textId) { ret = 0; break; case 0x1041: - if (msgCtx->unk_E2FA == 0x1035) { + if (msgCtx->choiceTextId == 0x1035) { if (msgCtx->choiceIndex == 0) { func_80035B18(globalCtx, actor, 0x1036); Flags_SetInfTable(0x2A); @@ -5213,7 +5213,7 @@ s32 func_800374E0(GlobalContext* globalCtx, Actor* actor, u16 textId) { Flags_SetInfTable(0x2B); } } - if (msgCtx->unk_E2FA == 0x1038) { + if (msgCtx->choiceTextId == 0x1038) { if (msgCtx->choiceIndex == 0) { func_80035B18(globalCtx, actor, 0x1039); Flags_SetInfTable(0x2E); @@ -5362,16 +5362,16 @@ s32 func_80037CB8(GlobalContext* globalCtx, Actor* actor, s16 arg2) { MessageContext* msgCtx = &globalCtx->msgCtx; s32 ret = false; - switch (func_8010BDBC(msgCtx)) { - case 2: + switch (Message_GetState(msgCtx)) { + case TEXT_STATE_CLOSING: func_80037C5C(globalCtx, arg2, actor->textId); ret = true; break; - case 4: - case 5: - if (func_80106BC8(globalCtx) && func_80037C94(globalCtx, actor, arg2)) { + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx) && func_80037C94(globalCtx, actor, arg2)) { Audio_PlaySoundGeneral(NA_SE_SY_CANCEL, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); - msgCtx->msgMode = 0x36; + msgCtx->msgMode = MSGMODE_TEXT_CLOSING; ret = true; } break; @@ -5386,7 +5386,7 @@ s32 func_80037D98(GlobalContext* globalCtx, Actor* actor, s16 arg2, s32* arg3) { s16 sp2A; s16 abs_var; - if (func_8002F194(actor, globalCtx)) { + if (Actor_ProcessTalkRequest(actor, globalCtx)) { *arg3 = 1; return true; } @@ -5398,7 +5398,7 @@ s32 func_80037D98(GlobalContext* globalCtx, Actor* actor, s16 arg2, s32* arg3) { return false; } - func_8002F374(globalCtx, actor, &sp2C, &sp2A); + Actor_GetScreenPos(globalCtx, actor, &sp2C, &sp2A); if (0) {} // Necessary to match diff --git a/src/code/z_camera.c b/src/code/z_camera.c index e227249035..1e33d1918e 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -1690,9 +1690,9 @@ s32 Camera_Normal2(Camera* camera) { anim->unk_20 = BGCAM_ROT(bgData).x; anim->unk_22 = BGCAM_ROT(bgData).y; anim->unk_24 = playerPosRot->pos.y; - anim->unk_1C = BGCAM_FOV(bgData) == -1 ? norm2->unk_14 - : BGCAM_FOV(bgData) >= 0x169 ? PCT(BGCAM_FOV(bgData)) - : BGCAM_FOV(bgData); + anim->unk_1C = BGCAM_FOV(bgData) == -1 + ? norm2->unk_14 + : BGCAM_FOV(bgData) >= 0x169 ? PCT(BGCAM_FOV(bgData)) : BGCAM_FOV(bgData); anim->unk_28 = BGCAM_JFIFID(bgData) == -1 ? 0 : BGCAM_JFIFID(bgData); @@ -2920,9 +2920,7 @@ s32 Camera_Battle1(Camera* camera) { } anim->roll += (((OREG(36) * camera->speedRatio) * (1.0f - distRatio)) - anim->roll) * PCT(OREG(37)); camera->roll = DEGF_TO_BINANG(anim->roll); - camera->fov = Camera_LERPCeilF((player->swordState != 0 ? 0.8f - : gSaveContext.health <= 0x10 ? 0.8f - : 1.0f) * + camera->fov = Camera_LERPCeilF((player->swordState != 0 ? 0.8f : gSaveContext.health <= 0x10 ? 0.8f : 1.0f) * (fov - ((fov * 0.05f) * distRatio)), camera->fov, camera->fovUpdateRate, 1.0f); } @@ -5829,7 +5827,7 @@ s32 Camera_Demo5(Camera* camera) { Actor_GetFocus(&camera->targetPosRot, camera->target); OLib_Vec3fDiffToVecSphGeo(&playerTargetGeo, &camera->targetPosRot.pos, &camera->playerPosRot.pos); D_8011D3AC = camera->target->category; - func_8002F374(camera->globalCtx, camera->target, &sp78.yaw, &sp78.pitch); + Actor_GetScreenPos(camera->globalCtx, camera->target, &sp78.yaw, &sp78.pitch); eyeTargetDist = OLib_Vec3fDist(&camera->targetPosRot.pos, &camera->eye); OLib_Vec3fDiffToVecSphGeo(&eyePlayerGeo, &playerhead.pos, &camera->eyeNext); sp4A = eyePlayerGeo.yaw - playerTargetGeo.yaw; diff --git a/src/code/z_construct.c b/src/code/z_construct.c index fb2241d2fc..7c3947f745 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -47,9 +47,9 @@ void func_801109B0(GlobalContext* globalCtx) { ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169); - if (gSaveContext.language == 0) { + if (gSaveContext.language == LANGUAGE_ENG) { doActionOffset = 0; - } else if (gSaveContext.language == 1) { + } else if (gSaveContext.language == LANGUAGE_GER) { doActionOffset = 0x2B80; } else { doActionOffset = 0x5700; @@ -58,9 +58,9 @@ void func_801109B0(GlobalContext* globalCtx) { DmaMgr_SendRequest1(interfaceCtx->doActionSegment, (u32)_do_action_staticSegmentRomStart + doActionOffset, 0x300, "../z_construct.c", 174); - if (gSaveContext.language == 0) { + if (gSaveContext.language == LANGUAGE_ENG) { doActionOffset = 0x480; - } else if (gSaveContext.language == 1) { + } else if (gSaveContext.language == LANGUAGE_GER) { doActionOffset = 0x3000; } else { doActionOffset = 0x5B80; @@ -164,18 +164,18 @@ void func_801109B0(GlobalContext* globalCtx) { R_A_BTN_COLOR(2) = 50; } -void func_80110F68(GlobalContext* globalCtx) { +void Message_Init(GlobalContext* globalCtx) { MessageContext* msgCtx = &globalCtx->msgCtx; s32 pad; - func_8011040C(); + Message_SetTables(); - globalCtx->msgCtx.unk_E3EE = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; - msgCtx->msgMode = 0; - msgCtx->unk_E300 = 0; - msgCtx->unk_E2F8 = msgCtx->unk_E3E4 = msgCtx->choiceIndex = msgCtx->unk_E3F0 = msgCtx->unk_E3D6 = 0; - msgCtx->unk_E3E2 = 0xFF; + msgCtx->msgMode = MSGMODE_NONE; + msgCtx->msgLength = 0; + msgCtx->textId = msgCtx->textboxEndType = msgCtx->choiceIndex = msgCtx->ocarinaAction = msgCtx->textUnskippable = 0; + msgCtx->textColorAlpha = 255; View_Init(&msgCtx->view, globalCtx->state.gfxCtx); @@ -195,10 +195,10 @@ void func_80111070(void) { YREG(8) = 10; YREG(14) = 0; YREG(15) = 0; - YREG(16) = 0; - YREG(17) = 0; - YREG(22) = 50; - YREG(23) = 0; + R_TEXTBOX_TEXWIDTH = 0; + R_TEXTBOX_TEXHEIGHT = 0; + R_TEXTBOX_WIDTH = 50; + R_TEXTBOX_HEIGHT = 0; YREG(24) = -60; YREG(25) = 13; YREG(26) = 15; @@ -240,15 +240,15 @@ void func_80111070(void) { YREG(68) = 0; YREG(69) = 0; YREG(70) = 0; - YREG(71) = -6; - YREG(72) = 10; + R_TEXTBOX_ICON_XPOS = -6; + R_TEXTBOX_ICON_YPOS = 10; YREG(73) = -8; YREG(74) = 8; - YREG(75) = 24; + R_TEXTBOX_ICON_SIZE = 24; YREG(76) = 32; YREG(77) = 0; - YREG(78) = 0; - YREG(79) = 48; + R_MESSAGE_DEBUGGER_SELECT = 0; + R_MESSAGE_DEBUGGER_TEXTID = 48; YREG(80) = 450; YREG(81) = 0; YREG(82) = -15; @@ -388,30 +388,30 @@ void func_80111070(void) { R_MAGIC_FILL_X = 26; XREG(52) = 0; XREG(53) = 1; - XREG(54) = 65; - XREG(55) = 60; - XREG(56) = 16; - XREG(57) = 80; + R_TEXT_INIT_XPOS = 65; + R_TEXT_INIT_YPOS = 60; + R_TEXT_LINE_SPACING = 16; + R_TEXT_CHAR_SCALE = 80; XREG(58) = 80; XREG(59) = 12; - XREG(60) = 1; - XREG(61) = 3; + R_TEXT_DROP_SHADOW_OFFSET = 1; + R_TEXTBOX_BG_YPOS = 3; XREG(62) = 0; XREG(63) = 100; - XREG(64) = 158; - XREG(65) = 102; - XREG(66) = 48; - XREG(67) = 54; - XREG(68) = 70; - XREG(69) = 86; + R_TEXTBOX_END_XPOS = 158; + R_TEXTBOX_END_YPOS = 102; + R_TEXT_CHOICE_XPOS = 48; + R_TEXT_CHOICE_YPOS(0) = 54; + R_TEXT_CHOICE_YPOS(1) = 70; + R_TEXT_CHOICE_YPOS(2) = 86; XREG(70) = -300; XREG(71) = 0; - XREG(72) = 54; - XREG(73) = 48; - XREG(74) = 128; - XREG(75) = 64; - XREG(76) = 2048; - XREG(77) = 512; + R_TEXTBOX_X_TARGET = 54; + R_TEXTBOX_Y_TARGET = 48; + R_TEXTBOX_WIDTH_TARGET = 128; + R_TEXTBOX_HEIGHT_TARGET = 64; + R_TEXTBOX_TEXWIDTH_TARGET = 2048; + R_TEXTBOX_TEXHEIGHT_TARGET = 512; XREG(78) = 96; XREG(79) = 98; XREG(80) = 0; @@ -507,15 +507,15 @@ void func_80111070(void) { WREG(95) = 6; if (gSaveContext.gameMode == 0) { - VREG(0) = 52; - VREG(1) = 36; + R_TEXTBOX_X = 52; + R_TEXTBOX_Y = 36; VREG(2) = 214; VREG(3) = 76; VREG(4) = 304; VREG(5) = 430; VREG(6) = 1; - VREG(7) = 78; - VREG(8) = 166; + R_TEXTBOX_CLEF_XPOS = 78; + R_TEXTBOX_CLEF_YPOS = 166; VREG(9) = 40; R_COMPASS_SCALE_X = 32; R_COMPASS_SCALE_Y = 32; @@ -533,28 +533,31 @@ void func_80111070(void) { VREG(25) = 0; VREG(26) = 0; VREG(27) = 0; - VREG(28) = 98; - VREG(29) = 18; + R_OCARINA_NOTES_XPOS = 98; + R_OCARINA_NOTES_XPOS_OFFSET = 18; VREG(30) = 0; VREG(31) = 0; VREG(32) = 0; - VREG(33) = 70; - VREG(34) = 255; - VREG(35) = 80; - VREG(36) = 70; - VREG(37) = 255; - VREG(38) = 80; + + R_TEXT_ADJUST_COLOR_1_R = 70; + R_TEXT_ADJUST_COLOR_1_G = 255; + R_TEXT_ADJUST_COLOR_1_B = 80; + + R_TEXT_ADJUST_COLOR_2_R = 70; + R_TEXT_ADJUST_COLOR_2_G = 255; + R_TEXT_ADJUST_COLOR_2_B = 80; + VREG(40) = 9; VREG(42) = 250; VREG(43) = 440; VREG(44) = 10; - VREG(45) = 190; - VREG(46) = 184; - VREG(47) = 176; - VREG(48) = 172; - VREG(49) = 170; + R_OCARINA_NOTES_YPOS(0) = 190; + R_OCARINA_NOTES_YPOS(1) = 184; + R_OCARINA_NOTES_YPOS(2) = 176; + R_OCARINA_NOTES_YPOS(3) = 172; + R_OCARINA_NOTES_YPOS(4) = 170; VREG(50) = 30; - VREG(51) = 0; + R_OCARINA_NOTES_YPOS_OFFSET = 0; VREG(52) = -16; VREG(53) = 230; VREG(54) = 230; diff --git a/src/code/z_debug.c b/src/code/z_debug.c index 55eedb17f8..21b0fee3ee 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -151,15 +151,19 @@ void func_8006390C(Input* input) { gGameInfo->dpadLast = dpad; } - increment = CHECK_BTN_ANY(dpad, BTN_DRIGHT) ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) ? 1000 - : CHECK_BTN_ALL(input->cur.button, BTN_A) ? 100 - : CHECK_BTN_ALL(input->cur.button, BTN_B) ? 10 - : 1) - : CHECK_BTN_ANY(dpad, BTN_DLEFT) ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) ? -1000 - : CHECK_BTN_ALL(input->cur.button, BTN_A) ? -100 - : CHECK_BTN_ALL(input->cur.button, BTN_B) ? -10 - : -1) - : 0; + increment = CHECK_BTN_ANY(dpad, BTN_DRIGHT) + ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) + ? 1000 + : CHECK_BTN_ALL(input->cur.button, BTN_A) + ? 100 + : CHECK_BTN_ALL(input->cur.button, BTN_B) ? 10 : 1) + : CHECK_BTN_ANY(dpad, BTN_DLEFT) + ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) + ? -1000 + : CHECK_BTN_ALL(input->cur.button, BTN_A) + ? -100 + : CHECK_BTN_ALL(input->cur.button, BTN_B) ? -10 : -1) + : 0; gGameInfo->data[gGameInfo->regCur + regGroup] += increment; if (CHECK_BTN_ANY(dpad, BTN_DUP)) { diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 817f0d70ea..413d84e07a 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -1489,11 +1489,11 @@ void Cutscene_Command_Textbox(GlobalContext* globalCtx, CutsceneContext* csCtx, if (D_8011E1C0 != cmd->base) { D_8011E1C0 = cmd->base; if ((cmd->type == 3) && CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { - func_8010B680(globalCtx, cmd->textId1, NULL); + Message_StartTextbox(globalCtx, cmd->textId1, NULL); } else if ((cmd->type == 4) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) { - func_8010B680(globalCtx, cmd->textId1, NULL); + Message_StartTextbox(globalCtx, cmd->textId1, NULL); } else { - func_8010B680(globalCtx, cmd->base, NULL); + Message_StartTextbox(globalCtx, cmd->base, NULL); } return; } @@ -1507,37 +1507,38 @@ void Cutscene_Command_Textbox(GlobalContext* globalCtx, CutsceneContext* csCtx, if (csCtx->frames >= cmd->endFrame) { originalCsFrames = csCtx->frames; - dialogState = func_8010BDBC(&globalCtx->msgCtx); + dialogState = Message_GetState(&globalCtx->msgCtx); - if ((dialogState != 2) && (dialogState != 0) && (dialogState != 7) && (dialogState != 8)) { + if ((dialogState != TEXT_STATE_CLOSING) && (dialogState != TEXT_STATE_NONE) && + (dialogState != TEXT_STATE_SONG_DEMO_DONE) && (dialogState != TEXT_STATE_8)) { csCtx->frames--; - if ((dialogState == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((dialogState == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { if (cmd->textId1 != 0xFFFF) { - func_8010B720(globalCtx, cmd->textId1); + Message_ContinueTextbox(globalCtx, cmd->textId1); } else { csCtx->frames++; } } else { if (cmd->textId2 != 0xFFFF) { - func_8010B720(globalCtx, cmd->textId2); + Message_ContinueTextbox(globalCtx, cmd->textId2); } else { csCtx->frames++; } } } - if (dialogState == 9) { + if (dialogState == TEXT_STATE_9) { if (cmd->textId1 != 0xFFFF) { - func_8010B720(globalCtx, cmd->textId1); + Message_ContinueTextbox(globalCtx, cmd->textId1); } else { csCtx->frames++; } } - if (dialogState == 5) { - if (func_80106BC8(globalCtx) != 0) { + if (dialogState == TEXT_STATE_EVENT) { + if (Message_ShouldAdvance(globalCtx)) { func_8010BD58(globalCtx, cmd->base); } } diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 5f08d18212..4dc68d04ab 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -199,7 +199,7 @@ void EnAObj_Destroy(Actor* thisx, GlobalContext* globalCtx) { } void EnAObj_WaitFinishedTalking(EnAObj* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->dyna.actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->dyna.actor, globalCtx)) { EnAObj_SetupWaitTalk(this, this->dyna.actor.params); } } @@ -215,7 +215,7 @@ void EnAObj_WaitTalk(EnAObj* this, GlobalContext* globalCtx) { relYawTowardsPlayer = this->dyna.actor.yawTowardsPlayer - this->dyna.actor.shape.rot.y; if (ABS(relYawTowardsPlayer) < 0x2800 || (this->dyna.actor.params == A_OBJ_SIGNPOST_ARROW && ABS(relYawTowardsPlayer) > 0x5800)) { - if (func_8002F194(&this->dyna.actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->dyna.actor, globalCtx)) { EnAObj_SetupAction(this, EnAObj_WaitFinishedTalking); } else { func_8002F2F4(&this->dyna.actor, globalCtx); diff --git a/src/code/z_fbdemo_wipe1.c b/src/code/z_fbdemo_wipe1.c index fcf96994a7..ca238643b5 100644 --- a/src/code/z_fbdemo_wipe1.c +++ b/src/code/z_fbdemo_wipe1.c @@ -13,8 +13,8 @@ Gfx sWipeDList[] = { gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), gsDPSetPrimDepth(0, 0), - gsDPLoadTextureBlock_4b(sWipe1Tex, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, - 6, 11, G_TX_NOLOD), + gsDPLoadTextureBlock_4b(sWipe1Tex, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, + 11, G_TX_NOLOD), gsDPLoadMultiBlock_4b(sWipe1Tex, 0x0100, 1, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, 11, 1), gsDPSetTextureLUT(G_TT_NONE), diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c index 1834ea1b98..d8e00faade 100644 --- a/src/code/z_game_over.c +++ b/src/code/z_game_over.c @@ -13,10 +13,8 @@ void GameOver_FadeInLights(GlobalContext* globalCtx) { } } -// This variable has the same problem as z_message's data going to rodata. -// A fix for this is planned, and will be taken care of with z_message. -// For now this variable is externed from z_message's rodata.s file. -extern s16 D_80153D80; // todo: rename to `timer` and make this in function static (after rodata issue is resolved) +// This variable cannot be moved into this file as all of z_message_PAL rodata is in the way +extern s16 gGameOverTimer; void GameOver_Update(GlobalContext* globalCtx) { GameOverContext* gameOverCtx = &globalCtx->gameOverCtx; @@ -28,7 +26,7 @@ void GameOver_Update(GlobalContext* globalCtx) { switch (gameOverCtx->state) { case GAMEOVER_DEATH_START: - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gSaveContext.timer1State = 0; gSaveContext.timer2State = 0; @@ -75,7 +73,7 @@ void GameOver_Update(GlobalContext* globalCtx) { gSaveContext.unk_13E7 = gSaveContext.unk_13E8 = gSaveContext.unk_13EA = gSaveContext.unk_13EC = 0; Environment_InitGameOverLights(globalCtx); - D_80153D80 = 20; + gGameOverTimer = 20; if (1) {} v90 = VREG(90); v91 = VREG(91); @@ -91,9 +89,9 @@ void GameOver_Update(GlobalContext* globalCtx) { break; case GAMEOVER_DEATH_DELAY_MENU: - D_80153D80--; + gGameOverTimer--; - if (D_80153D80 == 0) { + if (gGameOverTimer == 0) { globalCtx->pauseCtx.state = 8; gameOverCtx->state++; func_800AA15C(); @@ -102,13 +100,13 @@ void GameOver_Update(GlobalContext* globalCtx) { case GAMEOVER_REVIVE_START: gameOverCtx->state++; - D_80153D80 = 0; + gGameOverTimer = 0; Environment_InitGameOverLights(globalCtx); ShrinkWindow_SetVal(0x20); return; case GAMEOVER_REVIVE_RUMBLE: - D_80153D80 = 50; + gGameOverTimer = 50; gameOverCtx->state++; if (1) {} @@ -121,28 +119,28 @@ void GameOver_Update(GlobalContext* globalCtx) { break; case GAMEOVER_REVIVE_WAIT_GROUND: - D_80153D80--; + gGameOverTimer--; - if (D_80153D80 == 0) { - D_80153D80 = 64; + if (gGameOverTimer == 0) { + gGameOverTimer = 64; gameOverCtx->state++; } break; case GAMEOVER_REVIVE_WAIT_FAIRY: - D_80153D80--; + gGameOverTimer--; - if (D_80153D80 == 0) { - D_80153D80 = 50; + if (gGameOverTimer == 0) { + gGameOverTimer = 50; gameOverCtx->state++; } break; case GAMEOVER_REVIVE_FADE_OUT: Environment_FadeOutGameOverLights(globalCtx); - D_80153D80--; + gGameOverTimer--; - if (D_80153D80 == 0) { + if (gGameOverTimer == 0) { gameOverCtx->state = GAMEOVER_INACTIVE; } break; diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index adc829d017..7fad9e0607 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -111,7 +111,7 @@ void KaleidoSetup_Init(GlobalContext* globalCtx) { pauseCtx->nameDisplayTimer = 0; pauseCtx->nameColorSet = 0; pauseCtx->cursorColorSet = 4; - pauseCtx->unk_264 = -1; + pauseCtx->ocarinaSongIdx = -1; pauseCtx->cursorSpecialPos = 0; View_Init(&pauseCtx->view, globalCtx->state.gfxCtx); diff --git a/src/code/z_kanfont.c b/src/code/z_kanfont.c index 1bfc0dcf89..c9a150a5b9 100644 --- a/src/code/z_kanfont.c +++ b/src/code/z_kanfont.c @@ -1,27 +1,34 @@ #include "global.h" +#include "message_data_static.h" -// To be moved to message_data_static header -#define MESSAGE_NEWLINE '\x01' -#define MESSAGE_END '\x02' -// message_data_static symbols -extern const char D_07000000[]; // start of file -extern const char D_070380D4[]; // charset message (id 0xFFFC) -extern const char D_0703811C[]; // end marker of last message - -// stubbed in PAL -void func_8006EE50(Font* font, s16 arg1, s16 arg2) { +void func_8006EE50(Font* font, u16 arg1, u16 arg2) { } +/** + * Loads a texture from nes_font_static for the requested `character` into the character texture buffer + * at `codePointIndex`. The value of `character` is the ASCII codepoint subtract ' '/0x20. + */ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex) { - DmaMgr_SendRequest1(&font->unk_8[codePointIndex], &_nes_font_staticSegmentRomStart[character * FONT_CHAR_TEX_SIZE], - FONT_CHAR_TEX_SIZE, "../z_kanfont.c", 93); + DmaMgr_SendRequest1(&font->charTexBuf[codePointIndex], + &_nes_font_staticSegmentRomStart[character * FONT_CHAR_TEX_SIZE], FONT_CHAR_TEX_SIZE, + "../z_kanfont.c", 93); } -void Font_LoadMessageBoxEndIcon(Font* font, u16 icon) { - DmaMgr_SendRequest1(font->iconBuf, &_message_staticSegmentRomStart[4 * 0x1000 + icon * FONT_CHAR_TEX_SIZE], +/** + * Loads a message box icon from message_static, such as the ending triangle/square or choice arrow into the + * icon buffer. + * The different icons are given in the MessageBoxIcon enum. + */ +void Font_LoadMessageBoxIcon(Font* font, u16 icon) { + DmaMgr_SendRequest1(font->iconBuf, + &_message_staticSegmentRomStart[4 * MESSAGE_STATIC_TEX_SIZE + icon * FONT_CHAR_TEX_SIZE], FONT_CHAR_TEX_SIZE, "../z_kanfont.c", 100); } +/** + * Loads a full set of character textures based on their ordering in the message with text id 0xFFFC into + * the font buffer. + */ void Font_LoadOrderedFont(Font* font) { s32 len; s32 jj; @@ -31,24 +38,29 @@ void Font_LoadOrderedFont(Font* font) { s32 fontBufIndex; s32 offset; - font->msgOffset = D_070380D4 - D_07000000; - len = font->msgLength = D_0703811C - D_070380D4; + font->msgOffset = _message_0xFFFC_nes - (const char*)_nes_message_data_staticSegmentStart; + len = font->msgLength = _message_0xFFFD_nes - _message_0xFFFC_nes; + DmaMgr_SendRequest1(font->msgBuf, &_nes_message_data_staticSegmentRomStart[font->msgOffset], len, "../z_kanfont.c", 122); osSyncPrintf("msg_data=%x, msg_data0=%x jj=%x\n", font->msgOffset, font->msgLength, jj = len); + len = jj; for (fontBufIndex = 0, codePointIndex = 0; font->msgBuf[codePointIndex] != MESSAGE_END; codePointIndex++) { if (codePointIndex > len) { osSyncPrintf("ERROR!! エラー!!! error───!!!!\n"); return; } + if (font->msgBuf[codePointIndex] != MESSAGE_NEWLINE) { fontBuf = font->fontBuf + fontBufIndex * 8; fontStatic = _nes_font_staticSegmentRomStart; + osSyncPrintf("nes_mes_buf[%d]=%d\n", codePointIndex, font->msgBuf[codePointIndex]); + offset = (font->msgBuf[codePointIndex] - '\x20') * FONT_CHAR_TEX_SIZE; DmaMgr_SendRequest1(fontBuf, fontStatic + offset, FONT_CHAR_TEX_SIZE, "../z_kanfont.c", 134); - fontBufIndex += 0x10; + fontBufIndex += FONT_CHAR_TEX_SIZE / 8; } } } diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 63b0e7b990..8136ae0005 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -882,7 +882,7 @@ void Environment_Update(GlobalContext* globalCtx, EnvironmentContext* envCtx, Li } if ((pauseCtx->state == 0) && (gameOverCtx->state == GAMEOVER_INACTIVE)) { - if (((msgCtx->unk_E300 == 0) && (msgCtx->msgMode == 0)) || (((void)0, gSaveContext.gameMode) == 3)) { + if (((msgCtx->msgLength == 0) && (msgCtx->msgMode == 0)) || (((void)0, gSaveContext.gameMode) == 3)) { if ((envCtx->unk_1A == 0) && !FrameAdvance_IsEnabled(globalCtx) && (globalCtx->transitionMode == 0 || ((void)0, gSaveContext.gameMode) != 0)) { @@ -2029,7 +2029,7 @@ void func_80075B44(GlobalContext* globalCtx) { if ((Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) || Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) && globalCtx->csCtx.state == 0 && !Player_InCsMode(globalCtx)) { - func_8010B680(globalCtx, 0x3066, NULL); + Message_StartTextbox(globalCtx, 0x3066, NULL); } globalCtx->envCtx.unk_E0++; } diff --git a/src/code/z_map_mark.c b/src/code/z_map_mark.c index a096a9b566..8718b8de4b 100644 --- a/src/code/z_map_mark.c +++ b/src/code/z_map_mark.c @@ -63,10 +63,10 @@ void MapMark_Init(GlobalContext* globalCtx) { Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr); sLoadedMarkDataTable = gMapMarkDataTable; - sLoadedMarkDataTable = (void*)(u32)((overlay->vramTable != NULL) - ? (void*)((u32)overlay->vramTable - - (s32)((u32)overlay->vramStart - (u32)overlay->loadedRamAddr)) - : NULL); + sLoadedMarkDataTable = (void*)(u32)( + (overlay->vramTable != NULL) + ? (void*)((u32)overlay->vramTable - (s32)((u32)overlay->vramStart - (u32)overlay->loadedRamAddr)) + : NULL); } void MapMark_ClearPointers(GlobalContext* globalCtx) { diff --git a/src/code/z_message_PAL.c b/src/code/z_message_PAL.c index 3423934dc7..58c87347b1 100644 --- a/src/code/z_message_PAL.c +++ b/src/code/z_message_PAL.c @@ -1,66 +1,3307 @@ #include "global.h" +#include "message_data_static.h" +#include "vt.h" #include "textures/parameter_static/parameter_static.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_801069B0.s") +s16 sTextFade = false; // original name: key_off_flag ? -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106AA8.s") +u8 D_8014B2F4 = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106BC8.s") +s16 sOcarinaNoteBufPos = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106C88.s") +s16 sOcarinaNoteBufLen = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106CCC.s") +u8 sTextboxSkipped = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106D40.s") +u16 sNextTextId = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80106F1C.s") +s16 sTextIsCredits = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80107244.s") +UNK_TYPE D_8014B30C = 0; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80107448.s") +s16 sLastPlayedSong = 0xFF; // last played song? -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80107628.s") +s16 sHasSunsSong = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_801076CC.s") +s16 sMessageHasSetSfx = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80107980.s") +u16 sOcarinaSongBitFlags = 0; // ocarina bit flags -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_801080B4.s") +MessageTableEntry sNesMessageEntryTable[] = { +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \ + { textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_nes }, +#define DEFINE_MESSAGE_FFFC +#include "text/message_data.h" +#undef DEFINE_MESSAGE_FFFC +#undef DEFINE_MESSAGE + { 0xFFFF, 0, NULL }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_801083F8.s") +const char* sGerMessageEntryTable[] = { +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) _message_##textId##_ger, +#include "text/message_data.h" +#undef DEFINE_MESSAGE + NULL, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_801086B0.s") +const char* sFraMessageEntryTable[] = { +#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) _message_##textId##_fra, +#include "text/message_data.h" +#undef DEFINE_MESSAGE + NULL, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80109968.s") +MessageTableEntry sStaffMessageEntryTable[] = { +#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \ + { textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_staff }, +#include "text/message_data_staff.h" +#undef DEFINE_MESSAGE + { 0xFFFF, 0, NULL }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_80109B3C.s") +MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable; +const char** sGerMessageEntryTablePtr = sGerMessageEntryTable; +const char** sFraMessageEntryTablePtr = sFraMessageEntryTable; +MessageTableEntry* sStaffMessageEntryTablePtr = sStaffMessageEntryTable; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010B0C0.s") +s16 sTextboxBackgroundForePrimColors[][3] = { + { 255, 255, 255 }, { 50, 20, 0 }, { 255, 60, 0 }, { 255, 255, 255 }, + { 255, 255, 255 }, { 255, 255, 255 }, { 255, 255, 255 }, { 255, 255, 255 }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010B680.s") +s16 sTextboxBackgroundBackPrimColors[][3] = { + { 0, 0, 0 }, + { 220, 150, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010B720.s") +s16 sTextboxBackgroundYOffsets[] = { + 1, + 2, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010B820.s") +// original name: onpu_buff +u8 sOcarinaNoteBuf[12] = { 0 }; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010BD58.s") +s16 sOcarinaNotesAlphaValues[9] = { 0 }; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010BD88.s") +// Maps the ocarina song order to the quest item order +s16 gOcarinaSongItemMap[] = { + OCARINA_SONG_MINUET, OCARINA_SONG_BOLERO, OCARINA_SONG_SERENADE, OCARINA_SONG_REQUIEM, + OCARINA_SONG_NOCTURNE, OCARINA_SONG_PRELUDE, OCARINA_SONG_LULLABY, OCARINA_SONG_EPONAS, + OCARINA_SONG_SARIAS, OCARINA_SONG_SUNS, OCARINA_SONG_TIME, OCARINA_SONG_STORMS, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010BDBC.s") +s32 sCharTexSize; +s32 sCharTexScale; +s16 sOcarinaNoteAPrimR; +s16 sOcarinaNoteAPrimB; +s16 sOcarinaNoteAPrimG; +s16 sOcarinaNoteAEnvR; +s16 sOcarinaNoteAEnvB; +s16 sOcarinaNoteAEnvG; +s16 sOcarinaNoteCPrimR; +s16 sOcarinaNoteCPrimB; +s16 sOcarinaNoteCPrimG; +s16 sOcarinaNoteCEnvR; +s16 sOcarinaNoteCEnvB; +s16 sOcarinaNoteCEnvG; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010BED8.s") +void Message_ResetOcarinaNoteState(void) { + R_OCARINA_NOTES_YPOS(0) = 189; + R_OCARINA_NOTES_YPOS(1) = 184; + R_OCARINA_NOTES_YPOS(2) = 179; + R_OCARINA_NOTES_YPOS(3) = 174; + R_OCARINA_NOTES_YPOS(4) = 169; + sOcarinaNoteBuf[0] = 0xFF; + sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] = + sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] = + sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0; + sOcarinaNoteAPrimR = 80; + sOcarinaNoteAPrimG = 255; + sOcarinaNoteAPrimB = 150; + sOcarinaNoteAEnvR = 10; + sOcarinaNoteAEnvG = 10; + sOcarinaNoteAEnvB = 10; + sOcarinaNoteCPrimR = 255; + sOcarinaNoteCPrimG = 255; + sOcarinaNoteCPrimB = 50; + sOcarinaNoteCEnvR = 10; + sOcarinaNoteCEnvG = 10; + sOcarinaNoteCEnvB = 10; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010C358.s") +void Message_UpdateOcarinaGame(GlobalContext* globalCtx) { + MessageContext* msgCtx = &globalCtx->msgCtx; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010C39C.s") + globalCtx->msgCtx.msgMode++; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010F2CC.s") + if (globalCtx->msgCtx.msgMode == MSGMODE_MEMORY_GAME_PLAYER_PLAYING) { + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + func_800ECC04((1 << OCARINA_SONG_MEMORY_GAME) + 0x8000); + msgCtx->textDrawPos = msgCtx->decodedTextLen; + } else if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING) { + Audio_OcaSetInstrument(6); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); + msgCtx->stateTimer = 2; + } + Message_ResetOcarinaNoteState(); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010F494.s") +u8 Message_ShouldAdvance(GlobalContext* globalCtx) { + Input* input = &globalCtx->state.input[0]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010F58C.s") + if (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) || + CHECK_BTN_ALL(input->press.button, BTN_CUP)) { + Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_PASS, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + return CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) || + CHECK_BTN_ALL(input->press.button, BTN_CUP); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8010F6F0.s") +u8 Message_ShouldAdvanceSilent(GlobalContext* globalCtx) { + Input* input = &globalCtx->state.input[0]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_message_PAL/func_8011040C.s") + return CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) || + CHECK_BTN_ALL(input->press.button, BTN_CUP); +} + +/** + * Closes any currently displayed textbox immediately, without waiting for + * input from the player. + */ +void Message_CloseTextbox(GlobalContext* globalCtx) { + MessageContext* msgCtx = &globalCtx->msgCtx; + + if (msgCtx->msgLength != 0) { + msgCtx->stateTimer = 2; + msgCtx->msgMode = MSGMODE_TEXT_CLOSING; + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_DEFAULT; + Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } +} + +void Message_HandleChoiceSelection(GlobalContext* globalCtx, u8 numChoices) { + static s16 sAnalogStickHeld = false; + MessageContext* msgCtx = &globalCtx->msgCtx; + Input* input = &globalCtx->state.input[0]; + + if (input->rel.stick_y >= 30 && !sAnalogStickHeld) { + sAnalogStickHeld = true; + msgCtx->choiceIndex--; + if (msgCtx->choiceIndex > 128) { + msgCtx->choiceIndex = 0; + } else { + Audio_PlaySoundGeneral(NA_SE_SY_CURSOR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + } else if (input->rel.stick_y <= -30 && !sAnalogStickHeld) { + sAnalogStickHeld = true; + msgCtx->choiceIndex++; + if (msgCtx->choiceIndex > numChoices) { + msgCtx->choiceIndex = numChoices; + } else { + Audio_PlaySoundGeneral(NA_SE_SY_CURSOR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + } else if (ABS(input->rel.stick_y) < 30) { + sAnalogStickHeld = false; + } + msgCtx->textPosX = R_TEXT_CHOICE_XPOS; + msgCtx->textPosY = + (numChoices == 1) ? R_TEXT_CHOICE_YPOS(msgCtx->choiceIndex + 1) : R_TEXT_CHOICE_YPOS(msgCtx->choiceIndex); +} + +void Message_DrawTextChar(GlobalContext* globalCtx, void* textureImage, Gfx** p) { + MessageContext* msgCtx = &globalCtx->msgCtx; + Gfx* gfx = *p; + s16 x = msgCtx->textPosX; + s16 y = msgCtx->textPosY; + + gDPPipeSync(gfx++); + + sCharTexSize = (R_TEXT_CHAR_SCALE / 100.0f) * 16.0f; + sCharTexScale = 1024.0f / (R_TEXT_CHAR_SCALE / 100.0f); + + gDPLoadTextureBlock_4b(gfx++, textureImage, G_IM_FMT_I, FONT_CHAR_TEX_WIDTH, FONT_CHAR_TEX_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); + + // Draw drop shadow + if (msgCtx->textBoxType != TEXTBOX_TYPE_NONE_NO_SHADOW) { + gDPSetPrimColor(gfx++, 0, 0, 0, 0, 0, msgCtx->textColorAlpha); + gSPTextureRectangle(gfx++, (x + R_TEXT_DROP_SHADOW_OFFSET) << 2, (y + R_TEXT_DROP_SHADOW_OFFSET) << 2, + (x + R_TEXT_DROP_SHADOW_OFFSET + sCharTexSize) << 2, + (y + R_TEXT_DROP_SHADOW_OFFSET + sCharTexSize) << 2, G_TX_RENDERTILE, 0, 0, sCharTexScale, + sCharTexScale); + } + + gDPPipeSync(gfx++); + gDPSetPrimColor(gfx++, 0, 0, msgCtx->textColorR, msgCtx->textColorG, msgCtx->textColorB, msgCtx->textColorAlpha); + gSPTextureRectangle(gfx++, x << 2, y << 2, (x + sCharTexSize) << 2, (y + sCharTexSize) << 2, G_TX_RENDERTILE, 0, 0, + sCharTexScale, sCharTexScale); + *p = gfx; +} + +// resizes textboxes when opening them +void Message_GrowTextbox(MessageContext* msgCtx) { + static f32 sWidthCoefficients[] = { + 1.2f, 1.5f, 1.8f, 2.0f, 2.1f, 2.2f, 2.1f, 2.0f, + }; + static f32 sHeightCoefficients[] = { + 0.6f, 0.75f, 0.9f, 1.0f, 1.05f, 1.1f, 1.05f, 1.0f, + }; + f32 width = + R_TEXTBOX_WIDTH_TARGET * (sWidthCoefficients[msgCtx->stateTimer] + sWidthCoefficients[msgCtx->stateTimer]); + f32 height = R_TEXTBOX_HEIGHT_TARGET * sHeightCoefficients[msgCtx->stateTimer]; + f32 texWidth = + R_TEXTBOX_TEXWIDTH_TARGET / (sWidthCoefficients[msgCtx->stateTimer] + sWidthCoefficients[msgCtx->stateTimer]); + f32 texHeight = R_TEXTBOX_TEXHEIGHT_TARGET / sHeightCoefficients[msgCtx->stateTimer]; + + // Adjust y pos + R_TEXTBOX_Y = R_TEXTBOX_Y_TARGET + + (R_TEXTBOX_Y_TARGET - (s16)(R_TEXTBOX_Y_TARGET * sHeightCoefficients[msgCtx->stateTimer] + 0.5f)) / 2; + + msgCtx->textboxColorAlphaCurrent += msgCtx->textboxColorAlphaTarget / 8; + msgCtx->stateTimer++; + if (msgCtx->stateTimer == 8) { + // Reached the end + R_TEXTBOX_X = R_TEXTBOX_X_TARGET; + R_TEXTBOX_Y = R_TEXTBOX_Y_TARGET; + msgCtx->msgMode = MSGMODE_TEXT_STARTING; + msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget; + } + // Adjust width and height + R_TEXTBOX_WIDTH = (s16)(width + 0.5f) / 2; + R_TEXTBOX_HEIGHT = (s16)(height + 0.5f); + // Adjust texture coordinates + R_TEXTBOX_TEXWIDTH = texWidth + 0.5f; + R_TEXTBOX_TEXHEIGHT = texHeight + 0.5f; + // Adjust x pos + R_TEXTBOX_X = (R_TEXTBOX_X_TARGET + R_TEXTBOX_WIDTH_TARGET) - (R_TEXTBOX_WIDTH / 2); +} + +void Message_FindMessage(GlobalContext* globalCtx, u16 textId) { + const char* foundSeg; + const char* nextSeg; + MessageTableEntry* messageTableEntry = sNesMessageEntryTablePtr; + const char** languageSegmentTable; + Font* font; + const char* seg; + + if (gSaveContext.language == LANGUAGE_ENG) { + seg = messageTableEntry->segment; + + while (messageTableEntry->textId != 0xFFFF) { + font = &globalCtx->msgCtx.font; + + if (messageTableEntry->textId == textId) { + foundSeg = messageTableEntry->segment; + font->charTexBuf[0] = messageTableEntry->typePos; + messageTableEntry++; + nextSeg = messageTableEntry->segment; + font->msgOffset = foundSeg - seg; + font->msgLength = nextSeg - foundSeg; + // "Message found!!!" + osSyncPrintf(" メッセージが,見つかった!!! = %x " + "(data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); + return; + } + messageTableEntry++; + } + } else { + languageSegmentTable = + (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr : sFraMessageEntryTablePtr; + seg = messageTableEntry->segment; + + while (messageTableEntry->textId != 0xFFFF) { + font = &globalCtx->msgCtx.font; + + if (messageTableEntry->textId == textId) { + foundSeg = *languageSegmentTable; + font->charTexBuf[0] = messageTableEntry->typePos; + languageSegmentTable++; + nextSeg = *languageSegmentTable; + font->msgOffset = foundSeg - seg; + font->msgLength = nextSeg - foundSeg; + // "Message found!!!" + osSyncPrintf(" メッセージが,見つかった!!! = %x " + "(data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); + return; + } + messageTableEntry++; + languageSegmentTable++; + } + } + // "Message not found!!!" + osSyncPrintf(" メッセージが,見つからなかった!!! = %x\n", textId); + font = &globalCtx->msgCtx.font; + messageTableEntry = sNesMessageEntryTablePtr; + + if (gSaveContext.language == LANGUAGE_ENG) { + foundSeg = messageTableEntry->segment; + font->charTexBuf[0] = messageTableEntry->typePos; + messageTableEntry++; + nextSeg = messageTableEntry->segment; + } else { + languageSegmentTable = + (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr : sFraMessageEntryTablePtr; + foundSeg = *languageSegmentTable; + font->charTexBuf[0] = messageTableEntry->typePos; + languageSegmentTable++; + nextSeg = *languageSegmentTable; + } + font->msgOffset = foundSeg - seg; + font->msgLength = nextSeg - foundSeg; +} + +void Message_FindCreditsMessage(GlobalContext* globalCtx, u16 textId) { + const char* foundSeg; + const char* nextSeg; + const char* seg; + MessageTableEntry* messageTableEntry = sStaffMessageEntryTablePtr; + Font* font; + + seg = messageTableEntry->segment; + while (messageTableEntry->textId != 0xFFFF) { + font = &globalCtx->msgCtx.font; + + if (messageTableEntry->textId == textId) { + foundSeg = messageTableEntry->segment; + font->charTexBuf[0] = messageTableEntry->typePos; + messageTableEntry++; + nextSeg = messageTableEntry->segment; + font->msgOffset = foundSeg - seg; + font->msgLength = nextSeg - foundSeg; + // "Message found!!!" + osSyncPrintf(" メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); + return; + } + messageTableEntry++; + } +} + +void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) { + switch (colorParameter) { + case MSGCOL_RED: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = 255; + msgCtx->textColorG = 120; + msgCtx->textColorB = 0; + } else { + msgCtx->textColorR = 255; + msgCtx->textColorG = 60; + msgCtx->textColorB = 60; + } + break; + case MSGCOL_ADJUSTABLE: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = R_TEXT_ADJUST_COLOR_1_R; + msgCtx->textColorG = R_TEXT_ADJUST_COLOR_1_G; + msgCtx->textColorB = R_TEXT_ADJUST_COLOR_1_B; + } else { + msgCtx->textColorR = R_TEXT_ADJUST_COLOR_2_R; + msgCtx->textColorG = R_TEXT_ADJUST_COLOR_2_G; + msgCtx->textColorB = R_TEXT_ADJUST_COLOR_2_B; + } + break; + case MSGCOL_BLUE: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = 80; + msgCtx->textColorG = 110; + msgCtx->textColorB = 255; + } else { + msgCtx->textColorR = 80; + msgCtx->textColorG = 90; + msgCtx->textColorB = 255; + } + break; + case MSGCOL_LIGHTBLUE: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = 90; + msgCtx->textColorG = 180; + msgCtx->textColorB = 255; + } else if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) { + msgCtx->textColorR = 80; + msgCtx->textColorG = 150; + msgCtx->textColorB = 180; + } else { + msgCtx->textColorR = 100; + msgCtx->textColorG = 180; + msgCtx->textColorB = 255; + } + break; + case MSGCOL_PURPLE: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = 210; + msgCtx->textColorG = 100; + msgCtx->textColorB = 255; + } else { + msgCtx->textColorR = 255; + msgCtx->textColorG = 150; + msgCtx->textColorB = 180; + } + break; + case MSGCOL_YELLOW: + if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textColorR = 255; + msgCtx->textColorG = 255; + msgCtx->textColorB = 30; + } else { + msgCtx->textColorR = 225; + msgCtx->textColorG = 255; + msgCtx->textColorB = 50; + } + break; + case MSGCOL_BLACK: + msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0; + break; + case MSGCOL_DEFAULT: + default: + if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) { + msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0; + } else { + msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255; + } + break; + } +} + +void Message_DrawTextboxIcon(GlobalContext* globalCtx, Gfx** p, s16 x, s16 y) { + static s16 sIconPrimColors[][3] = { + { 0, 200, 80 }, + { 50, 255, 130 }, + }; + static s16 sIconEnvColors[][3] = { + { 0, 0, 0 }, + { 0, 255, 130 }, + }; + static s16 sIconPrimR = 0; + static s16 sIconPrimG = 200; + static s16 sIconPrimB = 80; + static s16 sIconFlashTimer = 12; + static s16 sIconFlashColorIdx = 0; + static s16 sIconEnvR = 0; + static s16 sIconEnvG = 0; + static s16 sIconEnvB = 0; + MessageContext* msgCtx = &globalCtx->msgCtx; + Font* font = &msgCtx->font; + Gfx* gfx = *p; + s16 primR; + s16 primG; + s16 primB; + s16 envR; + s16 envG; + s16 envB; + u8* iconTexture = font->iconBuf; + + if (sTextIsCredits) { + return; + } + + primR = (ABS(sIconPrimR - sIconPrimColors[sIconFlashColorIdx][0])) / sIconFlashTimer; + primG = (ABS(sIconPrimG - sIconPrimColors[sIconFlashColorIdx][1])) / sIconFlashTimer; + primB = (ABS(sIconPrimB - sIconPrimColors[sIconFlashColorIdx][2])) / sIconFlashTimer; + + if (sIconPrimR >= sIconPrimColors[sIconFlashColorIdx][0]) { + sIconPrimR -= primR; + } else { + sIconPrimR += primR; + } + + if (sIconPrimG >= sIconPrimColors[sIconFlashColorIdx][1]) { + sIconPrimG -= primG; + } else { + sIconPrimG += primG; + } + + if (sIconPrimB >= sIconPrimColors[sIconFlashColorIdx][2]) { + sIconPrimB -= primB; + } else { + sIconPrimB += primB; + } + + envR = (ABS(sIconEnvR - sIconEnvColors[sIconFlashColorIdx][0])) / sIconFlashTimer; + envG = (ABS(sIconEnvG - sIconEnvColors[sIconFlashColorIdx][1])) / sIconFlashTimer; + envB = (ABS(sIconEnvB - sIconEnvColors[sIconFlashColorIdx][2])) / sIconFlashTimer; + + if (sIconEnvR >= sIconEnvColors[sIconFlashColorIdx][0]) { + sIconEnvR -= envR; + } else { + sIconEnvR += envR; + } + + if (sIconEnvG >= sIconEnvColors[sIconFlashColorIdx][1]) { + sIconEnvG -= envG; + } else { + sIconEnvG += envG; + } + + if (sIconEnvB >= sIconEnvColors[sIconFlashColorIdx][2]) { + sIconEnvB -= envB; + } else { + sIconEnvB += envB; + } + + sIconFlashTimer--; + + if (sIconFlashTimer == 0) { + sIconPrimR = sIconPrimColors[sIconFlashColorIdx][0]; + sIconPrimG = sIconPrimColors[sIconFlashColorIdx][1]; + sIconPrimB = sIconPrimColors[sIconFlashColorIdx][2]; + sIconEnvR = sIconEnvColors[sIconFlashColorIdx][0]; + sIconEnvG = sIconEnvColors[sIconFlashColorIdx][1]; + sIconEnvB = sIconEnvColors[sIconFlashColorIdx][2]; + sIconFlashTimer = 12; + sIconFlashColorIdx ^= 1; + } + + gDPPipeSync(gfx++); + + gDPSetCombineLERP(gfx++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, + ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); + + gDPSetPrimColor(gfx++, 0, 0, sIconPrimR, sIconPrimG, sIconPrimB, 255); + gDPSetEnvColor(gfx++, sIconEnvR, sIconEnvG, sIconEnvB, 255); + + gDPLoadTextureBlock_4b(gfx++, iconTexture, G_IM_FMT_I, FONT_CHAR_TEX_WIDTH, FONT_CHAR_TEX_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); + + sCharTexSize = 16.0f * ((f32)R_TEXT_CHAR_SCALE / 100.0f); + sCharTexScale = 1024.0f / ((f32)R_TEXT_CHAR_SCALE / 100.0f); + + gSPTextureRectangle(gfx++, x << 2, y << 2, (x + sCharTexSize) << 2, (y + sCharTexSize) << 2, G_TX_RENDERTILE, 0, 0, + sCharTexScale, sCharTexScale); + + msgCtx->stateTimer++; + + *p = gfx; +} + +#define MESSAGE_SPACE_WIDTH 6 +f32 sFontWidths[144] = { + 8.0f, // ' ' + 8.0f, // '!' + 6.0f, // '"' + 9.0f, // '#' + 9.0f, // '$' + 14.0f, // '%' + 12.0f, // '&' + 3.0f, // ''' + 7.0f, // '(' + 7.0f, // ')' + 7.0f, // '*' + 9.0f, // '+' + 4.0f, // ',' + 6.0f, // '-' + 4.0f, // '.' + 9.0f, // '/' + 10.0f, // '0' + 5.0f, // '1' + 9.0f, // '2' + 9.0f, // '3' + 10.0f, // '4' + 9.0f, // '5' + 9.0f, // '6' + 9.0f, // '7' + 9.0f, // '8' + 9.0f, // '9' + 6.0f, // ':' + 6.0f, // ';' + 9.0f, // '<' + 11.0f, // '=' + 9.0f, // '>' + 11.0f, // '?' + 13.0f, // '@' + 12.0f, // 'A' + 9.0f, // 'B' + 11.0f, // 'C' + 11.0f, // 'D' + 8.0f, // 'E' + 8.0f, // 'F' + 12.0f, // 'G' + 10.0f, // 'H' + 4.0f, // 'I' + 8.0f, // 'J' + 10.0f, // 'K' + 8.0f, // 'L' + 13.0f, // 'M' + 11.0f, // 'N' + 13.0f, // 'O' + 9.0f, // 'P' + 13.0f, // 'Q' + 10.0f, // 'R' + 10.0f, // 'S' + 9.0f, // 'T' + 10.0f, // 'U' + 11.0f, // 'V' + 15.0f, // 'W' + 11.0f, // 'X' + 10.0f, // 'Y' + 10.0f, // 'Z' + 7.0f, // '[' + 10.0f, // '\' + 7.0f, // ']' + 10.0f, // '^' + 9.0f, // '_' + 5.0f, // '`' + 8.0f, // 'a' + 9.0f, // 'b' + 8.0f, // 'c' + 9.0f, // 'd' + 9.0f, // 'e' + 6.0f, // 'f' + 9.0f, // 'g' + 8.0f, // 'h' + 4.0f, // 'i' + 6.0f, // 'j' + 8.0f, // 'k' + 4.0f, // 'l' + 12.0f, // 'm' + 9.0f, // 'n' + 9.0f, // 'o' + 9.0f, // 'p' + 9.0f, // 'q' + 7.0f, // 'r' + 8.0f, // 's' + 7.0f, // 't' + 8.0f, // 'u' + 9.0f, // 'v' + 12.0f, // 'w' + 8.0f, // 'x' + 9.0f, // 'y' + 8.0f, // 'z' + 7.0f, // '{' + 5.0f, // '|' + 7.0f, // '}' + 10.0f, // '~' + 10.0f, // '‾' + 12.0f, // 'À' + 6.0f, // 'î' + 12.0f, // 'Â' + 12.0f, // 'Ä' + 11.0f, // 'Ç' + 8.0f, // 'È' + 8.0f, // 'É' + 8.0f, // 'Ê' + 6.0f, // 'Ë' + 6.0f, // 'Ï' + 13.0f, // 'Ô' + 13.0f, // 'Ö' + 10.0f, // 'Ù' + 10.0f, // 'Û' + 10.0f, // 'Ü' + 9.0f, // 'ß' + 8.0f, // 'à' + 8.0f, // 'á' + 8.0f, // 'â' + 8.0f, // 'ä' + 8.0f, // 'ç' + 9.0f, // 'è' + 9.0f, // 'é' + 9.0f, // 'ê' + 9.0f, // 'ë' + 6.0f, // 'ï' + 9.0f, // 'ô' + 9.0f, // 'ö' + 9.0f, // 'ù' + 9.0f, // 'û' + 9.0f, // 'ü' + 14.0f, // '[A]' + 14.0f, // '[B]' + 14.0f, // '[C]' + 14.0f, // '[L]' + 14.0f, // '[R]' + 14.0f, // '[Z]' + 14.0f, // '[C-Up]' + 14.0f, // '[C-Down]' + 14.0f, // '[C-Left]' + 14.0f, // '[C-Right]' + 14.0f, // '▼' + 14.0f, // '[Control-Pad]' + 14.0f, // '[D-Pad]' + 14.0f, // ? + 14.0f, // ? + 14.0f, // ? + 14.0f, // ? +}; + +u16 Message_DrawItemIcon(GlobalContext* globalCtx, u16 itemId, Gfx** p, u16 i) { + s32 pad; + Gfx* gfx = *p; + MessageContext* msgCtx = &globalCtx->msgCtx; + + // clang-format off + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); } + // clang-format on + + gDPPipeSync(gfx++); + gDPSetCombineMode(gfx++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, msgCtx->textColorAlpha); + + if (itemId >= ITEM_MEDALLION_FOREST) { + gDPLoadTextureBlock(gfx++, (u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b, + 24, 24, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); + } else { + gDPLoadTextureBlock(gfx++, (u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b, + 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); + } + gSPTextureRectangle(gfx++, (msgCtx->textPosX + R_TEXTBOX_ICON_XPOS) << 2, R_TEXTBOX_ICON_YPOS << 2, + (msgCtx->textPosX + R_TEXTBOX_ICON_XPOS + R_TEXTBOX_ICON_SIZE) << 2, + (R_TEXTBOX_ICON_YPOS + R_TEXTBOX_ICON_SIZE) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gDPPipeSync(gfx++); + gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); + + msgCtx->textPosX += 32; + + i++; + *p = gfx; + + return i; +} + +void Message_HandleOcarina(GlobalContext* globalCtx) { + MessageContext* msgCtx = &globalCtx->msgCtx; + + if (globalCtx->msgCtx.msgMode == MSGMODE_TEXT_DISPLAYING) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + + if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_RECORDING) { + msgCtx->msgMode = MSGMODE_SCARECROW_LONG_RECORDING_START; + // "Recording Start / Recording Start / Recording Start / Recording Start -> " + osSyncPrintf("録音開始 録音開始 録音開始 録音開始 -> "); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) { + // "Recording Playback / Recording Playback / Recording Playback / Recording Playback -> " + osSyncPrintf("録音再生 録音再生 録音再生 録音再生 -> "); + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + Message_ResetOcarinaNoteState(); + msgCtx->stateTimer = 3; + msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK; + Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_RECORDING) { + msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_START; + // "8 Note Recording Start / 8 Note Recording Start / 8 Note Recording Start -> " + osSyncPrintf("8音録音開始 8音録音開始 8音録音開始 -> "); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_PLAYBACK) { + // "8 Note Playback / 8 Note Playback / 8 Note Playback -> " + osSyncPrintf("8音再生 8音再生 8音再生 -> "); + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + Message_ResetOcarinaNoteState(); + msgCtx->stateTimer = 3; + msgCtx->msgMode = MSGMODE_SCARECROW_PLAYBACK; + Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW + 1, 1); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_MEMORY_GAME) { + msgCtx->msgMode = MSGMODE_MEMORY_GAME_START; + // "Musical Round Start / Musical Round Start / Musical Round Start / Musical Round Start -> " + osSyncPrintf("輪唱開始 輪唱開始 輪唱開始 輪唱開始 -> "); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_FROGS) { + msgCtx->msgMode = MSGMODE_FROGS_START; + // "Frog Chorus / Frog Chorus -> " + osSyncPrintf("カエルの合唱 カエルの合唱 -> "); + } else { + // "Ocarina(%d)" + osSyncPrintf("オカリナ(%d) ", msgCtx->ocarinaAction); + if (msgCtx->ocarinaAction == OCARINA_ACTION_UNK_0 || msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY || + msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_SARIA) { + msgCtx->msgMode = MSGMODE_OCARINA_STARTING; + osSyncPrintf("000000000000 -> "); + } else if (msgCtx->ocarinaAction >= OCARINA_ACTION_TEACH_MINUET && + msgCtx->ocarinaAction <= OCARINA_ACTION_TEACH_STORMS) { + msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_STARTING; + osSyncPrintf("111111111111 -> "); + } else { + msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_STARTING; + osSyncPrintf("222222222222 -> "); + } + } + osSyncPrintf("msg_mode=%d\n", msgCtx->msgMode); + } +} + +/** + * Draws the text contents of a textbox, up to the current point that has + * been scrolled to so far. + */ +void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) { + MessageContext* msgCtx = &globalCtx->msgCtx; + u16 lookAheadCharacter; + u8 character; + u16 j; + u16 i; + u16 sfxHi; + u16 charTexIdx; + Font* font = &globalCtx->msgCtx.font; + Gfx* gfx = *gfxP; + + globalCtx->msgCtx.textPosX = R_TEXT_INIT_XPOS; + + if (sTextIsCredits == false) { + msgCtx->textPosY = R_TEXT_INIT_YPOS; + } else { + msgCtx->textPosY = YREG(1); + } + + if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) { + msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0; + } else { + msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255; + } + + msgCtx->unk_E3D0 = 0; + charTexIdx = 0; + + for (i = 0; i < msgCtx->textDrawPos; i++) { + character = msgCtx->msgBufDecoded[i]; + + switch (character) { + case MESSAGE_NEWLINE: + msgCtx->textPosX = R_TEXT_INIT_XPOS; + if (msgCtx->choiceNum == 1 || msgCtx->choiceNum == 3) { + msgCtx->textPosX += 32; + } + if (msgCtx->choiceNum == 2 && msgCtx->textPosY != R_TEXT_INIT_YPOS) { + msgCtx->textPosX += 32; + } + msgCtx->textPosY += R_TEXT_LINE_SPACING; + break; + case MESSAGE_COLOR: + Message_SetTextColor(msgCtx, msgCtx->msgBufDecoded[++i] & 0xF); + break; + case ' ': + msgCtx->textPosX += MESSAGE_SPACE_WIDTH; + break; + case MESSAGE_BOX_BREAK: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + if (!sTextboxSkipped) { + Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + msgCtx->msgMode = MSGMODE_TEXT_AWAIT_NEXT; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE); + } else { + msgCtx->msgMode = MSGMODE_TEXT_NEXT_MSG; + msgCtx->textUnskippable = false; + msgCtx->msgBufPos++; + } + } + *gfxP = gfx; + return; + case MESSAGE_SHIFT: + msgCtx->textPosX += msgCtx->msgBufDecoded[++i]; + break; + case MESSAGE_TEXTID: + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_HAS_NEXT; + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + msgCtx->msgMode = MSGMODE_TEXT_DONE; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE); + } + *gfxP = gfx; + return; + case MESSAGE_QUICKTEXT_ENABLE: + if (i + 1 == msgCtx->textDrawPos && (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING || + (msgCtx->msgMode >= MSGMODE_OCARINA_STARTING && + msgCtx->msgMode < MSGMODE_SCARECROW_LONG_RECORDING_START))) { + j = i; + while (true) { + lookAheadCharacter = msgCtx->msgBufDecoded[j]; + if (lookAheadCharacter == MESSAGE_SHIFT) { + j += 2; + } else if ((lookAheadCharacter != MESSAGE_QUICKTEXT_DISABLE) && + (lookAheadCharacter != MESSAGE_PERSISTENT) && + (lookAheadCharacter != MESSAGE_EVENT) && + (lookAheadCharacter != MESSAGE_BOX_BREAK_DELAYED) && + (lookAheadCharacter != MESSAGE_AWAIT_BUTTON_PRESS) && + (lookAheadCharacter != MESSAGE_BOX_BREAK) && (lookAheadCharacter != MESSAGE_END)) { + j++; + } else { + break; + } + } + i = j - 1; + msgCtx->textDrawPos = i + 1; + + if (character) {} + } + case MESSAGE_QUICKTEXT_DISABLE: + break; + case MESSAGE_AWAIT_BUTTON_PRESS: + if (i + 1 == msgCtx->textDrawPos) { + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->msgMode = MSGMODE_TEXT_AWAIT_INPUT; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE); + } + *gfxP = gfx; + return; + } + break; + case MESSAGE_BOX_BREAK_DELAYED: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->stateTimer = msgCtx->msgBufDecoded[++i]; + msgCtx->msgMode = MSGMODE_TEXT_DELAYED_BREAK; + } + *gfxP = gfx; + return; + case MESSAGE_FADE2: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->msgMode = MSGMODE_TEXT_DONE; + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_FADING; + // "Timer" + osSyncPrintf("タイマー (%x) (%x)", msgCtx->msgBufDecoded[i + 1], msgCtx->msgBufDecoded[i + 2]); + msgCtx->stateTimer = msgCtx->msgBufDecoded[++i] << 8; + msgCtx->stateTimer |= msgCtx->msgBufDecoded[++i]; + // "Total wct" + osSyncPrintf("合計wct=%x(%d)\n", msgCtx->stateTimer, msgCtx->stateTimer); + } + *gfxP = gfx; + return; + case MESSAGE_SFX: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && !sMessageHasSetSfx) { + sMessageHasSetSfx = true; + // "Sound (SE)" + osSyncPrintf("サウンド(SE)\n"); + sfxHi = msgCtx->msgBufDecoded[i + 1] << 8; + Audio_PlaySoundGeneral(sfxHi | msgCtx->msgBufDecoded[i + 2], &D_801333D4, 4, &D_801333E0, + &D_801333E0, &D_801333E8); + } + i += 2; + break; + case MESSAGE_ITEM_ICON: + i = Message_DrawItemIcon(globalCtx, msgCtx->msgBufDecoded[i + 1], &gfx, i); + break; + case MESSAGE_BACKGROUND: + // clang-format off + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); } + // clang-format on + gDPPipeSync(gfx++); + gDPSetCombineMode(gfx++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + gDPSetPrimColor(gfx++, 0, 0, sTextboxBackgroundBackPrimColors[msgCtx->textboxBackgroundBackColorIdx][0], + sTextboxBackgroundBackPrimColors[msgCtx->textboxBackgroundBackColorIdx][1], + sTextboxBackgroundBackPrimColors[msgCtx->textboxBackgroundBackColorIdx][2], + msgCtx->textColorAlpha); + + gDPLoadTextureBlock_4b(gfx++, (u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_I, 96, 48, + 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle( + gfx++, (msgCtx->textPosX + 1) << 2, + (R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx]) << 2, + (msgCtx->textPosX + 96 + 1) << 2, + (R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx] + 48) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + gDPLoadTextureBlock_4b(gfx++, (u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900, G_IM_FMT_I, + 96, 48, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle( + gfx++, (msgCtx->textPosX + 96 + 1) << 2, + (R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx]) << 2, + (msgCtx->textPosX + 96 + 1 + 96 + 1) << 2, + (R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx] + 48) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + gDPPipeSync(gfx++); + gDPSetPrimColor(gfx++, 0, 0, sTextboxBackgroundForePrimColors[msgCtx->textboxBackgroundForeColorIdx][0], + sTextboxBackgroundForePrimColors[msgCtx->textboxBackgroundForeColorIdx][1], + sTextboxBackgroundForePrimColors[msgCtx->textboxBackgroundForeColorIdx][2], + msgCtx->textColorAlpha); + + gDPLoadTextureBlock_4b(gfx++, ((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE), G_IM_FMT_I, 96, + 48, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gfx++, msgCtx->textPosX << 2, R_TEXTBOX_BG_YPOS << 2, (msgCtx->textPosX + 96) << 2, + (R_TEXTBOX_BG_YPOS + 48) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + gDPLoadTextureBlock_4b(gfx++, ((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900), + G_IM_FMT_I, 96, 48, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gfx++, (msgCtx->textPosX + 96) << 2, R_TEXTBOX_BG_YPOS << 2, + (msgCtx->textPosX + 192) << 2, (R_TEXTBOX_BG_YPOS + 48) << 2, G_TX_RENDERTILE, 0, 0, + 1 << 10, 1 << 10); + + gDPPipeSync(gfx++); + gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, + PRIMITIVE, 0); + + msgCtx->textPosX += 32; + break; + case MESSAGE_TEXT_SPEED: + msgCtx->textDelay = msgCtx->msgBufDecoded[++i]; + break; + case MESSAGE_UNSKIPPABLE: + msgCtx->textUnskippable = true; + break; + case MESSAGE_TWO_CHOICE: + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_2_CHOICE; + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->choiceTextId = msgCtx->textId; + msgCtx->stateTimer = 4; + msgCtx->choiceIndex = 0; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_ARROW); + } + break; + case MESSAGE_THREE_CHOICE: + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_3_CHOICE; + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->choiceTextId = msgCtx->textId; + msgCtx->stateTimer = 4; + msgCtx->choiceIndex = 0; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_ARROW); + } + break; + case MESSAGE_END: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->msgMode = MSGMODE_TEXT_DONE; + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_DEFAULT) { + Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_END, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE); + if (globalCtx->csCtx.state == 0) { + Interface_SetDoAction(globalCtx, DO_ACTION_RETURN); + } + } + } + *gfxP = gfx; + return; + case MESSAGE_OCARINA: + if (i + 1 == msgCtx->textDrawPos) { + Message_HandleOcarina(globalCtx); + *gfxP = gfx; + return; + } + break; + case MESSAGE_FADE: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->msgMode = MSGMODE_TEXT_DONE; + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_FADING; + msgCtx->stateTimer = msgCtx->msgBufDecoded[++i]; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE); + if (globalCtx->csCtx.state == 0) { + Interface_SetDoAction(globalCtx, DO_ACTION_RETURN); + } + } + *gfxP = gfx; + return; + case MESSAGE_PERSISTENT: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + msgCtx->msgMode = MSGMODE_TEXT_DONE; + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_PERSISTENT; + } + *gfxP = gfx; + return; + case MESSAGE_EVENT: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { + msgCtx->msgMode = MSGMODE_TEXT_DONE; + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_EVENT; + Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE); + Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_END, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + *gfxP = gfx; + return; + default: + if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && i + 1 == msgCtx->textDrawPos && + msgCtx->textDelayTimer == msgCtx->textDelay) { + Audio_PlaySoundGeneral(0, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + Message_DrawTextChar(globalCtx, &font->charTexBuf[charTexIdx], &gfx); + charTexIdx += FONT_CHAR_TEX_SIZE; + + msgCtx->textPosX += (s32)(sFontWidths[character - ' '] * (R_TEXT_CHAR_SCALE / 100.0f)); + break; + } + } + if (msgCtx->textDelayTimer == 0) { + msgCtx->textDrawPos = i + 1; + msgCtx->textDelayTimer = msgCtx->textDelay; + } else { + msgCtx->textDelayTimer--; + } + *gfxP = gfx; +} + +void Message_LoadItemIcon(GlobalContext* globalCtx, u16 itemId, s16 y) { + static s16 sIconItem32XOffsets[] = { 74, 74, 74 }; + static s16 sIconItem24XOffsets[] = { 72, 72, 72 }; + MessageContext* msgCtx = &globalCtx->msgCtx; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + + if (itemId == ITEM_DUNGEON_MAP) { + interfaceCtx->mapPalette[30] = 0xFF; + interfaceCtx->mapPalette[31] = 0xFF; + } + if (itemId < ITEM_MEDALLION_FOREST) { + R_TEXTBOX_ICON_XPOS = R_TEXT_INIT_XPOS - sIconItem32XOffsets[gSaveContext.language]; + R_TEXTBOX_ICON_YPOS = y + 6; + R_TEXTBOX_ICON_SIZE = 32; + DmaMgr_SendRequest1((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, + (u32)_icon_item_staticSegmentRomStart + (itemId * 0x1000), 0x1000, "../z_message_PAL.c", + 1473); + // "Item 32-0" + osSyncPrintf("アイテム32-0\n"); + } else { + R_TEXTBOX_ICON_XPOS = R_TEXT_INIT_XPOS - sIconItem24XOffsets[gSaveContext.language]; + R_TEXTBOX_ICON_YPOS = y + 10; + R_TEXTBOX_ICON_SIZE = 24; + DmaMgr_SendRequest1((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, + (u32)_icon_item_24_staticSegmentRomStart + (itemId - ITEM_MEDALLION_FOREST) * 0x900, 0x900, + "../z_message_PAL.c", 1482); + // "Item 24" + osSyncPrintf("アイテム24=%d (%d) {%d}\n", itemId, itemId - ITEM_KOKIRI_EMERALD, 84); + } + msgCtx->msgBufPos++; + msgCtx->choiceNum = 1; +} + +void Message_Decode(GlobalContext* globalCtx) { + u8 temp_s2; + u8 phi_s1; + u16 phi_s0_3; + s32 loadChar; + s32 charTexIdx = 0; + s16 playerNameLen; + s16 decodedBufPos = 0; + s16 numLines = 0; + s16 i; + s16 digits[4]; + f32 timeInSeconds; + MessageContext* msgCtx = &globalCtx->msgCtx; + Font* font = &globalCtx->msgCtx.font; + + globalCtx->msgCtx.textDelayTimer = 0; + globalCtx->msgCtx.textUnskippable = globalCtx->msgCtx.textDelay = globalCtx->msgCtx.textDelayTimer = 0; + sTextFade = false; + + while (true) { + phi_s1 = temp_s2 = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos]; + + if (temp_s2 == MESSAGE_BOX_BREAK || temp_s2 == MESSAGE_TEXTID || temp_s2 == MESSAGE_BOX_BREAK_DELAYED || + temp_s2 == MESSAGE_EVENT || temp_s2 == MESSAGE_END) { + // Textbox decoding ends with any of the above text control characters + msgCtx->msgMode = MSGMODE_TEXT_DISPLAYING; + msgCtx->textDrawPos = 1; + R_TEXT_INIT_YPOS = R_TEXTBOX_Y + 8; + osSyncPrintf("JJ=%d\n", numLines); + if (msgCtx->textBoxType != TEXTBOX_TYPE_NONE_BOTTOM) { + if (numLines == 0) { + R_TEXT_INIT_YPOS = (u16)(R_TEXTBOX_Y + 26); + } else if (numLines == 1) { + R_TEXT_INIT_YPOS = (u16)(R_TEXTBOX_Y + 20); + } else if (numLines == 2) { + R_TEXT_INIT_YPOS = (u16)(R_TEXTBOX_Y + 16); + } + } + if (phi_s1 == MESSAGE_TEXTID) { + osSyncPrintf("NZ_NEXTMSG=%x, %x, %x\n", font->msgBuf[msgCtx->msgBufPos], + font->msgBuf[msgCtx->msgBufPos + 1], font->msgBuf[msgCtx->msgBufPos + 2]); + temp_s2 = msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[msgCtx->msgBufPos + 1]; + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[msgCtx->msgBufPos + 2]; + phi_s0_3 = temp_s2 << 8; + sNextTextId = msgCtx->msgBufDecoded[decodedBufPos] | phi_s0_3; + } + if (phi_s1 == MESSAGE_BOX_BREAK_DELAYED) { + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[msgCtx->msgBufPos + 1]; + msgCtx->msgBufPos += 2; + } + msgCtx->decodedTextLen = decodedBufPos; + if (sTextboxSkipped) { + msgCtx->textDrawPos = msgCtx->decodedTextLen; + } + break; + } else if (temp_s2 == MESSAGE_NAME) { + // Substitute the player name control character for the file's player name. + for (playerNameLen = ARRAY_COUNT(gSaveContext.playerName); playerNameLen > 0; playerNameLen--) { + if (gSaveContext.playerName[playerNameLen - 1] != 0x3E) { + break; + } + } + // "Name" + osSyncPrintf("\n名前 = "); + for (i = 0; i < playerNameLen; i++) { + phi_s1 = gSaveContext.playerName[i]; + if (phi_s1 == 0x3E) { + phi_s1 = ' '; + } else if (phi_s1 == 0x40) { + phi_s1 = '.'; + } else if (phi_s1 == 0x3F) { + phi_s1 = '-'; + } else if (phi_s1 < 0xA) { + phi_s1 += 0; + phi_s1 += '0'; + } else if (phi_s1 < 0x24) { + phi_s1 += 0; + phi_s1 += '7'; + } else if (phi_s1 < 0x3E) { + phi_s1 += 0; + phi_s1 += '='; + } + if (phi_s1 != ' ') { + Font_LoadChar(font, phi_s1 - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + } + osSyncPrintf("%x ", phi_s1); + msgCtx->msgBufDecoded[decodedBufPos] = phi_s1; + decodedBufPos++; + } + decodedBufPos--; + } else if (temp_s2 == MESSAGE_MARATHON_TIME || temp_s2 == MESSAGE_RACE_TIME) { + // Convert the values of the appropriate timer to digits and add the + // digits to the decoded buffer in place of the control character. + // "EVENT timer" + osSyncPrintf("\nEVENTタイマー = "); + digits[0] = digits[1] = digits[2] = 0; + if (temp_s2 == MESSAGE_RACE_TIME) { + digits[3] = gSaveContext.timer1Value; + } else { + digits[3] = gSaveContext.timer2Value; + } + + while (digits[3] >= 60) { + digits[1]++; + if (digits[1] >= 10) { + digits[0]++; + digits[1] -= 10; + } + digits[3] -= 60; + } + while (digits[3] >= 10) { + digits[2]++; + digits[3] -= 10; + } + + for (i = 0; i < 4; i++) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + decodedBufPos++; + if (i == 1) { + Font_LoadChar(font, '"' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = '"'; + decodedBufPos++; + } else if (i == 3) { + Font_LoadChar(font, '"' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = '"'; + } + } + } else if (temp_s2 == MESSAGE_POINTS) { + // Convert the values of the current minigame score to digits and + // add the digits to the decoded buffer in place of the control character. + // "Yabusame score" + osSyncPrintf("\n流鏑馬スコア = %d\n", gSaveContext.minigameScore); + digits[0] = digits[1] = digits[2] = 0; + digits[3] = gSaveContext.minigameScore; + + while (digits[3] >= 1000) { + digits[0]++; + digits[3] -= 1000; + } + while (digits[3] >= 100) { + digits[1]++; + digits[3] -= 100; + } + while (digits[3] >= 10) { + digits[2]++; + digits[3] -= 10; + } + + loadChar = false; + for (i = 0; i < 4; i++) { + if (i == 3 || digits[i] != 0) { + loadChar = true; + } + if (loadChar) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + charTexIdx += FONT_CHAR_TEX_SIZE; + decodedBufPos++; + } + } + decodedBufPos--; + } else if (temp_s2 == MESSAGE_TOKENS) { + // Convert the current number of collected gold skulltula tokens to digits and + // add the digits to the decoded buffer in place of the control character. + // "Total number of gold stars" + osSyncPrintf("\n金スタ合計数 = %d", gSaveContext.inventory.gsTokens); + digits[0] = digits[1] = 0; + digits[2] = gSaveContext.inventory.gsTokens; + + while (digits[2] >= 100) { + digits[0]++; + digits[2] -= 100; + } + while (digits[2] >= 10) { + digits[1]++; + digits[2] -= 10; + } + + loadChar = false; + for (i = 0; i < 3; i++) { + if (i == 2 || digits[i] != 0) { + loadChar = true; + } + if (loadChar) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + charTexIdx += FONT_CHAR_TEX_SIZE; + osSyncPrintf("%x(%x) ", digits[i] + '0' - ' ', digits[i]); + decodedBufPos++; + } + } + decodedBufPos--; + } else if (temp_s2 == MESSAGE_FISH_INFO) { + // "Fishing hole fish size" + osSyncPrintf("\n釣り堀魚サイズ = "); + digits[0] = 0; + digits[1] = gSaveContext.minigameScore; + + while (digits[1] >= 10) { + digits[0]++; + digits[1] -= 10; + } + + for (i = 0; i < 2; i++) { + if (i == 1 || digits[i] != 0) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + charTexIdx += FONT_CHAR_TEX_SIZE; + osSyncPrintf("%x(%x) ", digits[i] + '0' - ' ', digits[i]); + decodedBufPos++; + } + } + decodedBufPos--; + } else if (temp_s2 == MESSAGE_HIGHSCORE) { + phi_s0_3 = HIGH_SCORE((u8)font->msgBuf[++msgCtx->msgBufPos]); + // "Highscore" + osSyncPrintf("ランキング=%d\n", font->msgBuf[msgCtx->msgBufPos]); + if ((font->msgBuf[msgCtx->msgBufPos] & 0xFF) == 2) { + if (LINK_AGE_IN_YEARS == YEARS_CHILD) { + phi_s0_3 &= 0x7F; + } else { + osSyncPrintf("HI_SCORE( kanfont->mbuff.nes_mes_buf[message->rdp] & 0xff000000 ) = %x\n", + HIGH_SCORE(font->msgBufWide[msgCtx->msgBufPos] & 0xFF000000)); + phi_s0_3 = ((HIGH_SCORE((u8)font->msgBuf[msgCtx->msgBufPos]) & 0xFF000000) >> 0x18) & 0x7F; + } + phi_s0_3 = SQ((f32)phi_s0_3) * 0.0036f + 0.5f; + osSyncPrintf("score=%d\n", phi_s0_3); + } + switch (font->msgBuf[msgCtx->msgBufPos] & 0xFF) { + case HS_HBA: + case HS_POE_POINTS: + case HS_FISHING: + digits[0] = digits[1] = digits[2] = 0; + digits[3] = phi_s0_3; + + while (digits[3] >= 1000) { + digits[0]++; + digits[3] -= 1000; + } + while (digits[3] >= 100) { + digits[1]++; + digits[3] -= 100; + } + while (digits[3] >= 10) { + digits[2]++; + digits[3] -= 10; + } + if (temp_s2) {} + + loadChar = false; + for (i = 0; i < 4; i++) { + if (i == 3 || digits[i] != 0) { + loadChar = true; + } + if (loadChar) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + charTexIdx += FONT_CHAR_TEX_SIZE; + decodedBufPos++; + } + } + decodedBufPos--; + break; + case HS_UNK_05: + break; + case HS_HORSE_RACE: + case HS_MARATHON: + case HS_DAMPE_RACE: + digits[0] = digits[1] = digits[2] = 0; + digits[3] = phi_s0_3; + + while (digits[3] >= 60) { + digits[1]++; + if (digits[1] >= 10) { + digits[0]++; + digits[1] -= 10; + } + digits[3] -= 60; + } + while (digits[3] >= 10) { + digits[2]++; + digits[3] -= 10; + } + + for (i = 0; i < 4; i++) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + decodedBufPos++; + if (i == 1) { + Font_LoadChar(font, '"' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = '"'; + decodedBufPos++; + } else if (i == 3) { + Font_LoadChar(font, '"' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = '"'; + } + } + break; + } + } else if (temp_s2 == MESSAGE_TIME) { + // "Zelda time" + osSyncPrintf("\nゼルダ時間 = "); + digits[0] = 0; + timeInSeconds = gSaveContext.dayTime * (24.0f * 60.0f / 0x10000); + + digits[1] = timeInSeconds / 60.0f; + while (digits[1] >= 10) { + digits[0]++; + digits[1] -= 10; + } + digits[2] = 0; + digits[3] = (s16)timeInSeconds % 60; + while (digits[3] >= 10) { + digits[2]++; + digits[3] -= 10; + } + + for (i = 0; i < 4; i++) { + Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0'; + decodedBufPos++; + if (i == 1) { + Font_LoadChar(font, ':' - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + msgCtx->msgBufDecoded[decodedBufPos] = ':'; + decodedBufPos++; + } + } + decodedBufPos--; + } else if (temp_s2 == MESSAGE_ITEM_ICON) { + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[msgCtx->msgBufPos + 1]; + osSyncPrintf("ITEM_NO=(%d) (%d)\n", msgCtx->msgBufDecoded[decodedBufPos], + font->msgBuf[msgCtx->msgBufPos + 1]); + Message_LoadItemIcon(globalCtx, font->msgBuf[msgCtx->msgBufPos + 1], R_TEXTBOX_Y + 10); + } else if (temp_s2 == MESSAGE_BACKGROUND) { + msgCtx->textboxBackgroundIdx = font->msgBuf[msgCtx->msgBufPos + 1] * 2; + msgCtx->textboxBackgroundForeColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF0) >> 4; + msgCtx->textboxBackgroundBackColorIdx = font->msgBuf[msgCtx->msgBufPos + 2] & 0xF; + msgCtx->textboxBackgroundYOffsetIdx = (font->msgBuf[msgCtx->msgBufPos + 3] & 0xF0) >> 4; + msgCtx->textboxBackgroundUnkArg = font->msgBuf[msgCtx->msgBufPos + 3] & 0xF; + DmaMgr_SendRequest1((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, + (u32)_message_texture_staticSegmentRomStart + msgCtx->textboxBackgroundIdx * 0x900, + 0x900, "../z_message_PAL.c", 1830); + DmaMgr_SendRequest1((u32)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900, + (u32)_message_texture_staticSegmentRomStart + + (msgCtx->textboxBackgroundIdx + 1) * 0x900, + 0x900, "../z_message_PAL.c", 1834); + msgCtx->msgBufPos += 3; + R_TEXTBOX_BG_YPOS = R_TEXTBOX_Y + 8; + numLines = 2; + R_TEXT_INIT_XPOS = 50; + } else if (temp_s2 == MESSAGE_COLOR) { + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + } else if (temp_s2 == MESSAGE_NEWLINE) { + numLines++; + } else if (temp_s2 != MESSAGE_QUICKTEXT_ENABLE && temp_s2 != MESSAGE_QUICKTEXT_DISABLE && + temp_s2 != MESSAGE_AWAIT_BUTTON_PRESS && temp_s2 != MESSAGE_OCARINA && + temp_s2 != MESSAGE_PERSISTENT && temp_s2 != MESSAGE_UNSKIPPABLE) { + if (temp_s2 == MESSAGE_FADE) { + sTextFade = true; + osSyncPrintf("NZ_TIMER_END (key_off_flag=%d)\n", sTextFade); + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + } else if (temp_s2 == MESSAGE_FADE2) { + sTextFade = true; + osSyncPrintf("NZ_BGM (key_off_flag=%d)\n", sTextFade); + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + } else if (temp_s2 == MESSAGE_SHIFT || temp_s2 == MESSAGE_TEXT_SPEED) { + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos] & 0xFF; + } else if (temp_s2 == MESSAGE_SFX) { + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos]; + } else if (temp_s2 == MESSAGE_TWO_CHOICE) { + msgCtx->choiceNum = 2; + } else if (temp_s2 == MESSAGE_THREE_CHOICE) { + msgCtx->choiceNum = 3; + } else if (temp_s2 != ' ') { + Font_LoadChar(font, temp_s2 - ' ', charTexIdx); + charTexIdx += FONT_CHAR_TEX_SIZE; + } + } + decodedBufPos++; + msgCtx->msgBufPos++; + } +} + +void Message_OpenText(GlobalContext* globalCtx, u16 textId) { + static s16 messageStaticIndices[] = { 0, 1, 3, 2 }; + MessageContext* msgCtx = &globalCtx->msgCtx; + Font* font = &msgCtx->font; + s16 textBoxType; + + if (msgCtx->msgMode == MSGMODE_NONE) { + gSaveContext.unk_13EE = gSaveContext.unk_13EA; + } + if (YREG(15) == 0x10) { + Interface_ChangeAlpha(5); + } + + sMessageHasSetSfx = D_8014B2F4 = sTextboxSkipped = sTextIsCredits = 0; + + if (textId >= 0x0500 && textId < 0x0600) { // text ids 0500 to 0600 are reserved for credits + sTextIsCredits = true; + R_TEXT_CHAR_SCALE = 85; + R_TEXT_LINE_SPACING = 6; + R_TEXT_INIT_XPOS = 20; + YREG(1) = 48; + } else { + R_TEXT_CHAR_SCALE = 75; + R_TEXT_LINE_SPACING = 12; + R_TEXT_INIT_XPOS = 65; + } + if (textId == 0xC2 || textId == 0xFA) { + // Increments text id based on piece of heart count, assumes the piece of heart text is all + // in order and that you don't have more than the intended amount of heart pieces. + textId += (gSaveContext.inventory.questItems & 0xF0000000 & 0xF0000000) >> 0x1C; + } else if (msgCtx->textId == 0xC && CHECK_OWNED_EQUIP(EQUIP_SWORD, 2)) { + textId = 0xB; // Traded Giant's Knife for Biggoron Sword + } else if (msgCtx->textId == 0xB4 && (gSaveContext.eventChkInf[9] & 0x40)) { + textId = 0xB5; // Destroyed Gold Skulltula + } + // Ocarina Staff + Dialog + if (textId == 0x4077 || // Pierre? + textId == 0x407A || // Pierre? + textId == 0x2061 || // Learning Epona's Song + textId == 0x5035 || // Guru-Guru in Windmill + textId == 0x40AC) { // Ocarina Frog Minigame + Interface_ChangeAlpha(1); + } + msgCtx->textId = textId; + + if (textId == 0x2030) { // Talking to Ingo as adult in Lon Lon Ranch for the first time before freeing Epona + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("???????????????? z_message.c ??????????????????\n"); + osSyncPrintf(VT_RST); + gSaveContext.eventInf[0] = gSaveContext.eventInf[1] = gSaveContext.eventInf[2] = gSaveContext.eventInf[3] = 0; + } + + if (sTextIsCredits) { + Message_FindCreditsMessage(globalCtx, textId); + msgCtx->msgLength = font->msgLength; + DmaMgr_SendRequest1(font->msgBuf, (u32)(_staff_message_data_staticSegmentRomStart + font->msgOffset), + font->msgLength, "../z_message_PAL.c", 1954); + } else { + if (gSaveContext.language == LANGUAGE_ENG) { + Message_FindMessage(globalCtx, textId); + msgCtx->msgLength = font->msgLength; + DmaMgr_SendRequest1(font->msgBuf, (u32)(_nes_message_data_staticSegmentRomStart + font->msgOffset), + font->msgLength, "../z_message_PAL.c", 1966); + } else if (gSaveContext.language == LANGUAGE_GER) { + Message_FindMessage(globalCtx, textId); + msgCtx->msgLength = font->msgLength; + DmaMgr_SendRequest1(font->msgBuf, (u32)(_ger_message_data_staticSegmentRomStart + font->msgOffset), + font->msgLength, "../z_message_PAL.c", 1978); + } else { + Message_FindMessage(globalCtx, textId); + msgCtx->msgLength = font->msgLength; + DmaMgr_SendRequest1(font->msgBuf, (u32)(_fra_message_data_staticSegmentRomStart + font->msgOffset), + font->msgLength, "../z_message_PAL.c", 1990); + } + } + msgCtx->textBoxProperties = font->charTexBuf[0]; + msgCtx->textBoxType = msgCtx->textBoxProperties >> 4; + msgCtx->textBoxPos = msgCtx->textBoxProperties & 0xF; + textBoxType = msgCtx->textBoxType; + // "Text Box Type" + osSyncPrintf("吹き出し種類=%d\n", msgCtx->textBoxType); + if (textBoxType < TEXTBOX_TYPE_NONE_BOTTOM) { + DmaMgr_SendRequest1( + msgCtx->textboxSegment, + (u32)(_message_staticSegmentRomStart + (messageStaticIndices[textBoxType] * MESSAGE_STATIC_TEX_SIZE)), + MESSAGE_STATIC_TEX_SIZE, "../z_message_PAL.c", 2006); + if (textBoxType == TEXTBOX_TYPE_BLACK) { + msgCtx->textboxColorRed = 0; + msgCtx->textboxColorGreen = 0; + msgCtx->textboxColorBlue = 0; + } else if (textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textboxColorRed = 70; + msgCtx->textboxColorGreen = 50; + msgCtx->textboxColorBlue = 30; + } else if (textBoxType == TEXTBOX_TYPE_BLUE) { + msgCtx->textboxColorRed = 0; + msgCtx->textboxColorGreen = 10; + msgCtx->textboxColorBlue = 50; + } else { + msgCtx->textboxColorRed = 255; + msgCtx->textboxColorGreen = 0; + msgCtx->textboxColorBlue = 0; + } + if (textBoxType == TEXTBOX_TYPE_WOODEN) { + msgCtx->textboxColorAlphaTarget = 230; + } else if (textBoxType == TEXTBOX_TYPE_OCARINA) { + msgCtx->textboxColorAlphaTarget = 180; + } else { + msgCtx->textboxColorAlphaTarget = 170; + } + msgCtx->textboxColorAlphaCurrent = 0; + } + msgCtx->choiceNum = msgCtx->textUnskippable = msgCtx->textboxEndType = 0; + msgCtx->msgBufPos = msgCtx->unk_E3D0 = msgCtx->textDrawPos = 0; +} + +void Message_StartTextbox(GlobalContext* globalCtx, u16 textId, Actor* actor) { + MessageContext* msgCtx = &globalCtx->msgCtx; + + osSyncPrintf(VT_FGCOL(BLUE)); + // "Message" + osSyncPrintf("めっせーじ=%x(%d)\n", textId, actor); + osSyncPrintf(VT_RST); + + msgCtx->ocarinaAction = 0xFFFF; + Message_OpenText(globalCtx, textId); + msgCtx->talkActor = actor; + msgCtx->msgMode = MSGMODE_TEXT_START; + msgCtx->stateTimer = 0; + msgCtx->textDelayTimer = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; +} + +void Message_ContinueTextbox(GlobalContext* globalCtx, u16 textId) { + MessageContext* msgCtx = &globalCtx->msgCtx; + + osSyncPrintf(VT_FGCOL(GREEN)); + // "Message" + osSyncPrintf("めっせーじ=%x message->msg_data\n", textId, msgCtx->msgLength); + osSyncPrintf(VT_RST); + + msgCtx->msgLength = 0; + Message_OpenText(globalCtx, textId); + msgCtx->msgMode = MSGMODE_NONE; + msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget; + msgCtx->msgMode = MSGMODE_TEXT_CONTINUING; + msgCtx->stateTimer = 3; + msgCtx->textboxEndType = msgCtx->msgBufPos = msgCtx->unk_E3D0 = msgCtx->textDrawPos = msgCtx->textDelayTimer = 0; + msgCtx->textColorAlpha = 255; + + if (YREG(31) == 0 && globalCtx->interfaceCtx.unk_1FA == 0) { + Interface_SetDoAction(globalCtx, DO_ACTION_NEXT); + } + msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget; +} + +void Message_StartOcarina(GlobalContext* globalCtx, u16 ocarinaActionId) { + static u16 sOcarinaSongFlagsMap[] = { + (1 << OCARINA_SONG_MINUET), (1 << OCARINA_SONG_BOLERO), (1 << OCARINA_SONG_SERENADE), + (1 << OCARINA_SONG_REQUIEM), (1 << OCARINA_SONG_NOCTURNE), (1 << OCARINA_SONG_PRELUDE), + (1 << OCARINA_SONG_LULLABY), (1 << OCARINA_SONG_EPONAS), (1 << OCARINA_SONG_SARIAS), + (1 << OCARINA_SONG_SUNS), (1 << OCARINA_SONG_TIME), (1 << OCARINA_SONG_STORMS), + (1 << OCARINA_SONG_SCARECROW), + }; + MessageContext* msgCtx = &globalCtx->msgCtx; + s32 textId; + s16 j; + s16 i; + s16 noStop; + s32 k; + + osSyncPrintf(VT_FGCOL(GREEN)); + + for (i = sOcarinaSongBitFlags = 0; i < (QUEST_KOKIRI_EMERALD - QUEST_SONG_MINUET); i++) { + if (CHECK_QUEST_ITEM(QUEST_SONG_MINUET + i)) { + osSyncPrintf("ocarina_check_bit[%d]=%x\n", i, sOcarinaSongFlagsMap[i]); + sOcarinaSongBitFlags |= sOcarinaSongFlagsMap[i]; + } + } + if (gSaveContext.scarecrowSpawnSongSet) { + sOcarinaSongBitFlags |= (1 << OCARINA_SONG_SCARECROW); + } + osSyncPrintf("ocarina_bit = %x\n", sOcarinaSongBitFlags); + osSyncPrintf(VT_RST); + + sHasSunsSong = CHECK_QUEST_ITEM(QUEST_SONG_SUN); + msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + sOcarinaNoteBufLen = 0; + Message_ResetOcarinaNoteState(); + sLastPlayedSong = msgCtx->unk_E3F2 = msgCtx->lastOcaNoteIdx = 0xFF; + + // "Ocarina Number" + osSyncPrintf(VT_FGCOL(RED) "☆☆☆☆☆ オカリナ番号=%d(%d) ☆☆☆☆☆\n" VT_RST, ocarinaActionId, 2); + noStop = false; + if (ocarinaActionId >= 0x893) { + Message_OpenText(globalCtx, ocarinaActionId); // You played the [song name] + textId = ocarinaActionId + 0x86E; + } else if (ocarinaActionId == OCARINA_ACTION_MEMORY_GAME) { + msgCtx->ocarinaAction = ocarinaActionId; + Message_OpenText(globalCtx, 0x86D); // Play using [A] and [C]. + textId = ocarinaActionId + 0x86E; + } else if (ocarinaActionId == OCARINA_ACTION_FREE_PLAY || ocarinaActionId >= OCARINA_ACTION_CHECK_SARIA) { + osSyncPrintf("ocarina_set 000000000000000000 = %d\n", ocarinaActionId); + msgCtx->ocarinaAction = ocarinaActionId; + if (ocarinaActionId >= OCARINA_ACTION_CHECK_SARIA && ocarinaActionId <= OCARINA_ACTION_CHECK_STORMS) { + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + if (ocarinaActionId == OCARINA_ACTION_SCARECROW_PLAYBACK) { + Message_OpenText(globalCtx, 0x86F); // Ocarina + textId = ocarinaActionId + 0x86E; + } else { + Message_OpenText(globalCtx, 0x86E); // Play using [A] and [C]; [B] to Stop. + textId = ocarinaActionId + 0x86E; + } + } else { + msgCtx->ocarinaAction = ocarinaActionId; + noStop = true; + if (ocarinaActionId >= OCARINA_ACTION_PLAYBACK_MINUET) { + osSyncPrintf("222222222\n"); + Message_OpenText(globalCtx, 0x86D); // Play using [A] and [C]. + textId = ocarinaActionId + 0x86E; + } else { + osSyncPrintf("333333333\n"); + textId = ocarinaActionId + 0x86E; + Message_OpenText(globalCtx, textId); // Play using [A] and [C]; [B] to Stop. + } + } + msgCtx->talkActor = NULL; + // "Ocarina Mode" + osSyncPrintf("オカリナモード = %d (%x)\n", msgCtx->ocarinaAction, textId); + msgCtx->textDelayTimer = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; + R_TEXTBOX_X = 34; + R_TEXTBOX_Y = 142; + R_TEXTBOX_TEXWIDTH = 512; + R_TEXTBOX_TEXHEIGHT = 512; + R_TEXTBOX_WIDTH = 256; + R_TEXTBOX_HEIGHT = 64; + msgCtx->stateTimer = 0; + if (YREG(12) != 0) { + msgCtx->msgMode = MSGMODE_TEXT_NEXT_MSG; + } else { + msgCtx->stateTimer = 2; + msgCtx->msgMode = MSGMODE_TEXT_CONTINUING; + } + msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget; + if (noStop == false) { + Interface_LoadActionLabelB(globalCtx, DO_ACTION_STOP); + noStop = gSaveContext.unk_13EA; + Interface_ChangeAlpha(0xA); + gSaveContext.unk_13EA = noStop; + } + // "Music Performance Start" + osSyncPrintf("演奏開始\n"); + if (ocarinaActionId == OCARINA_ACTION_FREE_PLAY || ocarinaActionId == OCARINA_ACTION_CHECK_NOWARP) { + msgCtx->msgMode = MSGMODE_OCARINA_STARTING; + msgCtx->textBoxType = 0x63; + } else if (ocarinaActionId == OCARINA_ACTION_FROGS) { + msgCtx->msgMode = MSGMODE_FROGS_START; + msgCtx->textBoxType = TEXTBOX_TYPE_BLUE; + } else if (ocarinaActionId == OCARINA_ACTION_MEMORY_GAME) { + Interface_ChangeAlpha(1); + Message_Decode(globalCtx); + msgCtx->msgMode = MSGMODE_MEMORY_GAME_START; + } else if (ocarinaActionId == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) { + // "?????Recording Playback / Recording Playback / Recording Playback / Recording Playback -> " + osSyncPrintf("?????録音再生 録音再生 録音再生 録音再生 -> "); + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + Message_ResetOcarinaNoteState(); + msgCtx->stateTimer = 3; + msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK; + Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1); + gSaveContext.unk_13EA = 0; + Interface_ChangeAlpha(1); + } + for (k = 0, j = 0; j < 48; j++, k += 0x80) { + func_8006EE50(&globalCtx->msgCtx.font, 0x8140, k); + } +} + +void func_8010BD58(GlobalContext* globalCtx, u16 ocarinaActionId) { + globalCtx->msgCtx.unk_E40E = 0; + Message_StartOcarina(globalCtx, ocarinaActionId); +} + +void func_8010BD88(GlobalContext* globalCtx, u16 ocarinaActionId) { + globalCtx->msgCtx.unk_E40E = 1; + Message_StartOcarina(globalCtx, ocarinaActionId); +} + +u8 Message_GetState(MessageContext* msgCtx) { + u8 state; + + if (msgCtx->msgLength == 0) { + state = TEXT_STATE_NONE; + } else if (msgCtx->msgMode == MSGMODE_TEXT_DONE) { + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_HAS_NEXT) { + state = TEXT_STATE_DONE_HAS_NEXT; + } else if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_2_CHOICE || + msgCtx->textboxEndType == TEXTBOX_ENDTYPE_3_CHOICE) { + state = TEXT_STATE_CHOICE; + } else if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_EVENT || + msgCtx->textboxEndType == TEXTBOX_ENDTYPE_PERSISTENT) { + state = TEXT_STATE_EVENT; + } else if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_FADING) { + state = TEXT_STATE_DONE_FADING; + } else { + state = TEXT_STATE_DONE; + } + } else if (msgCtx->msgMode == MSGMODE_TEXT_AWAIT_NEXT) { + state = TEXT_STATE_AWAITING_NEXT; + } else if (msgCtx->msgMode == MSGMODE_SONG_DEMONSTRATION_DONE) { + state = TEXT_STATE_SONG_DEMO_DONE; + } else if (msgCtx->ocarinaMode == OCARINA_MODE_03) { + state = TEXT_STATE_8; + } else if (msgCtx->msgMode == MSGMODE_OCARINA_AWAIT_INPUT) { + state = TEXT_STATE_9; + } else if (msgCtx->msgMode == MSGMODE_TEXT_CLOSING && msgCtx->stateTimer == 1) { + state = TEXT_STATE_CLOSING; + } else { + state = TEXT_STATE_DONE_FADING; + } + return state; +} + +void Message_DrawTextBox(GlobalContext* globalCtx, Gfx** p) { + MessageContext* msgCtx = &globalCtx->msgCtx; + Gfx* gfx = *p; + + gDPPipeSync(gfx++); + gDPSetPrimColor(gfx++, 0, 0, msgCtx->textboxColorRed, msgCtx->textboxColorGreen, msgCtx->textboxColorBlue, + msgCtx->textboxColorAlphaCurrent); + + if (!(msgCtx->textBoxType) || msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) { + gDPLoadTextureBlock_4b(gfx++, msgCtx->textboxSegment, G_IM_FMT_I, 128, 64, 0, G_TX_MIRROR, G_TX_NOMIRROR, 7, 0, + G_TX_NOLOD, G_TX_NOLOD); + } else { + if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) { + gDPSetEnvColor(gfx++, 0, 0, 0, 255); + } else { + gDPSetEnvColor(gfx++, 50, 20, 0, 255); + } + + gDPLoadTextureBlock_4b(gfx++, msgCtx->textboxSegment, G_IM_FMT_IA, 128, 64, 0, G_TX_MIRROR, G_TX_MIRROR, 7, 0, + G_TX_NOLOD, G_TX_NOLOD); + } + + gSPTextureRectangle(gfx++, R_TEXTBOX_X << 2, R_TEXTBOX_Y << 2, (R_TEXTBOX_X + R_TEXTBOX_WIDTH) << 2, + (R_TEXTBOX_Y + R_TEXTBOX_HEIGHT) << 2, G_TX_RENDERTILE, 0, 0, R_TEXTBOX_TEXWIDTH << 1, + R_TEXTBOX_TEXHEIGHT << 1); + + // Draw treble clef + if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) { + gDPPipeSync(gfx++); + gDPSetCombineLERP(gfx++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, + 0); + gDPSetPrimColor(gfx++, 0, 0, 255, 100, 0, 255); + gDPLoadTextureBlock_4b(gfx++, gOcarinaTrebleClefTex, G_IM_FMT_I, 16, 32, 0, G_TX_MIRROR, G_TX_MIRROR, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gfx++, R_TEXTBOX_CLEF_XPOS << 2, R_TEXTBOX_CLEF_YPOS << 2, (R_TEXTBOX_CLEF_XPOS + 16) << 2, + (R_TEXTBOX_CLEF_YPOS + 32) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } + + *p = gfx; +} + +void Message_SetView(View* view) { + SET_FULLSCREEN_VIEWPORT(view); + func_800AB2C4(view); +} + +/** + * Draws the textbox in full and updates ocarina state + */ +void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) { + static s16 sOcarinaEffectActorIds[] = { + ACTOR_OCEFF_WIPE3, ACTOR_OCEFF_WIPE2, ACTOR_OCEFF_WIPE, ACTOR_OCEFF_SPOT, + ACTOR_OCEFF_WIPE, ACTOR_OCEFF_STORM, ACTOR_OCEFF_WIPE4, + }; + static s16 sOcarinaEffectActorParams[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000 }; + static void* sOcarinaNoteTextures[] = { + gOcarinaATex, gOcarinaCDownTex, gOcarinaCRightTex, gOcarinaCLeftTex, gOcarinaCUpTex, + }; + static s16 sOcarinaNoteAPrimColors[][3] = { + { 80, 255, 150 }, + { 100, 255, 200 }, + }; + static s16 sOcarinaNoteAEnvColors[][3] = { + { 10, 10, 10 }, + { 50, 255, 50 }, + }; + static s16 sOcarinaNoteCPrimColors[][3] = { + { 255, 255, 50 }, + { 255, 255, 180 }, + }; + static s16 sOcarinaNoteCEnvColors[][3] = { + { 10, 10, 10 }, + { 110, 110, 50 }, + }; + static s16 sOcarinaNoteFlashTimer = 12; + static s16 sOcarinaNoteFlashColorIdx = 1; + static s16 sOcarinaSongFanfares[] = { + NA_BGM_OCA_MINUET, NA_BGM_OCA_BOLERO, NA_BGM_OCA_SERENADE, NA_BGM_OCA_REQUIEM, + NA_BGM_OCA_NOCTURNE, NA_BGM_OCA_LIGHT, NA_BGM_OCA_SARIA, NA_BGM_OCA_EPONA, + NA_BGM_OCA_ZELDA, NA_BGM_OCA_SUNS, NA_BGM_OCA_TIME, NA_BGM_OCA_STORM, + }; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + MessageContext* msgCtx = &globalCtx->msgCtx; + u16 noteBufPos; + Player* player = GET_PLAYER(globalCtx); + s32 pad; + Gfx* gfx = *p; + s16 r; + s16 g; + s16 b; + u16 i; + u16 notePosX; + u16 pad1; + u16 j; + + gSPSegment(gfx++, 0x02, globalCtx->interfaceCtx.parameterSegment); + gSPSegment(gfx++, 0x07, msgCtx->textboxSegment); + + if (msgCtx->msgLength != 0) { + if (msgCtx->ocarinaAction != OCARINA_ACTION_FROGS && msgCtx->msgMode != MSGMODE_SONG_PLAYED_ACT && + msgCtx->msgMode >= MSGMODE_TEXT_BOX_GROWING && msgCtx->msgMode < MSGMODE_TEXT_CLOSING && + msgCtx->textBoxType < TEXTBOX_TYPE_NONE_BOTTOM) { + Message_SetView(&msgCtx->view); + func_8009457C(&gfx); + Message_DrawTextBox(globalCtx, &gfx); + } + + func_8009457C(&gfx); + + gDPSetAlphaCompare(gfx++, G_AC_NONE); + gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, + 0); + + switch (msgCtx->msgMode) { + case MSGMODE_TEXT_START: + case MSGMODE_TEXT_BOX_GROWING: + case MSGMODE_TEXT_STARTING: + case MSGMODE_TEXT_NEXT_MSG: + break; + case MSGMODE_TEXT_CONTINUING: + if (msgCtx->stateTimer == 1) { + for (j = 0, i = 0; i < 48; i++, j += 0x80) { + func_8006EE50(&globalCtx->msgCtx.font, 0x8140, j); + } + Message_DrawText(globalCtx, &gfx); + } + break; + case MSGMODE_TEXT_DISPLAYING: + case MSGMODE_TEXT_DELAYED_BREAK: + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_TEXT_AWAIT_INPUT: + case MSGMODE_TEXT_AWAIT_NEXT: + Message_DrawText(globalCtx, &gfx); + Message_DrawTextboxIcon(globalCtx, &gfx, R_TEXTBOX_END_XPOS, R_TEXTBOX_END_YPOS); + break; + case MSGMODE_OCARINA_STARTING: + case MSGMODE_SONG_DEMONSTRATION_STARTING: + case MSGMODE_SONG_PLAYBACK_STARTING: + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + Message_ResetOcarinaNoteState(); + sOcarinaNoteFlashTimer = 3; + sOcarinaNoteFlashColorIdx = 1; + if (msgCtx->msgMode == MSGMODE_OCARINA_STARTING) { + if (msgCtx->ocarinaAction == OCARINA_ACTION_UNK_0 || + msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY || + msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_RECORDING || + msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP || + msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_SARIA) { + if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY || + msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) { + func_800ECC04(sOcarinaSongBitFlags + 0xC000); + } else { + // "On Stage Performance" + osSyncPrintf("台上演奏\n"); + func_800ECC04(sOcarinaSongBitFlags); + } + } else { + osSyncPrintf("Na_StartOcarinaSinglePlayCheck2( message->ocarina_no );\n"); + func_800ECC04((1 << msgCtx->ocarinaAction) + 0x8000); + } + msgCtx->msgMode = MSGMODE_OCARINA_PLAYING; + } else if (msgCtx->msgMode == MSGMODE_SONG_DEMONSTRATION_STARTING) { + msgCtx->stateTimer = 20; + msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT; + } else { + func_800ECC04((1 << (msgCtx->ocarinaAction + 0x11)) + 0x8000); + // "Performance Check" + osSyncPrintf("演奏チェック=%d\n", msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET); + msgCtx->msgMode = MSGMODE_SONG_PLAYBACK; + } + if (msgCtx->ocarinaAction != OCARINA_ACTION_FREE_PLAY && + msgCtx->ocarinaAction != OCARINA_ACTION_CHECK_NOWARP) { + Message_DrawText(globalCtx, &gfx); + } + break; + case MSGMODE_OCARINA_PLAYING: + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + if (msgCtx->ocarinaStaff->pos) { + osSyncPrintf("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaNoteBufPos); + if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaNoteBufPos == 8) { + sOcarinaNoteBufPos = 0; + } + if (sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = + msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + } + msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state; + if (msgCtx->ocarinaStaff->state < OCARINA_SONG_MEMORY_GAME) { + if (msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW || + CHECK_QUEST_ITEM(QUEST_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state])) { + sLastPlayedSong = msgCtx->unk_E3F2 = msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state; + msgCtx->msgMode = MSGMODE_OCARINA_CORRECT_PLAYBACK; + msgCtx->stateTimer = 20; + if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) { + if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SARIAS || + msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW) { + Audio_OcaSetInstrument(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->msgMode = MSGMODE_OCARINA_STARTING; + } else { + // "Ocarina_Flog Correct Example Performance" + osSyncPrintf("Ocarina_Flog 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + Message_ContinueTextbox(globalCtx, 0x86F); // Ocarina + msgCtx->msgMode = MSGMODE_SONG_PLAYED; + msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; + msgCtx->stateTimer = 10; + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, + &D_801333E0, &D_801333E8); + Interface_ChangeAlpha(1); + } + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_SCARECROW) { + if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW) { + Audio_OcaSetInstrument(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->stateTimer = 10; + msgCtx->msgMode = MSGMODE_OCARINA_FAIL; + } else { + // "Ocarina_Flog Correct Example Performance" + osSyncPrintf("Ocarina_Flog 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + Message_ContinueTextbox(globalCtx, 0x86F); // Ocarina + msgCtx->msgMode = MSGMODE_SONG_PLAYED; + msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; + msgCtx->stateTimer = 10; + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, + &D_801333E0, &D_801333E8); + Interface_ChangeAlpha(1); + } + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) { + // "Ocarina_Free Correct Example Performance" + osSyncPrintf("Ocarina_Free 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + Message_ContinueTextbox(globalCtx, 0x86F); // Ocarina + msgCtx->msgMode = MSGMODE_SONG_PLAYED; + msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; + msgCtx->stateTimer = 10; + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } else { + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } + Interface_ChangeAlpha(1); + } else { + Audio_OcaSetInstrument(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->msgMode = MSGMODE_OCARINA_STARTING; + } + } else if (msgCtx->ocarinaStaff->state == 0xFF) { + Audio_OcaSetInstrument(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->stateTimer = 10; + msgCtx->msgMode = MSGMODE_OCARINA_FAIL; + } else if (CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B)) { + Audio_OcaSetInstrument(0); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + Message_CloseTextbox(globalCtx); + } + if (msgCtx->ocarinaAction != OCARINA_ACTION_FREE_PLAY && + msgCtx->ocarinaAction != OCARINA_ACTION_CHECK_NOWARP) { + Message_DrawText(globalCtx, &gfx); + } + break; + case MSGMODE_OCARINA_CORRECT_PLAYBACK: + case MSGMODE_SONG_PLAYBACK_SUCCESS: + case MSGMODE_SCARECROW_RECORDING_DONE: + r = ABS(sOcarinaNoteAPrimR - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) / + sOcarinaNoteFlashTimer; + g = ABS(sOcarinaNoteAPrimG - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) / + sOcarinaNoteFlashTimer; + b = ABS(sOcarinaNoteAPrimB - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) / + sOcarinaNoteFlashTimer; + + if (sOcarinaNoteAPrimR >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) { + sOcarinaNoteAPrimR -= r; + } else { + sOcarinaNoteAPrimR += r; + } + if (sOcarinaNoteAPrimG >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) { + sOcarinaNoteAPrimG -= g; + } else { + sOcarinaNoteAPrimG += g; + } + if (sOcarinaNoteAPrimB >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) { + sOcarinaNoteAPrimB -= b; + } else { + sOcarinaNoteAPrimB += b; + } + + r = ABS(sOcarinaNoteAEnvR - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) / + sOcarinaNoteFlashTimer; + g = ABS(sOcarinaNoteAEnvG - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) / + sOcarinaNoteFlashTimer; + b = ABS(sOcarinaNoteAEnvB - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) / + sOcarinaNoteFlashTimer; + + if (sOcarinaNoteCEnvR >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) { + sOcarinaNoteAEnvR -= r; + } else { + sOcarinaNoteAEnvR += r; + } + if (sOcarinaNoteCEnvG >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) { + sOcarinaNoteAEnvG -= g; + } else { + sOcarinaNoteAEnvG += g; + } + if (sOcarinaNoteCEnvB >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) { + sOcarinaNoteAEnvB -= b; + } else { + sOcarinaNoteAEnvB += b; + } + + r = ABS(sOcarinaNoteCPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) / + sOcarinaNoteFlashTimer; + g = ABS(sOcarinaNoteCPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) / + sOcarinaNoteFlashTimer; + b = ABS(sOcarinaNoteCPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) / + sOcarinaNoteFlashTimer; + + if (sOcarinaNoteCPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) { + sOcarinaNoteCPrimR -= r; + } else { + sOcarinaNoteCPrimR += r; + } + if (sOcarinaNoteCPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) { + sOcarinaNoteCPrimG -= g; + } else { + sOcarinaNoteCPrimG += g; + } + if (sOcarinaNoteCPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) { + sOcarinaNoteCPrimB -= b; + } else { + sOcarinaNoteCPrimB += b; + } + + r = ABS(sOcarinaNoteCEnvR - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) / + sOcarinaNoteFlashTimer; + g = ABS(sOcarinaNoteCEnvG - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) / + sOcarinaNoteFlashTimer; + b = ABS(sOcarinaNoteCEnvB - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) / + sOcarinaNoteFlashTimer; + + if (sOcarinaNoteCEnvR >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) { + sOcarinaNoteCEnvR -= r; + } else { + sOcarinaNoteCEnvR += r; + } + if (sOcarinaNoteCEnvG >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) { + sOcarinaNoteCEnvG -= g; + } else { + sOcarinaNoteCEnvG += g; + } + if (sOcarinaNoteCEnvB >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) { + sOcarinaNoteCEnvB -= b; + } else { + sOcarinaNoteCEnvB += b; + } + + sOcarinaNoteFlashTimer--; + if (sOcarinaNoteFlashTimer == 0) { + sOcarinaNoteAPrimR = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]; + sOcarinaNoteAPrimG = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]; + sOcarinaNoteAPrimB = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]; + sOcarinaNoteAEnvR = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]; + sOcarinaNoteAEnvG = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]; + sOcarinaNoteAEnvB = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]; + sOcarinaNoteCPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]; + sOcarinaNoteCPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]; + sOcarinaNoteCPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]; + sOcarinaNoteCEnvR = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]; + sOcarinaNoteCEnvG = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]; + sOcarinaNoteCEnvB = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]; + sOcarinaNoteFlashTimer = 3; + sOcarinaNoteFlashColorIdx ^= 1; + } + + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + Audio_OcaSetInstrument(0); + if (msgCtx->msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) { + // "Correct Example Performance" + osSyncPrintf("正解模範演奏=%x\n", msgCtx->lastPlayedSong); + Message_ContinueTextbox(globalCtx, 0x86F); // Ocarina + msgCtx->msgMode = MSGMODE_SONG_PLAYED; + msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; + msgCtx->stateTimer = 1; + } else if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK_SUCCESS) { + if (msgCtx->lastPlayedSong >= OCARINA_SONG_SARIAS) { + Message_ContinueTextbox(globalCtx, 0x86F); // Ocarina + msgCtx->msgMode = MSGMODE_SONG_PLAYED; + msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; + msgCtx->stateTimer = 1; + } else { + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } + } else { + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_03; + } + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_OCARINA_FAIL: + case MSGMODE_SONG_PLAYBACK_FAIL: + Message_DrawText(globalCtx, &gfx); + case MSGMODE_OCARINA_FAIL_NO_TEXT: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + R_OCARINA_NOTES_YPOS_OFFSET = 1; + if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK_FAIL) { + // "kokokokokoko" + osSyncPrintf("ここここここ\n"); + Message_ContinueTextbox(globalCtx, 0x88B); // red X background + Message_Decode(globalCtx); + msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_NOTES_DROP; + } else { + msgCtx->msgMode = MSGMODE_OCARINA_NOTES_DROP; + } + // "Cancel" + osSyncPrintf("キャンセル\n"); + } + break; + case MSGMODE_OCARINA_NOTES_DROP: + case MSGMODE_SONG_PLAYBACK_NOTES_DROP: + for (i = 0; i < 5; i++) { + R_OCARINA_NOTES_YPOS(i) += R_OCARINA_NOTES_YPOS_OFFSET; + } + R_OCARINA_NOTES_YPOS_OFFSET += R_OCARINA_NOTES_YPOS_OFFSET; + if (R_OCARINA_NOTES_YPOS_OFFSET >= 550) { + sOcarinaNoteBuf[0] = OCARINA_NOTE_INVALID; + sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] = + sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] = + sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0; + if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK_NOTES_DROP) { + msgCtx->msgMode = MSGMODE_OCARINA_AWAIT_INPUT; + } else { + msgCtx->msgMode = MSGMODE_OCARINA_STARTING; + } + } + break; + case MSGMODE_SONG_PLAYED: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + Audio_OcaSetInstrument(0); + osSyncPrintf(VT_FGCOL(GREEN)); + osSyncPrintf("Na_StopOcarinaMode();\n"); + osSyncPrintf("Na_StopOcarinaMode();\n"); + osSyncPrintf("Na_StopOcarinaMode();\n"); + osSyncPrintf(VT_RST); + Message_Decode(globalCtx); + msgCtx->msgMode = MSGMODE_SETUP_DISPLAY_SONG_PLAYED; + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Message_ResetOcarinaNoteState(); + if (msgCtx->lastPlayedSong >= OCARINA_SONG_SARIAS && + msgCtx->lastPlayedSong < OCARINA_SONG_MEMORY_GAME) { + Actor_Spawn(&globalCtx->actorCtx, globalCtx, + sOcarinaEffectActorIds[msgCtx->lastPlayedSong - OCARINA_SONG_SARIAS], + player->actor.world.pos.x, player->actor.world.pos.y, player->actor.world.pos.z, 0, + 0, 0, sOcarinaEffectActorParams[msgCtx->lastPlayedSong - OCARINA_SONG_SARIAS]); + } + } + break; + case MSGMODE_SETUP_DISPLAY_SONG_PLAYED: + Message_DrawText(globalCtx, &gfx); + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(1); + Audio_OcaSetSongPlayback(msgCtx->lastPlayedSong + 1, 1); + if (msgCtx->lastPlayedSong != OCARINA_SONG_SCARECROW) { + Audio_PlayFanfare(sOcarinaSongFanfares[msgCtx->lastPlayedSong]); + Audio_SetSoundBanksMute(0x20); + } + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) { + msgCtx->ocarinaAction = OCARINA_ACTION_FREE_PLAY_DONE; + } + if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) { + msgCtx->ocarinaAction = OCARINA_ACTION_CHECK_NOWARP_DONE; + } + sOcarinaNoteBufPos = 0; + msgCtx->msgMode = MSGMODE_DISPLAY_SONG_PLAYED; + break; + case MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + // "ocarina_no=%d Song Chosen=%d" + osSyncPrintf("ocarina_no=%d 選曲=%d\n", msgCtx->ocarinaAction, 0x16); + if (msgCtx->ocarinaAction < OCARINA_ACTION_TEACH_SARIA) { + Audio_OcaSetInstrument(4); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_EPONA) { + Audio_OcaSetInstrument(2); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_LULLABY) { + Audio_OcaSetInstrument(3); + } else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_STORMS) { + Audio_OcaSetInstrument(5); + } else { + Audio_OcaSetInstrument(1); + } + // "Example Performance" + osSyncPrintf("模範演奏=%x\n", msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET); + Audio_OcaSetSongPlayback(msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET + 1, 2); + sOcarinaNoteBufPos = 0; + msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION; + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_DISPLAY_SONG_PLAYED_TEXT_BEGIN: + Message_ContinueTextbox(globalCtx, msgCtx->lastPlayedSong + 0x893); // You played [song name] + Message_Decode(globalCtx); + msgCtx->msgMode = MSGMODE_DISPLAY_SONG_PLAYED_TEXT; + msgCtx->stateTimer = 20; + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_DISPLAY_SONG_PLAYED_TEXT: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + msgCtx->msgMode = MSGMODE_SONG_PLAYED_ACT_BEGIN; + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SONG_PLAYED_ACT_BEGIN: + Audio_OcaSetInstrument(0); + Message_ResetOcarinaNoteState(); + msgCtx->msgMode = MSGMODE_SONG_PLAYED_ACT; + msgCtx->stateTimer = 2; + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SONG_PLAYED_ACT: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + if (msgCtx->lastPlayedSong < OCARINA_SONG_SARIAS && + (msgCtx->ocarinaAction < OCARINA_ACTION_PLAYBACK_MINUET || + msgCtx->ocarinaAction >= OCARINA_ACTION_PLAYBACK_SARIA)) { + if (msgCtx->disableWarpSongs || interfaceCtx->restrictions.warpSongs == 3) { + Message_StartTextbox(globalCtx, 0x88C, NULL); // "You can't warp here!" + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } else if ((gSaveContext.eventInf[0] & 0xF) != 1) { + Message_StartTextbox(globalCtx, msgCtx->lastPlayedSong + 0x88D, + NULL); // "Warp to [place name]?" + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + } else { + Message_CloseTextbox(globalCtx); + } + } else { + Message_CloseTextbox(globalCtx); + if (msgCtx->lastPlayedSong == OCARINA_SONG_EPONAS) { + DREG(53) = 1; + } + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("☆☆☆ocarina=%d message->ocarina_no=%d ", msgCtx->lastPlayedSong, + msgCtx->ocarinaAction); + if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY_DONE) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + if (msgCtx->lastPlayedSong == OCARINA_SONG_SCARECROW) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_0B; + } + } else if (msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_MINUET) { + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("Ocarina_PC_Wind=%d(%d) ☆☆☆ ", OCARINA_ACTION_CHECK_MINUET, + msgCtx->ocarinaAction - OCARINA_ACTION_CHECK_MINUET); + if (msgCtx->lastPlayedSong + OCARINA_ACTION_CHECK_MINUET == msgCtx->ocarinaAction) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_03; + } else { + globalCtx->msgCtx.ocarinaMode = msgCtx->lastPlayedSong - 1; + } + } else { + osSyncPrintf(VT_FGCOL(GREEN)); + osSyncPrintf("Ocarina_C_Wind=%d(%d) ☆☆☆ ", OCARINA_ACTION_PLAYBACK_MINUET, + msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET); + if (msgCtx->lastPlayedSong + OCARINA_ACTION_PLAYBACK_MINUET == msgCtx->ocarinaAction) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_03; + } else { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } + } + osSyncPrintf(VT_RST); + osSyncPrintf("→ OCARINA_MODE=%d\n", globalCtx->msgCtx.ocarinaMode); + } + } + break; + case MSGMODE_DISPLAY_SONG_PLAYED: + case MSGMODE_SONG_DEMONSTRATION: + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + if (msgCtx->ocarinaStaff->state == 0) { + if (msgCtx->msgMode == MSGMODE_DISPLAY_SONG_PLAYED) { + msgCtx->msgMode = MSGMODE_DISPLAY_SONG_PLAYED_TEXT_BEGIN; + } else { + msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_DONE; + } + osSyncPrintf("onpu_buff[%d]=%x\n", msgCtx->ocarinaStaff->pos, + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos]); + } else { + if (sOcarinaNoteBufPos != 0 && msgCtx->ocarinaStaff->pos == 1) { + sOcarinaNoteBufPos = 0; + } + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = + msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + } + case MSGMODE_SONG_DEMONSTRATION_DONE: + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SONG_PLAYBACK: + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + if (msgCtx->ocarinaStaff->state < OCARINA_SONG_MEMORY_GAME) { + osSyncPrintf("M_OCARINA20 : ocarina_no=%x status=%x\n", msgCtx->ocarinaAction, + msgCtx->ocarinaStaff->state); + msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state; + msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_SUCCESS; + Item_Give(globalCtx, ITEM_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state]); + osSyncPrintf(VT_FGCOL(YELLOW)); + // "z_message.c Song Acquired" + osSyncPrintf("z_message.c 取得メロディ=%d\n", ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state); + osSyncPrintf(VT_RST); + msgCtx->stateTimer = 20; + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } else if (msgCtx->ocarinaStaff->state == 0xFF) { + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->stateTimer = 10; + msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_FAIL; + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_OCARINA_AWAIT_INPUT: + Message_DrawText(globalCtx, &gfx); + if (Message_ShouldAdvance(globalCtx)) { + func_8010BD58(globalCtx, msgCtx->ocarinaAction); + } + break; + case MSGMODE_SCARECROW_LONG_RECORDING_START: + // "Scarecrow Recording Initialization" + osSyncPrintf("案山子録音 初期化\n"); + Audio_OcaSetRecordingState(1); + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + sOcarinaNoteBufLen = 0; + Message_ResetOcarinaNoteState(); + msgCtx->msgMode = MSGMODE_SCARECROW_LONG_RECORDING_ONGOING; + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SCARECROW_LONG_RECORDING_ONGOING: + msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); + osSyncPrintf("\nonpu_pt=%d, locate=%d", sOcarinaNoteBufPos, msgCtx->ocarinaStaff->pos); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + if (sOcarinaNoteBufLen >= 8) { + for (noteBufPos = sOcarinaNoteBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { + sOcarinaNoteBuf[noteBufPos] = sOcarinaNoteBuf[noteBufPos + 1]; + } + sOcarinaNoteBufLen--; + } + // "Button Entered" + osSyncPrintf(" 入力ボタン【%d】=%d", sOcarinaNoteBufLen, msgCtx->ocarinaStaff->noteIdx); + msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[sOcarinaNoteBufLen] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBufLen++; + sOcarinaNoteBuf[sOcarinaNoteBufLen] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos == 8) { + sOcarinaNoteBufPos = 0; + } + } + if (msgCtx->ocarinaStaff->state == 0 || CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B)) { + if (sOcarinaNoteBufLen != 0) { + // "Recording complete!!!!!!!!!" + osSyncPrintf("録音終了!!!!!!!!! message->info->status=%d \n", + msgCtx->ocarinaStaff->state); + gSaveContext.scarecrowCustomSongSet = true; + } + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + osSyncPrintf("aaaaaaaaaaaaaa\n"); + Audio_OcaSetRecordingState(0); + msgCtx->stateTimer = 10; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + Message_CloseTextbox(globalCtx); + // "Recording complete!!!!!!!!!Recording Complete" + osSyncPrintf("録音終了!!!!!!!!!録音終了\n"); + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("\n====================================================================\n"); + MemCopy(gSaveContext.scarecrowCustomSong, gScarecrowCustomSongPtr, + sizeof(gSaveContext.scarecrowCustomSong)); + for (i = 0; i < ARRAY_COUNT(gSaveContext.scarecrowCustomSong); i++) { + osSyncPrintf("%d, ", gSaveContext.scarecrowCustomSong[i]); + } + osSyncPrintf(VT_RST); + osSyncPrintf("\n====================================================================\n"); + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SCARECROW_LONG_PLAYBACK: + case MSGMODE_SCARECROW_PLAYBACK: + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + if (sOcarinaNoteBufLen >= 8) { + for (noteBufPos = sOcarinaNoteBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { + sOcarinaNoteBuf[noteBufPos] = sOcarinaNoteBuf[noteBufPos + 1]; + } + sOcarinaNoteBufLen--; + } + sOcarinaNoteBuf[sOcarinaNoteBufLen] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBufLen++; + sOcarinaNoteBuf[sOcarinaNoteBufLen] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos == 8) { + sOcarinaNoteBufLen = sOcarinaNoteBufPos = 0; + } + } + osSyncPrintf("status=%d (%d)\n", msgCtx->ocarinaStaff->state, 0); + if (msgCtx->stateTimer == 0) { + if (msgCtx->ocarinaStaff->state == 0) { + osSyncPrintf("bbbbbbbbbbb\n"); + Audio_OcaSetInstrument(0); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_0F; + Message_CloseTextbox(globalCtx); + } + } else { + msgCtx->stateTimer--; + } + break; + case MSGMODE_SCARECROW_RECORDING_START: + Audio_OcaSetRecordingState(2); + Audio_OcaSetInstrument(1); + msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_ONGOING; + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SCARECROW_RECORDING_ONGOING: + msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[sOcarinaNoteBufPos] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBufPos++; + sOcarinaNoteBuf[sOcarinaNoteBufPos] = OCARINA_NOTE_INVALID; + } + if (msgCtx->ocarinaStaff->state == 0) { + // "8 Note Recording OK!" + osSyncPrintf("8音録音OK!\n"); + msgCtx->stateTimer = 20; + gSaveContext.scarecrowSpawnSongSet = true; + msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_DONE; + Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("\n====================================================================\n"); + MemCopy(gSaveContext.scarecrowSpawnSong, gScarecrowSpawnSongPtr, + sizeof(gSaveContext.scarecrowSpawnSong)); + for (i = 0; i < ARRAY_COUNT(gSaveContext.scarecrowSpawnSong); i++) { + osSyncPrintf("%d, ", gSaveContext.scarecrowSpawnSong[i]); + } + osSyncPrintf(VT_RST); + osSyncPrintf("\n====================================================================\n"); + } else if (msgCtx->ocarinaStaff->state == 0xFF || + CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B)) { + // "Played an existing song!!!" + osSyncPrintf("すでに存在する曲吹いた!!! \n"); + Audio_OcaSetRecordingState(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + Message_CloseTextbox(globalCtx); + msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_FAILED; + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_SCARECROW_RECORDING_FAILED: + osSyncPrintf("cccccccccccc\n"); + Audio_OcaSetInstrument(0); + Message_StartTextbox(globalCtx, 0x40AD, NULL); // Bonooru doesn't remember your song + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + break; + case MSGMODE_MEMORY_GAME_START: + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(6); + Audio_OcaMemoryGameStart(gSaveContext.ocarinaGameRoundNum); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Message_ResetOcarinaNoteState(); + Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); + msgCtx->msgMode = MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING; + msgCtx->stateTimer = 2; + break; + case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING: + case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING: + Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + if (msgCtx->stateTimer == 0) { + if (msgCtx->ocarinaStaff->state == 0) { + if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING) { + Audio_PlaySoundGeneral(NA_SE_SY_METRONOME, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } else { + Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_2, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } + msgCtx->msgMode++; + } + } else { + msgCtx->stateTimer--; + } + break; + case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_WAIT: + case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_WAIT: + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + break; + case MSGMODE_MEMORY_GAME_PLAYER_PLAYING: + Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + if (msgCtx->ocarinaStaff->state == 0xFF) { + // "Musical round failed!!!!!!!!!" + osSyncPrintf("輪唱失敗!!!!!!!!!\n"); + Audio_OcaSetInstrument(0); + Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->stateTimer = 10; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_03; + } else if (msgCtx->ocarinaStaff->state == 0xD) { + // "Musical round succeeded!!!!!!!!!" + osSyncPrintf("輪唱成功!!!!!!!!!\n"); + Audio_PlaySoundGeneral(NA_SE_SY_GET_ITEM, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + msgCtx->msgMode = MSGMODE_MEMORY_GAME_ROUND_SUCCESS; + msgCtx->stateTimer = 30; + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_MEMORY_GAME_ROUND_SUCCESS: + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaNoteBufPos++; + } + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + if (Audio_OcaMemoryGameGenNote() != 1) { + Audio_PlaySoundGeneral(NA_SE_SY_METRONOME, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Message_ResetOcarinaNoteState(); + msgCtx->msgMode = MSGMODE_MEMORY_GAME_START_NEXT_ROUND; + } else { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_0F; + } + } + Message_DrawText(globalCtx, &gfx); + break; + case MSGMODE_MEMORY_GAME_START_NEXT_ROUND: + if (!Audio_IsSfxPlaying(NA_SE_SY_METRONOME)) { + msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Message_ResetOcarinaNoteState(); + Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); + } + break; + case MSGMODE_FROGS_START: + Audio_OcaSetInstrument(1); + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + Message_ResetOcarinaNoteState(); + func_800ECC04(sOcarinaSongBitFlags + 0xC000); + msgCtx->msgMode = MSGMODE_FROGS_PLAYING; + break; + case MSGMODE_FROGS_PLAYING: + msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); + if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = msgCtx->ocarinaStaff->noteIdx; + msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + Message_ResetOcarinaNoteState(); + msgCtx->msgMode = MSGMODE_FROGS_WAITING; + } + case MSGMODE_FROGS_WAITING: + break; + case MSGMODE_TEXT_DONE: + Message_DrawText(globalCtx, &gfx); + + switch (msgCtx->textboxEndType) { + case TEXTBOX_ENDTYPE_2_CHOICE: + Message_HandleChoiceSelection(globalCtx, 1); + Message_DrawTextboxIcon(globalCtx, &gfx, msgCtx->textPosX, msgCtx->textPosY); + break; + case TEXTBOX_ENDTYPE_3_CHOICE: + Message_HandleChoiceSelection(globalCtx, 2); + Message_DrawTextboxIcon(globalCtx, &gfx, msgCtx->textPosX, msgCtx->textPosY); + break; + case TEXTBOX_ENDTYPE_PERSISTENT: + if (msgCtx->textId >= 0x6D && msgCtx->textId < 0x73) { + msgCtx->stateTimer++; + if (msgCtx->stateTimer >= 31) { + msgCtx->stateTimer = 2; + msgCtx->msgMode = MSGMODE_TEXT_CLOSING; + } + } + break; + case TEXTBOX_ENDTYPE_EVENT: + default: + Message_DrawTextboxIcon(globalCtx, &gfx, R_TEXTBOX_END_XPOS, R_TEXTBOX_END_YPOS); + case TEXTBOX_ENDTYPE_FADING: + break; + } + break; + case MSGMODE_TEXT_CLOSING: + case MSGMODE_PAUSED: + break; + case MSGMODE_UNK_20: + default: + msgCtx->msgMode = MSGMODE_TEXT_DISPLAYING; + break; + } + + if (msgCtx->msgMode >= MSGMODE_OCARINA_PLAYING && msgCtx->msgMode < MSGMODE_TEXT_AWAIT_NEXT && + msgCtx->ocarinaAction != OCARINA_ACTION_FREE_PLAY && msgCtx->ocarinaAction != OCARINA_ACTION_CHECK_NOWARP) { + func_8009457C(&gfx); + + gDPSetCombineLERP(gfx++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, + ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); + + if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK) { + g = msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET; + r = gOcarinaSongNotes[g].len; + for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < r; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) { + gDPPipeSync(gfx++); + gDPSetPrimColor(gfx++, 0, 0, 150, 150, 150, 150); + gDPSetEnvColor(gfx++, 10, 10, 10, 0); + + gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[gOcarinaSongNotes[g].notesIdx[i]], G_IM_FMT_IA, + G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle( + gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) << 2, + (notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) + 16) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } + } + + if (msgCtx->msgMode != MSGMODE_SCARECROW_LONG_RECORDING_START && + msgCtx->msgMode != MSGMODE_MEMORY_GAME_START) { + for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < 8; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) { + if (sOcarinaNoteBuf[i] == OCARINA_NOTE_INVALID) { + break; + } + + if (1) {} + if (sOcarinaNotesAlphaValues[i] != 255) { + sOcarinaNotesAlphaValues[i] += VREG(50); + if (sOcarinaNotesAlphaValues[i] >= 255) { + sOcarinaNotesAlphaValues[i] = 255; + } + } + + gDPPipeSync(gfx++); + if (sOcarinaNoteBuf[i] == OCARINA_NOTE_A) { + gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteAPrimR, sOcarinaNoteAPrimG, sOcarinaNoteAPrimB, + sOcarinaNotesAlphaValues[i]); + gDPSetEnvColor(gfx++, sOcarinaNoteAEnvR, sOcarinaNoteAEnvG, sOcarinaNoteAEnvB, 0); + } else { + gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCPrimR, sOcarinaNoteCPrimG, sOcarinaNoteCPrimB, + sOcarinaNotesAlphaValues[i]); + gDPSetEnvColor(gfx++, sOcarinaNoteCEnvR, sOcarinaNoteCEnvG, sOcarinaNoteCEnvB, 0); + } + + gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[sOcarinaNoteBuf[i]], G_IM_FMT_IA, G_IM_SIZ_8b, 16, + 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(sOcarinaNoteBuf[i]) << 2, + (notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(sOcarinaNoteBuf[i]) + 16) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } + } + } + } + *p = gfx; +} + +/** + * If the s16 variable pointed to by `var` changes in value, a black bar and white box + * are briefly drawn onto the screen. It can only watch one variable per build due to + * the last value being saved in a static variable. + */ +void Message_DrawDebugVariableChanged(s16* var, GraphicsContext* gfxCtx) { + static s16 sVarLastValue = 0; + static s16 sFillTimer = 0; + s32 pad; + + OPEN_DISPS(gfxCtx, "../z_message_PAL.c", 3485); + + if (sVarLastValue != *var) { + sVarLastValue = *var; + sFillTimer = 30; + } + if (sFillTimer != 0) { + sFillTimer--; + gDPPipeSync(POLY_OPA_DISP++); + gDPSetCycleType(POLY_OPA_DISP++, G_CYC_FILL); + gDPSetRenderMode(POLY_OPA_DISP++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(POLY_OPA_DISP++, GPACK_RGBA5551(0, 0, 0, 1) << 0x10 | GPACK_RGBA5551(0, 0, 0, 1)); + gDPFillRectangle(POLY_OPA_DISP++, 0, 110, SCREEN_WIDTH - 1, 150); // 40x319 black bar + gDPPipeSync(POLY_OPA_DISP++); + gDPPipeSync(POLY_OPA_DISP++); + gDPSetCycleType(POLY_OPA_DISP++, G_CYC_FILL); + gDPSetRenderMode(POLY_OPA_DISP++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(POLY_OPA_DISP++, GPACK_RGBA5551(255, 255, 255, 1) << 0x10 | GPACK_RGBA5551(255, 255, 255, 1)); + gDPFillRectangle(POLY_OPA_DISP++, 40, 120, 60, 140); // 20x20 white box + gDPPipeSync(POLY_OPA_DISP++); + } + CLOSE_DISPS(gfxCtx, "../z_message_PAL.c", 3513); +} + +void Message_DrawDebugText(GlobalContext* globalCtx, Gfx** p) { + s32 pad; + GfxPrint printer; + s32 pad1; + + GfxPrint_Init(&printer); + GfxPrint_Open(&printer, *p); + GfxPrint_SetPos(&printer, 6, 26); + GfxPrint_SetColor(&printer, 255, 60, 0, 255); + GfxPrint_Printf(&printer, "%s", "MESSAGE"); + GfxPrint_SetPos(&printer, 14, 26); + GfxPrint_Printf(&printer, "%s", "="); + GfxPrint_SetPos(&printer, 16, 26); + GfxPrint_Printf(&printer, "%x", globalCtx->msgCtx.textId); + *p = GfxPrint_Close(&printer); + GfxPrint_Destroy(&printer); +} + +void Message_Draw(GlobalContext* globalCtx) { + Gfx* plusOne; + Gfx* polyOpaP; + s16 watchVar; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_message_PAL.c", 3554); + + watchVar = gSaveContext.scarecrowCustomSongSet; + Message_DrawDebugVariableChanged(&watchVar, globalCtx->state.gfxCtx); + if (BREG(0) != 0 && globalCtx->msgCtx.textId != 0) { + plusOne = Graph_GfxPlusOne(polyOpaP = POLY_OPA_DISP); + gSPDisplayList(OVERLAY_DISP++, plusOne); + Message_DrawDebugText(globalCtx, &plusOne); + gSPEndDisplayList(plusOne++); + Graph_BranchDlist(polyOpaP, plusOne); + POLY_OPA_DISP = plusOne; + } + if (1) {} + plusOne = Graph_GfxPlusOne(polyOpaP = POLY_OPA_DISP); + gSPDisplayList(OVERLAY_DISP++, plusOne); + Message_DrawMain(globalCtx, &plusOne); + gSPEndDisplayList(plusOne++); + Graph_BranchDlist(polyOpaP, plusOne); + POLY_OPA_DISP = plusOne; + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_message_PAL.c", 3582); +} + +void Message_Update(GlobalContext* globalCtx) { + static s16 sTextboxXPositions[] = { + 34, 34, 34, 34, 34, 34, + }; + static s16 sTextboxMidYPositions[] = { + 142, 142, 142, 142, 174, 142, + }; + static s16 sTextboxUpperYPositions[] = { + 38, 38, 38, 38, 174, 38, + }; + static s16 sTextboxLowerYPositions[] = { + 90, 90, 90, 90, 174, 90, + }; + static s16 sTextboxEndIconYOffset[] = { + 59, 59, 59, 59, 34, 59, + }; + static s16 D_80153D3C[] = { + // additional unreferenced data + 0x0400, 0x0400, 0x0200, 0x0000, 0x1038, 0x0008, 0x200A, 0x088B, 0x0007, 0x0009, 0x000A, 0x107E, 0x2008, 0x2007, + 0x0015, 0x0016, 0x0017, 0x0003, 0x0000, 0x270B, 0x00C8, 0x012C, 0x012D, 0xFFDA, 0x0014, 0x0016, 0x0014, 0x0016, + }; + static u8 D_80153D74 = 0; + static u16 D_80153D78 = 0; + MessageContext* msgCtx = &globalCtx->msgCtx; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + Player* player = GET_PLAYER(globalCtx); + Input* input = &globalCtx->state.input[0]; + s16 var; + s16 focusScreenPosX; + s16 averageY; + s16 playerFocusScreenPosY; + s16 actorFocusScreenPosY; + + if (BREG(0) != 0) { + if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN) && CHECK_BTN_ALL(input->cur.button, BTN_L)) { + osSyncPrintf("msgno=%d\n", D_80153D78); + Message_StartTextbox(globalCtx, R_MESSAGE_DEBUGGER_TEXTID, NULL); + D_80153D78 = (D_80153D78 + 1) % 10; + } + if (R_MESSAGE_DEBUGGER_SELECT != 0) { + while (R_MESSAGE_DEBUGGER_TEXTID != 0x8000) { + MessageTableEntry* entry = &sNesMessageEntryTablePtr[0]; + + while (entry->textId != 0xFFFD) { + if (entry->textId == R_MESSAGE_DEBUGGER_TEXTID) { + // "The message was found! !! !!" + osSyncPrintf(" メッセージが,見つかった!!! = %x\n", R_MESSAGE_DEBUGGER_TEXTID); + Message_StartTextbox(globalCtx, R_MESSAGE_DEBUGGER_TEXTID, NULL); + R_MESSAGE_DEBUGGER_TEXTID++; + R_MESSAGE_DEBUGGER_SELECT = 0; + return; + } + entry++; + } + R_MESSAGE_DEBUGGER_TEXTID++; + } + } + } + + if (msgCtx->msgLength == 0) { + return; + } + + switch (msgCtx->msgMode) { + case MSGMODE_TEXT_START: + D_8014B2F4++; + + var = false; + if (YREG(15) == 0x40) { + if (D_8014B2F4 >= 4) { + var = true; + } + } else if (YREG(15) != 0 || globalCtx->sceneNum == SCENE_HAIRAL_NIWA) { + var = true; + } else if (D_8014B2F4 >= 4 || msgCtx->talkActor == NULL) { + var = true; + } + + if (var) { + if (msgCtx->talkActor != NULL) { + Actor_GetScreenPos(globalCtx, &GET_PLAYER(globalCtx)->actor, &focusScreenPosX, + &playerFocusScreenPosY); + Actor_GetScreenPos(globalCtx, msgCtx->talkActor, &focusScreenPosX, &actorFocusScreenPosY); + + if (playerFocusScreenPosY >= actorFocusScreenPosY) { + averageY = ((playerFocusScreenPosY - actorFocusScreenPosY) / 2) + actorFocusScreenPosY; + } else { + averageY = ((actorFocusScreenPosY - playerFocusScreenPosY) / 2) + playerFocusScreenPosY; + } + osSyncPrintf("dxpos=%d dypos=%d dypos1 dypos2=%d\n", focusScreenPosX, averageY, + playerFocusScreenPosY, actorFocusScreenPosY); + } else { + R_TEXTBOX_X = R_TEXTBOX_X_TARGET; + R_TEXTBOX_Y = R_TEXTBOX_Y_TARGET; + } + + var = msgCtx->textBoxType; + + if (!msgCtx->textBoxPos) { // variable position + if (YREG(15) != 0 || globalCtx->sceneNum == SCENE_HAIRAL_NIWA) { + if (averageY < XREG(92)) { + R_TEXTBOX_Y_TARGET = sTextboxMidYPositions[var]; + } else { + R_TEXTBOX_Y_TARGET = sTextboxUpperYPositions[var]; + } + } else if (globalCtx->sceneNum == SCENE_MARKET_DAY || globalCtx->sceneNum == SCENE_MARKET_NIGHT || + globalCtx->sceneNum == SCENE_MARKET_RUINS) { + if (averageY < XREG(93)) { + R_TEXTBOX_Y_TARGET = sTextboxMidYPositions[var]; + } else { + R_TEXTBOX_Y_TARGET = sTextboxUpperYPositions[var]; + } + } else { + if (averageY < XREG(94)) { + R_TEXTBOX_Y_TARGET = sTextboxMidYPositions[var]; + } else { + R_TEXTBOX_Y_TARGET = sTextboxUpperYPositions[var]; + } + } + } else { + if (msgCtx->textBoxPos == TEXTBOX_POS_TOP) { + R_TEXTBOX_Y_TARGET = sTextboxUpperYPositions[var]; + } else if (msgCtx->textBoxPos == TEXTBOX_POS_BOTTOM) { + R_TEXTBOX_Y_TARGET = sTextboxLowerYPositions[var]; + } else { + R_TEXTBOX_Y_TARGET = sTextboxMidYPositions[var]; + } + } + + R_TEXTBOX_X_TARGET = sTextboxXPositions[var]; + R_TEXTBOX_END_YPOS = sTextboxEndIconYOffset[var] + R_TEXTBOX_Y_TARGET; + R_TEXT_CHOICE_YPOS(0) = R_TEXTBOX_Y_TARGET + 20; + R_TEXT_CHOICE_YPOS(1) = R_TEXTBOX_Y_TARGET + 32; + R_TEXT_CHOICE_YPOS(2) = R_TEXTBOX_Y_TARGET + 44; + osSyncPrintf("message->msg_disp_type=%x\n", msgCtx->textBoxProperties & 0xF0); + if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_BOTTOM || msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) { + msgCtx->msgMode = MSGMODE_TEXT_STARTING; + R_TEXTBOX_X = R_TEXTBOX_X_TARGET; + R_TEXTBOX_Y = R_TEXTBOX_Y_TARGET; + R_TEXTBOX_WIDTH = 256; + R_TEXTBOX_HEIGHT = 64; + R_TEXTBOX_TEXWIDTH = 512; + R_TEXTBOX_TEXHEIGHT = 512; + } else { + Message_GrowTextbox(msgCtx); + Audio_PlaySoundIfNotInCutscene(0); + msgCtx->stateTimer = 0; + msgCtx->msgMode = MSGMODE_TEXT_BOX_GROWING; + } + } + break; + case MSGMODE_TEXT_BOX_GROWING: + Message_GrowTextbox(msgCtx); + break; + case MSGMODE_TEXT_STARTING: + msgCtx->msgMode = MSGMODE_TEXT_NEXT_MSG; + if (YREG(31) == 0) { + Interface_SetDoAction(globalCtx, DO_ACTION_NEXT); + } + break; + case MSGMODE_TEXT_NEXT_MSG: + Message_Decode(globalCtx); + if (sTextFade) { + Interface_ChangeAlpha(1); + } + if (D_80153D74 != 0) { + msgCtx->textDrawPos = msgCtx->decodedTextLen; + D_80153D74 = 0; + } + break; + case MSGMODE_TEXT_CONTINUING: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + Message_Decode(globalCtx); + } + break; + case MSGMODE_TEXT_DISPLAYING: + if (msgCtx->textBoxType != TEXTBOX_TYPE_NONE_BOTTOM && YREG(31) == 0 && + CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B) && !msgCtx->textUnskippable) { + sTextboxSkipped = true; + msgCtx->textDrawPos = msgCtx->decodedTextLen; + } + break; + case MSGMODE_TEXT_AWAIT_INPUT: + if (YREG(31) == 0 && Message_ShouldAdvance(globalCtx)) { + msgCtx->msgMode = MSGMODE_TEXT_DISPLAYING; + msgCtx->textDrawPos++; + } + break; + case MSGMODE_TEXT_DELAYED_BREAK: + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + msgCtx->msgMode = MSGMODE_TEXT_NEXT_MSG; + } + break; + case MSGMODE_TEXT_AWAIT_NEXT: + if (Message_ShouldAdvance(globalCtx)) { + msgCtx->msgMode = MSGMODE_TEXT_NEXT_MSG; + msgCtx->textUnskippable = false; + msgCtx->msgBufPos++; + } + break; + case MSGMODE_TEXT_DONE: + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_FADING) { + msgCtx->stateTimer--; + if (msgCtx->stateTimer == 0) { + Message_CloseTextbox(globalCtx); + } + } else if (msgCtx->textboxEndType != TEXTBOX_ENDTYPE_PERSISTENT && + msgCtx->textboxEndType != TEXTBOX_ENDTYPE_EVENT && YREG(31) == 0) { + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_2_CHOICE && + globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { + if (Message_ShouldAdvance(globalCtx)) { + osSyncPrintf("OCARINA_MODE=%d -> ", globalCtx->msgCtx.ocarinaMode); + globalCtx->msgCtx.ocarinaMode = (msgCtx->choiceIndex == 0) ? OCARINA_MODE_02 : OCARINA_MODE_04; + osSyncPrintf("InRaceSeq=%d(%d) OCARINA_MODE=%d --> ", gSaveContext.eventInf[0] & 0xF, 1, + globalCtx->msgCtx.ocarinaMode); + Message_CloseTextbox(globalCtx); + osSyncPrintf("OCARINA_MODE=%d\n", globalCtx->msgCtx.ocarinaMode); + } + } else if (Message_ShouldAdvanceSilent(globalCtx)) { + osSyncPrintf("select=%d\n", msgCtx->textboxEndType); + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_HAS_NEXT) { + Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_PASS, &D_801333D4, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + Message_ContinueTextbox(globalCtx, sNextTextId); + } else { + Audio_PlaySoundGeneral(NA_SE_SY_DECIDE, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + Message_CloseTextbox(globalCtx); + } + } + } + break; + case MSGMODE_TEXT_CLOSING: + msgCtx->stateTimer--; + if (msgCtx->stateTimer != 0) { + break; + } + if ((msgCtx->textId >= 0xC2 && msgCtx->textId < 0xC7) || + (msgCtx->textId >= 0xFA && msgCtx->textId < 0xFE)) { + gSaveContext.healthAccumulator = 0x140; // Refill 20 hearts + } + if (msgCtx->textId == 0x301F || msgCtx->textId == 0xA || msgCtx->textId == 0xC || msgCtx->textId == 0xCF || + msgCtx->textId == 0x21C || msgCtx->textId == 9 || msgCtx->textId == 0x4078 || + msgCtx->textId == 0x2015 || msgCtx->textId == 0x3040) { + gSaveContext.unk_13EE = 0x32; + } + if (globalCtx->csCtx.state == 0) { + osSyncPrintf(VT_FGCOL(GREEN)); + osSyncPrintf("day_time=%x active_camera=%d ", gSaveContext.cutsceneIndex, globalCtx->activeCamera); + + if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C && + ((msgCtx->textId < 0x88D || msgCtx->textId >= 0x893) || msgCtx->choiceIndex != 0) && + (msgCtx->textId != 0x3055 && gSaveContext.cutsceneIndex < 0xFFF0)) { + osSyncPrintf("=== day_time=%x ", ((void)0, gSaveContext.cutsceneIndex)); + if (globalCtx->activeCamera == MAIN_CAM) { + if (gSaveContext.unk_13EE == 0 || gSaveContext.unk_13EE == 1 || gSaveContext.unk_13EE == 2) { + gSaveContext.unk_13EE = 0x32; + } + gSaveContext.unk_13EA = 0; + Interface_ChangeAlpha(gSaveContext.unk_13EE); + } + } + } + osSyncPrintf(VT_RST); + msgCtx->msgLength = 0; + msgCtx->msgMode = MSGMODE_NONE; + interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0; + msgCtx->textId = msgCtx->stateTimer = 0; + + if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_PERSISTENT) { + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_DEFAULT; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_02; + } else { + msgCtx->textboxEndType = TEXTBOX_ENDTYPE_DEFAULT; + } + if ((s32)(gSaveContext.inventory.questItems & 0xF0000000) == 0x40000000) { + gSaveContext.inventory.questItems ^= 0x40000000; + gSaveContext.healthCapacity += 0x10; + gSaveContext.health += 0x10; + } + if (msgCtx->ocarinaAction != OCARINA_ACTION_CHECK_NOWARP_DONE) { + if (sLastPlayedSong == OCARINA_SONG_SARIAS) { + //! @bug The last played song is not unset often, and if something interrupts the message system + // before it reaches this point after playing Saria's song, the song will be "stored". + // Later, if the ocarina has not been played and another textbox is closed, this handling + // for Saria's song will be carried out. + player->naviTextId = -0xE0; + player->naviActor->flags |= 0x10000; + } + if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY_DONE && + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01 || + globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_0B)) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + if (msgCtx->unk_E3F2 == OCARINA_SONG_SUNS) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_01; + } + } + } + sLastPlayedSong = 0xFF; + osSyncPrintf("OCARINA_MODE=%d chk_ocarina_no=%d\n", globalCtx->msgCtx.ocarinaMode, msgCtx->unk_E3F2); + break; + case MSGMODE_PAUSED: + break; + default: + msgCtx->lastOcaNoteIdx = OCARINA_NOTE_INVALID; + break; + } +} + +void Message_SetTables(void) { + sNesMessageEntryTablePtr = sNesMessageEntryTable; + sGerMessageEntryTablePtr = sGerMessageEntryTable; + sFraMessageEntryTablePtr = sFraMessageEntryTable; + sStaffMessageEntryTablePtr = sStaffMessageEntryTable; +} + +// Appears to be file padding +UNK_TYPE D_80153D7C = 0x00000000; + +// This should be part of z_game_over.c, but cannot be moved there as the entire +// late_rodata section of this file is in the way +s16 gGameOverTimer = 0; diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c index fb074315ee..96ef33c18b 100644 --- a/src/code/z_onepointdemo.c +++ b/src/code/z_onepointdemo.c @@ -227,8 +227,8 @@ s32 OnePointCutscene_SetInfo(GlobalContext* globalCtx, s16 camIdx, s16 csId, Act s16 sp7E; s16 sp7C; - func_8002F374(globalCtx, &player->actor, &sp82, &sp7E); - func_8002F374(globalCtx, actor, &sp80, &sp7C); + Actor_GetScreenPos(globalCtx, &player->actor, &sp82, &sp7E); + Actor_GetScreenPos(globalCtx, actor, &sp80, &sp7C); if ((sp82 > 0) && (sp82 < 320) && (sp7E > 0) && (sp7E < 240) && (sp80 > 0) && (sp80 < 320) && (sp7C > 0) && (sp7C < 240) && !OnePointCutscene_BgCheckLineTest(&globalCtx->colCtx, &actor->focus.pos, &player->actor.focus.pos)) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 26a926126f..c0d674e7cf 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -4,6 +4,11 @@ #include "textures/do_action_static/do_action_static.h" #include "textures/icon_item_static/icon_item_static.h" +// TODO extract this information from the texture definitions themselves +#define DO_ACTION_TEX_WIDTH 48 +#define DO_ACTION_TEX_HEIGHT 16 +#define DO_ACTION_TEX_SIZE ((DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT) / 2) // (sizeof(gCheckDoActionENGTex)) + typedef struct { /* 0x00 */ u8 scene; /* 0x01 */ u8 flags1; @@ -700,7 +705,7 @@ void func_80083108(GlobalContext* globalCtx) { gSaveContext.buttonStatus[3] = BTN_DISABLED; Interface_ChangeAlpha(50); } - } else if (msgCtx->msgMode == 0) { + } else if (msgCtx->msgMode == MSGMODE_NONE) { if ((func_8008F2F8(globalCtx) >= 2) && (func_8008F2F8(globalCtx) < 5)) { if (gSaveContext.buttonStatus[0] != BTN_DISABLED) { sp28 = 1; @@ -2031,30 +2036,32 @@ void func_80086D5C(s32* buf, u16 size) { } } -void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 arg2) { +void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 loadOffset) { static void* sDoActionTextures[] = { gAttackDoActionENGTex, gCheckDoActionENGTex }; - if (action >= 0x1D) { - action = 0x0A; + if (action >= DO_ACTION_MAX) { + action = DO_ACTION_NONE; } - if (gSaveContext.language != 0) { - action += 0x1D; + if (gSaveContext.language != LANGUAGE_ENG) { + action += DO_ACTION_MAX; } - if (gSaveContext.language == 2) { - action += 0x1D; + if (gSaveContext.language == LANGUAGE_FRA) { + action += DO_ACTION_MAX; } - if ((action != 0x0A) && (action != 0x27) && (action != 0x44)) { + if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE) && + (action != 2 * DO_ACTION_MAX + DO_ACTION_NONE)) { osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK); - DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, interfaceCtx->doActionSegment + (arg2 * 0x180), - (u32)_do_action_staticSegmentRomStart + (action * 0x180), 0x180, 0, - &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 2145); + DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, + interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE), + (u32)_do_action_staticSegmentRomStart + (action * DO_ACTION_TEX_SIZE), DO_ACTION_TEX_SIZE, + 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 2145); osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK); } else { gSegments[7] = VIRTUAL_TO_PHYSICAL(interfaceCtx->doActionSegment); - func_80086D5C(SEGMENTED_TO_VIRTUAL(sDoActionTextures[arg2]), 0x180 / 4); + func_80086D5C(SEGMENTED_TO_VIRTUAL(sDoActionTextures[loadOffset]), DO_ACTION_TEX_SIZE / 4); } } @@ -2098,20 +2105,20 @@ void Interface_SetNaviCall(GlobalContext* globalCtx, u16 naviCallState) { void Interface_LoadActionLabelB(GlobalContext* globalCtx, u16 action) { InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; - if (gSaveContext.language != 0) { - action += 0x1D; + if (gSaveContext.language != LANGUAGE_ENG) { + action += DO_ACTION_MAX; } - if (gSaveContext.language == 2) { - action += 0x1D; + if (gSaveContext.language == LANGUAGE_FRA) { + action += DO_ACTION_MAX; } interfaceCtx->unk_1FC = action; osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK); - DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, interfaceCtx->doActionSegment + 0x180, - (u32)_do_action_staticSegmentRomStart + (action * 0x180), 0x180, 0, &interfaceCtx->loadQueue, - NULL, "../z_parameter.c", 2228); + DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE, + (u32)_do_action_staticSegmentRomStart + (action * DO_ACTION_TEX_SIZE), DO_ACTION_TEX_SIZE, 0, + &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 2228); osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK); interfaceCtx->unk_1FA = 1; @@ -2445,9 +2452,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) { break; case 7: - if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && (msgCtx->msgMode == 0) && - (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && (globalCtx->sceneLoadFlag == 0) && - (globalCtx->transitionMode == 0) && !Gameplay_InCsMode(globalCtx)) { + if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && + (msgCtx->msgMode == MSGMODE_NONE) && (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && + (globalCtx->sceneLoadFlag == 0) && (globalCtx->transitionMode == 0) && !Gameplay_InCsMode(globalCtx)) { if ((gSaveContext.magic == 0) || ((func_8008F2F8(globalCtx) >= 2) && (func_8008F2F8(globalCtx) < 5)) || ((gSaveContext.equips.buttonItems[1] != ITEM_LENS) && (gSaveContext.equips.buttonItems[2] != ITEM_LENS) && @@ -2633,8 +2640,9 @@ void func_80088B34(s16 arg0) { void Interface_DrawActionLabel(GraphicsContext* gfxCtx, void* texture) { OPEN_DISPS(gfxCtx, "../z_parameter.c", 2820); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, texture, G_IM_FMT_IA, 48, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(OVERLAY_DISP++, texture, G_IM_FMT_IA, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0); @@ -2700,13 +2708,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) { gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + 0x300, G_IM_FMT_IA, 48, 16, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE * 2, G_IM_FMT_IA, + DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); dxdy = (1 << 10) / (R_START_LABEL_DD(gSaveContext.language) / 100.0f); - width = 48.0f / (R_START_LABEL_DD(gSaveContext.language) / 100.0f); - height = 16.0f / (R_START_LABEL_DD(gSaveContext.language) / 100.0f); + width = DO_ACTION_TEX_WIDTH / (R_START_LABEL_DD(gSaveContext.language) / 100.0f); + height = DO_ACTION_TEX_HEIGHT / (R_START_LABEL_DD(gSaveContext.language) / 100.0f); gSPTextureRectangle( OVERLAY_DISP++, R_START_LABEL_X(gSaveContext.language) << 2, R_START_LABEL_Y(gSaveContext.language) << 2, (R_START_LABEL_X(gSaveContext.language) + width) << 2, @@ -3164,15 +3172,16 @@ void Interface_Draw(GlobalContext* globalCtx) { PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->bAlpha); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + 0x180, G_IM_FMT_IA, 48, 16, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE, G_IM_FMT_IA, + DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); R_B_LABEL_DD = (1 << 10) / (WREG(37 + gSaveContext.language) / 100.0f); gSPTextureRectangle(OVERLAY_DISP++, R_B_LABEL_X(gSaveContext.language) << 2, - R_B_LABEL_Y(gSaveContext.language) << 2, (R_B_LABEL_X(gSaveContext.language) + 48) << 2, - (R_B_LABEL_Y(gSaveContext.language) + 16) << 2, G_TX_RENDERTILE, 0, 0, R_B_LABEL_DD, - R_B_LABEL_DD); + R_B_LABEL_Y(gSaveContext.language) << 2, + (R_B_LABEL_X(gSaveContext.language) + DO_ACTION_TEX_WIDTH) << 2, + (R_B_LABEL_Y(gSaveContext.language) + DO_ACTION_TEX_HEIGHT) << 2, G_TX_RENDERTILE, 0, 0, + R_B_LABEL_DD, R_B_LABEL_DD); } gDPPipeSync(OVERLAY_DISP++); @@ -3239,7 +3248,7 @@ void Interface_Draw(GlobalContext* globalCtx) { if ((interfaceCtx->unk_1EC < 2) || (interfaceCtx->unk_1EC == 3)) { Interface_DrawActionLabel(globalCtx->state.gfxCtx, interfaceCtx->doActionSegment); } else { - Interface_DrawActionLabel(globalCtx->state.gfxCtx, interfaceCtx->doActionSegment + 0x180); + Interface_DrawActionLabel(globalCtx->state.gfxCtx, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE); } gDPPipeSync(OVERLAY_DISP++); @@ -3355,7 +3364,7 @@ void Interface_Draw(GlobalContext* globalCtx) { } } - if ((gSaveContext.timer2State == 5) && (func_8010BDBC(&globalCtx->msgCtx) == 5)) { + if ((gSaveContext.timer2State == 5) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT)) { // Trade quest timer reached 0 D_8015FFE6 = 40; gSaveContext.cutsceneIndex = 0; @@ -3393,7 +3402,7 @@ void Interface_Draw(GlobalContext* globalCtx) { } if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && - (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == 0) && + (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) && !(player->stateFlags2 & 0x01000000) && (globalCtx->sceneLoadFlag == 0) && (globalCtx->transitionMode == 0) && !Gameplay_InCsMode(globalCtx) && (gSaveContext.minigameState != 1) && (globalCtx->shootingGalleryStatus <= 1) && @@ -3474,7 +3483,7 @@ void Interface_Draw(GlobalContext* globalCtx) { } } - if ((gSaveContext.timer1State >= 3) && (msgCtx->unk_E300 == 0)) { + if ((gSaveContext.timer1State >= 3) && (msgCtx->msgLength == 0)) { D_8015FFE0--; if (D_8015FFE0 == 0) { if (gSaveContext.timer1Value != 0) { @@ -3659,7 +3668,7 @@ void Interface_Draw(GlobalContext* globalCtx) { D_8015FFE6 = 40; gSaveContext.timer2State = 5; gSaveContext.cutsceneIndex = 0; - func_8010B680(globalCtx, 0x71B0, NULL); + Message_StartTextbox(globalCtx, 0x71B0, NULL); func_8002DF54(globalCtx, NULL, 8); } else { D_8015FFE6 = 40; @@ -3683,7 +3692,7 @@ void Interface_Draw(GlobalContext* globalCtx) { gSaveContext.timer2Value++; if (gSaveContext.eventInf[1] & 1) { if (gSaveContext.timer2Value == 240) { - func_8010B680(globalCtx, 0x6083, NULL); + Message_StartTextbox(globalCtx, 0x6083, NULL); gSaveContext.eventInf[1] &= ~1; gSaveContext.timer2State = 0; } @@ -3799,20 +3808,21 @@ void Interface_Update(GlobalContext* globalCtx) { Input* debugInput = &globalCtx->state.input[2]; if (CHECK_BTN_ALL(debugInput->press.button, BTN_DLEFT)) { - gSaveContext.language = 0; + gSaveContext.language = LANGUAGE_ENG; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DUP)) { - gSaveContext.language = 1; + gSaveContext.language = LANGUAGE_GER; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DRIGHT)) { - gSaveContext.language = 2; + gSaveContext.language = LANGUAGE_FRA; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); } if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0)) { if ((gSaveContext.minigameState == 1) || (gSaveContext.sceneSetupIndex < 4) || ((globalCtx->sceneNum == SCENE_SPOT20) && (gSaveContext.sceneSetupIndex == 4))) { - if ((msgCtx->msgMode == 0) || ((msgCtx->msgMode != 0) && (globalCtx->sceneNum == SCENE_BOWLING))) { + if ((msgCtx->msgMode == MSGMODE_NONE) || + ((msgCtx->msgMode != MSGMODE_NONE) && (globalCtx->sceneNum == SCENE_BOWLING))) { if (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) { func_80083108(globalCtx); } @@ -3952,7 +3962,7 @@ void Interface_Update(GlobalContext* globalCtx) { HealthMeter_Update(globalCtx); if ((gSaveContext.timer1State >= 3) && (globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && - (msgCtx->msgMode == 0) && !(player->stateFlags2 & 0x01000000) && (globalCtx->sceneLoadFlag == 0) && + (msgCtx->msgMode == MSGMODE_NONE) && !(player->stateFlags2 & 0x01000000) && (globalCtx->sceneLoadFlag == 0) && (globalCtx->transitionMode == 0) && !Gameplay_InCsMode(globalCtx)) {} if (gSaveContext.rupeeAccumulator != 0) { @@ -4002,8 +4012,8 @@ void Interface_Update(GlobalContext* globalCtx) { interfaceCtx->unk_1EC = 0; interfaceCtx->unk_1EE = interfaceCtx->unk_1F0; action = interfaceCtx->unk_1EE; - if ((action == 0x1D) || (action == 0x1E)) { - action = 0xA; + if ((action == DO_ACTION_MAX) || (action == DO_ACTION_MAX + 1)) { + action = DO_ACTION_NONE; } Interface_LoadActionLabel(interfaceCtx, action, 0); } @@ -4022,8 +4032,8 @@ void Interface_Update(GlobalContext* globalCtx) { interfaceCtx->unk_1EC = 0; interfaceCtx->unk_1EE = interfaceCtx->unk_1F0; action = interfaceCtx->unk_1EE; - if ((action == 0x1D) || (action == 0x1E)) { - action = 0xA; + if ((action == DO_ACTION_MAX) || (action == DO_ACTION_MAX + 1)) { + action = DO_ACTION_NONE; } Interface_LoadActionLabel(interfaceCtx, action, 0); } @@ -4032,9 +4042,9 @@ void Interface_Update(GlobalContext* globalCtx) { WREG(7) = interfaceCtx->unk_1F4; - if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && (msgCtx->msgMode == 0) && - (globalCtx->sceneLoadFlag == 0) && (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && - (globalCtx->transitionMode == 0) && + if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && + (msgCtx->msgMode == MSGMODE_NONE) && (globalCtx->sceneLoadFlag == 0) && + (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && (globalCtx->transitionMode == 0) && ((globalCtx->csCtx.state == CS_STATE_IDLE) || !Player_InCsMode(globalCtx))) { if ((gSaveContext.magicAcquired != 0) && (gSaveContext.magicLevel == 0)) { gSaveContext.magicLevel = gSaveContext.doubleMagic + 1; @@ -4100,8 +4110,9 @@ void Interface_Update(GlobalContext* globalCtx) { if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) { // exit out of ocarina mode after suns song finishes playing - if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.sunsSongState == SUNSSONG_START)) { - globalCtx->msgCtx.unk_E3EE = 4; + if ((msgCtx->ocarinaAction != OCARINA_ACTION_CHECK_NOWARP_DONE) && + (gSaveContext.sunsSongState == SUNSSONG_START)) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } // handle suns song in areas where time moves @@ -4119,12 +4130,12 @@ void Interface_Update(GlobalContext* globalCtx) { if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) { gSaveContext.sunsSongState = SUNSSONG_INACTIVE; gTimeIncrement = sPrevTimeIncrement; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } } else if (gSaveContext.dayTime > 0xC001) { gSaveContext.sunsSongState = SUNSSONG_INACTIVE; gTimeIncrement = sPrevTimeIncrement; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } } else if ((globalCtx->roomCtx.curRoom.unk_03 != 1) && (interfaceCtx->restrictions.sunsSong != 3)) { if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime < 0xC001)) { diff --git a/src/code/z_play.c b/src/code/z_play.c index b7fbe08620..3a168f0b4a 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -226,7 +226,7 @@ void Gameplay_Init(GameState* thisx) { func_8005AC48(&globalCtx->mainCamera, 0xFF); Sram_Init(globalCtx, &globalCtx->sramCtx); func_80112098(globalCtx); - func_80110F68(globalCtx); + Message_Init(globalCtx); GameOver_Init(globalCtx); func_8006BA00(globalCtx); Effect_InitContext(globalCtx); @@ -311,7 +311,7 @@ void Gameplay_Init(GameState* thisx) { gSaveContext.dogIsLost = true; if (Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) || Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) { - func_8010B680(globalCtx, 0x3066, NULL); + Message_StartTextbox(globalCtx, 0x3066, NULL); } gSaveContext.nextDayTime = 0xFFFE; } else { @@ -773,7 +773,7 @@ void Gameplay_Update(GlobalContext* globalCtx) { LOG_NUM("1", 1, "../z_play.c", 3542); } - if ((gSaveContext.gameMode == 0) && (globalCtx->msgCtx.msgMode == 0) && + if ((gSaveContext.gameMode == 0) && (globalCtx->msgCtx.msgMode == MSGMODE_NONE) && (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE)) { KaleidoSetup_Update(globalCtx); } @@ -951,7 +951,7 @@ void Gameplay_Update(GlobalContext* globalCtx) { LOG_NUM("1", 1, "../z_play.c", 3733); } - func_8010F6F0(globalCtx); + Message_Update(globalCtx); } if (1 && HREG(63)) { @@ -1045,7 +1045,7 @@ void Gameplay_DrawOverlayElements(GlobalContext* globalCtx) { Interface_Draw(globalCtx); } - func_8010F58C(globalCtx); + Message_Draw(globalCtx); if (globalCtx->gameOverCtx.state != GAMEOVER_INACTIVE) { GameOver_FadeInLights(globalCtx); diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 69cf11f671..3625d50625 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -605,7 +605,7 @@ s32 func_8008F2F8(GlobalContext* globalCtx) { (((var == 0) && (this->currentTunic != PLAYER_TUNIC_GORON)) || (((var == 1) || (var == 3)) && (this->currentBoots == PLAYER_BOOTS_IRON) && (this->currentTunic != PLAYER_TUNIC_ZORA)))) { - func_8010B680(globalCtx, triggerEntry->textId, NULL); + Message_StartTextbox(globalCtx, triggerEntry->textId, NULL); gSaveContext.textTriggerFlags |= triggerEntry->flag; } } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index f61802f2ca..d6fcf566c9 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -247,7 +247,7 @@ void func_80098904(GlobalContext* globalCtx, SceneCmd* cmd) { globalCtx->roomCtx.curRoom.unk_03 = cmd->roomBehavior.gpFlag1; globalCtx->roomCtx.curRoom.unk_02 = cmd->roomBehavior.gpFlag2 & 0xFF; globalCtx->roomCtx.curRoom.showInvisActors = (cmd->roomBehavior.gpFlag2 >> 8) & 1; - globalCtx->msgCtx.unk_E40C = (cmd->roomBehavior.gpFlag2 >> 0xA) & 1; + globalCtx->msgCtx.disableWarpSongs = (cmd->roomBehavior.gpFlag2 >> 0xA) & 1; } // Scene Command 0x0A: Mesh Header diff --git a/src/code/z_sram.c b/src/code/z_sram.c index 0305292933..8dc83b8c1d 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -22,7 +22,7 @@ typedef struct { /* 0x20 */ u8 doubleMagic; /* 0x21 */ u8 doubleDefense; /* 0x22 */ u8 bgsFlag; - /* 0x23 */ u8 ocarinaGameReward; + /* 0x23 */ u8 ocarinaGameRoundNum; /* 0x24 */ ItemEquips childEquips; /* 0x2E */ ItemEquips adultEquips; /* 0x38 */ u32 unk_38; // this may be incorrect, currently used for alignement @@ -113,7 +113,7 @@ static SavePlayerData sNewSavePlayerData = { 0, // doubleMagic 0, // doubleDefense 0, // bgsFlag - 0, // ocarinaGameReward + 0, // ocarinaGameRoundNum { { ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE }, // buttonItems { SLOT_NONE, SLOT_NONE, SLOT_NONE }, // cButtonSlots @@ -196,7 +196,7 @@ static SavePlayerData sDebugSavePlayerData = { 0, // doubleMagic 0, // doubleDefense 0, // bgsFlag - 0, // ocarinaGameReward + 0, // ocarinaGameRoundNum { { ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE }, // buttonItems { SLOT_NONE, SLOT_NONE, SLOT_NONE }, // cButtonSlots @@ -845,8 +845,8 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { gSaveContext.zTargetSetting = sramCtx->readBuff[SRAM_HEADER_ZTARGET] & 1; gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; - if (gSaveContext.language > 2) { - gSaveContext.language = 0; + if (gSaveContext.language >= LANGUAGE_MAX) { + gSaveContext.language = LANGUAGE_ENG; sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; Sram_WriteSramHeader(sramCtx); } diff --git a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c index d1324e002d..3da33f35b1 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -182,7 +182,8 @@ void ArrowFire_Fly(ArrowFire* this, GlobalContext* globalCtx) { void ArrowFire_Update(Actor* thisx, GlobalContext* globalCtx) { ArrowFire* this = THIS; - if (globalCtx->msgCtx.msgMode == 0xD || globalCtx->msgCtx.msgMode == 0x11) { + if (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK || + globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED) { Actor_Kill(&this->actor); } else { this->actionFunc(this, globalCtx); diff --git a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c index 07d8312a30..45c7af08b5 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -183,7 +183,8 @@ void ArrowIce_Fly(ArrowIce* this, GlobalContext* globalCtx) { void ArrowIce_Update(Actor* thisx, GlobalContext* globalCtx) { ArrowIce* this = THIS; - if (globalCtx->msgCtx.msgMode == 0xD || globalCtx->msgCtx.msgMode == 0x11) { + if (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK || + globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED) { Actor_Kill(&this->actor); } else { this->actionFunc(this, globalCtx); diff --git a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c index fd1d1415ea..8dff4d9e0f 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -181,7 +181,8 @@ void ArrowLight_Fly(ArrowLight* this, GlobalContext* globalCtx) { void ArrowLight_Update(Actor* thisx, GlobalContext* globalCtx) { ArrowLight* this = THIS; - if (globalCtx->msgCtx.msgMode == 0xD || globalCtx->msgCtx.msgMode == 0x11) { + if (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK || + globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED) { Actor_Kill(&this->actor); } else { this->actionFunc(this, globalCtx); diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c index ab1a18e732..023ba46499 100644 --- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c +++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c @@ -182,7 +182,7 @@ void BgDyYoseizo_Bob(BgDyYoseizo* this, GlobalContext* globalCtx) { void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, GlobalContext* globalCtx) { if (Flags_GetSwitch(globalCtx, 0x38)) { - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (!gSaveContext.magicAcquired && (this->fountainType != FAIRY_UPGRADE_MAGIC)) { Actor_Kill(&this->actor); @@ -204,7 +204,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 1); // "Mode" - osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, globalCtx->msgCtx.unk_E3EE); + osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, globalCtx->msgCtx.ocarinaMode); givingReward = false; if (globalCtx->sceneNum != SCENE_DAIYOUSEI_IZUMI) { @@ -376,8 +376,8 @@ void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* glo } this->actor.textId = 0xDB; - this->dialogState = 5; - func_8010B680(globalCtx, this->actor.textId, NULL); + this->dialogState = TEXT_STATE_EVENT; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); BgDyYoseizo_SpawnParticles(this, globalCtx, 0); this->actionFunc = BgDyYoseizo_GreetPlayer_NoReward; } @@ -392,8 +392,8 @@ void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCt SkelAnime_Update(&this->skelAnime); - if ((this->dialogState == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((this->dialogState == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); Interface_ChangeAlpha(5); this->actionFunc = BgDyYoseizo_SetupHealPlayer_NoReward; } @@ -483,8 +483,8 @@ void BgDyYoseizo_HealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx if (this->healingTimer == 1) { this->actor.textId = 0xDA; - this->dialogState = 5; - func_8010B720(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; + Message_ContinueTextbox(globalCtx, this->actor.textId); this->actionFunc = BgDyYoseizo_SayFarewell_NoReward; return; } @@ -500,8 +500,8 @@ void BgDyYoseizo_SayFarewell_NoReward(BgDyYoseizo* this, GlobalContext* globalCt SkelAnime_Update(&this->skelAnime); - if ((this->dialogState == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((this->dialogState == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->mouthState = 0; this->actionFunc = BgDyYoseizo_SetupSpinShrink; func_8005B1A4(GET_ACTIVE_CAM(globalCtx)); diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 0b8dbb0871..c8e6675676 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -88,7 +88,7 @@ void BgGanonOtyuka_Init(Actor* thisx, GlobalContext* globalCtx2) { void BgGanonOtyuka_Destroy(Actor* thisx, GlobalContext* globalCtx2) { BgGanonOtyuka* this = THIS; GlobalContext* globalCtx = globalCtx2; - + DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); osSyncPrintf(VT_FGCOL(GREEN)); diff --git a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c index 6260f76785..7515e8e545 100644 --- a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c +++ b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c @@ -74,7 +74,7 @@ void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx) { this->dyna.unk_150 = 0.0f; player->stateFlags2 &= ~0x10; if (!Gameplay_InCsMode(globalCtx)) { - func_8010B680(globalCtx, 0x5073, NULL); + Message_StartTextbox(globalCtx, 0x5073, NULL); this->dyna.actor.params = 100; this->actionFunc = func_8087BAE4; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c index cef646156c..3ef533cba1 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c +++ b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c @@ -132,7 +132,7 @@ void BgHakaShip_Move(BgHakaShip* this, GlobalContext* globalCtx) { if (distanceFromHome > 7600.0f && !Gameplay_InCsMode(globalCtx)) { this->counter = 40; this->dyna.actor.speedXZ = 0.0f; - func_8010B680(globalCtx, 0x5071, NULL); + Message_StartTextbox(globalCtx, 0x5071, NULL); this->actionFunc = BgHakaShip_SetupCrash; } else { Math_StepToF(&this->dyna.actor.speedXZ, 4.0f, 0.2f); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c index 97f384215e..d88f291c81 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c @@ -239,7 +239,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, GlobalContext* globalCtx) { if (Math_StepToF(&this->actor.world.pos.y, this->targetY, 5.0f)) { globalCtx->roomCtx.unk_74[0] = 0; this->actionFunc = BgMizuWater_WaitForAction; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } BgMizuWater_SetWaterBoxesHeight(globalCtx->colCtx.colHeader->waterBoxes, this->actor.world.pos.y); break; diff --git a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c index 4777c7a22a..2251262e37 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c @@ -189,7 +189,8 @@ void func_808A3D58(BgMoriHineri* this, GlobalContext* globalCtx) { this->actionFunc = func_808A3E54; mainCamChildIdx = globalCtx->cameraPtrs[MAIN_CAM]->childCamIdx; - if ((mainCamChildIdx != SUBCAM_FREE) && (globalCtx->cameraPtrs[mainCamChildIdx]->setting == CAM_SET_CS_TWISTED_HALLWAY)) { + if ((mainCamChildIdx != SUBCAM_FREE) && + (globalCtx->cameraPtrs[mainCamChildIdx]->setting == CAM_SET_CS_TWISTED_HALLWAY)) { OnePointCutscene_EndCutscene(globalCtx, mainCamChildIdx); } OnePointCutscene_Init(globalCtx, 3260, 40, &this->dyna.actor, MAIN_CAM); diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 7ec93d3a12..01350b78ff 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -241,9 +241,9 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { this->unk_3B0.y = 1086.0f; this->unk_3B0.z = -200.0f; if (this->unk_398 == 150) { - func_8010B680(globalCtx, 0x70D3, NULL); + Message_StartTextbox(globalCtx, 0x70D3, NULL); } - if (this->unk_398 > 250 && (func_8010BDBC(&globalCtx->msgCtx) == 0)) { + if (this->unk_398 > 250 && Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { this->unk_39C = 2; this->unk_398 = 0; this->unk_410.x = 0.0f; @@ -262,7 +262,7 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { player->actor.shape.rot.y = -0x5000; sZelda->actor.shape.rot.y = -0x5000; if (this->unk_398 == 60) { - func_8010B680(globalCtx, 0x70D4, NULL); + Message_StartTextbox(globalCtx, 0x70D4, NULL); } if (this->unk_398 == 40) { sZelda->unk_3C8 = 1; @@ -284,7 +284,7 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { } else { this->unk_3B0.y = player->actor.world.pos.y + 47.0f + 7.0f; } - if ((this->unk_398 > 170) && (func_8010BDBC(&globalCtx->msgCtx) == 0)) { + if ((this->unk_398 > 170) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { this->unk_39C = 3; this->unk_398 = 0; this->unk_410.x = 0.0f; @@ -331,7 +331,7 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { case 5: this->unk_339 = 4; if (this->actor.xzDistToPlayer < 500.0f) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->unk_39C = 10; this->unk_398 = 0; func_80064520(globalCtx, &globalCtx->csCtx); @@ -825,7 +825,7 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { break; case 28: if (this->unk_398 == 5) { - func_8010B680(globalCtx, 0x70D6, NULL); + Message_StartTextbox(globalCtx, 0x70D6, NULL); } if (D_8090EB30 != NULL) { this->unk_3A4.x = D_8090EB30->world.pos.x - 20.0f; @@ -834,7 +834,7 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) { Math_ApproachF(&this->unk_3B0.x, D_8090EB30->world.pos.x, 0.2f, 50.0f); Math_ApproachF(&this->unk_3B0.y, D_8090EB30->world.pos.y, 0.2f, 50.0f); Math_ApproachF(&this->unk_3B0.z, D_8090EB30->world.pos.z, 0.2f, 50.0f); - if ((this->unk_398 > 40) && (func_8010BDBC(&globalCtx->msgCtx) == 0)) { + if ((this->unk_398 > 40) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { this->unk_39C = 29; this->unk_398 = 0; Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_0147E0, 0.0f); @@ -1329,9 +1329,9 @@ void func_80900890(BossGanon2* this, GlobalContext* globalCtx) { Math_ApproachZeroF(&this->unk_324, 1.0f, 5.0f); Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 1.0f / 51); if (this->unk_1A2[1] == 80) { - func_8010B680(globalCtx, 0x70D7, NULL); + Message_StartTextbox(globalCtx, 0x70D7, NULL); } - if ((this->unk_1A2[1] < 30) && (func_8010BDBC(&globalCtx->msgCtx) == 0)) { + if ((this->unk_1A2[1] < 30) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { temp_v0 = Gameplay_GetCamera(globalCtx, MAIN_CAM); temp_v0->eye = this->unk_3A4; temp_v0->eyeNext = this->unk_3A4; @@ -1558,9 +1558,9 @@ void func_8090120C(BossGanon2* this, GlobalContext* globalCtx) { this->unk_3B0.y = sZelda->actor.world.pos.y + 40.0f; this->unk_3B0.z = sZelda->actor.world.pos.z; if (this->unk_398 == 10) { - func_8010B680(globalCtx, 0x70D8, NULL); + Message_StartTextbox(globalCtx, 0x70D8, NULL); } - if ((this->unk_398 > 80) && (func_8010BDBC(&globalCtx->msgCtx) == 0)) { + if ((this->unk_398 > 80) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { this->unk_39C = 4; this->unk_398 = 0; } @@ -1741,7 +1741,7 @@ void func_8090120C(BossGanon2* this, GlobalContext* globalCtx) { this->unk_39C = 9; this->unk_398 = 0; sZelda->unk_3C8 = 11; - func_8010B680(globalCtx, 0x70D9, NULL); + Message_StartTextbox(globalCtx, 0x70D9, NULL); this->unk_336 = 0; globalCtx->envCtx.unk_D8 = 0.0f; } diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 92869fc301..43c25c55c3 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -1035,7 +1035,7 @@ void BossGanondrof_Death(BossGanondrof* this, GlobalContext* globalCtx) { GND_BOSSROOM_CENTER_X, GND_BOSSROOM_CENTER_Y + 3.0f, GND_BOSSROOM_CENTER_Z, 0x4000, 0, 0, FHGFIRE_WARP_DEATH); this->actor.child = &horseTemp->actor; - func_8010B680(globalCtx, 0x108E, NULL); + Message_StartTextbox(globalCtx, 0x108E, NULL); } this->actor.shape.rot.y -= 0xC8; diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index a26dd2c5ba..43f33e4b12 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -1215,7 +1215,7 @@ void BossMo_IntroCs(BossMo* this, GlobalContext* globalCtx) { switch (this->csState) { case MO_INTRO_WAIT: if (this->timers[0] == 1) { - func_8010B680(globalCtx, 0x403F, NULL); + Message_StartTextbox(globalCtx, 0x403F, NULL); } if (((fabsf(player->actor.world.pos.z - 180.0f) < 40.0f) && (fabsf(player->actor.world.pos.x - 180.0f) < 40.0f)) || @@ -1239,7 +1239,7 @@ void BossMo_IntroCs(BossMo* this, GlobalContext* globalCtx) { sMorphaTent1->work[MO_TENT_ACTION_STATE] = MO_TENT_READY; sMorphaTent1->timers[0] = 30000; Audio_QueueSeqCmd(0x103200FF); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } else { break; } diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index da1ba5b9a8..1af931c2d5 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -1518,11 +1518,11 @@ void BossTw_TwinrovaMergeCS(BossTw* this, GlobalContext* globalCtx) { // fallthrough case 1: if (this->work[CS_TIMER_2] == 20) { - func_8010B680(globalCtx, 0x6059, NULL); + Message_StartTextbox(globalCtx, 0x6059, NULL); } if (this->work[CS_TIMER_2] == 80) { - func_8010B680(globalCtx, 0x605A, NULL); + Message_StartTextbox(globalCtx, 0x605A, NULL); } this->subCamAt.x = 0.0f; @@ -1832,7 +1832,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) { updateCam = 1; if (this->work[CS_TIMER_1] == 30) { - func_8010B680(globalCtx, 0x6048, NULL); + Message_StartTextbox(globalCtx, 0x6048, NULL); } Math_ApproachF(&this->subCamUpdateRate, 0.01f, 1.0f, 0.0001f); @@ -1910,7 +1910,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) { Math_ApproachF(&this->subCamUpdateRate, 1.0f, 1.0f, 0.02f); if (this->work[CS_TIMER_1] == 30) { - func_8010B680(globalCtx, 0x6049, NULL); + Message_StartTextbox(globalCtx, 0x6049, NULL); } if (this->work[CS_TIMER_1] > 80) { @@ -2074,7 +2074,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) { Math_ApproachF(&this->subCamUpdateRate, 1.0f, 1.0f, 0.02f); if (this->work[CS_TIMER_1] == 30) { - func_8010B680(globalCtx, 0x604A, NULL); + Message_StartTextbox(globalCtx, 0x604A, NULL); } if (this->work[CS_TIMER_1] > 80) { @@ -2531,7 +2531,7 @@ void BossTw_DeathCSMsgSfx(BossTw* this, GlobalContext* globalCtx) { } if (msgId2 != 0) { - func_8010B680(globalCtx, msgId2, NULL); + Message_StartTextbox(globalCtx, msgId2, NULL); if (sp35) { D_8094C876 = 10; @@ -2541,7 +2541,7 @@ void BossTw_DeathCSMsgSfx(BossTw* this, GlobalContext* globalCtx) { } if (msgId1 != 0) { - func_8010B680(globalCtx, msgId1, NULL); + Message_StartTextbox(globalCtx, msgId1, NULL); } switch (kotakeAnim) { diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index fb59c2e298..16565c5e7f 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -850,7 +850,7 @@ s32 func_80986A5C(DemoIm* this, GlobalContext* globalCtx) { s32 func_80986AD0(DemoIm* this, GlobalContext* globalCtx) { this->actor.flags |= 9; - if (!func_8002F194(&this->actor, globalCtx)) { + if (!Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actor.textId = 0x708E; func_8002F2F4(&this->actor, globalCtx); } else { @@ -860,7 +860,7 @@ s32 func_80986AD0(DemoIm* this, GlobalContext* globalCtx) { } void func_80986B2C(GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { Player* player = GET_PLAYER(globalCtx); globalCtx->nextEntranceIndex = 0xCD; diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index 9bb2d7e358..381f677c9c 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -868,9 +868,9 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, GlobalContext* globalCtx) { this->unk_150[i].unk_18 * (0.018f * temp_f22), MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255); if (this->actor.params == DEMOKANKYO_WARP_OUT) { - gDPSetEnvColor(POLY_XLU_DISP++, sWarpSparkleEnvColors[globalCtx->msgCtx.unk_E3EC].r, - sWarpSparkleEnvColors[globalCtx->msgCtx.unk_E3EC].g, - sWarpSparkleEnvColors[globalCtx->msgCtx.unk_E3EC].b, 255); + gDPSetEnvColor(POLY_XLU_DISP++, sWarpSparkleEnvColors[globalCtx->msgCtx.lastPlayedSong].r, + sWarpSparkleEnvColors[globalCtx->msgCtx.lastPlayedSong].g, + sWarpSparkleEnvColors[globalCtx->msgCtx.lastPlayedSong].b, 255); } else { s8 respawnData = gSaveContext.respawn[1].data; gDPSetEnvColor(POLY_XLU_DISP++, sWarpSparkleEnvColors[respawnData].r, diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index 104d7e23d3..ac5fe22d64 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -573,13 +573,13 @@ void func_80999EE0(DoorWarp1* this, GlobalContext* globalCtx) { Gameplay_CameraSetAtEye(globalCtx, sRutoWarpSubCamId, &at, &eye); Gameplay_CameraSetFov(globalCtx, sRutoWarpSubCamId, 90.0f); this->rutoWarpState = WARP_BLUE_RUTO_STATE_TALKING; - func_8010B680(globalCtx, 0x4022, NULL); + Message_StartTextbox(globalCtx, 0x4022, NULL); DoorWarp1_SetupAction(this, func_80999FE4); } } void func_80999FE4(DoorWarp1* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { Audio_PlaySoundGeneral(NA_SE_EV_LINK_WARP, &this->actor.projectedPos, 4, &D_801333E0, &D_801333E0, &D_801333E8); OnePointCutscene_Init(globalCtx, 0x25E9, 999, &this->actor, MAIN_CAM); Gameplay_CopyCamera(globalCtx, -1, sRutoWarpSubCamId); diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index 5838b46fe1..f0c7fda56e 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -151,7 +151,7 @@ void ElfMsg_Update(Actor* thisx, GlobalContext* globalCtx) { ElfMsg* this = THIS; if (!ElfMsg_KillCheck(this, globalCtx)) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (((this->actor.params >> 8) & 0x3F) != 0x3F) { Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); } diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index a664f5b07d..128b588031 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -105,7 +105,7 @@ s32 ElfMsg2_GetMessageId(ElfMsg2* this) { void ElfMsg2_WaitForTextClose(ElfMsg2* this, GlobalContext* globalCtx) { s32 switchFlag; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { if (this->actor.world.rot.z != 1) { Actor_Kill(&this->actor); switchFlag = (this->actor.params >> 8) & 0x3F; @@ -122,7 +122,7 @@ void ElfMsg2_WaitForTextClose(ElfMsg2* this, GlobalContext* globalCtx) { * Runs while Navi text is not up. */ void ElfMsg2_WaitForTextRead(ElfMsg2* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextClose); } } diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 6cc87927e7..d3f6ce3ade 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -106,13 +106,13 @@ s32 EnAni_SetText(EnAni* this, GlobalContext* globalCtx, u16 textId) { } void func_809B04F0(EnAni* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { EnAni_SetupAction(this, func_809B064C); } } void func_809B0524(EnAni* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { EnAni_SetupAction(this, func_809B07F8); } } @@ -132,7 +132,7 @@ void func_809B0558(EnAni* this, GlobalContext* globalCtx) { } void func_809B05F0(EnAni* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { EnAni_SetupAction(this, func_809B0558); } func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 200.0f); @@ -153,7 +153,7 @@ void func_809B064C(EnAni* this, GlobalContext* globalCtx) { } yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->actor.textId == 0x5056) { EnAni_SetupAction(this, func_809B04F0); } else if (this->actor.textId == 0x5055) { @@ -179,7 +179,7 @@ void func_809B07F8(EnAni* this, GlobalContext* globalCtx) { u16 textId; yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->actor.textId == 0x5056) { EnAni_SetupAction(this, func_809B0524); } else if (this->actor.textId == 0x5055) { diff --git a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c index 7b90cc4a55..69eb9e2aa1 100644 --- a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c +++ b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c @@ -170,7 +170,7 @@ s32 func_809B55EC(EnAttackNiw* this, GlobalContext* globalCtx) { s16 sp1C; Actor_SetFocus(&this->actor, this->unk_2E4); - func_8002F374(globalCtx, &this->actor, &sp1E, &sp1C); + Actor_GetScreenPos(globalCtx, &this->actor, &sp1E, &sp1C); if ((this->actor.projectedPos.z < -20.0f) || (sp1E < 0) || (sp1E > SCREEN_WIDTH) || (sp1C < 0) || (sp1C > SCREEN_HEIGHT)) { return 0; @@ -205,7 +205,7 @@ void func_809B5670(EnAttackNiw* this, GlobalContext* globalCtx) { Math_ApproachF(&this->unk_2DC, 5000.0f, 1.0f, 100.0f); Actor_SetFocus(&this->actor, this->unk_2E4); - func_8002F374(globalCtx, &this->actor, &sp4E, &sp4C); + Actor_GetScreenPos(globalCtx, &this->actor, &sp4E, &sp4C); if (this->actor.bgCheckFlags & 8) { this->unk_2D4 = this->actor.yawTowardsPlayer; diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index da1cf32060..8865372b1b 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -92,7 +92,7 @@ void EnBomBowMan_SetupWaitAsleep(EnBomBowlMan* this, GlobalContext* globalCtx) { this->frameCount = (f32)Animation_GetLastFrame(&gChuGirlNoddingOffAnim); Animation_Change(&this->skelAnime, &gChuGirlNoddingOffAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP, -10.0f); this->actor.textId = 0xC0; - this->dialogState = 5; + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = EnBomBowMan_WaitAsleep; } @@ -101,7 +101,7 @@ void EnBomBowMan_WaitAsleep(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnBomBowMan_TalkAsleep; } else { yawDiff = ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)); @@ -115,8 +115,8 @@ void EnBomBowMan_WaitAsleep(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowMan_TalkAsleep(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->actionFunc = EnBomBowMan_WakeUp; } } @@ -133,7 +133,7 @@ void EnBomBowMan_BlinkAwake(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); if (frameCount == 30.0f) { - this->dialogState = 5; + this->dialogState = TEXT_STATE_EVENT; // Check for beaten Dodongo's Cavern if ((gSaveContext.eventChkInf[2] & 0x20) || BREG(2)) { @@ -142,7 +142,7 @@ void EnBomBowMan_BlinkAwake(EnBomBowlMan* this, GlobalContext* globalCtx) { this->actor.textId = 0x7058; } } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); if ((this->eyeTextureIndex == 0) && (this->eyeMode == CHU_GIRL_EYES_BLINK_RAPIDLY) && (this->blinkTimer == 0)) { // Blink twice, then move on @@ -157,8 +157,8 @@ void EnBomBowMan_BlinkAwake(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowMan_CheckBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->frameCount = (f32)Animation_GetLastFrame(&gChuGirlLeanOverCounterAnim); Animation_Change(&this->skelAnime, &gChuGirlLeanOverCounterAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP, -10.0f); @@ -170,8 +170,8 @@ void EnBomBowMan_CheckBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { this->actionFunc = EnBomBowMan_WaitNotBeatenDC; } else { this->actor.textId = 0x18; - this->dialogState = 4; - func_8010B720(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_CHOICE; + Message_ContinueTextbox(globalCtx, this->actor.textId); this->actionFunc = EnBomBowlMan_HandlePlayChoice; } } @@ -180,7 +180,7 @@ void EnBomBowMan_CheckBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowMan_WaitNotBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnBomBowMan_TalkNotBeatenDC; } else { func_8002F2CC(&this->actor, globalCtx, 120.0f); @@ -190,8 +190,8 @@ void EnBomBowMan_WaitNotBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowMan_TalkNotBeatenDC(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnBomBowMan_WaitNotBeatenDC; } } @@ -206,10 +206,10 @@ void EnBomBowMan_SetupRunGame(EnBomBowlMan* this, GlobalContext* globalCtx) { this->actor.textId = 0x1A; } - this->dialogState = 4; + this->dialogState = TEXT_STATE_CHOICE; } else { this->actor.textId = 0x19; - this->dialogState = 5; + this->dialogState = TEXT_STATE_EVENT; } this->actionFunc = EnBomBowMan_RunGame; @@ -252,7 +252,7 @@ void EnBomBowMan_RunGame(EnBomBowlMan* this, GlobalContext* globalCtx) { if (this->gameResult != 0) { // won or lost this->actor.textId = 0x1A; - this->dialogState = 4; + this->dialogState = TEXT_STATE_CHOICE; this->minigamePlayStatus = 0; if ((this->exItem != NULL) && (this->exItem->actor.update != NULL)) { @@ -262,14 +262,14 @@ void EnBomBowMan_RunGame(EnBomBowlMan* this, GlobalContext* globalCtx) { globalCtx->bombchuBowlingStatus = 0; this->playingAgain = true; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); if (this->gameResult == 2) { func_8002DF54(globalCtx, NULL, 8); } this->actionFunc = EnBomBowlMan_HandlePlayChoice; } else { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->minigamePlayStatus == 0) { this->actionFunc = EnBomBowlMan_HandlePlayChoice; } else { @@ -288,8 +288,8 @@ void EnBomBowMan_RunGame(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: // Yes @@ -302,13 +302,13 @@ void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, GlobalContext* globalCtx) if (!this->startedPlaying && !this->playingAgain) { this->actor.textId = 0x19; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = func_809C41FC; } else { this->actor.textId = 0x1B; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; OnePointCutscene_Init(globalCtx, 8010, -99, NULL, MAIN_CAM); func_8002DF54(globalCtx, NULL, 8); this->actionFunc = EnBomBowMan_SetupChooseShowPrize; @@ -316,8 +316,8 @@ void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, GlobalContext* globalCtx) } else { this->playingAgain = false; this->actor.textId = 0x85; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = func_809C41FC; } break; @@ -325,8 +325,8 @@ void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, GlobalContext* globalCtx) case 1: // No this->playingAgain = false; this->actor.textId = 0x2D; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = func_809C41FC; } } @@ -334,8 +334,8 @@ void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, GlobalContext* globalCtx) void func_809C41FC(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (((this->actor.textId == 0x2D) || (this->actor.textId == 0x85)) && Flags_GetSwitch(globalCtx, 0x38)) { Flags_UnsetSwitch(globalCtx, 0x38); @@ -343,8 +343,8 @@ void func_809C41FC(EnBomBowlMan* this, GlobalContext* globalCtx) { if (this->minigamePlayStatus == 1) { this->actor.textId = 0x1B; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; OnePointCutscene_Init(globalCtx, 8010, -99, NULL, MAIN_CAM); func_8002DF54(globalCtx, NULL, 8); this->actionFunc = EnBomBowMan_SetupChooseShowPrize; @@ -364,7 +364,7 @@ void EnBomBowMan_SetupChooseShowPrize(EnBomBowlMan* this, GlobalContext* globalC SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { pos.x = 148.0f; pos.y = 40.0f; pos.z = 300.0f; @@ -437,8 +437,8 @@ void EnBomBowMan_ChooseShowPrize(EnBomBowlMan* this, GlobalContext* globalCtx) { this->bowlPit->start = 1; this->minigamePlayStatus = 2; this->actor.textId = 0x405A; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; // Cycle through prizes in order this->prizeSelect++; @@ -452,8 +452,8 @@ void EnBomBowMan_ChooseShowPrize(EnBomBowlMan* this, GlobalContext* globalCtx) { void EnBomBowlMan_BeginPlayGame(EnBomBowlMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == this->dialogState) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == this->dialogState) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); func_8005B1A4(GET_ACTIVE_CAM(globalCtx)); this->startedPlaying = true; diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c b/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c index cf3242206d..d1956de9d7 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c @@ -105,8 +105,8 @@ void EnBomBowlPit_DetectHit(EnBomBowlPit* this, GlobalContext* globalCtx) { Gameplay_CameraSetAtEye(globalCtx, this->camId, &this->unk_180, &this->unk_18C); this->actor.textId = 0xF; - func_8010B680(globalCtx, this->actor.textId, NULL); - this->unk_154 = 5; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); + this->unk_154 = TEXT_STATE_EVENT; func_80078884(NA_SE_EV_HIT_SOUND); func_8002DF54(globalCtx, NULL, 8); this->status = 1; @@ -131,14 +131,14 @@ void EnBomBowlPit_CameraDollyIn(EnBomBowlPit* this, GlobalContext* globalCtx) { Gameplay_CameraSetAtEye(globalCtx, this->camId, &this->unk_180, &this->unk_18C); - if ((this->unk_154 == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((this->unk_154 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); } if ((fabsf(this->unk_18C.x - this->unk_198.x) < 5.0f) && (fabsf(this->unk_18C.y - this->unk_198.y) < 5.0f) && (fabsf(this->unk_18C.z - this->unk_198.z) < 5.0f) && (fabsf(this->unk_180.x - this->unk_1BC.x) < 5.0f) && (fabsf(this->unk_180.y - this->unk_1BC.y) < 5.0f) && (fabsf(this->unk_180.z - this->unk_1BC.z) < 5.0f)) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->timer = 30; this->actionFunc = EnBomBowlPit_SpawnPrize; } @@ -199,7 +199,7 @@ void EnBomBowlPit_WaitTillPrizeGiven(EnBomBowlPit* this, GlobalContext* globalCt } void EnBomBowlPit_Reset(EnBomBowlPit* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { // "Normal termination"/"completion" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); if (this->getItemId == GI_HEART_PIECE) { diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index f1f0c93258..f4142cad5e 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -303,11 +303,11 @@ void func_809C9700(EnBox* this, GlobalContext* globalCtx) { } if (this->unk_1FB == ENBOX_STATE_1) { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); this->unk_1FB = ENBOX_STATE_2; - } else if (this->unk_1FB == ENBOX_STATE_2 && globalCtx->msgCtx.unk_E3EE == 4) { - if ((globalCtx->msgCtx.unk_E3EC == 8 && this->type == ENBOX_TYPE_9) || - (globalCtx->msgCtx.unk_E3EC == 9 && this->type == ENBOX_TYPE_10)) { + } else if (this->unk_1FB == ENBOX_STATE_2 && globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + if ((globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_LULLABY && this->type == ENBOX_TYPE_9) || + (globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_SUNS && this->type == ENBOX_TYPE_10)) { this->dyna.actor.flags &= ~0x2000000; EnBox_SetupAction(this, EnBox_AppearInit); OnePointCutscene_Attention(globalCtx, &this->dyna.actor); @@ -415,7 +415,7 @@ void EnBox_WaitOpen(EnBox* this, GlobalContext* globalCtx) { this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, this->dyna.actor.shape.rot.x, this->dyna.actor.shape.rot.y, this->dyna.actor.shape.rot.z, 0xFFFF); - func_800F5C64(NA_BGM_OPEN_TRE_BOX | 0x900); + Audio_PlayFanfare(NA_BGM_OPEN_TRE_BOX | 0x900); } } osSyncPrintf("Actor_Environment_Tbox_On() %d\n", this->dyna.actor.params & 0x1F); diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index c4411a0415..ca9f32bdd4 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -196,15 +196,15 @@ void func_809DF494(EnCow* this, GlobalContext* globalCtx) { } void func_809DF6BC(EnCow* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.flags &= ~0x10000; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actionFunc = func_809DF96C; } } void func_809DF730(EnCow* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actor.flags &= ~0x10000; this->actionFunc = func_809DF96C; } @@ -220,28 +220,28 @@ void func_809DF778(EnCow* this, GlobalContext* globalCtx) { } void func_809DF7D8(EnCow* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.flags &= ~0x10000; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actionFunc = func_809DF778; func_8002F434(&this->actor, globalCtx, GI_MILK, 10000.0f, 100.0f); } } void func_809DF870(EnCow* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { if (Inventory_HasEmptyBottle()) { - func_8010B720(globalCtx, 0x2007); + Message_ContinueTextbox(globalCtx, 0x2007); this->actionFunc = func_809DF7D8; } else { - func_8010B720(globalCtx, 0x2013); + Message_ContinueTextbox(globalCtx, 0x2013); this->actionFunc = func_809DF6BC; } } } void func_809DF8FC(EnCow* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_809DF870; } else { this->actor.flags |= 0x10000; @@ -252,7 +252,7 @@ void func_809DF8FC(EnCow* this, GlobalContext* globalCtx) { } void func_809DF96C(EnCow* this, GlobalContext* globalCtx) { - if ((globalCtx->msgCtx.unk_E3EE == 0) || (globalCtx->msgCtx.unk_E3EE == 4)) { + if ((globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_00) || (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04)) { if (DREG(53) != 0) { if (this->unk_276 & 4) { this->unk_276 &= ~0x4; diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 1a0aa85841..55b280fcba 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -162,9 +162,9 @@ s32 EnCs_GetTalkState(EnCs* this, GlobalContext* globalCtx) { s32 pad2; s32 talkState = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 4: - if (func_80106BC8(globalCtx) != 0) { + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { this->actor.textId = 0x2026; EnCs_SetAnimFromIndex(this, 3, &this->currentAnimIndex); @@ -176,8 +176,8 @@ s32 EnCs_GetTalkState(EnCs* this, GlobalContext* globalCtx) { } } break; - case 6: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x2026) { Player_UnsetMask(globalCtx); Item_Give(globalCtx, ITEM_SOLD_OUT); @@ -190,11 +190,11 @@ s32 EnCs_GetTalkState(EnCs* this, GlobalContext* globalCtx) { } } break; - case 0: - case 1: - case 2: - case 3: - case 5: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CLOSING: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_EVENT: break; } @@ -226,11 +226,11 @@ void EnCs_HandleTalking(EnCs* this, GlobalContext* globalCtx) { s16 sp28; if (this->talkState == 2) { - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->talkState = 1; } else if (this->talkState == 1) { this->talkState = EnCs_GetTalkState(this, globalCtx); - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if ((this->actor.textId == 0x2022) || ((this->actor.textId != 0x2022) && (this->actor.textId != 0x2028))) { EnCs_SetAnimFromIndex(this, 3, &this->currentAnimIndex); } @@ -245,7 +245,7 @@ void EnCs_HandleTalking(EnCs* this, GlobalContext* globalCtx) { this->talkState = 1; } else { - func_8002F374(globalCtx, &this->actor, &sp2A, &sp28); + Actor_GetScreenPos(globalCtx, &this->actor, &sp2A, &sp28); if ((sp2A >= 0) && (sp2A <= 320) && (sp28 >= 0) && (sp28 <= 240) && (func_8002F2CC(&this->actor, globalCtx, 100.0f))) { diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 0bf70ca7f1..d2c211d035 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -231,9 +231,9 @@ void EnDaiku_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 EnDaiku_UpdateTalking(EnDaiku* this, GlobalContext* globalCtx) { s32 newTalkState = ENDAIKU_STATE_TALKING; - if (func_8010BDBC(&globalCtx->msgCtx) == 6) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) { if (globalCtx->sceneNum == SCENE_GERUDOWAY) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x6007) { Flags_SetSwitch(globalCtx, this->startFightSwitchFlag); newTalkState = ENDAIKU_STATE_CAN_TALK; @@ -243,7 +243,7 @@ s32 EnDaiku_UpdateTalking(EnDaiku* this, GlobalContext* globalCtx) { } } } else if (globalCtx->sceneNum == SCENE_TENT) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { switch (this->actor.textId) { case 0x6061: gSaveContext.infTable[23] |= 0x40; @@ -269,10 +269,10 @@ void EnDaiku_UpdateText(EnDaiku* this, GlobalContext* globalCtx) { if (this->talkState == ENDAIKU_STATE_TALKING) { this->talkState = EnDaiku_UpdateTalking(this, globalCtx); - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->talkState = ENDAIKU_STATE_TALKING; } else { - func_8002F374(globalCtx, &this->actor, &sp2E, &sp2C); + Actor_GetScreenPos(globalCtx, &this->actor, &sp2E, &sp2C); if (sp2E >= 0 && sp2E <= 320 && sp2C >= 0 && sp2C <= 240 && this->talkState == ENDAIKU_STATE_CAN_TALK && func_8002F2CC(&this->actor, globalCtx, 100.0f) == 1) { if (globalCtx->sceneNum == SCENE_GERUDOWAY) { @@ -403,7 +403,7 @@ void EnDaiku_InitEscape(EnDaiku* this, GlobalContext* globalCtx) { Vec3s* pointPos; s32 exitLoop; - func_800F5C64(NA_BGM_APPEAR); + Audio_PlayFanfare(NA_BGM_APPEAR); EnDaiku_Change(this, ENDAIKU_ANIM_RUN, &this->currentAnimIndex); this->stateFlags &= ~(ENDAIKU_STATEFLAG_1 | ENDAIKU_STATEFLAG_2); diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 0ae07ac499..a2e3f02445 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -205,7 +205,7 @@ void EnDaikuKakariko_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 EnDaikuKakariko_GetTalkState(EnDaikuKakariko* this, GlobalContext* globalCtx) { s32 talkState = 2; - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { switch (this->actor.textId) { case 0x6061: gSaveContext.infTable[23] |= 0x40; @@ -226,10 +226,10 @@ void EnDaikuKakariko_HandleTalking(EnDaikuKakariko* this, GlobalContext* globalC if (this->talkState == 2) { this->talkState = EnDaikuKakariko_GetTalkState(this, globalCtx); - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->talkState = 2; } else { - func_8002F374(globalCtx, &this->actor, &sp26, &sp24); + Actor_GetScreenPos(globalCtx, &this->actor, &sp26, &sp24); if ((sp26 >= 0) && (sp26 <= 320) && (sp24 >= 0) && (sp24 <= 240) && (this->talkState == 0) && (func_8002F2CC(&this->actor, globalCtx, 100.0f) == 1)) { diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index e4fb4e2dcf..894dfc5c66 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -133,8 +133,8 @@ s32 EnDivingGame_HasMinigameFinished(EnDivingGame* this, GlobalContext* globalCt func_800F5B58(); func_80078884(NA_SE_SY_FOUND); this->actor.textId = 0x71AD; - func_8010B680(globalCtx, this->actor.textId, NULL); - this->unk_292 = 5; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); + this->unk_292 = TEXT_STATE_EVENT; this->allRupeesThrown = this->state = this->phase = this->unk_2A2 = this->grabbedRupeesCounter = 0; func_8002DF54(globalCtx, NULL, 8); this->actionFunc = func_809EE048; @@ -157,10 +157,10 @@ s32 EnDivingGame_HasMinigameFinished(EnDivingGame* this, GlobalContext* globalCt this->extraWinCount++; } } - func_8010B680(globalCtx, this->actor.textId, NULL); - this->unk_292 = 5; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); + this->unk_292 = TEXT_STATE_EVENT; func_800F5B58(); - func_800F5C64(NA_BGM_SMALL_ITEM_GET); + Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET); func_8002DF54(globalCtx, NULL, 8); if (!(gSaveContext.eventChkInf[3] & 0x100)) { this->actionFunc = func_809EE96C; @@ -185,8 +185,8 @@ void func_809EDCB0(EnDivingGame* this, GlobalContext* globalCtx) { void EnDivingGame_Talk(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); if (this->state != ENDIVINGGAME_STATE_PLAYING || !EnDivingGame_HasMinigameFinished(this, globalCtx)) { - if (func_8002F194(&this->actor, globalCtx)) { - if (this->unk_292 != 6) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { + if (this->unk_292 != TEXT_STATE_DONE) { switch (this->state) { case ENDIVINGGAME_STATE_NOTPLAYING: func_8002DF54(globalCtx, NULL, 8); @@ -203,11 +203,11 @@ void EnDivingGame_Talk(EnDivingGame* this, GlobalContext* globalCtx) { } else { if (Text_GetFaceReaction(globalCtx, 0x1D) != 0) { this->actor.textId = Text_GetFaceReaction(globalCtx, 0x1D); - this->unk_292 = 6; + this->unk_292 = TEXT_STATE_DONE; } else { switch (this->state) { case ENDIVINGGAME_STATE_NOTPLAYING: - this->unk_292 = 4; + this->unk_292 = TEXT_STATE_CHOICE; if (!(gSaveContext.eventChkInf[3] & 0x100)) { this->actor.textId = 0x4053; this->phase = ENDIVINGGAME_PHASE_1; @@ -218,11 +218,11 @@ void EnDivingGame_Talk(EnDivingGame* this, GlobalContext* globalCtx) { break; case ENDIVINGGAME_STATE_AWARDPRIZE: this->actor.textId = 0x4056; - this->unk_292 = 5; + this->unk_292 = TEXT_STATE_EVENT; break; case ENDIVINGGAME_STATE_PLAYING: this->actor.textId = 0x405B; - this->unk_292 = 5; + this->unk_292 = TEXT_STATE_EVENT; break; } } @@ -233,8 +233,8 @@ void EnDivingGame_Talk(EnDivingGame* this, GlobalContext* globalCtx) { void EnDivingGame_HandlePlayChoice(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && - func_80106BC8(globalCtx)) { // Did player selected an answer? + if (this->unk_292 == Message_GetState(&globalCtx->msgCtx) && + Message_ShouldAdvance(globalCtx)) { // Did player selected an answer? switch (globalCtx->msgCtx.choiceIndex) { case 0: // Yes if (gSaveContext.rupees >= 20) { @@ -251,11 +251,11 @@ void EnDivingGame_HandlePlayChoice(EnDivingGame* this, GlobalContext* globalCtx) break; } if (!(gSaveContext.eventChkInf[3] & 0x100) || this->actor.textId == 0x85 || this->actor.textId == 0x2D) { - func_8010B720(globalCtx, this->actor.textId); - this->unk_292 = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->unk_292 = TEXT_STATE_EVENT; this->actionFunc = func_809EE048; } else { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; func_8002DF54(globalCtx, NULL, 8); this->actionFunc = func_809EE0FC; } @@ -265,13 +265,13 @@ void EnDivingGame_HandlePlayChoice(EnDivingGame* this, GlobalContext* globalCtx) // Waits for the message to close void func_809EE048(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { + if (this->unk_292 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { if (this->phase == ENDIVINGGAME_PHASE_ENDED) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); func_8002DF54(globalCtx, NULL, 7); this->actionFunc = func_809EDCB0; } else { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; func_8002DF54(globalCtx, NULL, 8); this->actionFunc = func_809EE0FC; } @@ -400,8 +400,8 @@ void func_809EE780(EnDivingGame* this, GlobalContext* globalCtx) { Gameplay_ClearCamera(globalCtx, this->subCamId); Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_ACTIVE); this->actor.textId = 0x405A; - func_8010B720(globalCtx, this->actor.textId); - this->unk_292 = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->unk_292 = TEXT_STATE_EVENT; this->actionFunc = func_809EE800; } } @@ -409,8 +409,8 @@ void func_809EE780(EnDivingGame* this, GlobalContext* globalCtx) { // EnDivingGame_TalkDuringMinigame void func_809EE800(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if (this->unk_292 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (!(gSaveContext.eventChkInf[3] & 0x100)) { func_80088B34(BREG(2) + 50); } else { @@ -419,7 +419,7 @@ void func_809EE800(EnDivingGame* this, GlobalContext* globalCtx) { func_800F5ACC(NA_BGM_MINI_GAME_2); func_8002DF54(globalCtx, NULL, 7); this->actor.textId = 0x405B; - this->unk_292 = 5; + this->unk_292 = TEXT_STATE_EVENT; this->state = ENDIVINGGAME_STATE_PLAYING; this->actionFunc = EnDivingGame_Talk; } @@ -427,8 +427,8 @@ void func_809EE800(EnDivingGame* this, GlobalContext* globalCtx) { void func_809EE8F0(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx))) { - func_80106CCC(globalCtx); + if ((this->unk_292 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx))) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnDivingGame_Talk; } else { EnDivingGame_HasMinigameFinished(this, globalCtx); @@ -438,11 +438,11 @@ void func_809EE8F0(EnDivingGame* this, GlobalContext* globalCtx) { // EnDivingGame_SayCongratsAndWait ? // EnDivingGame_PlayerWonPhase1 void func_809EE96C(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx))) { - func_80106CCC(globalCtx); + if ((this->unk_292 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx))) { + Message_CloseTextbox(globalCtx); func_8002DF54(globalCtx, NULL, 7); this->actor.textId = 0x4056; - this->unk_292 = 5; + this->unk_292 = TEXT_STATE_EVENT; this->state = ENDIVINGGAME_STATE_AWARDPRIZE; this->actionFunc = EnDivingGame_Talk; } @@ -450,8 +450,8 @@ void func_809EE96C(EnDivingGame* this, GlobalContext* globalCtx) { void func_809EEA00(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((this->unk_292 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx))) { - func_80106CCC(globalCtx); + if ((this->unk_292 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx))) { + Message_CloseTextbox(globalCtx); this->actor.parent = NULL; func_8002F434(&this->actor, globalCtx, GI_SCALE_SILVER, 90.0f, 10.0f); this->actionFunc = func_809EEA90; @@ -470,7 +470,7 @@ void func_809EEA90(EnDivingGame* this, GlobalContext* globalCtx) { // Award the scale? void func_809EEAF8(EnDivingGame* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { // "Successful completion" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); this->allRupeesThrown = this->state = this->phase = this->unk_2A2 = this->grabbedRupeesCounter = 0; diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 567659b177..d139f66bab 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -324,7 +324,7 @@ void EnDns_SetupWait(EnDns* this, GlobalContext* globalCtx) { void EnDns_Wait(EnDns* this, GlobalContext* globalCtx) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 2000, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnDns_Talk; } else { if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isTargeted) { @@ -339,31 +339,31 @@ void EnDns_Wait(EnDns* this, GlobalContext* globalCtx) { } void EnDns_Talk(EnDns* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // OK switch (this->dnsItemEntry->purchaseableCheck(this)) { case 0: - func_8010B720(globalCtx, 0x10A5); + Message_ContinueTextbox(globalCtx, 0x10A5); this->actionFunc = func_809F008C; break; case 1: - func_8010B720(globalCtx, 0x10A6); + Message_ContinueTextbox(globalCtx, 0x10A6); this->actionFunc = func_809F008C; break; case 3: - func_8010B720(globalCtx, 0x10DE); + Message_ContinueTextbox(globalCtx, 0x10DE); this->actionFunc = func_809F008C; break; case 2: case 4: - func_8010B720(globalCtx, 0x10A7); + Message_ContinueTextbox(globalCtx, 0x10A7); this->actionFunc = func_809EFEE8; break; } break; case 1: // No way - func_8010B720(globalCtx, 0x10A4); + Message_ContinueTextbox(globalCtx, 0x10A4); this->actionFunc = func_809F008C; } } @@ -388,8 +388,8 @@ void func_809EFDD0(EnDns* this, GlobalContext* globalCtx) { } void func_809EFEE8(EnDns* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); func_809EFDD0(this, globalCtx); this->actionFunc = func_809EFF50; } @@ -408,7 +408,7 @@ void func_809EFF98(EnDns* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); if (player->stateFlags1 & 0x400) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->dnsItemEntry->setRupeesAndFlags(this); this->dropCollectible = 1; this->maintainCollider = 0; @@ -427,7 +427,7 @@ void func_809EFF98(EnDns* this, GlobalContext* globalCtx) { } void func_809F008C(EnDns* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->maintainCollider = 0; this->actor.flags &= ~1; EnDns_Change(this, 1); diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 6d1cf6f02a..b7671bb87c 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -193,7 +193,7 @@ void EnDntJiji_Walk(EnDntJiji* this, GlobalContext* globalCtx) { this->getItemId = GI_STICK_UPGRADE_30; } this->actor.textId = 0x104D; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actor.speedXZ = 0.0f; this->unused = 5; this->actionFunc = EnDntJiji_Talk; @@ -236,7 +236,7 @@ void EnDntJiji_Cower(EnDntJiji* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 0x1388, 0); if (frame >= this->endFrame) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnDntJiji_SetupTalk; } else { func_8002F2CC(&this->actor, globalCtx, 100.0f); @@ -253,9 +253,9 @@ void EnDntJiji_SetupTalk(EnDntJiji* this, GlobalContext* globalCtx) { void EnDntJiji_Talk(EnDntJiji* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 0x1388, 0); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_8005B1A4(GET_ACTIVE_CAM(globalCtx)); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); func_8002DF54(globalCtx, NULL, 7); this->actor.parent = NULL; func_8002F434(&this->actor, globalCtx, this->getItemId, 400.0f, 200.0f); @@ -274,7 +274,7 @@ void EnDntJiji_SetupGivePrize(EnDntJiji* this, GlobalContext* globalCtx) { void EnDntJiji_GivePrize(EnDntJiji* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { if ((this->getItemId == GI_NUT_UPGRADE_30) || (this->getItemId == GI_NUT_UPGRADE_40)) { // "nut" osSyncPrintf("実 \n"); diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index ba3a56d831..928c44092b 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -331,14 +331,14 @@ void EnDntNomal_SetupTargetTalk(EnDntNomal* this, GlobalContext* globalCtx) { this->endFrame = (f32)Animation_GetLastFrame(&gHintNutsTalkAnim); Animation_Change(&this->skelAnime, &gHintNutsTalkAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); this->actor.textId = 0x10AF; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actionFunc = EnDntNomal_TargetTalk; } void EnDntNomal_TargetTalk(EnDntNomal* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); func_8005B1A4(GET_ACTIVE_CAM(globalCtx)); GET_ACTIVE_CAM(globalCtx)->csId = 0; func_8002DF54(globalCtx, NULL, 8); @@ -521,7 +521,7 @@ void EnDntNomal_StageCelebrate(EnDntNomal* this, GlobalContext* globalCtx) { f32 dx = this->targetPos.x - this->actor.world.pos.x; f32 dz = this->targetPos.z - this->actor.world.pos.z; - if ((fabsf(dx) < 10.0f) && (fabsf(dz) < 10.0f) && func_8010BDBC(&globalCtx->msgCtx)) { + if ((fabsf(dx) < 10.0f) && (fabsf(dz) < 10.0f) && (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE)) { this->action = DNT_ACTION_PRIZE; this->actionFunc = EnDntNomal_SetupStageDance; this->actor.speedXZ = 0.0f; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index f6b3cd568d..814c1fcda9 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -228,7 +228,7 @@ void EnDoor_Idle(EnDoor* this, GlobalContext* globalCtx) { } void EnDoor_WaitForCheck(EnDoor* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnDoor_Check; } else { func_8002F2CC(&this->actor, globalCtx, DOOR_CHECK_RANGE); @@ -236,7 +236,7 @@ void EnDoor_WaitForCheck(EnDoor* this, GlobalContext* globalCtx) { } void EnDoor_Check(EnDoor* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnDoor_WaitForCheck; } } diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index e12208b697..84a8468259 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -53,7 +53,7 @@ void EnDs_Destroy(Actor* thisx, GlobalContext* globalCtx) { } void EnDs_Talk(EnDs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx) != 0) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnDs_Wait; this->actor.flags &= ~0x10000; } @@ -61,15 +61,15 @@ void EnDs_Talk(EnDs* this, GlobalContext* globalCtx) { } void EnDs_TalkNoEmptyBottle(EnDs* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnDs_Wait; } this->unk_1E8 |= 1; } void EnDs_TalkAfterGiveOddPotion(EnDs* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnDs_Talk; } else { this->actor.flags |= 0x10000; @@ -78,7 +78,7 @@ void EnDs_TalkAfterGiveOddPotion(EnDs* this, GlobalContext* globalCtx) { } void EnDs_DisplayOddPotionText(EnDs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx) != 0) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actor.textId = 0x504F; this->actionFunc = EnDs_TalkAfterGiveOddPotion; this->actor.flags &= ~0x100; @@ -97,8 +97,8 @@ void EnDs_GiveOddPotion(EnDs* this, GlobalContext* globalCtx) { } void EnDs_TalkAfterBrewOddPotion(EnDs* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnDs_GiveOddPotion; func_8002F434(&this->actor, globalCtx, GI_ODD_POTION, 10000.0f, 50.0f); } @@ -109,7 +109,7 @@ void EnDs_BrewOddPotion3(EnDs* this, GlobalContext* globalCtx) { this->brewTimer -= 1; } else { this->actionFunc = EnDs_TalkAfterBrewOddPotion; - func_8010B720(globalCtx, 0x504D); + Message_ContinueTextbox(globalCtx, 0x504D); } Math_StepToF(&this->unk_1E4, 0, 0.03f); @@ -141,17 +141,17 @@ void EnDs_BrewOddPotion1(EnDs* this, GlobalContext* globalCtx) { void EnDs_OfferOddPotion(EnDs* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes this->actionFunc = EnDs_BrewOddPotion1; this->brewTimer = 60; Flags_SetSwitch(globalCtx, 0x3F); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; player->exchangeItemId = EXCH_ITEM_NONE; break; case 1: // no - func_8010B720(globalCtx, 0x504C); + Message_ContinueTextbox(globalCtx, 0x504C); this->actionFunc = EnDs_Talk; } } @@ -177,15 +177,15 @@ void EnDs_GiveBluePotion(EnDs* this, GlobalContext* globalCtx) { } void EnDs_OfferBluePotion(EnDs* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes switch (EnDs_CheckRupeesAndBottle()) { case 0: // have less than 100 rupees - func_8010B720(globalCtx, 0x500E); + Message_ContinueTextbox(globalCtx, 0x500E); break; case 1: // have 100 rupees but no empty bottle - func_8010B720(globalCtx, 0x96); + Message_ContinueTextbox(globalCtx, 0x96); this->actionFunc = EnDs_TalkNoEmptyBottle; return; case 2: // have 100 rupees and empty bottle @@ -197,7 +197,7 @@ void EnDs_OfferBluePotion(EnDs* this, GlobalContext* globalCtx) { } break; case 1: // no - func_8010B720(globalCtx, 0x500D); + Message_ContinueTextbox(globalCtx, 0x500D); } this->actionFunc = EnDs_Talk; } @@ -207,7 +207,7 @@ void EnDs_Wait(EnDs* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s16 yawDiff; - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (func_8002F368(globalCtx) == EXCH_ITEM_ODD_MUSHROOM) { Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); player->actor.textId = 0x504A; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index d8b98f5ee7..a7a389327f 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -103,11 +103,11 @@ u16 func_809FDC38(GlobalContext* globalCtx, Actor* actor) { } s16 func_809FDCDC(GlobalContext* globalCtx, Actor* actor) { - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: break; - case 2: + case TEXT_STATE_CLOSING: switch (actor->textId) { case 0x301A: gSaveContext.infTable[0x11] |= 8; @@ -120,18 +120,18 @@ s16 func_809FDCDC(GlobalContext* globalCtx, Actor* actor) { break; } return 0; - case 3: - case 4: - case 5: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: break; - case 6: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { return 3; } break; - case 7: - case 8: - case 9: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } return 1; @@ -298,7 +298,7 @@ void func_809FE3C0(EnDu* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); if (player->stateFlags2 & 0x1000000) { - func_8010BD88(globalCtx, 0x22); + func_8010BD88(globalCtx, OCARINA_ACTION_CHECK_SARIA); player->stateFlags2 |= 0x2000000; player->unk_6A8 = &this->actor; EnDu_SetupAction(this, func_809FE4A4); @@ -316,22 +316,22 @@ void func_809FE3C0(EnDu* this, GlobalContext* globalCtx) { void func_809FE4A4(EnDu* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE == 4) { - globalCtx->msgCtx.unk_E3EE = 0; + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; EnDu_SetupAction(this, func_809FE3C0); - } else if (globalCtx->msgCtx.unk_E3EE >= 6) { + } else if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_06) { globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaWrongCs); gSaveContext.cutsceneTrigger = 1; this->unk_1E8 = 1; EnDu_SetupAction(this, func_809FE890); - globalCtx->msgCtx.unk_E3EE = 4; - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectCs); gSaveContext.cutsceneTrigger = 1; this->unk_1E8 = 0; EnDu_SetupAction(this, func_809FE890); - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } else { player->stateFlags2 |= 0x800000; } @@ -343,7 +343,7 @@ void func_809FE638(EnDu* this, GlobalContext* globalCtx) { if (!(player->stateFlags1 & 0x20000000)) { OnePointCutscene_Init(globalCtx, 3330, -99, &this->actor, MAIN_CAM); player->actor.shape.rot.y = player->actor.world.rot.y = this->actor.world.rot.y + 0x7FFF; - func_800F5C64(NA_BGM_APPEAR); + Audio_PlayFanfare(NA_BGM_APPEAR); EnDu_SetupAction(this, func_809FE6CC); this->unk_1E2 = 0x32; } @@ -360,7 +360,7 @@ void func_809FE6CC(EnDu* this, GlobalContext* globalCtx) { } if (phi_v1 == 0) { this->actor.textId = 0x3039; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_1F4.unk_00 = 1; EnDu_SetupAction(this, func_809FE740); } @@ -494,7 +494,7 @@ void func_809FEB08(EnDu* this, GlobalContext* globalCtx) { this->actor.textId = 0x301F; EnDu_SetupAction(this, func_809FE3C0); } - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); func_80034EC0(&this->skelAnime, sAnimations, 14); this->unk_1F4.unk_00 = 1; } diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 93b118b454..f2df435424 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -1257,14 +1257,14 @@ void func_80A05040(Actor* thisx, GlobalContext* globalCtx) { func_80A04DE4(this, globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes - func_8010B720(globalCtx, ElfMessage_GetSariaText(globalCtx)); + Message_ContinueTextbox(globalCtx, ElfMessage_GetSariaText(globalCtx)); this->actor.update = func_80A05114; break; case 1: // no - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.update = func_80A053F0; func_80A01C38(this, 0); this->fairyFlags &= ~0x20; @@ -1280,8 +1280,8 @@ void func_80A05114(Actor* thisx, GlobalContext* globalCtx) { func_80A04DE4(this, globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0xE3); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0xE3); this->actor.update = func_80A05040; } @@ -1293,8 +1293,8 @@ void func_80A05188(Actor* thisx, GlobalContext* globalCtx) { func_80A04DE4(this, globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, ElfMessage_GetSariaText(globalCtx)); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, ElfMessage_GetSariaText(globalCtx)); this->actor.update = func_80A05114; } @@ -1308,21 +1308,21 @@ void func_80A05208(Actor* thisx, GlobalContext* globalCtx) { func_80A04DE4(this, globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes naviCUpText = ElfMessage_GetCUpText(globalCtx); if (naviCUpText != 0) { - func_8010B720(globalCtx, naviCUpText); + Message_ContinueTextbox(globalCtx, naviCUpText); } else { - func_8010B720(globalCtx, 0x15F); + Message_ContinueTextbox(globalCtx, 0x15F); } this->actor.update = func_80A052F4; break; case 1: // no - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.update = func_80A053F0; func_80A01C38(this, 0); this->fairyFlags &= ~0x20; @@ -1339,22 +1339,22 @@ void func_80A052F4(Actor* thisx, GlobalContext* globalCtx) { func_80A04DE4(this, globalCtx); - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) { + if (Message_ShouldAdvance(globalCtx)) { globalCtx->msgCtx.unk_E3F2 = 0xFF; switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes this->actor.update = func_80A05188; - func_8010B720(globalCtx, 0xE2); + Message_ContinueTextbox(globalCtx, 0xE2); break; case 1: // no this->actor.update = func_80A05208; - func_8010B720(globalCtx, 0xE1); + Message_ContinueTextbox(globalCtx, 0xE1); break; } } - } else if (func_8002F334(thisx, globalCtx)) { + } else if (Actor_TextboxIsClosing(thisx, globalCtx)) { this->actor.update = func_80A053F0; func_80A01C38(this, 0); this->fairyFlags &= ~0x20; @@ -1384,7 +1384,7 @@ void func_80A053F0(Actor* thisx, GlobalContext* globalCtx) { thisx->flags |= 0x10000; } - if (func_8002F194(thisx, globalCtx)) { + if (Actor_ProcessTalkRequest(thisx, globalCtx)) { func_800F4524(&D_801333D4, NA_SE_VO_SK_LAUGH, 0x20); thisx->focus.pos = thisx->world.pos; diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index 8c1e178df4..81ac7202bf 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -410,7 +410,7 @@ void EnExItem_TargetPrizeGive(EnExItem* this, GlobalContext* globalCtx) { } void EnExItem_TargetPrizeFinish(EnExItem* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { // "Successful completion" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); gSaveContext.itemGetInf[1] |= 0x2000; diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 5630cc6a24..9893ecd77c 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -196,10 +196,8 @@ static u8 sJumpOrder[] = { FROG_BLUE, FROG_YELLOW, FROG_RED, FROG_PURPLE, FROG_WHITE, FROG_BLUE, FROG_YELLOW, FROG_RED, }; -// probably can be replaced with a message context enum at a later time -// A, CDOWN, CRIGHT, CLEFT, CUP static u8 sOcarinaNotes[] = { - 0, 1, 2, 3, 4, + OCARINA_NOTE_A, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_C_UP, }; void EnFr_OrientUnderwater(EnFr* this) { @@ -602,12 +600,12 @@ void EnFr_Idle(EnFr* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); if (player->stateFlags2 & 0x2000000) { - if (globalCtx->msgCtx.unk_E3EE == 4) { - globalCtx->msgCtx.unk_E3EE = 0; + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; } OnePointCutscene_Init(globalCtx, 4110, ~0x62, &this->actor, MAIN_CAM); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; player->actor.world.pos.x = this->actor.world.pos.x; // x = 990.0f player->actor.world.pos.y = this->actor.world.pos.y; // y = 205.0f player->actor.world.pos.z = this->actor.world.pos.z; // z = -1220.0f @@ -620,11 +618,11 @@ void EnFr_Idle(EnFr* this, GlobalContext* globalCtx) { } void EnFr_Activate(EnFr* this, GlobalContext* globalCtx) { - if (globalCtx->msgCtx.msgMode == 0xC) { - globalCtx->msgCtx.msgMode = 0x37; + if (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_PLAYING) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; sEnFrPointers.flags = 1; this->actionFunc = EnFr_ActivateCheckFrogSong; - } else if (globalCtx->msgCtx.msgMode == 0x37) { // Goes to Frogs 2 Song + } else if (globalCtx->msgCtx.msgMode == MSGMODE_PAUSED) { // Goes to Frogs 2 Song sEnFrPointers.flags = 1; this->actionFunc = EnFr_ActivateCheckFrogSong; } @@ -641,7 +639,7 @@ void EnFr_ActivateCheckFrogSong(EnFr* this, GlobalContext* globalCtx) { && (gSaveContext.eventChkInf[13] & 0x40)) { // SoS this->actionFunc = EnFr_TalkBeforeFrogSong; this->songIndex = FROG_CHOIR_SONG; - func_8010B680(globalCtx, 0x40AB, &this->actor); + Message_StartTextbox(globalCtx, 0x40AB, &this->actor); } else { this->songIndex = FROG_ZL; this->actionFunc = func_80A1BE98; @@ -662,49 +660,49 @@ void func_80A1BE98(EnFr* this, GlobalContext* globalCtx) { } } - func_8010BD58(globalCtx, 0x30); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_NOWARP); this->actionFunc = EnFr_ListeningToOcarinaNotes; } void EnFr_ListeningToOcarinaNotes(EnFr* this, GlobalContext* globalCtx) { this->songIndex = FROG_NO_SONG; - switch (globalCtx->msgCtx.unk_E3EE) { // Ocarina Song played - case 7: + switch (globalCtx->msgCtx.ocarinaMode) { // Ocarina Song played + case OCARINA_MODE_07: this->songIndex = FROG_ZL; break; - case 6: + case OCARINA_MODE_06: this->songIndex = FROG_EPONA; break; - case 5: + case OCARINA_MODE_05: this->songIndex = FROG_SARIA; break; - case 8: + case OCARINA_MODE_08: this->songIndex = FROG_SUNS; break; - case 9: + case OCARINA_MODE_09: this->songIndex = FROG_SOT; break; - case 10: + case OCARINA_MODE_0A: this->songIndex = FROG_STORMS; break; - case 4: + case OCARINA_MODE_04: EnFr_OcarinaMistake(this, globalCtx); break; - case 1: // Ocarina note played, but no song played - switch (globalCtx->msgCtx.unk_E410) { // Jumping frogs in open ocarina based on ocarina note played - case 0: + case OCARINA_MODE_01: // Ocarina note played, but no song played + switch (globalCtx->msgCtx.lastOcaNoteIdx) { // Jumping frogs in open ocarina based on ocarina note played + case OCARINA_NOTE_A: EnFr_SetupJumpingUp(this, FROG_BLUE); break; - case 1: + case OCARINA_NOTE_C_DOWN: EnFr_SetupJumpingUp(this, FROG_YELLOW); break; - case 2: + case OCARINA_NOTE_C_RIGHT: EnFr_SetupJumpingUp(this, FROG_RED); break; - case 3: + case OCARINA_NOTE_C_LEFT: EnFr_SetupJumpingUp(this, FROG_PURPLE); break; - case 4: + case OCARINA_NOTE_C_UP: EnFr_SetupJumpingUp(this, FROG_WHITE); break; } @@ -755,8 +753,8 @@ void EnFr_ChildSongFirstTime(EnFr* this, GlobalContext* globalCtx) { } void EnFr_TalkBeforeFrogSong(EnFr* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx))) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->frogSongTimer = 2; this->actionFunc = EnFr_SetupFrogSong; } @@ -814,7 +812,7 @@ void EnFr_SetupFrogSong(EnFr* this, GlobalContext* globalCtx) { } else { this->frogSongTimer = 40; this->ocarinaNoteIndex = 0; - func_8010BD58(globalCtx, 0x2F); + func_8010BD58(globalCtx, OCARINA_ACTION_FROGS); this->ocarinaNote = EnFr_GetNextNoteFrogSong(this->ocarinaNoteIndex); EnFr_CheckOcarinaInputFrogSong(this->ocarinaNote); this->actionFunc = EnFr_ContinueFrogSong; @@ -827,7 +825,7 @@ s32 EnFr_IsFrogSongComplete(EnFr* this, GlobalContext* globalCtx) { MessageContext* msgCtx = &globalCtx->msgCtx; u8 ocarinaNoteIndex; - if (this->ocarinaNote == (*msgCtx).unk_E410) { // required to match, possibly an array? + if (this->ocarinaNote == (*msgCtx).lastOcaNoteIdx) { // required to match, possibly an array? this->ocarinaNoteIndex++; ocarinaNoteIndex = this->ocarinaNoteIndex; if (1) {} @@ -846,10 +844,10 @@ s32 EnFr_IsFrogSongComplete(EnFr* this, GlobalContext* globalCtx) { } void EnFr_OcarinaMistake(EnFr* this, GlobalContext* globalCtx) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->reward = GI_NONE; func_80078884(NA_SE_SY_OCARINA_ERROR); - func_800ED858(0); + Audio_OcaSetInstrument(0); sEnFrPointers.flags = 12; EnFr_DeactivateButterfly(); this->actionFunc = EnFr_Deactivate; @@ -864,7 +862,7 @@ void EnFr_ContinueFrogSong(EnFr* this, GlobalContext* globalCtx) { EnFr_OcarinaMistake(this, globalCtx); } else { this->frogSongTimer--; - if (globalCtx->msgCtx.msgMode == 0x32) { + if (globalCtx->msgCtx.msgMode == MSGMODE_FROGS_PLAYING) { counter = 0; for (i = 0; i < ARRAY_COUNT(sEnFrPointers.frogs); i++) { frog = sEnFrPointers.frogs[i]; @@ -880,22 +878,22 @@ void EnFr_ContinueFrogSong(EnFr* this, GlobalContext* globalCtx) { } } - if (globalCtx->msgCtx.msgMode == 0x33) { - globalCtx->msgCtx.msgMode = 0x31; - switch (globalCtx->msgCtx.unk_E410) { - case 0: + if (globalCtx->msgCtx.msgMode == MSGMODE_FROGS_WAITING) { + globalCtx->msgCtx.msgMode = MSGMODE_FROGS_START; + switch (globalCtx->msgCtx.lastOcaNoteIdx) { + case OCARINA_NOTE_A: EnFr_SetupJumpingUp(this, FROG_BLUE); break; - case 1: + case OCARINA_NOTE_C_DOWN: EnFr_SetupJumpingUp(this, FROG_YELLOW); break; - case 2: + case OCARINA_NOTE_C_RIGHT: EnFr_SetupJumpingUp(this, FROG_RED); break; - case 3: + case OCARINA_NOTE_C_LEFT: EnFr_SetupJumpingUp(this, FROG_PURPLE); break; - case 4: + case OCARINA_NOTE_C_UP: EnFr_SetupJumpingUp(this, FROG_WHITE); } if (EnFr_IsFrogSongComplete(this, globalCtx)) { @@ -914,20 +912,20 @@ void EnFr_SetupReward(EnFr* this, GlobalContext* globalCtx, u8 unkCondition) { func_80078884(NA_SE_SY_CORRECT_CHIME); } - func_800ED858(0); - globalCtx->msgCtx.msgMode = 0x37; + Audio_OcaSetInstrument(0); + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->actionFunc = EnFr_PrintTextBox; } void EnFr_PrintTextBox(EnFr* this, GlobalContext* globalCtx) { - func_8010B680(globalCtx, this->actor.textId, &this->actor); + Message_StartTextbox(globalCtx, this->actor.textId, &this->actor); this->actionFunc = EnFr_TalkBeforeReward; } void EnFr_TalkBeforeReward(EnFr* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->frogSongTimer = 100; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actionFunc = EnFr_SetReward; } } @@ -1000,7 +998,7 @@ void EnFr_Deactivate(EnFr* this, GlobalContext* globalCtx) { frogLoop2->isDeactivating = false; } - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; Audio_PlayActorSound2(&this->actor, NA_SE_EV_FROG_CRY_0); if (this->reward == GI_NONE) { this->actionFunc = EnFr_Idle; @@ -1020,7 +1018,7 @@ void EnFr_GiveReward(EnFr* this, GlobalContext* globalCtx) { } void EnFr_SetIdle(EnFr* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->actionFunc = EnFr_Idle; } } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.h b/src/overlays/actors/ovl_En_Fr/z_en_fr.h index 53676ceb53..ba2ef5014f 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.h +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.h @@ -52,7 +52,7 @@ typedef struct EnFr { /* 0x037E */ u8 growingScaleIndex; // Target Scale Level 0-3 while growing (3 highest smooth) /* 0x037F */ u8 isGrowing; // While growing, the frog will switch between its larger size and its original size every frame /* 0x0380 */ u8 ocarinaNoteIndex; // Related to unk_381 - /* 0x0381 */ u8 ocarinaNote; // Ocarina Note to Play for Frogs 2. Related to globalCtx->msgCtx.unk_E410 + /* 0x0381 */ u8 ocarinaNote; // Ocarina Note to Play for Frogs 2 /* 0x0382 */ u8 songIndex; // Song index 1-7 (6 songs + custom HP Song): 5 = sos, 6 = all songs /* 0x0383 */ u8 isJumpingToFrogSong; // Conditional: /* 0x0384 */ char unk_384[0x02]; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 11d262f31b..b4fba0f21c 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -105,8 +105,7 @@ void EnFu_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 func_80A1D94C(EnFu* this, GlobalContext* globalCtx, u16 textID, EnFuActionFunc actionFunc) { s16 yawDiff; - // func_8002F194 returns 1 if actor flags & 0x100 is set and unsets it - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = actionFunc; return true; } @@ -122,7 +121,7 @@ s32 func_80A1D94C(EnFu* this, GlobalContext* globalCtx, u16 textID, EnFuActionFu } void func_80A1DA04(EnFu* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx) != 0) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->behaviorFlags &= ~FU_WAIT; this->actionFunc = EnFu_WaitChild; @@ -154,13 +153,12 @@ void func_80A1DB60(EnFu* this, GlobalContext* globalCtx) { if (globalCtx->csCtx.state == CS_STATE_IDLE) { this->actionFunc = EnFu_WaitAdult; gSaveContext.eventChkInf[5] |= 0x800; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } } void func_80A1DBA0(EnFu* this, GlobalContext* globalCtx) { - // if dialog state is 2 set action to WaitAdult - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnFu_WaitAdult; } } @@ -168,23 +166,23 @@ void func_80A1DBA0(EnFu* this, GlobalContext* globalCtx) { void func_80A1DBD4(EnFu* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE >= 4) { + if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_04) { this->actionFunc = EnFu_WaitAdult; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; this->actor.flags &= ~0x10000; - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { func_80078884(NA_SE_SY_CORRECT_CHIME); this->actionFunc = func_80A1DB60; this->actor.flags &= ~0x10000; globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gSongOfStormsCs); gSaveContext.cutsceneTrigger = 1; Item_Give(globalCtx, ITEM_SONG_STORMS); - globalCtx->msgCtx.unk_E3EE = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; gSaveContext.eventChkInf[6] |= 0x20; - } else if (globalCtx->msgCtx.unk_E3EE == 2) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_02) { player->stateFlags2 &= ~0x1000000; this->actionFunc = EnFu_WaitAdult; - } else if (globalCtx->msgCtx.unk_E3EE == 1) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { player->stateFlags2 |= 0x800000; } } @@ -194,8 +192,8 @@ void EnFu_WaitForPlayback(EnFu* this, GlobalContext* globalCtx) { player->stateFlags2 |= 0x800000; // if dialog state is 7, player has played back the song - if (func_8010BDBC(&globalCtx->msgCtx) == 7) { - func_8010BD58(globalCtx, 0x1A); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_SONG_DEMO_DONE) { + func_8010BD58(globalCtx, OCARINA_ACTION_PLAYBACK_STORMS); this->actionFunc = func_80A1DBD4; } } @@ -205,10 +203,10 @@ void EnFu_TeachSong(EnFu* this, GlobalContext* globalCtx) { player->stateFlags2 |= 0x800000; // if dialog state is 2, start song demonstration - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->behaviorFlags &= ~FU_WAIT; - func_800ED858(4); // seems to be related to setting instrument type - func_8010BD58(globalCtx, 0xD); // play song demonstration, song 0xD = SoS + Audio_OcaSetInstrument(4); // seems to be related to setting instrument type + func_8010BD58(globalCtx, OCARINA_ACTION_TEACH_STORMS); this->actionFunc = EnFu_WaitForPlayback; } } @@ -222,10 +220,10 @@ void EnFu_WaitAdult(EnFu* this, GlobalContext* globalCtx) { func_80A1D94C(this, globalCtx, 0x508E, func_80A1DBA0); } else if (player->stateFlags2 & 0x1000000) { this->actor.textId = 0x5035; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actionFunc = EnFu_TeachSong; this->behaviorFlags |= FU_WAIT; - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_80A1DBA0; } else if (ABS(yawDiff) < 0x2301) { if (this->actor.xzDistToPlayer < 100.0f) { diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 55bd9774c8..e99c6b22af 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -56,7 +56,7 @@ static TearShape sTearShapes[] = { { sTearSizesSmall, ARRAY_COUNT(sTearSizesSmall) }, }; -/// How much each joint is affected by backwards/forwards swaying motion +// How much each joint is affected by backwards/forwards swaying motion static f32 sBackSwayCoefficients[GANON_MANT_NUM_JOINTS] = { 0.0f, 1.0f, 0.5f, 0.25f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, }; @@ -65,7 +65,7 @@ static f32 D_80A24DB4[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, }; -/// How much each joint is affected by sideways swaying motion, tends to 0 +// How much each joint is affected by sideways swaying motion, tends to 0 static f32 sSideSwayCoefficients[GANON_MANT_NUM_JOINTS] = { 0.0f, 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f, 0.3f, 0.2f, 0.1f, 0.0f, }; diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 307b859b72..5312f8a56d 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -281,7 +281,7 @@ void func_80A2F83C(EnGb* this, GlobalContext* globalCtx) { return; } } - if (func_8002F194(&this->dyna.actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->dyna.actor, globalCtx)) { switch (func_8002F368(globalCtx)) { case EXCH_ITEM_NONE: func_80A2F180(this); @@ -304,7 +304,7 @@ void func_80A2F83C(EnGb* this, GlobalContext* globalCtx) { } void func_80A2F94C(EnGb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { if (!(gSaveContext.infTable[0xB] & 0x40)) { gSaveContext.infTable[0xB] |= 0x40; } @@ -314,7 +314,7 @@ void func_80A2F94C(EnGb* this, GlobalContext* globalCtx) { } void func_80A2F9C0(EnGb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { if (!(gSaveContext.infTable[0xB] & 0x40)) { gSaveContext.infTable[0xB] |= 0x40; } @@ -326,7 +326,7 @@ void func_80A2F9C0(EnGb* this, GlobalContext* globalCtx) { } void func_80A2FA50(EnGb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { if (!(gSaveContext.infTable[0xB] & 0x40)) { gSaveContext.infTable[0xB] |= 0x40; } @@ -344,14 +344,14 @@ void func_80A2FA50(EnGb* this, GlobalContext* globalCtx) { player->exchangeItemId = EXCH_ITEM_NONE; this->textId = 0x70F8; - func_8010B720(globalCtx, this->textId); + Message_ContinueTextbox(globalCtx, this->textId); this->actionFunc = func_80A2FB40; } } } void func_80A2FB40(EnGb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { func_8002F434(&this->dyna.actor, globalCtx, GI_BOTTLE, 100.0f, 10.0f); this->actionFunc = func_80A2FBB0; } @@ -367,8 +367,8 @@ void func_80A2FBB0(EnGb* this, GlobalContext* globalCtx) { } void func_80A2FC0C(EnGb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { - func_8002F194(&this->dyna.actor, globalCtx); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { + Actor_ProcessTalkRequest(&this->dyna.actor, globalCtx); func_80A2F180(this); this->actionFunc = func_80A2F83C; } diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 7fc4b2d430..fc2b9cc87c 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -184,7 +184,7 @@ void EnGe1_Destroy(Actor* thisx, GlobalContext* globalCtx) { } s32 EnGe1_SetTalkAction(EnGe1* this, GlobalContext* globalCtx, u16 textId, f32 arg3, EnGe1ActionFunc actionFunc) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = actionFunc; this->animFunc = EnGe1_StopFidget; this->stateFlags &= ~GE1_STATE_IDLE_ANIM; @@ -248,7 +248,7 @@ void EnGe1_SpotPlayer(EnGe1* this, GlobalContext* globalCtx) { this->actionFunc = EnGe1_KickPlayer; func_8002DF54(globalCtx, &this->actor, 0x5F); func_80078884(NA_SE_SY_FOUND); - func_8010B680(globalCtx, 0x6000, &this->actor); + Message_StartTextbox(globalCtx, 0x6000, &this->actor); } void EnGe1_WatchForPlayerFrontOnly(EnGe1* this, GlobalContext* globalCtx) { @@ -268,7 +268,7 @@ void EnGe1_WatchForPlayerFrontOnly(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_ChooseActionFromTextId(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { switch (this->actor.textId) { case 0x6001: this->actionFunc = EnGe1_SetNormalText; @@ -335,14 +335,14 @@ void EnGe1_Open_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { this->actionFunc = EnGe1_WaitTillOpened_GTGGuard; Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); this->cutsceneTimer = 50; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } else if ((this->skelAnime.curFrame == 15.0f) || (this->skelAnime.curFrame == 19.0f)) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_HAND_CLAP); } } void EnGe1_SetupOpen_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actionFunc = EnGe1_Open_GTGGuard; Animation_Change(&this->skelAnime, &gGerudoWhiteClapAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGerudoWhiteClapAnim), ANIMMODE_ONCE, -3.0f); @@ -353,7 +353,7 @@ void EnGe1_SetupOpen_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { } void EnGe1_RefuseEntryTooPoor_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actionFunc = EnGe1_CheckForCard_GTGGuard; EnGe1_SetAnimationIdle(this); } @@ -361,17 +361,17 @@ void EnGe1_RefuseEntryTooPoor_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_OfferOpen_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: if (gSaveContext.rupees < 10) { - func_8010B720(globalCtx, 0x6016); + Message_ContinueTextbox(globalCtx, 0x6016); this->actionFunc = EnGe1_RefuseEntryTooPoor_GTGGuard; } else { Rupees_ChangeBy(-10); - func_8010B720(globalCtx, 0x6015); + Message_ContinueTextbox(globalCtx, 0x6015); this->actionFunc = EnGe1_SetupOpen_GTGGuard; } break; @@ -385,7 +385,7 @@ void EnGe1_OfferOpen_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_RefuseOpenNoCard_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnGe1_CheckForCard_GTGGuard; EnGe1_SetAnimationIdle(this); } @@ -406,8 +406,8 @@ void EnGe1_CheckForCard_GTGGuard(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_WaitGateOpen_GateOp(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnGe1_CheckGate_GateOp; EnGe1_SetAnimationIdle(this); } @@ -428,7 +428,7 @@ void EnGe1_OpenGate_GateOp(EnGe1* this, GlobalContext* globalCtx) { this->actionFunc = EnGe1_WaitUntilGateOpened_GateOp; Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); this->cutsceneTimer = 50; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } else if ((this->skelAnime.curFrame == 15.0f) || (this->skelAnime.curFrame == 19.0f)) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_HAND_CLAP); } @@ -437,7 +437,7 @@ void EnGe1_OpenGate_GateOp(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_SetupOpenGate_GateOp(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actionFunc = EnGe1_OpenGate_GateOp; Animation_Change(&this->skelAnime, &gGerudoWhiteClapAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGerudoWhiteClapAnim), ANIMMODE_ONCE, -3.0f); @@ -460,7 +460,7 @@ void EnGe1_CheckGate_GateOp(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_Talk_GateGuard(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnGe1_GetReaction_GateGuard; EnGe1_SetAnimationIdle(this); } @@ -486,7 +486,7 @@ void EnGe1_GetReaction_GateGuard(EnGe1* this, GlobalContext* globalCtx) { // Archery functions void EnGe1_SetupWait_Archery(EnGe1* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnGe1_Wait_Archery; EnGe1_SetAnimationIdle(this); } @@ -523,7 +523,7 @@ void EnGe1_WaitTillItemGiven_Archery(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_BeginGiveItem_Archery(EnGe1* this, GlobalContext* globalCtx) { s32 getItemId; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actor.flags &= ~0x10000; this->actionFunc = EnGe1_WaitTillItemGiven_Archery; } @@ -549,7 +549,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, GlobalContext* globalCtx) { } void EnGe1_TalkWinPrize_Archery(EnGe1* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnGe1_BeginGiveItem_Archery; this->actor.flags &= ~0x10000; } else { @@ -558,8 +558,8 @@ void EnGe1_TalkWinPrize_Archery(EnGe1* this, GlobalContext* globalCtx) { } void EnGe1_TalkTooPoor_Archery(EnGe1* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = EnGe1_Wait_Archery; EnGe1_SetAnimationIdle(this); } @@ -572,13 +572,13 @@ void EnGe1_BeginGame_Archery(EnGe1* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); Actor* horse; - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { this->actor.flags &= ~0x10000; switch (globalCtx->msgCtx.choiceIndex) { case 0: if (gSaveContext.rupees < 20) { - func_8010B720(globalCtx, 0x85); + Message_ContinueTextbox(globalCtx, 0x85); this->actionFunc = EnGe1_TalkTooPoor_Archery; } else { Rupees_ChangeBy(-20); @@ -606,21 +606,21 @@ void EnGe1_BeginGame_Archery(EnGe1* this, GlobalContext* globalCtx) { case 1: this->actionFunc = EnGe1_Wait_Archery; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); break; } } } void EnGe1_TalkOfferPlay_Archery(EnGe1* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x6041); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x6041); this->actionFunc = EnGe1_BeginGame_Archery; } } void EnGe1_TalkNoPrize_Archery(EnGe1* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnGe1_TalkOfferPlay_Archery; } else { func_8002F2CC(&this->actor, globalCtx, 300.0f); @@ -630,12 +630,11 @@ void EnGe1_TalkNoPrize_Archery(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_TalkAfterGame_Archery(EnGe1* this, GlobalContext* globalCtx) { gSaveContext.eventInf[0] &= ~0x100; LOG_NUM("z_common_data.yabusame_total", gSaveContext.minigameScore, "../z_en_ge1.c", 1110); - LOG_NUM("z_common_data.memory.information.room_inf[127][ 0 ]", gSaveContext.highScores[HS_HBA], "../z_en_ge1.c", - 1111); + LOG_NUM("z_common_data.memory.information.room_inf[127][ 0 ]", HIGH_SCORE(HS_HBA), "../z_en_ge1.c", 1111); this->actor.flags |= 0x10000; - if (gSaveContext.highScores[HS_HBA] < gSaveContext.minigameScore) { - gSaveContext.highScores[HS_HBA] = gSaveContext.minigameScore; + if (HIGH_SCORE(HS_HBA) < gSaveContext.minigameScore) { + HIGH_SCORE(HS_HBA) = gSaveContext.minigameScore; } if (gSaveContext.minigameScore < 1000) { @@ -660,7 +659,7 @@ void EnGe1_TalkAfterGame_Archery(EnGe1* this, GlobalContext* globalCtx) { void EnGe1_TalkNoHorse_Archery(EnGe1* this, GlobalContext* globalCtx) { this->stateFlags |= GE1_STATE_TALKING; - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnGe1_Wait_Archery; EnGe1_SetAnimationIdle(this); } diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index d80fd52560..a2297ff810 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -422,7 +422,7 @@ void EnGe2_LookAtPlayer(EnGe2* this, GlobalContext* globalCtx) { } void EnGe2_SetActionAfterTalk(EnGe2* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { switch (this->actor.params & 0xFF) { case GE2_TYPE_PATROLLING: @@ -455,8 +455,8 @@ void EnGe2_WaitTillCardGiven(EnGe2* this, GlobalContext* globalCtx) { } void EnGe2_GiveCard(EnGe2* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actor.flags &= ~0x10000; this->actionFunc = EnGe2_WaitTillCardGiven; func_8002F434(&this->actor, globalCtx, GI_GERUDO_CARD, 10000.0f, 50.0f); @@ -465,7 +465,7 @@ void EnGe2_GiveCard(EnGe2* this, GlobalContext* globalCtx) { void EnGe2_ForceTalk(EnGe2* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnGe2_GiveCard; } else { this->actor.textId = 0x6004; @@ -481,7 +481,7 @@ void EnGe2_SetupCapturePlayer(EnGe2* this, GlobalContext* globalCtx) { EnGe2_ChangeAction(this, GE2_ACTION_CAPTURETURN); func_8002DF54(globalCtx, &this->actor, 95); func_80078884(NA_SE_SY_FOUND); - func_8010B680(globalCtx, 0x6000, &this->actor); + Message_StartTextbox(globalCtx, 0x6000, &this->actor); } void EnGe2_MaintainColliderAndSetAnimState(EnGe2* this, GlobalContext* globalCtx) { @@ -518,7 +518,7 @@ void EnGe2_UpdateFriendly(Actor* thisx, GlobalContext* globalCtx) { EnGe2_MaintainColliderAndSetAnimState(this, globalCtx); this->actionFunc(this, globalCtx); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if ((this->actor.params & 0xFF) == GE2_TYPE_PATROLLING) { this->actor.speedXZ = 0.0f; EnGe2_ChangeAction(this, GE2_ACTION_WAITLOOKATPLAYER); diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 6c50eb168e..4cbd2317c4 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -126,7 +126,7 @@ void EnGe3_LookAtPlayer(EnGe3* this, GlobalContext* globalCtx) { } void EnGe3_Wait(EnGe3* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnGe3_WaitLookAtPlayer; this->actor.update = EnGe3_UpdateWhenNotTalking; this->actor.flags &= ~0x10000; @@ -148,8 +148,8 @@ void EnGe3_WaitTillCardGiven(EnGe3* this, GlobalContext* globalCtx) { } void EnGe3_GiveCard(EnGe3* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actor.flags &= ~0x10000; this->actionFunc = EnGe3_WaitTillCardGiven; func_8002F434(&this->actor, globalCtx, GI_GERUDO_CARD, 10000.0f, 50.0f); @@ -157,7 +157,7 @@ void EnGe3_GiveCard(EnGe3* this, GlobalContext* globalCtx) { } void EnGe3_ForceTalk(EnGe3* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnGe3_GiveCard; } else { if (!(this->unk_30C & 4)) { @@ -205,7 +205,7 @@ void EnGe3_UpdateWhenNotTalking(Actor* thisx, GlobalContext* globalCtx) { EnGe3_UpdateCollision(this, globalCtx); this->actionFunc(this, globalCtx); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnGe3_Wait; this->actor.update = EnGe3_Update; } else { diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 54cd6a1232..cc3b40f7b4 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -916,7 +916,7 @@ void EnGeldB_SpinAttack(EnGeldB* this, GlobalContext* globalCtx) { func_8002F71C(globalCtx, &this->actor, 6.0f, this->actor.yawTowardsPlayer, 6.0f); this->spinAttackState = 2; func_8002DF54(globalCtx, &this->actor, 0x18); - func_8010B680(globalCtx, 0x6003, &this->actor); + Message_StartTextbox(globalCtx, 0x6003, &this->actor); this->timer = 30; this->actor.speedXZ = 0.0f; Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_YOUNG_LAUGH); diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index ccbeb8a999..2e6bec5be6 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -176,7 +176,7 @@ void func_80A3DB04(EnGm* this, GlobalContext* globalCtx) { if (Flags_GetSwitch(globalCtx, this->actor.params)) { EnGm_SetTextID(this); this->actionFunc = func_80A3DC44; - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_80A3DBF4; } else if ((this->collider.base.ocFlags1 & OC1_HIT) || (SQ(dx) + SQ(dz)) < SQ(100.0f)) { this->collider.base.acFlags &= ~AC_HIT; @@ -185,7 +185,7 @@ void func_80A3DB04(EnGm* this, GlobalContext* globalCtx) { } void func_80A3DBF4(EnGm* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->actionFunc = func_80A3DB04; } } @@ -201,7 +201,7 @@ void func_80A3DC44(EnGm* this, GlobalContext* globalCtx) { dx = this->talkPos.x - player->actor.world.pos.x; dz = this->talkPos.z - player->actor.world.pos.z; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { switch (func_80A3D7C8()) { case 0: gSaveContext.infTable[11] |= 1; @@ -225,23 +225,23 @@ void func_80A3DC44(EnGm* this, GlobalContext* globalCtx) { } void func_80A3DD7C(EnGm* this, GlobalContext* globalCtx) { - u8 dialogState = func_8010BDBC(&globalCtx->msgCtx); + u8 dialogState = Message_GetState(&globalCtx->msgCtx); - if ((dialogState == 6 || dialogState == 5) && func_80106BC8(globalCtx)) { + if ((dialogState == TEXT_STATE_DONE || dialogState == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actionFunc = func_80A3DC44; - if (dialogState == 5) { - globalCtx->msgCtx.msgMode = 0x36; - globalCtx->msgCtx.unk_E3E7 = 4; + if (dialogState == TEXT_STATE_EVENT) { + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; + globalCtx->msgCtx.stateTimer = 4; } } } void EnGm_ProcessChoiceIndex(EnGm* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes if (gSaveContext.rupees < 200) { - func_8010B720(globalCtx, 0xC8); + Message_ContinueTextbox(globalCtx, 0xC8); this->actionFunc = func_80A3DD7C; } else { func_8002F434(&this->actor, globalCtx, GI_SWORD_KNIFE, 415.0f, 10.0f); @@ -249,7 +249,7 @@ void EnGm_ProcessChoiceIndex(EnGm* this, GlobalContext* globalCtx) { } break; case 1: // no - func_8010B720(globalCtx, 0x3050); + Message_ContinueTextbox(globalCtx, 0x3050); this->actionFunc = func_80A3DD7C; break; } @@ -266,7 +266,7 @@ void func_80A3DF00(EnGm* this, GlobalContext* globalCtx) { } void func_80A3DF60(EnGm* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { Rupees_ChangeBy(-200); this->actionFunc = func_80A3DC44; } diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index a3600e5221..4d0a642e6f 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -202,9 +202,9 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { f32 yRange = fabsf(thisx->yDistToPlayer) + 1.0f; xzRange = thisx->xzDistToPlayer + 1.0f; - switch (func_8010BDBC(&globalCtx->msgCtx)) { + switch (Message_GetState(&globalCtx->msgCtx)) { if (globalCtx) {} - case 2: + case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x3008: gSaveContext.infTable[14] |= 1; @@ -256,8 +256,8 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { break; } break; - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { switch (thisx->textId) { case 0x300A: if (globalCtx->msgCtx.choiceIndex == 0) { @@ -269,7 +269,7 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { } else { thisx->textId = 0x300D; } - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); unkState = 1; break; case 0x3034: @@ -284,7 +284,7 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { } else { thisx->textId = 0x3033; } - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); unkState = 1; break; case 0x3054: @@ -293,7 +293,7 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { unkState = 2; } else { thisx->textId = 0x3056; - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); unkState = 1; } gSaveContext.infTable[11] |= 0x10; @@ -301,15 +301,15 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { } } break; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { switch (thisx->textId) { case 0x3035: gSaveContext.infTable[16] |= 0x800; case 0x3032: case 0x3033: thisx->textId = 0x3034; - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); unkState = 1; break; default: @@ -318,16 +318,16 @@ s16 EnGo_SetFlagsGetStates(GlobalContext* globalCtx, Actor* thisx) { } } break; - case 6: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { unkState = 3; } break; - case 0: - case 1: - case 3: - case 7: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_9: break; } return unkState; @@ -338,7 +338,7 @@ s32 func_80A3ED24(GlobalContext* globalCtx, EnGo* this, struct_80034A14_arg1* ar if (arg2->unk_00) { arg2->unk_00 = unkFunc2(globalCtx, &this->actor); return false; - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { arg2->unk_00 = 1; return true; } else if (!func_8002F2CC(&this->actor, globalCtx, arg3)) { @@ -865,20 +865,20 @@ void EnGo_BiggoronActionFunc(EnGo* this, GlobalContext* globalCtx) { this->unk_21E = 100; this->unk_1E0.unk_00 = 0; EnGo_SetupAction(this, EnGo_Eyedrops); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; gSaveContext.timer2State = 0; OnePointCutscene_Init(globalCtx, 4190, -99, &this->actor, MAIN_CAM); } else { this->unk_1E0.unk_00 = 0; EnGo_SetupAction(this, EnGo_GetItem); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); EnGo_GetItem(this, globalCtx); } } } else if (((this->actor.params & 0xF0) == 0) && (this->unk_1E0.unk_00 == 2)) { EnGo_SetupAction(this, EnGo_GetItem); - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } else { if ((DECR(this->unk_212) == 0) && !EnGo_IsCameraModified(this, globalCtx)) { EnGo_ReverseAnimation(this); @@ -986,11 +986,11 @@ void func_80A40C78(EnGo* this, GlobalContext* globalCtx) { gSaveContext.bgsFlag = true; } else if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_PRESCRIPTION) { this->actor.textId = 0x3058; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E0.unk_00 = 1; } else if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK) { this->actor.textId = 0x305C; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E0.unk_00 = 1; Environment_ClearBgsDayCount(); } @@ -1000,7 +1000,7 @@ void func_80A40C78(EnGo* this, GlobalContext* globalCtx) { void EnGo_Eyedrops(EnGo* this, GlobalContext* globalCtx) { if (DECR(this->unk_21E) == 0) { this->actor.textId = 0x305A; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E0.unk_00 = 1; EnGo_SetupAction(this, func_80A40DCC); } @@ -1010,7 +1010,7 @@ void func_80A40DCC(EnGo* this, GlobalContext* globalCtx) { if (this->unk_1E0.unk_00 == 2) { EnGo_ChangeAnimation(this, 1); this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronAnim_004930); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); EnGo_SetupAction(this, EnGo_GetItem); EnGo_GetItem(this, globalCtx); } diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index cacef5e040..4a7f95176f 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -270,9 +270,10 @@ void EnGo2_GetItem(EnGo2* this, GlobalContext* globalCtx, s32 getItemId) { } s32 EnGo2_GetDialogState(EnGo2* this, GlobalContext* globalCtx) { - s16 dialogState = func_8010BDBC(&globalCtx->msgCtx); + s16 dialogState = Message_GetState(&globalCtx->msgCtx); - if ((this->dialogState == 10) || (this->dialogState == 5) || (this->dialogState == 2) || (this->dialogState == 1)) { + if ((this->dialogState == TEXT_STATE_AWAITING_NEXT) || (this->dialogState == TEXT_STATE_EVENT) || + (this->dialogState == TEXT_STATE_CLOSING) || (this->dialogState == TEXT_STATE_DONE_HAS_NEXT)) { if (dialogState != this->dialogState) { this->unk_20C++; } @@ -318,16 +319,16 @@ u16 EnGo2_GetTextIdGoronCityRollingBig(GlobalContext* globalCtx, EnGo2* this) { s16 EnGo2_GetStateGoronCityRollingBig(GlobalContext* globalCtx, EnGo2* this) { s32 bombBagUpgrade; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: return 2; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x3012) { this->actionFunc = EnGo2_SetupGetItem; bombBagUpgrade = CUR_CAPACITY(UPG_BOMB_BAG) == 30 ? GI_BOMB_BAG_40 : GI_BOMB_BAG_30; EnGo2_GetItem(this, globalCtx, bombBagUpgrade); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gSaveContext.infTable[17] |= 0x4000; return 2; } else { @@ -345,16 +346,16 @@ u16 EnGo2_GetTextIdGoronDmtBombFlower(GlobalContext* globalCtx, EnGo2* this) { // DMT Goron by Bomb Flower Choice s16 EnGo2_GetStateGoronDmtBombFlower(GlobalContext* globalCtx, EnGo2* this) { - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: if ((this->actor.textId == 0x300B) && (gSaveContext.infTable[14] & 0x800) == 0) { gSaveContext.infTable[14] |= 0x800; return 2; } else { return 0; } - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { // Ask question to DMT Goron by bomb flower if (this->actor.textId == 0x300A) { if (globalCtx->msgCtx.choiceIndex == 0) { @@ -362,7 +363,7 @@ s16 EnGo2_GetStateGoronDmtBombFlower(GlobalContext* globalCtx, EnGo2* this) { } else { this->actor.textId = 0x300D; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } return 1; } @@ -380,7 +381,7 @@ u16 EnGo2_GetTextIdGoronDmtRollingSmall(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronDmtRollingSmall(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return 0; } else { return 1; @@ -398,7 +399,7 @@ u16 EnGo2_GetTextIdGoronDmtDcEntrance(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronDmtDcEntrance(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x3008) { gSaveContext.infTable[14] |= 0x1; } @@ -419,7 +420,7 @@ u16 EnGo2_GetTextIdGoronCityEntrance(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronCityEntrance(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x3014) { gSaveContext.infTable[15] |= 0x1; } @@ -440,7 +441,7 @@ u16 EnGo2_GetTextIdGoronCityIsland(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronCityIsland(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x3016) { gSaveContext.infTable[15] |= 0x10; } @@ -463,7 +464,7 @@ u16 EnGo2_GetTextIdGoronCityLowestFloor(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronCityLowestFloor(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x3018) { gSaveContext.infTable[15] |= 0x100; } @@ -480,7 +481,7 @@ u16 EnGo2_GetTextIdGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { return gSaveContext.infTable[16] & 0x4000 ? 0x3038 : 0x3037; } else if (gSaveContext.infTable[16] & 0x1000) { this->unk_20C = 0; - this->dialogState = 0; + this->dialogState = TEXT_STATE_NONE; return gSaveContext.infTable[16] & 0x400 ? 0x3033 : 0x3032; } else { return 0x3030; @@ -489,7 +490,7 @@ u16 EnGo2_GetTextIdGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { s16 EnGo2_GetStateGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { switch (EnGo2_GetDialogState(this, globalCtx)) { - case 2: + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x3036: EnGo2_GetItem(this, globalCtx, GI_TUNIC_GORON); @@ -500,8 +501,8 @@ s16 EnGo2_GetStateGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { default: return 0; } - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x3034) { if (globalCtx->msgCtx.choiceIndex == 0) { this->actor.textId = gSaveContext.infTable[16] & 0x800 ? 0x3033 : 0x3035; @@ -514,22 +515,22 @@ s16 EnGo2_GetStateGoronCityLink(GlobalContext* globalCtx, EnGo2* this) { Audio_StopSfxById(NA_SE_EN_GOLON_CRY); } } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_20C = 0; } } else { break; } return 1; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { switch (this->actor.textId) { case 0x3035: gSaveContext.infTable[16] |= 0x800; case 0x3032: case 0x3033: this->actor.textId = 0x3034; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); return 1; default: return 2; @@ -562,7 +563,7 @@ s16 EnGo2_GetStateGoronDmtBiggoron(GlobalContext* globalCtx, EnGo2* this) { u8 dialogState = this->dialogState; switch (EnGo2_GetDialogState(this, globalCtx)) { - case 6: + case TEXT_STATE_DONE: if (this->actor.textId == 0x305E) { if (!gSaveContext.bgsFlag) { EnGo2_GetItem(this, globalCtx, GI_SWORD_BGS); @@ -574,25 +575,25 @@ s16 EnGo2_GetStateGoronDmtBiggoron(GlobalContext* globalCtx, EnGo2* this) { } else { return 0; } - case 3: + case TEXT_STATE_DONE_FADING: switch (this->actor.textId) { case 0x305E: if (func_8002F368(globalCtx) != EXCH_ITEM_CLAIM_CHECK) { break; } case 0x3059: - if (dialogState == 0) { + if (dialogState == TEXT_STATE_NONE) { func_800F4524(&D_801333D4, NA_SE_EN_GOLON_WAKE_UP, 60); } case 0x3054: - if (dialogState == 0) { + if (dialogState == TEXT_STATE_NONE) { Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); } } return 1; - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { if ((this->actor.textId == 0x3054) || (this->actor.textId == 0x3055)) { if (globalCtx->msgCtx.choiceIndex == 0) { EnGo2_GetItem(this, globalCtx, GI_PRESCRIPTION); @@ -600,15 +601,15 @@ s16 EnGo2_GetStateGoronDmtBiggoron(GlobalContext* globalCtx, EnGo2* this) { return 2; } this->actor.textId = 0x3056; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } return 1; } break; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x3059) { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->actionFunc = EnGo2_BiggoronEyedrops; } return 2; @@ -626,14 +627,14 @@ u16 EnGo2_GetTextIdGoronFireGeneric(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronFireGeneric(GlobalContext* globalCtx, EnGo2* this) { - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: return 0; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { if (this->actor.textId == 0x3071) { this->actor.textId = EnGo2_GoronFireGenericGetTextId(this); - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } return 1; } @@ -647,7 +648,7 @@ u16 EnGo2_GetTextIdGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x300E) { gSaveContext.infTable[14] |= 0x8; } @@ -663,7 +664,7 @@ u16 EnGo2_GetTextIdGoronMarketBazaar(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronMarketBazaar(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return 0; } else { return 1; @@ -683,7 +684,7 @@ u16 EnGo2_GetTextIdGoronCityLostWoods(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronCityLostWoods(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->actor.textId == 0x3024) { gSaveContext.infTable[14] |= 0x40; } @@ -703,7 +704,7 @@ u16 EnGo2_GetTextIdGoronDmtFairyHint(GlobalContext* globalCtx, EnGo2* this) { } s16 EnGo2_GetStateGoronDmtFairyHint(GlobalContext* globalCtx, EnGo2* this) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return 0; } else { return 1; @@ -791,7 +792,7 @@ s32 func_80A44790(EnGo2* this, GlobalContext* globalCtx) { } else if (((this->actor.params & 0x1F) == GORON_DMT_BIGGORON) && ((this->collider.base.ocFlags2 & 1) == 0)) { return false; } else { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_194.unk_00 = 1; return true; } else if (this->unk_194.unk_00 != 0) { @@ -1756,7 +1757,7 @@ void EnGo2_SetupGetItem(EnGo2* this, GlobalContext* globalCtx) { } void EnGo2_SetGetItem(EnGo2* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->unk_194.unk_00 = 0; switch (this->getItemId) { case GI_CLAIM_CHECK: @@ -1803,7 +1804,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, GlobalContext* globalCtx) { } else { func_800F4524(&D_801333D4, NA_SE_EN_GOLON_GOOD_BIG, 60); func_80034EC0(&this->skelAnime, sAnimations, 6); - func_8010B720(globalCtx, 0x305A); + Message_ContinueTextbox(globalCtx, 0x305A); this->eyeMouthTexState = 3; this->goronState++; func_800F483C(0x7F, 5); @@ -1813,7 +1814,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, GlobalContext* globalCtx) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->eyeMouthTexState = 0; } - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { func_80034EC0(&this->skelAnime, sAnimations, 1); this->actor.flags |= 1; this->unk_26E = 2; @@ -1832,10 +1833,10 @@ void EnGo2_GoronLinkStopRolling(EnGo2* this, GlobalContext* globalCtx) { switch (this->goronState) { case 0: - if (func_8010BDBC(&globalCtx->msgCtx)) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE) { return; } else { - func_8010B680(globalCtx, 0x3031, NULL); + Message_StartTextbox(globalCtx, 0x3031, NULL); player->actor.freezeTimer = 10; this->goronState++; } @@ -1845,7 +1846,7 @@ void EnGo2_GoronLinkStopRolling(EnGo2* this, GlobalContext* globalCtx) { return; } - if (func_8010BDBC(&globalCtx->msgCtx) != 2) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_CLOSING) { player->actor.freezeTimer = 10; } else { gSaveContext.infTable[16] |= 0x1000; @@ -1862,9 +1863,9 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, GlobalContext* globalCtx) { switch (this->goronState) { case 0: // Wake up - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { EnGo2_GoronFireCamera(this, globalCtx); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; func_80034EC0(&this->skelAnime, sAnimations, 2); this->waypoint = 1; this->skelAnime.playSpeed = 2.0f; @@ -1884,7 +1885,7 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, GlobalContext* globalCtx) { player->actor.world.pos.z = (f32)((Math_CosS(this->actor.world.rot.y) * -30.0f) + this->actor.world.pos.z); func_8002DF54(globalCtx, &this->actor, 8); - func_800F5C64(NA_BGM_APPEAR); + Audio_PlayFanfare(NA_BGM_APPEAR); } break; case 2: // Walking away @@ -1918,7 +1919,7 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, GlobalContext* globalCtx) { break; } case 4: // Finalize walking away - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); EnGo2_GoronFireClearCamera(this, globalCtx); func_8002DF54(globalCtx, &this->actor, 7); Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 66b63f3fbf..3ed5e9f5fa 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -120,9 +120,9 @@ void EnGs_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 func_80A4E3EC(EnGs* this, GlobalContext* globalCtx) { s32 ret = 2; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 6: - if (func_80106BC8(globalCtx)) { + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { switch (this->actor.textId) { case 0x2054: this->actor.textId = (this->actor.params & 0xFF) + 0x400; @@ -147,26 +147,28 @@ void func_80A4E470(EnGs* this, GlobalContext* globalCtx) { if (this->unk_19D == 0) { player->stateFlags2 |= 0x800000; if (player->stateFlags2 & 0x1000000) { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); this->unk_19D |= 1; } } else if (this->unk_19D & 1) { - if (globalCtx->msgCtx.unk_E3EE == 4) { - if ((globalCtx->msgCtx.unk_E3F2 == 6) || (globalCtx->msgCtx.unk_E3F2 == 7) || - (globalCtx->msgCtx.unk_E3F2 == 8) || (globalCtx->msgCtx.unk_E3F2 == 9) || - (globalCtx->msgCtx.unk_E3F2 == 10)) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + if ((globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_SARIAS) || + (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_EPONAS) || + (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_LULLABY) || + (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_SUNS) || + (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_TIME)) { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y + 40.0f, this->actor.world.pos.z, 0, 0, 0, FAIRY_HEAL_TIMED); Audio_PlayActorSound2(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY); - } else if (globalCtx->msgCtx.unk_E3F2 == 11) { + } else if (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_STORMS) { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y + 40.0f, this->actor.world.pos.z, 0, 0, 0, FAIRY_HEAL_BIG); Audio_PlayActorSound2(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY); } this->unk_19D = 0; Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); - } else if (globalCtx->msgCtx.unk_E3EE == 1) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { player->stateFlags2 |= 0x800000; } } @@ -178,14 +180,14 @@ void func_80A4E648(EnGs* this, GlobalContext* globalCtx) { s16 sp24; if (this->unk_19C == 1) { - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_19C = 2; } else if (this->unk_19C == 2) { this->unk_19C = func_80A4E3EC(this, globalCtx); - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_19C = 2; } else { - func_8002F374(globalCtx, &this->actor, &sp26, &sp24); + Actor_GetScreenPos(globalCtx, &this->actor, &sp26, &sp24); if ((sp26 >= 0) && (sp26 <= SCREEN_WIDTH) && (sp24 >= 0) && (sp24 <= SCREEN_HEIGHT) && (this->unk_19C != 3)) { if (func_8002F2CC(&this->actor, globalCtx, 40.0f) == 1) { if (Player_GetMask(globalCtx) == PLAYER_MASK_TRUTH) { @@ -221,7 +223,7 @@ void func_80A4E910(EnGs* this, GlobalContext* globalCtx) { } else if ((this->unk_19F == 1) && (func_80A4E754(this, globalCtx, &this->unk_1E8, &this->unk_1EC, &this->unk_200, 0.8f, 0.007f, 0.001f, 7, 0) == 0.0f)) { if (!Gameplay_InCsMode(globalCtx)) { - func_8010B680(globalCtx, 0x71B1, NULL); + Message_StartTextbox(globalCtx, 0x71B1, NULL); } this->unk_19C = 0; this->actionFunc = func_80A4F734; diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index d7544dca82..02e0d296a7 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -130,7 +130,7 @@ void func_80A5046C(EnGuest* this) { } void func_80A50518(EnGuest* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_80A5057C; } else if (this->actor.xzDistToPlayer < 100.0f) { func_8002F2CC(&this->actor, globalCtx, 100.0f); @@ -138,10 +138,8 @@ void func_80A50518(EnGuest* this, GlobalContext* globalCtx) { } void func_80A5057C(EnGuest* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6) { - if (func_80106BC8(globalCtx) != 0) { - this->actionFunc = func_80A50518; - } + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { + this->actionFunc = func_80A50518; } } diff --git a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c index c1d2a82449..c2fc3c1695 100644 --- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c +++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c @@ -221,8 +221,8 @@ void EnHeishi1_SetupMoveToLink(EnHeishi1* this, GlobalContext* globalCtx) { Animation_Change(&this->skelAnime, &gEnHeishiWalkAnim, 3.0f, 0.0f, (s16)frameCount, ANIMMODE_LOOP, -3.0f); this->bodyTurnSpeed = 0.0f; this->moveSpeed = 0.0f; - func_8010B680(globalCtx, 0x702D, &this->actor); - Interface_SetDoAction(globalCtx, 0x12); + Message_StartTextbox(globalCtx, 0x702D, &this->actor); + Interface_SetDoAction(globalCtx, DO_ACTION_STOP); this->actionFunc = EnHeishi1_MoveToLink; } @@ -346,8 +346,8 @@ void EnHeishi1_Kick(EnHeishi1* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); if (!this->loadStarted) { // if dialog state is 5 and textbox has been advanced, kick player out - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx))) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (!this->loadStarted) { gSaveContext.eventChkInf[4] |= 0x4000; globalCtx->nextEntranceIndex = 0x4FA; @@ -372,7 +372,7 @@ void EnHeishi1_WaitNight(EnHeishi1* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); if (this->actor.xzDistToPlayer < 100.0f) { - func_8010B680(globalCtx, 0x702D, &this->actor); + Message_StartTextbox(globalCtx, 0x702D, &this->actor); func_80078884(NA_SE_SY_FOUND); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" func_8002DF54(globalCtx, &this->actor, 1); diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 41ce0c538e..d180fd421e 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -188,26 +188,26 @@ void func_80A53278(EnHeishi2* this, GlobalContext* globalCtx) { if (Text_GetFaceReaction(globalCtx, 5) != 0) { this->actor.textId = Text_GetFaceReaction(globalCtx, 5); this->unk_30B = 1; - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->actionFunc = func_80A5475C; } else if ((gSaveContext.eventChkInf[0] & 0x200) && (gSaveContext.eventChkInf[2] & 0x20) && (gSaveContext.eventChkInf[3] & 0x80)) { // "Get all spiritual stones!" osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 全部の精霊石GET! ☆☆☆☆☆ \n" VT_RST); - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7006; this->actionFunc = func_80A5475C; } else if (!IS_DAY) { // "Sleep early for children!" osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 子供ははやくネロ! ☆☆☆☆☆ \n" VT_RST); - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7002; this->actionFunc = func_80A5475C; } else if (this->unk_30C != 0) { // "Anything passes" osSyncPrintf(VT_FGCOL(BLUE) " ☆☆☆☆☆ なんでも通るよ ☆☆☆☆☆ \n" VT_RST); - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7099; this->actionFunc = func_80A5475C; } else if (gSaveContext.eventChkInf[1] & 4) { @@ -221,13 +221,13 @@ void func_80A53278(EnHeishi2* this, GlobalContext* globalCtx) { osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ 2回目袖の下開始! ☆☆☆☆☆ \n" VT_RST); this->actor.textId = 0x7072; } - this->unk_300 = 4; + this->unk_300 = TEXT_STATE_CHOICE; this->actionFunc = func_80A5475C; } else { // "That's okay" osSyncPrintf(VT_FGCOL(CYAN) " ☆☆☆☆☆ それはとおらんよぉ ☆☆☆☆☆ \n" VT_RST); - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->actor.textId = 0x7029; this->actionFunc = func_80A5475C; } @@ -235,8 +235,8 @@ void func_80A53278(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A5344C(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - this->unk_300 = 5; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + this->unk_300 = TEXT_STATE_EVENT; switch (globalCtx->msgCtx.choiceIndex) { case 0: if (gSaveContext.rupees >= 10) { @@ -257,19 +257,16 @@ void func_80A5344C(EnHeishi2* this, GlobalContext* globalCtx) { default: break; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } } void func_80A53538(EnHeishi2* this, GlobalContext* globalCtx) { - SkelAnime_Update(&this->skelAnime); - if (this->unk_300 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx) != 0) { - func_8002DF54(globalCtx, NULL, 8); - globalCtx->msgCtx.msgMode = 0x37; - this->actionFunc = func_80A535BC; - } + if (this->unk_300 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + func_8002DF54(globalCtx, NULL, 8); + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + this->actionFunc = func_80A535BC; } } @@ -337,7 +334,7 @@ void func_80A53850(EnHeishi2* this, GlobalContext* globalCtx) { if ((this->unk_2F2[0] == 0) || (gate->unk_168 == 0)) { Gameplay_ClearCamera(globalCtx, this->cameraId); Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_ACTIVE); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->unk_30C = 1; func_8002DF54(globalCtx, NULL, 7); this->actionFunc = func_80A531E4; @@ -364,24 +361,24 @@ void func_80A5399C(EnHeishi2* this, GlobalContext* globalCtx) { } else { this->actor.textId = 0x200B; } - this->unk_300 = 4; + this->unk_300 = TEXT_STATE_CHOICE; this->unk_30B = 1; var = 1; } else { this->actor.textId = 0x2016; - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; var = 1; } } else { this->actor.textId = 0x2020; - this->unk_300 = 5; + this->unk_300 = TEXT_STATE_EVENT; this->unk_30E = 0; } if (Text_GetFaceReaction(globalCtx, 5) != 0) { if (var == 0) { this->actor.textId = Text_GetFaceReaction(globalCtx, 5); this->unk_30B = 1; - this->unk_300 = 6; + this->unk_300 = TEXT_STATE_DONE; this->unk_30E = 0; } } @@ -405,13 +402,13 @@ void func_80A53AD4(EnHeishi2* this, GlobalContext* globalCtx) { } else { this->actor.textId = 0x200E; } - this->unk_300 = 6; - if (func_8002F194(&this->actor, globalCtx) != 0) { + this->unk_300 = TEXT_STATE_DONE; + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { exchangeItemId = func_8002F368(globalCtx); if (exchangeItemId == EXCH_ITEM_LETTER_ZELDA) { func_80078884(NA_SE_SY_CORRECT_CHIME); player->actor.textId = 0x2010; - this->unk_300 = 5; + this->unk_300 = TEXT_STATE_EVENT; this->actionFunc = func_80A53C0C; } else if (exchangeItemId != EXCH_ITEM_NONE) { player->actor.textId = 0x200F; @@ -427,12 +424,10 @@ void func_80A53AD4(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A53C0C(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (this->unk_300 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx) != 0) { - func_8002DF54(globalCtx, 0, 8); - globalCtx->msgCtx.msgMode = 0x37; - this->actionFunc = func_80A53C90; - } + if ((this->unk_300 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + func_8002DF54(globalCtx, 0, 8); + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + this->actionFunc = func_80A53C90; } } @@ -510,10 +505,10 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) { if ((this->unk_30A != 2)) { if (this->unk_30A == 0) { this->actor.textId = 0x2015; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->actionFunc = func_80A54038; } else { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); func_8002DF54(globalCtx, NULL, 7); this->actionFunc = func_80A53908; } @@ -521,7 +516,7 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) { this->unk_30E = 0; this->actor.textId = 0x2021; Rupees_ChangeBy(15); - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->actionFunc = func_80A5427C; } } @@ -529,23 +524,21 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A54038(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8010BDBC(&globalCtx->msgCtx) == 5) { - if (func_80106BC8(globalCtx) != 0) { - gSaveContext.infTable[7] |= 0x40; - func_80106CCC(globalCtx); - func_8002DF54(globalCtx, 0, 7); - this->actionFunc = func_80A53908; - } + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + gSaveContext.infTable[7] |= 0x40; + Message_CloseTextbox(globalCtx); + func_8002DF54(globalCtx, 0, 7); + this->actionFunc = func_80A53908; } } void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: this->actor.textId = 0x2020; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); Player_UnsetMask(globalCtx); gSaveContext.infTable[7] |= 0x80; gSaveContext.itemGetInf[3] |= 0x100; @@ -562,8 +555,8 @@ void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) { case 1: this->unk_30E = 1; this->actor.textId = 0x200C; - func_8010B720(globalCtx, this->actor.textId); - this->unk_300 = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->unk_300 = TEXT_STATE_EVENT; if (this->unk_30A == 0) { this->actionFunc = func_80A5427C; } else { @@ -575,24 +568,24 @@ void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A541FC(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.textId = 0x2021; Rupees_ChangeBy(15); - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->actionFunc = func_80A5427C; } } void func_80A5427C(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { if (this->unk_30E == 0) { this->unk_30E = 0; this->unk_30A = this->unk_30E; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actionFunc = func_80A53908; } else { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->actionFunc = func_80A54320; } } @@ -645,7 +638,7 @@ void func_80A544AC(EnHeishi2* this, GlobalContext* globalCtx) { Math_ApproachF(&this->unk_2E4, 3000.0f, 1.0f, 500.0f); this->actor.world.rot.z = this->actor.shape.rot.z; if (this->actor.shape.rot.z < -6000) { - func_8010B680(globalCtx, 0x708F, NULL); + Message_StartTextbox(globalCtx, 0x708F, NULL); this->actor.flags |= 0x10000; this->actionFunc = func_80A5455C; this->unk_2E4 = 0.0f; @@ -658,9 +651,9 @@ void func_80A5455C(EnHeishi2* this, GlobalContext* globalCtx) { f32 rotY; EnBom* bomb; - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_8002DF54(globalCtx, NULL, 7); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); pos.x = Rand_CenteredFloat(20.0f) + this->unk_274.x; pos.y = Rand_CenteredFloat(20.0f) + (this->unk_274.y - 40.0f); @@ -714,7 +707,7 @@ void func_80A5475C(EnHeishi2* this, GlobalContext* globalCtx) { } } - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->type == 2) { if (this->unk_30E == 1) { this->actionFunc = func_80A5344C; @@ -724,15 +717,15 @@ void func_80A5475C(EnHeishi2* this, GlobalContext* globalCtx) { return; } } else if (this->type == 5) { - if (this->unk_300 == 6) { + if (this->unk_300 == TEXT_STATE_DONE) { this->actionFunc = func_80A5399C; } - if (this->unk_300 == 5) { + if (this->unk_300 == TEXT_STATE_EVENT) { this->actionFunc = func_80A54954; } - if (this->unk_300 == 4) { + if (this->unk_300 == TEXT_STATE_CHOICE) { this->unk_309 = 1; func_80078884(NA_SE_SY_TRE_BOX_APPEAR); this->actionFunc = func_80A540C0; @@ -758,15 +751,13 @@ void func_80A54954(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A549E8(EnHeishi2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (this->unk_300 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx) != 0) { - func_80106CCC(globalCtx); - if (this->type == 2) { - this->actionFunc = func_80A531E4; - } - if (this->type == 5) { - this->actionFunc = func_80A53908; - } + if (this->unk_300 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); + if (this->type == 2) { + this->actionFunc = func_80A531E4; + } + if (this->type == 5) { + this->actionFunc = func_80A53908; } } } diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index 628d0d9944..8f9fb78e61 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -133,7 +133,7 @@ void EnHeishi3_StandSentinelInGrounds(EnHeishi3* this, GlobalContext* globalCtx) if ((this->actor.xzDistToPlayer < sightRange) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 100.0f) && (sPlayerCaught == 0)) { sPlayerCaught = 1; - func_8010B680(globalCtx, 0x702D, &this->actor); + Message_StartTextbox(globalCtx, 0x702D, &this->actor); func_80078884(NA_SE_SY_FOUND); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" func_8002DF54(globalCtx, &this->actor, 1); @@ -161,7 +161,7 @@ void EnHeishi3_StandSentinelInCastle(EnHeishi3* this, GlobalContext* globalCtx) } } sPlayerCaught = 1; - func_8010B680(globalCtx, 0x702D, &this->actor); + Message_StartTextbox(globalCtx, 0x702D, &this->actor); func_80078884(NA_SE_SY_FOUND); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発見! ☆☆☆☆☆ \n" VT_RST); // "Discovered!" func_8002DF54(globalCtx, &this->actor, 1); @@ -202,7 +202,8 @@ void EnHeishi3_ResetAnimationToIdle(EnHeishi3* this, GlobalContext* globalCtx) { // This function initiates the respawn after the player gets caught. void func_80A55D00(EnHeishi3* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0) && (this->respawnFlag == 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx) && + (this->respawnFlag == 0)) { gSaveContext.eventChkInf[4] |= 0x4000; globalCtx->nextEntranceIndex = 0x47E; // Hyrule Castle from Guard Capture (outside) globalCtx->sceneLoadFlag = 0x14; diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 8955307c7c..791693c732 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -225,12 +225,12 @@ void func_80A5673C(EnHeishi4* this, GlobalContext* globalCtx) { Animation_Change(&this->skelAnime, &gEnHeishiDyingGuardAnim_00C444, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, -10.0f); this->actor.textId = 0x7007; - this->unk_282 = 5; + this->unk_282 = TEXT_STATE_EVENT; this->unk_284 = 1; osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ デモ開始! ☆☆☆☆☆ \n" VT_RST); } else { this->actor.textId = 0x7008; - this->unk_282 = 6; + this->unk_282 = TEXT_STATE_DONE; osSyncPrintf(VT_FGCOL(BLUE) " ☆☆☆☆☆ 返事なし ☆☆☆☆☆ \n" VT_RST); } this->actionFunc = func_80A56874; @@ -243,7 +243,7 @@ void func_80A56874(EnHeishi4* this, GlobalContext* globalCtx) { if (this->unk_284 != 0) { SkelAnime_Update(&this->skelAnime); } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->unk_284 == 0) { this->actionFunc = func_80A5673C; @@ -265,13 +265,11 @@ void func_80A56900(EnHeishi4* this, GlobalContext* globalCtx) { void func_80A56994(EnHeishi4* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); func_80038290(globalCtx, &this->actor, &this->unk_260, &this->unk_266, this->actor.focus.pos); - if (this->unk_282 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx) != 0) { - func_80106CCC(globalCtx); - gSaveContext.infTable[6] |= 0x1000; - func_8002DF54(globalCtx, NULL, 8); - this->actionFunc = func_80A56A50; - } + if ((this->unk_282 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); + gSaveContext.infTable[6] |= 0x1000; + func_8002DF54(globalCtx, NULL, 8); + this->actionFunc = func_80A56A50; } } @@ -326,7 +324,7 @@ void func_80A56B40(EnHeishi4* this, GlobalContext* globalCtx) { } } } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) { this->unk_284 = 1; this->actionFunc = func_80A563BC; diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index c802237243..7cefd762a1 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -372,7 +372,7 @@ void EnHintnuts_Run(EnHintnuts* this, GlobalContext* globalCtx) { } this->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { EnHintnuts_SetupTalk(this); } else if (this->animFlagAndTimer == 0 && Actor_WorldDistXZToPoint(&this->actor, &this->actor.home.pos) < 20.0f && fabsf(this->actor.world.pos.y - this->actor.home.pos.y) < 2.0f) { @@ -391,7 +391,7 @@ void EnHintnuts_Run(EnHintnuts* this, GlobalContext* globalCtx) { void EnHintnuts_Talk(EnHintnuts* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 0x3, 0x400, 0x100); - if (func_8010BDBC(&globalCtx->msgCtx) == 5) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) { EnHintnuts_SetupLeave(this, globalCtx); } } @@ -419,7 +419,7 @@ void EnHintnuts_Leave(EnHintnuts* this, GlobalContext* globalCtx) { Math_ScaledStepToS(&this->actor.shape.rot.y, temp_a1, 0x800); this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->animFlagAndTimer == 0) || (this->actor.projectedPos.z < 0.0f)) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); if (this->actor.params == 3) { Flags_SetClear(globalCtx, this->actor.room); sPuzzleCounter = 3; diff --git a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c index e4a874e437..ed70298f35 100644 --- a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c +++ b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c @@ -360,7 +360,7 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, GlobalContext* if ((this->fenceCheck[i - 1] == 0) && !(this->raceFlags & MALONRACE_BROKE_RULE)) { this->raceFlags |= MALONRACE_BROKE_RULE; - func_8010B680(globalCtx, 0x208C, NULL); + Message_StartTextbox(globalCtx, 0x208C, NULL); this->result = 4; this->finishTimer = 30; } @@ -371,7 +371,7 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, GlobalContext* AT_FINISH_LINE(player2->rideActor)) { if ((this->lapCount == 1) && (this->fenceCheck[15] == 0) && (player2->rideActor->prevPos.x < -200.0f)) { this->raceFlags |= MALONRACE_BROKE_RULE; - func_8010B680(globalCtx, 0x208C, NULL); + Message_StartTextbox(globalCtx, 0x208C, NULL); this->result = MALONRACE_FAILURE; this->finishTimer = 30; } else if (this->fenceCheck[15] == 1) { @@ -384,15 +384,15 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, GlobalContext* } else if ((this->fenceCheck[7] == 1) && !(this->raceFlags & MALONRACE_SECOND_LAP)) { this->lapCount = 1; this->raceFlags |= MALONRACE_SECOND_LAP; - func_8010B680(globalCtx, 0x208D, NULL); + Message_StartTextbox(globalCtx, 0x208D, NULL); } else if (this->fenceCheck[7] == 0) { this->raceFlags |= MALONRACE_BROKE_RULE; - func_8010B680(globalCtx, 0x208C, NULL); + Message_StartTextbox(globalCtx, 0x208C, NULL); this->result = MALONRACE_FAILURE; this->finishTimer = 30; } else if (player2->rideActor->prevPos.x > 80.0f) { this->raceFlags |= MALONRACE_BROKE_RULE; - func_8010B680(globalCtx, 0x208C, NULL); + Message_StartTextbox(globalCtx, 0x208C, NULL); this->result = MALONRACE_FAILURE; this->finishTimer = 30; } diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 1e34e69f4a..137de508a7 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -103,7 +103,7 @@ void EnHs_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 func_80A6E53C(EnHs* this, GlobalContext* globalCtx, u16 textId, EnHsActionFunc actionFunc) { s16 yawDiff; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { func_80A6E3A0(this, actionFunc); return 1; } @@ -119,7 +119,7 @@ s32 func_80A6E53C(EnHs* this, GlobalContext* globalCtx, u16 textId, EnHsActionFu } void func_80A6E5EC(EnHs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80A6E3A0(this, func_80A6E6B0); } @@ -127,7 +127,7 @@ void func_80A6E5EC(EnHs* this, GlobalContext* globalCtx) { } void func_80A6E630(EnHs* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { func_80088AA0(180); func_80A6E3A0(this, func_80A6E6B0); gSaveContext.eventInf[1] &= ~1; @@ -141,13 +141,13 @@ void func_80A6E6B0(EnHs* this, GlobalContext* globalCtx) { } void func_80A6E6D8(EnHs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80A6E3A0(this, func_80A6E9AC); } } void func_80A6E70C(EnHs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80A6E3A0(this, func_80A6E9AC); } } @@ -164,14 +164,14 @@ void func_80A6E740(EnHs* this, GlobalContext* globalCtx) { } void func_80A6E7BC(EnHs* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: func_80A6E3A0(this, func_80A6E740); func_8002F434(&this->actor, globalCtx, GI_ODD_MUSHROOM, 10000.0f, 50.0f); break; case 1: - func_8010B720(globalCtx, 0x10B4); + Message_ContinueTextbox(globalCtx, 0x10B4); func_80A6E3A0(this, func_80A6E70C); break; } @@ -186,8 +186,8 @@ void func_80A6E7BC(EnHs* this, GlobalContext* globalCtx) { void func_80A6E8CC(EnHs* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x10B3); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x10B3); func_80A6E3A0(this, func_80A6E7BC); Animation_Change(&this->skelAnime, &object_hs_Anim_000528, 1.0f, 0.0f, Animation_GetLastFrame(&object_hs_Anim_000528), ANIMMODE_LOOP, 8.0f); @@ -207,7 +207,7 @@ void func_80A6E9AC(EnHs* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s16 yawDiff; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (func_8002F368(globalCtx) == 7) { player->actor.textId = 0x10B2; func_80A6E3A0(this, func_80A6E8CC); diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index 4d90dc26ce..66edaaf463 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -75,7 +75,7 @@ void EnHs2_Destroy(Actor* thisx, GlobalContext* globalCtx) { } s32 func_80A6F0B4(EnHs2* this, GlobalContext* globalCtx, u16 textId, EnHs2ActionFunc actionFunc) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = actionFunc; return 1; } @@ -90,7 +90,7 @@ s32 func_80A6F0B4(EnHs2* this, GlobalContext* globalCtx, u16 textId, EnHs2Action } void func_80A6F164(EnHs2* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = func_80A6F1A4; } this->unk_2A8 |= 0x1; diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 640401c900..cd79ae19ed 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -559,16 +559,16 @@ s16 func_80A70058(GlobalContext* globalCtx, Actor* thisx) { s16 beggarItems[] = { ITEM_BLUE_FIRE, ITEM_FISH, ITEM_BUG, ITEM_FAIRY }; s16 beggarRewards[] = { 150, 100, 50, 25 }; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 4: - case 6: - case 7: - case 8: - case 9: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CHOICE: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: return 1; - case 3: + case TEXT_STATE_DONE_FADING: switch (this->actor.textId) { case 0x709E: case 0x709F: @@ -584,12 +584,12 @@ s16 func_80A70058(GlobalContext* globalCtx, Actor* thisx) { case 0x70F3: if (this->skelAnime.animation != &gObjOsAnim_33B4) { func_80034EC0(&this->skelAnime, sAnimationInfo, ENHY_ANIM_23); - func_800F5C64(NA_BGM_ITEM_GET | 0x900); + Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900); } break; } return 1; - case 2: + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x70F0: case 0x70F1: @@ -665,8 +665,8 @@ s16 func_80A70058(GlobalContext* globalCtx, Actor* thisx) { break; } return 0; - case 5: - if (!func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (!Message_ShouldAdvance(globalCtx)) { return 1; } else { return 2; @@ -1057,7 +1057,7 @@ void func_80A714C4(EnHy* this, GlobalContext* globalCtx) { } void func_80A71530(EnHy* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { switch (this->unkGetItemId) { case GI_HEART_PIECE: gSaveContext.dogParams = 0; diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index e9f9acbd61..1c8f1eabf8 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -210,7 +210,7 @@ s16 func_80A7924C(GlobalContext* globalCtx, Actor* thisx) { } else { this->actor.textId = 0x2034; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); gSaveContext.infTable[9] |= 0x400; break; case 0x2034: @@ -220,7 +220,7 @@ s16 func_80A7924C(GlobalContext* globalCtx, Actor* thisx) { } else { this->actor.textId = 0x2035; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); break; case 0x2036: case 0x2037: @@ -228,7 +228,7 @@ s16 func_80A7924C(GlobalContext* globalCtx, Actor* thisx) { sp18 = 2; } else { this->actor.textId = 0x201F; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } break; case 0x2038: @@ -236,7 +236,7 @@ s16 func_80A7924C(GlobalContext* globalCtx, Actor* thisx) { sp18 = 2; } else { this->actor.textId = 0x2039; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); gSaveContext.infTable[10] |= 4; } break; @@ -244,7 +244,7 @@ s16 func_80A7924C(GlobalContext* globalCtx, Actor* thisx) { if (globalCtx->msgCtx.choiceIndex == 0 && gSaveContext.rupees >= 50) { sp18 = 2; } else { - func_8010B720(globalCtx, this->actor.textId = 0x2039); + Message_ContinueTextbox(globalCtx, this->actor.textId = 0x2039); gSaveContext.eventInf[0] &= ~0xF; gSaveContext.eventInf[0] &= ~0x20; gSaveContext.eventInf[0] &= ~0x40; @@ -262,7 +262,7 @@ s16 func_80A7949C(GlobalContext* globalCtx, Actor* thisx) { if (thisx->textId == 0x2035) { Rupees_ChangeBy(-10); thisx->textId = 0x205C; - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); } else { phi_v1 = 2; } @@ -272,30 +272,30 @@ s16 func_80A7949C(GlobalContext* globalCtx, Actor* thisx) { s16 func_80A79500(GlobalContext* globalCtx, Actor* thisx) { s16 sp1E = 1; - osSyncPrintf("message_check->(%d[%x])\n", func_8010BDBC(&globalCtx->msgCtx), thisx->textId); - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: + osSyncPrintf("message_check->(%d[%x])\n", Message_GetState(&globalCtx->msgCtx), thisx->textId); + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: break; - case 2: + case TEXT_STATE_CLOSING: sp1E = func_80A791CC(globalCtx, thisx); break; - case 3: + case TEXT_STATE_DONE_FADING: break; - case 4: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { sp1E = func_80A7924C(globalCtx, thisx); } break; - case 5: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { sp1E = func_80A7949C(globalCtx, thisx); } break; - case 6: - case 7: - case 8: - case 9: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } return sp1E; @@ -453,7 +453,7 @@ void func_80A79C78(EnIn* this, GlobalContext* globalCtx) { this->actor.shape.rot.y = Math_Vec3f_Yaw(&this->actor.world.pos, &sp3C); this->unk_308.unk_08 = zeroVec; this->unk_308.unk_0E = zeroVec; - func_8010B680(globalCtx, 0x2025, NULL); + Message_StartTextbox(globalCtx, 0x2025, NULL); this->unk_308.unk_00 = 1; player->actor.world.pos = this->actor.world.pos; player->actor.world.pos.x += 100.0f * Math_SinS(this->actor.shape.rot.y); @@ -637,8 +637,8 @@ void func_80A7A4C8(EnIn* this, GlobalContext* globalCtx) { gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; gSaveContext.infTable[10] &= ~4; func_800775F0(NA_BGM_HORSE); - globalCtx->msgCtx.unk_E3E7 = 0; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 0; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; } } @@ -659,8 +659,8 @@ void func_80A7A568(EnIn* this, GlobalContext* globalCtx) { } else if (this->unk_308.unk_00 == 2) { if (globalCtx->msgCtx.choiceIndex == 0) { if (gSaveContext.rupees < 50) { - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; return; } @@ -682,9 +682,9 @@ void func_80A7A568(EnIn* this, GlobalContext* globalCtx) { phi_a3 = 0x20; } func_80A79BAC(this, globalCtx, phi_a2, phi_a3); - globalCtx->msgCtx.unk_E3E7 = 0; + globalCtx->msgCtx.stateTimer = 0; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; } } @@ -701,8 +701,8 @@ void func_80A7A770(EnIn* this, GlobalContext* globalCtx) { this->unk_308.unk_00 = 0; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & 0xFFFF) | 0x20; if (!(gSaveContext.eventInf[0] & 0x40)) { - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } } } @@ -716,8 +716,8 @@ void func_80A7A848(EnIn* this, GlobalContext* globalCtx) { func_80A79BAC(this, globalCtx, 2, 0x26); gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0xF) | 2; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; - globalCtx->msgCtx.unk_E3E7 = 0; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 0; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } this->unk_308.unk_00 = 0; gSaveContext.eventInf[0] &= ~0x20; @@ -741,8 +741,8 @@ void func_80A7A940(EnIn* this, GlobalContext* globalCtx) { func_80A79BAC(this, globalCtx, 2, 0x26); gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x000F) | 0x0002; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; - globalCtx->msgCtx.unk_E3E7 = 0; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 0; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & 0xFFFF) | 0x40; } @@ -778,7 +778,7 @@ void func_80A7AA40(EnIn* this, GlobalContext* globalCtx) { Gameplay_CameraSetAtEye(globalCtx, this->camId, &sp30, &sp24); this->actor.textId = 0x203B; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_308.unk_00 = 1; this->unk_1FC = 0; globalCtx->csCtx.frames = 0; @@ -808,11 +808,11 @@ void func_80A7ABD4(EnIn* this, GlobalContext* globalCtx) { if (this->unk_308.unk_00 == 2) { if (this->actor.textId == 0x203B) { this->actor.textId = 0x203C; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_308.unk_00 = 1; func_80A796EC(this, 3); } else { - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; } } @@ -866,8 +866,8 @@ void func_80A7AEF0(EnIn* this, GlobalContext* globalCtx) { globalCtx->fadeTransition = 5; this->actionFunc = func_80A7B018; } else if (this->unk_308.unk_00 == 2) { - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; } } @@ -891,8 +891,8 @@ void func_80A7B024(EnIn* this, GlobalContext* globalCtx) { func_80A79BAC(this, globalCtx, 0, 0x26); gSaveContext.eventInf[0] = gSaveContext.eventInf[0] & ~0xF; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; this->unk_308.unk_00 = 0; } } @@ -920,14 +920,14 @@ void EnIn_Update(Actor* thisx, GlobalContext* globalCtx) { if (this->actionFunc != func_80A7A304) { func_80A79AB4(this, globalCtx); if (gSaveContext.timer2Value < 6 && gSaveContext.timer2State != 0 && this->unk_308.unk_00 == 0) { - if (func_8002F194(&this->actor, globalCtx)) {} + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) {} } else { func_800343CC(globalCtx, &this->actor, &this->unk_308.unk_00, ((this->actor.targetMode == 6) ? 80.0f : 320.0f) + this->collider.dim.radius, func_80A79168, func_80A79500); if (this->unk_308.unk_00 != 0) { this->unk_1FA = this->unk_1F8; - this->unk_1F8 = func_8010BDBC(&globalCtx->msgCtx); + this->unk_1F8 = Message_GetState(&globalCtx->msgCtx); } } func_80A795C8(this, globalCtx); diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index b39aa9ebe5..253f0a0ad3 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -82,7 +82,7 @@ void EnJs_Destroy(Actor* thisx, GlobalContext* globalCtx) { u8 func_80A88F64(EnJs* this, GlobalContext* globalCtx, u16 textId) { s16 yawDiff; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { return 1; } else { this->actor.textId = textId; @@ -103,14 +103,14 @@ void func_80A89008(EnJs* this) { } void func_80A89078(EnJs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80A89008(this); this->actor.flags &= ~0x10000; } } void func_80A890C0(EnJs* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { En_Js_SetupAction(this, func_80A89078); } else { func_8002F2CC(&this->actor, globalCtx, 1000.0f); @@ -118,7 +118,7 @@ void func_80A890C0(EnJs* this, GlobalContext* globalCtx) { } void func_80A8910C(EnJs* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actor.textId = 0x6078; En_Js_SetupAction(this, func_80A890C0); this->actor.flags |= 0x10000; @@ -135,11 +135,11 @@ void func_80A89160(EnJs* this, GlobalContext* globalCtx) { } void func_80A891C4(EnJs* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes if (gSaveContext.rupees < 200) { - func_8010B720(globalCtx, 0x6075); + Message_ContinueTextbox(globalCtx, 0x6075); func_80A89008(this); } else { Rupees_ChangeBy(-200); @@ -147,7 +147,7 @@ void func_80A891C4(EnJs* this, GlobalContext* globalCtx) { } break; case 1: // no - func_8010B720(globalCtx, 0x6074); + Message_ContinueTextbox(globalCtx, 0x6074); func_80A89008(this); } } diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index f8f8323830..fd249f7fb7 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -94,10 +94,9 @@ void func_80A8F28C(EnKakasi* this) { } void func_80A8F320(EnKakasi* this, GlobalContext* globalCtx, s16 arg) { - s16 phi_v0; + s16 ocarinaNote = globalCtx->msgCtx.lastOcaNoteIdx; s16 currentFrame; - phi_v0 = globalCtx->msgCtx.unk_E410; if (arg != 0) { if (this->unk_19C[3] == 0) { this->unk_19C[3] = (s16)Rand_ZeroFloat(10.99f) + 30; @@ -105,33 +104,33 @@ void func_80A8F320(EnKakasi* this, GlobalContext* globalCtx, s16 arg) { } this->unk_19A = (s16)Rand_ZeroFloat(2.99f) + 5; - phi_v0 = this->unk_1A6; + ocarinaNote = this->unk_1A6; } - switch (phi_v0) { - case 0: + switch (ocarinaNote) { + case OCARINA_NOTE_A: this->unk_19A++; if (this->unk_1A4 == 0) { this->unk_1A4 = 1; Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL); } break; - case 1: + case OCARINA_NOTE_C_DOWN: this->unk_19A++; this->unk_1B8 = 1.0f; break; - case 2: + case OCARINA_NOTE_C_RIGHT: this->unk_19A++; if (this->unk_1AC == 0) { this->unk_1AC = 0x1388; } break; - case 3: + case OCARINA_NOTE_C_LEFT: this->unk_19A++; if (this->unk_1A8 == 0) { this->unk_1A8 = 0x1388; } break; - case 4: + case OCARINA_NOTE_C_UP: this->unk_19A++; this->unk_1B8 = 2.0f; break; @@ -178,18 +177,18 @@ void func_80A8F660(EnKakasi* this, GlobalContext* globalCtx) { Animation_Change(&this->skelanime, &object_ka_Anim_000214, 1.0f, 0.0f, (s16)frameCount, ANIMMODE_LOOP, -10.0f); this->actor.textId = 0x4076; - this->unk_196 = 6; + this->unk_196 = TEXT_STATE_DONE; if (!LINK_IS_ADULT) { this->unk_194 = false; if (gSaveContext.scarecrowCustomSongSet) { this->actor.textId = 0x407A; - this->unk_196 = 5; + this->unk_196 = TEXT_STATE_EVENT; } } else { this->unk_194 = true; if (gSaveContext.scarecrowCustomSongSet) { this->actor.textId = 0x4079; - this->unk_196 = 5; + this->unk_196 = TEXT_STATE_EVENT; } } this->actionFunc = func_80A8F75C; @@ -201,8 +200,8 @@ void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx) { func_80A8F28C(this); SkelAnime_Update(&this->skelanime); this->camId = SUBCAM_NONE; - if (func_8002F194(&this->actor, globalCtx)) { - if (this->unk_196 == 5) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { + if (this->unk_196 == TEXT_STATE_EVENT) { this->actionFunc = func_80A8F9C8; } else { this->actionFunc = func_80A8F660; @@ -218,7 +217,7 @@ void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx) { if (player->stateFlags2 & 0x1000000) { this->camId = OnePointCutscene_Init(globalCtx, 2260, -99, &this->actor, MAIN_CAM); - func_8010BD58(globalCtx, 0x2A); + func_8010BD58(globalCtx, OCARINA_ACTION_SCARECROW_LONG_RECORDING); this->unk_19A = 0; this->unk_1B8 = 0.0; player->stateFlags2 |= 0x800000; @@ -238,22 +237,22 @@ void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx) { void func_80A8F8D0(EnKakasi* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE == 4 && globalCtx->msgCtx.msgMode == 0) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04 && globalCtx->msgCtx.msgMode == MSGMODE_NONE) { // "end?" osSyncPrintf(VT_FGCOL(BLUE) "☆☆☆☆☆ 終り? ☆☆☆☆☆ \n" VT_RST); if (this->unk_19A != 0) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.textId = 0x4077; - this->unk_196 = 5; - func_8010B680(globalCtx, this->actor.textId, NULL); + this->unk_196 = TEXT_STATE_EVENT; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actionFunc = func_80A8F9C8; } else { OnePointCutscene_EndCutscene(globalCtx, this->camId); this->camId = SUBCAM_NONE; this->actionFunc = func_80A8F660; } - } else if (globalCtx->msgCtx.unk_E3EE == 1) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { func_80A8F320(this, globalCtx, 0); player->stateFlags2 |= 0x800000; } @@ -264,36 +263,36 @@ void func_80A8F9C8(EnKakasi* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelanime); func_8002DF54(globalCtx, NULL, 8); - if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx) && (func_80106BC8(globalCtx) != 0)) { + if (this->unk_196 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { if (this->camId != SUBCAM_NONE) { func_8005B1A4(globalCtx->cameraPtrs[this->camId]); } this->camId = OnePointCutscene_Init(globalCtx, 2270, -99, &this->actor, MAIN_CAM); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; func_8002DF54(globalCtx, NULL, 8); - func_8010BD58(globalCtx, 0x2B); + func_8010BD58(globalCtx, OCARINA_ACTION_SCARECROW_LONG_PLAYBACK); this->actionFunc = func_80A8FAA4; } } void func_80A8FAA4(EnKakasi* this, GlobalContext* globalCtx) { - if (globalCtx->msgCtx.unk_E3EE != 0xF) { + if (globalCtx->msgCtx.ocarinaMode != OCARINA_MODE_0F) { func_80A8F320(this, globalCtx, 1); return; } osSyncPrintf("game_play->message.msg_mode=%d\n", globalCtx->msgCtx.msgMode); - if (globalCtx->msgCtx.msgMode == 0) { + if (globalCtx->msgCtx.msgMode == MSGMODE_NONE) { if (this->unk_194) { this->actor.textId = 0x4077; - this->unk_196 = 5; - func_8010B680(globalCtx, this->actor.textId, NULL); + this->unk_196 = TEXT_STATE_EVENT; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); } else { this->actor.textId = 0x4078; - this->unk_196 = 5; - func_8010B680(globalCtx, this->actor.textId, NULL); + this->unk_196 = TEXT_STATE_EVENT; + Message_StartTextbox(globalCtx, this->actor.textId, NULL); } this->actionFunc = func_80A8FBB8; OnePointCutscene_EndCutscene(globalCtx, this->camId); @@ -307,13 +306,11 @@ void func_80A8FBB8(EnKakasi* this, GlobalContext* globalCtx) { func_80A8F28C(this); SkelAnime_Update(&this->skelanime); - if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx) != 0) { - func_8005B1A4(globalCtx->cameraPtrs[this->camId]); - func_80106CCC(globalCtx); - func_8002DF54(globalCtx, NULL, 7); - this->actionFunc = func_80A8F660; - } + if (this->unk_196 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + func_8005B1A4(globalCtx->cameraPtrs[this->camId]); + Message_CloseTextbox(globalCtx); + func_8002DF54(globalCtx, NULL, 7); + this->actionFunc = func_80A8F660; } } diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index 4726708e5f..8fe850e36d 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -140,12 +140,12 @@ void func_80A90264(EnKakasi2* this, GlobalContext* globalCtx) { (gSaveContext.eventChkInf[9] & 0x1000)) { this->unk_194 = 0; - if (globalCtx->msgCtx.unk_E3EE == 11) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_0B) { if (this->switchFlag >= 0) { Flags_SetSwitch(globalCtx, this->switchFlag); } osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ SAVE 終了 ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; this->actor.draw = func_80A90948; Collider_InitCylinder(globalCtx, &this->collider); Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index eb6392cc2d..53878f9654 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -98,9 +98,8 @@ void func_80A90E28(EnKakasi3* this) { void func_80A90EBC(EnKakasi3* this, GlobalContext* globalCtx, s32 arg) { s16 currentFrame; - s16 phi_v0; + s16 ocarinaNote = globalCtx->msgCtx.lastOcaNoteIdx; - phi_v0 = globalCtx->msgCtx.unk_E410; if (arg != 0) { if (this->unk_19C[3] == 0) { this->unk_19C[3] = (s16)Rand_ZeroFloat(10.99f) + 30; @@ -108,33 +107,33 @@ void func_80A90EBC(EnKakasi3* this, GlobalContext* globalCtx, s32 arg) { } this->unk_19A = (s16)Rand_ZeroFloat(2.99f) + 5; - phi_v0 = this->unk_1A6; + ocarinaNote = this->unk_1A6; } - switch (phi_v0) { - case 0: + switch (ocarinaNote) { + case OCARINA_NOTE_A: this->unk_19A++; if (this->unk_1A4 == 0) { this->unk_1A4 = 1; Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL); } break; - case 1: + case OCARINA_NOTE_C_DOWN: this->unk_19A++; this->unk_1B8 = 1.0f; break; - case 2: + case OCARINA_NOTE_C_RIGHT: this->unk_19A++; if (this->unk_1AE == 0x0) { this->unk_1AE = 0x1388; } break; - case 3: + case OCARINA_NOTE_C_LEFT: this->unk_19A++; if (this->unk_1AA == 0x0) { this->unk_1AA = 0x1388; } break; - case 4: + case OCARINA_NOTE_C_UP: this->unk_19A++; this->unk_1B8 = 2.0f; break; @@ -186,14 +185,14 @@ void func_80A91284(EnKakasi3* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); this->actor.textId = 0x40A1; - this->dialogState = 6; + this->dialogState = TEXT_STATE_DONE; this->unk_19A = 0; if (!LINK_IS_ADULT) { this->unk_194 = false; if (gSaveContext.scarecrowSpawnSongSet) { this->actor.textId = 0x40A0; - this->dialogState = 5; + this->dialogState = TEXT_STATE_EVENT; this->unk_1A8 = 1; } } else { @@ -215,7 +214,7 @@ void func_80A91348(EnKakasi3* this, GlobalContext* globalCtx) { func_80A90E28(this); SkelAnime_Update(&this->skelAnime); this->camId = SUBCAM_NONE; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (!this->unk_194) { if (this->unk_1A8 == 0) { this->actionFunc = func_80A91284; @@ -236,10 +235,10 @@ void func_80A91348(EnKakasi3* this, GlobalContext* globalCtx) { if (player->stateFlags2 & 0x1000000) { this->camId = OnePointCutscene_Init(globalCtx, 2260, -99, &this->actor, MAIN_CAM); - globalCtx->msgCtx.msgMode = 0x37; - this->dialogState = 5; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + this->dialogState = TEXT_STATE_EVENT; this->unk_1B8 = 0.0f; - func_8010B680(globalCtx, 0x40A4, NULL); + Message_StartTextbox(globalCtx, 0x40A4, NULL); player->stateFlags2 |= 0x800000; this->actionFunc = func_80A915B8; return; @@ -251,10 +250,10 @@ void func_80A91348(EnKakasi3* this, GlobalContext* globalCtx) { if (player->stateFlags2 & 0x1000000) { this->camId = OnePointCutscene_Init(globalCtx, 2260, -99, &this->actor, MAIN_CAM); - globalCtx->msgCtx.msgMode = 0x37; - this->dialogState = 5; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + this->dialogState = TEXT_STATE_EVENT; this->unk_1B8 = 0.0f; - func_8010B680(globalCtx, 0x40A8, NULL); + Message_StartTextbox(globalCtx, 0x40A8, NULL); player->stateFlags2 |= 0x800000; this->actionFunc = func_80A9187C; return; @@ -270,10 +269,9 @@ void func_80A91348(EnKakasi3* this, GlobalContext* globalCtx) { } void func_80A915B8(EnKakasi3* this, GlobalContext* globalCtx) { - - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); - func_8010BD58(globalCtx, 0x2C); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); + func_8010BD58(globalCtx, OCARINA_ACTION_SCARECROW_RECORDING); this->actionFunc = func_80A91620; } } @@ -281,8 +279,9 @@ void func_80A915B8(EnKakasi3* this, GlobalContext* globalCtx) { void func_80A91620(EnKakasi3* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if ((globalCtx->msgCtx.unk_E3EE == 4 || (globalCtx->msgCtx.unk_E3EE >= 5 && globalCtx->msgCtx.unk_E3EE < 11)) && - (globalCtx->msgCtx.msgMode == 0)) { + if ((globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04 || + (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_05 && globalCtx->msgCtx.ocarinaMode < OCARINA_MODE_0B)) && + (globalCtx->msgCtx.msgMode == MSGMODE_NONE)) { OnePointCutscene_EndCutscene(globalCtx, this->camId); if (globalCtx->cameraPtrs[this->camId] == NULL) { @@ -295,15 +294,15 @@ void func_80A91620(EnKakasi3* this, GlobalContext* globalCtx) { return; } - if (globalCtx->msgCtx.unk_E3EE == 3 && globalCtx->msgCtx.msgMode == 0) { - this->dialogState = 5; - func_8010B680(globalCtx, 0x40A5, NULL); + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03 && globalCtx->msgCtx.msgMode == MSGMODE_NONE) { + this->dialogState = TEXT_STATE_EVENT; + Message_StartTextbox(globalCtx, 0x40A5, NULL); func_8002DF54(globalCtx, NULL, 8); this->actionFunc = func_80A91A90; return; } - if (globalCtx->msgCtx.unk_E3EE == 1) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { func_80A90EBC(this, globalCtx, 0); player->stateFlags2 |= 0x800000; } @@ -313,9 +312,9 @@ void func_80A91760(EnKakasi3* this, GlobalContext* globalCtx) { func_80A90E28(this); SkelAnime_Update(&this->skelAnime); - if (this->dialogState == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; - func_8010BD58(globalCtx, 0x2D); + if (this->dialogState == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + func_8010BD58(globalCtx, OCARINA_ACTION_SCARECROW_PLAYBACK); this->actionFunc = func_80A917FC; this->camId = OnePointCutscene_Init(globalCtx, 2280, -99, &this->actor, MAIN_CAM); } @@ -323,21 +322,20 @@ void func_80A91760(EnKakasi3* this, GlobalContext* globalCtx) { void func_80A917FC(EnKakasi3* this, GlobalContext* globalCtx) { - if (globalCtx->msgCtx.unk_E3EE != 15) { + if (globalCtx->msgCtx.ocarinaMode != OCARINA_MODE_0F) { func_80A90EBC(this, globalCtx, 1); } else { - globalCtx->msgCtx.unk_E3EE = 4; - func_80106CCC(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + Message_CloseTextbox(globalCtx); OnePointCutscene_EndCutscene(globalCtx, this->camId); this->actionFunc = func_80A911F0; } } void func_80A9187C(EnKakasi3* this, GlobalContext* globalCtx) { - - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); - func_8010BD58(globalCtx, 0x28); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_SCARECROW); this->actionFunc = func_80A918E4; } } @@ -347,13 +345,14 @@ void func_80A918E4(EnKakasi3* this, GlobalContext* globalCtx) { if (BREG(3) != 0) { // "No way!" - osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ まさか! ☆☆☆☆☆ %d\n" VT_RST, globalCtx->msgCtx.unk_E3EE); + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ まさか! ☆☆☆☆☆ %d\n" VT_RST, globalCtx->msgCtx.ocarinaMode); } - if ((globalCtx->msgCtx.unk_E3EE == 4 || (globalCtx->msgCtx.unk_E3EE >= 5 && globalCtx->msgCtx.unk_E3EE < 11)) && - globalCtx->msgCtx.msgMode == 0) { + if ((globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04 || + (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_05 && globalCtx->msgCtx.ocarinaMode < OCARINA_MODE_0B)) && + globalCtx->msgCtx.msgMode == MSGMODE_NONE) { - func_8010B680(globalCtx, 0x40A6, NULL); - this->dialogState = 5; + Message_StartTextbox(globalCtx, 0x40A6, NULL); + this->dialogState = TEXT_STATE_EVENT; OnePointCutscene_EndCutscene(globalCtx, this->camId); this->camId = SUBCAM_NONE; func_8002DF54(globalCtx, NULL, 8); @@ -361,23 +360,23 @@ void func_80A918E4(EnKakasi3* this, GlobalContext* globalCtx) { return; } - if (globalCtx->msgCtx.unk_E3EE == 3 && globalCtx->msgCtx.msgMode == 0) { - globalCtx->msgCtx.unk_E3EE = 4; + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03 && globalCtx->msgCtx.msgMode == MSGMODE_NONE) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; if (BREG(3) != 0) { osSyncPrintf("\n\n"); // "With this, other guys are OK! That's it!" osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ これで、他の奴もOK!だ! ☆☆☆☆☆ %d\n" VT_RST, - globalCtx->msgCtx.unk_E3EE); + globalCtx->msgCtx.ocarinaMode); } this->unk_195 = true; - func_8010B680(globalCtx, 0x40A7, NULL); - this->dialogState = 5; + Message_StartTextbox(globalCtx, 0x40A7, NULL); + this->dialogState = TEXT_STATE_EVENT; func_8002DF54(globalCtx, NULL, 8); this->actionFunc = func_80A91A90; return; } - if (globalCtx->msgCtx.unk_E3EE == 1) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { func_80A90EBC(this, globalCtx, 0); player->stateFlags2 |= 0x800000; } @@ -388,7 +387,7 @@ void func_80A91A90(EnKakasi3* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); func_8002DF54(globalCtx, NULL, 8); - if (this->dialogState == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { + if (this->dialogState == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { if (this->unk_195) { if (!(gSaveContext.eventChkInf[9] & 0x1000)) { gSaveContext.eventChkInf[9] |= 0x1000; @@ -400,8 +399,8 @@ void func_80A91A90(EnKakasi3* this, GlobalContext* globalCtx) { if (this->camId != SUBCAM_NONE) { func_8005B1A4(globalCtx->cameraPtrs[this->camId]); } - func_80106CCC(globalCtx); - globalCtx->msgCtx.unk_E3EE = 4; + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; func_8002DF54(globalCtx, NULL, 7); this->actionFunc = func_80A911F0; } diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index 0af726648e..bbd65f6bd6 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -234,7 +234,7 @@ void EnKanban_Message(EnKanban* this, GlobalContext* globalCtx) { if (!this->msgFlag) { if (this->msgTimer == 0) { if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) < 0x2800) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->msgFlag = true; } else { func_8002F2CC(&this->actor, globalCtx, 68.0f); @@ -244,7 +244,7 @@ void EnKanban_Message(EnKanban* this, GlobalContext* globalCtx) { this->msgTimer--; } } else { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->msgFlag = false; this->msgTimer = 20; } @@ -704,16 +704,17 @@ void EnKanban_Update(Actor* thisx, GlobalContext* globalCtx2) { } } osSyncPrintf(VT_FGCOL(GREEN)); - osSyncPrintf("OCARINA_MODE %d\n", globalCtx->msgCtx.unk_E3EE); + osSyncPrintf("OCARINA_MODE %d\n", globalCtx->msgCtx.ocarinaMode); osSyncPrintf(VT_RST); switch (this->ocarinaFlag) { case 0: - if (globalCtx->msgCtx.unk_E3EE == 1) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { this->ocarinaFlag = 1; } break; case 1: - if ((globalCtx->msgCtx.unk_E3EE == 4) && (globalCtx->msgCtx.unk_E3F2 == 8)) { + if ((globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) && + (globalCtx->msgCtx.unk_E3F2 == OCARINA_SONG_LULLABY)) { this->actionState = ENKANBAN_REPAIR; this->bounceX = 1; Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index ed6e79c6aa..59bf7e9303 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -456,8 +456,8 @@ u16 func_80A97610(GlobalContext* globalCtx, Actor* thisx) { s16 func_80A97738(GlobalContext* globalCtx, Actor* thisx) { EnKo* this = THIS; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x1005: gSaveContext.infTable[1] |= 0x4000; @@ -496,7 +496,7 @@ s16 func_80A97738(GlobalContext* globalCtx, Actor* thisx) { return 1; } return 0; - case 3: + case TEXT_STATE_DONE_FADING: switch (this->actor.textId) { case 0x10B7: case 0x10B8: @@ -507,22 +507,22 @@ s16 func_80A97738(GlobalContext* globalCtx, Actor* thisx) { } } return 1; - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { switch (this->actor.textId) { case 0x1035: this->actor.textId = (globalCtx->msgCtx.choiceIndex == 0) ? 0x1036 : 0x1037; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); break; case 0x1038: this->actor.textId = (globalCtx->msgCtx.choiceIndex != 0) ? (globalCtx->msgCtx.choiceIndex == 1) ? 0x103A : 0x103B : 0x1039; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); break; case 0x103E: this->actor.textId = (globalCtx->msgCtx.choiceIndex == 0) ? 0x103F : 0x1040; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); break; case 0x10B7: gSaveContext.infTable[11] |= 0x1000; @@ -534,8 +534,8 @@ s16 func_80A97738(GlobalContext* globalCtx, Actor* thisx) { return 1; } break; - case 6: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { return 3; } } @@ -1138,8 +1138,8 @@ void func_80A99384(EnKo* this, GlobalContext* globalCtx) { this->actionFunc = func_80A99438; } else if (ENKO_TYPE == ENKO_TYPE_CHILD_FADO && this->unk_1E8.unk_00 == 2) { this->actionFunc = func_80A99504; - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } } @@ -1147,8 +1147,8 @@ void func_80A99438(EnKo* this, GlobalContext* globalCtx) { if (ENKO_TYPE == ENKO_TYPE_CHILD_FADO && this->unk_1E8.unk_00 == 2) { func_80034EC0(&this->skelAnime, sOsAnimeTable, 6); this->actionFunc = func_80A99504; - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } else if (this->unk_1E8.unk_00 == 0 || this->actor.textId != 0x10B9) { func_80034EC0(&this->skelAnime, sOsAnimeTable, 6); this->actionFunc = func_80A99384; @@ -1167,7 +1167,7 @@ void func_80A99504(EnKo* this, GlobalContext* globalCtx) { void func_80A99560(EnKo* this, GlobalContext* globalCtx) { if (this->unk_1E8.unk_00 == 3) { this->actor.textId = 0x10B9; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E8.unk_00 = 1; gSaveContext.itemGetInf[3] |= 2; this->actionFunc = func_80A99384; diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 9a4e30a388..953d1f52e8 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -115,8 +115,8 @@ s16 func_80A9C6C0(GlobalContext* globalCtx, Actor* thisx) { EnKz* this = THIS; s16 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 6: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_DONE: ret = 0; switch (this->actor.textId) { case 0x4012: @@ -124,14 +124,14 @@ s16 func_80A9C6C0(GlobalContext* globalCtx, Actor* thisx) { ret = 2; break; case 0x401B: - ret = func_80106BC8(globalCtx) == 0 ? 1 : 2; + ret = !Message_ShouldAdvance(globalCtx) ? 1 : 2; break; case 0x401F: gSaveContext.infTable[19] |= 0x200; break; } break; - case 3: + case TEXT_STATE_DONE_FADING: if (this->actor.textId != 0x4014) { if (this->actor.textId == 0x401B && !this->sfxPlayed) { Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, @@ -143,8 +143,8 @@ s16 func_80A9C6C0(GlobalContext* globalCtx, Actor* thisx) { this->sfxPlayed = true; } break; - case 4: - if (func_80106BC8(globalCtx) == 0) { + case TEXT_STATE_CHOICE: + if (!Message_ShouldAdvance(globalCtx)) { break; } if (this->actor.textId == 0x4014) { @@ -153,21 +153,21 @@ s16 func_80A9C6C0(GlobalContext* globalCtx, Actor* thisx) { ret = 2; } else { this->actor.textId = 0x4016; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } } break; - case 5: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { ret = 2; } break; - case 0: - case 1: - case 2: - case 7: - case 8: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CLOSING: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } return ret; @@ -191,7 +191,7 @@ s32 func_80A9C95C(GlobalContext* globalCtx, EnKz* this, s16* arg2, f32 unkf, cal f32 xzDistToPlayer; f32 yaw; - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { *arg2 = 1; return 1; } @@ -210,7 +210,7 @@ s32 func_80A9C95C(GlobalContext* globalCtx, EnKz* this, s16* arg2, f32 unkf, cal this->actor.flags |= 1; - func_8002F374(globalCtx, &this->actor, &sp32, &sp30); + Actor_GetScreenPos(globalCtx, &this->actor, &sp32, &sp30); if (!((sp32 >= -30) && (sp32 < 361) && (sp30 >= -10) && (sp30 < 241))) { return 0; } @@ -436,7 +436,7 @@ void EnKz_SetupGetItem(EnKz* this, GlobalContext* globalCtx) { } void EnKz_StartTimer(EnKz* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_FROG) { func_80088AA0(180); // start timer2 with 3 minutes gSaveContext.eventInf[1] &= ~1; diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index cdee7e9280..f0cc1ebfb4 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -119,8 +119,9 @@ u16 EnMa1_GetText(GlobalContext* globalCtx, Actor* thisx) { s16 func_80AA0778(GlobalContext* globalCtx, Actor* thisx) { s16 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x2041: gSaveContext.infTable[8] |= 0x10; @@ -150,23 +151,23 @@ s16 func_80AA0778(GlobalContext* globalCtx, Actor* thisx) { break; } break; - case 4: - case 5: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { ret = 2; } break; - case 6: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { ret = 3; } break; - case 0: - case 1: - case 3: - case 7: - case 8: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: ret = 1; break; } @@ -305,8 +306,8 @@ void func_80AA0D88(EnMa1* this, GlobalContext* globalCtx) { } else if (!(gSaveContext.eventChkInf[1] & 0x10) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { if (this->unk_1E8.unk_00 == 2) { this->actionFunc = func_80AA0EA0; - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } } } @@ -325,7 +326,7 @@ void func_80AA0EFC(EnMa1* this, GlobalContext* globalCtx) { this->unk_1E8.unk_00 = 0; this->actionFunc = func_80AA0D88; gSaveContext.eventChkInf[1] |= 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } } @@ -347,7 +348,7 @@ void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx) { player->stateFlags2 |= 0x2000000; player->unk_6A8 = &this->actor; this->actor.textId = 0x2061; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_1E8.unk_00 = 1; this->actor.flags |= 0x10000; this->actionFunc = func_80AA106C; @@ -360,8 +361,8 @@ void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx) { void func_80AA106C(EnMa1* this, GlobalContext* globalCtx) { GET_PLAYER(globalCtx)->stateFlags2 |= 0x800000; if (this->unk_1E8.unk_00 == 2) { - func_800ED858(2); - func_8010BD58(globalCtx, 9); + Audio_OcaSetInstrument(2); + func_8010BD58(globalCtx, OCARINA_ACTION_TEACH_EPONA); this->actor.flags &= ~0x10000; this->actionFunc = func_80AA10EC; } @@ -369,15 +370,15 @@ void func_80AA106C(EnMa1* this, GlobalContext* globalCtx) { void func_80AA10EC(EnMa1* this, GlobalContext* globalCtx) { GET_PLAYER(globalCtx)->stateFlags2 |= 0x800000; - if (func_8010BDBC(&globalCtx->msgCtx) == 7) { - func_8010BD58(globalCtx, 0x16); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_SONG_DEMO_DONE) { + func_8010BD58(globalCtx, OCARINA_ACTION_PLAYBACK_EPONA); this->actionFunc = func_80AA1150; } } void func_80AA1150(EnMa1* this, GlobalContext* globalCtx) { GET_PLAYER(globalCtx)->stateFlags2 |= 0x800000; - if (globalCtx->msgCtx.unk_E3EE == 3) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { globalCtx->nextEntranceIndex = 0x157; gSaveContext.nextCutsceneIndex = 0xFFF1; globalCtx->fadeTransition = 42; diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 3dddc5ba02..b9ff7184b1 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -85,8 +85,8 @@ u16 func_80AA19A0(GlobalContext* globalCtx, Actor* thisx) { s16 func_80AA1A38(GlobalContext* globalCtx, Actor* thisx) { s16 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 2: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x2051: gSaveContext.infTable[8] |= 0x1000; @@ -101,14 +101,14 @@ s16 func_80AA1A38(GlobalContext* globalCtx, Actor* thisx) { break; } break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 6: - case 7: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_9: break; } return ret; @@ -260,7 +260,7 @@ void func_80AA204C(EnMa2* this, GlobalContext* globalCtx) { if (player->stateFlags2 & 0x1000000) { player->unk_6A8 = &this->actor; player->stateFlags2 |= 0x2000000; - func_8010BD58(globalCtx, 0x23); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_EPONA); this->actionFunc = func_80AA20E4; } else if (this->actor.xzDistToPlayer < 30.0f + (f32)this->collider.dim.radius) { player->stateFlags2 |= 0x800000; @@ -270,15 +270,15 @@ void func_80AA204C(EnMa2* this, GlobalContext* globalCtx) { void func_80AA20E4(EnMa2* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE >= 4) { + if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_04) { this->actionFunc = func_80AA204C; - globalCtx->msgCtx.unk_E3EE = 4; - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); this->unk_208 = 0x1E; gSaveContext.infTable[8] |= 0x4000; this->actionFunc = func_80AA21C8; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } else { player->stateFlags2 |= 0x800000; } @@ -292,7 +292,7 @@ void func_80AA21C8(EnMa2* this, GlobalContext* globalCtx) { } else { if (this->unk_1E0.unk_00 == 0) { this->actor.flags |= 0x10000; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } else { this->actor.flags &= ~0x10000; this->actionFunc = func_80AA2018; diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index 4f48f5b861..da02dad5a1 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -106,9 +106,9 @@ u16 func_80AA2AA0(GlobalContext* globalCtx, Actor* thisx) { s16 func_80AA2BD4(GlobalContext* globalCtx, Actor* thisx) { s16 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 5: - if (func_80106BC8(globalCtx) != 0) { + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { globalCtx->nextEntranceIndex = 0x157; gSaveContext.nextCutsceneIndex = 0xFFF0; globalCtx->fadeTransition = 0x26; @@ -117,21 +117,21 @@ s16 func_80AA2BD4(GlobalContext* globalCtx, Actor* thisx) { gSaveContext.timer1State = 0xF; } break; - case 4: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[11] |= 0x200; if (globalCtx->msgCtx.choiceIndex == 0) { if (gSaveContext.eventChkInf[1] & 0x4000) { - func_8010B720(globalCtx, 0x2091); + Message_ContinueTextbox(globalCtx, 0x2091); } else if (HIGH_SCORE(HS_HORSE_RACE) == 0) { - func_8010B720(globalCtx, 0x2092); + Message_ContinueTextbox(globalCtx, 0x2092); } else { - func_8010B720(globalCtx, 0x2090); + Message_ContinueTextbox(globalCtx, 0x2090); } } } break; - case 2: + case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x2000: gSaveContext.infTable[11] |= 0x100; @@ -161,13 +161,13 @@ s16 func_80AA2BD4(GlobalContext* globalCtx, Actor* thisx) { ret = 0; } break; - case 0: - case 1: - case 3: - case 6: - case 7: - case 8: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } return ret; diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index af09839474..c51e205337 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -333,9 +333,10 @@ void func_80AAAA24(EnMd* this) { } s16 func_80AAAC78(EnMd* this, GlobalContext* globalCtx) { - s16 dialogState = func_8010BDBC(&globalCtx->msgCtx); + s16 dialogState = Message_GetState(&globalCtx->msgCtx); - if ((this->unk_209 == 10) || (this->unk_209 == 5) || (this->unk_209 == 2) || (this->unk_209 == 1)) { + if ((this->unk_209 == TEXT_STATE_AWAITING_NEXT) || (this->unk_209 == TEXT_STATE_EVENT) || + (this->unk_209 == TEXT_STATE_CLOSING) || (this->unk_209 == TEXT_STATE_DONE_HAS_NEXT)) { if (this->unk_209 != dialogState) { this->unk_208++; } @@ -353,7 +354,7 @@ u16 EnMd_GetTextKokiriForest(GlobalContext* globalCtx, EnMd* this) { } this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) { return 0x1045; @@ -376,7 +377,7 @@ u16 EnMd_GetTextKokiriForest(GlobalContext* globalCtx, EnMd* this) { u16 EnMd_GetTextKokiriHome(GlobalContext* globalCtx, EnMd* this) { this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (gSaveContext.eventChkInf[4] & 1) { return 0x1028; @@ -387,7 +388,7 @@ u16 EnMd_GetTextKokiriHome(GlobalContext* globalCtx, EnMd* this) { u16 EnMd_GetTextLostWoods(GlobalContext* globalCtx, EnMd* this) { this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (gSaveContext.eventChkInf[4] & 0x100) { if (gSaveContext.infTable[1] & 0x200) { @@ -425,16 +426,16 @@ u16 EnMd_GetText(GlobalContext* globalCtx, Actor* thisx) { s16 func_80AAAF04(GlobalContext* globalCtx, Actor* thisx) { EnMd* this = THIS; switch (func_80AAAC78(this, globalCtx)) { - case 0: - case 1: - case 3: - case 4: - case 6: - case 7: - case 8: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: return 1; - case 2: + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x1028: gSaveContext.eventChkInf[0] |= 0x8000; @@ -454,8 +455,8 @@ s16 func_80AAAF04(GlobalContext* globalCtx, Actor* thisx) { return 2; } return 0; - case 5: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { return 2; } default: @@ -695,7 +696,7 @@ void func_80AAB948(EnMd* this, GlobalContext* globalCtx) { if (this->unk_1E0.unk_00 == 2) { if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !(gSaveContext.eventChkInf[1] & 0x1000) && (globalCtx->sceneNum == SCENE_SPOT04)) { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; } if (globalCtx->sceneNum == SCENE_SPOT04) { @@ -722,7 +723,7 @@ void func_80AAB948(EnMd* this, GlobalContext* globalCtx) { if (player->stateFlags2 & 0x1000000) { player->stateFlags2 |= 0x2000000; player->unk_6A8 = &this->actor; - func_8010BD58(globalCtx, 0x22); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_SARIA); this->actionFunc = func_80AABC10; return; } @@ -736,16 +737,16 @@ void func_80AAB948(EnMd* this, GlobalContext* globalCtx) { void func_80AABC10(EnMd* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE >= 4) { + if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_04) { this->actionFunc = func_80AAB948; - globalCtx->msgCtx.unk_E3EE = 4; - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); this->actor.textId = 0x1067; func_8002F2CC(&this->actor, globalCtx, this->collider.dim.radius + 30.0f); this->actionFunc = func_80AAB948; - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } else { player->stateFlags2 |= 0x800000; } @@ -762,7 +763,7 @@ void func_80AABD0C(EnMd* this, GlobalContext* globalCtx) { if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !(gSaveContext.eventChkInf[1] & 0x1000) && (globalCtx->sceneNum == SCENE_SPOT04)) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gSaveContext.eventChkInf[1] |= 0x1000; Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_En_Mk/z_en_mk.c b/src/overlays/actors/ovl_En_Mk/z_en_mk.c index 9b9f364249..fa0fc850ec 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -82,7 +82,7 @@ void EnMk_Destroy(Actor* thisx, GlobalContext* globalCtx) { } void func_80AACA40(EnMk* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actor.flags &= 0xFFFEFFFF; this->actionFunc = EnMk_Wait; } @@ -102,14 +102,14 @@ void func_80AACA94(EnMk* this, GlobalContext* globalCtx) { } void func_80AACB14(EnMk* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = func_80AACA94; func_8002F434(&this->actor, globalCtx, GI_EYEDROPS, 10000.0f, 50.0f); } } void func_80AACB6C(EnMk* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_80AACB14; } @@ -122,7 +122,7 @@ void func_80AACBAC(EnMk* this, GlobalContext* globalCtx) { this->actor.shape.rot.y -= 0x800; } else { this->actionFunc = func_80AACB6C; - func_8010B720(globalCtx, 0x4030); + Message_ContinueTextbox(globalCtx, 0x4030); } } @@ -154,10 +154,10 @@ void func_80AACCA0(EnMk* this, GlobalContext* globalCtx) { void func_80AACD48(EnMk* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = func_80AACCA0; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; player->exchangeItemId = EXCH_ITEM_NONE; this->timer = 16; Animation_Change(&this->skelAnime, &object_mk_Anim_000D88, 1.0f, 0.0f, @@ -169,8 +169,8 @@ void func_80AACD48(EnMk* this, GlobalContext* globalCtx) { } void func_80AACE2C(EnMk* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_8010B720(globalCtx, 0x4001); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x4001); Animation_Change(&this->skelAnime, &object_mk_Anim_000AC0, 1.0f, 0.0f, Animation_GetLastFrame(&object_mk_Anim_000AC0), ANIMMODE_ONCE, -4.0f); this->flags &= ~2; @@ -181,8 +181,8 @@ void func_80AACE2C(EnMk* this, GlobalContext* globalCtx) { } void func_80AACEE8(EnMk* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_8010B720(globalCtx, 0x4000); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x4000); Animation_Change(&this->skelAnime, &object_mk_Anim_000AC0, 1.0f, 0.0f, Animation_GetLastFrame(&object_mk_Anim_000AC0), ANIMMODE_LOOP, -4.0f); this->flags &= ~2; @@ -203,7 +203,7 @@ void func_80AACFA0(EnMk* this, GlobalContext* globalCtx) { } void func_80AAD014(EnMk* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx) != 0) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = func_80AACFA0; func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 50.0f); } @@ -217,7 +217,7 @@ void EnMk_Wait(EnMk* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s32 playerExchangeItem; - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { playerExchangeItem = func_8002F368(globalCtx); if (this->actor.textId != 0x4018) { diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index c1deaff05a..2a56938d32 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -225,14 +225,14 @@ s32 func_80AADAA0(EnMm* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s32 sp1C = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 2: - case 3: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CLOSING: + case TEXT_STATE_DONE_FADING: break; - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { player->actor.textId = 0x202D; this->unk_254 &= ~1; @@ -244,8 +244,8 @@ s32 func_80AADAA0(EnMm* this, GlobalContext* globalCtx) { sp1C = 2; } break; - case 5: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx)) { Player_UnsetMask(globalCtx); Item_Give(globalCtx, ITEM_SOLD_OUT); gSaveContext.itemGetInf[3] |= 0x800; @@ -254,8 +254,8 @@ s32 func_80AADAA0(EnMm* this, GlobalContext* globalCtx) { sp1C = 2; } break; - case 6: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { if ((player->actor.textId == 0x202E) || (player->actor.textId == 0x202C)) { this->unk_254 |= 1; EnMm_ChangeAnimation(this, RM_ANIM_SIT_WAIT, &this->curAnimIndex); @@ -294,12 +294,12 @@ void func_80AADCD0(EnMm* this, GlobalContext* globalCtx) { s16 sp24; if (this->unk_1E0 == 2) { - func_8010B720(globalCtx, player->actor.textId); + Message_ContinueTextbox(globalCtx, player->actor.textId); this->unk_1E0 = 1; } else if (this->unk_1E0 == 1) { this->unk_1E0 = func_80AADAA0(this, globalCtx); } else { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_1E0 = 1; if (this->curAnimIndex != 5) { @@ -309,7 +309,7 @@ void func_80AADCD0(EnMm* this, GlobalContext* globalCtx) { } } } else { - func_8002F374(globalCtx, &this->actor, &sp26, &sp24); + Actor_GetScreenPos(globalCtx, &this->actor, &sp26, &sp24); yawDiff = ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)); if ((sp26 >= 0) && (sp26 <= 0x140) && (sp24 >= 0) && (sp24 <= 0xF0) && (yawDiff <= 17152.0f) && diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index e2d3f63a49..fce84e6d49 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -176,7 +176,7 @@ void EnMm2_Destroy(Actor* thisx, GlobalContext* globalCtx) { s32 func_80AAF224(EnMm2* this, GlobalContext* globalCtx, EnMm2ActionFunc actionFunc) { s16 yawDiff; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = actionFunc; return 1; } @@ -202,7 +202,7 @@ void func_80AAF330(EnMm2* this, GlobalContext* globalCtx) { EnMm2_ChangeAnimation(this, 0, &this->previousAnimation); this->mouthTexIndex = RM2_MOUTH_OPEN; if (!(this->unk_1F4 & 2)) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } gSaveContext.timer2State = 0; gSaveContext.eventInf[1] &= ~1; @@ -215,15 +215,15 @@ void func_80AAF3C0(EnMm2* this, GlobalContext* globalCtx) { switch (this->actor.textId) { case 0x607D: case 0x607E: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: - func_8010B720(globalCtx, 0x607F); + Message_ContinueTextbox(globalCtx, 0x607F); this->actor.textId = 0x607F; gSaveContext.eventInf[1] |= 1; break; case 1: - func_8010B720(globalCtx, 0x6080); + Message_ContinueTextbox(globalCtx, 0x6080); this->actor.textId = 0x6080; break; }; @@ -235,16 +235,16 @@ void func_80AAF3C0(EnMm2* this, GlobalContext* globalCtx) { } return; case 0x6081: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->unk_1F4 |= 4; HIGH_SCORE(HS_MARATHON) -= 1; - func_8010B720(globalCtx, 0x607E); + Message_ContinueTextbox(globalCtx, 0x607E); this->actor.textId = 0x607E; } return; } - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { if (this->actor.textId == 0x607F) { func_80088AA0(0); this->actionFunc = func_80AAF57C; @@ -266,7 +266,7 @@ void func_80AAF57C(EnMm2* this, GlobalContext* globalCtx) { void func_80AAF5EC(EnMm2* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx))) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->unk_1F4 &= ~1; EnMm2_ChangeAnimation(this, 3, &this->previousAnimation); this->actionFunc = func_80AAF330; diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 31613872c2..d259dac4da 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -108,7 +108,7 @@ void EnMs_Wait(EnMs* this, GlobalContext* globalCtx) { yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; EnMs_SetOfferText(this, globalCtx); - if (func_8002F194(&this->actor, globalCtx)) { // if talk is initiated + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { // if talk is initiated this->actionFunc = EnMs_Talk; } else if ((this->actor.xzDistToPlayer < 90.0f) && (ABS(yawDiff) < 0x2000)) { // talk range func_8002F2CC(&this->actor, globalCtx, 90.0f); @@ -118,23 +118,23 @@ void EnMs_Wait(EnMs* this, GlobalContext* globalCtx) { void EnMs_Talk(EnMs* this, GlobalContext* globalCtx) { u8 dialogState; - dialogState = func_8010BDBC(&globalCtx->msgCtx); - if (dialogState != 4) { - if ((dialogState == 6) && (func_80106BC8(globalCtx) != 0)) { // advanced final textbox + dialogState = Message_GetState(&globalCtx->msgCtx); + if (dialogState != TEXT_STATE_CHOICE) { + if ((dialogState == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { // advanced final textbox this->actionFunc = EnMs_Wait; } - } else if (func_80106BC8(globalCtx) != 0) { + } else if (Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes if (gSaveContext.rupees < sPrices[BEANS_BOUGHT]) { - func_8010B720(globalCtx, 0x4069); // not enough rupees text + Message_ContinueTextbox(globalCtx, 0x4069); // not enough rupees text return; } func_8002F434(&this->actor, globalCtx, GI_BEAN, 90.0f, 10.0f); this->actionFunc = EnMs_Sell; return; case 1: // no - func_8010B720(globalCtx, 0x4068); + Message_ContinueTextbox(globalCtx, 0x4068); default: return; } @@ -153,8 +153,8 @@ void EnMs_Sell(EnMs* this, GlobalContext* globalCtx) { void EnMs_TalkAfterPurchase(EnMs* this, GlobalContext* globalCtx) { // if dialog state is 6 and player responded to textbox - if ((func_8010BDBC(&globalCtx->msgCtx)) == 6 && (func_80106BC8(globalCtx) != 0)) { - func_8010B720(globalCtx, 0x406C); + if ((Message_GetState(&globalCtx->msgCtx)) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x406C); this->actionFunc = EnMs_Talk; } } diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index 4b00e5f201..43bc838263 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -109,18 +109,18 @@ u16 EnMu_GetFaceReaction(GlobalContext* globalCtx, Actor* thisx) { s16 EnMu_CheckDialogState(GlobalContext* globalCtx, Actor* thisx) { EnMu* this = THIS; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: return 1; - case 2: + case TEXT_STATE_CLOSING: EnMu_Interact(this, globalCtx); return 0; default: diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 394132f421..43f243f1e5 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -1195,7 +1195,7 @@ void EnNb_SetupIdleCrawlspace(EnNb* this, s32 animFinished) { } void func_80AB3838(EnNb* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = NB_IN_DIALOG; } else { this->actor.flags |= 9; @@ -1225,7 +1225,7 @@ void EnNb_SetTextIdAsChild(EnNb* this, GlobalContext* globalCtx) { textId = this->actor.textId; - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (textId == 0x6025) { EnNb_SetupPathMovement(this, globalCtx); } else { @@ -1235,7 +1235,7 @@ void EnNb_SetTextIdAsChild(EnNb* this, GlobalContext* globalCtx) { this->action = NB_IDLE_CRAWLSPACE; } this->actor.flags &= ~9; - } else if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + } else if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { choiceIndex = globalCtx->msgCtx.choiceIndex; if (textId == 0x601D) { @@ -1269,7 +1269,7 @@ void EnNb_SetTextIdAsChild(EnNb* this, GlobalContext* globalCtx) { } } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } } @@ -1287,7 +1287,7 @@ void func_80AB3A7C(EnNb* this, GlobalContext* globalCtx, s32 animFinished) { } void func_80AB3B04(EnNb* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = NB_ACTION_30; } else { this->actor.flags |= 9; @@ -1302,7 +1302,7 @@ void func_80AB3B04(EnNb* this, GlobalContext* globalCtx) { } void func_80AB3B7C(EnNb* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->action = NB_IDLE_AFTER_TALK; this->actor.flags &= ~9; } diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 9b89ffd255..8daeefd01c 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -114,7 +114,7 @@ void func_80AB9210(EnNiwGirl* this, GlobalContext* globalCtx) { // Find the X and Z distance between the girl and the cuckoo she is chasing xDistBetween = this->chasedEnNiw->actor.world.pos.x - this->actor.world.pos.x; zDistBetween = this->chasedEnNiw->actor.world.pos.z - this->actor.world.pos.z; - if (func_8010BDBC(&globalCtx->msgCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE) { this->chasedEnNiw->path = 0; } if (sqrtf(SQ(xDistBetween) + SQ(zDistBetween)) < 70.0f) { @@ -169,16 +169,16 @@ void EnNiwGirl_Talk(EnNiwGirl* this, GlobalContext* globalCtx) { void func_80AB94D0(EnNiwGirl* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8010BDBC(&globalCtx->msgCtx)) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE) { this->chasedEnNiw->path = 0; } Math_ApproachZeroF(&this->actor.speedXZ, 0.8f, 0.2f); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->actor.textId == 0x70EA) { this->unk_27A = 1; } } else { - if ((this->jumpTimer == 0) && !func_8010BDBC(&globalCtx->msgCtx)) { + if ((this->jumpTimer == 0) && Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { this->jumpTimer = Rand_ZeroFloat(100.0f) + 250.0f; this->actionFunc = EnNiwGirl_Jump; } else { diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 9819d9e308..18dcf3959f 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -193,7 +193,7 @@ void func_80AB9F24(EnNiwLady* this, GlobalContext* globalCtx) { void func_80ABA21C(EnNiwLady* this, GlobalContext* globalCtx) { this->actor.textId = sMissingCuccoTextIds[0]; - this->unk_262 = 6; + this->unk_262 = TEXT_STATE_DONE; this->actionFunc = func_80ABA244; } @@ -226,7 +226,8 @@ void func_80ABA244(EnNiwLady* this, GlobalContext* globalCtx) { this->cuccosInPen = BREG(7) - 1; } phi_s1 = this->cuccosInPen; - if ((func_8010BDBC(&globalCtx->msgCtx) == 0) || (func_8010BDBC(&globalCtx->msgCtx) == 6)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE)) { this->unk_26E = 101; } if (this->cuccosInPen >= 7) { @@ -241,13 +242,13 @@ void func_80ABA244(EnNiwLady* this, GlobalContext* globalCtx) { this->actor.textId = sMissingCuccoTextIds[phi_s1]; if (Text_GetFaceReaction(globalCtx, 8) != 0) { this->actor.textId = Text_GetFaceReaction(globalCtx, 8); - this->unk_262 = 6; + this->unk_262 = TEXT_STATE_DONE; } if ((this->unk_26C != 0) && (phi_s1 != 9)) { phi_s1 = 10; this->unk_26E = 11; } - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { osSyncPrintf("\n\n"); osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ ねぇちゃん選択\t ☆☆☆☆ %d\n" VT_RST, phi_s1); osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ ねぇちゃんハート ☆☆☆☆ %d\n" VT_RST, this->unk_26C); @@ -260,7 +261,7 @@ void func_80ABA244(EnNiwLady* this, GlobalContext* globalCtx) { if (this->actor.textId == 0x503C) { func_80078884(NA_SE_SY_ERROR); this->unk_26C = 2; - this->unk_262 = 5; + this->unk_262 = TEXT_STATE_EVENT; this->actionFunc = func_80ABA654; return; } @@ -268,7 +269,7 @@ void func_80ABA244(EnNiwLady* this, GlobalContext* globalCtx) { if (phi_s1 == 7) { func_80078884(NA_SE_SY_TRE_BOX_APPEAR); this->unk_26C = 1; - this->unk_262 = 5; + this->unk_262 = TEXT_STATE_EVENT; this->unk_26A = this->cuccosInPen; osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 柵内BIT変更前 ☆☆ %x\n" VT_RST, gSaveContext.infTable[25]); gSaveContext.infTable[25] &= 0x1FF; @@ -295,8 +296,8 @@ void func_80ABA244(EnNiwLady* this, GlobalContext* globalCtx) { } void func_80ABA654(EnNiwLady* this, GlobalContext* globalCtx) { - if (this->unk_262 == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx) != 0) { - func_80106CCC(globalCtx); + if (this->unk_262 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ ハート ☆☆☆☆☆ %d\n" VT_RST, this->unk_26C); osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 爆弾 ☆☆☆☆☆ %d\n" VT_RST, this->unk_272); osSyncPrintf("\n\n"); @@ -323,7 +324,7 @@ static s16 sTradeItemTextIds[] = { 0x503E, 0x503F, 0x5047, 0x5040, 0x5042, 0x504 void func_80ABA778(EnNiwLady* this, GlobalContext* globalCtx) { // "☆☆☆☆☆ Adult message check ☆☆☆☆☆" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ アダルトメッセージチェック ☆☆☆☆☆ \n" VT_RST); - this->unk_262 = 6; + this->unk_262 = TEXT_STATE_DONE; this->unk_273 = 0; if (!(gSaveContext.itemGetInf[2] & 0x1000)) { if (this->unk_274 != 0) { @@ -332,7 +333,7 @@ void func_80ABA778(EnNiwLady* this, GlobalContext* globalCtx) { this->unk_27A = 0; } this->unk_273 = 1; - this->unk_262 = 4; + this->unk_262 = TEXT_STATE_CHOICE; } else { this->unk_27A = 2; if (!(gSaveContext.itemGetInf[2] & 0x4000)) { @@ -355,16 +356,17 @@ void func_80ABA878(EnNiwLady* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s8 playerExchangeItemId; - if ((func_8010BDBC(&globalCtx->msgCtx) == 0) || (func_8010BDBC(&globalCtx->msgCtx) == 6)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE)) { this->unk_26E = 11; } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { playerExchangeItemId = func_8002F368(globalCtx); if ((playerExchangeItemId == 6) && (gSaveContext.eventChkInf[6] & 0x400)) { func_80078884(NA_SE_SY_TRE_BOX_APPEAR); player->actor.textId = sTradeItemTextIds[5]; this->unk_26E = this->unk_27A + 21; - this->unk_262 = 4; + this->unk_262 = TEXT_STATE_CHOICE; this->actionFunc = func_80ABAB08; } else if (playerExchangeItemId != 0) { player->actor.textId = sTradeItemTextIds[7]; @@ -380,10 +382,10 @@ void func_80ABA878(EnNiwLady* this, GlobalContext* globalCtx) { } void func_80ABA9B8(EnNiwLady* this, GlobalContext* globalCtx) { - if ((this->unk_262 == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { + if ((this->unk_262 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.parent = NULL; func_8002F434(&this->actor, globalCtx, GI_POCKET_EGG, 200.0f, 100.0f); this->actionFunc = func_80ABAC00; @@ -391,8 +393,8 @@ void func_80ABA9B8(EnNiwLady* this, GlobalContext* globalCtx) { case 1: this->actor.textId = sTradeItemTextIds[3]; this->unk_26E = this->unk_27A + 21; - func_8010B720(globalCtx, this->actor.textId); - this->unk_262 = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->unk_262 = TEXT_STATE_EVENT; this->actionFunc = func_80ABAA9C; break; } @@ -401,28 +403,28 @@ void func_80ABA9B8(EnNiwLady* this, GlobalContext* globalCtx) { void func_80ABAA9C(EnNiwLady* this, GlobalContext* globalCtx) { this->unk_26E = 11; - if ((this->unk_262 == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((this->unk_262 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = func_80ABA778; } } void func_80ABAB08(EnNiwLady* this, GlobalContext* globalCtx) { - if ((this->unk_262 == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { + if ((this->unk_262 == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.parent = NULL; func_8002F434(&this->actor, globalCtx, GI_COJIRO, 200.0f, 100.0f); this->actionFunc = func_80ABAC00; break; case 1: - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->unk_277 = 1; this->actor.textId = sTradeItemTextIds[8]; this->unk_26E = this->unk_27A + 21; - func_8010B720(globalCtx, this->actor.textId); - this->unk_262 = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->unk_262 = TEXT_STATE_EVENT; this->actionFunc = func_80ABAA9C; break; } @@ -444,7 +446,7 @@ void func_80ABAC00(EnNiwLady* this, GlobalContext* globalCtx) { } void func_80ABAC84(EnNiwLady* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) != 6) || (func_80106BC8(globalCtx) == 0)) { + if ((Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_DONE) || !Message_ShouldAdvance(globalCtx)) { return; } osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); @@ -457,14 +459,14 @@ void func_80ABAC84(EnNiwLady* this, GlobalContext* globalCtx) { this->actionFunc = func_80ABA778; } else { gSaveContext.itemGetInf[0] |= 0x1000; - this->unk_262 = 6; + this->unk_262 = TEXT_STATE_DONE; this->actionFunc = func_80ABA244; } } void func_80ABAD38(EnNiwLady* this, GlobalContext* globalCtx) { osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 通常メッセージチェック ☆☆☆☆☆ \n" VT_RST); - this->unk_262 = 6; + this->unk_262 = TEXT_STATE_DONE; this->actionFunc = func_80ABAD7C; } @@ -473,10 +475,11 @@ void func_80ABAD7C(EnNiwLady* this, GlobalContext* globalCtx) { if (Text_GetFaceReaction(globalCtx, 8) != 0) { this->actor.textId = Text_GetFaceReaction(globalCtx, 8); } - if ((func_8010BDBC(&globalCtx->msgCtx) == 0) || (func_8010BDBC(&globalCtx->msgCtx) == 6)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE)) { this->unk_26E = 8; } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_274 = 1; this->unk_26E = this->unk_27A + 9; this->actionFunc = func_80ABAD38; diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c index fa57bd4e43..6d9cf2c9c0 100644 --- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c +++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c @@ -73,7 +73,7 @@ void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, GlobalContext* globalCt void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, GlobalContext* globalCtx) { Flags_UnsetEnv(globalCtx, 5); // clear storms env flag if (((globalCtx->pauseCtx.state == 0) && (globalCtx->gameOverCtx.state == GAMEOVER_INACTIVE) && - (globalCtx->msgCtx.unk_E300 == 0) && (!FrameAdvance_IsEnabled(globalCtx)) && + (globalCtx->msgCtx.msgLength == 0) && (!FrameAdvance_IsEnabled(globalCtx)) && ((globalCtx->transitionMode == 0) || (gSaveContext.gameMode != 0))) || (this->timer >= 250)) { if (globalCtx->envCtx.indoors || globalCtx->envCtx.unk_1F != 1) { diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index 6cc6fcc6bb..fc1e7cfc44 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -49,31 +49,31 @@ void EnOkarinaTag_Init(Actor* thisx, GlobalContext* globalCtx) { // "Ocarina tag outbreak" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ オカリナタグ発生 ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); this->actor.flags &= ~1; - this->unk_150 = (this->actor.params >> 0xA) & 0x3F; - this->unk_152 = (this->actor.params >> 6) & 0xF; + this->type = (this->actor.params >> 0xA) & 0x3F; + this->ocarinaSong = (this->actor.params >> 6) & 0xF; this->switchFlag = this->actor.params & 0x3F; if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - if (this->unk_152 == 0xF) { - this->unk_152 = 0; + if (this->ocarinaSong == 0xF) { + this->ocarinaSong = 0; this->unk_158 = 1; } this->actor.targetMode = 1; if (this->actor.world.rot.z > 0) { - this->unk_15C = this->actor.world.rot.z * 40.0f; + this->interactRange = this->actor.world.rot.z * 40.0f; } // "Save information" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ セーブ情報\t ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); // "Type index" - osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 種類インデックス ☆☆☆☆☆ %d\n" VT_RST, this->unk_150); + osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 種類インデックス ☆☆☆☆☆ %d\n" VT_RST, this->type); // "Correct answer information" - osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 正解情報\t ☆☆☆☆☆ %d\n" VT_RST, this->unk_152); + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 正解情報\t ☆☆☆☆☆ %d\n" VT_RST, this->ocarinaSong); // "Range information" osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 範囲情報\t ☆☆☆☆☆ %d\n" VT_RST, this->actor.world.rot.z); // "Processing range information" - osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 処理範囲情報\t ☆☆☆☆☆ %f\n" VT_RST, this->unk_15C); + osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 処理範囲情報\t ☆☆☆☆☆ %f\n" VT_RST, this->interactRange); // "Hit?" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 当り?\t\t ☆☆☆☆☆ %d\n" VT_RST, this->unk_158); osSyncPrintf("\n\n"); @@ -81,7 +81,7 @@ void EnOkarinaTag_Init(Actor* thisx, GlobalContext* globalCtx) { if ((this->switchFlag >= 0) && (Flags_GetSwitch(globalCtx, this->switchFlag))) { Actor_Kill(&this->actor); } else { - switch (this->unk_150) { + switch (this->type) { case 7: this->actionFunc = func_80ABEF2C; break; @@ -108,29 +108,29 @@ void EnOkarinaTag_Init(Actor* thisx, GlobalContext* globalCtx) { void func_80ABEF2C(EnOkarinaTag* this, GlobalContext* globalCtx) { Player* player; - u16 unk_152; + u16 ocarinaSong; player = GET_PLAYER(globalCtx); this->unk_15A++; if ((this->switchFlag >= 0) && (Flags_GetSwitch(globalCtx, this->switchFlag))) { this->actor.flags &= ~1; } else { - if ((this->unk_152 != 6) || (gSaveContext.scarecrowSpawnSongSet)) { + if ((this->ocarinaSong != 6) || (gSaveContext.scarecrowSpawnSongSet)) { if (player->stateFlags2 & 0x1000000) { // "North! ! ! ! !" osSyncPrintf(VT_FGCOL(RED) "☆☆☆☆☆ 北!!!!! ☆☆☆☆☆ %f\n" VT_RST, this->actor.xzDistToPlayer); } - if ((this->actor.xzDistToPlayer < (90.0f + this->unk_15C)) && + if ((this->actor.xzDistToPlayer < (90.0f + this->interactRange)) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 80.0f)) { if (player->stateFlags2 & 0x2000000) { - unk_152 = this->unk_152; - if (unk_152 == 6) { - unk_152 = 0xA; + ocarinaSong = this->ocarinaSong; + if (ocarinaSong == 6) { + ocarinaSong = 0xA; } player->stateFlags2 |= 0x800000; - func_8010BD58(globalCtx, unk_152 + 0x22); + func_8010BD58(globalCtx, ocarinaSong + OCARINA_ACTION_CHECK_SARIA); this->actionFunc = func_80ABF0CC; - } else if ((this->actor.xzDistToPlayer < (50.0f + this->unk_15C) && + } else if ((this->actor.xzDistToPlayer < (50.0f + this->interactRange) && ((fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 40.0f)))) { this->unk_15A = 0; player->unk_6A8 = &this->actor; @@ -143,41 +143,44 @@ void func_80ABEF2C(EnOkarinaTag* this, GlobalContext* globalCtx) { void func_80ABF0CC(EnOkarinaTag* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE == 4) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { this->actionFunc = func_80ABEF2C; } else { - if (globalCtx->msgCtx.unk_E3EE == 3) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { if (this->switchFlag >= 0) { Flags_SetSwitch(globalCtx, this->switchFlag); } if (globalCtx->sceneNum == SCENE_MIZUSIN) { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; } if ((globalCtx->sceneNum != SCENE_DAIYOUSEI_IZUMI) && (globalCtx->sceneNum != SCENE_YOUSEI_IZUMI_YOKO)) { - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; } func_80078884(NA_SE_SY_CORRECT_CHIME); this->actionFunc = func_80ABEF2C; return; } if (this->unk_158 != 0) { - if ((globalCtx->msgCtx.unk_E3EE == 5) || (globalCtx->msgCtx.unk_E3EE == 6) || - (globalCtx->msgCtx.unk_E3EE == 7) || (globalCtx->msgCtx.unk_E3EE == 8) || - (globalCtx->msgCtx.unk_E3EE == 9) || (globalCtx->msgCtx.unk_E3EE == 10) || - (globalCtx->msgCtx.unk_E3EE == 13)) { + if ((globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_05) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_06) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_07) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_08) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_09) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_0A) || + (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_0D)) { if (this->switchFlag >= 0) { Flags_SetSwitch(globalCtx, this->switchFlag); } - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; func_80078884(NA_SE_SY_CORRECT_CHIME); this->actionFunc = func_80ABEF2C; return; } } - if ((globalCtx->msgCtx.unk_E3EE >= 5) && (globalCtx->msgCtx.unk_E3EE < 0xE)) { - globalCtx->msgCtx.unk_E3EE = 4; + if ((globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_05) && (globalCtx->msgCtx.ocarinaMode < OCARINA_MODE_0E)) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; this->actionFunc = func_80ABEF2C; - } else if (globalCtx->msgCtx.unk_E3EE == 1) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { player->stateFlags2 |= 0x800000; } } @@ -187,37 +190,37 @@ void func_80ABF28C(EnOkarinaTag* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); this->unk_15A++; - if ((this->unk_152 != 6) || (gSaveContext.scarecrowSpawnSongSet)) { + if ((this->ocarinaSong != 6) || (gSaveContext.scarecrowSpawnSongSet)) { if ((this->switchFlag >= 0) && Flags_GetSwitch(globalCtx, this->switchFlag)) { this->actor.flags &= ~1; - } else if (((this->unk_150 != 4) || !(gSaveContext.eventChkInf[4] & 0x800)) && - ((this->unk_150 != 6) || !(gSaveContext.eventChkInf[1] & 0x2000)) && - (this->actor.xzDistToPlayer < (90.0f + this->unk_15C)) && + } else if (((this->type != 4) || !(gSaveContext.eventChkInf[4] & 0x800)) && + ((this->type != 6) || !(gSaveContext.eventChkInf[1] & 0x2000)) && + (this->actor.xzDistToPlayer < (90.0f + this->interactRange)) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 80.0f)) { if (player->stateFlags2 & 0x1000000) { - switch (this->unk_150) { + switch (this->type) { case 1: - func_8010BD58(globalCtx, 0x24); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_LULLABY); break; case 2: - func_8010BD58(globalCtx, 0x27); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_STORMS); break; case 4: - func_8010BD58(globalCtx, 0x26); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_TIME); break; case 6: - func_8010BD58(globalCtx, 0x24); + func_8010BD58(globalCtx, OCARINA_ACTION_CHECK_LULLABY); break; default: // "Ocarina Invisible-kun demo start check error source" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ オカリナ透明君デモ開始チェックエラー原 ☆☆☆☆☆ %d\n" VT_RST, - this->unk_150); + this->type); Actor_Kill(&this->actor); break; } player->stateFlags2 |= 0x800000; this->actionFunc = func_80ABF4C8; - } else if ((this->actor.xzDistToPlayer < (50.0f + this->unk_15C)) && + } else if ((this->actor.xzDistToPlayer < (50.0f + this->interactRange)) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 40.0f)) { this->unk_15A = 0; player->stateFlags2 |= 0x800000; @@ -229,14 +232,14 @@ void func_80ABF28C(EnOkarinaTag* this, GlobalContext* globalCtx) { void func_80ABF4C8(EnOkarinaTag* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (globalCtx->msgCtx.unk_E3EE == 4) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { this->actionFunc = func_80ABF28C; - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { func_80078884(NA_SE_SY_CORRECT_CHIME); if (this->switchFlag >= 0) { Flags_SetSwitch(globalCtx, this->switchFlag); } - switch (this->unk_150) { + switch (this->type) { case 1: Flags_SetSwitch(globalCtx, this->switchFlag); gSaveContext.eventChkInf[3] |= 0x200; @@ -260,17 +263,17 @@ void func_80ABF4C8(EnOkarinaTag* this, GlobalContext* globalCtx) { default: break; } - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; this->actionFunc = func_80ABF28C; } else { - if (globalCtx->msgCtx.unk_E3EE >= 5) { - if (globalCtx->msgCtx.unk_E3EE < 0xE) { - globalCtx->msgCtx.unk_E3EE = 4; + if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_05) { + if (globalCtx->msgCtx.ocarinaMode < OCARINA_MODE_0E) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; this->actionFunc = func_80ABF28C; return; } } - if (globalCtx->msgCtx.unk_E3EE == 1) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { player->stateFlags2 |= 0x800000; } } @@ -280,7 +283,7 @@ void func_80ABF708(EnOkarinaTag* this, GlobalContext* globalCtx) { s16 yawDiff; s16 yawDiffNew; - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = func_80ABF7CC; } else { yawDiff = this->actor.yawTowardsPlayer - this->actor.world.rot.y; @@ -300,10 +303,10 @@ void func_80ABF708(EnOkarinaTag* this, GlobalContext* globalCtx) { void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) { // "Open sesame sesame!" - osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 開けゴマゴマゴマ! ☆☆☆☆☆ %d\n" VT_RST, func_8010BDBC(&globalCtx->msgCtx)); + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 開けゴマゴマゴマ! ☆☆☆☆☆ %d\n" VT_RST, Message_GetState(&globalCtx->msgCtx)); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) { globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs); gSaveContext.cutsceneTrigger = 1; diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h index 124f19b66a..5946f70231 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h @@ -11,13 +11,13 @@ typedef void (*EnOkarinaTagActionFunc)(struct EnOkarinaTag*, GlobalContext*); typedef struct EnOkarinaTag { /* 0x0000 */ Actor actor; /* 0x014C */ EnOkarinaTagActionFunc actionFunc; - /* 0x0150 */ s16 unk_150; - /* 0x0152 */ s16 unk_152; + /* 0x0150 */ s16 type; + /* 0x0152 */ s16 ocarinaSong; /* 0x0154 */ s16 switchFlag; /* 0x0156 */ char unk_156[0x2]; /* 0x0158 */ s16 unk_158; /* 0x015A */ s16 unk_15A; - /* 0x015C */ f32 unk_15C; + /* 0x015C */ f32 interactRange; } EnOkarinaTag; // size = 0x0160 #endif diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index e3435fea2d..d61c548d32 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -469,42 +469,42 @@ void EnOssan_UpdateShopOfferings(EnOssan* this, GlobalContext* globalCtx) { } void EnOssan_TalkDefaultShopkeeper(GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x9E); + Message_ContinueTextbox(globalCtx, 0x9E); } void EnOssan_TalkKakarikoPotionShopkeeper(GlobalContext* globalCtx) { if (globalCtx->curSpawn == 0) { - func_8010B720(globalCtx, 0x5046); + Message_ContinueTextbox(globalCtx, 0x5046); } else { - func_8010B720(globalCtx, 0x504E); + Message_ContinueTextbox(globalCtx, 0x504E); } } void EnOssan_TalkMarketPotionShopkeeper(GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x504E); + Message_ContinueTextbox(globalCtx, 0x504E); } void EnOssan_TalkKokiriShopkeeper(GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x10BA); + Message_ContinueTextbox(globalCtx, 0x10BA); } void EnOssan_TalkBazaarShopkeeper(GlobalContext* globalCtx) { if (globalCtx->curSpawn == 0) { - func_8010B720(globalCtx, 0x9D); + Message_ContinueTextbox(globalCtx, 0x9D); } else { - func_8010B720(globalCtx, 0x9C); + Message_ContinueTextbox(globalCtx, 0x9C); } } void EnOssan_TalkBombchuShopkeeper(GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x7076); + Message_ContinueTextbox(globalCtx, 0x7076); } void EnOssan_TalkZoraShopkeeper(GlobalContext* globalCtx) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) { - func_8010B720(globalCtx, 0x403A); + Message_ContinueTextbox(globalCtx, 0x403A); } else { - func_8010B720(globalCtx, 0x403B); + Message_ContinueTextbox(globalCtx, 0x403B); } } @@ -512,16 +512,16 @@ void EnOssan_TalkZoraShopkeeper(GlobalContext* globalCtx) { void EnOssan_TalkGoronShopkeeper(GlobalContext* globalCtx) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) { if (gSaveContext.eventChkInf[2] & 0x20) { - func_8010B720(globalCtx, 0x3028); + Message_ContinueTextbox(globalCtx, 0x3028); } else if (CUR_UPG_VALUE(UPG_STRENGTH) != 0) { - func_8010B720(globalCtx, 0x302D); + Message_ContinueTextbox(globalCtx, 0x302D); } else { - func_8010B720(globalCtx, 0x300F); + Message_ContinueTextbox(globalCtx, 0x300F); } } else if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE)) { - func_8010B720(globalCtx, 0x3057); + Message_ContinueTextbox(globalCtx, 0x3057); } else { - func_8010B720(globalCtx, 0x305B); + Message_ContinueTextbox(globalCtx, 0x305B); } } @@ -531,14 +531,14 @@ void EnOssan_TalkHappyMaskShopkeeper(GlobalContext* globalCtx) { && (gSaveContext.itemGetInf[3] & 0x200) // Sold Skull Mask && (gSaveContext.itemGetInf[3] & 0x400) // Sold Spooky Mask && (gSaveContext.itemGetInf[3] & 0x800)) { // Sold Bunny Hood - func_8010B720(globalCtx, 0x70AE); + Message_ContinueTextbox(globalCtx, 0x70AE); } else { switch (globalCtx->msgCtx.choiceIndex) { case 1: - func_8010B720(globalCtx, 0x70A4); + Message_ContinueTextbox(globalCtx, 0x70A4); break; case 0: - func_8010B720(globalCtx, 0x70A3); + Message_ContinueTextbox(globalCtx, 0x70A3); break; } } @@ -640,7 +640,7 @@ void EnOssan_UpdateCursorPos(GlobalContext* globalCtx, EnOssan* this) { s16 x; s16 y; - func_8002F374(globalCtx, &this->shelfSlots[this->cursorIndex]->actor, &x, &y); + Actor_GetScreenPos(globalCtx, &this->shelfSlots[this->cursorIndex]->actor, &x, &y); this->cursorX = x; this->cursorY = y; } @@ -651,9 +651,9 @@ void EnOssan_EndInteraction(GlobalContext* globalCtx, EnOssan* this) { // "End of conversation!" osSyncPrintf(VT_FGCOL(YELLOW) "%s[%d]:★★★ 会話終了!! ★★★" VT_RST "\n", "../z_en_oB1.c", 1337); YREG(31) = 0; - func_8002F194(&this->actor, globalCtx); - globalCtx->msgCtx.msgMode = 0x36; - globalCtx->msgCtx.unk_E3E7 = 4; + Actor_ProcessTalkRequest(&this->actor, globalCtx); + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; + globalCtx->msgCtx.stateTimer = 4; player->stateFlags2 &= ~0x20000000; func_800BC490(globalCtx, 1); Interface_ChangeAlpha(50); @@ -677,7 +677,7 @@ s32 EnOssan_TestEndInteraction(EnOssan* this, GlobalContext* globalCtx, Input* i s32 EnOssan_TestCancelOption(EnOssan* this, GlobalContext* globalCtx, Input* input) { if (CHECK_BTN_ALL(input->press.button, BTN_B)) { this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); return true; } else { return false; @@ -687,7 +687,7 @@ s32 EnOssan_TestCancelOption(EnOssan* this, GlobalContext* globalCtx, Input* inp void EnOssan_SetStateStartShopping(GlobalContext* globalCtx, EnOssan* this, u8 skipHelloState) { YREG(31) = 1; this->headRot = this->headTargetRot = 0; - Interface_SetDoAction(globalCtx, 0x10); + Interface_SetDoAction(globalCtx, DO_ACTION_NEXT); EnOssan_UpdateCameraDirection(this, globalCtx, 0); if (!skipHelloState) { @@ -704,15 +704,15 @@ void EnOssan_StartShopping(GlobalContext* globalCtx, EnOssan* this) { // if all masks have been sold, give the option to ask about the mask of truth if ((gSaveContext.itemGetInf[3] & 0x100) && (gSaveContext.itemGetInf[3] & 0x200) && (gSaveContext.itemGetInf[3] & 0x400) && (gSaveContext.itemGetInf[3] & 0x800)) { - func_8010B720(globalCtx, 0x70AD); + Message_ContinueTextbox(globalCtx, 0x70AD); } else { - func_8010B720(globalCtx, 0x70A2); + Message_ContinueTextbox(globalCtx, 0x70A2); } } else { - func_8010B720(globalCtx, 0x83); + Message_ContinueTextbox(globalCtx, 0x83); } - Interface_SetDoAction(globalCtx, 6); + Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE); this->stickRightPrompt.isEnabled = true; this->stickLeftPrompt.isEnabled = true; EnOssan_UpdateCameraDirection(this, globalCtx, 0.0f); @@ -721,7 +721,7 @@ void EnOssan_StartShopping(GlobalContext* globalCtx, EnOssan* this) { void EnOssan_ChooseTalkToOwner(GlobalContext* globalCtx, EnOssan* this) { this->stateFlag = OSSAN_STATE_TALKING_TO_SHOPKEEPER; sShopkeeperTalkOwner[this->actor.params](globalCtx); - Interface_SetDoAction(globalCtx, 6); + Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE); this->stickLeftPrompt.isEnabled = false; this->stickRightPrompt.isEnabled = false; } @@ -735,7 +735,7 @@ void EnOssan_SetLookToShopkeeperFromShelf(GlobalContext* globalCtx, EnOssan* thi void EnOssan_State_Idle(EnOssan* this, GlobalContext* globalCtx, Player* player) { this->headTargetRot = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { // "Start conversation!!" osSyncPrintf(VT_FGCOL(YELLOW) "★★★ 会話開始!! ★★★" VT_RST "\n"); player->stateFlags2 |= 0x20000000; @@ -858,7 +858,7 @@ void EnOssan_TryPaybackMask(EnOssan* this, GlobalContext* globalCtx) { s16 price = sMaskPaymentPrice[this->happyMaskShopState]; if (gSaveContext.rupees < price) { - func_8010B720(globalCtx, 0x70A8); + Message_ContinueTextbox(globalCtx, 0x70A8); this->happyMaskShopkeeperEyeIdx = 1; this->happyMaskShopState = OSSAN_HAPPY_STATE_ANGRY; } else { @@ -866,7 +866,7 @@ void EnOssan_TryPaybackMask(EnOssan* this, GlobalContext* globalCtx) { if (this->happyMaskShopState == OSSAN_HAPPY_STATE_REQUEST_PAYMENT_BUNNY_HOOD) { gSaveContext.eventChkInf[8] |= 0x8000; - func_8010B720(globalCtx, 0x70A9); + Message_ContinueTextbox(globalCtx, 0x70A9); this->happyMaskShopState = OSSAN_HAPPY_STATE_ALL_MASKS_SOLD; return; } @@ -879,17 +879,18 @@ void EnOssan_TryPaybackMask(EnOssan* this, GlobalContext* globalCtx) { gSaveContext.eventChkInf[8] |= 0x2000; } - func_8010B720(globalCtx, 0x70A7); + Message_ContinueTextbox(globalCtx, 0x70A7); this->happyMaskShopState = OSSAN_HAPPY_STATE_NONE; } this->stateFlag = OSSAN_STATE_START_CONVERSATION; } void EnOssan_State_StartConversation(EnOssan* this, GlobalContext* globalCtx, Player* player) { - u8 dialogState = func_8010BDBC(&globalCtx->msgCtx); + u8 dialogState = Message_GetState(&globalCtx->msgCtx); - if (this->actor.params == OSSAN_TYPE_MASK && dialogState == 4) { - if (!EnOssan_TestEndInteraction(this, globalCtx, &globalCtx->state.input[0]) && func_80106BC8(globalCtx)) { + if (this->actor.params == OSSAN_TYPE_MASK && dialogState == TEXT_STATE_CHOICE) { + if (!EnOssan_TestEndInteraction(this, globalCtx, &globalCtx->state.input[0]) && + Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: EnOssan_StartShopping(globalCtx, this); @@ -899,12 +900,12 @@ void EnOssan_State_StartConversation(EnOssan* this, GlobalContext* globalCtx, Pl break; } } - } else if (dialogState == 5 && func_80106BC8(globalCtx)) { + } else if (dialogState == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { func_80078884(NA_SE_SY_MESSAGE_PASS); switch (this->happyMaskShopState) { case OSSAN_HAPPY_STATE_ALL_MASKS_SOLD: - func_8010B720(globalCtx, 0x70AA); + Message_ContinueTextbox(globalCtx, 0x70AA); this->stateFlag = OSSAN_STATE_LEND_MASK_OF_TRUTH; return; case OSSAN_HAPPY_STATE_BORROWED_FIRST_MASK: @@ -949,9 +950,9 @@ s32 EnOssan_FacingShopkeeperDialogResult(EnOssan* this, GlobalContext* globalCtx void EnOssan_State_FacingShopkeeper(EnOssan* this, GlobalContext* globalCtx, Player* player) { u8 nextIndex; - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && !EnOssan_TestEndInteraction(this, globalCtx, &globalCtx->state.input[0])) { - if (func_80106BC8(globalCtx) && EnOssan_FacingShopkeeperDialogResult(this, globalCtx)) { + if (Message_ShouldAdvance(globalCtx) && EnOssan_FacingShopkeeperDialogResult(this, globalCtx)) { func_80078884(NA_SE_SY_DECIDE); return; } @@ -961,7 +962,7 @@ void EnOssan_State_FacingShopkeeper(EnOssan* this, GlobalContext* globalCtx, Pla if (nextIndex != CURSOR_INVALID) { this->cursorIndex = nextIndex; this->stateFlag = OSSAN_STATE_LOOK_SHELF_LEFT; - Interface_SetDoAction(globalCtx, 6); + Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE); this->stickLeftPrompt.isEnabled = false; func_80078884(NA_SE_SY_CURSOR); } @@ -970,7 +971,7 @@ void EnOssan_State_FacingShopkeeper(EnOssan* this, GlobalContext* globalCtx, Pla if (nextIndex != CURSOR_INVALID) { this->cursorIndex = nextIndex; this->stateFlag = OSSAN_STATE_LOOK_SHELF_RIGHT; - Interface_SetDoAction(globalCtx, 6); + Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE); this->stickRightPrompt.isEnabled = false; func_80078884(NA_SE_SY_CURSOR); } @@ -979,7 +980,7 @@ void EnOssan_State_FacingShopkeeper(EnOssan* this, GlobalContext* globalCtx, Pla } void EnOssan_State_TalkingToShopkeeper(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnOssan_StartShopping(globalCtx, this); } } @@ -997,7 +998,7 @@ void EnOssan_State_LookToLeftShelf(EnOssan* this, GlobalContext* globalCtx, Play EnOssan_UpdateCameraDirection(this, globalCtx, 30.0f); EnOssan_UpdateCursorPos(globalCtx, this); this->stateFlag = OSSAN_STATE_BROWSE_LEFT_SHELF; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } else { this->stickAccumX = 0; } @@ -1016,7 +1017,7 @@ void EnOssan_State_LookToRightShelf(EnOssan* this, GlobalContext* globalCtx, Pla EnOssan_UpdateCameraDirection(this, globalCtx, -30.0f); EnOssan_UpdateCursorPos(globalCtx, this); this->stateFlag = OSSAN_STATE_BROWSE_RIGHT_SHELF; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } else { this->stickAccumX = 0; } @@ -1113,10 +1114,10 @@ s32 EnOssan_HasPlayerSelectedItem(GlobalContext* globalCtx, EnOssan* this, Input if (EnOssan_TestEndInteraction(this, globalCtx, input)) { return true; } - if (func_80106BC8(globalCtx)) { + if (Message_ShouldAdvance(globalCtx)) { if (selectedItem->actor.params != SI_SOLD_OUT && selectedItem->isInvisible == 0) { this->tempStateFlag = this->stateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->itemBuyPromptTextId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->itemBuyPromptTextId); this->stickLeftPrompt.isEnabled = false; this->stickRightPrompt.isEnabled = false; switch (selectedItem->actor.params) { @@ -1189,7 +1190,7 @@ void EnOssan_State_BrowseLeftShelf(EnOssan* this, GlobalContext* globalCtx, Play this->drawCursor = 0xFF; this->stickRightPrompt.isEnabled = true; EnOssan_UpdateCursorPos(globalCtx, this); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && !EnOssan_HasPlayerSelectedItem(globalCtx, this, &globalCtx->state.input[0])) { if (this->moveHorizontal) { if (this->stickAccumX > 0) { @@ -1224,7 +1225,7 @@ void EnOssan_State_BrowseLeftShelf(EnOssan* this, GlobalContext* globalCtx, Play } EnOssan_CursorUpDown(this); if (this->cursorIndex != prevIndex) { - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); func_80078884(NA_SE_SY_CURSOR); } } @@ -1248,7 +1249,7 @@ void EnOssan_State_BrowseRightShelf(EnOssan* this, GlobalContext* globalCtx, Pla this->drawCursor = 0xFF; this->stickLeftPrompt.isEnabled = true; EnOssan_UpdateCursorPos(globalCtx, this); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && !EnOssan_HasPlayerSelectedItem(globalCtx, this, &globalCtx->state.input[0])) { if (this->moveHorizontal) { if (this->stickAccumX < 0) { @@ -1283,7 +1284,7 @@ void EnOssan_State_BrowseRightShelf(EnOssan* this, GlobalContext* globalCtx, Pla } EnOssan_CursorUpDown(this); if (this->cursorIndex != prevIndex) { - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); func_80078884(NA_SE_SY_CURSOR); } } @@ -1311,7 +1312,7 @@ void EnOssan_State_DisplayOnlyBombDialog(EnOssan* this, GlobalContext* globalCtx } EnOssan_UpdateCameraDirection(this, globalCtx, this->cameraFaceAngle); if (this->cameraFaceAngle == 0.0f) { - func_8010B720(globalCtx, 0x3010); + Message_ContinueTextbox(globalCtx, 0x3010); this->stateFlag = OSSAN_STATE_WAIT_FOR_DISPLAY_ONLY_BOMB_DIALOG; } } @@ -1321,8 +1322,8 @@ void EnOssan_GiveItemWithFanfare(GlobalContext* globalCtx, EnOssan* this) { osSyncPrintf("\n" VT_FGCOL(YELLOW) "初めて手にいれた!!" VT_RST "\n\n"); func_8002F434(&this->actor, globalCtx, this->shelfSlots[this->cursorIndex]->getItemId, 120.0f, 120.0f); - globalCtx->msgCtx.msgMode = 0x36; - globalCtx->msgCtx.unk_E3E7 = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; + globalCtx->msgCtx.stateTimer = 4; player->stateFlags2 &= ~0x20000000; func_800BC490(globalCtx, 1); Interface_ChangeAlpha(50); @@ -1333,12 +1334,12 @@ void EnOssan_GiveItemWithFanfare(GlobalContext* globalCtx, EnOssan* this) { } void EnOssan_SetStateCantGetItem(GlobalContext* globalCtx, EnOssan* this, u16 textId) { - func_8010B720(globalCtx, textId); + Message_ContinueTextbox(globalCtx, textId); this->stateFlag = OSSAN_STATE_CANT_GET_ITEM; } void EnOssan_SetStateQuickBuyDialog(GlobalContext* globalCtx, EnOssan* this, u16 textId) { - func_8010B720(globalCtx, textId); + Message_ContinueTextbox(globalCtx, textId); this->stateFlag = OSSAN_STATE_QUICK_BUY; } @@ -1387,7 +1388,7 @@ void EnOssan_HandleCanBuyLonLonMilk(GlobalContext* globalCtx, EnOssan* this) { switch (item->canBuyFunc(globalCtx, item)) { case CANBUY_RESULT_SUCCESS_FANFARE: - func_8010B720(globalCtx, 0x9C); + Message_ContinueTextbox(globalCtx, 0x9C); this->stateFlag = OSSAN_STATE_GIVE_LON_LON_MILK; this->drawCursor = 0; break; @@ -1484,15 +1485,15 @@ void EnOssan_State_ItemSelected(EnOssan* this, GlobalContext* globalCtx2, Player osSyncPrintf("%s[%d]:" VT_FGCOL(GREEN) "ズーム中!!" VT_RST "\n", "../z_en_oB1.c", 2654); return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && - !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && + !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: EnOssan_HandleCanBuyItem(globalCtx, this); break; case 1: this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); break; } } @@ -1505,15 +1506,15 @@ void EnOssan_State_SelectMilkBottle(EnOssan* this, GlobalContext* globalCtx2, Pl osSyncPrintf("%s[%d]:" VT_FGCOL(GREEN) "ズーム中!!" VT_RST "\n", "../z_en_oB1.c", 2693); return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && - !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && + !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: EnOssan_HandleCanBuyLonLonMilk(globalCtx, this); break; case 1: this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); break; } } @@ -1526,15 +1527,15 @@ void EnOssan_State_SelectWeirdEgg(EnOssan* this, GlobalContext* globalCtx2, Play osSyncPrintf("%s[%d]:" VT_FGCOL(GREEN) "ズーム中!!" VT_RST "\n", "../z_en_oB1.c", 2732); return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && - !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && + !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: EnOssan_HandleCanBuyWeirdEgg(globalCtx, this); break; case 1: this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); break; } } @@ -1545,9 +1546,9 @@ void EnOssan_State_SelectUnimplementedItem(EnOssan* this, GlobalContext* globalC osSyncPrintf("%s[%d]:" VT_FGCOL(GREEN) "ズーム中!!" VT_RST "\n", "../z_en_oB1.c", 2771); return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } } @@ -1561,35 +1562,36 @@ void EnOssan_State_SelectBombs(EnOssan* this, GlobalContext* globalCtx, Player* EnOssan_State_ItemSelected(this, globalCtx, player); return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && - !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && + !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: EnOssan_BuyGoronCityBombs(globalCtx, this); break; case 1: this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); break; } } } void EnOssan_State_SelectMaskItem(EnOssan* this, GlobalContext* globalCtx, Player* player) { - u8 talkState = func_8010BDBC(&globalCtx->msgCtx); + u8 talkState = Message_GetState(&globalCtx->msgCtx); EnGirlA* item = this->shelfSlots[this->cursorIndex]; if (!EnOssan_TakeItemOffShelf(this)) { osSyncPrintf("%s[%d]:" VT_FGCOL(GREEN) "ズーム中!!" VT_RST "\n", "../z_en_oB1.c", 2845); return; } - if (talkState == 5) { - if (func_80106BC8(globalCtx)) { + if (talkState == TEXT_STATE_EVENT) { + if (Message_ShouldAdvance(globalCtx)) { this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } - } else if (talkState == 4 && !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && - func_80106BC8(globalCtx)) { + } else if (talkState == TEXT_STATE_CHOICE && + !EnOssan_TestCancelOption(this, globalCtx, &globalCtx->state.input[0]) && + Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: switch (item->actor.params) { @@ -1618,29 +1620,29 @@ void EnOssan_State_SelectMaskItem(EnOssan* this, GlobalContext* globalCtx, Playe break; case 1: this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); break; } } } void EnOssan_State_CantGetItem(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } } void EnOssan_State_QuickBuyDialog(EnOssan* this, GlobalContext* globalCtx, Player* player) { EnGirlA* item; - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { this->shopItemSelectedTween = 0.0f; EnOssan_ResetItemPosition(this); item = this->shelfSlots[this->cursorIndex]; item->updateStockedItemFunc(globalCtx, item); this->stateFlag = this->tempStateFlag; - func_8010B720(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); + Message_ContinueTextbox(globalCtx, this->shelfSlots[this->cursorIndex]->actor.textId); } } @@ -1658,7 +1660,7 @@ void EnOssan_State_ItemPurchased(EnOssan* this, GlobalContext* globalCtx, Player EnGirlA* item; EnGirlA* itemTemp; - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { if (this->actor.params == OSSAN_TYPE_MASK) { itemTemp = this->shelfSlots[this->cursorIndex]; EnOssan_ResetItemPosition(this); @@ -1666,7 +1668,7 @@ void EnOssan_State_ItemPurchased(EnOssan* this, GlobalContext* globalCtx, Player item->updateStockedItemFunc(globalCtx, item); if (itemTemp->actor.params == SI_MASK_OF_TRUTH && !(gSaveContext.itemGetInf[3] & 0x8000)) { gSaveContext.itemGetInf[3] |= 0x8000; - func_8010B720(globalCtx, 0x70AB); + Message_ContinueTextbox(globalCtx, 0x70AB); this->happyMaskShopState = OSSAN_HAPPY_STATE_BORROWED_FIRST_MASK; EnOssan_UpdateShopOfferings(this, globalCtx); this->stateFlag = OSSAN_STATE_START_CONVERSATION; @@ -1679,16 +1681,16 @@ void EnOssan_State_ItemPurchased(EnOssan* this, GlobalContext* globalCtx, Player item = this->shelfSlots[this->cursorIndex]; item->buyEventFunc(globalCtx, item); this->stateFlag = OSSAN_STATE_CONTINUE_SHOPPING_PROMPT; - func_8010B720(globalCtx, 0x6B); + Message_ContinueTextbox(globalCtx, 0x6B); } } void EnOssan_State_ContinueShoppingPrompt(EnOssan* this, GlobalContext* globalCtx, Player* player) { EnGirlA* selectedItem; - u8 talkState = func_8010BDBC(&globalCtx->msgCtx); + u8 talkState = Message_GetState(&globalCtx->msgCtx); - if (talkState == 4) { - if (func_80106BC8(globalCtx)) { + if (talkState == TEXT_STATE_CHOICE) { + if (Message_ShouldAdvance(globalCtx)) { EnOssan_ResetItemPosition(this); selectedItem = this->shelfSlots[this->cursorIndex]; selectedItem->updateStockedItemFunc(globalCtx, selectedItem); @@ -1699,7 +1701,7 @@ void EnOssan_State_ContinueShoppingPrompt(EnOssan* this, GlobalContext* globalCt player->actor.shape.rot.y += 0x8000; player->stateFlags2 |= 0x20000000; func_800BC490(globalCtx, 2); - func_8010B680(globalCtx, this->actor.textId, &this->actor); + Message_StartTextbox(globalCtx, this->actor.textId, &this->actor); EnOssan_SetStateStartShopping(globalCtx, this, true); func_8002F298(&this->actor, globalCtx, 100.0f, -1); break; @@ -1711,21 +1713,21 @@ void EnOssan_State_ContinueShoppingPrompt(EnOssan* this, GlobalContext* globalCt } } } - } else if (talkState == 5 && func_80106BC8(globalCtx)) { + } else if (talkState == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { EnOssan_ResetItemPosition(this); selectedItem = this->shelfSlots[this->cursorIndex]; selectedItem->updateStockedItemFunc(globalCtx, selectedItem); player->actor.shape.rot.y += 0x8000; player->stateFlags2 |= 0x20000000; func_800BC490(globalCtx, 2); - func_8010B680(globalCtx, this->actor.textId, &this->actor); + Message_StartTextbox(globalCtx, this->actor.textId, &this->actor); EnOssan_SetStateStartShopping(globalCtx, this, true); func_8002F298(&this->actor, globalCtx, 100.0f, -1); } } void EnOssan_State_WaitForDisplayOnlyBombDialog(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[15] |= 0x1000; EnOssan_StartShopping(globalCtx, this); } @@ -1733,29 +1735,29 @@ void EnOssan_State_WaitForDisplayOnlyBombDialog(EnOssan* this, GlobalContext* gl // Unreachable void EnOssan_State_21(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 1 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE_HAS_NEXT && Message_ShouldAdvance(globalCtx)) { this->stateFlag = OSSAN_STATE_22; - func_8010B720(globalCtx, 0x3012); + Message_ContinueTextbox(globalCtx, 0x3012); gSaveContext.infTable[15] |= 0x1000; } } // Unreachable void EnOssan_State_22(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { EnOssan_StartShopping(globalCtx, this); } } void EnOssan_State_GiveLonLonMilk(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { EnOssan_GiveItemWithFanfare(globalCtx, this); } } // For giving Mask of Truth when you first sell all masks void EnOssan_State_LendMaskOfTruth(EnOssan* this, GlobalContext* globalCtx, Player* player) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { gSaveContext.itemGetInf[2] |= 0x400; this->cursorIndex = 2; EnOssan_GiveItemWithFanfare(globalCtx, this); @@ -1764,14 +1766,14 @@ void EnOssan_State_LendMaskOfTruth(EnOssan* this, GlobalContext* globalCtx, Play // Hylian Shield discount dialog void EnOssan_SetStateGiveDiscountDialog(GlobalContext* globalCtx, EnOssan* this) { - func_8010B720(globalCtx, 0x71B2); + Message_ContinueTextbox(globalCtx, 0x71B2); this->stateFlag = OSSAN_STATE_DISCOUNT_DIALOG; } void EnOssan_State_GiveDiscountDialog(EnOssan* this, GlobalContext* globalCtx, Player* player) { EnGirlA* selectedItem; - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { selectedItem = this->shelfSlots[this->cursorIndex]; EnOssan_GiveItemWithFanfare(globalCtx, this); this->drawCursor = 0; diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index ef4ba69b41..0e938f474b 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -260,7 +260,7 @@ s32 EnOwl_CheckInitTalk(EnOwl* this, GlobalContext* globalCtx, u16 textId, f32 t s32 timer; f32 distCheck; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->actor.params == 0xFFF) { this->actionFlags |= 0x40; timer = -100; @@ -287,7 +287,7 @@ s32 EnOwl_CheckInitTalk(EnOwl* this, GlobalContext* globalCtx, u16 textId, f32 t } s32 func_80ACA558(EnOwl* this, GlobalContext* globalCtx, u16 textId) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { return true; } else { this->actor.textId = textId; @@ -342,7 +342,7 @@ void func_80ACA71C(EnOwl* this) { void func_80ACA76C(EnOwl* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 8); - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); func_80ACA62C(this, globalCtx); this->actor.flags &= ~0x10000; @@ -352,7 +352,7 @@ void func_80ACA76C(EnOwl* this, GlobalContext* globalCtx) { void func_80ACA7E0(EnOwl* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 8); - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); if ((this->unk_3EE & 0x3F) == 0) { func_80ACA62C(this, globalCtx); @@ -366,13 +366,13 @@ void func_80ACA7E0(EnOwl* this, GlobalContext* globalCtx) { } void EnOwl_ConfirmKokiriMessage(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x2065); + Message_ContinueTextbox(globalCtx, 0x2065); break; case OWL_OK: - func_8010B720(globalCtx, 0x2067); + Message_ContinueTextbox(globalCtx, 0x2067); this->actionFunc = func_80ACA76C; break; } @@ -384,7 +384,7 @@ void EnOwl_WaitOutsideKokiri(EnOwl* this, GlobalContext* globalCtx) { if (EnOwl_CheckInitTalk(this, globalCtx, 0x2064, 360.0f, 0)) { // Sets BGM - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = EnOwl_ConfirmKokiriMessage; // spoke to owl by lost woods @@ -393,14 +393,14 @@ void EnOwl_WaitOutsideKokiri(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACA998(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x2069); + Message_ContinueTextbox(globalCtx, 0x2069); this->actionFunc = func_80ACAA54; break; case OWL_OK: - func_8010B720(globalCtx, 0x206B); + Message_ContinueTextbox(globalCtx, 0x206B); this->actionFunc = func_80ACA7E0; break; } @@ -410,8 +410,8 @@ void func_80ACA998(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACAA54(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x206A); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x206A); this->actionFunc = func_80ACA998; this->actionFlags |= 2; func_80ACA71C(this); @@ -419,8 +419,8 @@ void func_80ACAA54(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACAAC0(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x2069); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x2069); this->actionFunc = func_80ACAA54; this->actionFlags &= ~2; func_80ACA71C(this); @@ -431,25 +431,25 @@ void EnOwl_WaitHyruleCastle(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x2068, 540.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACAAC0; } } void func_80ACAB88(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: // obtained zelda's letter if (gSaveContext.eventChkInf[4] & 1) { - func_8010B720(globalCtx, 0x206D); + Message_ContinueTextbox(globalCtx, 0x206D); } else { - func_8010B720(globalCtx, 0x206C); + Message_ContinueTextbox(globalCtx, 0x206C); } this->actionFunc = func_80ACAC6C; break; case OWL_OK: - func_8010B720(globalCtx, 0x206E); + Message_ContinueTextbox(globalCtx, 0x206E); this->actionFunc = func_80ACA7E0; break; } @@ -460,8 +460,8 @@ void func_80ACAB88(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACAC6C(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x206A); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x206A); this->actionFunc = func_80ACAB88; this->actionFlags |= 2; func_80ACA71C(this); @@ -472,20 +472,20 @@ void EnOwl_WaitKakariko(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x206C, 480.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACAC6C; } } void func_80ACAD34(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x206F); + Message_ContinueTextbox(globalCtx, 0x206F); this->actionFunc = func_80ACADF0; break; case OWL_OK: - func_8010B720(globalCtx, 0x2070); + Message_ContinueTextbox(globalCtx, 0x2070); this->actionFunc = func_80ACA7E0; break; } @@ -496,8 +496,8 @@ void func_80ACAD34(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACADF0(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x206A); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x206A); this->actionFunc = func_80ACAD34; this->actionFlags |= 2; func_80ACA71C(this); @@ -508,20 +508,20 @@ void EnOwl_WaitGerudo(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x206F, 360.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACADF0; } } void func_80ACAEB8(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x2071); + Message_ContinueTextbox(globalCtx, 0x2071); this->actionFunc = func_80ACAF74; break; case OWL_OK: - func_8010B720(globalCtx, 0x2072); + Message_ContinueTextbox(globalCtx, 0x2072); this->actionFunc = func_80ACA7E0; break; } @@ -532,8 +532,8 @@ void func_80ACAEB8(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACAF74(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x206A); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x206A); this->actionFunc = func_80ACAEB8; this->actionFlags |= 2; func_80ACA71C(this); @@ -544,7 +544,7 @@ void EnOwl_WaitLakeHylia(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x2071, 360.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACAF74; } } @@ -552,7 +552,7 @@ void EnOwl_WaitLakeHylia(EnOwl* this, GlobalContext* globalCtx) { void func_80ACB03C(EnOwl* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 8); - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); func_80ACA62C(this, globalCtx); this->actor.flags &= ~0x10000; @@ -575,13 +575,13 @@ void EnOwl_WaitZoraRiver(EnOwl* this, GlobalContext* globalCtx) { } if (EnOwl_CheckInitTalk(this, globalCtx, textId, 360.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB03C; } } void func_80ACB148(EnOwl* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); func_80ACA5C8(this); this->actionFunc = func_80ACC30C; @@ -595,13 +595,13 @@ void EnOwl_WaitHyliaShortcut(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (func_80ACA558(this, globalCtx, textId)) { gSaveContext.infTable[25] |= 0x20; - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB148; } } void func_80ACB22C(EnOwl* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); func_80ACA5C8(this); this->actionFunc = func_80ACC30C; @@ -609,7 +609,7 @@ void func_80ACB22C(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACB274(EnOwl* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Audio_QueueSeqCmd(0x110000FF); this->actionFunc = EnOwl_WaitDeathMountainShortcut; } @@ -620,26 +620,26 @@ void EnOwl_WaitDeathMountainShortcut(EnOwl* this, GlobalContext* globalCtx) { if (!gSaveContext.magicAcquired) { if (func_80ACA558(this, globalCtx, 0x3062)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB274; return; } } else { if (func_80ACA558(this, globalCtx, 0x3063)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB22C; } } } void func_80ACB344(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x607A); + Message_ContinueTextbox(globalCtx, 0x607A); break; case OWL_OK: - func_8010B720(globalCtx, 0x607C); + Message_ContinueTextbox(globalCtx, 0x607C); this->actionFunc = func_80ACA7E0; break; } @@ -650,20 +650,20 @@ void func_80ACB3E0(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x6079, 360.0f, 2)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB344; } } void func_80ACB440(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x10C1); + Message_ContinueTextbox(globalCtx, 0x10C1); this->actionFunc = func_80ACB4FC; break; case OWL_OK: - func_8010B720(globalCtx, 0x10C3); + Message_ContinueTextbox(globalCtx, 0x10C3); this->actionFunc = func_80ACA7E0; } @@ -673,8 +673,8 @@ void func_80ACB440(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACB4FC(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x10C2); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x10C2); this->actionFunc = func_80ACB440; this->actionFlags |= 2; func_80ACA71C(this); @@ -685,20 +685,20 @@ void EnOwl_WaitLWPreSaria(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x10C0, 190.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB4FC; } } void func_80ACB5C4(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case OWL_REPEAT: - func_8010B720(globalCtx, 0x10C5); + Message_ContinueTextbox(globalCtx, 0x10C5); this->actionFunc = func_80ACB680; break; case OWL_OK: - func_8010B720(globalCtx, 0x10C7); + Message_ContinueTextbox(globalCtx, 0x10C7); this->actionFunc = func_80ACA7E0; break; } @@ -709,8 +709,8 @@ void func_80ACB5C4(EnOwl* this, GlobalContext* globalCtx) { } void func_80ACB680(EnOwl* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5 && func_80106BC8(globalCtx)) { - func_8010B720(globalCtx, 0x10C6); + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x10C6); this->actionFunc = func_80ACB5C4; this->actionFlags |= 2; func_80ACA71C(this); @@ -721,7 +721,7 @@ void EnOwl_WaitLWPostSaria(EnOwl* this, GlobalContext* globalCtx) { EnOwl_LookAtLink(this, globalCtx); if (EnOwl_CheckInitTalk(this, globalCtx, 0x10C4, 360.0f, 0)) { - func_800F5C64(NA_BGM_OWL); + Audio_PlayFanfare(NA_BGM_OWL); this->actionFunc = func_80ACB680; } } diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 471381f233..18f8193d7e 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -140,7 +140,7 @@ void EnPoDesert_WaitForPlayer(EnPoDesert* this, GlobalContext* globalCtx) { this->actor.shape.rot.y += 0x800; return; } - func_8010B680(globalCtx, 0x600B, NULL); + Message_StartTextbox(globalCtx, 0x600B, NULL); } EnPoDesert_SetupMoveToNextPoint(this); } else { diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 538a203fa4..38efa39087 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -652,7 +652,7 @@ void func_80AD58D4(EnPoField* this, GlobalContext* globalCtx) { if (this->actionTimer != 0) { this->actionTimer--; } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { EnPoField_SetupInteractWithSoul(this); return; } @@ -697,8 +697,8 @@ void EnPoField_SoulInteract(EnPoField* this, GlobalContext* globalCtx) { } else { func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); } - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) { + if (Message_ShouldAdvance(globalCtx)) { Audio_StopSfxByPosAndId(&this->actor.projectedPos, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); if (globalCtx->msgCtx.choiceIndex == 0) { if (Inventory_HasEmptyBottle()) { @@ -719,10 +719,10 @@ void EnPoField_SoulInteract(EnPoField* this, GlobalContext* globalCtx) { this->actor.textId = 0x5007; Audio_PlayActorSound2(&this->actor, NA_SE_EN_PO_LAUGH); } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); return; } - } else if (func_8002F334(&this->actor, globalCtx) != 0) { + } else if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { EnPoField_SetupSoulDisappear(this); } } diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 74d911bdfe..73c02ca052 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -162,7 +162,7 @@ void EnPoRelay_CorrectY(EnPoRelay* this) { void EnPoRelay_Idle(EnPoRelay* this, GlobalContext* globalCtx) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 0x100); - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actor.flags &= ~0x10000; this->actionFunc = EnPoRelay_Talk; } else if (this->actor.xzDistToPlayer < 250.0f) { @@ -175,7 +175,7 @@ void EnPoRelay_Idle(EnPoRelay* this, GlobalContext* globalCtx) { void EnPoRelay_Talk(EnPoRelay* this, GlobalContext* globalCtx) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 0x100); - if (func_8002F334(&this->actor, globalCtx) != 0) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { Actor_SetTextWithPrefix(globalCtx, &this->actor, 0x2F); this->textId = this->actor.textId; EnPoRelay_SetupRace(this); @@ -257,7 +257,7 @@ void EnPoRelay_Race(EnPoRelay* this, GlobalContext* globalCtx) { void EnPoRelay_EndRace(EnPoRelay* this, GlobalContext* globalCtx) { Math_ScaledStepToS(&this->actor.shape.rot.y, -0x4000, 0x800); - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnPoRelay_Talk2; } else if (globalCtx->roomCtx.curRoom.num == 5) { Actor_Kill(&this->actor); @@ -271,17 +271,17 @@ void EnPoRelay_EndRace(EnPoRelay* this, GlobalContext* globalCtx) { void EnPoRelay_Talk2(EnPoRelay* this, GlobalContext* globalCtx) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 0x100); - if (func_8010BDBC(&globalCtx->msgCtx) == 5) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) { + if (Message_ShouldAdvance(globalCtx)) { if (this->hookshotSlotFull != 0) { Actor_SetTextWithPrefix(globalCtx, &this->actor, 0x2E); } else { Actor_SetTextWithPrefix(globalCtx, &this->actor, 0x2D); } this->textId = this->actor.textId; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } - } else if (func_8002F334(&this->actor, globalCtx) != 0) { + } else if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { gSaveContext.timer1State = 0; this->actionTimer = 0; this->actionFunc = EnPoRelay_DisappearAndReward; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 4209559c43..61716b3660 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -767,7 +767,7 @@ void func_80ADFE80(EnPoh* this, GlobalContext* globalCtx) { if (this->unk_198 != 0) { this->unk_198--; } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (this->actor.params >= EN_POH_SHARP) { func_80ADE9BC(this); } else { @@ -814,8 +814,8 @@ void EnPoh_TalkRegular(EnPoh* this, GlobalContext* globalCtx) { } else { func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); } - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) { + if (Message_ShouldAdvance(globalCtx)) { Audio_StopSfxByPosAndId(&this->actor.projectedPos, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); if (globalCtx->msgCtx.choiceIndex == 0) { if (Inventory_HasEmptyBottle()) { @@ -830,24 +830,24 @@ void EnPoh_TalkRegular(EnPoh* this, GlobalContext* globalCtx) { this->actor.textId = 0x5007; Audio_PlayActorSound2(&this->actor, NA_SE_EN_PO_LAUGH); } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } - } else if (func_8002F334(&this->actor, globalCtx) != 0) { + } else if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80ADE950(this, 0); } } void EnPoh_TalkComposer(EnPoh* this, GlobalContext* globalCtx) { func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) { + if (Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { if (!Flags_GetSwitch(globalCtx, 0xB) && !Flags_GetSwitch(globalCtx, 0xA)) { this->actor.textId = 0x5010; } else { this->actor.textId = 0x5014; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } else { if (this->actor.params == EN_POH_SHARP) { Flags_SetSwitch(globalCtx, 0xB); @@ -857,7 +857,7 @@ void EnPoh_TalkComposer(EnPoh* this, GlobalContext* globalCtx) { func_80ADE950(this, 1); } } - } else if (func_8002F334(&this->actor, globalCtx) != 0) { + } else if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { if (this->actor.textId == 0x5000) { Flags_SetSwitch(globalCtx, 9); } diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 622d53511c..8655e018f0 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -314,13 +314,13 @@ void EnRr_SetupReleasePlayer(EnRr* this, GlobalContext* globalCtx) { player->actor.parent = NULL; switch (EnRr_GetMessage(shield, tunic)) { case RR_MESSAGE_SHIELD: - func_8010B680(globalCtx, 0x305F, NULL); + Message_StartTextbox(globalCtx, 0x305F, NULL); break; case RR_MESSAGE_TUNIC: - func_8010B680(globalCtx, 0x3060, NULL); + Message_StartTextbox(globalCtx, 0x3060, NULL); break; case RR_MESSAGE_TUNIC | RR_MESSAGE_SHIELD: - func_8010B680(globalCtx, 0x3061, NULL); + Message_StartTextbox(globalCtx, 0x3061, NULL); break; } osSyncPrintf(VT_FGCOL(YELLOW) "%s[%d] : Rr_Catch_Cancel" VT_RST "\n", "../z_en_rr.c", 650); diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index 1a76577ce0..6671165496 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -333,11 +333,11 @@ Actor* func_80AEB124(GlobalContext* globalCtx) { } s32 func_80AEB174(GlobalContext* globalCtx) { - return (func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx)); + return (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx); } s32 func_80AEB1B4(GlobalContext* globalCtx) { - return func_8010BDBC(&globalCtx->msgCtx) == 2; + return Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING; } void func_80AEB1D8(EnRu1* this) { @@ -1493,7 +1493,7 @@ void func_80AEE050(EnRu1* this) { } s32 func_80AEE264(EnRu1* this, GlobalContext* globalCtx) { - if (!func_8002F194(&this->actor, globalCtx)) { + if (!Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actor.flags |= 9; if ((gSaveContext.infTable[20] & 8)) { this->actor.textId = 0x404E; @@ -1537,7 +1537,7 @@ s32 func_80AEE394(EnRu1* this, GlobalContext* globalCtx) { floorBgId = this->actor.floorBgId; // necessary match, can't move this out of this block unfortunately dynaPolyActor = DynaPoly_GetActor(colCtx, floorBgId); if (dynaPolyActor != NULL && dynaPolyActor->actor.id == ACTOR_BG_BDAN_OBJECTS && - dynaPolyActor->actor.params == 0 && !Player_InCsMode(globalCtx) && globalCtx->msgCtx.unk_E300 == 0) { + dynaPolyActor->actor.params == 0 && !Player_InCsMode(globalCtx) && globalCtx->msgCtx.msgLength == 0) { func_80AEE02C(this); globalCtx->csCtx.segment = &D_80AF10A4; gSaveContext.cutsceneTrigger = 1; @@ -1812,7 +1812,7 @@ s32 func_80AEF0BC(EnRu1* this, GlobalContext* globalCtx) { if (gSaveContext.infTable[20] & 4) { frameCount = Animation_GetLastFrame(&gRutoChildSitAnim); Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->action = 26; this->actor.flags &= ~0x9; return true; @@ -1828,7 +1828,7 @@ void func_80AEF170(EnRu1* this, GlobalContext* globalCtx, s32 cond) { void func_80AEF188(EnRu1* this, GlobalContext* globalCtx) { if (func_80AEB174(globalCtx) && !func_80AEF0BC(this, globalCtx)) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gSaveContext.infTable[20] |= 4; this->action = 24; } @@ -1838,7 +1838,7 @@ void func_80AEF1F0(EnRu1* this, GlobalContext* globalCtx, UNK_TYPE arg2) { if (arg2 != 0) { Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gRutoChildSittingAnim), ANIMMODE_LOOP, 0.0f); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gSaveContext.infTable[20] |= 8; func_80AED6DC(this, globalCtx); func_8002F580(&this->actor, globalCtx); @@ -2013,7 +2013,7 @@ void func_80AEF930(EnRu1* this, GlobalContext* globalCtx) { if (func_80AEB104(this) == 3) { this->actor.flags |= 9; this->actor.textId = 0x4048; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); func_80AEF4A8(this, globalCtx); this->action = 43; this->drawConfig = 0; @@ -2124,7 +2124,7 @@ void func_80AEFD38(EnRu1* this, GlobalContext* globalCtx) { } s32 func_80AEFDC0(EnRu1* this, GlobalContext* globalCtx) { - if (!func_8002F194(&this->actor, globalCtx)) { + if (!Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actor.flags |= 9; this->actor.textId = Text_GetFaceReaction(globalCtx, 0x1F); if (this->actor.textId == 0) { @@ -2137,7 +2137,7 @@ s32 func_80AEFDC0(EnRu1* this, GlobalContext* globalCtx) { } s32 func_80AEFE38(EnRu1* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x9; return true; } diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index 8da6115413..dbd5479b36 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -609,8 +609,8 @@ void func_80AF3744(EnRu2* this, GlobalContext* globalCtx) { } } -void func_80AF37AC() { - func_800F5C64(NA_BGM_APPEAR); +void func_80AF37AC(void) { + Audio_PlayFanfare(NA_BGM_APPEAR); } void func_80AF37CC(EnRu2* this) { @@ -652,7 +652,7 @@ void func_80AF390C(EnRu2* this, GlobalContext* globalCtx) { func_80AF37AC(); } else if (*unk_2C4 > kREG(4) + 50.0f) { this->actor.textId = 0x403E; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->action = 17; } } @@ -666,10 +666,10 @@ void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) { s32 pad3; msgCtx = &globalCtx->msgCtx; - dialogState = func_8010BDBC(msgCtx); + dialogState = Message_GetState(msgCtx); - if (dialogState == 3) { - if (this->unk_2C3 != 3) { + if (dialogState == TEXT_STATE_DONE_FADING) { + if (this->unk_2C3 != TEXT_STATE_DONE_FADING) { // "I'm Komatsu!" (cinema scene dev) osSyncPrintf("おれが小松だ! \n"); this->unk_2C2++; @@ -686,7 +686,7 @@ void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) { } this->unk_2C3 = dialogState; - if (func_8010BDBC(msgCtx) == 2) { + if (Message_GetState(msgCtx) == TEXT_STATE_CLOSING) { this->action = 18; func_8005B1A4(GET_ACTIVE_CAM(globalCtx)); } @@ -789,7 +789,7 @@ void EnRu2_Init(Actor* thisx, GlobalContext* globalCtx) { } this->unk_2C2 = 0; - this->unk_2C3 = 3; + this->unk_2C3 = TEXT_STATE_DONE_FADING; } void func_80AF3F14(EnRu2* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 9eb13b6f29..1c881ba5d7 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -100,9 +100,10 @@ static struct_80034EC0_Entry sAnimations[] = { }; s16 func_80AF5560(EnSa* this, GlobalContext* globalCtx) { - s16 textState = func_8010BDBC(&globalCtx->msgCtx); + s16 textState = Message_GetState(&globalCtx->msgCtx); - if (this->unk_209 == 10 || this->unk_209 == 5 || this->unk_209 == 2 || this->unk_209 == 1) { + if (this->unk_209 == TEXT_STATE_AWAITING_NEXT || this->unk_209 == TEXT_STATE_EVENT || + this->unk_209 == TEXT_STATE_CLOSING || this->unk_209 == TEXT_STATE_DONE_HAS_NEXT) { if (textState != this->unk_209) { this->unk_208++; } @@ -123,7 +124,7 @@ u16 func_80AF55E0(GlobalContext* globalCtx, Actor* thisx) { } if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) { this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (gSaveContext.infTable[0] & 0x20) { return 0x1048; } else { @@ -132,7 +133,7 @@ u16 func_80AF55E0(GlobalContext* globalCtx, Actor* thisx) { } if (gSaveContext.eventChkInf[0] & 4) { this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (gSaveContext.infTable[0] & 8) { return 0x1032; } else { @@ -141,7 +142,7 @@ u16 func_80AF55E0(GlobalContext* globalCtx, Actor* thisx) { } if (gSaveContext.infTable[0] & 1) { this->unk_208 = 0; - this->unk_209 = 0; + this->unk_209 = TEXT_STATE_NONE; if (gSaveContext.infTable[0] & 2) { return 0x1003; } else { @@ -156,7 +157,7 @@ s16 func_80AF56F4(GlobalContext* globalCtx, Actor* thisx) { EnSa* this = THIS; switch (func_80AF5560(this, globalCtx)) { - case 2: + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x1002: gSaveContext.infTable[0] |= 2; @@ -176,14 +177,14 @@ s16 func_80AF56F4(GlobalContext* globalCtx, Actor* thisx) { break; } break; - case 0: - case 1: - case 3: - case 4: - case 5: - case 7: - case 8: - case 9: + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } return ret; diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index dcba75c54a..b4fe4baef9 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -96,8 +96,8 @@ void func_80AFB768(EnSi* this, GlobalContext* globalCtx) { this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER; Item_Give(globalCtx, ITEM_SKULL_TOKEN); player->actor.freezeTimer = 10; - func_8010B680(globalCtx, 0xB4, 0); - func_800F5C64(NA_BGM_SMALL_ITEM_GET); + Message_StartTextbox(globalCtx, 0xB4, NULL); + Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET); this->actionFunc = func_80AFB950; } else { Collider_UpdateCylinder(&this->actor, &this->collider); @@ -118,8 +118,8 @@ void func_80AFB89C(EnSi* this, GlobalContext* globalCtx) { if ((this->actor.flags & 0x2000) != 0x2000) { Item_Give(globalCtx, ITEM_SKULL_TOKEN); player->actor.freezeTimer = 10; - func_8010B680(globalCtx, 0xB4, 0); - func_800F5C64(NA_BGM_SMALL_ITEM_GET); + Message_StartTextbox(globalCtx, 0xB4, NULL); + Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET); this->actionFunc = func_80AFB950; } } @@ -127,7 +127,7 @@ void func_80AFB89C(EnSi* this, GlobalContext* globalCtx) { void func_80AFB950(EnSi* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (func_8010BDBC(&globalCtx->msgCtx) != 2) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_CLOSING) { player->actor.freezeTimer = 10; } else { SET_GS_FLAGS((this->actor.params & 0x1F00) >> 8, this->actor.params & 0xFF); diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 7df5f97c50..91350fd622 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -662,7 +662,7 @@ void EnSkj_Fade(EnSkj* this, GlobalContext* globalCtx) { u32 alpha = this->alpha; if (this->unk_2D6 == 2) { - globalCtx->msgCtx.unk_E3EE = 0; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; this->unk_2D6 = 0; } @@ -917,7 +917,7 @@ void EnSkj_WaitInRange(EnSkj* this, GlobalContext* globalCtx) { player->actor.world.pos.y = sSmallStumpSkullKid.skullkid->actor.world.pos.y; player->actor.world.pos.z = sSmallStumpSkullKid.skullkid->actor.world.pos.z; EnSkj_TurnPlayer(sSmallStumpSkullKid.skullkid, player); - func_8010BD88(globalCtx, 0x22); + func_8010BD88(globalCtx, OCARINA_ACTION_CHECK_SARIA); EnSkj_SetupWaitForSong(this); } else if (D_80B01EA0 != 0) { player->actor.world.pos.x = sSmallStumpSkullKid.skullkid->actor.world.pos.x; @@ -960,54 +960,54 @@ void EnSkj_WaitForSong(EnSkj* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); // Played a song thats not Saria's song - if (!(gSaveContext.itemGetInf[1] & 0x40) && - ((globalCtx->msgCtx.msgMode == 0xE) || (globalCtx->msgCtx.msgMode == 0xF))) { - globalCtx->msgCtx.unk_E3EE = 4; - func_80106CCC(globalCtx); + if (!(gSaveContext.itemGetInf[1] & 0x40) && ((globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_FAIL) || + (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_FAIL_NO_TEXT))) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; + Message_CloseTextbox(globalCtx); player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, EnSkj_GetItemXzRange(this)); EnSkj_SetupWrongSong(this); } else { - if ((globalCtx->msgCtx.msgMode == 0xD) && (this->unk_2D6 == 0)) { + if ((globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) && (this->unk_2D6 == 0)) { this->unk_2D6 = 1; EnSkj_ChangeAnim(this, SKJ_ANIM_PLAY_FLUTE); - } else if ((this->unk_2D6 != 0) && (globalCtx->msgCtx.msgMode == 0x1A)) { + } else if ((this->unk_2D6 != 0) && (globalCtx->msgCtx.msgMode == MSGMODE_SONG_DEMONSTRATION_DONE)) { this->unk_2D6 = 0; EnSkj_ChangeAnim(this, SKJ_ANIM_WAIT); } - if (globalCtx->msgCtx.unk_E3EE == 4) { - globalCtx->msgCtx.unk_E3EE = 0; + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_00; this->unk_2D6 = 0; EnSkj_ChangeAnim(this, SKJ_ANIM_WAIT); EnSkj_SetupAction(this, SKJ_ACTION_SARIA_SONG_WAIT_IN_RANGE); - } else if (globalCtx->msgCtx.unk_E3EE == 3) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { if (!(gSaveContext.itemGetInf[1] & 0x40)) { // Saria's song has been played for the first titme - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; func_80078884(NA_SE_SY_CORRECT_CHIME); player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, EnSkj_GetItemXzRange(this)); this->textId = 0x10BB; EnSkj_SetupAfterSong(this); } else { - globalCtx->msgCtx.unk_E3EE = 5; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_05; } - } else if (globalCtx->msgCtx.unk_E3EE == 2) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_02) { player->stateFlags2 &= ~0x1000000; Actor_Kill(&this->actor); - } else if (globalCtx->msgCtx.unk_E3EE == 1) { + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_01) { player->stateFlags2 |= 0x800000; } else { - if (globalCtx->msgCtx.unk_E3EE >= 5) { + if (globalCtx->msgCtx.ocarinaMode >= OCARINA_MODE_05) { gSaveContext.sunsSongState = 0; if (gSaveContext.itemGetInf[1] & 0x40) { - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, EnSkj_GetItemXzRange(this)); this->textId = 0x10BD; EnSkj_SetupAfterSong(this); } else { - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, EnSkj_GetItemXzRange(this)); EnSkj_SetupWrongSong(this); @@ -1038,7 +1038,7 @@ void EnSkj_SetupTalk(EnSkj* this) { void EnSkj_SariaSongTalk(EnSkj* this, GlobalContext* globalCtx) { s32 pad; - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { if (gSaveContext.itemGetInf[1] & 0x40) { EnSkj_SetupWaitInRange(this); } else { @@ -1067,7 +1067,7 @@ void EnSkj_SetupPostSariasSong(EnSkj* this) { } void EnSkj_ChangeModeAfterSong(EnSkj* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { gSaveContext.itemGetInf[1] |= 0x40; EnSkj_SetNaviId(this); EnSkj_SetupWaitInRange(this); @@ -1079,10 +1079,10 @@ void EnSkj_SetupMaskTrade(EnSkj* this) { } void EnSkj_StartMaskTrade(EnSkj* this, GlobalContext* globalCtx) { - u8 sp1F = func_8010BDBC(&globalCtx->msgCtx); + u8 sp1F = Message_GetState(&globalCtx->msgCtx); func_8002DF54(globalCtx, &this->actor, 1); - if ((sp1F == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((sp1F == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { EnSkj_JumpFromStump(this); } } @@ -1136,40 +1136,38 @@ void EnSkj_WalkToPlayer(EnSkj* this, GlobalContext* globalCtx) { } void EnSkj_SetupAskForMask(EnSkj* this, GlobalContext* globalCtx) { - func_8010B680(globalCtx, 0x101C, &this->actor); + Message_StartTextbox(globalCtx, 0x101C, &this->actor); EnSkj_ChangeAnim(this, SKJ_ANIM_WAIT); EnSkj_SetupAction(this, SKJ_ACTION_SARIA_SONG_ASK_FOR_MASK); } void EnSkj_AskForMask(EnSkj* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx) != 0) { - switch (globalCtx->msgCtx.choiceIndex) { - case 0: // Yes - EnSkj_SetupTakeMask(this, globalCtx); - break; - case 1: // No - func_8010B720(globalCtx, 0x101D); - EnSkj_SetupWaitForMaskTextClear(this); - break; - } + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { + switch (globalCtx->msgCtx.choiceIndex) { + case 0: // Yes + EnSkj_SetupTakeMask(this, globalCtx); + break; + case 1: // No + Message_ContinueTextbox(globalCtx, 0x101D); + EnSkj_SetupWaitForMaskTextClear(this); + break; } } } void EnSkj_SetupTakeMask(EnSkj* this, GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x101E); + Message_ContinueTextbox(globalCtx, 0x101E); EnSkj_SetupAction(this, SKJ_ACTION_SARIA_SONG_TAKE_MASK); } void EnSkj_TakeMask(EnSkj* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { Rupees_ChangeBy(10); gSaveContext.itemGetInf[3] |= 0x200; EnSkj_SetNaviId(this); Player_UnsetMask(globalCtx); Item_Give(globalCtx, ITEM_SOLD_OUT); - func_8010B720(globalCtx, 0x101F); + Message_ContinueTextbox(globalCtx, 0x101F); EnSkj_SetupWaitForMaskTextClear(this); } } @@ -1179,7 +1177,7 @@ void EnSkj_SetupWaitForMaskTextClear(EnSkj* this) { } void EnSkj_WaitForMaskTextClear(EnSkj* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { func_8002DF54(globalCtx, &this->actor, 7); this->backfilpFlag = 1; EnSkj_Backflip(this); @@ -1205,10 +1203,10 @@ void EnSkj_SetupWaitForTextClear(EnSkj* this) { } void EnSkj_SariasSongWaitForTextClear(EnSkj* this, GlobalContext* globalCtx) { - u8 state = func_8010BDBC(&globalCtx->msgCtx); + u8 state = Message_GetState(&globalCtx->msgCtx); Player* player = GET_PLAYER(globalCtx); - if (state == 6 && func_80106BC8(globalCtx)) { + if (state == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { EnSkj_SetupWaitInRange(this); player->stateFlags2 |= 0x800000; player->unk_6A8 = (Actor*)sSmallStumpSkullKid.skullkid; @@ -1295,7 +1293,7 @@ void EnSkj_Update(Actor* thisx, GlobalContext* globalCtx) { s32 pad; EnSkj* this = THIS; - D_80B01EA0 = func_8002F194(&this->actor, globalCtx); + D_80B01EA0 = Actor_ProcessTalkRequest(&this->actor, globalCtx); this->timer++; @@ -1351,7 +1349,7 @@ void EnSkj_Update(Actor* thisx, GlobalContext* globalCtx) { void EnSkj_SariasSongShortStumpUpdate(Actor* thisx, GlobalContext* globalCtx) { EnSkj* this = THIS; - D_80B01EA0 = func_8002F194(&this->actor, globalCtx); + D_80B01EA0 = Actor_ProcessTalkRequest(&this->actor, globalCtx); if (BREG(0) != 0) { DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, @@ -1378,7 +1376,7 @@ void EnSkj_SetupWaitForOcarina(EnSkj* this, GlobalContext* globalCtx) { func_800F5BF0(4); EnSkj_TurnPlayer(this, player); player->unk_6A8 = &this->actor; - func_8010B680(globalCtx, 0x10BE, &this->actor); + Message_StartTextbox(globalCtx, 0x10BE, &this->actor); this->actionFunc = EnSkj_StartOcarinaMinigame; } else { this->actionFunc = EnSkj_WaitForOcarina; @@ -1394,7 +1392,7 @@ void EnSkj_WaitForOcarina(EnSkj* this, GlobalContext* globalCtx) { func_800F5BF0(4); EnSkj_TurnPlayer(this, player); player->unk_6A8 = &this->actor; - func_8010B680(globalCtx, 0x10BE, &this->actor); + Message_StartTextbox(globalCtx, 0x10BE, &this->actor); this->actionFunc = EnSkj_StartOcarinaMinigame; } else if (EnSkj_RangeCheck(player, this)) { player->stateFlags2 |= 0x800000; @@ -1402,13 +1400,13 @@ void EnSkj_WaitForOcarina(EnSkj* this, GlobalContext* globalCtx) { } void EnSkj_StartOcarinaMinigame(EnSkj* this, GlobalContext* globalCtx) { - u8 dialogState = func_8010BDBC(&globalCtx->msgCtx); + u8 dialogState = Message_GetState(&globalCtx->msgCtx); Player* player = GET_PLAYER(globalCtx); EnSkj_TurnPlayer(this, player); - if (dialogState == 2) { - func_8010BD58(globalCtx, 0x2E); // play song? + if (dialogState == TEXT_STATE_CLOSING) { + func_8010BD58(globalCtx, OCARINA_ACTION_MEMORY_GAME); if (sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid != NULL) { sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid->minigameState = SKULL_KID_OCARINA_PLAY_NOTES; } @@ -1422,24 +1420,24 @@ void EnSkj_WaitForPlayback(EnSkj* this, GlobalContext* globalCtx) { EnSkj_TurnPlayer(this, player); - if (globalCtx->msgCtx.unk_E3EE == 3) { // failed the game - func_80106CCC(globalCtx); - globalCtx->msgCtx.unk_E3EE = 4; + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_03) { // failed the game + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, 26.0f); this->textId = 0x102D; this->actionFunc = EnSkj_FailedMiniGame; - } else if (globalCtx->msgCtx.unk_E3EE == 0xF) { // completed the game + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_0F) { // completed the game func_80078884(NA_SE_SY_CORRECT_CHIME); - func_80106CCC(globalCtx); - globalCtx->msgCtx.unk_E3EE = 4; + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, 26.0f); this->textId = 0x10BF; this->actionFunc = EnSkj_WonOcarinaMiniGame; } else { // playing the game switch (globalCtx->msgCtx.msgMode) { - case 0x2B: + case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_WAIT: if (sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid != NULL) { sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid->minigameState = SKULL_KID_OCRAINA_WAIT; } @@ -1448,45 +1446,42 @@ void EnSkj_WaitForPlayback(EnSkj* this, GlobalContext* globalCtx) { sOcarinaMinigameSkullKids[SKULL_KID_RIGHT].skullkid->minigameState = SKULL_KID_OCARINA_PLAY_NOTES; } - func_80106AA8(globalCtx); + Message_UpdateOcarinaGame(globalCtx); } break; - - case 0x2D: + case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_WAIT: if (sOcarinaMinigameSkullKids[SKULL_KID_RIGHT].skullkid != NULL) { sOcarinaMinigameSkullKids[SKULL_KID_RIGHT].skullkid->minigameState = SKULL_KID_OCRAINA_WAIT; } if (!Audio_IsSfxPlaying(NA_SE_SY_METRONOME)) { - func_80106AA8(globalCtx); + Message_UpdateOcarinaGame(globalCtx); this->songFailTimer = 160; } break; - - case 0x2E: + case MSGMODE_MEMORY_GAME_PLAYER_PLAYING: if (this->songFailTimer != 0) { this->songFailTimer--; } else { // took too long, game failed func_80078884(NA_SE_SY_OCARINA_ERROR); - func_80106CCC(globalCtx); - globalCtx->msgCtx.unk_E3EE = 4; + Message_CloseTextbox(globalCtx); + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; player->unk_6A8 = &this->actor; func_8002F2CC(&this->actor, globalCtx, 26.0f); this->textId = 0x102D; this->actionFunc = EnSkj_FailedMiniGame; } break; - - case 0x30: + case MSGMODE_MEMORY_GAME_START_NEXT_ROUND: if (!Audio_IsSfxPlaying(NA_SE_SY_METRONOME)) { if (sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid != NULL) { sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid->minigameState = SKULL_KID_OCARINA_PLAY_NOTES; } this->songFailTimer = 160; - func_800ED858(6); // related instrument sound (flute?) - func_800ED93C(0xE, 1); - globalCtx->msgCtx.msgMode = 0x2A; - globalCtx->msgCtx.unk_E3E7 = 2; + Audio_OcaSetInstrument(6); // related instrument sound (flute?) + Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); + globalCtx->msgCtx.msgMode = MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING; + globalCtx->msgCtx.stateTimer = 2; } break; } @@ -1502,20 +1497,20 @@ void EnSkj_FailedMiniGame(EnSkj* this, GlobalContext* globalCtx) { } void EnSkj_WaitForNextRound(EnSkj* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { EnSkj_OfferNextRound(this, globalCtx); } } void EnSkj_OfferNextRound(EnSkj* this, GlobalContext* globalCtx) { - func_8010B720(globalCtx, 0x102E); + Message_ContinueTextbox(globalCtx, 0x102E); this->actionFunc = EnSkj_WaitForOfferResponse; } void EnSkj_WaitForOfferResponse(EnSkj* this, GlobalContext* globalCtx) { Player* player; - if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // yes player = GET_PLAYER(globalCtx); @@ -1538,8 +1533,8 @@ void EnSkj_WonOcarinaMiniGame(EnSkj* this, GlobalContext* globalCtx) { } void EnSkj_WaitToGiveReward(EnSkj* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) { - func_8002F434(&this->actor, globalCtx, sOcarinaGameRewards[gSaveContext.ocarinaGameReward], 26.0f, 26.0f); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { + func_8002F434(&this->actor, globalCtx, sOcarinaGameRewards[gSaveContext.ocarinaGameRoundNum], 26.0f, 26.0f); this->actionFunc = EnSkj_GiveOcarinaGameReward; } } @@ -1549,19 +1544,19 @@ void EnSkj_GiveOcarinaGameReward(EnSkj* this, GlobalContext* globalCtx) { this->actor.parent = NULL; this->actionFunc = EnSkj_FinishOcarinaGameRound; } else { - func_8002F434(&this->actor, globalCtx, sOcarinaGameRewards[gSaveContext.ocarinaGameReward], 26.0f, 26.0f); + func_8002F434(&this->actor, globalCtx, sOcarinaGameRewards[gSaveContext.ocarinaGameRoundNum], 26.0f, 26.0f); } } void EnSkj_FinishOcarinaGameRound(EnSkj* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) { - s32 ocarinaGameReward = gSaveContext.ocarinaGameReward; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { + s32 ocarinaGameRoundNum = gSaveContext.ocarinaGameRoundNum; - if (gSaveContext.ocarinaGameReward < 3) { - gSaveContext.ocarinaGameReward++; + if (gSaveContext.ocarinaGameRoundNum < 3) { + gSaveContext.ocarinaGameRoundNum++; } - if (ocarinaGameReward == 2) { + if (ocarinaGameRoundNum == 2) { gSaveContext.itemGetInf[1] |= 0x80; this->actionFunc = EnSkj_CleanupOcarinaGame; } else { @@ -1589,7 +1584,7 @@ void EnSkj_CleanupOcarinaGame(EnSkj* this, GlobalContext* globalCtx) { void EnSkj_OcarinaMinigameShortStumpUpdate(Actor* thisx, GlobalContext* globalCtx) { EnSkj* this = THIS; - D_80B01EA0 = func_8002F194(&this->actor, globalCtx); + D_80B01EA0 = Actor_ProcessTalkRequest(&this->actor, globalCtx); this->timer++; this->actor.focus.pos.x = 1230.0f; diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index eae1c7814b..9c16d1fcbe 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -657,14 +657,14 @@ void EnSsh_Wait(EnSsh* this, GlobalContext* globalCtx) { void EnSsh_Talk(EnSsh* this, GlobalContext* globalCtx) { EnSsh_Bob(this, globalCtx); - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->actionFunc = EnSsh_Idle; } } void EnSsh_Idle(EnSsh* this, GlobalContext* globalCtx) { if (1) {} - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnSsh_Talk; if (this->actor.params == ENSSH_FATHER) { gSaveContext.eventChkInf[9] |= 0x40; diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 105cf98c96..c4cf7fee9a 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -209,7 +209,7 @@ void EnSth_LookAtPlayer(EnSth* this, GlobalContext* globalCtx) { } void EnSth_RewardObtainedTalk(EnSth* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { if (this->actor.params == 0) { EnSth_SetupAction(this, EnSth_ParentRewardObtainedWait); } else { @@ -220,7 +220,7 @@ void EnSth_RewardObtainedTalk(EnSth* this, GlobalContext* globalCtx) { } void EnSth_ParentRewardObtainedWait(EnSth* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { EnSth_SetupAction(this, EnSth_RewardObtainedTalk); } else { this->actor.textId = 0x23; @@ -264,8 +264,8 @@ void EnSth_GiveReward(EnSth* this, GlobalContext* globalCtx) { } void EnSth_RewardUnobtainedTalk(EnSth* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); EnSth_SetupAction(this, EnSth_GiveReward); EnSth_GivePlayerItem(this, globalCtx); } @@ -273,7 +273,7 @@ void EnSth_RewardUnobtainedTalk(EnSth* this, GlobalContext* globalCtx) { } void EnSth_RewardUnobtainedWait(EnSth* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { EnSth_SetupAction(this, EnSth_RewardUnobtainedTalk); } else { if (this->actor.params == 0) { @@ -289,7 +289,7 @@ void EnSth_RewardUnobtainedWait(EnSth* this, GlobalContext* globalCtx) { } void EnSth_ChildRewardObtainedWait(EnSth* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { EnSth_SetupAction(this, EnSth_RewardObtainedTalk); } else { if (gSaveContext.inventory.gsTokens < 50) { diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index a854a95c45..d22c731208 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -149,7 +149,7 @@ static u16 sBgmList[] = { static s16 sTextIds[] = { 0x2B, 0x2E, 0xC8, 0x2D }; -static s16 sTextBoxCount[] = { 4, 5, 5, 5 }; +static s16 sTextBoxCount[] = { TEXT_STATE_CHOICE, TEXT_STATE_EVENT, TEXT_STATE_EVENT, TEXT_STATE_EVENT }; void EnSyatekiMan_Init(Actor* thisx, GlobalContext* globalCtx) { s32 pad; @@ -194,7 +194,7 @@ void EnSyatekiMan_SetupIdle(EnSyatekiMan* this, GlobalContext* globalCtx) { void EnSyatekiMan_Idle(EnSyatekiMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->actionFunc = EnSyatekiMan_Talk; } else { func_8002F2CC(&this->actor, globalCtx, 100.0f); @@ -208,7 +208,7 @@ void EnSyatekiMan_Talk(EnSyatekiMan* this, GlobalContext* globalCtx) { if (this->cameraHold) { globalCtx->shootingGalleryStatus = -2; } - if ((this->numTextBox == func_8010BDBC(&globalCtx->msgCtx)) && func_80106BC8(globalCtx)) { + if ((this->numTextBox == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { if (this->textIdx == SYATEKI_TEXT_CHOICE) { switch (globalCtx->msgCtx.choiceIndex) { case 0: @@ -229,9 +229,9 @@ void EnSyatekiMan_Talk(EnSyatekiMan* this, GlobalContext* globalCtx) { nextState = 2; break; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); } else { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } switch (nextState) { case 0: @@ -252,13 +252,13 @@ void EnSyatekiMan_StopTalk(EnSyatekiMan* this, GlobalContext* globalCtx) { if (this->cameraHold) { globalCtx->shootingGalleryStatus = -2; } - if ((this->numTextBox == func_8010BDBC(&globalCtx->msgCtx)) && func_80106BC8(globalCtx)) { + if ((this->numTextBox == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { if (this->cameraHold) { OnePointCutscene_EndCutscene(globalCtx, this->csCam); this->csCam = SUBCAM_NONE; this->cameraHold = false; } - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actionFunc = EnSyatekiMan_SetupIdle; } } @@ -270,13 +270,13 @@ void EnSyatekiMan_StartGame(EnSyatekiMan* this, GlobalContext* globalCtx) { if (this->cameraHold) { globalCtx->shootingGalleryStatus = -2; } - if ((this->numTextBox == func_8010BDBC(&globalCtx->msgCtx)) && func_80106BC8(globalCtx)) { + if ((this->numTextBox == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { if (this->cameraHold) { OnePointCutscene_EndCutscene(globalCtx, this->csCam); this->csCam = SUBCAM_NONE; this->cameraHold = false; } - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gallery = ((EnSyatekiItm*)this->actor.parent); if (gallery->actor.update != NULL) { gallery->signal = ENSYATEKI_START; @@ -313,7 +313,7 @@ void EnSyatekiMan_WaitForGame(EnSyatekiMan* this, GlobalContext* globalCtx) { break; } globalCtx->shootingGalleryStatus = -2; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actionFunc = EnSyatekiMan_EndGame; } } @@ -322,12 +322,12 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, GlobalContext* globalCtx) { EnSyatekiItm* gallery; SkelAnime_Update(&this->skelAnime); - if ((this->numTextBox == func_8010BDBC(&globalCtx->msgCtx)) && func_80106BC8(globalCtx)) { + if ((this->numTextBox == Message_GetState(&globalCtx->msgCtx)) && Message_ShouldAdvance(globalCtx)) { if (this->gameResult != SYATEKI_RESULT_FAILURE) { OnePointCutscene_EndCutscene(globalCtx, this->csCam); this->csCam = SUBCAM_NONE; } - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); gallery = ((EnSyatekiItm*)this->actor.parent); if (gallery->actor.update != NULL) { gallery->signal = ENSYATEKI_RESULTS; @@ -382,7 +382,7 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, GlobalContext* globalCtx) { this->cameraHold = true; this->actor.textId = sTextIds[this->textIdx]; this->numTextBox = sTextBoxCount[this->textIdx]; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->actionFunc = EnSyatekiMan_Talk; } break; @@ -402,7 +402,7 @@ void EnSyatekiMan_GivePrize(EnSyatekiMan* this, GlobalContext* globalCtx) { void EnSyatekiMan_FinishPrize(EnSyatekiMan* this, GlobalContext* globalCtx) { SkelAnime_Update(&this->skelAnime); - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { // "Successful completion" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); if (!LINK_IS_ADULT) { diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index e149ee4515..76e671a7d4 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -502,7 +502,7 @@ void func_80B128F8(EnSyatekiNiw* this, GlobalContext* globalCtx) { s16 sp24; Actor_SetFocus(&this->actor, this->unk_2D4); - func_8002F374(globalCtx, &this->actor, &sp26, &sp24); + Actor_GetScreenPos(globalCtx, &this->actor, &sp26, &sp24); if ((this->actor.projectedPos.z > 200.0f) && (this->actor.projectedPos.z < 800.0f) && (sp26 > 0) && (sp26 < SCREEN_WIDTH) && (sp24 > 0) && (sp24 < SCREEN_HEIGHT)) { this->actor.speedXZ = 5.0f; @@ -522,7 +522,7 @@ void func_80B129EC(EnSyatekiNiw* this, GlobalContext* globalCtx) { f32 tmpf2; Actor_SetFocus(&this->actor, this->unk_2D4); - func_8002F374(globalCtx, &this->actor, &sp2E, &sp2C); + Actor_GetScreenPos(globalCtx, &this->actor, &sp2E, &sp2C); if ((this->unk_25E == 0) || (this->actor.projectedPos.z < -70.0f) || (sp2E < 0) || (sp2E > SCREEN_WIDTH) || (sp2C < 0) || (sp2C > SCREEN_HEIGHT)) { Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index eb0d948b1e..10566262c3 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -259,7 +259,7 @@ void EnTa_Destroy(Actor* thisx, GlobalContext* globalCtx) { } s32 func_80B142F4(EnTa* this, GlobalContext* globalCtx, u16 textId) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { return true; } @@ -274,13 +274,13 @@ s32 func_80B142F4(EnTa* this, GlobalContext* globalCtx, u16 textId) { } void func_80B14398(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B14754, func_80B167FC); } } void func_80B143D4(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B146F8, func_80B167FC); } } @@ -296,7 +296,7 @@ void func_80B14410(EnTa* this) { } void func_80B1448C(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B14410(this); } func_80B14248(this); @@ -304,12 +304,12 @@ void func_80B1448C(EnTa* this, GlobalContext* globalCtx) { } void func_80B144D8(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B14410(this); this->unk_2B6 = 1; this->unk_2B0 = func_80B16700; } - if (func_8010BDBC(&globalCtx->msgCtx) == 6) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) { this->unk_2B4 = 1; func_80B13AA0(this, func_80B1448C, func_80B167C0); } @@ -331,7 +331,7 @@ void func_80B14570(EnTa* this, GlobalContext* globalCtx) { } void func_80B145F8(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B14634, func_80B167FC); } } @@ -339,7 +339,7 @@ void func_80B145F8(EnTa* this, GlobalContext* globalCtx) { void func_80B14634(EnTa* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { s32 exchangeItemId = func_8002F368(globalCtx); switch (exchangeItemId) { @@ -362,7 +362,7 @@ void func_80B14634(EnTa* this, GlobalContext* globalCtx) { } void func_80B146F8(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B143D4, func_80B167FC); } this->actor.textId = 0x204B; @@ -372,7 +372,7 @@ void func_80B146F8(EnTa* this, GlobalContext* globalCtx) { void func_80B14754(EnTa* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { s32 exchangeItemId = func_8002F368(globalCtx); switch (exchangeItemId) { @@ -450,7 +450,7 @@ void func_80B14A54(EnTa* this, GlobalContext* globalCtx) { func_80B14818(this, globalCtx); if (this->unk_2CC == 20) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } if (this->unk_2CC == 0) { this->unk_2CC = 5; @@ -471,7 +471,7 @@ void func_80B14AF4(EnTa* this, GlobalContext* globalCtx) { } void func_80B14B6C(EnTa* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) { OnePointCutscene_Init(globalCtx, 4175, -99, &this->actor, MAIN_CAM); func_80B13AA0(this, func_80B14AF4, func_80B167C0); this->unk_2CC = 5; @@ -490,7 +490,7 @@ void func_80B14C18(EnTa* this, GlobalContext* globalCtx) { } void func_80B14C60(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B14CAC, func_80B167C0); } this->unk_2E0 |= 1; @@ -509,7 +509,7 @@ void func_80B14CAC(EnTa* this, GlobalContext* globalCtx) { } void func_80B14D4C(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B13AA0(this, func_80B14D98, func_80B167C0); } this->unk_2E0 |= 1; @@ -574,8 +574,8 @@ void func_80B14FAC(EnTa* this, EnTaActionFunc arg1) { } void func_80B15034(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); func_80B14F20(this, func_80B16504); func_80B13AAC(this, globalCtx); } @@ -599,14 +599,14 @@ s32 func_80B150AC(EnTa* this, GlobalContext* globalCtx, s32 idx) { void func_80B15100(EnTa* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { s32 unk_2CA; Animation_Change(&this->skelAnime, &object_ta_Anim_00C48C, 1.0f, Animation_GetLastFrame(&object_ta_Anim_00C48C) - 1.0f, Animation_GetLastFrame(&object_ta_Anim_00C48C), ANIMMODE_ONCE, 10.0f); this->unk_2E0 &= ~0x10; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); unk_2CA = this->unk_2CA; this->unk_25C = func_80B154FC; this->unk_2B8[unk_2CA]->actor.gravity = 0.1f; @@ -627,7 +627,7 @@ void func_80B15100(EnTa* this, GlobalContext* globalCtx) { } void func_80B15260(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_25C = func_80B15100; this->actor.flags &= ~0x10000; } else { @@ -675,7 +675,7 @@ void func_80B153D4(EnTa* this, GlobalContext* globalCtx) { void func_80B15424(EnTa* this, GlobalContext* globalCtx) { func_80B15308(this); - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { globalCtx->nextEntranceIndex = 0x5E4; if (gSaveContext.eventInf[0] & 0x100) { @@ -715,7 +715,7 @@ void func_80B154FC(EnTa* this, GlobalContext* globalCtx) { case 1: gSaveContext.timer1State = 0; func_8002DF54(globalCtx, &this->actor, 1); - func_8010B680(globalCtx, 0x2084, &this->actor); + Message_StartTextbox(globalCtx, 0x2084, &this->actor); this->unk_25C = func_80B15424; Animation_Change(&this->skelAnime, &object_ta_Anim_00BF38, 1.0f, 8.0f, 29.0f, ANIMMODE_ONCE, -10.0f); @@ -724,7 +724,7 @@ void func_80B154FC(EnTa* this, GlobalContext* globalCtx) { gSaveContext.eventInf[0] |= 0x100; Audio_QueueSeqCmd(NA_BGM_STOP); this->unk_2E0 &= ~0x200; - func_800F5C64(NA_BGM_SMALL_ITEM_GET); + Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET); return; case 2: this->actor.textId = 0x2083; @@ -756,7 +756,7 @@ void func_80B154FC(EnTa* this, GlobalContext* globalCtx) { func_80078884(NA_SE_SY_FOUND); gSaveContext.timer1State = 0; func_8002DF54(globalCtx, &this->actor, 1); - func_8010B680(globalCtx, 0x2081, &this->actor); + Message_StartTextbox(globalCtx, 0x2081, &this->actor); this->unk_25C = func_80B15424; func_80B14E28(this, globalCtx); gSaveContext.eventInf[0] &= ~0x100; @@ -821,11 +821,11 @@ void func_80B15AD4(EnTa* this, GlobalContext* globalCtx) { func_80088B34(0x1E); func_800F5ACC(NA_BGM_MINI_GAME_2); this->unk_2E0 |= 0x200; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); func_8002DF54(globalCtx, &this->actor, 1); } - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->unk_2E0 |= 0x20; } @@ -839,7 +839,7 @@ void func_80B15BF8(EnTa* this, GlobalContext* globalCtx) { Animation_Change(&this->skelAnime, &object_ta_Anim_00BF38, 1.0f, 0.0f, 1.0f, ANIMMODE_ONCE, 0.0f); this->unk_2CC = 5; } - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->unk_2E0 |= 0x20; } this->unk_2E0 |= 1; @@ -851,7 +851,7 @@ void func_80B15CC8(EnTa* this, GlobalContext* globalCtx) { this->unk_2E0 &= ~0x10; Animation_Change(&this->skelAnime, &object_ta_Anim_00BF38, -1.0f, 29.0f, 0.0f, ANIMMODE_ONCE, 10.0f); } - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->unk_2E0 |= 0x20; } this->unk_2E0 |= 1; @@ -861,12 +861,12 @@ void func_80B15D90(EnTa* this, GlobalContext* globalCtx) { func_80B13AA0(this, func_80B15CC8, func_80B16938); this->unk_2E0 &= ~0x10; Animation_Change(&this->skelAnime, &object_ta_Anim_00BF38, 1.0f, 8.0f, 29.0f, ANIMMODE_ONCE, -10.0f); - func_8010B720(globalCtx, 0x2080); + Message_ContinueTextbox(globalCtx, 0x2080); this->unk_2E0 &= ~0x20; } void func_80B15E28(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_80B14F20(this, func_80B16504); func_80B13AAC(this, globalCtx); } @@ -890,8 +890,8 @@ void func_80B15E80(EnTa* this, GlobalContext* globalCtx) { } void func_80B15F54(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->unk_2E0 &= ~0x2; func_80B13AA0(this, func_80B15E80, func_80B16938); func_8002F434(&this->actor, globalCtx, GI_MILK_BOTTLE, 10000.0f, 50.0f); @@ -899,16 +899,16 @@ void func_80B15F54(EnTa* this, GlobalContext* globalCtx) { } void func_80B15FE8(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: switch (func_80B14DD8()) { case 0: - func_8010B720(globalCtx, 0x85); + Message_ContinueTextbox(globalCtx, 0x85); func_80B13AA0(this, func_80B15034, func_80B16938); break; case 1: - func_8010B720(globalCtx, 0x208A); + Message_ContinueTextbox(globalCtx, 0x208A); func_80B13AA0(this, func_80B15E28, func_80B16938); break; case 2: @@ -921,7 +921,7 @@ void func_80B15FE8(EnTa* this, GlobalContext* globalCtx) { break; case 1: if (gSaveContext.rupees < 10) { - func_8010B720(globalCtx, 0x85); + Message_ContinueTextbox(globalCtx, 0x85); func_80B13AA0(this, func_80B15034, func_80B16938); } else { Rupees_ChangeBy(-10); @@ -949,23 +949,21 @@ void func_80B161C0(EnTa* this, GlobalContext* globalCtx) { price = 10; } - if (func_8010BDBC(&globalCtx->msgCtx) == 4) { - if (func_80106BC8(globalCtx) != 0) { - switch (globalCtx->msgCtx.choiceIndex) { - case 0: - if (gSaveContext.rupees < price) { - func_8010B720(globalCtx, 0x85); - func_80B13AA0(this, func_80B15034, func_80B16938); - } else { - Rupees_ChangeBy(-price); - func_80B15D90(this, globalCtx); - } - break; - case 1: - func_80B14F20(this, func_80B16504); - func_80B13AAC(this, globalCtx); - break; - } + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(globalCtx)) { + switch (globalCtx->msgCtx.choiceIndex) { + case 0: + if (gSaveContext.rupees < price) { + Message_ContinueTextbox(globalCtx, 0x85); + func_80B13AA0(this, func_80B15034, func_80B16938); + } else { + Rupees_ChangeBy(-price); + func_80B15D90(this, globalCtx); + } + break; + case 1: + func_80B14F20(this, func_80B16504); + func_80B13AAC(this, globalCtx); + break; } } @@ -975,8 +973,8 @@ void func_80B161C0(EnTa* this, GlobalContext* globalCtx) { } void func_80B162E8(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_8010B720(globalCtx, 0x2087); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_ContinueTextbox(globalCtx, 0x2087); func_80B13AA0(this, func_80B15F54, func_80B16938); } @@ -986,13 +984,13 @@ void func_80B162E8(EnTa* this, GlobalContext* globalCtx) { } void func_80B16364(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[7] |= 0x4000; if (gSaveContext.itemGetInf[0] & 4) { - func_8010B720(globalCtx, 0x208B); + Message_ContinueTextbox(globalCtx, 0x208B); func_80B13AA0(this, func_80B15FE8, func_80B16938); } else { - func_8010B720(globalCtx, 0x207F); + Message_ContinueTextbox(globalCtx, 0x207F); func_80B13AA0(this, func_80B161C0, func_80B16938); } } @@ -1003,14 +1001,14 @@ void func_80B16364(EnTa* this, GlobalContext* globalCtx) { } void func_80B1642C(EnTa* this, GlobalContext* globalCtx) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { if (Inventory_HasEmptyBottle()) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->unk_2E0 |= 2; func_80B13AA0(this, func_80B15E80, func_80B16938); func_8002F434(&this->actor, globalCtx, GI_MILK, 10000.0f, 50.0f); } else { - func_8010B720(globalCtx, 0x208A); + Message_ContinueTextbox(globalCtx, 0x208A); func_80B13AA0(this, func_80B15E28, func_80B16938); } } @@ -1047,7 +1045,7 @@ void func_80B16504(EnTa* this, GlobalContext* globalCtx) { } void func_80B16608(EnTa* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { switch (this->actor.textId) { case 0x2085: this->unk_25C = func_80B161C0; diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index eddb41afa1..d23d0476c7 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -78,7 +78,7 @@ void func_80B176E0(EnTakaraMan* this, GlobalContext* globalCtx) { Animation_Change(&this->skelAnime, &object_ts_Anim_000498, 1.0f, 0.0f, (s16)frameCount, ANIMMODE_LOOP, -10.0f); if (!this->unk_214) { this->actor.textId = 0x6D; - this->dialogState = 4; + this->dialogState = TEXT_STATE_CHOICE; } this->actionFunc = func_80B1778C; } @@ -88,7 +88,7 @@ void func_80B1778C(EnTakaraMan* this, GlobalContext* globalCtx) { s16 yawDiff; SkelAnime_Update(&this->skelAnime); - if (func_8002F194(&this->actor, globalCtx) && this->dialogState != 6) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx) && this->dialogState != TEXT_STATE_DONE) { if (!this->unk_214) { this->actionFunc = func_80B17934; } else { @@ -99,16 +99,16 @@ void func_80B1778C(EnTakaraMan* this, GlobalContext* globalCtx) { if (globalCtx->roomCtx.curRoom.num == 6 && !this->unk_21A) { this->actor.textId = 0x6E; this->unk_21A = 1; - this->dialogState = 6; + this->dialogState = TEXT_STATE_DONE; } if (!this->unk_21A && this->unk_214) { if (Flags_GetSwitch(globalCtx, 0x32)) { this->actor.textId = 0x84; - this->dialogState = 5; + this->dialogState = TEXT_STATE_EVENT; } else { this->actor.textId = 0x704C; - this->dialogState = 6; + this->dialogState = TEXT_STATE_DONE; } } @@ -129,29 +129,29 @@ void func_80B1778C(EnTakaraMan* this, GlobalContext* globalCtx) { } void func_80B17934(EnTakaraMan* this, GlobalContext* globalCtx) { - if (this->dialogState == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { + if (this->dialogState == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { switch (globalCtx->msgCtx.choiceIndex) { case 0: // Yes if (gSaveContext.rupees >= 10) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); Rupees_ChangeBy(-10); this->unk_214 = 1; this->actor.parent = NULL; func_8002F434(&this->actor, globalCtx, GI_DOOR_KEY, 2000.0f, 1000.0f); this->actionFunc = func_80B17A6C; } else { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.textId = 0x85; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = func_80B17B14; } break; case 1: // No - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.textId = 0x2D; - func_8010B720(globalCtx, this->actor.textId); - this->dialogState = 5; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->dialogState = TEXT_STATE_EVENT; this->actionFunc = func_80B17B14; break; } @@ -167,14 +167,14 @@ void func_80B17A6C(EnTakaraMan* this, GlobalContext* globalCtx) { } void func_80B17AC4(EnTakaraMan* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 6 && func_80106BC8(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(globalCtx)) { this->actionFunc = func_80B176E0; } } void func_80B17B14(EnTakaraMan* this, GlobalContext* globalCtx) { - if (this->dialogState == func_8010BDBC(&globalCtx->msgCtx) && func_80106BC8(globalCtx)) { - func_80106CCC(globalCtx); + if (this->dialogState == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->actionFunc = func_80B176E0; } } diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index b4f6578a9b..ec0d32ab21 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -83,18 +83,18 @@ u16 EnTg_GetTextId(GlobalContext* globalCtx, Actor* thisx) { s16 EnTg_OnTextComplete(GlobalContext* globalCtx, Actor* thisx) { EnTg* this = THIS; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: return 1; - case 2: + case TEXT_STATE_CLOSING: switch (this->actor.textId) { case 0x5089: case 0x508A: diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 848a39a095..97302c5e06 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -352,21 +352,21 @@ u16 func_80B1C54C(GlobalContext* globalCtx, Actor* thisx) { s16 func_80B1C5A0(GlobalContext* globalCtx, Actor* thisx) { s32 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: break; - case 2: + case TEXT_STATE_CLOSING: /* "I am the boss of the carpenters ..." (wtf?) */ if (thisx->textId == 0x5028) { gSaveContext.infTable[13] |= 0x0100; } ret = 0; break; - case 3: + case TEXT_STATE_DONE_FADING: break; - case 4: - if (func_80106BC8(globalCtx) && (thisx->textId == 0x5018 || thisx->textId == 0x5019)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx) && (thisx->textId == 0x5018 || thisx->textId == 0x5019)) { if (globalCtx->msgCtx.choiceIndex == 1) { /* "Thanks a lot!" */ thisx->textId = 0x0084; @@ -374,25 +374,25 @@ s16 func_80B1C5A0(GlobalContext* globalCtx, Actor* thisx) { /* "You don't have enough Rupees!" */ thisx->textId = 0x0085; } else { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; Rupees_ChangeBy(-10); gSaveContext.infTable[13] |= 0x0200; return 2; } - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); gSaveContext.infTable[13] |= 0x0200; } break; - case 5: - if (func_80106BC8(globalCtx) && (thisx->textId == 0x0084 || thisx->textId == 0x0085)) { - func_80106CCC(globalCtx); + case TEXT_STATE_EVENT: + if (Message_ShouldAdvance(globalCtx) && (thisx->textId == 0x0084 || thisx->textId == 0x0085)) { + Message_CloseTextbox(globalCtx); ret = 0; } break; - case 6: - case 7: - case 8: - case 9: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: break; } @@ -540,7 +540,7 @@ void EnTk_Rest(EnTk* this, GlobalContext* globalCtx) { this->actionCountdown = 0; func_800343CC(globalCtx, &this->actor, &this->h_1E0, this->collider.dim.radius + 30.0f, func_80B1C54C, func_80B1C5A0); - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { v1 = this->actor.shape.rot.y; v1 -= this->h_21E; v1 = this->actor.yawTowardsPlayer - v1; @@ -640,9 +640,9 @@ void EnTk_Dig(EnTk* this, GlobalContext* globalCtx) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { if (this->currentReward < 0) { /* "Nope, nothing here!" */ - func_8010B680(globalCtx, 0x501A, NULL); + Message_StartTextbox(globalCtx, 0x501A, NULL); } else { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } EnTk_RestAnim(this, globalCtx); diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 0940ecbcd4..27374fbf10 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -152,21 +152,21 @@ s32 func_80B203D8(EnToryo* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s32 ret = 1; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 2: - case 3: - case 5: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CLOSING: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_EVENT: ret = 1; break; - case 4: - if (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + if (Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); this->actor.parent = NULL; player->exchangeItemId = EXCH_ITEM_NONE; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->actor.textId = 0x601B; ret = 3; } else { @@ -175,31 +175,31 @@ s32 func_80B203D8(EnToryo* this, GlobalContext* globalCtx) { } } break; - case 6: + case TEXT_STATE_DONE: switch (this->actor.textId) { case 0x5028: ret = 1; - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[23] |= 4; ret = 0; } break; case 0x601B: ret = 1; - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { ret = 4; } break; case 0x606F: ret = 1; - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[23] |= 2; ret = 0; } break; case 0x606A: ret = 1; - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { gSaveContext.infTable[23] |= 1; ret = 0; } @@ -210,7 +210,7 @@ s32 func_80B203D8(EnToryo* this, GlobalContext* globalCtx) { case 0x606E: default: ret = 1; - if (func_80106BC8(globalCtx) != 0) { + if (Message_ShouldAdvance(globalCtx)) { ret = 0; } break; @@ -225,17 +225,17 @@ s32 func_80B205CC(EnToryo* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); s32 ret = 5; - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_CLOSING: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_CHOICE: + case TEXT_STATE_EVENT: ret = 5; break; - case 6: - if (func_80106BC8(globalCtx) != 0) { + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { ret = 0; } break; @@ -297,8 +297,8 @@ void func_80B20768(EnToryo* this, GlobalContext* globalCtx) { s16 sp30; if (this->unk_1E4 == 3) { - func_8002F194(&this->actor, globalCtx); - func_8010B720(globalCtx, this->actor.textId); + Actor_ProcessTalkRequest(&this->actor, globalCtx); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E4 = 1; } @@ -312,7 +312,7 @@ void func_80B20768(EnToryo* this, GlobalContext* globalCtx) { } if (this->unk_1E4 == 2) { - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E4 = 1; } @@ -327,7 +327,7 @@ void func_80B20768(EnToryo* this, GlobalContext* globalCtx) { } if (this->unk_1E4 == 0) { - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_1E0 = func_8002F368(globalCtx); if (this->unk_1E0 != 0) { player->actor.textId = func_80B20634(this, globalCtx); @@ -337,7 +337,7 @@ void func_80B20768(EnToryo* this, GlobalContext* globalCtx) { return; } - func_8002F374(globalCtx, &this->actor, &sp32, &sp30); + Actor_GetScreenPos(globalCtx, &this->actor, &sp32, &sp30); if ((sp32 >= 0) && (sp32 < 0x141) && (sp30 >= 0) && (sp30 < 0xF1)) { this->actor.textId = func_80B206A0(this, globalCtx); func_8002F298(&this->actor, globalCtx, 100.0f, 10); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index 417d7639fb..e370809ead 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -79,14 +79,14 @@ void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { this->actor.textId = 0x7088; } - this->unk_156 = 5; + this->unk_156 = TEXT_STATE_EVENT; osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ this->actor.talk_message ☆☆☆☆☆ %x\n" VT_RST, this->actor.textId); break; case 2: // "Diary start!" osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 日記帳スタート! ☆☆☆☆☆ \n" VT_RST); this->actor.textId = 0x5002; - this->unk_156 = 4; + this->unk_156 = TEXT_STATE_CHOICE; this->height = 30.0f; this->unk_15C = 40.0f; // "Attention coordinates" @@ -94,7 +94,7 @@ void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { break; case 3: this->actor.textId = 0x501E; - this->unk_156 = 5; + this->unk_156 = TEXT_STATE_EVENT; this->height = 0.0f; this->unk_15C = 110.0f; // "Attention coordinates" @@ -102,7 +102,7 @@ void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { break; case 4: this->actor.textId = 0x5020; - this->unk_156 = 6; + this->unk_156 = TEXT_STATE_DONE; this->height = 0.0f; // "Attention coordinates" osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 0.0f); @@ -113,7 +113,7 @@ void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { break; case 5: this->actor.textId = 0x501F; - this->unk_156 = 5; + this->unk_156 = TEXT_STATE_EVENT; this->height = 0.0f; this->unk_15C = 110.0f; // "Attention coordinates" @@ -121,7 +121,7 @@ void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { break; default: this->actor.textId = 0x7072; - this->unk_156 = 5; + this->unk_156 = TEXT_STATE_EVENT; break; } @@ -140,8 +140,8 @@ void func_80B3943C(EnWonderTalk* this, GlobalContext* globalCtx) { return; } if (this->switchFlag < 0 || !Flags_GetSwitch(globalCtx, this->switchFlag)) { - if ((func_8002F194(&this->actor, globalCtx))) { - if (this->unk_156 != 6) { + if ((Actor_ProcessTalkRequest(&this->actor, globalCtx))) { + if (this->unk_156 != TEXT_STATE_DONE) { this->actionFunc = func_80B395F0; } else { if (this->switchFlag >= 0) { @@ -175,61 +175,59 @@ void func_80B3943C(EnWonderTalk* this, GlobalContext* globalCtx) { } void func_80B395F0(EnWonderTalk* this, GlobalContext* globalCtx) { - if (this->unk_156 == func_8010BDBC(&globalCtx->msgCtx)) { - if (func_80106BC8(globalCtx)) { - if (this->switchFlag >= 0) { - this->actor.flags &= -2; - Flags_SetSwitch(globalCtx, this->switchFlag); - } - switch (this->unk_150) { - case 1: - func_80106CCC(globalCtx); - this->actionFunc = func_80B391CC; - break; - case 2: - switch (globalCtx->msgCtx.choiceIndex) { - case 0: - if (!LINK_IS_ADULT) { - // "I'm still a child!" - osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ まだコドモなの! ☆☆☆☆☆ \n" VT_RST); - this->actor.textId = 0x5001; - } else { - // "I'm an adult. .. .." - osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ アダルトなの。。。 ☆☆☆☆☆ \n" VT_RST); - this->actor.textId = 0x5003; - } - break; - case 1: - // "Out!" - osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ はずれ! ☆☆☆☆☆ \n" VT_RST); - this->actor.textId = 0x5004; - break; - } + if (this->unk_156 == Message_GetState(&globalCtx->msgCtx) && Message_ShouldAdvance(globalCtx)) { + if (this->switchFlag >= 0) { + this->actor.flags &= -2; + Flags_SetSwitch(globalCtx, this->switchFlag); + } + switch (this->unk_150) { + case 1: + Message_CloseTextbox(globalCtx); + this->actionFunc = func_80B391CC; + break; + case 2: + switch (globalCtx->msgCtx.choiceIndex) { + case 0: + if (!LINK_IS_ADULT) { + // "I'm still a child!" + osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ まだコドモなの! ☆☆☆☆☆ \n" VT_RST); + this->actor.textId = 0x5001; + } else { + // "I'm an adult. .. .." + osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ アダルトなの。。。 ☆☆☆☆☆ \n" VT_RST); + this->actor.textId = 0x5003; + } + break; + case 1: + // "Out!" + osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ はずれ! ☆☆☆☆☆ \n" VT_RST); + this->actor.textId = 0x5004; + break; + } - this->unk_156 = 6; - func_8010B720(globalCtx, this->actor.textId); - this->actionFunc = func_80B391CC; - break; - case 3: - func_80106CCC(globalCtx); - if (this->unk_164 == 0) { - Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->actor.world.pos.x, - this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 2); - this->unk_164 = 1; - } + this->unk_156 = TEXT_STATE_DONE; + Message_ContinueTextbox(globalCtx, this->actor.textId); + this->actionFunc = func_80B391CC; + break; + case 3: + Message_CloseTextbox(globalCtx); + if (this->unk_164 == 0) { + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->actor.world.pos.x, + this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 2); + this->unk_164 = 1; + } - this->actionFunc = func_80B391CC; - break; - case 5: - func_80106CCC(globalCtx); - if (this->unk_164 == 0) { - Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->actor.world.pos.x, - this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 3); - this->unk_164 = 1; - } - this->actionFunc = func_80B391CC; - break; - } + this->actionFunc = func_80B391CC; + break; + case 5: + Message_CloseTextbox(globalCtx); + if (this->unk_164 == 0) { + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->actor.world.pos.x, + this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 3); + this->unk_164 = 1; + } + this->actionFunc = func_80B391CC; + break; } } } diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index a8cfe4d246..2a915b1bbf 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -119,7 +119,7 @@ void func_80B3A15C(EnWonderTalk2* this, GlobalContext* globalCtx) { this->actor.flags &= ~1; this->unk_15A = true; } - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if ((this->switchFlag >= 0) && (this->talkMode != 2)) { Flags_SetSwitch(globalCtx, this->switchFlag); // "I saved it! All of it!" @@ -171,20 +171,20 @@ void func_80B3A15C(EnWonderTalk2* this, GlobalContext* globalCtx) { void func_80B3A3D4(EnWonderTalk2* this, GlobalContext* globalCtx) { if (BREG(2) != 0) { // "Oh" - osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ わー %d\n" VT_RST, func_8010BDBC(&globalCtx->msgCtx)); + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ わー %d\n" VT_RST, Message_GetState(&globalCtx->msgCtx)); } - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 5: - case 6: - if (func_80106BC8(globalCtx)) { - if (func_8010BDBC(&globalCtx->msgCtx) == 5) { - func_80106CCC(globalCtx); + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_EVENT: + case TEXT_STATE_DONE: + if (Message_ShouldAdvance(globalCtx)) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) { + Message_CloseTextbox(globalCtx); } } else { break; } - case 0: + case TEXT_STATE_NONE: if ((this->switchFlag >= 0) && (this->talkMode != 4)) { Flags_SetSwitch(globalCtx, this->switchFlag); // "(Forced) I saved it! All of it!" @@ -253,7 +253,7 @@ void func_80B3A4F8(EnWonderTalk2* this, GlobalContext* globalCtx) { } this->unk_158 = 0; if (!this->unk_156) { - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); func_8002DF54(globalCtx, NULL, 8); this->actor.flags |= 0x11; this->actionFunc = func_80B3A3D4; diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 3b47d5a35b..37a6d41e06 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -2162,7 +2162,7 @@ void EnXc_InitTempleOfTime(EnXc* this, GlobalContext* globalCtx) { } void EnXc_SetupDialogueAction(EnXc* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = SHEIK_ACTION_IN_DIALOGUE; } else { this->actor.flags |= 9; @@ -2176,7 +2176,7 @@ void EnXc_SetupDialogueAction(EnXc* this, GlobalContext* globalCtx) { } void func_80B41798(EnXc* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->action = SHEIK_ACTION_BLOCK_PEDESTAL; this->actor.flags &= ~9; } diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index 3b8c3c713c..22c695f116 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -174,7 +174,7 @@ void func_80B42F74(EnYabusameMark* this, GlobalContext* globalCtx) { osSyncPrintf("\n\n"); if (scoreIndex == 2) { - func_800F5C64(NA_BGM_ITEM_GET | 0x900); + Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900); } if (scoreIndex == 1) { Audio_StopSfxById(NA_SE_SY_TRE_BOX_APPEAR); diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 9cd3414d4f..423af4af3b 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -1841,8 +1841,9 @@ void EnZf_CircleAroundPlayer(EnZf* this, GlobalContext* globalCtx) { if ((this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) /* miniboss */ && (D_80B4A1B4 == this->actor.params)) { EnZf_SetupHopAndTaunt(this); - } else + } else { EnZf_SetupApproachPlayer(this, globalCtx); + } } else if ((this->actor.params != ENZF_TYPE_DINOLFOS) || !EnZf_ChooseAction(globalCtx, this)) { if (this->unk_3F0 == 0) { phi_v0_4 = player->actor.shape.rot.y - this->actor.shape.rot.y; diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index ccbbe24d7d..3f814296ee 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -144,10 +144,10 @@ void func_80B4AF18(EnZl1* this, GlobalContext* globalCtx) { func_80038290(globalCtx, &this->actor, &this->unk_200, &this->unk_206, this->actor.focus.pos); if (this->unk_1E6 != 0) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->unk_1E6 = 0; } - } else if (func_8002F194(&this->actor, globalCtx)) { + } else if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_1E6 = 1; } else if (this->actor.world.pos.y <= player->actor.world.pos.y) { func_8002F2F4(&this->actor, globalCtx); @@ -167,7 +167,7 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) { Vec3f playerPos = { -398.0f, 84.0f, 0.0f }; s16 rotDiff; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { Animation_Change(&this->skelAnime, &gChildZelda1Anim_10B38, 1.0f, 0.0f, Animation_GetLastFrame(&gChildZelda1Anim_10B38), ANIMMODE_ONCE_INTERP, -10.0f); this->unk_1E8 = Gameplay_CreateSubCamera(globalCtx); @@ -187,7 +187,7 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) { player->actor.speedXZ = 0.0f; this->unk_1E2 = 0; this->actionFunc = func_80B4B240; - func_800F5C64(NA_BGM_APPEAR); + Audio_PlayFanfare(NA_BGM_APPEAR); } else { if (1) {} // necessary to match rotDiff = ABS(this->actor.yawTowardsPlayer - this->actor.shape.rot.y); @@ -225,24 +225,24 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) { animHeaderSeg = &gChildZelda1Anim_11348; sp3C = 1; this->actor.textId = 0x702E; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_1E2++; break; } break; case 1: - if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { globalCtx->envCtx.fillScreen = false; Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &sp74, &sp68); Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 25.0f); player->actor.world.pos = sp58; this->actor.textId = 0x702F; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } break; case 2: - if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (msgCtx->choiceIndex == 0) { animHeaderSeg = &gChildZelda1Anim_13F10; sp3C = 2; @@ -260,27 +260,27 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) { animHeaderSeg = &gChildZelda1Anim_143A8; sp3C = 1; this->actor.textId = 0x7032; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } break; case 4: - if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (msgCtx->choiceIndex == 0) { animHeaderSeg = &gChildZelda1Anim_132D8; sp3C = 2; this->unk_1E2 = 9; } else { this->actor.textId = 0x7034; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } } break; case 5: - if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.textId = 0x7033; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2--; } break; @@ -290,26 +290,26 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) { animHeaderSeg = &gChildZelda1Anim_12B88; sp3C = 1; this->actor.textId = 0x7031; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } break; case 7: - if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.textId = 0x7030; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } break; case 8: - if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (msgCtx->choiceIndex == 0) { animHeaderSeg = &gChildZelda1Anim_138E0; sp3C = 2; this->unk_1E2 = 3; } else { this->actor.textId = 0x7031; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2--; } } @@ -426,7 +426,7 @@ void func_80B4BBC4(EnZl1* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 1); func_8002F7DC(&player->actor, NA_SE_VO_LI_SURPRISE_KID); this->actor.textId = 0x7039; - func_8010B680(globalCtx, this->actor.textId, NULL); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); this->unk_1E2 = 0; this->actionFunc = func_80B4BF2C; } @@ -496,25 +496,25 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) { switch (this->unk_1E2) { case 0: - if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (msgCtx->choiceIndex == 0) { this->actor.textId = 0x703B; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2++; } else { this->actor.textId = 0x703A; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_1E2 = 0; } } break; case 1: - if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { this->actor.textId = 0xFFFF; globalCtx->talkWithPlayer(globalCtx, &this->actor); func_8002F434(&this->actor, globalCtx, GI_LETTER_ZELDA, 120.0f, 10.0f); - globalCtx->msgCtx.msgMode = 0x36; - globalCtx->msgCtx.unk_E3E7 = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; + globalCtx->msgCtx.stateTimer = 4; this->unk_1E2++; } else { break; @@ -531,9 +531,9 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) { } break; case 3: - if ((func_8010BDBC(msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { this->actor.textId = 0x703C; - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); Flags_SetEventChkInf(0x40); this->unk_1E2 = 6; } @@ -542,7 +542,7 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) { if (player->actor.world.pos.y < this->actor.world.pos.y) { break; } else { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->unk_1E2++; } else { func_8002F2F4(&this->actor, globalCtx); @@ -550,12 +550,12 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) { } break; case 5: - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->unk_1E2--; } break; case 6: - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { func_8002DF54(globalCtx, &this->actor, 7); Interface_ChangeAlpha(50); this->actor.flags &= ~0x100; diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index 720b7607f1..27b5c78e1c 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1118,7 +1118,7 @@ void func_80B55CCC(EnZl3* this, s32 arg1) { } void func_80B55D00(EnZl3* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = 13; } else if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x4300) { this->actor.flags |= 9; @@ -1132,7 +1132,7 @@ void func_80B55D00(EnZl3* this, GlobalContext* globalCtx) { } void func_80B55DB0(EnZl3* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x9; this->actor.flags &= ~0x1; this->action = 12; @@ -1174,7 +1174,7 @@ void func_80B55F38(EnZl3* this, s32 arg1) { } void func_80B55F6C(EnZl3* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = 0x12; } else if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x4300) { BossGanon2* bossGanon2 = func_80B53488(this, globalCtx); @@ -1211,7 +1211,7 @@ void func_80B56090(EnZl3* this, s32 arg1) { } void func_80B56108(EnZl3* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x9; this->actor.flags &= ~0x1; this->action = 16; @@ -1235,7 +1235,7 @@ void func_80B561E0(EnZl3* this, s32 arg1) { } void func_80B56214(EnZl3* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { this->action = 21; } else if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x4300) { BossGanon2* bossGanon2 = func_80B53488(this, globalCtx); @@ -1255,7 +1255,7 @@ void func_80B56214(EnZl3* this, GlobalContext* globalCtx) { } void func_80B562F4(EnZl3* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x9; this->actor.flags &= ~0x1; this->action = 20; @@ -1687,7 +1687,7 @@ u16 func_80B572F0(GlobalContext* globalCtx) { } s32 func_80B57324(EnZl3* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { return 1; } return 0; @@ -1704,7 +1704,7 @@ void func_80B57350(EnZl3* this, GlobalContext* globalCtx) { } s32 func_80B573C8(EnZl3* this, GlobalContext* globalCtx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return 1; } return 0; @@ -2148,10 +2148,10 @@ void func_80B58624(EnZl3* this, GlobalContext* globalCtx) { } else if (*unk_3CC == kREG(19) + 20.0f) { *unk_3CC += 1.0f; this->actor.textId = 0x71AC; - func_8010B680(globalCtx, this->actor.textId, 0); + Message_StartTextbox(globalCtx, this->actor.textId, NULL); func_80B54E14(this, &gZelda2Anime2Anim_003FF8, 0, -12.0f, 0); } else if (*unk_3CC == ((kREG(19) + 20.0f) + 1.0f)) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { *unk_3CC += 1.0f; func_80B5357C(this, globalCtx); func_80B5357C(this, globalCtx); diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index bc299f18f5..de1e29ae68 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -229,7 +229,7 @@ u16 EnZl4_GetText(GlobalContext* globalCtx, Actor* thisx) { } s16 func_80B5B9B0(GlobalContext* globalCtx, Actor* thisx) { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { return false; } return true; @@ -425,7 +425,7 @@ s32 EnZl4_CsWaitForPlayer(EnZl4* this, GlobalContext* globalCtx) { s16 yawDiff; s16 absYawDiff; - if (!func_8002F194(&this->actor, globalCtx)) { + if (!Actor_ProcessTalkRequest(&this->actor, globalCtx)) { yawDiff = (f32)this->actor.yawTowardsPlayer - this->actor.shape.rot.y; absYawDiff = ABS(yawDiff); if ((playerx->world.pos.y != this->actor.world.pos.y) || (absYawDiff >= 0x3FFC)) { @@ -453,24 +453,24 @@ s32 EnZl4_CsMeetPlayer(EnZl4* this, GlobalContext* globalCtx) { if (!EnZl4_SetNextAnim(this, ZL4_ANIM_4)) { break; } else { - func_8010B680(globalCtx, 0x702E, NULL); + Message_StartTextbox(globalCtx, 0x702E, NULL); this->talkState++; } break; case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 1); - func_8010B680(globalCtx, 0x702F, NULL); + Message_StartTextbox(globalCtx, 0x702F, NULL); this->talkTimer2 = 0; this->talkState++; } break; case 2: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardMeetCs); gSaveContext.cutsceneTrigger = 1; EnZl4_SetCsCameraMove(globalCtx, 0); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer2 = 0; this->talkState++; } @@ -478,14 +478,14 @@ s32 EnZl4_CsMeetPlayer(EnZl4* this, GlobalContext* globalCtx) { case 3: this->talkTimer2++; if (this->talkTimer2 >= 45) { - func_8010B680(globalCtx, 0x70F9, NULL); + Message_StartTextbox(globalCtx, 0x70F9, NULL); this->talkState++; } break; case 4: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraMove(globalCtx, 1); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer2 = 0; this->talkState++; } @@ -493,18 +493,18 @@ s32 EnZl4_CsMeetPlayer(EnZl4* this, GlobalContext* globalCtx) { case 5: this->talkTimer2++; if (this->talkTimer2 >= 10) { - func_8010B680(globalCtx, 0x70FA, NULL); + Message_StartTextbox(globalCtx, 0x70FA, NULL); this->talkState++; } break; case 6: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 2); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_22); this->mouthExpression = ZL4_MOUTH_NEUTRAL; this->talkTimer2 = 0; this->talkState++; - func_8010B680(globalCtx, 0x70FB, NULL); + Message_StartTextbox(globalCtx, 0x70FB, NULL); } break; } @@ -518,21 +518,21 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 3); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer1 = 40; this->talkState = 2; } break; case 2: if (DECR(this->talkTimer1) == 0) { - func_8010B680(globalCtx, 0x7030, NULL); + Message_StartTextbox(globalCtx, 0x7030, NULL); this->talkState++; } break; case 3: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx))) { break; } else if (globalCtx->msgCtx.choiceIndex == 0) { EnZl4_SetCsCameraAngle(globalCtx, 4); @@ -540,13 +540,13 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_SQUINT; this->mouthExpression = ZL4_MOUTH_HAPPY; - func_8010B680(globalCtx, 0x7032, NULL); + Message_StartTextbox(globalCtx, 0x7032, NULL); this->talkState = 7; } else { EnZl4_SetCsCameraAngle(globalCtx, 2); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_9); this->mouthExpression = ZL4_MOUTH_WORRIED; - func_8010B680(globalCtx, 0x7031, NULL); + Message_StartTextbox(globalCtx, 0x7031, NULL); this->talkState++; } break; @@ -558,8 +558,8 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 5: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_9); this->mouthExpression = ZL4_MOUTH_WORRIED; EnZl4_ReverseAnimation(this); @@ -569,7 +569,7 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { case 6: this->mouthExpression = ZL4_MOUTH_NEUTRAL; EnZl4_SetCsCameraAngle(globalCtx, 3); - func_8010B680(globalCtx, 0x7030, NULL); + Message_StartTextbox(globalCtx, 0x7030, NULL); this->talkState = 12; break; case 12: @@ -577,7 +577,7 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->talkState = 13; } case 13: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx))) { break; } else if (globalCtx->msgCtx.choiceIndex == 0) { EnZl4_SetCsCameraAngle(globalCtx, 4); @@ -585,13 +585,13 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_SQUINT; this->mouthExpression = ZL4_MOUTH_HAPPY; - func_8010B680(globalCtx, 0x7032, NULL); + Message_StartTextbox(globalCtx, 0x7032, NULL); this->talkState = 7; } else { EnZl4_SetCsCameraAngle(globalCtx, 2); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_9); this->mouthExpression = ZL4_MOUTH_WORRIED; - func_8010B680(globalCtx, 0x7031, NULL); + Message_StartTextbox(globalCtx, 0x7031, NULL); this->talkState = 4; } break; @@ -603,29 +603,29 @@ s32 EnZl4_CsAskStone(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 8: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraMove(globalCtx, 2); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_0); this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_NEUTRAL; - func_8010B680(globalCtx, 0x70FC, NULL); + Message_StartTextbox(globalCtx, 0x70FC, NULL); this->talkState = 9; } break; case 9: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 5); - func_8010B680(globalCtx, 0x70FD, NULL); + Message_StartTextbox(globalCtx, 0x70FD, NULL); this->talkState++; } break; case 10: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_5); this->eyeExpression = ZL4_EYES_OPEN; this->mouthExpression = ZL4_MOUTH_SURPRISED; - func_8010B680(globalCtx, 0x70FE, NULL); + Message_StartTextbox(globalCtx, 0x70FE, NULL); this->talkState++; } break; @@ -641,14 +641,14 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { } break; case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 6); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_1); this->blinkTimer = 11; this->eyeExpression = ZL4_EYES_SQUINT; this->mouthExpression = ZL4_MOUTH_NEUTRAL; - globalCtx->msgCtx.msgMode = 0x37; - func_8010B680(globalCtx, 0x70FF, NULL); + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; + Message_StartTextbox(globalCtx, 0x70FF, NULL); this->talkState++; } break; @@ -657,25 +657,25 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 3: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_16); this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState = 4; } break; case 4: if (EnZl4_SetNextAnim(this, ZL4_ANIM_17)) { - func_8010B680(globalCtx, 0x2073, NULL); + Message_StartTextbox(globalCtx, 0x2073, NULL); this->talkState++; } break; case 5: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraMove(globalCtx, 3); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_0); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer2 = 0; this->talkState = 6; } @@ -683,15 +683,15 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { case 6: this->talkTimer2++; if (this->talkTimer2 >= 15) { - func_8010B680(globalCtx, 0x2074, NULL); + Message_StartTextbox(globalCtx, 0x2074, NULL); this->talkState++; } break; case 7: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_6); this->mouthExpression = ZL4_MOUTH_HAPPY; - func_8010B680(globalCtx, 0x2075, NULL); + Message_StartTextbox(globalCtx, 0x2075, NULL); this->talkState++; } break; @@ -700,23 +700,23 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 9: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B680(globalCtx, 0x7033, NULL); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_StartTextbox(globalCtx, 0x7033, NULL); this->talkState = 10; } break; case 10: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { if (globalCtx->msgCtx.choiceIndex == 0) { EnZl4_SetCsCameraMove(globalCtx, 4); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_33); this->mouthExpression = ZL4_MOUTH_NEUTRAL; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer2 = 0; this->talkState = 15; } else { EnZl4_SetCsCameraAngle(globalCtx, 6); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer1 = 20; this->talkState++; this->skelAnime.playSpeed = 0.0f; @@ -729,7 +729,7 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { this->blinkTimer = 11; this->eyeExpression = ZL4_EYES_LOOK_RIGHT; this->mouthExpression = ZL4_MOUTH_WORRIED; - func_8010B680(globalCtx, 0x7034, NULL); + Message_StartTextbox(globalCtx, 0x7034, NULL); this->talkState++; } break; @@ -741,37 +741,37 @@ s32 EnZl4_CsAskName(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 13: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_6); this->blinkTimer = 3; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_HAPPY; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState = 14; } break; case 14: if (EnZl4_SetNextAnim(this, ZL4_ANIM_25)) { - func_8010B680(globalCtx, 0x7033, NULL); + Message_StartTextbox(globalCtx, 0x7033, NULL); this->talkState = 10; } break; case 15: this->talkTimer2++; if (this->talkTimer2 >= 30) { - func_8010B680(globalCtx, 0x7035, NULL); + Message_StartTextbox(globalCtx, 0x7035, NULL); this->talkState++; } break; case 16: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } case 17: this->talkTimer2++; if (this->talkTimer2 == 130) { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; globalCtx->nextEntranceIndex = 0xA0; gSaveContext.nextCutsceneIndex = 0xFFF7; globalCtx->sceneLoadFlag = 0x14; @@ -792,41 +792,41 @@ s32 EnZl4_CsTellLegend(EnZl4* this, GlobalContext* globalCtx) { case 0: this->talkTimer2++; if (this->talkTimer2 >= 60) { - func_8010B680(globalCtx, 0x7037, NULL); + Message_StartTextbox(globalCtx, 0x7037, NULL); this->talkState++; } break; case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 7); - func_8010B680(globalCtx, 0x2076, NULL); + Message_StartTextbox(globalCtx, 0x2076, NULL); this->talkState++; } break; case 2: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraMove(globalCtx, 6); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } break; case 3: if (activeCam->animState == 2) { - func_8010B680(globalCtx, 0x2077, NULL); + Message_StartTextbox(globalCtx, 0x2077, NULL); this->talkState++; } break; case 4: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx))) { break; } else if (globalCtx->msgCtx.choiceIndex == 0) { EnZl4_SetCsCameraAngle(globalCtx, 8); - func_8010B680(globalCtx, 0x7005, NULL); + Message_StartTextbox(globalCtx, 0x7005, NULL); this->talkState = 9; } else { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_5); this->mouthExpression = ZL4_MOUTH_SURPRISED; - func_8010B680(globalCtx, 0x7038, NULL); + Message_StartTextbox(globalCtx, 0x7038, NULL); this->talkState++; Audio_PlayActorSound2(&this->actor, NA_SE_VO_Z0_HURRY); } @@ -836,29 +836,29 @@ s32 EnZl4_CsTellLegend(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 6: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_33); this->mouthExpression = ZL4_MOUTH_NEUTRAL; - func_8010B680(globalCtx, 0x7037, NULL); + Message_StartTextbox(globalCtx, 0x7037, NULL); this->talkState++; } break; case 7: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B680(globalCtx, 0x2076, NULL); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_StartTextbox(globalCtx, 0x2076, NULL); this->talkState++; } break; case 8: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B680(globalCtx, 0x2077, NULL); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_StartTextbox(globalCtx, 0x2077, NULL); this->talkState = 4; } break; case 9: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_26); - func_8010B680(globalCtx, 0x2078, NULL); + Message_StartTextbox(globalCtx, 0x2078, NULL); this->talkState++; } break; @@ -867,19 +867,19 @@ s32 EnZl4_CsTellLegend(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 11: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx))) { break; } else if (globalCtx->msgCtx.choiceIndex == 0) { - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState = 13; } else { - func_8010B680(globalCtx, 0x700B, NULL); + Message_StartTextbox(globalCtx, 0x700B, NULL); this->talkState = 12; } break; case 12: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState = 13; } break; @@ -917,13 +917,13 @@ s32 EnZl4_CsLookWindow(EnZl4* this, GlobalContext* globalCtx) { func_8002DF54(globalCtx, &this->actor, 1); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_30); EnZl4_SetCsCameraAngle(globalCtx, 11); - func_8010B680(globalCtx, 0x7039, NULL); + Message_StartTextbox(globalCtx, 0x7039, NULL); this->talkState++; } break; case 3: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } break; @@ -947,7 +947,7 @@ s32 EnZl4_CsWarnAboutGanon(EnZl4* this, GlobalContext* globalCtx) { this->mouthExpression = ZL4_MOUTH_WORRIED; this->talkTimer2 = 0; this->talkState++; - func_8010B680(globalCtx, 0x2079, NULL); + Message_StartTextbox(globalCtx, 0x2079, NULL); case 1: this->talkTimer2++; if (this->talkTimer2 >= 20) { @@ -955,9 +955,9 @@ s32 EnZl4_CsWarnAboutGanon(EnZl4* this, GlobalContext* globalCtx) { } break; case 2: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraMove(globalCtx, 9); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkTimer2 = 0; this->talkState++; } @@ -965,49 +965,49 @@ s32 EnZl4_CsWarnAboutGanon(EnZl4* this, GlobalContext* globalCtx) { case 3: this->talkTimer2++; if (this->talkTimer2 >= 20) { - func_8010B680(globalCtx, 0x207A, NULL); + Message_StartTextbox(globalCtx, 0x207A, NULL); this->talkState++; } break; case 4: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 12); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_23); this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_SURPRISED; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } break; case 5: if (EnZl4_SetNextAnim(this, ZL4_ANIM_24)) { - func_8010B680(globalCtx, 0x207B, NULL); + Message_StartTextbox(globalCtx, 0x207B, NULL); this->talkState++; } break; case 6: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B680(globalCtx, 0x703A, NULL); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_StartTextbox(globalCtx, 0x703A, NULL); this->talkState++; } break; case 7: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 4) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx))) { break; } else if (globalCtx->msgCtx.choiceIndex == 0) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_31); this->blinkTimer = 11; this->eyeExpression = ZL4_EYES_SQUINT; this->mouthExpression = ZL4_MOUTH_HAPPY; - func_8010B680(globalCtx, 0x703B, NULL); + Message_StartTextbox(globalCtx, 0x703B, NULL); this->talkState = 11; } else { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_13); this->blinkTimer = 11; this->eyeExpression = ZL4_EYES_LOOK_LEFT; this->mouthExpression = ZL4_MOUTH_WORRIED; - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } break; @@ -1016,20 +1016,20 @@ s32 EnZl4_CsWarnAboutGanon(EnZl4* this, GlobalContext* globalCtx) { this->blinkTimer = 3; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_SURPRISED; - func_8010B680(globalCtx, 0x7073, NULL); + Message_StartTextbox(globalCtx, 0x7073, NULL); this->talkState++; } break; case 9: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_14); - globalCtx->msgCtx.msgMode = 0x37; + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState++; } break; case 10: if (EnZl4_SetNextAnim(this, ZL4_ANIM_24)) { - func_8010B680(globalCtx, 0x703A, NULL); + Message_StartTextbox(globalCtx, 0x703A, NULL); this->talkState = 7; } break; @@ -1038,8 +1038,8 @@ s32 EnZl4_CsWarnAboutGanon(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 12: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - globalCtx->msgCtx.msgMode = 0x37; + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + globalCtx->msgCtx.msgMode = MSGMODE_PAUSED; this->talkState = 13; } break; @@ -1060,18 +1060,18 @@ s32 EnZl4_CsMakePlan(EnZl4* this, GlobalContext* globalCtx) { case 1: this->talkTimer2++; if (this->talkTimer2 >= 10) { - func_8010B680(globalCtx, 0x7123, NULL); + Message_StartTextbox(globalCtx, 0x7123, NULL); this->talkState++; } break; case 2: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { EnZl4_SetCsCameraAngle(globalCtx, 13); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_19); this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_SURPRISED; - func_8010B680(globalCtx, 0x207C, NULL); + Message_StartTextbox(globalCtx, 0x207C, NULL); this->talkState++; } break; @@ -1080,8 +1080,8 @@ s32 EnZl4_CsMakePlan(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 4: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) { - func_8010B680(globalCtx, 0x207D, NULL); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_StartTextbox(globalCtx, 0x207D, NULL); func_80034EC0(&this->skelAnime, sAnimationEntries, ZL4_ANIM_7); this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; @@ -1095,7 +1095,7 @@ s32 EnZl4_CsMakePlan(EnZl4* this, GlobalContext* globalCtx) { this->talkState++; } case 6: - if (!((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx))) { + if (!((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx))) { break; } else { Camera_ChangeSetting(GET_ACTIVE_CAM(globalCtx), 1); @@ -1103,8 +1103,8 @@ s32 EnZl4_CsMakePlan(EnZl4* this, GlobalContext* globalCtx) { globalCtx->talkWithPlayer(globalCtx, &this->actor); func_8002F434(&this->actor, globalCtx, GI_LETTER_ZELDA, fabsf(this->actor.xzDistToPlayer) + 1.0f, fabsf(this->actor.yDistToPlayer) + 1.0f); - globalCtx->msgCtx.unk_E3E7 = 4; - globalCtx->msgCtx.msgMode = 0x36; + globalCtx->msgCtx.stateTimer = 4; + globalCtx->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } break; case 7: @@ -1135,7 +1135,7 @@ void EnZl4_Cutscene(EnZl4* this, GlobalContext* globalCtx) { this->blinkTimer = 0; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_SURPRISED; - func_800F5C64(NA_BGM_APPEAR); + Audio_PlayFanfare(NA_BGM_APPEAR); EnZl4_SetCsCameraAngle(globalCtx, 0); Interface_ChangeAlpha(2); ShrinkWindow_SetVal(0x20); diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c index a98e94a5e1..aab481f271 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -432,17 +432,17 @@ u16 func_80B61024(GlobalContext* globalCtx, Actor* thisx) { } s16 func_80B61298(GlobalContext* globalCtx, Actor* thisx) { - switch (func_8010BDBC(&globalCtx->msgCtx)) { - case 0: - case 1: - case 3: - case 6: - case 7: - case 8: - case 9: + switch (Message_GetState(&globalCtx->msgCtx)) { + case TEXT_STATE_NONE: + case TEXT_STATE_DONE_HAS_NEXT: + case TEXT_STATE_DONE_FADING: + case TEXT_STATE_DONE: + case TEXT_STATE_SONG_DEMO_DONE: + case TEXT_STATE_8: + case TEXT_STATE_9: return 1; - case 2: + case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x4020: case 0x4021: @@ -457,21 +457,21 @@ s16 func_80B61298(GlobalContext* globalCtx, Actor* thisx) { gSaveContext.eventChkInf[3] |= 1; return 0; - case 4: - switch (func_80106BC8(globalCtx)) { + case TEXT_STATE_CHOICE: + switch (Message_ShouldAdvance(globalCtx)) { case 0: return 1; default: if (thisx->textId == 0x400C) { thisx->textId = (globalCtx->msgCtx.choiceIndex == 0) ? 0x400D : 0x400E; - func_8010B720(globalCtx, thisx->textId); + Message_ContinueTextbox(globalCtx, thisx->textId); } break; } return 1; - case 5: - switch (func_80106BC8(globalCtx)) { + case TEXT_STATE_EVENT: + switch (Message_ShouldAdvance(globalCtx)) { case 0: return 1; default: diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 73d48405fc..c2acbd05f5 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -1151,12 +1151,12 @@ void Fishing_UpdateEffects(FishingEffect* effect, GlobalContext* globalCtx) { } if (effect->unk_2C == 30) { - func_8010B680(globalCtx, 0x40B3, NULL); + Message_StartTextbox(globalCtx, 0x40B3, NULL); } - if ((effect->unk_2C >= 100) && (func_8010BDBC(&globalCtx->msgCtx) == 5)) { - if ((func_80106BC8(globalCtx) != 0) || (func_8010BDBC(&globalCtx->msgCtx) == 0)) { - func_80106CCC(globalCtx); + if ((effect->unk_2C >= 100) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT)) { + if (Message_ShouldAdvance(globalCtx) || (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { + Message_CloseTextbox(globalCtx); Rupees_ChangeBy(-50); effect->unk_2C = -1; } @@ -2206,7 +2206,7 @@ void Fishing_UpdateLure(Fishing* this, GlobalContext* globalCtx) { if (D_80B7E0B4 == 0) { if ((D_80B7E0B0 == 0) && (player->unk_860 == 1)) { D_80B7E0B4 = 37; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); } } else { sLureRot.x = sReelLineRot[LINE_SEG_COUNT - 2].x + M_PI; @@ -2851,7 +2851,7 @@ void Fishing_HandleAquariumDialog(Fishing* this, GlobalContext* globalCtx) { if (this->unk_1D4 == 0) { this->actor.flags |= 1; - if (func_8002F194(&this->actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { D_80B7A678 = D_80B7E078; this->unk_1D3 = 1; } else { @@ -2861,7 +2861,7 @@ void Fishing_HandleAquariumDialog(Fishing* this, GlobalContext* globalCtx) { this->unk_1D4--; this->actor.flags &= ~1; } - } else if (func_8002F334(&this->actor, globalCtx)) { + } else if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { this->unk_1D3 = 0; this->unk_1D4 = 20; } @@ -3095,7 +3095,7 @@ void Fishing_UpdateFish(Actor* thisx, GlobalContext* globalCtx2) { this->unk_17A[1] = 50; } - if (func_8010BDBC(&globalCtx->msgCtx) == 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { if ((gSaveContext.dayTime >= 0xC000) && (gSaveContext.dayTime <= 0xC01B)) { this->unk_158 = 7; this->unk_17A[3] = (s16)Rand_ZeroFloat(150.0f) + 200; @@ -3897,9 +3897,10 @@ void Fishing_UpdateFish(Actor* thisx, GlobalContext* globalCtx2) { if (this->unk_17A[0] <= 50) { switch (this->unk_1D5) { case 0: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) || (func_8010BDBC(&globalCtx->msgCtx) == 0)) { - if (func_80106BC8(globalCtx) != 0) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { + if (Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (globalCtx->msgCtx.choiceIndex == 0) { if (D_80B7A670 == 0.0f) { D_80B7A670 = this->unk_1AC; @@ -3910,7 +3911,7 @@ void Fishing_UpdateFish(Actor* thisx, GlobalContext* globalCtx2) { ((s16)this->unk_1AC < (s16)D_80B7A670)) { this->unk_1D5 = 1; this->unk_17A[0] = 0x3C; - func_8010B680(globalCtx, 0x4098, NULL); + Message_StartTextbox(globalCtx, 0x4098, NULL); } else { f32 temp1 = D_80B7A670; s16 temp2 = D_80B7E07C; @@ -3928,9 +3929,10 @@ void Fishing_UpdateFish(Actor* thisx, GlobalContext* globalCtx2) { } break; case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) || (func_8010BDBC(&globalCtx->msgCtx) == 0)) { - if (func_80106BC8(globalCtx) != 0) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { + if (Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); if (globalCtx->msgCtx.choiceIndex != 0) { f32 temp1 = D_80B7A670; s16 temp2 = D_80B7E07C; @@ -4736,7 +4738,7 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { this->actor.textId = 0x4097; } - if (func_8002F194(&this->actor, globalCtx) != 0) { + if (Actor_ProcessTalkRequest(&this->actor, globalCtx)) { if (D_80B7E0AC == 0) { this->unk_15C = 1; if (sLinkAge != 1) { @@ -4753,8 +4755,8 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 1: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: @@ -4765,15 +4767,15 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { } else { this->actor.textId = 0x407D; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); this->unk_15C = 2; } else { - func_8010B720(globalCtx, 0x407E); + Message_ContinueTextbox(globalCtx, 0x407E); this->unk_15C = 3; } break; case 1: - func_8010B720(globalCtx, 0x2D); + Message_ContinueTextbox(globalCtx, 0x2D); this->unk_15C = 3; break; } @@ -4781,43 +4783,43 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 2: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); - func_8010B720(globalCtx, 0x407F); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); + Message_ContinueTextbox(globalCtx, 0x407F); this->unk_15C = 4; } break; case 3: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->unk_15C = 0; } - if (func_8010BDBC(&globalCtx->msgCtx) == 6) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) { this->unk_15C = 0; } break; case 4: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: D_80B7A678 = D_80B7E078; - func_8010B720(globalCtx, 0x4080); + Message_ContinueTextbox(globalCtx, 0x4080); this->unk_15C = 5; break; case 1: - func_8010B720(globalCtx, 0x407F); + Message_ContinueTextbox(globalCtx, 0x407F); break; } } break; case 5: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); globalCtx->interfaceCtx.unk_260 = 1; globalCtx->startPlayerFishing(globalCtx); @@ -4833,12 +4835,12 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { case 10: if (D_80B7A68C != 0) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: - func_8010B720(globalCtx, 0x40B2); + Message_ContinueTextbox(globalCtx, 0x40B2); D_80B7A688 = 1; D_80B7A68C = 0; this->unk_15C = 20; @@ -4849,8 +4851,8 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { } } } else { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: @@ -4874,12 +4876,12 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { this->actor.textId = 0x409B; this->unk_15C = 11; } - func_8010B720(globalCtx, this->actor.textId); + Message_ContinueTextbox(globalCtx, this->actor.textId); break; case 1: if (D_80B7A680 > 36000) { D_80B7A680 = 30000; - func_8010B720(globalCtx, 0x4088); + Message_ContinueTextbox(globalCtx, 0x4088); } else { if (D_80B7E076 == 0) { if (D_80B7E082 == 0) { @@ -4888,9 +4890,9 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { } if ((D_80B7E0B6 == 2) && (D_80B7AFB8[D_80B7E082] == 0x408D)) { - func_8010B720(globalCtx, 0x40AF); + Message_ContinueTextbox(globalCtx, 0x40AF); } else { - func_8010B720(globalCtx, D_80B7AFB8[D_80B7E082]); + Message_ContinueTextbox(globalCtx, D_80B7AFB8[D_80B7E082]); } D_80B7E082++; @@ -4909,9 +4911,9 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 2: if (D_80B7E084 == 0) { - func_8010B720(globalCtx, 0x4085); + Message_ContinueTextbox(globalCtx, 0x4085); } else if (sLinkAge == 1) { - func_8010B720(globalCtx, 0x4092); + Message_ContinueTextbox(globalCtx, 0x4092); } this->unk_15C = 22; break; @@ -4921,11 +4923,12 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 11: - if (((func_8010BDBC(&globalCtx->msgCtx) == 5) || (func_8010BDBC(&globalCtx->msgCtx) == 0)) && - (func_80106BC8(globalCtx) != 0)) { + if (((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) && + Message_ShouldAdvance(globalCtx)) { s32 getItemId; - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); if (D_80B7E07C == 0) { D_80B7E078 = D_80B7A670; @@ -4998,15 +5001,15 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 20: - if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); this->unk_15C = 0; } break; case 21: - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { - func_80106CCC(globalCtx); + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(globalCtx)) { + Message_CloseTextbox(globalCtx); switch (globalCtx->msgCtx.choiceIndex) { case 0: @@ -5014,9 +5017,9 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { break; case 1: if (D_80B7E084 == 0) { - func_8010B720(globalCtx, 0x4085); + Message_ContinueTextbox(globalCtx, 0x4085); } else if (sLinkAge == 1) { - func_8010B720(globalCtx, 0x4092); + Message_ContinueTextbox(globalCtx, 0x4092); } this->unk_15C = 22; break; @@ -5027,7 +5030,7 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { case 22: if (globalCtx) {} - if (func_8010BDBC(&globalCtx->msgCtx) == 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { this->unk_15C = 0; if (D_80B7A68C != 0) { D_80B7A688 = 1; @@ -5049,11 +5052,11 @@ void Fishing_HandleOwnerDialog(Fishing* this, GlobalContext* globalCtx) { case 24: D_80B7A674 = false; - if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { if (D_80B7E07C == 0) { this->unk_15C = 0; } else { - func_8010B680(globalCtx, 0x409C, NULL); + Message_StartTextbox(globalCtx, 0x409C, NULL); this->unk_15C = 20; } } @@ -5108,13 +5111,13 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { SkelAnime_Update(&this->skelAnime); - if ((D_80B7A684 != 0) || (func_8010BDBC(&globalCtx->msgCtx) != 0)) { + if ((D_80B7A684 != 0) || (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE)) { this->actor.flags &= ~1; } else { this->actor.flags |= 0x21; } - if ((this->actor.xzDistToPlayer < 120.0f) || (func_8010BDBC(&globalCtx->msgCtx) != 0)) { + if ((this->actor.xzDistToPlayer < 120.0f) || (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE)) { headRotTarget = this->actor.shape.rot.y - this->actor.yawTowardsPlayer; } else { headRotTarget = 0; @@ -5151,7 +5154,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { KREG(77) = 0; D_80B7A688 = 0; D_80B7A68C = 1; - func_8010B680(globalCtx, 0x4087, NULL); + Message_StartTextbox(globalCtx, 0x4087, NULL); } } @@ -5169,7 +5172,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { if (D_80B7A67C != 0) { D_80B7A67C--; if (D_80B7A67C == 0) { - func_8010B680(globalCtx, D_80B7E086, NULL); + Message_StartTextbox(globalCtx, D_80B7E086, NULL); } } @@ -5369,7 +5372,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { sCameraAt.x = camera->at.x; sCameraAt.y = camera->at.y; sCameraAt.z = camera->at.z; - func_8010B680(globalCtx, 0x409E, NULL); + Message_StartTextbox(globalCtx, 0x409E, NULL); D_80B7A6CC = 11; func_800A9F6C(0.0f, 150, 10, 10); // fallthrough @@ -5379,7 +5382,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { player->actor.world.pos.z = 1360.0f; player->actor.speedXZ = 0.0f; - if (func_8010BDBC(&globalCtx->msgCtx) == 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { Camera* camera = Gameplay_GetCamera(globalCtx, MAIN_CAM); camera->eye = sCameraEye; @@ -5411,7 +5414,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { sCameraAt.x = camera->at.x; sCameraAt.y = camera->at.y; sCameraAt.z = camera->at.z; - func_8010B680(globalCtx, 0x409A, NULL); + Message_StartTextbox(globalCtx, 0x409A, NULL); D_80B7A6CC = 21; D_80B7FEC8 = 45.0f; D_80B7A6D0 = 10; @@ -5419,7 +5422,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { } case 21: - if ((D_80B7A6D0 == 0) && (func_80106BC8(globalCtx) != 0)) { + if ((D_80B7A6D0 == 0) && Message_ShouldAdvance(globalCtx)) { D_80B7A6CC = 22; D_80B7A6D0 = 40; func_8002DF54(globalCtx, &this->actor, 0x1C); @@ -5475,11 +5478,12 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { } if (D_80B7A6D0 == 0) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 4) || (func_8010BDBC(&globalCtx->msgCtx) == 0)) { - if (func_80106BC8(globalCtx) != 0) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CHOICE) || + (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE)) { + if (Message_ShouldAdvance(globalCtx)) { Camera* camera = Gameplay_GetCamera(globalCtx, MAIN_CAM); - func_80106CCC(globalCtx); + Message_CloseTextbox(globalCtx); if (globalCtx->msgCtx.choiceIndex == 0) { D_80B7E0B6 = 2; D_80B7E082 = 0; @@ -5591,7 +5595,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { D_80B7E077--; } - if ((D_80B7E077 == 1) && (func_8010BDBC(&globalCtx->msgCtx) == 0) && ((D_80B7A680 & 0xFFF) == 0xFFF)) { + if ((D_80B7E077 == 1) && (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) && + ((D_80B7A680 & 0xFFF) == 0xFFF)) { D_80B7E077 = 200; if (Rand_ZeroOne() < 0.5f) { @@ -5673,7 +5678,7 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) { if (BREG(26) != 0) { BREG(26) = 0; - func_8010B680(globalCtx, 0x407B + BREG(27), NULL); + Message_StartTextbox(globalCtx, 0x407B + BREG(27), NULL); } osSyncPrintf("HI_SCORE = %x\n", HIGH_SCORE(HS_FISHING)); diff --git a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c index 6c753324a9..e815da2ab6 100644 --- a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c +++ b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c @@ -169,7 +169,7 @@ void ItemOcarina_DoNothing(ItemOcarina* this, GlobalContext* globalCtx) { } void ItemOcarina_StartSoTCutscene(ItemOcarina* this, GlobalContext* globalCtx) { - if (func_8002F334(&this->actor, globalCtx)) { + if (Actor_TextboxIsClosing(&this->actor, globalCtx)) { globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gHyruleFieldZeldaSongOfTimeCs); gSaveContext.cutsceneTrigger = 1; } diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index 0d4ad9d701..ee24801f68 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -80,7 +80,7 @@ void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx) { if (1) {} - if ((msgMode == 0xD) || (msgMode == 0x11)) { + if ((msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) || (msgMode == MSGMODE_SONG_PLAYED)) { Actor_Kill(thisx); return; } diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index 651deb673a..74194c3183 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -101,7 +101,8 @@ void MagicFire_UpdateBeforeCast(Actor* thisx, GlobalContext* globalCtx) { MagicFire* this = THIS; Player* player = GET_PLAYER(globalCtx); - if ((globalCtx->msgCtx.msgMode == 0xD) || (globalCtx->msgCtx.msgMode == 0x11)) { + if ((globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) || + (globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED)) { Actor_Kill(&this->actor); return; } @@ -121,7 +122,8 @@ void MagicFire_Update(Actor* thisx, GlobalContext* globalCtx) { if (1) {} this->actor.world.pos = player->actor.world.pos; - if ((globalCtx->msgCtx.msgMode == 0xD) || (globalCtx->msgCtx.msgMode == 0x11)) { + if ((globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) || + (globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED)) { Actor_Kill(&this->actor); return; } @@ -235,8 +237,8 @@ void MagicFire_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPPipeSync(POLY_XLU_DISP++); gSPTexture(POLY_XLU_DISP++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gDPSetTextureLUT(POLY_XLU_DISP++, G_TT_NONE); - gDPLoadTextureBlock(POLY_XLU_DISP++, sTex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 6, 6, 15, G_TX_NOLOD); + gDPLoadTextureBlock(POLY_XLU_DISP++, sTex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 6, 6, 15, G_TX_NOLOD); gDPSetTile(POLY_XLU_DISP++, G_IM_FMT_I, G_IM_SIZ_8b, 8, 0, 1, 0, G_TX_NOMIRROR | G_TX_WRAP, 6, 14, G_TX_NOMIRROR | G_TX_WRAP, 6, 14); gDPSetTileSize(POLY_XLU_DISP++, 1, 0, 0, 252, 252); diff --git a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c index b94d731888..f0bf33f170 100644 --- a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c +++ b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c @@ -133,7 +133,8 @@ void MagicWind_Shrink(MagicWind* this, GlobalContext* globalCtx) { void MagicWind_Update(Actor* thisx, GlobalContext* globalCtx) { MagicWind* this = THIS; - if (globalCtx->msgCtx.msgMode == 0xD || globalCtx->msgCtx.msgMode == 0x11) { + if (globalCtx->msgCtx.msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK || + globalCtx->msgCtx.msgMode == MSGMODE_SONG_PLAYED) { Actor_Kill(thisx); return; } diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index d0e44272c3..ff6d0817f7 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -540,7 +540,7 @@ void ObjBean_SetupWaitForBean(ObjBean* this) { } void ObjBean_WaitForBean(ObjBean* this, GlobalContext* globalCtx) { - if (func_8002F194(&this->dyna.actor, globalCtx)) { + if (Actor_ProcessTalkRequest(&this->dyna.actor, globalCtx)) { if (func_8002F368(globalCtx) == EXCH_ITEM_BEAN) { func_80B8FE00(this); Flags_SetSwitch(globalCtx, this->dyna.actor.params & 0x3F); diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index 39756c0b9d..5de3e77a9e 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -171,7 +171,7 @@ s32 ObjTimeblock_WaitForOcarina(ObjTimeblock* this, GlobalContext* globalCtx) { if (ObjTimeblock_PlayerIsInRange(this, globalCtx)) { if (player->stateFlags2 & 0x1000000) { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); this->songObserverFunc = ObjTimeblock_WaitForSong; } else { player->stateFlags2 |= 0x800000; @@ -181,10 +181,10 @@ s32 ObjTimeblock_WaitForOcarina(ObjTimeblock* this, GlobalContext* globalCtx) { } s32 ObjTimeblock_WaitForSong(ObjTimeblock* this, GlobalContext* globalCtx) { - if (globalCtx->msgCtx.unk_E3EE == 4) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { this->songObserverFunc = ObjTimeblock_WaitForOcarina; } - if (globalCtx->msgCtx.unk_E3EC == 10) { + if (globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_TIME) { if (this->unk_172 == 254) { this->songEndTimer = 110; } else { @@ -229,7 +229,7 @@ void ObjTimeblock_Normal(ObjTimeblock* this, GlobalContext* globalCtx) { } } - this->unk_172 = globalCtx->msgCtx.unk_E3EC; + this->unk_172 = globalCtx->msgCtx.lastPlayedSong; if (this->demoEffectFirstPartTimer > 0) { this->demoEffectFirstPartTimer--; if (this->demoEffectFirstPartTimer == 0) { @@ -254,7 +254,7 @@ void ObjTimeblock_Normal(ObjTimeblock* this, GlobalContext* globalCtx) { void func_80BA06AC(ObjTimeblock* this, GlobalContext* globalCtx) { s32 switchFlag = this->dyna.actor.params & 0x3F; - this->unk_172 = globalCtx->msgCtx.unk_E3EC; + this->unk_172 = globalCtx->msgCtx.lastPlayedSong; if (this->demoEffectFirstPartTimer > 0 && --this->demoEffectFirstPartTimer == 0) { this->unk_174 = (Flags_GetSwitch(globalCtx, switchFlag)) ? true : false; diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index de1a1b12dc..64830c0a42 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -161,7 +161,7 @@ s32 func_80BA2218(ObjWarp2block* this, GlobalContext* globalCtx) { if (func_80BA1ECC(this, globalCtx)) { if (player->stateFlags2 & 0x1000000) { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); this->func_168 = func_80BA228C; } else { player->stateFlags2 |= 0x800000; @@ -172,11 +172,11 @@ s32 func_80BA2218(ObjWarp2block* this, GlobalContext* globalCtx) { } s32 func_80BA228C(ObjWarp2block* this, GlobalContext* globalCtx) { - if (globalCtx->msgCtx.unk_E3EE == 4) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { this->func_168 = func_80BA2218; } - if (globalCtx->msgCtx.unk_E3EC == 0xA) { + if (globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_TIME) { if (this->unk_172 == 0xFE) { this->unk_16E = 0x6E; } else { @@ -191,7 +191,7 @@ s32 func_80BA228C(ObjWarp2block* this, GlobalContext* globalCtx) { s32 func_80BA2304(ObjWarp2block* this, GlobalContext* globalCtx) { s32 ret = this->func_168(this, globalCtx); - this->unk_172 = globalCtx->msgCtx.unk_E3EC; + this->unk_172 = globalCtx->msgCtx.lastPlayedSong; return ret; } diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index c750e95d41..985d535528 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -83,7 +83,8 @@ void OceffSpot_End(OceffSpot* this, GlobalContext* globalCtx) { } else { Actor_Kill(&this->actor); if (gTimeIncrement != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) { - if (globalCtx->msgCtx.unk_E3F0 != 0x31 || globalCtx->msgCtx.unk_E3EE != 8) { + if (globalCtx->msgCtx.ocarinaAction != OCARINA_ACTION_CHECK_NOWARP_DONE || + globalCtx->msgCtx.ocarinaMode != OCARINA_MODE_08) { gSaveContext.sunsSongState = SUNSSONG_START; osSyncPrintf(VT_FGCOL(YELLOW)); // "Sun's Song Flag" @@ -91,7 +92,7 @@ void OceffSpot_End(OceffSpot* this, GlobalContext* globalCtx) { osSyncPrintf(VT_RST); } } else { - globalCtx->msgCtx.unk_E3EE = 4; + globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04; osSyncPrintf(VT_FGCOL(YELLOW)); // "Ocarina End" osSyncPrintf("z_oceff_spot オカリナ終了\n"); diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index 6b67d4eabf..512167442b 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -137,11 +137,11 @@ void func_80BADF0C(ShotSun* this, GlobalContext* globalCtx) { } } if (this->unk_1A4 == 1) { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); this->unk_1A4 = 2; - } else if (this->unk_1A4 == 2 && globalCtx->msgCtx.unk_E3EE == 4) { - if ((params == 0x40 && globalCtx->msgCtx.unk_E3EC == 9) || - (params == 0x41 && globalCtx->msgCtx.unk_E3EC == 0xB)) { + } else if (this->unk_1A4 == 2 && globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { + if ((params == 0x40 && globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_SUNS) || + (params == 0x41 && globalCtx->msgCtx.lastPlayedSong == OCARINA_SONG_STORMS)) { this->actionFunc = ShotSun_TriggerFairy; OnePointCutscene_Attention(globalCtx, &this->actor); this->timer = 0; diff --git a/src/overlays/actors/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/actors/ovl_kaleido_scope/z_kaleido_collect.c index 89956fb1ca..c3954bb454 100644 --- a/src/overlays/actors/ovl_kaleido_scope/z_kaleido_collect.c +++ b/src/overlays/actors/ovl_kaleido_scope/z_kaleido_collect.c @@ -174,10 +174,10 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); if ((pauseCtx->state == 6) && (pauseCtx->unk_1E4 == 0) && (pauseCtx->cursorSpecialPos == 0)) { - if ((sp216 >= 6) && (sp216 < 0x12)) { + if ((sp216 >= QUEST_SONG_MINUET) && (sp216 < QUEST_KOKIRI_EMERALD)) { if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { sp216 = pauseCtx->cursorSlot[PAUSE_QUEST]; - pauseCtx->unk_264 = D_80153960[sp216]; + pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[sp216 - QUEST_SONG_MINUET]; D_8082A120 = 10; for (phi_s3 = 0; phi_s3 < 8; phi_s3++) { @@ -186,27 +186,28 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx } D_8082A11C = 0; - func_800ED858(1); - func_800ECC04((1 << pauseCtx->unk_264) + 0x8000); - pauseCtx->unk_194 = Audio_OcaGetDisplayStaff(); - pauseCtx->unk_194->pos = 0; - pauseCtx->unk_194->state = 0xFF; + Audio_OcaSetInstrument(1); + func_800ECC04((1 << pauseCtx->ocarinaSongIdx) + 0x8000); + pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + pauseCtx->ocarinaStaff->pos = 0; + pauseCtx->ocarinaStaff->state = 0xFF; VREG(21) = -62; VREG(22) = -56; VREG(23) = -49; VREG(24) = -46; VREG(25) = -41; pauseCtx->unk_1E4 = 8; - func_800ED858(0); + Audio_OcaSetInstrument(0); } } } else if (pauseCtx->unk_1E4 == 5) { if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) { pauseCtx->unk_1E4 = 0; - func_800ED858(0); + Audio_OcaSetInstrument(0); } } else if (pauseCtx->unk_1E4 == 8) { - if (CHECK_BTN_ALL(input->press.button, BTN_A) && (sp216 >= 6) && (sp216 < 0x12)) { + if (CHECK_BTN_ALL(input->press.button, BTN_A) && (sp216 >= QUEST_SONG_MINUET) && + (sp216 < QUEST_KOKIRI_EMERALD)) { pauseCtx->unk_1E4 = 9; D_8082A120 = 10; } @@ -270,13 +271,13 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx VREG(24) = -46; VREG(25) = -41; sp216 = pauseCtx->cursorSlot[PAUSE_QUEST]; - func_800ED858(1); - func_800ED858(1); - pauseCtx->unk_264 = D_80153960[sp216]; - func_800ED93C(pauseCtx->unk_264 + 1, 1); + Audio_OcaSetInstrument(1); + Audio_OcaSetInstrument(1); + pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[sp216 - QUEST_SONG_MINUET]; + Audio_OcaSetSongPlayback(pauseCtx->ocarinaSongIdx + 1, 1); pauseCtx->unk_1E4 = 2; - pauseCtx->unk_194 = Audio_OcaGetDisplayStaff(); - pauseCtx->unk_194->pos = 0; + pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + pauseCtx->ocarinaStaff->pos = 0; sp216 = pauseCtx->cursorSlot[PAUSE_QUEST]; KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); } @@ -347,9 +348,9 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx gDPLoadTextureBlock(POLY_OPA_DISP++, gSongNoteTex, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 24, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - for (sp218 = 0; sp218 < 12; sp218++, sp21A += 4) { - if (CHECK_QUEST_ITEM(sp218 + 6)) { - if ((sp218 + 6) == sp216) { + for (sp218 = 0; sp218 < QUEST_KOKIRI_EMERALD - QUEST_SONG_MINUET; sp218++, sp21A += 4) { + if (CHECK_QUEST_ITEM(sp218 + QUEST_SONG_MINUET)) { + if ((sp218 + QUEST_SONG_MINUET) == sp216) { pauseCtx->questVtx[sp21A + 0].v.ob[0] = pauseCtx->questVtx[sp21A + 2].v.ob[0] = pauseCtx->questVtx[sp21A + 0].v.ob[0] - 2; @@ -465,12 +466,12 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx } if (pauseCtx->unk_1E4 == 2) { - pauseCtx->unk_194 = Audio_OcaGetDisplayStaff(); + pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - if (pauseCtx->unk_194->pos != 0) { - if (D_8082A11C + 1 == pauseCtx->unk_194->pos) { + if (pauseCtx->ocarinaStaff->pos != 0) { + if (D_8082A11C + 1 == pauseCtx->ocarinaStaff->pos) { D_8082A11C++; - D_8082A124[pauseCtx->unk_194->pos - 1] = pauseCtx->unk_194->noteIdx; + D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->noteIdx; } for (sp218 = 0, phi_s3 = 0; sp218 < 8; sp218++, phi_s3 += 4, sp21A += 4) { @@ -510,8 +511,7 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx } } } else if (((pauseCtx->unk_1E4 >= 4) && (pauseCtx->unk_1E4 <= 6)) || (pauseCtx->unk_1E4 == 8)) { - - sp224 = pauseCtx->unk_264; + sp224 = pauseCtx->ocarinaSongIdx; sp226 = gOcarinaSongNotes[sp224].len; for (sp218 = sp21A, phi_s3 = 0; phi_s3 < sp226; phi_s3++, sp21A += 4) { @@ -545,13 +545,14 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx } if (pauseCtx->unk_1E4 != 8) { - pauseCtx->unk_194 = func_800EE3D4(); + pauseCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - if (pauseCtx->unk_194->pos != 0) { - if (D_8082A11C == (pauseCtx->unk_194->pos - 1)) { - if ((pauseCtx->unk_194->noteIdx >= 0) && (pauseCtx->unk_194->noteIdx < 5)) { - D_8082A124[pauseCtx->unk_194->pos - 1] = pauseCtx->unk_194->noteIdx; - D_8082A124[pauseCtx->unk_194->pos] = 0xFF; + if (pauseCtx->ocarinaStaff->pos != 0) { + if (D_8082A11C == (pauseCtx->ocarinaStaff->pos - 1)) { + if ((pauseCtx->ocarinaStaff->noteIdx >= OCARINA_NOTE_A) && + (pauseCtx->ocarinaStaff->noteIdx <= OCARINA_NOTE_C_UP)) { + D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->noteIdx; + D_8082A124[pauseCtx->ocarinaStaff->pos] = 0xFF; D_8082A11C++; } } @@ -602,11 +603,11 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx } D_8082A11C = 0; - func_800ED858(1); - func_800ECC04((1 << pauseCtx->unk_264) + 0x8000); - pauseCtx->unk_194 = Audio_OcaGetDisplayStaff(); - pauseCtx->unk_194->pos = 0; - pauseCtx->unk_194->state = 0xFE; + Audio_OcaSetInstrument(1); + func_800ECC04((1 << pauseCtx->ocarinaSongIdx) + 0x8000); + pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + pauseCtx->ocarinaStaff->pos = 0; + pauseCtx->ocarinaStaff->state = 0xFE; pauseCtx->unk_1E4 = 5; } } diff --git a/src/overlays/actors/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/src/overlays/actors/ovl_kaleido_scope/z_kaleido_scope_PAL.c index e386d20153..8b7f529a79 100644 --- a/src/overlays/actors/ovl_kaleido_scope/z_kaleido_scope_PAL.c +++ b/src/overlays/actors/ovl_kaleido_scope/z_kaleido_scope_PAL.c @@ -1271,7 +1271,7 @@ void KaleidoScope_DrawInfoPanel(GlobalContext* globalCtx) { pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language); - if (gSaveContext.language == 1) { + if (gSaveContext.language == LANGUAGE_GER) { pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] - 99; } @@ -1341,7 +1341,7 @@ void KaleidoScope_UpdateNamePanel(GlobalContext* globalCtx) { if (gSaveContext.language) { sp2A += 12; } - if (gSaveContext.language == 2) { + if (gSaveContext.language == LANGUAGE_FRA) { sp2A += 12; } @@ -1353,7 +1353,7 @@ void KaleidoScope_UpdateNamePanel(GlobalContext* globalCtx) { if (gSaveContext.language) { sp2A += 123; } - if (gSaveContext.language == 2) { + if (gSaveContext.language == LANGUAGE_FRA) { sp2A += 123; } @@ -2337,7 +2337,7 @@ void func_808265BC(GlobalContext* globalCtx) { pauseCtx->unk_1E4 = 0; pauseCtx->state++; pauseCtx->alpha = 255; - Interface_LoadActionLabelB(globalCtx, 0xE); + Interface_LoadActionLabelB(globalCtx, DO_ACTION_SAVE); } else if (pauseCtx->unk_1EA == 64) { pauseCtx->pageIndex = D_8082ABEC[pauseCtx->mode]; pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; @@ -2587,12 +2587,12 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { pauseCtx->iconItemLangSegment = (void*)(((u32)pauseCtx->iconItemAltSegment + size2 + 0xF) & ~0xF); - if (gSaveContext.language == 0) { + if (gSaveContext.language == LANGUAGE_ENG) { size = (u32)_icon_item_nes_staticSegmentRomEnd - (u32)_icon_item_nes_staticSegmentRomStart; osSyncPrintf("icon_item_dungeon dungeon-size=%x\n", size); DmaMgr_SendRequest1(pauseCtx->iconItemLangSegment, _icon_item_nes_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", 3739); - } else if (gSaveContext.language == 1) { + } else if (gSaveContext.language == LANGUAGE_GER) { size = (u32)_icon_item_ger_staticSegmentRomEnd - (u32)_icon_item_ger_staticSegmentRomStart; osSyncPrintf("icon_item_dungeon dungeon-size=%x\n", size); DmaMgr_SendRequest1(pauseCtx->iconItemLangSegment, (u32)_icon_item_ger_staticSegmentRomStart, size, @@ -2608,16 +2608,16 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { osSyncPrintf("サイズ=%x\n", size2 + size1 + size0 + size); osSyncPrintf("item_name I_N_PT=%x\n", 0x800); - Interface_SetDoAction(globalCtx, 6); + Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE); osSyncPrintf("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); if (((void)0, gSaveContext.worldMapArea) < 22) { - if (gSaveContext.language == 0) { + if (gSaveContext.language == LANGUAGE_ENG) { DmaMgr_SendRequest1(pauseCtx->nameSegment + 0x400, (u32)_map_name_staticSegmentRomStart + (((void)0, gSaveContext.worldMapArea) * 0xA00) + 0x9000, 0xA00, "../z_kaleido_scope_PAL.c", 3776); - } else if (gSaveContext.language == 1) { + } else if (gSaveContext.language == LANGUAGE_GER) { DmaMgr_SendRequest1(pauseCtx->nameSegment + 0x400, (u32)_map_name_staticSegmentRomStart + (((void)0, gSaveContext.worldMapArea) * 0xA00) + 0x16C00, @@ -2897,7 +2897,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { switch (pauseCtx->unk_1E4) { case 0: if (CHECK_BTN_ALL(input->press.button, BTN_START)) { - Interface_SetDoAction(globalCtx, 10); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); pauseCtx->state = 0x12; WREG(2) = -6240; func_800F64E0(0); @@ -2920,10 +2920,10 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { break; case 2: - pauseCtx->unk_194 = Audio_OcaGetDisplayStaff(); - if (pauseCtx->unk_194->state == 0) { + pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); + if (pauseCtx->ocarinaStaff->state == 0) { pauseCtx->unk_1E4 = 4; - func_800ED858(0); + Audio_OcaSetInstrument(0); } break; @@ -2935,18 +2935,18 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { break; case 5: - pauseCtx->unk_194 = func_800EE3D4(); + pauseCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); if (CHECK_BTN_ALL(input->press.button, BTN_START)) { - func_800ED858(0); - Interface_SetDoAction(globalCtx, 10); + Audio_OcaSetInstrument(0); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); pauseCtx->state = 0x12; WREG(2) = -6240; func_800F64E0(0); pauseCtx->unk_1E4 = 0; break; } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { - func_800ED858(0); + Audio_OcaSetInstrument(0); pauseCtx->unk_1E4 = 0; pauseCtx->mode = 0; pauseCtx->promptChoice = 0; @@ -2958,13 +2958,13 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { Interface_ChangeAlpha(50); pauseCtx->unk_1EC = 0; pauseCtx->state = 7; - } else if (pauseCtx->unk_194->state == pauseCtx->unk_264) { + } else if (pauseCtx->ocarinaStaff->state == pauseCtx->ocarinaSongIdx) { Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); D_8082B258 = 0; D_8082B25C = 30; pauseCtx->unk_1E4 = 6; - } else if (pauseCtx->unk_194->state == 0xFF) { + } else if (pauseCtx->ocarinaStaff->state == 0xFF) { Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); D_8082B258 = 4; @@ -2978,7 +2978,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { if (D_8082B25C == 0) { pauseCtx->unk_1E4 = D_8082B258; if (pauseCtx->unk_1E4 == 0) { - func_800ED858(0); + Audio_OcaSetInstrument(0); } } break; @@ -2988,14 +2988,14 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { case 8: if (CHECK_BTN_ALL(input->press.button, BTN_START)) { - func_800ED858(0); - Interface_SetDoAction(globalCtx, 10); + Audio_OcaSetInstrument(0); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); pauseCtx->state = 0x12; WREG(2) = -6240; func_800F64E0(0); pauseCtx->unk_1E4 = 0; } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { - func_800ED858(0); + Audio_OcaSetInstrument(0); pauseCtx->unk_1E4 = 0; pauseCtx->mode = 0; pauseCtx->promptChoice = 0; @@ -3034,7 +3034,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { case 1: if (CHECK_BTN_ALL(input->press.button, BTN_A)) { if (pauseCtx->promptChoice != 0) { - Interface_SetDoAction(globalCtx, 10); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] = gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.unk_13EA = 0; @@ -3054,7 +3054,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { } } else if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_B)) { - Interface_SetDoAction(globalCtx, 10); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); pauseCtx->unk_1EC = 2; WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; @@ -3069,7 +3069,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { case 4: if (CHECK_BTN_ALL(input->press.button, BTN_B) || CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_START) || (--D_8082B25C == 0)) { - Interface_SetDoAction(globalCtx, 10); + Interface_SetDoAction(globalCtx, DO_ACTION_NONE); gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] = gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.unk_13EA = 0; @@ -3148,12 +3148,12 @@ void KaleidoScope_Update(GlobalContext* globalCtx) { pauseCtx->iconItemLangSegment = (void*)(((u32)pauseCtx->iconItemAltSegment + size2 + 0xF) & ~0xF); - if (gSaveContext.language == 0) { + if (gSaveContext.language == LANGUAGE_ENG) { size = (u32)_icon_item_nes_staticSegmentRomEnd - (u32)_icon_item_nes_staticSegmentRomStart; osSyncPrintf("icon_item_dungeon dungeon-size=%x\n", size); DmaMgr_SendRequest1(pauseCtx->iconItemLangSegment, (u32)_icon_item_nes_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", 4379); - } else if (gSaveContext.language == 1) { + } else if (gSaveContext.language == LANGUAGE_GER) { size = (u32)_icon_item_ger_staticSegmentRomEnd - (u32)_icon_item_ger_staticSegmentRomStart; osSyncPrintf("icon_item_dungeon dungeon-size=%x\n", size); DmaMgr_SendRequest1(pauseCtx->iconItemLangSegment, (u32)_icon_item_ger_staticSegmentRomStart, size, diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index fb65f194a4..a26570d52f 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2615,7 +2615,7 @@ s32 func_80835C58(GlobalContext* globalCtx, Player* this, PlayerFunc674 func, s3 } if (func_8084E3C4 == this->func_674) { - func_800ED858(0); + Audio_OcaSetInstrument(0); this->stateFlags2 &= ~0x3000000; } else if (func_808507F4 == this->func_674) { func_80832340(globalCtx, this); @@ -2823,7 +2823,7 @@ void func_80836448(GlobalContext* globalCtx, Player* this, LinkAnimationHeader* } else { globalCtx->gameOverCtx.state = GAMEOVER_DEATH_START; func_800F6AB0(0); - func_800F5C64(NA_BGM_GAME_OVER); + Audio_PlayFanfare(NA_BGM_GAME_OVER); gSaveContext.seqIndex = (u8)NA_BGM_DISABLED; gSaveContext.nightSeqIndex = 0xFF; } @@ -3573,7 +3573,7 @@ void func_8083819C(Player* this, GlobalContext* globalCtx) { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_SHIELD, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 1); Inventory_DeleteEquipment(globalCtx, EQUIP_SHIELD); - func_8010B680(globalCtx, 0x305F, NULL); + Message_StartTextbox(globalCtx, 0x305F, NULL); } } @@ -4379,7 +4379,7 @@ void func_8083A2F8(GlobalContext* globalCtx, Player* this) { this->stateFlags1 |= 0x20000040; if (this->actor.textId != 0) { - func_8010B680(globalCtx, this->actor.textId, this->targetActor); + Message_StartTextbox(globalCtx, this->actor.textId, this->targetActor); this->unk_664 = this->targetActor; } } @@ -9220,80 +9220,81 @@ void func_80847298(Player* this) { static f32 D_80854784[] = { 120.0f, 240.0f, 360.0f }; -static u8 D_80854790[] = { 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C }; +static u8 sDiveDoActions[] = { DO_ACTION_1, DO_ACTION_2, DO_ACTION_3, DO_ACTION_4, + DO_ACTION_5, DO_ACTION_6, DO_ACTION_7, DO_ACTION_8 }; void func_808473D4(GlobalContext* globalCtx, Player* this) { - if ((func_8010BDBC(&globalCtx->msgCtx) == 0) && (this->actor.category == ACTORCAT_PLAYER)) { + if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) && (this->actor.category == ACTORCAT_PLAYER)) { Actor* heldActor = this->heldActor; Actor* interactRangeActor = this->interactRangeActor; s32 sp24; s32 sp20 = this->unk_84B[this->unk_846]; s32 sp1C = func_808332B8(this); - s32 doAction = 0xA; + s32 doAction = DO_ACTION_NONE; if (!Player_InBlockingCsMode(globalCtx, this)) { if (this->stateFlags1 & 0x100000) { - doAction = 3; + doAction = DO_ACTION_RETURN; } else if ((this->heldItemActionParam == PLAYER_AP_FISHING_POLE) && (this->unk_860 != 0)) { if (this->unk_860 == 2) { - doAction = 0x14; + doAction = DO_ACTION_REEL; } } else if ((func_8084E3C4 != this->func_674) && !(this->stateFlags2 & 0x40000)) { if ((this->doorType != PLAYER_DOORTYPE_NONE) && (!(this->stateFlags1 & 0x800) || ((heldActor != NULL) && (heldActor->id == ACTOR_EN_RU1)))) { - doAction = 4; + doAction = DO_ACTION_OPEN; } else if ((!(this->stateFlags1 & 0x800) || (heldActor == NULL)) && (interactRangeActor != NULL) && ((!sp1C && (this->getItemId == GI_NONE)) || ((this->getItemId < 0) && !(this->stateFlags1 & 0x8000000)))) { if (this->getItemId < 0) { - doAction = 4; + doAction = DO_ACTION_OPEN; } else if ((interactRangeActor->id == ACTOR_BG_TOKI_SWD) && LINK_IS_ADULT) { - doAction = 0xC; + doAction = DO_ACTION_DROP; } else { - doAction = 0x11; + doAction = DO_ACTION_GRAB; } } else if (!sp1C && (this->stateFlags2 & 1)) { - doAction = 0x11; + doAction = DO_ACTION_GRAB; } else if ((this->stateFlags2 & 4) || (!(this->stateFlags1 & 0x800000) && (this->rideActor != NULL))) { - doAction = 0xB; + doAction = DO_ACTION_CLIMB; } else if ((this->stateFlags1 & 0x800000) && !EN_HORSE_CHECK_4((EnHorse*)this->rideActor) && (func_8084D3E4 != this->func_674)) { if ((this->stateFlags2 & 2) && (this->targetActor != NULL)) { if (this->targetActor->category == ACTORCAT_NPC) { - doAction = 0xF; + doAction = DO_ACTION_SPEAK; } else { - doAction = 1; + doAction = DO_ACTION_CHECK; } } else if (!func_8002DD78(this) && !(this->stateFlags1 & 0x100000)) { - doAction = 8; + doAction = DO_ACTION_FASTER; } } else if ((this->stateFlags2 & 2) && (this->targetActor != NULL)) { if (this->targetActor->category == ACTORCAT_NPC) { - doAction = 0xF; + doAction = DO_ACTION_SPEAK; } else { - doAction = 1; + doAction = DO_ACTION_CHECK; } } else if ((this->stateFlags1 & 0x202000) || ((this->stateFlags1 & 0x800000) && (this->stateFlags2 & 0x400000))) { - doAction = 0xD; + doAction = DO_ACTION_DOWN; } else if (this->stateFlags2 & 0x10000) { - doAction = 2; + doAction = DO_ACTION_ENTER; } else if ((this->stateFlags1 & 0x800) && (this->getItemId == GI_NONE) && (heldActor != NULL)) { if ((this->actor.bgCheckFlags & 1) || (heldActor->id == ACTOR_EN_NIW)) { if (func_8083EAF0(this, heldActor) == 0) { - doAction = 0xC; + doAction = DO_ACTION_DROP; } else { - doAction = 9; + doAction = DO_ACTION_THROW; } } } else if (!(this->stateFlags1 & 0x8000000) && func_8083A0D4(this) && (this->getItemId < GI_MAX)) { - doAction = 0x11; + doAction = DO_ACTION_GRAB; } else if (this->stateFlags2 & 0x800) { sp24 = (D_80854784[CUR_UPG_VALUE(UPG_SCALE)] - this->actor.yDistToWater) / 40.0f; sp24 = CLAMP(sp24, 0, 7); - doAction = D_80854790[sp24]; + doAction = sDiveDoActions[sp24]; } else if (sp1C && !(this->stateFlags2 & 0x400)) { - doAction = 7; + doAction = DO_ACTION_DIVE; } else if (!sp1C && (!(this->stateFlags1 & 0x400000) || func_80833BCC(this) || !Player_IsChildWithHylianShield(this))) { if ((!(this->stateFlags1 & 0x4000) && (sp20 <= 0) && @@ -9301,22 +9302,22 @@ void func_808473D4(GlobalContext* globalCtx, Player* this) { ((D_808535E4 != 7) && (func_80833B2C(this) || ((globalCtx->roomCtx.curRoom.unk_03 != 2) && !(this->stateFlags1 & 0x400000) && (sp20 == 0))))))) { - doAction = 0; + doAction = DO_ACTION_ATTACK; } else if ((globalCtx->roomCtx.curRoom.unk_03 != 2) && func_80833BCC(this) && (sp20 > 0)) { - doAction = 5; + doAction = DO_ACTION_JUMP; } else if ((this->heldItemActionParam >= PLAYER_AP_SWORD_MASTER) || ((this->stateFlags2 & 0x100000) && (globalCtx->actorCtx.targetCtx.arrowPointedActor == NULL))) { - doAction = 0x13; + doAction = DO_ACTION_PUTAWAY; } } } } - if (doAction != 0x13) { + if (doAction != DO_ACTION_PUTAWAY) { this->unk_837 = 20; } else if (this->unk_837 != 0) { - doAction = 0xA; + doAction = DO_ACTION_NONE; this->unk_837--; } @@ -10089,9 +10090,9 @@ void Player_UpdateCommon(Player* this, GlobalContext* globalCtx, Input* input) { func_80837B9C(this, globalCtx); } else if ((this->actor.bgCheckFlags & 1) || (this->stateFlags1 & 0x8000000)) { func_80836448(globalCtx, this, - func_808332B8(this) ? &gPlayerAnim_003310 - : (this->shockTimer != 0) ? &gPlayerAnim_002F08 - : &gPlayerAnim_002878); + func_808332B8(this) + ? &gPlayerAnim_003310 + : (this->shockTimer != 0) ? &gPlayerAnim_002F08 : &gPlayerAnim_002878); } } else { if ((this->actor.parent == NULL) && @@ -10694,7 +10695,7 @@ void func_8084B530(Player* this, GlobalContext* globalCtx) { this->stateFlags2 |= 0x20; func_80836670(this, globalCtx); - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x100; if ((this->targetActor->flags & 5) != 5) { @@ -11791,7 +11792,7 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) { giEntry = &sGetItemTable[this->getItemId - 1]; this->unk_84F = 1; - func_8010B680(globalCtx, giEntry->textId, &this->actor); + Message_StartTextbox(globalCtx, giEntry->textId, &this->actor); Item_Give(globalCtx, giEntry->itemId); if (((this->getItemId >= GI_RUPEE_GREEN) && (this->getItemId <= GI_RUPEE_RED)) || @@ -11807,10 +11808,10 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) { } else { temp1 = temp2 = (this->getItemId == GI_HEART_PIECE) ? NA_BGM_SMALL_ITEM_GET : NA_BGM_ITEM_GET | 0x900; } - func_800F5C64(temp1); + Audio_PlayFanfare(temp1); } } else { - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { if (this->getItemId == GI_GAUNTLETS_SILVER) { globalCtx->nextEntranceIndex = 0x0123; globalCtx->sceneLoadFlag = 0x14; @@ -11878,7 +11879,7 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) { if (this->stateFlags2 & 0x2800000) { this->stateFlags2 |= 0x1000000; } else { - func_8010BD58(globalCtx, 1); + func_8010BD58(globalCtx, OCARINA_ACTION_FREE_PLAY); } return; } @@ -11887,7 +11888,7 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) { return; } - if (globalCtx->msgCtx.unk_E3EE == 4) { + if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_04) { func_8005B1A4(Gameplay_GetCamera(globalCtx, 0)); if ((this->targetActor != NULL) && (this->targetActor == this->unk_6A8)) { @@ -11902,10 +11903,10 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) { this->stateFlags2 &= ~0x3800000; this->unk_6A8 = NULL; - } else if (globalCtx->msgCtx.unk_E3EE == 2) { - gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex = D_808549D4[globalCtx->msgCtx.unk_E3EC]; + } else if (globalCtx->msgCtx.ocarinaMode == OCARINA_MODE_02) { + gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex = D_808549D4[globalCtx->msgCtx.lastPlayedSong]; gSaveContext.respawn[RESPAWN_MODE_RETURN].playerParams = 0x5FF; - gSaveContext.respawn[RESPAWN_MODE_RETURN].data = globalCtx->msgCtx.unk_E3EC; + gSaveContext.respawn[RESPAWN_MODE_RETURN].data = globalCtx->msgCtx.lastPlayedSong; this->csMode = 0; this->stateFlags1 &= ~0x20000000; @@ -12128,10 +12129,10 @@ void func_8084ECA4(Player* this, GlobalContext* globalCtx) { if (LinkAnimation_Update(globalCtx, &this->skelAnime)) { if (this->unk_84F != 0) { if (this->unk_850 == 0) { - func_8010B680(globalCtx, D_80854A04[this->unk_84F - 1].textId, &this->actor); - func_800F5C64(NA_BGM_ITEM_GET | 0x900); + Message_StartTextbox(globalCtx, D_80854A04[this->unk_84F - 1].textId, &this->actor); + Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900); this->unk_850 = 1; - } else if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + } else if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->unk_84F = 0; func_8005B1A4(Gameplay_GetCamera(globalCtx, 0)); } @@ -12263,14 +12264,14 @@ void func_8084F104(Player* this, GlobalContext* globalCtx) { } if (this->unk_850 == 0) { - func_8010B680(globalCtx, this->actor.textId, &this->actor); + Message_StartTextbox(globalCtx, this->actor.textId, &this->actor); if ((this->itemActionParam == PLAYER_AP_CHICKEN) || (this->itemActionParam == PLAYER_AP_POCKET_CUCCO)) { func_8002F7DC(&this->actor, NA_SE_EV_CHICKEN_CRY_M); } this->unk_850 = 1; - } else if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + } else if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~0x100; this->unk_862 = 0; @@ -12747,12 +12748,12 @@ void func_8085063C(Player* this, GlobalContext* globalCtx) { func_80836670(this, globalCtx); if (this->unk_850 == 0) { - func_8010B680(globalCtx, 0x3B, &this->actor); + Message_StartTextbox(globalCtx, 0x3B, &this->actor); this->unk_850 = 1; return; } - if (func_8010BDBC(&globalCtx->msgCtx) == 2) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) { s32 respawnData = gSaveContext.respawn[RESPAWN_MODE_TOP].data; if (globalCtx->msgCtx.choiceIndex == 0) { @@ -13452,11 +13453,11 @@ void func_80851828(GlobalContext* globalCtx, Player* this, CsCmdActorAction* arg if (globalCtx->sceneNum == SCENE_BDAN_BOSS) { if (this->unk_850 == 0) { - if (func_8010BDBC(&globalCtx->msgCtx) == 0) { + if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_NONE) { return; } } else { - if (func_8010BDBC(&globalCtx->msgCtx) != 0) { + if (Message_GetState(&globalCtx->msgCtx) != TEXT_STATE_NONE) { return; } } diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index bb2b979034..e0381f579d 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -376,8 +376,8 @@ void FileChoose_PulsateCursor(GameState* thisx) { Input* debugInput = &this->state.input[2]; if (CHECK_BTN_ALL(debugInput->press.button, BTN_DLEFT)) { - sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = 0; - *((u8*)0x80000002) = 0; + sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_ENG; + *((u8*)0x80000002) = LANGUAGE_ENG; SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); osSyncPrintf("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], @@ -389,8 +389,8 @@ void FileChoose_PulsateCursor(GameState* thisx) { sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_MAGIC]); } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DUP)) { - sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = 1; - *((u8*)0x80000002) = 1; + sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_GER; + *((u8*)0x80000002) = LANGUAGE_GER; SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); osSyncPrintf("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], @@ -401,8 +401,8 @@ void FileChoose_PulsateCursor(GameState* thisx) { sramCtx->readBuff[SRAM_HEADER_ZTARGET], sramCtx->readBuff[SRAM_HEADER_LANGUAGE], sramCtx->readBuff[SRAM_HEADER_MAGIC]); } else if (CHECK_BTN_ALL(debugInput->press.button, BTN_DRIGHT)) { - sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = 2; - *((u8*)0x80000002) = 2; + sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_FRA; + *((u8*)0x80000002) = LANGUAGE_FRA; SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, 3, OS_WRITE); osSyncPrintf("1:read_buff[]=%x, %x, %x, %x\n", sramCtx->readBuff[SRAM_HEADER_SOUND], @@ -1849,8 +1849,8 @@ void FileChoose_InitContext(GameState* thisx) { gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; - if (gSaveContext.language > 2) { - sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = 0; + if (gSaveContext.language >= LANGUAGE_MAX) { + sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_ENG; } } diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c index 6eea5f23e6..53f7477a0e 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c @@ -857,7 +857,7 @@ void FileChoose_DrawOptionsImpl(GameState* thisx) { } } - if (gSaveContext.language == 1) { + if (gSaveContext.language == LANGUAGE_GER) { gSPVertex(POLY_OPA_DISP++, D_80811E30, 32, 0); } else { gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0); @@ -877,7 +877,7 @@ void FileChoose_DrawOptionsImpl(GameState* thisx) { gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } - if (gSaveContext.language == 1) { + if (gSaveContext.language == LANGUAGE_GER) { gSPVertex(POLY_OPA_DISP++, D_80812130, 32, 0); } else { gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0); diff --git a/tools/csdis.py b/tools/csdis.py index 6088cfede2..9a3b5e745a 100755 --- a/tools/csdis.py +++ b/tools/csdis.py @@ -138,32 +138,55 @@ cutscene_terminator_destinations = { ocarina_action_ids = { 0x00: "OCARINA_ACTION_UNK_0", - 0x01: "OCARINA_ACTION_FREE_PLAY_OCARINA", - 0x02: "OCARINA_ACTION_MINUET", - 0x03: "OCARINA_ACTION_BOLERO", - 0x04: "OCARINA_ACTION_SERENADE", - 0x05: "OCARINA_ACTION_REQUIEM", - 0x06: "OCARINA_ACTION_NOCTURNE", - 0x07: "OCARINA_ACTION_PRELUDE", - 0x08: "OCARINA_ACTION_SARIAS_SONG", - 0x09: "OCARINA_ACTION_EPONAS_SONG", - 0x0A: "OCARINA_ACTION_ZELDAS_LULLABY", - 0x0B: "OCARINA_ACTION_SUNS_SONG", - 0x0C: "OCARINA_ACTION_SONG_OF_TIME", - 0x0D: "OCARINA_ACTION_SONG_OF_STORMS", - 0x0E: "OCARINA_ACTION_OCARINA_ACTION_UNK_E", - 0x0F: "OCARINA_ACTION_MINUET_PLAYBACK", - 0x10: "OCARINA_ACTION_BOLERO_PLAYBACK", - 0x11: "OCARINA_ACTION_SERENADE_PLAYBACK", - 0x12: "OCARINA_ACTION_REQUIEM_PLAYBACK", - 0x13: "OCARINA_ACTION_NOCTURNE_PLAYBACK", - 0x14: "OCARINA_ACTION_PRELUDE_PLAYBACK", - 0x15: "OCARINA_ACTION_SARIAS_SONG_PLAYBACK", - 0x16: "OCARINA_ACTION_EPONAS_SONG_PLAYBACK", - 0x17: "OCARINA_ACTION_ZELDAS_LULLABY_PLAYBACK", - 0x18: "OCARINA_ACTION_SUNS_SONG_PLAYBACK", - 0x19: "OCARINA_ACTION_SONG_OF_TIME_PLAYBACK", - 0x1A: "OCARINA_ACTION_SONG_OF_STORMS_PLAYBACK", + 0x01: "OCARINA_ACTION_FREE_PLAY", + 0x02: "OCARINA_ACTION_TEACH_MINUET", + 0x03: "OCARINA_ACTION_TEACH_BOLERO", + 0x04: "OCARINA_ACTION_TEACH_SERENADE", + 0x05: "OCARINA_ACTION_TEACH_REQUIEM", + 0x06: "OCARINA_ACTION_TEACH_NOCTURNE", + 0x07: "OCARINA_ACTION_TEACH_PRELUDE", + 0x08: "OCARINA_ACTION_TEACH_SARIA", + 0x09: "OCARINA_ACTION_TEACH_EPONA", + 0x0A: "OCARINA_ACTION_TEACH_LULLABY", + 0x0B: "OCARINA_ACTION_TEACH_SUNS", + 0x0C: "OCARINA_ACTION_TEACH_TIME", + 0x0D: "OCARINA_ACTION_TEACH_STORMS", + 0x0E: "OCARINA_ACTION_UNK_E", + 0x0F: "OCARINA_ACTION_PLAYBACK_MINUET", + 0x10: "OCARINA_ACTION_PLAYBACK_BOLERO", + 0x11: "OCARINA_ACTION_PLAYBACK_SERENADE", + 0x12: "OCARINA_ACTION_PLAYBACK_REQUIEM", + 0x13: "OCARINA_ACTION_PLAYBACK_NOCTURNE", + 0x14: "OCARINA_ACTION_PLAYBACK_PRELUDE", + 0x15: "OCARINA_ACTION_PLAYBACK_SARIA", + 0x16: "OCARINA_ACTION_PLAYBACK_EPONA", + 0x17: "OCARINA_ACTION_PLAYBACK_LULLABY", + 0x18: "OCARINA_ACTION_PLAYBACK_SUNS", + 0x19: "OCARINA_ACTION_PLAYBACK_TIME", + 0x1A: "OCARINA_ACTION_PLAYBACK_STORMS", + 0x1B: "OCARINA_ACTION_UNK_1B", + 0x1C: "OCARINA_ACTION_CHECK_MINUET", + 0x1D: "OCARINA_ACTION_CHECK_BOLERO", + 0x1E: "OCARINA_ACTION_CHECK_SERENADE", + 0x1F: "OCARINA_ACTION_CHECK_REQUIEM", + 0x20: "OCARINA_ACTION_CHECK_NOCTURNE", + 0x21: "OCARINA_ACTION_CHECK_PRELUDE", + 0x22: "OCARINA_ACTION_CHECK_SARIA", + 0x23: "OCARINA_ACTION_CHECK_EPONA", + 0x24: "OCARINA_ACTION_CHECK_LULLABY", + 0x25: "OCARINA_ACTION_CHECK_SUNS", + 0x26: "OCARINA_ACTION_CHECK_TIME", + 0x27: "OCARINA_ACTION_CHECK_STORMS", + 0x28: "OCARINA_ACTION_CHECK_SCARECROW", + 0x29: "OCARINA_ACTION_FREE_PLAY_DONE", + 0x2A: "OCARINA_ACTION_SCARECROW_LONG_RECORDING", + 0x2B: "OCARINA_ACTION_SCARECROW_LONG_PLAYBACK", + 0x2C: "OCARINA_ACTION_SCARECROW_RECORDING", + 0x2D: "OCARINA_ACTION_SCARECROW_PLAYBACK", + 0x2E: "OCARINA_ACTION_MEMORY_GAME", + 0x2F: "OCARINA_ACTION_FROGS", + 0x30: "OCARINA_ACTION_CHECK_NOWARP", + 0x31: "OCARINA_ACTION_CHECK_NOWARP_DONE", } """ diff --git a/tools/mkldscript.c b/tools/mkldscript.c index 187f991099..6fca61a7dc 100644 --- a/tools/mkldscript.c +++ b/tools/mkldscript.c @@ -22,6 +22,7 @@ enum STMT_entry, STMT_flags, STMT_include, + STMT_include_data_with_rodata, STMT_name, STMT_number, STMT_romalign, @@ -50,6 +51,7 @@ struct Segment uint32_t entry; uint32_t number; char **includes; + uint8_t *data_with_rodata; int includesCount; }; @@ -176,6 +178,7 @@ static const char *const stmtNames[] = [STMT_entry] = "entry", [STMT_flags] = "flags", [STMT_include] = "include", + [STMT_include_data_with_rodata] = "include_data_with_rodata", [STMT_name] = "name", [STMT_number] = "number", [STMT_romalign] = "romalign", @@ -215,7 +218,7 @@ static void parse_rom_spec(char *spec) if (currSeg != NULL) { // ensure no duplicates (except for 'include') - if (stmt != STMT_include && (currSeg->fields & (1 << stmt))) + if (stmt != STMT_include && stmt != STMT_include_data_with_rodata && (currSeg->fields & (1 << stmt))) util_fatal_error("line %i: duplicate '%s' statement", lineNum, stmtName); currSeg->fields |= 1 << stmt; @@ -267,8 +270,11 @@ static void parse_rom_spec(char *spec) util_fatal_error("line %i: alignment is not a power of two", lineNum); break; case STMT_include: + case STMT_include_data_with_rodata: currSeg->includesCount++; currSeg->includes = realloc(currSeg->includes, currSeg->includesCount * sizeof(*currSeg->includes)); + currSeg->data_with_rodata = realloc(currSeg->data_with_rodata, currSeg->includesCount * sizeof(*currSeg->data_with_rodata)); + currSeg->data_with_rodata[currSeg->includesCount - 1] = (stmt == STMT_include_data_with_rodata); if (!parse_quoted_string(args, &currSeg->includes[currSeg->includesCount - 1])) util_fatal_error("line %i: invalid filename", lineNum); break; @@ -359,7 +365,10 @@ static void write_ld_script(void) fprintf(fout, " _%sSegmentDataStart = .;\n", seg->name); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.data)\n", seg->includes[j]); + { + if (!seg->data_with_rodata[j]) + fprintf(fout, " %s (.data)\n", seg->includes[j]); + } /* for (j = 0; j < seg->includesCount; j++) @@ -378,6 +387,8 @@ static void write_ld_script(void) for (j = 0; j < seg->includesCount; j++) { + if (seg->data_with_rodata[j]) + fprintf(fout, " %s (.data)\n", seg->includes[j]); fprintf(fout, " %s (.rodata)\n", seg->includes[j]); // Compilers other than IDO, such as GCC, produce different sections such as // the ones named directly below. These sections do not contain values that diff --git a/tools/msgdis.py b/tools/msgdis.py new file mode 100644 index 0000000000..091b16ec0d --- /dev/null +++ b/tools/msgdis.py @@ -0,0 +1,406 @@ +#!/usr/bin/env python3 +# +# message_data_static disassembler/decompiler +# + +import re, struct +from os import path + +# =================================================== +# Util +# =================================================== + +def as_hword_list(b): + if len(b) % 2 != 0: + return None + return [h[0] for h in struct.iter_unpack(">H", b)] + +def as_word_list(b): + if len(b) % 4 != 0: + return None + return [i[0] for i in struct.iter_unpack(">I", b)] + +def as_message_table_entry(b): + if len(b) % 8 != 0: + return None + return [(e[0], e[1]>>0x4&0xF, e[1]&0xF, e[2]) for e in [i for i in struct.iter_unpack(">HBxI", b)]] + +def segmented_to_physical(address): + return address & ~0x07000000 + +# =================================================== +# Decode message_data_static encoded strings +# =================================================== + +""" +Special characters conversion +""" +extraction_charmap = { + 0x7F: '‾', + 0x80: 'À', + 0x81: 'î', + 0x82: 'Â', + 0x83: 'Ä', + 0x84: 'Ç', + 0x85: 'È', + 0x86: 'É', + 0x87: 'Ê', + 0x88: 'Ë', + 0x89: 'Ï', + 0x8A: 'Ô', + 0x8B: 'Ö', + 0x8C: 'Ù', + 0x8D: 'Û', + 0x8E: 'Ü', + 0x8F: 'ß', + 0x90: 'à', + 0x91: 'á', + 0x92: 'â', + 0x93: 'ä', + 0x94: 'ç', + 0x95: 'è', + 0x96: 'é', + 0x97: 'ê', + 0x98: 'ë', + 0x99: 'ï', + 0x9A: 'ô', + 0x9B: 'ö', + 0x9C: 'ù', + 0x9D: 'û', + 0x9E: 'ü', + 0x9F: '[A]', + 0xA0: '[B]', + 0xA1: '[C]', + 0xA2: '[L]', + 0xA3: '[R]', + 0xA4: '[Z]', + 0xA5: '[C-Up]', + 0xA6: '[C-Down]', + 0xA7: '[C-Left]', + 0xA8: '[C-Right]', + 0xA9: '▼', + 0xAA: '[Control-Pad]', + 0xAB: '[D-Pad]', +} + +control_codes = { + '\x01': "NEWLINE", + '\x02': "END", + '\x04': "BOX_BREAK", + '\x05': "COLOR", + '\x06': "SHIFT", + '\x07': "TEXTID", + '\x08': "QUICKTEXT_ENABLE", + '\x09': "QUICKTEXT_DISABLE", + '\x0A': "PERSISTENT", + '\x0B': "EVENT", + '\x0C': "BOX_BREAK_DELAYED", + '\x0D': "AWAIT_BUTTON_PRESS", + '\x0E': "FADE", + '\x0F': "NAME", + '\x10': "OCARINA", + '\x11': "FADE2", + '\x12': "SFX", + '\x13': "ITEM_ICON", + '\x14': "TEXT_SPEED", + '\x15': "BACKGROUND", + '\x16': "MARATHON_TIME", + '\x17': "RACE_TIME", + '\x18': "POINTS", + '\x19': "TOKENS", + '\x1A': "UNSKIPPABLE", + '\x1B': "TWO_CHOICE", + '\x1C': "THREE_CHOICE", + '\x1D': "FISH_INFO", + '\x1E': "HIGHSCORE", + '\x1F': "TIME", +} + +colors = { + 0x40 : "DEFAULT", + 0x41 : "RED", + 0x42 : "ADJUSTABLE", + 0x43 : "BLUE", + 0x44 : "LIGHTBLUE", + 0x45 : "PURPLE", + 0x46 : "YELLOW", + 0x47 : "BLACK", +} + +highscores = { + 0x00 : "HS_HORSE_ARCHERY", + 0x01 : "HS_POE_POINTS", + 0x02 : "HS_LARGEST_FISH", + 0x03 : "HS_HORSE_RACE", + 0x04 : "HS_MARATHON", + 0x06 : "HS_DAMPE_RACE", +} + +def format_char(byte): + return f"\\x{byte:02X}" + +def decode(read_bytes, box_type): + next_is_color = False + next_is_highscore = False + + next_is_byte_mod = False + next_is_box_break_delayed = False + next_is_hword_mod = 0 + next_is_background = 0 + + buf = [] + for byte in read_bytes: + if next_is_byte_mod: + #buf.append(format_hex(byte,1) + ") \"") + value = "\"" + format_char(byte) + "\"" + if next_is_highscore: + value = highscores[byte] + next_is_highscore = False + elif next_is_color: + """ + if box_type == 5: + value = color_type_5[byte] + elif box_type == 1: + value = color_type_1[byte] + else: + value = color_type_default[byte] + """ + value = colors[byte] + next_is_color = False + buf.append(value + ") \"") # + ("\n" if next_is_box_break_delayed else "") + next_is_byte_mod = False + next_is_box_break_delayed = False + elif next_is_hword_mod == 1: + #buf.append(format_hex(byte,1)) + buf.append("\"" + format_char(byte)) + next_is_hword_mod = 2 + elif next_is_hword_mod == 2: + #buf.append(format_hex(byte,1).replace("0x","") + ") \"") + buf.append(format_char(byte) + "\") \"") + next_is_hword_mod = 0 + elif next_is_background == 1: + #buf.append(format_hex(byte,1) + ", ") + buf.append("\"" + format_char(byte) + "\", ") + next_is_background = 2 + elif next_is_background == 2: + #buf.append(format_hex(byte,1) + ", ") + buf.append("\"" + format_char(byte) + "\", ") + next_is_background = 3 + elif next_is_background == 3: + #buf.append(format_hex(byte,1) + ") \"") + buf.append("\"" + format_char(byte) + "\") \"") + next_is_background = 0 + else: + for ctrl in list(control_codes.keys()): + if byte == ord(ctrl): + name = control_codes[ctrl] + # single bytes + if (name == "COLOR" or name == "SHIFT" or name == "BOX_BREAK_DELAYED" or + name == "FADE" or name == "ITEM_ICON" or name == "TEXT_SPEED" or + name == "HIGHSCORE"): + buf.append("\" " + name + "(") + if name == "HIGHSCORE": + next_is_highscore = True + elif name == "COLOR": + next_is_color = True + elif name == "BOX_BREAK_DELAYED": + next_is_box_break_delayed = True + else: + next_is_box_break_delayed = False + next_is_byte_mod = True + # single halfwords + elif (name == "TEXTID" or name == "FADE2" or name == "SFX"): + buf.append("\" " + name + "(") + next_is_hword_mod = 1 + # multiple bytes + elif (name == "BACKGROUND"): + buf.append("\" " + name + "(") + next_is_background = 1 + elif (name == "BOX_BREAK"): + buf.append("\"" + name + "\"") + else: + if byte == 0x01: # real newlines + buf.append("\n") + elif byte == 0x02: # omit END ctrl code + buf.append("") + else: + buf.append("\" " + name + " \"") + break + else: + if byte in extraction_charmap: + buf.append(extraction_charmap[byte]) + else: + decoded = bytes([byte]).decode("ASCII") + if decoded == "\"": + decoded = "\\\"" + buf.append(decoded) + + return "".join(buf) + +# =================================================== +# message entry tables +# =================================================== + +textbox_type = { + 0: "TEXTBOX_TYPE_BLACK", + 1: "TEXTBOX_TYPE_WOODEN", + 2: "TEXTBOX_TYPE_BLUE", + 3: "TEXTBOX_TYPE_OCARINA", + 4: "TEXTBOX_TYPE_NONE_BOTTOM", + 5: "TEXTBOX_TYPE_NONE_NO_SHADOW", + 0xB: "TEXTBOX_TYPE_CREDITS", +} + +textbox_ypos = { + 0: "TEXTBOX_POS_VARIABLE", + 1: "TEXTBOX_POS_TOP", + 2: "TEXTBOX_POS_BOTTOM", + 3: "TEXTBOX_POS_MIDDLE", +} + +# message entry tables vrom addresses +nes_message_entry_table_addr = 0x00BC24C0 +ger_message_entry_table_addr = 0x00BC66E8 +fra_message_entry_table_addr = 0x00BC87F8 +staff_message_entry_table_addr = 0x00BCA908 +staff_message_entry_table_addr_end = 0x00BCAA90 + +nes_message_entry_table = [] +ger_message_entry_table = [] +fra_message_entry_table = [] + +combined_message_entry_table = [] + +staff_message_entry_table = [] + +def read_tables(): + global nes_message_entry_table + global ger_message_entry_table + global fra_message_entry_table + + global combined_message_entry_table + global staff_message_entry_table + + baserom = None + with open("baserom.z64","rb") as infile: + baserom = infile.read() + + nes_message_entry_table = as_message_table_entry(baserom[nes_message_entry_table_addr:ger_message_entry_table_addr]) + + ids = [entry[0] for entry in nes_message_entry_table if entry[0] != 0xFFFC] + ger_message_entry_table = list(zip(ids,as_word_list(baserom[ger_message_entry_table_addr: fra_message_entry_table_addr]))) + fra_message_entry_table = list(zip(ids,as_word_list(baserom[fra_message_entry_table_addr:staff_message_entry_table_addr]))) + + for entry in nes_message_entry_table: + if entry[0] != 0xFFFC: + combined_message_entry_table.append((*entry, dict(ger_message_entry_table)[entry[0]], dict(fra_message_entry_table)[entry[0]])) + else: + combined_message_entry_table.append((*entry, None, None)) + + staff_message_entry_table = as_message_table_entry(baserom[staff_message_entry_table_addr:staff_message_entry_table_addr_end]) + +# =================================================== +# Run +# =================================================== + +### TODO this is all awful +def cvt(m): + return m.group(0).replace("\"\"","") + +doubles = re.compile(r"(?