From c76bd0d2e403ba567e3010729127eac646e249dc Mon Sep 17 00:00:00 2001 From: i82orbom Date: Wed, 19 Aug 2020 00:27:03 +0200 Subject: [PATCH] Decompiles z_en_wonder_talk.c (#309) * Decompiles z_en_wonder_talk.c * EnWonderTalk_Init * EnWonderTalk_Update * func_80B395F0 * func_80B391CC * func_80B3943C Removes unused asm's * Addresses PR comments * Uses VT macros in z_en_wonder_talk * Adds translations to stdout messages in comments * Addresses additional PR comments * Addresses PR comments #3 Co-authored-by: i82orbom Co-authored-by: i82orbom --- .../ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s | 4 - .../ovl_En_Wonder_Talk/EnWonderTalk_Init.s | 75 ------ .../ovl_En_Wonder_Talk/EnWonderTalk_Update.s | 91 ------- .../actors/ovl_En_Wonder_Talk/func_80B391CC.s | 236 ------------------ .../actors/ovl_En_Wonder_Talk/func_80B3943C.s | 156 ------------ .../actors/ovl_En_Wonder_Talk/func_80B395F0.s | 168 ------------- data/overlays/actors/z_en_wonder_talk.data.s | 18 -- data/overlays/actors/z_en_wonder_talk.reloc.s | 13 - spec | 3 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 235 ++++++++++++++++- .../ovl_En_Wonder_Talk/z_en_wonder_talk.h | 13 +- 11 files changed, 240 insertions(+), 772 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B391CC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B3943C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B395F0.s delete mode 100644 data/overlays/actors/z_en_wonder_talk.data.s delete mode 100644 data/overlays/actors/z_en_wonder_talk.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s deleted file mode 100644 index 151707a14b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel EnWonderTalk_Destroy -/* 00000 80B390F0 AFA40000 */ sw $a0, 0x0000($sp) -/* 00004 80B390F4 03E00008 */ jr $ra -/* 00008 80B390F8 AFA50004 */ sw $a1, 0x0004($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Init.s deleted file mode 100644 index 6b892e7224..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Init.s +++ /dev/null @@ -1,75 +0,0 @@ -.rdata -glabel D_80B39970 - .asciz "\n\n" - .balign 4 - -glabel D_80B39974 - .asciz "\x1b[32m☆☆☆☆☆ 特殊会話くん ☆☆☆☆☆ %x\n\x1b[m" - .balign 4 - -glabel D_80B399A4 - .asciz "\x1b[32m☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n\x1b[m" - .balign 4 - -.text -glabel EnWonderTalk_Init -/* 0000C 80B390FC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00010 80B39100 AFB00018 */ sw $s0, 0x0018($sp) -/* 00014 80B39104 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00018 80B39108 AFBF001C */ sw $ra, 0x001C($sp) -/* 0001C 80B3910C 3C0480B4 */ lui $a0, %hi(D_80B39970) ## $a0 = 80B40000 -/* 00020 80B39110 AFA50024 */ sw $a1, 0x0024($sp) -/* 00024 80B39114 0C00084C */ jal osSyncPrintf - -/* 00028 80B39118 24849970 */ addiu $a0, $a0, %lo(D_80B39970) ## $a0 = 80B39970 -/* 0002C 80B3911C 3C0480B4 */ lui $a0, %hi(D_80B39974) ## $a0 = 80B40000 -/* 00030 80B39120 24849974 */ addiu $a0, $a0, %lo(D_80B39974) ## $a0 = 80B39974 -/* 00034 80B39124 0C00084C */ jal osSyncPrintf - -/* 00038 80B39128 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 0003C 80B3912C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00040 80B39130 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F -/* 00044 80B39134 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 00048 80B39138 3048003F */ andi $t0, $v0, 0x003F ## $t0 = 00000000 -/* 0004C 80B3913C A6080154 */ sh $t0, 0x0154($s0) ## 00000154 -/* 00050 80B39140 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 00054 80B39144 000272C3 */ sra $t6, $v0, 11 -/* 00058 80B39148 0002C183 */ sra $t8, $v0, 6 -/* 0005C 80B3914C 31CF001F */ andi $t7, $t6, 0x001F ## $t7 = 00000000 -/* 00060 80B39150 3319001F */ andi $t9, $t8, 0x001F ## $t9 = 00000000 -/* 00064 80B39154 A60F0150 */ sh $t7, 0x0150($s0) ## 00000150 -/* 00068 80B39158 14A10004 */ bne $a1, $at, .L80B3916C -/* 0006C 80B3915C A6190152 */ sh $t9, 0x0152($s0) ## 00000152 -/* 00070 80B39160 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF -/* 00074 80B39164 A6090154 */ sh $t1, 0x0154($s0) ## 00000154 -/* 00078 80B39168 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -.L80B3916C: -/* 0007C 80B3916C 04A0000C */ bltz $a1, .L80B391A0 -/* 00080 80B39170 A20A001F */ sb $t2, 0x001F($s0) ## 0000001F -/* 00084 80B39174 0C00B2D0 */ jal Flags_GetSwitch - -/* 00088 80B39178 8FA40024 */ lw $a0, 0x0024($sp) -/* 0008C 80B3917C 10400008 */ beq $v0, $zero, .L80B391A0 -/* 00090 80B39180 3C0480B4 */ lui $a0, %hi(D_80B399A4) ## $a0 = 80B40000 -/* 00094 80B39184 248499A4 */ addiu $a0, $a0, %lo(D_80B399A4) ## $a0 = 80B399A4 -/* 00098 80B39188 0C00084C */ jal osSyncPrintf - -/* 0009C 80B3918C 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 000A0 80B39190 0C00B55C */ jal Actor_Kill - -/* 000A4 80B39194 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000A8 80B39198 10000008 */ beq $zero, $zero, .L80B391BC -/* 000AC 80B3919C 8FBF001C */ lw $ra, 0x001C($sp) -.L80B391A0: -/* 000B0 80B391A0 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 000B4 80B391A4 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00 -/* 000B8 80B391A8 3C0B80B4 */ lui $t3, %hi(func_80B391CC) ## $t3 = 80B40000 -/* 000BC 80B391AC 256B91CC */ addiu $t3, $t3, %lo(func_80B391CC) ## $t3 = 80B391CC -/* 000C0 80B391B0 AE0B014C */ sw $t3, 0x014C($s0) ## 0000014C -/* 000C4 80B391B4 E604015C */ swc1 $f4, 0x015C($s0) ## 0000015C -/* 000C8 80B391B8 8FBF001C */ lw $ra, 0x001C($sp) -.L80B391BC: -/* 000CC 80B391BC 8FB00018 */ lw $s0, 0x0018($sp) -/* 000D0 80B391C0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 000D4 80B391C4 03E00008 */ jr $ra -/* 000D8 80B391C8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Update.s deleted file mode 100644 index f7dbca7baa..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Update.s +++ /dev/null @@ -1,91 +0,0 @@ -glabel EnWonderTalk_Update -/* 00714 80B39804 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 00718 80B39808 AFBF0044 */ sw $ra, 0x0044($sp) -/* 0071C 80B3980C AFA5004C */ sw $a1, 0x004C($sp) -/* 00720 80B39810 84820158 */ lh $v0, 0x0158($a0) ## 00000158 -/* 00724 80B39814 10400002 */ beq $v0, $zero, .L80B39820 -/* 00728 80B39818 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 0072C 80B3981C A48E0158 */ sh $t6, 0x0158($a0) ## 00000158 -.L80B39820: -/* 00730 80B39820 AFA40048 */ sw $a0, 0x0048($sp) -/* 00734 80B39824 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C -/* 00738 80B39828 8FA5004C */ lw $a1, 0x004C($sp) -/* 0073C 80B3982C 0320F809 */ jalr $ra, $t9 -/* 00740 80B39830 00000000 */ nop -/* 00744 80B39834 8FA40048 */ lw $a0, 0x0048($sp) -/* 00748 80B39838 0C00B56E */ jal Actor_SetHeight - -/* 0074C 80B3983C 8C850160 */ lw $a1, 0x0160($a0) ## 00000160 -/* 00750 80B39840 3C0F8016 */ lui $t7, %hi(gGameInfo) -/* 00754 80B39844 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* 00758 80B39848 8FA40048 */ lw $a0, 0x0048($sp) -/* 0075C 80B3984C 85F812D4 */ lh $t8, 0x12D4($t7) ## 801612D4 -/* 00760 80B39850 5300003C */ beql $t8, $zero, .L80B39944 -/* 00764 80B39854 8FBF0044 */ lw $ra, 0x0044($sp) -/* 00768 80B39858 8482015A */ lh $v0, 0x015A($a0) ## 0000015A -/* 0076C 80B3985C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00770 80B39860 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF -/* 00774 80B39864 10400020 */ beq $v0, $zero, .L80B398E8 -/* 00778 80B39868 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF -/* 0077C 80B3986C 30480001 */ andi $t0, $v0, 0x0001 ## $t0 = 00000000 -/* 00780 80B39870 15000033 */ bne $t0, $zero, .L80B39940 -/* 00784 80B39874 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00788 80B39878 84890032 */ lh $t1, 0x0032($a0) ## 00000032 -/* 0078C 80B3987C C48C0024 */ lwc1 $f12, 0x0024($a0) ## 00000024 -/* 00790 80B39880 C48E0028 */ lwc1 $f14, 0x0028($a0) ## 00000028 -/* 00794 80B39884 8C86002C */ lw $a2, 0x002C($a0) ## 0000002C -/* 00798 80B39888 84870030 */ lh $a3, 0x0030($a0) ## 00000030 -/* 0079C 80B3988C AFA90010 */ sw $t1, 0x0010($sp) -/* 007A0 80B39890 848A0034 */ lh $t2, 0x0034($a0) ## 00000034 -/* 007A4 80B39894 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 007A8 80B39898 8FAF004C */ lw $t7, 0x004C($sp) -/* 007AC 80B3989C 240B000A */ addiu $t3, $zero, 0x000A ## $t3 = 0000000A -/* 007B0 80B398A0 240C000A */ addiu $t4, $zero, 0x000A ## $t4 = 0000000A -/* 007B4 80B398A4 240D000A */ addiu $t5, $zero, 0x000A ## $t5 = 0000000A -/* 007B8 80B398A8 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF -/* 007BC 80B398AC 24190004 */ addiu $t9, $zero, 0x0004 ## $t9 = 00000004 -/* 007C0 80B398B0 AFB90034 */ sw $t9, 0x0034($sp) -/* 007C4 80B398B4 AFAE0030 */ sw $t6, 0x0030($sp) -/* 007C8 80B398B8 AFAD002C */ sw $t5, 0x002C($sp) -/* 007CC 80B398BC AFAC0028 */ sw $t4, 0x0028($sp) -/* 007D0 80B398C0 AFAB0024 */ sw $t3, 0x0024($sp) -/* 007D4 80B398C4 AFAA0014 */ sw $t2, 0x0014($sp) -/* 007D8 80B398C8 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 007DC 80B398CC E7A0001C */ swc1 $f0, 0x001C($sp) -/* 007E0 80B398D0 E7A00020 */ swc1 $f0, 0x0020($sp) -/* 007E4 80B398D4 8DF80000 */ lw $t8, 0x0000($t7) ## 80160000 -/* 007E8 80B398D8 0C018FA7 */ jal DebugDisplay_AddObject - -/* 007EC 80B398DC AFB80038 */ sw $t8, 0x0038($sp) -/* 007F0 80B398E0 10000018 */ beq $zero, $zero, .L80B39944 -/* 007F4 80B398E4 8FBF0044 */ lw $ra, 0x0044($sp) -.L80B398E8: -/* 007F8 80B398E8 84880032 */ lh $t0, 0x0032($a0) ## 00000032 -/* 007FC 80B398EC C48C0024 */ lwc1 $f12, 0x0024($a0) ## 00000024 -/* 00800 80B398F0 C48E0028 */ lwc1 $f14, 0x0028($a0) ## 00000028 -/* 00804 80B398F4 8C86002C */ lw $a2, 0x002C($a0) ## 0000002C -/* 00808 80B398F8 84870030 */ lh $a3, 0x0030($a0) ## 00000030 -/* 0080C 80B398FC AFA80010 */ sw $t0, 0x0010($sp) -/* 00810 80B39900 84890034 */ lh $t1, 0x0034($a0) ## 00000034 -/* 00814 80B39904 44810000 */ mtc1 $at, $f0 ## $f0 = 0.00 -/* 00818 80B39908 8FAD004C */ lw $t5, 0x004C($sp) -/* 0081C 80B3990C 240C0004 */ addiu $t4, $zero, 0x0004 ## $t4 = 00000004 -/* 00820 80B39910 AFAC0034 */ sw $t4, 0x0034($sp) -/* 00824 80B39914 AFAB0030 */ sw $t3, 0x0030($sp) -/* 00828 80B39918 AFA0002C */ sw $zero, 0x002C($sp) -/* 0082C 80B3991C AFAA0028 */ sw $t2, 0x0028($sp) -/* 00830 80B39920 AFA00024 */ sw $zero, 0x0024($sp) -/* 00834 80B39924 AFA90014 */ sw $t1, 0x0014($sp) -/* 00838 80B39928 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 0083C 80B3992C E7A0001C */ swc1 $f0, 0x001C($sp) -/* 00840 80B39930 E7A00020 */ swc1 $f0, 0x0020($sp) -/* 00844 80B39934 8DAE0000 */ lw $t6, 0x0000($t5) ## 00000000 -/* 00848 80B39938 0C018FA7 */ jal DebugDisplay_AddObject - -/* 0084C 80B3993C AFAE0038 */ sw $t6, 0x0038($sp) -.L80B39940: -/* 00850 80B39940 8FBF0044 */ lw $ra, 0x0044($sp) -.L80B39944: -/* 00854 80B39944 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 00858 80B39948 03E00008 */ jr $ra -/* 0085C 80B3994C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B391CC.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B391CC.s deleted file mode 100644 index 8970f12938..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B391CC.s +++ /dev/null @@ -1,236 +0,0 @@ -.rdata -glabel D_80B399E4 - .asciz "\x1b[32m ☆☆☆☆☆ 石板GO! ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39A10 - .asciz "\x1b[35m☆☆☆☆☆ 注目座標 ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -glabel D_80B39A44 - .asciz "\x1b[32m ☆☆☆☆☆ こども ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39A6C - .asciz "\x1b[36m ☆☆☆☆☆ おとな ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39A94 - .asciz "\x1b[36m☆☆☆☆☆ this->actor.talk_message ☆☆☆☆☆ %x\n\x1b[m" - .balign 4 - -glabel D_80B39AD4 - .asciz "\x1b[32m ☆☆☆☆☆ 日記帳スタート! ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39B08 - .asciz "\x1b[35m☆☆☆☆☆ 注目座標 ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -glabel D_80B39B3C - .asciz "\x1b[35m☆☆☆☆☆ 注目座標 ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -glabel D_80B39B70 - .asciz "\x1b[35m☆☆☆☆☆ 注目座標 ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -glabel D_80B39BA4 - .asciz "\x1b[35m☆☆☆☆☆ 注目座標 ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -glabel D_80B39BD8 - .asciz "\x1b[36m☆☆☆☆☆ this->actor.talk_message ☆☆☆☆☆ %x\n\x1b[m" - .balign 4 - -.late_rodata -glabel jtbl_80B39D78 -.word L80B39228 -.word L80B392C0 -.word L80B39314 -.word L80B39358 -.word L80B393B8 -.word 0x00000000 - -.text -glabel func_80B391CC -/* 000DC 80B391CC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 000E0 80B391D0 AFBF001C */ sw $ra, 0x001C($sp) -/* 000E4 80B391D4 AFB00018 */ sw $s0, 0x0018($sp) -/* 000E8 80B391D8 84860154 */ lh $a2, 0x0154($a0) ## 00000154 -/* 000EC 80B391DC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 000F0 80B391E0 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 000F4 80B391E4 04C20007 */ bltzl $a2, .L80B39204 -/* 000F8 80B391E8 860E0150 */ lh $t6, 0x0150($s0) ## 00000150 -/* 000FC 80B391EC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 00100 80B391F0 0C00B2D0 */ jal Flags_GetSwitch - -/* 00104 80B391F4 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 00108 80B391F8 5440008C */ bnel $v0, $zero, .L80B3942C -/* 0010C 80B391FC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00110 80B39200 860E0150 */ lh $t6, 0x0150($s0) ## 00000150 -.L80B39204: -/* 00114 80B39204 25CFFFFF */ addiu $t7, $t6, 0xFFFF ## $t7 = FFFFFFFF -/* 00118 80B39208 2DE10005 */ sltiu $at, $t7, 0x0005 -/* 0011C 80B3920C 1020007B */ beq $at, $zero, .L80B393FC -/* 00120 80B39210 000F7880 */ sll $t7, $t7, 2 -/* 00124 80B39214 3C0180B4 */ lui $at, %hi(jtbl_80B39D78) ## $at = 80B40000 -/* 00128 80B39218 002F0821 */ addu $at, $at, $t7 -/* 0012C 80B3921C 8C2F9D78 */ lw $t7, %lo(jtbl_80B39D78)($at) -/* 00130 80B39220 01E00008 */ jr $t7 -/* 00134 80B39224 00000000 */ nop -glabel L80B39228 -/* 00138 80B39228 3C0480B4 */ lui $a0, %hi(D_80B399E4) ## $a0 = 80B40000 -/* 0013C 80B3922C 0C00084C */ jal osSyncPrintf - -/* 00140 80B39230 248499E4 */ addiu $a0, $a0, %lo(D_80B399E4) ## $a0 = 80B399E4 -/* 00144 80B39234 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00148 80B39238 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 -/* 0014C 80B3923C 44812000 */ mtc1 $at, $f4 ## $f4 = 80.00 -/* 00150 80B39240 460001A1 */ cvt.d.s $f6, $f0 -/* 00154 80B39244 3C0480B4 */ lui $a0, %hi(D_80B39A10) ## $a0 = 80B40000 -/* 00158 80B39248 44073000 */ mfc1 $a3, $f6 -/* 0015C 80B3924C 44063800 */ mfc1 $a2, $f7 -/* 00160 80B39250 24849A10 */ addiu $a0, $a0, %lo(D_80B39A10) ## $a0 = 80B39A10 -/* 00164 80B39254 E6000160 */ swc1 $f0, 0x0160($s0) ## 00000160 -/* 00168 80B39258 0C00084C */ jal osSyncPrintf - -/* 0016C 80B3925C E604015C */ swc1 $f4, 0x015C($s0) ## 0000015C -/* 00170 80B39260 3C188016 */ lui $t8, %hi(gSaveContext+4) -/* 00174 80B39264 8F18E664 */ lw $t8, %lo(gSaveContext+4)($t8) -/* 00178 80B39268 24197040 */ addiu $t9, $zero, 0x7040 ## $t9 = 00007040 -/* 0017C 80B3926C 3C0480B4 */ lui $a0, %hi(D_80B39A6C) ## $a0 = 80B40000 -/* 00180 80B39270 13000007 */ beq $t8, $zero, .L80B39290 -/* 00184 80B39274 00000000 */ nop -/* 00188 80B39278 3C0480B4 */ lui $a0, %hi(D_80B39A44) ## $a0 = 80B40000 -/* 0018C 80B3927C A619010E */ sh $t9, 0x010E($s0) ## 0000010E -/* 00190 80B39280 0C00084C */ jal osSyncPrintf - -/* 00194 80B39284 24849A44 */ addiu $a0, $a0, %lo(D_80B39A44) ## $a0 = 80B39A44 -/* 00198 80B39288 10000006 */ beq $zero, $zero, .L80B392A4 -/* 0019C 80B3928C 24090005 */ addiu $t1, $zero, 0x0005 ## $t1 = 00000005 -.L80B39290: -/* 001A0 80B39290 0C00084C */ jal osSyncPrintf - -/* 001A4 80B39294 24849A6C */ addiu $a0, $a0, %lo(D_80B39A6C) ## $a0 = FFFF9A6C -/* 001A8 80B39298 24087088 */ addiu $t0, $zero, 0x7088 ## $t0 = 00007088 -/* 001AC 80B3929C A608010E */ sh $t0, 0x010E($s0) ## 0000010E -/* 001B0 80B392A0 24090005 */ addiu $t1, $zero, 0x0005 ## $t1 = 00000005 -.L80B392A4: -/* 001B4 80B392A4 3C0480B4 */ lui $a0, %hi(D_80B39A94) ## $a0 = 80B40000 -/* 001B8 80B392A8 A6090156 */ sh $t1, 0x0156($s0) ## 00000156 -/* 001BC 80B392AC 24849A94 */ addiu $a0, $a0, %lo(D_80B39A94) ## $a0 = 80B39A94 -/* 001C0 80B392B0 0C00084C */ jal osSyncPrintf - -/* 001C4 80B392B4 9605010E */ lhu $a1, 0x010E($s0) ## 0000010E -/* 001C8 80B392B8 10000054 */ beq $zero, $zero, .L80B3940C -/* 001CC 80B392BC 00000000 */ nop -glabel L80B392C0 -/* 001D0 80B392C0 3C0480B4 */ lui $a0, %hi(D_80B39AD4) ## $a0 = 80B40000 -/* 001D4 80B392C4 0C00084C */ jal osSyncPrintf - -/* 001D8 80B392C8 24849AD4 */ addiu $a0, $a0, %lo(D_80B39AD4) ## $a0 = 80B39AD4 -/* 001DC 80B392CC 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 001E0 80B392D0 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00 -/* 001E4 80B392D4 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 001E8 80B392D8 44814000 */ mtc1 $at, $f8 ## $f8 = 40.00 -/* 001EC 80B392DC 460002A1 */ cvt.d.s $f10, $f0 -/* 001F0 80B392E0 240A5002 */ addiu $t2, $zero, 0x5002 ## $t2 = 00005002 -/* 001F4 80B392E4 240B0004 */ addiu $t3, $zero, 0x0004 ## $t3 = 00000004 -/* 001F8 80B392E8 44075000 */ mfc1 $a3, $f10 -/* 001FC 80B392EC 44065800 */ mfc1 $a2, $f11 -/* 00200 80B392F0 3C0480B4 */ lui $a0, %hi(D_80B39B08) ## $a0 = 80B40000 -/* 00204 80B392F4 A60A010E */ sh $t2, 0x010E($s0) ## 0000010E -/* 00208 80B392F8 A60B0156 */ sh $t3, 0x0156($s0) ## 00000156 -/* 0020C 80B392FC 24849B08 */ addiu $a0, $a0, %lo(D_80B39B08) ## $a0 = 80B39B08 -/* 00210 80B39300 E6000160 */ swc1 $f0, 0x0160($s0) ## 00000160 -/* 00214 80B39304 0C00084C */ jal osSyncPrintf - -/* 00218 80B39308 E608015C */ swc1 $f8, 0x015C($s0) ## 0000015C -/* 0021C 80B3930C 1000003F */ beq $zero, $zero, .L80B3940C -/* 00220 80B39310 00000000 */ nop -glabel L80B39314 -/* 00224 80B39314 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00228 80B39318 3C0142DC */ lui $at, 0x42DC ## $at = 42DC0000 -/* 0022C 80B3931C 44818000 */ mtc1 $at, $f16 ## $f16 = 110.00 -/* 00230 80B39320 460004A1 */ cvt.d.s $f18, $f0 -/* 00234 80B39324 240C501E */ addiu $t4, $zero, 0x501E ## $t4 = 0000501E -/* 00238 80B39328 240D0005 */ addiu $t5, $zero, 0x0005 ## $t5 = 00000005 -/* 0023C 80B3932C 44079000 */ mfc1 $a3, $f18 -/* 00240 80B39330 44069800 */ mfc1 $a2, $f19 -/* 00244 80B39334 3C0480B4 */ lui $a0, %hi(D_80B39B3C) ## $a0 = 80B40000 -/* 00248 80B39338 A60C010E */ sh $t4, 0x010E($s0) ## 0000010E -/* 0024C 80B3933C A60D0156 */ sh $t5, 0x0156($s0) ## 00000156 -/* 00250 80B39340 24849B3C */ addiu $a0, $a0, %lo(D_80B39B3C) ## $a0 = 80B39B3C -/* 00254 80B39344 E6000160 */ swc1 $f0, 0x0160($s0) ## 00000160 -/* 00258 80B39348 0C00084C */ jal osSyncPrintf - -/* 0025C 80B3934C E610015C */ swc1 $f16, 0x015C($s0) ## 0000015C -/* 00260 80B39350 1000002E */ beq $zero, $zero, .L80B3940C -/* 00264 80B39354 00000000 */ nop -glabel L80B39358 -/* 00268 80B39358 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 0026C 80B3935C 240E5020 */ addiu $t6, $zero, 0x5020 ## $t6 = 00005020 -/* 00270 80B39360 240F0006 */ addiu $t7, $zero, 0x0006 ## $t7 = 00000006 -/* 00274 80B39364 46000121 */ cvt.d.s $f4, $f0 -/* 00278 80B39368 3C0480B4 */ lui $a0, %hi(D_80B39B70) ## $a0 = 80B40000 -/* 0027C 80B3936C 44072000 */ mfc1 $a3, $f4 -/* 00280 80B39370 44062800 */ mfc1 $a2, $f5 -/* 00284 80B39374 A60E010E */ sh $t6, 0x010E($s0) ## 0000010E -/* 00288 80B39378 A60F0156 */ sh $t7, 0x0156($s0) ## 00000156 -/* 0028C 80B3937C 24849B70 */ addiu $a0, $a0, %lo(D_80B39B70) ## $a0 = 80B39B70 -/* 00290 80B39380 0C00084C */ jal osSyncPrintf - -/* 00294 80B39384 E6000160 */ swc1 $f0, 0x0160($s0) ## 00000160 -/* 00298 80B39388 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000 -/* 0029C 80B3938C 44813000 */ mtc1 $at, $f6 ## $f6 = 120.00 -/* 002A0 80B39390 3C188016 */ lui $t8, %hi(gSaveContext+0xed6) -/* 002A4 80B39394 E606015C */ swc1 $f6, 0x015C($s0) ## 0000015C -/* 002A8 80B39398 9718F536 */ lhu $t8, %lo(gSaveContext+0xed6)($t8) -/* 002AC 80B3939C 33192000 */ andi $t9, $t8, 0x2000 ## $t9 = 00000000 -/* 002B0 80B393A0 1320001A */ beq $t9, $zero, .L80B3940C -/* 002B4 80B393A4 00000000 */ nop -/* 002B8 80B393A8 0C00B55C */ jal Actor_Kill - -/* 002BC 80B393AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002C0 80B393B0 10000016 */ beq $zero, $zero, .L80B3940C -/* 002C4 80B393B4 00000000 */ nop -glabel L80B393B8 -/* 002C8 80B393B8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 002CC 80B393BC 3C0142DC */ lui $at, 0x42DC ## $at = 42DC0000 -/* 002D0 80B393C0 44814000 */ mtc1 $at, $f8 ## $f8 = 110.00 -/* 002D4 80B393C4 460002A1 */ cvt.d.s $f10, $f0 -/* 002D8 80B393C8 2408501F */ addiu $t0, $zero, 0x501F ## $t0 = 0000501F -/* 002DC 80B393CC 24090005 */ addiu $t1, $zero, 0x0005 ## $t1 = 00000005 -/* 002E0 80B393D0 44075000 */ mfc1 $a3, $f10 -/* 002E4 80B393D4 44065800 */ mfc1 $a2, $f11 -/* 002E8 80B393D8 3C0480B4 */ lui $a0, %hi(D_80B39BA4) ## $a0 = 80B40000 -/* 002EC 80B393DC A608010E */ sh $t0, 0x010E($s0) ## 0000010E -/* 002F0 80B393E0 A6090156 */ sh $t1, 0x0156($s0) ## 00000156 -/* 002F4 80B393E4 24849BA4 */ addiu $a0, $a0, %lo(D_80B39BA4) ## $a0 = 80B39BA4 -/* 002F8 80B393E8 E6000160 */ swc1 $f0, 0x0160($s0) ## 00000160 -/* 002FC 80B393EC 0C00084C */ jal osSyncPrintf - -/* 00300 80B393F0 E608015C */ swc1 $f8, 0x015C($s0) ## 0000015C -/* 00304 80B393F4 10000005 */ beq $zero, $zero, .L80B3940C -/* 00308 80B393F8 00000000 */ nop -.L80B393FC: -/* 0030C 80B393FC 240A7072 */ addiu $t2, $zero, 0x7072 ## $t2 = 00007072 -/* 00310 80B39400 240B0005 */ addiu $t3, $zero, 0x0005 ## $t3 = 00000005 -/* 00314 80B39404 A60A010E */ sh $t2, 0x010E($s0) ## 0000010E -/* 00318 80B39408 A60B0156 */ sh $t3, 0x0156($s0) ## 00000156 -.L80B3940C: -/* 0031C 80B3940C 3C0480B4 */ lui $a0, %hi(D_80B39BD8) ## $a0 = 80B40000 -/* 00320 80B39410 24849BD8 */ addiu $a0, $a0, %lo(D_80B39BD8) ## $a0 = 80B39BD8 -/* 00324 80B39414 0C00084C */ jal osSyncPrintf - -/* 00328 80B39418 9605010E */ lhu $a1, 0x010E($s0) ## 0000010E -/* 0032C 80B3941C 3C0C80B4 */ lui $t4, %hi(func_80B3943C) ## $t4 = 80B40000 -/* 00330 80B39420 258C943C */ addiu $t4, $t4, %lo(func_80B3943C) ## $t4 = 80B3943C -/* 00334 80B39424 AE0C014C */ sw $t4, 0x014C($s0) ## 0000014C -/* 00338 80B39428 8FBF001C */ lw $ra, 0x001C($sp) -.L80B3942C: -/* 0033C 80B3942C 8FB00018 */ lw $s0, 0x0018($sp) -/* 00340 80B39430 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00344 80B39434 03E00008 */ jr $ra -/* 00348 80B39438 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B3943C.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B3943C.s deleted file mode 100644 index 8e00577c35..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B3943C.s +++ /dev/null @@ -1,156 +0,0 @@ -.rdata -glabel D_80B39C18 - .asciz "\n\n" - .balign 4 - -glabel D_80B39C1C - .asciz "\x1b[33m☆☆☆☆☆ セーブ情報 ☆☆☆☆☆ %d\n\x1b[m" - .balign 4 - -glabel D_80B39C4C - .asciz "\x1b[35m☆☆☆☆☆ 種類インデックス ☆☆☆☆☆ %d\n\x1b[m" - .balign 4 - -glabel D_80B39C80 - .asciz "\x1b[36m☆☆☆☆☆ 実質メッセージ種類 %x\n\x1b[m" - .balign 4 - -glabel D_80B39CB0 - .asciz "\x1b[32m☆☆☆☆☆ 指定範囲 %d\n\x1b[m" - .balign 4 - -glabel D_80B39CE0 - .asciz "\n\n" - .balign 4 - -.text -glabel func_80B3943C -/* 0034C 80B3943C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00350 80B39440 AFBF001C */ sw $ra, 0x001C($sp) -/* 00354 80B39444 AFB00018 */ sw $s0, 0x0018($sp) -/* 00358 80B39448 AFA50024 */ sw $a1, 0x0024($sp) -/* 0035C 80B3944C 848E015A */ lh $t6, 0x015A($a0) ## 0000015A -/* 00360 80B39450 84980150 */ lh $t8, 0x0150($a0) ## 00000150 -/* 00364 80B39454 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 00368 80B39458 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001 -/* 0036C 80B3945C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00370 80B39460 1701000A */ bne $t8, $at, .L80B3948C -/* 00374 80B39464 A48F015A */ sh $t7, 0x015A($a0) ## 0000015A -/* 00378 80B39468 3C198016 */ lui $t9, %hi(gSaveContext+0xed6) -/* 0037C 80B3946C 9739F536 */ lhu $t9, %lo(gSaveContext+0xed6)($t9) -/* 00380 80B39470 33282000 */ andi $t0, $t9, 0x2000 ## $t0 = 00000000 -/* 00384 80B39474 51000006 */ beql $t0, $zero, .L80B39490 -/* 00388 80B39478 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 0038C 80B3947C 0C00B55C */ jal Actor_Kill - -/* 00390 80B39480 00000000 */ nop -/* 00394 80B39484 10000056 */ beq $zero, $zero, .L80B395E0 -/* 00398 80B39488 8FBF001C */ lw $ra, 0x001C($sp) -.L80B3948C: -/* 0039C 80B3948C 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -.L80B39490: -/* 003A0 80B39490 04A20005 */ bltzl $a1, .L80B394A8 -/* 003A4 80B39494 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 003A8 80B39498 0C00B2D0 */ jal Flags_GetSwitch - -/* 003AC 80B3949C 8FA40024 */ lw $a0, 0x0024($sp) -/* 003B0 80B394A0 1440004E */ bne $v0, $zero, .L80B395DC -/* 003B4 80B394A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80B394A8: -/* 003B8 80B394A8 0C00BC65 */ jal func_8002F194 -/* 003BC 80B394AC 8FA50024 */ lw $a1, 0x0024($sp) -/* 003C0 80B394B0 50400016 */ beql $v0, $zero, .L80B3950C -/* 003C4 80B394B4 C600015C */ lwc1 $f0, 0x015C($s0) ## 0000015C -/* 003C8 80B394B8 86090156 */ lh $t1, 0x0156($s0) ## 00000156 -/* 003CC 80B394BC 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 003D0 80B394C0 3C0A80B4 */ lui $t2, %hi(func_80B395F0) ## $t2 = 80B40000 -/* 003D4 80B394C4 11210003 */ beq $t1, $at, .L80B394D4 -/* 003D8 80B394C8 254A95F0 */ addiu $t2, $t2, %lo(func_80B395F0) ## $t2 = 80B395F0 -/* 003DC 80B394CC 10000043 */ beq $zero, $zero, .L80B395DC -/* 003E0 80B394D0 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C -.L80B394D4: -/* 003E4 80B394D4 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 003E8 80B394D8 04A00007 */ bltz $a1, .L80B394F8 -/* 003EC 80B394DC 00000000 */ nop -/* 003F0 80B394E0 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004 -/* 003F4 80B394E4 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 003F8 80B394E8 01616024 */ and $t4, $t3, $at -/* 003FC 80B394EC AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004 -/* 00400 80B394F0 0C00B2DD */ jal Flags_SetSwitch - -/* 00404 80B394F4 8FA40024 */ lw $a0, 0x0024($sp) -.L80B394F8: -/* 00408 80B394F8 3C0D80B4 */ lui $t5, %hi(func_80B391CC) ## $t5 = 80B40000 -/* 0040C 80B394FC 25AD91CC */ addiu $t5, $t5, %lo(func_80B391CC) ## $t5 = 80B391CC -/* 00410 80B39500 10000036 */ beq $zero, $zero, .L80B395DC -/* 00414 80B39504 AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C -/* 00418 80B39508 C600015C */ lwc1 $f0, 0x015C($s0) ## 0000015C -.L80B3950C: -/* 0041C 80B3950C C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 00420 80B39510 4604003C */ c.lt.s $f0, $f4 -/* 00424 80B39514 00000000 */ nop -/* 00428 80B39518 45030031 */ bc1tl .L80B395E0 -/* 0042C 80B3951C 8FBF001C */ lw $ra, 0x001C($sp) -/* 00430 80B39520 860E008A */ lh $t6, 0x008A($s0) ## 0000008A -/* 00434 80B39524 860F0032 */ lh $t7, 0x0032($s0) ## 00000032 -/* 00438 80B39528 01CF1023 */ subu $v0, $t6, $t7 -/* 0043C 80B3952C 00021400 */ sll $v0, $v0, 16 -/* 00440 80B39530 00021403 */ sra $v0, $v0, 16 -/* 00444 80B39534 04400004 */ bltz $v0, .L80B39548 -/* 00448 80B39538 00021823 */ subu $v1, $zero, $v0 -/* 0044C 80B3953C 00021C00 */ sll $v1, $v0, 16 -/* 00450 80B39540 10000003 */ beq $zero, $zero, .L80B39550 -/* 00454 80B39544 00031C03 */ sra $v1, $v1, 16 -.L80B39548: -/* 00458 80B39548 00031C00 */ sll $v1, $v1, 16 -/* 0045C 80B3954C 00031C03 */ sra $v1, $v1, 16 -.L80B39550: -/* 00460 80B39550 28614000 */ slti $at, $v1, 0x4000 -/* 00464 80B39554 50200022 */ beql $at, $zero, .L80B395E0 -/* 00468 80B39558 8FBF001C */ lw $ra, 0x001C($sp) -/* 0046C 80B3955C 8618015A */ lh $t8, 0x015A($s0) ## 0000015A -/* 00470 80B39560 3C0480B4 */ lui $a0, %hi(D_80B39C18) ## $a0 = 80B40000 -/* 00474 80B39564 2B010002 */ slti $at, $t8, 0x0002 -/* 00478 80B39568 54200018 */ bnel $at, $zero, .L80B395CC -/* 0047C 80B3956C A600015A */ sh $zero, 0x015A($s0) ## 0000015A -/* 00480 80B39570 0C00084C */ jal osSyncPrintf - -/* 00484 80B39574 24849C18 */ addiu $a0, $a0, %lo(D_80B39C18) ## $a0 = 80B39C18 -/* 00488 80B39578 3C0480B4 */ lui $a0, %hi(D_80B39C1C) ## $a0 = 80B40000 -/* 0048C 80B3957C 24849C1C */ addiu $a0, $a0, %lo(D_80B39C1C) ## $a0 = 80B39C1C -/* 00490 80B39580 0C00084C */ jal osSyncPrintf - -/* 00494 80B39584 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 00498 80B39588 3C0480B4 */ lui $a0, %hi(D_80B39C4C) ## $a0 = 80B40000 -/* 0049C 80B3958C 24849C4C */ addiu $a0, $a0, %lo(D_80B39C4C) ## $a0 = 80B39C4C -/* 004A0 80B39590 0C00084C */ jal osSyncPrintf - -/* 004A4 80B39594 86050150 */ lh $a1, 0x0150($s0) ## 00000150 -/* 004A8 80B39598 3C0480B4 */ lui $a0, %hi(D_80B39C80) ## $a0 = 80B40000 -/* 004AC 80B3959C 24849C80 */ addiu $a0, $a0, %lo(D_80B39C80) ## $a0 = 80B39C80 -/* 004B0 80B395A0 0C00084C */ jal osSyncPrintf - -/* 004B4 80B395A4 9605010E */ lhu $a1, 0x010E($s0) ## 0000010E -/* 004B8 80B395A8 3C0480B4 */ lui $a0, %hi(D_80B39CB0) ## $a0 = 80B40000 -/* 004BC 80B395AC 24849CB0 */ addiu $a0, $a0, %lo(D_80B39CB0) ## $a0 = 80B39CB0 -/* 004C0 80B395B0 0C00084C */ jal osSyncPrintf - -/* 004C4 80B395B4 86050034 */ lh $a1, 0x0034($s0) ## 00000034 -/* 004C8 80B395B8 3C0480B4 */ lui $a0, %hi(D_80B39CE0) ## $a0 = 80B40000 -/* 004CC 80B395BC 0C00084C */ jal osSyncPrintf - -/* 004D0 80B395C0 24849CE0 */ addiu $a0, $a0, %lo(D_80B39CE0) ## $a0 = 80B39CE0 -/* 004D4 80B395C4 C600015C */ lwc1 $f0, 0x015C($s0) ## 0000015C -/* 004D8 80B395C8 A600015A */ sh $zero, 0x015A($s0) ## 0000015A -.L80B395CC: -/* 004DC 80B395CC 44060000 */ mfc1 $a2, $f0 -/* 004E0 80B395D0 8FA50024 */ lw $a1, 0x0024($sp) -/* 004E4 80B395D4 0C00BCB3 */ jal func_8002F2CC -/* 004E8 80B395D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80B395DC: -/* 004EC 80B395DC 8FBF001C */ lw $ra, 0x001C($sp) -.L80B395E0: -/* 004F0 80B395E0 8FB00018 */ lw $s0, 0x0018($sp) -/* 004F4 80B395E4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 004F8 80B395E8 03E00008 */ jr $ra -/* 004FC 80B395EC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B395F0.s b/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B395F0.s deleted file mode 100644 index 2fa82a2a73..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B395F0.s +++ /dev/null @@ -1,168 +0,0 @@ -.rdata -glabel D_80B39CE4 - .asciz "\x1b[32m ☆☆☆☆☆ まだコドモなの! ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39D18 - .asciz "\x1b[33m ☆☆☆☆☆ アダルトなの。。。 ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -glabel D_80B39D4C - .asciz "\x1b[35m ☆☆☆☆☆ はずれ! ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -.text -glabel func_80B395F0 -/* 00500 80B395F0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00504 80B395F4 AFB0002C */ sw $s0, 0x002C($sp) -/* 00508 80B395F8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0050C 80B395FC AFBF0034 */ sw $ra, 0x0034($sp) -/* 00510 80B39600 AFB10030 */ sw $s1, 0x0030($sp) -/* 00514 80B39604 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00518 80B39608 0C042F6F */ jal func_8010BDBC -/* 0051C 80B3960C 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8 -/* 00520 80B39610 860E0156 */ lh $t6, 0x0156($s0) ## 00000156 -/* 00524 80B39614 55C20077 */ bnel $t6, $v0, .L80B397F4 -/* 00528 80B39618 8FBF0034 */ lw $ra, 0x0034($sp) -/* 0052C 80B3961C 0C041AF2 */ jal func_80106BC8 -/* 00530 80B39620 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00534 80B39624 50400073 */ beql $v0, $zero, .L80B397F4 -/* 00538 80B39628 8FBF0034 */ lw $ra, 0x0034($sp) -/* 0053C 80B3962C 86050154 */ lh $a1, 0x0154($s0) ## 00000154 -/* 00540 80B39630 04A20008 */ bltzl $a1, .L80B39654 -/* 00544 80B39634 86020150 */ lh $v0, 0x0150($s0) ## 00000150 -/* 00548 80B39638 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004 -/* 0054C 80B3963C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 00550 80B39640 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00554 80B39644 01E1C024 */ and $t8, $t7, $at -/* 00558 80B39648 0C00B2DD */ jal Flags_SetSwitch - -/* 0055C 80B3964C AE180004 */ sw $t8, 0x0004($s0) ## 00000004 -/* 00560 80B39650 86020150 */ lh $v0, 0x0150($s0) ## 00000150 -.L80B39654: -/* 00564 80B39654 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001 -/* 00568 80B39658 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 0056C 80B3965C 10430009 */ beq $v0, $v1, .L80B39684 -/* 00570 80B39660 00000000 */ nop -/* 00574 80B39664 1041000D */ beq $v0, $at, .L80B3969C -/* 00578 80B39668 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 0057C 80B3966C 10410031 */ beq $v0, $at, .L80B39734 -/* 00580 80B39670 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00584 80B39674 10410047 */ beq $v0, $at, .L80B39794 -/* 00588 80B39678 00000000 */ nop -/* 0058C 80B3967C 1000005D */ beq $zero, $zero, .L80B397F4 -/* 00590 80B39680 8FBF0034 */ lw $ra, 0x0034($sp) -.L80B39684: -/* 00594 80B39684 0C041B33 */ jal func_80106CCC -/* 00598 80B39688 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0059C 80B3968C 3C1980B4 */ lui $t9, %hi(func_80B391CC) ## $t9 = 80B40000 -/* 005A0 80B39690 273991CC */ addiu $t9, $t9, %lo(func_80B391CC) ## $t9 = 80B391CC -/* 005A4 80B39694 10000056 */ beq $zero, $zero, .L80B397F0 -/* 005A8 80B39698 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C -.L80B3969C: -/* 005AC 80B3969C 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000 -/* 005B0 80B396A0 00511021 */ addu $v0, $v0, $s1 -/* 005B4 80B396A4 904204BD */ lbu $v0, 0x04BD($v0) ## 000104BD -/* 005B8 80B396A8 3C088016 */ lui $t0, %hi(gSaveContext+4) -/* 005BC 80B396AC 10400005 */ beq $v0, $zero, .L80B396C4 -/* 005C0 80B396B0 00000000 */ nop -/* 005C4 80B396B4 10430012 */ beq $v0, $v1, .L80B39700 -/* 005C8 80B396B8 3C0480B4 */ lui $a0, %hi(D_80B39D4C) ## $a0 = 80B40000 -/* 005CC 80B396BC 10000015 */ beq $zero, $zero, .L80B39714 -/* 005D0 80B396C0 240C0006 */ addiu $t4, $zero, 0x0006 ## $t4 = 00000006 -.L80B396C4: -/* 005D4 80B396C4 8D08E664 */ lw $t0, %lo(gSaveContext+4)($t0) -/* 005D8 80B396C8 3C0480B4 */ lui $a0, %hi(D_80B39D18) ## $a0 = 80B40000 -/* 005DC 80B396CC 11000007 */ beq $t0, $zero, .L80B396EC -/* 005E0 80B396D0 00000000 */ nop -/* 005E4 80B396D4 3C0480B4 */ lui $a0, %hi(D_80B39CE4) ## $a0 = 80B40000 -/* 005E8 80B396D8 0C00084C */ jal osSyncPrintf - -/* 005EC 80B396DC 24849CE4 */ addiu $a0, $a0, %lo(D_80B39CE4) ## $a0 = 80B39CE4 -/* 005F0 80B396E0 24095001 */ addiu $t1, $zero, 0x5001 ## $t1 = 00005001 -/* 005F4 80B396E4 1000000A */ beq $zero, $zero, .L80B39710 -/* 005F8 80B396E8 A609010E */ sh $t1, 0x010E($s0) ## 0000010E -.L80B396EC: -/* 005FC 80B396EC 0C00084C */ jal osSyncPrintf - -/* 00600 80B396F0 24849D18 */ addiu $a0, $a0, %lo(D_80B39D18) ## $a0 = FFFF9D18 -/* 00604 80B396F4 240A5003 */ addiu $t2, $zero, 0x5003 ## $t2 = 00005003 -/* 00608 80B396F8 10000005 */ beq $zero, $zero, .L80B39710 -/* 0060C 80B396FC A60A010E */ sh $t2, 0x010E($s0) ## 0000010E -.L80B39700: -/* 00610 80B39700 0C00084C */ jal osSyncPrintf - -/* 00614 80B39704 24849D4C */ addiu $a0, $a0, %lo(D_80B39D4C) ## $a0 = FFFF9D4C -/* 00618 80B39708 240B5004 */ addiu $t3, $zero, 0x5004 ## $t3 = 00005004 -/* 0061C 80B3970C A60B010E */ sh $t3, 0x010E($s0) ## 0000010E -.L80B39710: -/* 00620 80B39710 240C0006 */ addiu $t4, $zero, 0x0006 ## $t4 = 00000006 -.L80B39714: -/* 00624 80B39714 A60C0156 */ sh $t4, 0x0156($s0) ## 00000156 -/* 00628 80B39718 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0062C 80B3971C 0C042DC8 */ jal func_8010B720 -/* 00630 80B39720 9605010E */ lhu $a1, 0x010E($s0) ## 0000010E -/* 00634 80B39724 3C0D80B4 */ lui $t5, %hi(func_80B391CC) ## $t5 = 80B40000 -/* 00638 80B39728 25AD91CC */ addiu $t5, $t5, %lo(func_80B391CC) ## $t5 = 80B391CC -/* 0063C 80B3972C 10000030 */ beq $zero, $zero, .L80B397F0 -/* 00640 80B39730 AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C -.L80B39734: -/* 00644 80B39734 0C041B33 */ jal func_80106CCC -/* 00648 80B39738 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0064C 80B3973C 920E0164 */ lbu $t6, 0x0164($s0) ## 00000164 -/* 00650 80B39740 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24 -/* 00654 80B39744 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00658 80B39748 15C0000E */ bne $t6, $zero, .L80B39784 -/* 0065C 80B3974C 2406000D */ addiu $a2, $zero, 0x000D ## $a2 = 0000000D -/* 00660 80B39750 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028 -/* 00664 80B39754 8E070024 */ lw $a3, 0x0024($s0) ## 00000024 -/* 00668 80B39758 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 -/* 0066C 80B3975C E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00670 80B39760 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C -/* 00674 80B39764 AFAF0024 */ sw $t7, 0x0024($sp) -/* 00678 80B39768 AFA00020 */ sw $zero, 0x0020($sp) -/* 0067C 80B3976C AFA0001C */ sw $zero, 0x001C($sp) -/* 00680 80B39770 AFA00018 */ sw $zero, 0x0018($sp) -/* 00684 80B39774 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 00688 80B39778 E7A60014 */ swc1 $f6, 0x0014($sp) -/* 0068C 80B3977C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00690 80B39780 A2180164 */ sb $t8, 0x0164($s0) ## 00000164 -.L80B39784: -/* 00694 80B39784 3C1980B4 */ lui $t9, %hi(func_80B391CC) ## $t9 = 80B40000 -/* 00698 80B39788 273991CC */ addiu $t9, $t9, %lo(func_80B391CC) ## $t9 = 80B391CC -/* 0069C 80B3978C 10000018 */ beq $zero, $zero, .L80B397F0 -/* 006A0 80B39790 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C -.L80B39794: -/* 006A4 80B39794 0C041B33 */ jal func_80106CCC -/* 006A8 80B39798 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 006AC 80B3979C 92080164 */ lbu $t0, 0x0164($s0) ## 00000164 -/* 006B0 80B397A0 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24 -/* 006B4 80B397A4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 006B8 80B397A8 1500000E */ bne $t0, $zero, .L80B397E4 -/* 006BC 80B397AC 2406000D */ addiu $a2, $zero, 0x000D ## $a2 = 0000000D -/* 006C0 80B397B0 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028 -/* 006C4 80B397B4 8E070024 */ lw $a3, 0x0024($s0) ## 00000024 -/* 006C8 80B397B8 24090003 */ addiu $t1, $zero, 0x0003 ## $t1 = 00000003 -/* 006CC 80B397BC E7A80010 */ swc1 $f8, 0x0010($sp) -/* 006D0 80B397C0 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C -/* 006D4 80B397C4 AFA90024 */ sw $t1, 0x0024($sp) -/* 006D8 80B397C8 AFA00020 */ sw $zero, 0x0020($sp) -/* 006DC 80B397CC AFA0001C */ sw $zero, 0x001C($sp) -/* 006E0 80B397D0 AFA00018 */ sw $zero, 0x0018($sp) -/* 006E4 80B397D4 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 006E8 80B397D8 E7AA0014 */ swc1 $f10, 0x0014($sp) -/* 006EC 80B397DC 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 006F0 80B397E0 A20A0164 */ sb $t2, 0x0164($s0) ## 00000164 -.L80B397E4: -/* 006F4 80B397E4 3C0B80B4 */ lui $t3, %hi(func_80B391CC) ## $t3 = 80B40000 -/* 006F8 80B397E8 256B91CC */ addiu $t3, $t3, %lo(func_80B391CC) ## $t3 = 80B391CC -/* 006FC 80B397EC AE0B014C */ sw $t3, 0x014C($s0) ## 0000014C -.L80B397F0: -/* 00700 80B397F0 8FBF0034 */ lw $ra, 0x0034($sp) -.L80B397F4: -/* 00704 80B397F4 8FB0002C */ lw $s0, 0x002C($sp) -/* 00708 80B397F8 8FB10030 */ lw $s1, 0x0030($sp) -/* 0070C 80B397FC 03E00008 */ jr $ra -/* 00710 80B39800 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 diff --git a/data/overlays/actors/z_en_wonder_talk.data.s b/data/overlays/actors/z_en_wonder_talk.data.s deleted file mode 100644 index d90eca8403..0000000000 --- a/data/overlays/actors/z_en_wonder_talk.data.s +++ /dev/null @@ -1,18 +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 .data - -.balign 16 - -glabel En_Wonder_Talk_InitVars - .word 0x01470600, 0x08000009, 0x00010000, 0x00000168 -.word EnWonderTalk_Init -.word EnWonderTalk_Destroy -.word EnWonderTalk_Update -.word 0x00000000 - diff --git a/data/overlays/actors/z_en_wonder_talk.reloc.s b/data/overlays/actors/z_en_wonder_talk.reloc.s deleted file mode 100644 index 08dddf0e75..0000000000 --- a/data/overlays/actors/z_en_wonder_talk.reloc.s +++ /dev/null @@ -1,13 +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 .rodata - -.balign 16 - -glabel D_80B39D90 - .incbin "baserom/ovl_En_Wonder_Talk", 0xCA0, 0x00000140 diff --git a/spec b/spec index fecc8ce9ef..88d9486ca1 100644 --- a/spec +++ b/spec @@ -3353,8 +3353,7 @@ endseg beginseg name "ovl_En_Wonder_Talk" include "build/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" - include "build/data/overlays/actors/z_en_wonder_talk.data.o" - include "build/data/overlays/actors/z_en_wonder_talk.reloc.o" + include "build/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" endseg beginseg 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 e130fe6ab9..435c66120f 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 @@ -5,6 +5,7 @@ */ #include "z_en_wonder_talk.h" +#include #define FLAGS 0x08000009 @@ -14,7 +15,10 @@ void EnWonderTalk_Init(Actor* thisx, GlobalContext* globalCtx); void EnWonderTalk_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnWonderTalk_Update(Actor* thisx, GlobalContext* globalCtx); -/* +void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx); +void func_80B395F0(EnWonderTalk* this, GlobalContext* globalCtx); +void func_80B3943C(EnWonderTalk* this, GlobalContext* globalCtx); + const ActorInit En_Wonder_Talk_InitVars = { ACTOR_EN_WONDER_TALK, ACTORTYPE_PROP, @@ -26,15 +30,230 @@ const ActorInit En_Wonder_Talk_InitVars = { (ActorFunc)EnWonderTalk_Update, NULL, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Destroy.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Init.s") +void EnWonderTalk_Destroy(Actor* thisx, GlobalContext* globalCtx) { +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B391CC.s") +void EnWonderTalk_Init(Actor* thisx, GlobalContext* globalCtx) { + EnWonderTalk* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B3943C.s") + osSyncPrintf("\n\n"); + // Special conversation + osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 特殊会話くん ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/func_80B395F0.s") + this->unk_150 = (this->actor.params >> 0xB) & 0x1F; + this->unk_152 = (this->actor.params >> 6) & 0x1F; + this->switchFlag = this->actor.params & 0x3F; + if (this->switchFlag == 0x3F) { + this->switchFlag = -1; + } + this->actor.unk_1F = 1; + if (this->switchFlag >= 0) { + if (Flags_GetSwitch(globalCtx, this->switchFlag)) { + osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); + Actor_Kill(&this->actor); + return; + } + } + this->actionFunc = func_80B391CC; + this->unk_15C = 40.0f; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wonder_Talk/EnWonderTalk_Update.s") +void func_80B391CC(EnWonderTalk* this, GlobalContext* globalCtx) { + if (this->switchFlag < 0 || !Flags_GetSwitch(globalCtx, this->switchFlag)) { + switch (this->unk_150) { + case 1: + // Slate GO! + osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 石板GO! ☆☆☆☆☆ \n" VT_RST); + this->height = 0.0f; + this->unk_15C = 80.0f; + // Attention coordinates + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 0.0f); + if (LINK_IS_CHILD) { + this->actor.textId = 0x7040; + // Children + osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ こども ☆☆☆☆☆ \n" VT_RST); + } else { + // Adult + osSyncPrintf(VT_FGCOL(CYAN) " ☆☆☆☆☆ おとな ☆☆☆☆☆ \n" VT_RST); + this->actor.textId = 0x7088; + } + + this->unk_156 = 5; + 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->height = 30.0f; + this->unk_15C = 40.0f; + // Attention coordinates + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 30.0f); + break; + case 3: + this->actor.textId = 0x501E; + this->unk_156 = 5; + this->height = 0.0f; + this->unk_15C = 110.0f; + // Attention coordinates + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 0.0f); + break; + case 4: + this->actor.textId = 0x5020; + this->unk_156 = 6; + this->height = 0.0f; + // Attention coordinates + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 0.0f); + this->unk_15C = 120.0f; + if (gSaveContext.eventChkInf[1] & 0x2000) { + Actor_Kill(&this->actor); + } + break; + case 5: + this->actor.textId = 0x501F; + this->unk_156 = 5; + this->height = 0.0f; + this->unk_15C = 110.0f; + // Attention coordinates + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 0.0f); + break; + default: + this->actor.textId = 0x7072; + this->unk_156 = 5; + break; + } + + osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ this->actor.talk_message ☆☆☆☆☆ %x\n" VT_RST, this->actor.textId); + this->actionFunc = func_80B3943C; + } +} + +void func_80B3943C(EnWonderTalk* this, GlobalContext* globalCtx) { + s16 yawDiff; + s16 yawDiffTemp; + + this->unk_15A++; + if (this->unk_150 == 4 && (gSaveContext.eventChkInf[1] & 0x2000)) { + Actor_Kill(&this->actor); + return; + } + if (this->switchFlag < 0 || !Flags_GetSwitch(globalCtx, this->switchFlag)) { + if ((func_8002F194(&this->actor, globalCtx))) { + if (this->unk_156 != 6) { + this->actionFunc = func_80B395F0; + } else { + if (this->switchFlag >= 0) { + this->actor.flags &= ~1; + Flags_SetSwitch(globalCtx, this->switchFlag); + } + this->actionFunc = func_80B391CC; + } + } else if (!(this->unk_15C < this->actor.xzDistFromLink)) { + yawDiffTemp = (this->actor.yawTowardsLink - this->actor.posRot.rot.y); + yawDiff = ABS(yawDiffTemp); + + if (yawDiff < 0x4000) { + if (this->unk_15A >= 2) { + osSyncPrintf("\n\n"); + // Save information + osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ セーブ情報\t\t☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); + // Type index + osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 種類インデックス\t☆☆☆☆☆ %d\n" VT_RST, this->unk_150); + // Actual message type + osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 実質メッセージ種類 %x\n" VT_RST, this->actor.textId); + // Specified range + osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 指定範囲 %d\n" VT_RST, this->actor.posRot.rot.z); + osSyncPrintf("\n\n"); + } + this->unk_15A = 0; + func_8002F2CC(&this->actor, globalCtx, this->unk_15C); + } + } + } +} + +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_CHILD) { + // 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.posRot.pos.x, + this->actor.posRot.pos.y, this->actor.posRot.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.posRot.pos.x, + this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 3); + this->unk_164 = 1; + } + this->actionFunc = func_80B391CC; + break; + } + } + } +} + +void EnWonderTalk_Update(Actor* thisx, GlobalContext* globalCtx) { + EnWonderTalk* this = THIS; + + if (this->unk_158 != 0) { + this->unk_158--; + } + this->actionFunc(this, globalCtx); + Actor_SetHeight(&this->actor, this->height); + + if (BREG(0) != 0) { + if (this->unk_15A != 0) { + if ((this->unk_15A & 1) == 0) { + DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, + this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, + 1.0f, 1.0f, 1.0f, 10, 10, 10, 255, 4, globalCtx->state.gfxCtx); + } + } else { + DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, + this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, 1.0f, + 1.0f, 1.0f, 0, 255, 0, 255, 4, globalCtx->state.gfxCtx); + } + } +} diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.h b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.h index 40c9c9e887..e7cb19f5c7 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.h +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.h @@ -6,9 +6,20 @@ struct EnWonderTalk; +typedef void (*EnWonderTalkFunc)(struct EnWonderTalk*, GlobalContext*); + typedef struct EnWonderTalk { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x1C]; + /* 0x014C */ EnWonderTalkFunc actionFunc; + /* 0x0150 */ s16 unk_150; + /* 0x0152 */ s16 unk_152; + /* 0x0154 */ s16 switchFlag; + /* 0x0156 */ s16 unk_156; + /* 0x0158 */ s16 unk_158; + /* 0x0160 */ s16 unk_15A; + /* 0x015C */ f32 unk_15C; + /* 0x0160 */ f32 height; + /* 0x0164 */ u8 unk_164; } EnWonderTalk; // size = 0x0168 extern const ActorInit En_Wonder_Talk_InitVars;