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"(?