From dff2dfef0f626b280abd03c670c2f7f557f87251 Mon Sep 17 00:00:00 2001 From: fig02 Date: Tue, 2 Feb 2021 20:30:21 -0500 Subject: [PATCH] En_Arrow OK (#648) * fix colliderinit typo * fix initchain * start init * match init * progress * progress * more funcs * match func_809B3DD8 * progress * last func almost done * enum * name some more types * progress * all but one * fix warning * remove undefined syms * match arrows * review * spec * remove asm --- .../actors/ovl_Eff_Dust/func_8099E4F4.s | 4 +- .../actors/ovl_Eff_Dust/func_8099E784.s | 4 +- .../actors/ovl_En_Arrow/EnArrow_Destroy.s | 37 -- .../actors/ovl_En_Arrow/EnArrow_Draw.s | 275 ----------- .../actors/ovl_En_Arrow/EnArrow_Init.s | 168 ------- .../actors/ovl_En_Arrow/EnArrow_Update.s | 95 ---- .../actors/ovl_En_Arrow/func_809B3920.s | 3 - .../actors/ovl_En_Arrow/func_809B3BD4.s | 97 ---- .../actors/ovl_En_Arrow/func_809B3CEC.s | 72 --- .../actors/ovl_En_Arrow/func_809B3DD8.s | 141 ------ .../actors/ovl_En_Arrow/func_809B3FDC.s | 437 ----------------- .../actors/ovl_En_Arrow/func_809B45E0.s | 30 -- .../actors/ovl_En_Arrow/func_809B4640.s | 33 -- .../actors/ovl_En_Arrow/func_809B4800.s | 95 ---- assets/xml/objects/gameplay_keep.xml | 4 +- data/overlays/actors/z_en_arrow.data.s | 50 -- data/overlays/actors/z_en_arrow.reloc.s | 13 - spec | 3 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 4 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 4 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 4 +- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 13 +- .../actors/ovl_En_Arow_Trap/z_en_arow_trap.c | 4 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 456 +++++++++++++++++- src/overlays/actors/ovl_En_Arrow/z_en_arrow.h | 35 +- src/overlays/actors/ovl_En_Boom/z_en_boom.h | 18 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 2 +- .../actors/ovl_player_actor/z_player.c | 17 +- .../z_eff_ss_kirakira.c | 4 +- 29 files changed, 513 insertions(+), 1609 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3920.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3BD4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3CEC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3DD8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3FDC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B45E0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4640.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4800.s delete mode 100644 data/overlays/actors/z_en_arrow.data.s delete mode 100644 data/overlays/actors/z_en_arrow.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E4F4.s b/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E4F4.s index 69f67b6249..a7340b566c 100644 --- a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E4F4.s +++ b/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E4F4.s @@ -83,9 +83,9 @@ glabel func_8099E4F4 /* 00D2C 8099E5FC C6220550 */ lwc1 $f2, 0x0550($s1) ## 00000550 /* 00D30 8099E600 C6300554 */ lwc1 $f16, 0x0554($s1) ## 00000554 /* 00D34 8099E604 C6320558 */ lwc1 $f18, 0x0558($s1) ## 00000558 -/* 00D38 8099E608 3C020403 */ lui $v0, %hi(gEffFairySparklesDL) ## $v0 = 04030000 +/* 00D38 8099E608 3C020403 */ lui $v0, %hi(gEffSparklesDL) ## $v0 = 04030000 /* 00D3C 8099E60C 4602B201 */ sub.s $f8, $f22, $f2 -/* 00D40 8099E610 24427880 */ addiu $v0, $v0, %lo(gEffFairySparklesDL) ## $v0 = 04037880 +/* 00D40 8099E610 24427880 */ addiu $v0, $v0, %lo(gEffSparklesDL) ## $v0 = 04037880 /* 00D44 8099E614 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 /* 00D48 8099E618 4604B001 */ sub.s $f0, $f22, $f4 /* 00D4C 8099E61C C6440000 */ lwc1 $f4, 0x0000($s2) ## 0000024C diff --git a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E784.s b/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E784.s index 2953c12e1b..9f250044b0 100644 --- a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E784.s +++ b/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E784.s @@ -116,9 +116,9 @@ glabel func_8099E784 /* 01028 8099E8F8 AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000 /* 0102C 8099E8FC C62A0000 */ lwc1 $f10, 0x0000($s1) ## 0000014C /* 01030 8099E900 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 01034 8099E904 3C020403 */ lui $v0, %hi(gEffFairySparklesDL) ## $v0 = 04030000 +/* 01034 8099E904 3C020403 */ lui $v0, %hi(gEffSparklesDL) ## $v0 = 04030000 /* 01038 8099E908 46185402 */ mul.s $f16, $f10, $f24 -/* 0103C 8099E90C 24427880 */ addiu $v0, $v0, %lo(gEffFairySparklesDL) ## $v0 = 04037880 +/* 0103C 8099E90C 24427880 */ addiu $v0, $v0, %lo(gEffSparklesDL) ## $v0 = 04037880 /* 01040 8099E910 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 /* 01044 8099E914 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF /* 01048 8099E918 0041B024 */ and $s6, $v0, $at diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Destroy.s deleted file mode 100644 index 1b393a3c96..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Destroy.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel EnArrow_Destroy -/* 0022C 809B3B4C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00230 809B3B50 AFBF001C */ sw $ra, 0x001C($sp) -/* 00234 809B3B54 AFB00018 */ sw $s0, 0x0018($sp) -/* 00238 809B3B58 AFA50024 */ sw $a1, 0x0024($sp) -/* 0023C 809B3B5C 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 00240 809B3B60 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00244 809B3B64 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00248 809B3B68 29C10006 */ slti $at, $t6, 0x0006 -/* 0024C 809B3B6C 50200004 */ beql $at, $zero, .L809B3B80 -/* 00250 809B3B70 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 00254 809B3B74 0C009C27 */ jal Effect_Delete -/* 00258 809B3B78 8E050228 */ lw $a1, 0x0228($s0) ## 00000228 -/* 0025C 809B3B7C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -.L809B3B80: -/* 00260 809B3B80 0C0295BC */ jal SkelAnime_Free -/* 00264 809B3B84 8FA50024 */ lw $a1, 0x0024($sp) -/* 00268 809B3B88 8FA40024 */ lw $a0, 0x0024($sp) -/* 0026C 809B3B8C 0C017418 */ jal Collider_DestroyQuad -/* 00270 809B3B90 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -/* 00274 809B3B94 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 00278 809B3B98 5040000A */ beql $v0, $zero, .L809B3BC4 -/* 0027C 809B3B9C 8FBF001C */ lw $ra, 0x001C($sp) -/* 00280 809B3BA0 8C4F0130 */ lw $t7, 0x0130($v0) ## 00000130 -/* 00284 809B3BA4 51E00007 */ beql $t7, $zero, .L809B3BC4 -/* 00288 809B3BA8 8FBF001C */ lw $ra, 0x001C($sp) -/* 0028C 809B3BAC 8C580004 */ lw $t8, 0x0004($v0) ## 00000004 -/* 00290 809B3BB0 3C01FFFF */ lui $at, 0xFFFF ## $at = FFFF0000 -/* 00294 809B3BB4 34217FFF */ ori $at, $at, 0x7FFF ## $at = FFFF7FFF -/* 00298 809B3BB8 0301C824 */ and $t9, $t8, $at -/* 0029C 809B3BBC AC590004 */ sw $t9, 0x0004($v0) ## 00000004 -/* 002A0 809B3BC0 8FBF001C */ lw $ra, 0x001C($sp) -.L809B3BC4: -/* 002A4 809B3BC4 8FB00018 */ lw $s0, 0x0018($sp) -/* 002A8 809B3BC8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 002AC 809B3BCC 03E00008 */ jr $ra -/* 002B0 809B3BD0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Draw.s deleted file mode 100644 index 5d5bd418e0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Draw.s +++ /dev/null @@ -1,275 +0,0 @@ -.rdata -glabel D_809B4EF0 - .asciz "../z_en_arrow.c" - .balign 4 - -glabel D_809B4F00 - .asciz "../z_en_arrow.c" - .balign 4 - -glabel D_809B4F10 - .asciz "../z_en_arrow.c" - .balign 4 - -.late_rodata -glabel D_809B4F5C - .float 0.0000958738 -glabel D_809B4F60 - .float 0.0000958738 - -.text -glabel EnArrow_Draw -/* 01048 809B4968 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88 -/* 0104C 809B496C AFBF002C */ sw $ra, 0x002C($sp) -/* 01050 809B4970 AFB00028 */ sw $s0, 0x0028($sp) -/* 01054 809B4974 AFA5007C */ sw $a1, 0x007C($sp) -/* 01058 809B4978 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 0105C 809B497C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 01060 809B4980 29C10009 */ slti $at, $t6, 0x0009 -/* 01064 809B4984 5020001C */ beql $at, $zero, .L809B49F8 -/* 01068 809B4988 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00 -/* 0106C 809B498C 0C024F46 */ jal func_80093D18 -/* 01070 809B4990 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000 -/* 01074 809B4994 3C188016 */ lui $t8, %hi(gGameInfo) -/* 01078 809B4998 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* 0107C 809B499C C60400EC */ lwc1 $f4, 0x00EC($s0) ## 000000EC -/* 01080 809B49A0 8FA4007C */ lw $a0, 0x007C($sp) -/* 01084 809B49A4 87190492 */ lh $t9, 0x0492($t8) ## 80160492 -/* 01088 809B49A8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 0108C 809B49AC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 01090 809B49B0 44993000 */ mtc1 $t9, $f6 ## $f6 = 0.00 -/* 01094 809B49B4 00000000 */ nop -/* 01098 809B49B8 46803220 */ cvt.s.w $f8, $f6 -/* 0109C 809B49BC 4608203C */ c.lt.s $f4, $f8 -/* 010A0 809B49C0 00000000 */ nop -/* 010A4 809B49C4 45000003 */ bc1f .L809B49D4 -/* 010A8 809B49C8 00000000 */ nop -/* 010AC 809B49CC 10000001 */ beq $zero, $zero, .L809B49D4 -/* 010B0 809B49D0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L809B49D4: -/* 010B4 809B49D4 8E050150 */ lw $a1, 0x0150($s0) ## 00000150 -/* 010B8 809B49D8 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C -/* 010BC 809B49DC AFA20018 */ sw $v0, 0x0018($sp) -/* 010C0 809B49E0 AFB00014 */ sw $s0, 0x0014($sp) -/* 010C4 809B49E4 0C0282D0 */ jal SkelAnime_DrawLod -/* 010C8 809B49E8 AFA00010 */ sw $zero, 0x0010($sp) -/* 010CC 809B49EC 100000C9 */ beq $zero, $zero, .L809B4D14 -/* 010D0 809B49F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 010D4 809B49F4 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00 -.L809B49F8: -/* 010D8 809B49F8 C6100068 */ lwc1 $f16, 0x0068($s0) ## 00000068 -/* 010DC 809B49FC 46105032 */ c.eq.s $f10, $f16 -/* 010E0 809B4A00 00000000 */ nop -/* 010E4 809B4A04 450300C3 */ bc1tl .L809B4D14 -/* 010E8 809B4A08 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 010EC 809B4A0C 92040248 */ lbu $a0, 0x0248($s0) ## 00000248 -/* 010F0 809B4A10 00800821 */ addu $at, $a0, $zero -/* 010F4 809B4A14 00042080 */ sll $a0, $a0, 2 -/* 010F8 809B4A18 00812021 */ addu $a0, $a0, $at -/* 010FC 809B4A1C 000420C0 */ sll $a0, $a0, 3 -/* 01100 809B4A20 00812023 */ subu $a0, $a0, $at -/* 01104 809B4A24 00042100 */ sll $a0, $a0, 4 -/* 01108 809B4A28 00812021 */ addu $a0, $a0, $at -/* 0110C 809B4A2C 000420C0 */ sll $a0, $a0, 3 -/* 01110 809B4A30 00042400 */ sll $a0, $a0, 16 -/* 01114 809B4A34 0C01DE0D */ jal Math_CosS - ## coss? -/* 01118 809B4A38 00042403 */ sra $a0, $a0, 16 -/* 0111C 809B4A3C 3C0142FF */ lui $at, 0x42FF ## $at = 42FF0000 -/* 01120 809B4A40 44811000 */ mtc1 $at, $f2 ## $f2 = 127.50 -/* 01124 809B4A44 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 01128 809B4A48 3C06809B */ lui $a2, %hi(D_809B4EF0) ## $a2 = 809B0000 -/* 0112C 809B4A4C 46020482 */ mul.s $f18, $f0, $f2 -/* 01130 809B4A50 24C64EF0 */ addiu $a2, $a2, %lo(D_809B4EF0) ## $a2 = 809B4EF0 -/* 01134 809B4A54 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFDC -/* 01138 809B4A58 46029180 */ add.s $f6, $f18, $f2 -/* 0113C 809B4A5C 4449F800 */ cfc1 $t1, $31 -/* 01140 809B4A60 44CAF800 */ ctc1 $t2, $31 -/* 01144 809B4A64 00000000 */ nop -/* 01148 809B4A68 46003124 */ cvt.w.s $f4, $f6 -/* 0114C 809B4A6C 444AF800 */ cfc1 $t2, $31 -/* 01150 809B4A70 00000000 */ nop -/* 01154 809B4A74 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 01158 809B4A78 11400012 */ beq $t2, $zero, .L809B4AC4 -/* 0115C 809B4A7C 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 01160 809B4A80 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00 -/* 01164 809B4A84 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 01168 809B4A88 46043101 */ sub.s $f4, $f6, $f4 -/* 0116C 809B4A8C 44CAF800 */ ctc1 $t2, $31 -/* 01170 809B4A90 00000000 */ nop -/* 01174 809B4A94 46002124 */ cvt.w.s $f4, $f4 -/* 01178 809B4A98 444AF800 */ cfc1 $t2, $31 -/* 0117C 809B4A9C 00000000 */ nop -/* 01180 809B4AA0 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 01184 809B4AA4 15400005 */ bne $t2, $zero, .L809B4ABC -/* 01188 809B4AA8 00000000 */ nop -/* 0118C 809B4AAC 440A2000 */ mfc1 $t2, $f4 -/* 01190 809B4AB0 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 01194 809B4AB4 10000007 */ beq $zero, $zero, .L809B4AD4 -/* 01198 809B4AB8 01415025 */ or $t2, $t2, $at ## $t2 = 80000000 -.L809B4ABC: -/* 0119C 809B4ABC 10000005 */ beq $zero, $zero, .L809B4AD4 -/* 011A0 809B4AC0 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -.L809B4AC4: -/* 011A4 809B4AC4 440A2000 */ mfc1 $t2, $f4 -/* 011A8 809B4AC8 00000000 */ nop -/* 011AC 809B4ACC 0540FFFB */ bltz $t2, .L809B4ABC -/* 011B0 809B4AD0 00000000 */ nop -.L809B4AD4: -/* 011B4 809B4AD4 8FAB007C */ lw $t3, 0x007C($sp) -/* 011B8 809B4AD8 A3AA006F */ sb $t2, 0x006F($sp) -/* 011BC 809B4ADC 44C9F800 */ ctc1 $t1, $31 -/* 011C0 809B4AE0 8D650000 */ lw $a1, 0x0000($t3) ## 00000000 -/* 011C4 809B4AE4 24070542 */ addiu $a3, $zero, 0x0542 ## $a3 = 00000542 -/* 011C8 809B4AE8 0C031AB1 */ jal Graph_OpenDisps -/* 011CC 809B4AEC AFA50064 */ sw $a1, 0x0064($sp) -/* 011D0 809B4AF0 8FAC007C */ lw $t4, 0x007C($sp) -/* 011D4 809B4AF4 0C024F05 */ jal func_80093C14 -/* 011D8 809B4AF8 8D840000 */ lw $a0, 0x0000($t4) ## 00000000 -/* 011DC 809B4AFC 860D001C */ lh $t5, 0x001C($s0) ## 0000001C -/* 011E0 809B4B00 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 011E4 809B4B04 8FA80064 */ lw $t0, 0x0064($sp) -/* 011E8 809B4B08 15A10016 */ bne $t5, $at, .L809B4B64 -/* 011EC 809B4B0C 3C0EFA00 */ lui $t6, 0xFA00 ## $t6 = FA000000 -/* 011F0 809B4B10 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 011F4 809B4B14 3C0FFA00 */ lui $t7, 0xFA00 ## $t7 = FA000000 -/* 011F8 809B4B18 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 011FC 809B4B1C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008 -/* 01200 809B4B20 AD0E02D0 */ sw $t6, 0x02D0($t0) ## 000002D0 -/* 01204 809B4B24 AC580004 */ sw $t8, 0x0004($v0) ## 00000004 -/* 01208 809B4B28 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000 -/* 0120C 809B4B2C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 01210 809B4B30 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000 -/* 01214 809B4B34 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 01218 809B4B38 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 0121C 809B4B3C AD1902D0 */ sw $t9, 0x02D0($t0) ## 000002D0 -/* 01220 809B4B40 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -/* 01224 809B4B44 93AB006F */ lbu $t3, 0x006F($sp) -/* 01228 809B4B48 3421FF00 */ ori $at, $at, 0xFF00 ## $at = 00FFFF00 -/* 0122C 809B4B4C 01616025 */ or $t4, $t3, $at ## $t4 = 00FFFF00 -/* 01230 809B4B50 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 01234 809B4B54 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00 -/* 01238 809B4B58 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004 -/* 0123C 809B4B5C 10000014 */ beq $zero, $zero, .L809B4BB0 -/* 01240 809B4B60 E7A80068 */ swc1 $f8, 0x0068($sp) -.L809B4B64: -/* 01244 809B4B64 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 01248 809B4B68 3C0F0C00 */ lui $t7, 0x0C00 ## $t7 = 0C000000 -/* 0124C 809B4B6C 35EF00FF */ ori $t7, $t7, 0x00FF ## $t7 = 0C0000FF -/* 01250 809B4B70 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 01254 809B4B74 AD0D02D0 */ sw $t5, 0x02D0($t0) ## 000002D0 -/* 01258 809B4B78 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 0125C 809B4B7C AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 01260 809B4B80 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 01264 809B4B84 3C19FB00 */ lui $t9, 0xFB00 ## $t9 = FB000000 -/* 01268 809B4B88 3C01FAFA */ lui $at, 0xFAFA ## $at = FAFA0000 -/* 0126C 809B4B8C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 01270 809B4B90 AD1802D0 */ sw $t8, 0x02D0($t0) ## 000002D0 -/* 01274 809B4B94 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 01278 809B4B98 93AA006F */ lbu $t2, 0x006F($sp) -/* 0127C 809B4B9C 01415825 */ or $t3, $t2, $at ## $t3 = FAFA0000 -/* 01280 809B4BA0 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 01284 809B4BA4 44815000 */ mtc1 $at, $f10 ## $f10 = 150.00 -/* 01288 809B4BA8 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 0128C 809B4BAC E7AA0068 */ swc1 $f10, 0x0068($sp) -.L809B4BB0: -/* 01290 809B4BB0 0C034213 */ jal Matrix_Push -/* 01294 809B4BB4 AFA80064 */ sw $t0, 0x0064($sp) -/* 01298 809B4BB8 8FA4007C */ lw $a0, 0x007C($sp) -/* 0129C 809B4BBC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 012A0 809B4BC0 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0 -/* 012A4 809B4BC4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 012A8 809B4BC8 0C03424C */ jal Matrix_Mult -/* 012AC 809B4BCC 00812021 */ addu $a0, $a0, $at -/* 012B0 809B4BD0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 012B4 809B4BD4 C6100068 */ lwc1 $f16, 0x0068($s0) ## 00000068 -/* 012B8 809B4BD8 8FAC007C */ lw $t4, 0x007C($sp) -/* 012BC 809B4BDC 3C0D0001 */ lui $t5, 0x0001 ## $t5 = 00010000 -/* 012C0 809B4BE0 46100032 */ c.eq.s $f0, $f16 -/* 012C4 809B4BE4 8FA80064 */ lw $t0, 0x0064($sp) -/* 012C8 809B4BE8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 012CC 809B4BEC 01AC6821 */ addu $t5, $t5, $t4 -/* 012D0 809B4BF0 45020004 */ bc1fl .L809B4C04 -/* 012D4 809B4BF4 8DAD1DE4 */ lw $t5, 0x1DE4($t5) ## 00011DE4 -/* 012D8 809B4BF8 10000013 */ beq $zero, $zero, .L809B4C48 -/* 012DC 809B4BFC 46000306 */ mov.s $f12, $f0 -/* 012E0 809B4C00 8DAD1DE4 */ lw $t5, 0x1DE4($t5) ## 00011DE4 -.L809B4C04: -/* 012E4 809B4C04 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000 -/* 012E8 809B4C08 31AE00FF */ andi $t6, $t5, 0x00FF ## $t6 = 00000000 -/* 012EC 809B4C0C 000E7940 */ sll $t7, $t6, 5 -/* 012F0 809B4C10 01EE7823 */ subu $t7, $t7, $t6 -/* 012F4 809B4C14 000F7880 */ sll $t7, $t7, 2 -/* 012F8 809B4C18 01EE7821 */ addu $t7, $t7, $t6 -/* 012FC 809B4C1C 000F7940 */ sll $t7, $t7, 5 -/* 01300 809B4C20 448F9000 */ mtc1 $t7, $f18 ## $f18 = 0.00 -/* 01304 809B4C24 05E10004 */ bgez $t7, .L809B4C38 -/* 01308 809B4C28 468091A0 */ cvt.s.w $f6, $f18 -/* 0130C 809B4C2C 44812000 */ mtc1 $at, $f4 ## $f4 = 4294967296.00 -/* 01310 809B4C30 00000000 */ nop -/* 01314 809B4C34 46043180 */ add.s $f6, $f6, $f4 -.L809B4C38: -/* 01318 809B4C38 3C01809B */ lui $at, %hi(D_809B4F5C) ## $at = 809B0000 -/* 0131C 809B4C3C C4284F5C */ lwc1 $f8, %lo(D_809B4F5C)($at) -/* 01320 809B4C40 46083302 */ mul.s $f12, $f6, $f8 -/* 01324 809B4C44 00000000 */ nop -.L809B4C48: -/* 01328 809B4C48 0C0343B5 */ jal Matrix_RotateZ -/* 0132C 809B4C4C AFA80064 */ sw $t0, 0x0064($sp) -/* 01330 809B4C50 C7AC0068 */ lwc1 $f12, 0x0068($sp) -/* 01334 809B4C54 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001 -/* 01338 809B4C58 44066000 */ mfc1 $a2, $f12 -/* 0133C 809B4C5C 0C0342A3 */ jal Matrix_Scale -/* 01340 809B4C60 46006386 */ mov.s $f14, $f12 -/* 01344 809B4C64 8FA80064 */ lw $t0, 0x0064($sp) -/* 01348 809B4C68 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000 -/* 0134C 809B4C6C 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003 -/* 01350 809B4C70 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 01354 809B4C74 3C05809B */ lui $a1, %hi(D_809B4F00) ## $a1 = 809B0000 -/* 01358 809B4C78 24A54F00 */ addiu $a1, $a1, %lo(D_809B4F00) ## $a1 = 809B4F00 -/* 0135C 809B4C7C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 01360 809B4C80 AD1802D0 */ sw $t8, 0x02D0($t0) ## 000002D0 -/* 01364 809B4C84 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 01368 809B4C88 8FA9007C */ lw $t1, 0x007C($sp) -/* 0136C 809B4C8C 2406055E */ addiu $a2, $zero, 0x055E ## $a2 = 0000055E -/* 01370 809B4C90 8D240000 */ lw $a0, 0x0000($t1) ## 00000000 -/* 01374 809B4C94 AFA80064 */ sw $t0, 0x0064($sp) -/* 01378 809B4C98 0C0346A2 */ jal Matrix_NewMtx -/* 0137C 809B4C9C AFA20040 */ sw $v0, 0x0040($sp) -/* 01380 809B4CA0 8FA30040 */ lw $v1, 0x0040($sp) -/* 01384 809B4CA4 8FA80064 */ lw $t0, 0x0064($sp) -/* 01388 809B4CA8 3C0C0403 */ lui $t4, %hi(gEffFairySparklesDL) ## $t4 = 04030000 -/* 0138C 809B4CAC AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 01390 809B4CB0 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 01394 809B4CB4 258C7880 */ addiu $t4, $t4, %lo(gEffFairySparklesDL) ## $t4 = 04037880 -/* 01398 809B4CB8 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000 -/* 0139C 809B4CBC 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 013A0 809B4CC0 AD0A02D0 */ sw $t2, 0x02D0($t0) ## 000002D0 -/* 013A4 809B4CC4 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004 -/* 013A8 809B4CC8 0C034221 */ jal Matrix_Pull -/* 013AC 809B4CCC AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000 -/* 013B0 809B4CD0 860D0032 */ lh $t5, 0x0032($s0) ## 00000032 -/* 013B4 809B4CD4 3C01809B */ lui $at, %hi(D_809B4F60) ## $at = 809B0000 -/* 013B8 809B4CD8 C4324F60 */ lwc1 $f18, %lo(D_809B4F60)($at) -/* 013BC 809B4CDC 448D5000 */ mtc1 $t5, $f10 ## $f10 = 0.00 -/* 013C0 809B4CE0 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 013C4 809B4CE4 46805420 */ cvt.s.w $f16, $f10 -/* 013C8 809B4CE8 46128302 */ mul.s $f12, $f16, $f18 -/* 013CC 809B4CEC 0C034348 */ jal Matrix_RotateY -/* 013D0 809B4CF0 00000000 */ nop -/* 013D4 809B4CF4 8FAE007C */ lw $t6, 0x007C($sp) -/* 013D8 809B4CF8 3C06809B */ lui $a2, %hi(D_809B4F10) ## $a2 = 809B0000 -/* 013DC 809B4CFC 24C64F10 */ addiu $a2, $a2, %lo(D_809B4F10) ## $a2 = 809B4F10 -/* 013E0 809B4D00 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFDC -/* 013E4 809B4D04 24070565 */ addiu $a3, $zero, 0x0565 ## $a3 = 00000565 -/* 013E8 809B4D08 0C031AD5 */ jal Graph_CloseDisps -/* 013EC 809B4D0C 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000 -/* 013F0 809B4D10 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L809B4D14: -/* 013F4 809B4D14 0C26D200 */ jal func_809B4800 -/* 013F8 809B4D18 8FA5007C */ lw $a1, 0x007C($sp) -/* 013FC 809B4D1C 8FBF002C */ lw $ra, 0x002C($sp) -/* 01400 809B4D20 8FB00028 */ lw $s0, 0x0028($sp) -/* 01404 809B4D24 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000 -/* 01408 809B4D28 03E00008 */ jr $ra -/* 0140C 809B4D2C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Init.s deleted file mode 100644 index bbf52be668..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Init.s +++ /dev/null @@ -1,168 +0,0 @@ -.rdata -glabel D_809B4EB0 - .asciz "../z_en_arrow.c" - .balign 4 - -glabel D_809B4EC0 - .asciz "this->at_info.cl_elem.at_btl_info.at_type = %x\n" - .balign 4 - -.text -glabel EnArrow_Init -/* 00008 809B3928 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 0000C 809B392C AFA5003C */ sw $a1, 0x003C($sp) -/* 00010 809B3930 AFBF002C */ sw $ra, 0x002C($sp) -/* 00014 809B3934 AFB00028 */ sw $s0, 0x0028($sp) -/* 00018 809B3938 3C05809B */ lui $a1, %hi(D_809B4DA0) ## $a1 = 809B0000 -/* 0001C 809B393C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00020 809B3940 0C01E037 */ jal Actor_ProcessInitChain - -/* 00024 809B3944 24A54DA0 */ addiu $a1, $a1, %lo(D_809B4DA0) ## $a1 = 809B4DA0 -/* 00028 809B3948 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 0002C 809B394C 2401FFF6 */ addiu $at, $zero, 0xFFF6 ## $at = FFFFFFF6 -/* 00030 809B3950 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 00034 809B3954 14410004 */ bne $v0, $at, .L809B3968 -/* 00038 809B3958 240F000A */ addiu $t7, $zero, 0x000A ## $t7 = 0000000A -/* 0003C 809B395C A60F001C */ sh $t7, 0x001C($s0) ## 0000001C -/* 00040 809B3960 A20E024B */ sb $t6, 0x024B($s0) ## 0000024B -/* 00044 809B3964 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L809B3968: -/* 00048 809B3968 2841000A */ slti $at, $v0, 0x000A -/* 0004C 809B396C 1020006E */ beq $at, $zero, .L809B3B28 -/* 00050 809B3970 28410009 */ slti $at, $v0, 0x0009 -/* 00054 809B3974 1020000B */ beq $at, $zero, .L809B39A4 -/* 00058 809B3978 8FA4003C */ lw $a0, 0x003C($sp) -/* 0005C 809B397C 3C060400 */ lui $a2, %hi(gArrowSkel) ## $a2 = 04000000 -/* 00060 809B3980 3C070400 */ lui $a3, %hi(gArrow2Anim) ## $a3 = 04000000 -/* 00064 809B3984 24E7436C */ addiu $a3, $a3, %lo(gArrow2Anim) ## $a3 = 0400436C -/* 00068 809B3988 24C66010 */ addiu $a2, $a2, %lo(gArrowSkel) ## $a2 = 04006010 -/* 0006C 809B398C 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00070 809B3990 AFA00010 */ sw $zero, 0x0010($sp) -/* 00074 809B3994 AFA00014 */ sw $zero, 0x0014($sp) -/* 00078 809B3998 0C02915F */ jal SkelAnime_Init - -/* 0007C 809B399C AFA00018 */ sw $zero, 0x0018($sp) -/* 00080 809B39A0 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L809B39A4: -/* 00084 809B39A4 28410003 */ slti $at, $v0, 0x0003 -/* 00088 809B39A8 10200014 */ beq $at, $zero, .L809B39FC -/* 0008C 809B39AC 26050228 */ addiu $a1, $s0, 0x0228 ## $a1 = 00000228 -/* 00090 809B39B0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 00094 809B39B4 14410005 */ bne $v0, $at, .L809B39CC -/* 00098 809B39B8 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002 -/* 0009C 809B39BC 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004 -/* 000A0 809B39C0 3C01809B */ lui $at, %hi(D_809B4DBC) ## $at = 809B0000 -/* 000A4 809B39C4 10000004 */ beq $zero, $zero, .L809B39D8 -/* 000A8 809B39C8 A0384DBC */ sb $t8, %lo(D_809B4DBC)($at) -.L809B39CC: -/* 000AC 809B39CC 24190010 */ addiu $t9, $zero, 0x0010 ## $t9 = 00000010 -/* 000B0 809B39D0 3C01809B */ lui $at, %hi(D_809B4DBC) ## $at = 809B0000 -/* 000B4 809B39D4 A0394DBC */ sb $t9, %lo(D_809B4DBC)($at) -.L809B39D8: -/* 000B8 809B39D8 3C08809B */ lui $t0, %hi(D_809B4DA4) ## $t0 = 809B0000 -/* 000BC 809B39DC 25084DA4 */ addiu $t0, $t0, %lo(D_809B4DA4) ## $t0 = 809B4DA4 -/* 000C0 809B39E0 AFA80014 */ sw $t0, 0x0014($sp) -/* 000C4 809B39E4 8FA4003C */ lw $a0, 0x003C($sp) -/* 000C8 809B39E8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 000CC 809B39EC 0C009B35 */ jal Effect_Add - ## Effect_Add -/* 000D0 809B39F0 AFA00010 */ sw $zero, 0x0010($sp) -/* 000D4 809B39F4 10000027 */ beq $zero, $zero, .L809B3A94 -/* 000D8 809B39F8 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -.L809B39FC: -/* 000DC 809B39FC 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 000E0 809B3A00 1441000B */ bne $v0, $at, .L809B3A30 -/* 000E4 809B3A04 8FA4003C */ lw $a0, 0x003C($sp) -/* 000E8 809B3A08 3C09809B */ lui $t1, %hi(D_809B4DC8) ## $t1 = 809B0000 -/* 000EC 809B3A0C 25294DC8 */ addiu $t1, $t1, %lo(D_809B4DC8) ## $t1 = 809B4DC8 -/* 000F0 809B3A10 AFA90014 */ sw $t1, 0x0014($sp) -/* 000F4 809B3A14 26050228 */ addiu $a1, $s0, 0x0228 ## $a1 = 00000228 -/* 000F8 809B3A18 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002 -/* 000FC 809B3A1C 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00100 809B3A20 0C009B35 */ jal Effect_Add - ## Effect_Add -/* 00104 809B3A24 AFA00010 */ sw $zero, 0x0010($sp) -/* 00108 809B3A28 1000001A */ beq $zero, $zero, .L809B3A94 -/* 0010C 809B3A2C 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -.L809B3A30: -/* 00110 809B3A30 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 00114 809B3A34 1441000B */ bne $v0, $at, .L809B3A64 -/* 00118 809B3A38 8FA4003C */ lw $a0, 0x003C($sp) -/* 0011C 809B3A3C 3C0A809B */ lui $t2, %hi(D_809B4DEC) ## $t2 = 809B0000 -/* 00120 809B3A40 254A4DEC */ addiu $t2, $t2, %lo(D_809B4DEC) ## $t2 = 809B4DEC -/* 00124 809B3A44 AFAA0014 */ sw $t2, 0x0014($sp) -/* 00128 809B3A48 26050228 */ addiu $a1, $s0, 0x0228 ## $a1 = 00000228 -/* 0012C 809B3A4C 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002 -/* 00130 809B3A50 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00134 809B3A54 0C009B35 */ jal Effect_Add - ## Effect_Add -/* 00138 809B3A58 AFA00010 */ sw $zero, 0x0010($sp) -/* 0013C 809B3A5C 1000000D */ beq $zero, $zero, .L809B3A94 -/* 00140 809B3A60 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -.L809B3A64: -/* 00144 809B3A64 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00148 809B3A68 14410009 */ bne $v0, $at, .L809B3A90 -/* 0014C 809B3A6C 8FA4003C */ lw $a0, 0x003C($sp) -/* 00150 809B3A70 3C0B809B */ lui $t3, %hi(D_809B4E10) ## $t3 = 809B0000 -/* 00154 809B3A74 256B4E10 */ addiu $t3, $t3, %lo(D_809B4E10) ## $t3 = 809B4E10 -/* 00158 809B3A78 AFAB0014 */ sw $t3, 0x0014($sp) -/* 0015C 809B3A7C 26050228 */ addiu $a1, $s0, 0x0228 ## $a1 = 00000228 -/* 00160 809B3A80 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002 -/* 00164 809B3A84 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00168 809B3A88 0C009B35 */ jal Effect_Add - ## Effect_Add -/* 0016C 809B3A8C AFA00010 */ sw $zero, 0x0010($sp) -.L809B3A90: -/* 00170 809B3A90 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -.L809B3A94: -/* 00174 809B3A94 AFA50030 */ sw $a1, 0x0030($sp) -/* 00178 809B3A98 0C017406 */ jal Collider_InitQuad -/* 0017C 809B3A9C 8FA4003C */ lw $a0, 0x003C($sp) -/* 00180 809B3AA0 3C07809B */ lui $a3, %hi(D_809B4D50) ## $a3 = 809B0000 -/* 00184 809B3AA4 8FA50030 */ lw $a1, 0x0030($sp) -/* 00188 809B3AA8 24E74D50 */ addiu $a3, $a3, %lo(D_809B4D50) ## $a3 = 809B4D50 -/* 0018C 809B3AAC 8FA4003C */ lw $a0, 0x003C($sp) -/* 00190 809B3AB0 0C017441 */ jal Collider_SetQuad -/* 00194 809B3AB4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00198 809B3AB8 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 0019C 809B3ABC 240F0011 */ addiu $t7, $zero, 0x0011 ## $t7 = 00000011 -/* 001A0 809B3AC0 28410003 */ slti $at, $v0, 0x0003 -/* 001A4 809B3AC4 10200006 */ beq $at, $zero, .L809B3AE0 -/* 001A8 809B3AC8 00000000 */ nop -/* 001AC 809B3ACC 920C01BD */ lbu $t4, 0x01BD($s0) ## 000001BD -/* 001B0 809B3AD0 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 001B4 809B3AD4 318EFFE7 */ andi $t6, $t4, 0xFFE7 ## $t6 = 00000000 -/* 001B8 809B3AD8 A20E01BD */ sb $t6, 0x01BD($s0) ## 000001BD -/* 001BC 809B3ADC A20E01BD */ sb $t6, 0x01BD($s0) ## 000001BD -.L809B3AE0: -/* 001C0 809B3AE0 04410003 */ bgez $v0, .L809B3AF0 -/* 001C4 809B3AE4 2841000A */ slti $at, $v0, 0x000A -/* 001C8 809B3AE8 1000000F */ beq $zero, $zero, .L809B3B28 -/* 001CC 809B3AEC A20F01A0 */ sb $t7, 0x01A0($s0) ## 000001A0 -.L809B3AF0: -/* 001D0 809B3AF0 1020000D */ beq $at, $zero, .L809B3B28 -/* 001D4 809B3AF4 0002C080 */ sll $t8, $v0, 2 -/* 001D8 809B3AF8 3C19809B */ lui $t9, %hi(D_809B4E34) ## $t9 = 809B0000 -/* 001DC 809B3AFC 0338C821 */ addu $t9, $t9, $t8 -/* 001E0 809B3B00 8F394E34 */ lw $t9, %lo(D_809B4E34)($t9) -/* 001E4 809B3B04 3C04809B */ lui $a0, %hi(D_809B4EB0) ## $a0 = 809B0000 -/* 001E8 809B3B08 24844EB0 */ addiu $a0, $a0, %lo(D_809B4EB0) ## $a0 = 809B4EB0 -/* 001EC 809B3B0C 240502C3 */ addiu $a1, $zero, 0x02C3 ## $a1 = 000002C3 -/* 001F0 809B3B10 0C000B84 */ jal LogUtils_LogThreadId - -/* 001F4 809B3B14 AE1901A8 */ sw $t9, 0x01A8($s0) ## 000001A8 -/* 001F8 809B3B18 3C04809B */ lui $a0, %hi(D_809B4EC0) ## $a0 = 809B0000 -/* 001FC 809B3B1C 24844EC0 */ addiu $a0, $a0, %lo(D_809B4EC0) ## $a0 = 809B4EC0 -/* 00200 809B3B20 0C00084C */ jal osSyncPrintf - -/* 00204 809B3B24 8E0501A8 */ lw $a1, 0x01A8($s0) ## 000001A8 -.L809B3B28: -/* 00208 809B3B28 3C05809B */ lui $a1, %hi(func_809B3BD4) ## $a1 = 809B0000 -/* 0020C 809B3B2C 24A53BD4 */ addiu $a1, $a1, %lo(func_809B3BD4) ## $a1 = 809B3BD4 -/* 00210 809B3B30 0C26CE48 */ jal func_809B3920 -/* 00214 809B3B34 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00218 809B3B38 8FBF002C */ lw $ra, 0x002C($sp) -/* 0021C 809B3B3C 8FB00028 */ lw $s0, 0x0028($sp) -/* 00220 809B3B40 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00224 809B3B44 03E00008 */ jr $ra -/* 00228 809B3B48 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Update.s deleted file mode 100644 index 801366551f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Update.s +++ /dev/null @@ -1,95 +0,0 @@ -glabel EnArrow_Update -/* 00D88 809B46A8 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0 -/* 00D8C 809B46AC AFBF003C */ sw $ra, 0x003C($sp) -/* 00D90 809B46B0 AFB10038 */ sw $s1, 0x0038($sp) -/* 00D94 809B46B4 AFB00034 */ sw $s0, 0x0034($sp) -/* 00D98 809B46B8 908E024B */ lbu $t6, 0x024B($a0) ## 0000024B -/* 00D9C 809B46BC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00DA0 809B46C0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00DA4 809B46C4 15C0000C */ bne $t6, $zero, .L809B46F8 -/* 00DA8 809B46C8 8CA61C44 */ lw $a2, 0x1C44($a1) ## 00001C44 -/* 00DAC 809B46CC 848F001C */ lh $t7, 0x001C($a0) ## 0000001C -/* 00DB0 809B46D0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00DB4 809B46D4 05E00004 */ bltz $t7, .L809B46E8 -/* 00DB8 809B46D8 00000000 */ nop -/* 00DBC 809B46DC 90D80A73 */ lbu $t8, 0x0A73($a2) ## 00000A73 -/* 00DC0 809B46E0 57000006 */ bnel $t8, $zero, .L809B46FC -/* 00DC4 809B46E4 8E19025C */ lw $t9, 0x025C($s0) ## 0000025C -.L809B46E8: -/* 00DC8 809B46E8 0C023A37 */ jal Player_InBlockingCsMode -/* 00DCC 809B46EC 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 00DD0 809B46F0 54400007 */ bnel $v0, $zero, .L809B4710 -/* 00DD4 809B46F4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L809B46F8: -/* 00DD8 809B46F8 8E19025C */ lw $t9, 0x025C($s0) ## 0000025C -.L809B46FC: -/* 00DDC 809B46FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00DE0 809B4700 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00DE4 809B4704 0320F809 */ jalr $ra, $t9 -/* 00DE8 809B4708 00000000 */ nop -/* 00DEC 809B470C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L809B4710: -/* 00DF0 809B4710 28410003 */ slti $at, $v0, 0x0003 -/* 00DF4 809B4714 14200022 */ bne $at, $zero, .L809B47A0 -/* 00DF8 809B4718 28410009 */ slti $at, $v0, 0x0009 -/* 00DFC 809B471C 10200020 */ beq $at, $zero, .L809B47A0 -/* 00E00 809B4720 3C08809B */ lui $t0, %hi(D_809B4E5C) ## $t0 = 809B0000 -/* 00E04 809B4724 25084E5C */ addiu $t0, $t0, %lo(D_809B4E5C) ## $t0 = 809B4E5C -/* 00E08 809B4728 8D0A0000 */ lw $t2, 0x0000($t0) ## 809B4E5C -/* 00E0C 809B472C 27A20048 */ addiu $v0, $sp, 0x0048 ## $v0 = FFFFFFE8 -/* 00E10 809B4730 AC4A0000 */ sw $t2, 0x0000($v0) ## FFFFFFE8 -/* 00E14 809B4734 8D090004 */ lw $t1, 0x0004($t0) ## 809B4E60 -/* 00E18 809B4738 AC490004 */ sw $t1, 0x0004($v0) ## FFFFFFEC -/* 00E1C 809B473C 8D0A0008 */ lw $t2, 0x0008($t0) ## 809B4E64 -/* 00E20 809B4740 AC4A0008 */ sw $t2, 0x0008($v0) ## FFFFFFF0 -/* 00E24 809B4744 8E0B011C */ lw $t3, 0x011C($s0) ## 0000011C -/* 00E28 809B4748 55600029 */ bnel $t3, $zero, .L809B47F0 -/* 00E2C 809B474C 8FBF003C */ lw $ra, 0x003C($sp) -/* 00E30 809B4750 860C001C */ lh $t4, 0x001C($s0) ## 0000001C -/* 00E34 809B4754 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -/* 00E38 809B4758 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24 -/* 00E3C 809B475C 000C6840 */ sll $t5, $t4, 1 -/* 00E40 809B4760 004D7021 */ addu $t6, $v0, $t5 -/* 00E44 809B4764 85C7FFFA */ lh $a3, -0x0006($t6) ## FFFFFFFA -/* 00E48 809B4768 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00E4C 809B476C C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028 -/* 00E50 809B4770 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00E54 809B4774 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000 -/* 00E58 809B4778 E7A60014 */ swc1 $f6, 0x0014($sp) -/* 00E5C 809B477C C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C -/* 00E60 809B4780 AFA00028 */ sw $zero, 0x0028($sp) -/* 00E64 809B4784 AFA00024 */ sw $zero, 0x0024($sp) -/* 00E68 809B4788 AFA00020 */ sw $zero, 0x0020($sp) -/* 00E6C 809B478C AFA0001C */ sw $zero, 0x001C($sp) -/* 00E70 809B4790 0C00C916 */ jal Actor_SpawnAsChild - -/* 00E74 809B4794 E7A80018 */ swc1 $f8, 0x0018($sp) -/* 00E78 809B4798 10000015 */ beq $zero, $zero, .L809B47F0 -/* 00E7C 809B479C 8FBF003C */ lw $ra, 0x003C($sp) -.L809B47A0: -/* 00E80 809B47A0 14400012 */ bne $v0, $zero, .L809B47EC -/* 00E84 809B47A4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00E88 809B47A8 3C0F809B */ lui $t7, %hi(D_809B4E80) ## $t7 = 809B0000 -/* 00E8C 809B47AC 3C18809B */ lui $t8, %hi(D_809B4E84) ## $t8 = 809B0000 -/* 00E90 809B47B0 27184E84 */ addiu $t8, $t8, %lo(D_809B4E84) ## $t8 = 809B4E84 -/* 00E94 809B47B4 25EF4E80 */ addiu $t7, $t7, %lo(D_809B4E80) ## $t7 = 809B4E80 -/* 00E98 809B47B8 3C06809B */ lui $a2, %hi(D_809B4E68) ## $a2 = 809B0000 -/* 00E9C 809B47BC 3C07809B */ lui $a3, %hi(D_809B4E74) ## $a3 = 809B0000 -/* 00EA0 809B47C0 24190064 */ addiu $t9, $zero, 0x0064 ## $t9 = 00000064 -/* 00EA4 809B47C4 24080008 */ addiu $t0, $zero, 0x0008 ## $t0 = 00000008 -/* 00EA8 809B47C8 AFA80020 */ sw $t0, 0x0020($sp) -/* 00EAC 809B47CC AFB90018 */ sw $t9, 0x0018($sp) -/* 00EB0 809B47D0 24E74E74 */ addiu $a3, $a3, %lo(D_809B4E74) ## $a3 = 809B4E74 -/* 00EB4 809B47D4 24C64E68 */ addiu $a2, $a2, %lo(D_809B4E68) ## $a2 = 809B4E68 -/* 00EB8 809B47D8 AFAF0010 */ sw $t7, 0x0010($sp) -/* 00EBC 809B47DC AFB80014 */ sw $t8, 0x0014($sp) -/* 00EC0 809B47E0 2605021C */ addiu $a1, $s0, 0x021C ## $a1 = 0000021C -/* 00EC4 809B47E4 0C00A0DB */ jal func_8002836C -/* 00EC8 809B47E8 AFA0001C */ sw $zero, 0x001C($sp) -.L809B47EC: -/* 00ECC 809B47EC 8FBF003C */ lw $ra, 0x003C($sp) -.L809B47F0: -/* 00ED0 809B47F0 8FB00034 */ lw $s0, 0x0034($sp) -/* 00ED4 809B47F4 8FB10038 */ lw $s1, 0x0038($sp) -/* 00ED8 809B47F8 03E00008 */ jr $ra -/* 00EDC 809B47FC 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3920.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3920.s deleted file mode 100644 index 5b44bb3560..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3920.s +++ /dev/null @@ -1,3 +0,0 @@ -glabel func_809B3920 -/* 00000 809B3920 03E00008 */ jr $ra -/* 00004 809B3924 AC85025C */ sw $a1, 0x025C($a0) ## 0000025C diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3BD4.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3BD4.s deleted file mode 100644 index 4610e7b521..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3BD4.s +++ /dev/null @@ -1,97 +0,0 @@ -.late_rodata -glabel jtbl_809B4F20 -.word L809B3C50 -.word L809B3C50 -.word L809B3C50 -.word L809B3C64 -.word L809B3C64 -.word L809B3C64 -.word L809B3C70 -.word L809B3C70 -.word L809B3C70 -.word L809B3C3C - -.text -glabel func_809B3BD4 -/* 002B4 809B3BD4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 002B8 809B3BD8 AFBF001C */ sw $ra, 0x001C($sp) -/* 002BC 809B3BDC AFB00018 */ sw $s0, 0x0018($sp) -/* 002C0 809B3BE0 8C8E0118 */ lw $t6, 0x0118($a0) ## 00000118 -/* 002C4 809B3BE4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 002C8 809B3BE8 8CA61C44 */ lw $a2, 0x1C44($a1) ## 00001C44 -/* 002CC 809B3BEC 55C0003B */ bnel $t6, $zero, .L809B3CDC -/* 002D0 809B3BF0 8FBF001C */ lw $ra, 0x001C($sp) -/* 002D4 809B3BF4 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 002D8 809B3BF8 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 002DC 809B3BFC 10410008 */ beq $v0, $at, .L809B3C20 -/* 002E0 809B3C00 0002C080 */ sll $t8, $v0, 2 -/* 002E4 809B3C04 90CF0A73 */ lbu $t7, 0x0A73($a2) ## 00000A73 -/* 002E8 809B3C08 55E00006 */ bnel $t7, $zero, .L809B3C24 -/* 002EC 809B3C0C 2C41000A */ sltiu $at, $v0, 0x000A -/* 002F0 809B3C10 0C00B55C */ jal Actor_Kill - -/* 002F4 809B3C14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002F8 809B3C18 10000030 */ beq $zero, $zero, .L809B3CDC -/* 002FC 809B3C1C 8FBF001C */ lw $ra, 0x001C($sp) -.L809B3C20: -/* 00300 809B3C20 2C41000A */ sltiu $at, $v0, 0x000A -.L809B3C24: -/* 00304 809B3C24 10200012 */ beq $at, $zero, .L809B3C70 -/* 00308 809B3C28 3C01809B */ lui $at, %hi(jtbl_809B4F20) ## $at = 809B0000 -/* 0030C 809B3C2C 00380821 */ addu $at, $at, $t8 -/* 00310 809B3C30 8C384F20 */ lw $t8, %lo(jtbl_809B4F20)($at) -/* 00314 809B3C34 03000008 */ jr $t8 -/* 00318 809B3C38 00000000 */ nop -glabel L809B3C3C -/* 0031C 809B3C3C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000 -/* 00320 809B3C40 0C00BDF7 */ jal func_8002F7DC -/* 00324 809B3C44 24051820 */ addiu $a1, $zero, 0x1820 ## $a1 = 00001820 -/* 00328 809B3C48 10000009 */ beq $zero, $zero, .L809B3C70 -/* 0032C 809B3C4C 00000000 */ nop -glabel L809B3C50 -/* 00330 809B3C50 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000 -/* 00334 809B3C54 0C00BDF7 */ jal func_8002F7DC -/* 00338 809B3C58 24051804 */ addiu $a1, $zero, 0x1804 ## $a1 = 00001804 -/* 0033C 809B3C5C 10000004 */ beq $zero, $zero, .L809B3C70 -/* 00340 809B3C60 00000000 */ nop -glabel L809B3C64 -/* 00344 809B3C64 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000 -/* 00348 809B3C68 0C00BDF7 */ jal func_8002F7DC -/* 0034C 809B3C6C 24051839 */ addiu $a1, $zero, 0x1839 ## $a1 = 00001839 -glabel L809B3C70 -.L809B3C70: -/* 00350 809B3C70 3C05809B */ lui $a1, %hi(func_809B3FDC) ## $a1 = 809B0000 -/* 00354 809B3C74 24A53FDC */ addiu $a1, $a1, %lo(func_809B3FDC) ## $a1 = 809B3FDC -/* 00358 809B3C78 0C26CE48 */ jal func_809B3920 -/* 0035C 809B3C7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00360 809B3C80 26040210 */ addiu $a0, $s0, 0x0210 ## $a0 = 00000210 -/* 00364 809B3C84 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 00368 809B3C88 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 0036C 809B3C8C 8619001C */ lh $t9, 0x001C($s0) ## 0000001C -/* 00370 809B3C90 3C0542A0 */ lui $a1, 0x42A0 ## $a1 = 42A00000 -/* 00374 809B3C94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00378 809B3C98 2B210009 */ slti $at, $t9, 0x0009 -/* 0037C 809B3C9C 1420000A */ bne $at, $zero, .L809B3CC8 -/* 00380 809B3CA0 00000000 */ nop -/* 00384 809B3CA4 0C00B669 */ jal func_8002D9A4 -/* 00388 809B3CA8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0038C 809B3CAC A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8 -/* 00390 809B3CB0 860200B8 */ lh $v0, 0x00B8($s0) ## 000000B8 -/* 00394 809B3CB4 2408000F */ addiu $t0, $zero, 0x000F ## $t0 = 0000000F -/* 00398 809B3CB8 A2080248 */ sb $t0, 0x0248($s0) ## 00000248 -/* 0039C 809B3CBC A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6 -/* 003A0 809B3CC0 10000005 */ beq $zero, $zero, .L809B3CD8 -/* 003A4 809B3CC4 A60200B4 */ sh $v0, 0x00B4($s0) ## 000000B4 -.L809B3CC8: -/* 003A8 809B3CC8 0C00B669 */ jal func_8002D9A4 -/* 003AC 809B3CCC 3C054316 */ lui $a1, 0x4316 ## $a1 = 43160000 -/* 003B0 809B3CD0 2409000C */ addiu $t1, $zero, 0x000C ## $t1 = 0000000C -/* 003B4 809B3CD4 A2090248 */ sb $t1, 0x0248($s0) ## 00000248 -.L809B3CD8: -/* 003B8 809B3CD8 8FBF001C */ lw $ra, 0x001C($sp) -.L809B3CDC: -/* 003BC 809B3CDC 8FB00018 */ lw $s0, 0x0018($sp) -/* 003C0 809B3CE0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 003C4 809B3CE4 03E00008 */ jr $ra -/* 003C8 809B3CE8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3CEC.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3CEC.s deleted file mode 100644 index 384a6363ec..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3CEC.s +++ /dev/null @@ -1,72 +0,0 @@ -.late_rodata -glabel D_809B4F48 - .float 0.4 -glabel D_809B4F4C - .float 0.04 -glabel D_809B4F50 - .float 0.3 - -.text -glabel func_809B3CEC -/* 003CC 809B3CEC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 003D0 809B3CF0 AFB00018 */ sw $s0, 0x0018($sp) -/* 003D4 809B3CF4 AFA40020 */ sw $a0, 0x0020($sp) -/* 003D8 809B3CF8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 003DC 809B3CFC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 003E0 809B3D00 AFBF001C */ sw $ra, 0x001C($sp) -/* 003E4 809B3D04 3C05809B */ lui $a1, %hi(func_809B4640) ## $a1 = 809B0000 -/* 003E8 809B3D08 0C26CE48 */ jal func_809B3920 -/* 003EC 809B3D0C 24A54640 */ addiu $a1, $a1, %lo(func_809B4640) ## $a1 = 809B4640 -/* 003F0 809B3D10 3C050400 */ lui $a1, %hi(gArrow1Anim) ## $a1 = 04000000 -/* 003F4 809B3D14 24A54310 */ addiu $a1, $a1, %lo(gArrow1Anim) ## $a1 = 04004310 -/* 003F8 809B3D18 0C02947A */ jal Animation_PlayOnce -/* 003FC 809B3D1C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 00400 809B3D20 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00404 809B3D24 00000000 */ nop -/* 00408 809B3D28 3C0146C0 */ lui $at, 0x46C0 ## $at = 46C00000 -/* 0040C 809B3D2C 44812000 */ mtc1 $at, $f4 ## $f4 = 24576.00 -/* 00410 809B3D30 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00414 809B3D34 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50 -/* 00418 809B3D38 86180032 */ lh $t8, 0x0032($s0) ## 00000032 -/* 0041C 809B3D3C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 -/* 00420 809B3D40 46060201 */ sub.s $f8, $f0, $f6 -/* 00424 809B3D44 46082282 */ mul.s $f10, $f4, $f8 -/* 00428 809B3D48 4600540D */ trunc.w.s $f16, $f10 -/* 0042C 809B3D4C 440F8000 */ mfc1 $t7, $f16 -/* 00430 809B3D50 00000000 */ nop -/* 00434 809B3D54 030FC821 */ addu $t9, $t8, $t7 -/* 00438 809B3D58 03214021 */ addu $t0, $t9, $at -/* 0043C 809B3D5C 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00440 809B3D60 A6080032 */ sh $t0, 0x0032($s0) ## 00000032 -/* 00444 809B3D64 3C01809B */ lui $at, %hi(D_809B4F48) ## $at = 809B0000 -/* 00448 809B3D68 C4224F48 */ lwc1 $f2, %lo(D_809B4F48)($at) -/* 0044C 809B3D6C C6120068 */ lwc1 $f18, 0x0068($s0) ## 00000068 -/* 00450 809B3D70 C60A0060 */ lwc1 $f10, 0x0060($s0) ## 00000060 -/* 00454 809B3D74 46001182 */ mul.s $f6, $f2, $f0 -/* 00458 809B3D78 46061100 */ add.s $f4, $f2, $f6 -/* 0045C 809B3D7C 46049202 */ mul.s $f8, $f18, $f4 -/* 00460 809B3D80 46085400 */ add.s $f16, $f10, $f8 -/* 00464 809B3D84 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00468 809B3D88 E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060 -/* 0046C 809B3D8C 3C01809B */ lui $at, %hi(D_809B4F4C) ## $at = 809B0000 -/* 00470 809B3D90 C4264F4C */ lwc1 $f6, %lo(D_809B4F4C)($at) -/* 00474 809B3D94 3C01809B */ lui $at, %hi(D_809B4F50) ## $at = 809B0000 -/* 00478 809B3D98 C4324F50 */ lwc1 $f18, %lo(D_809B4F50)($at) -/* 0047C 809B3D9C C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068 -/* 00480 809B3DA0 3C01BFC0 */ lui $at, 0xBFC0 ## $at = BFC00000 -/* 00484 809B3DA4 46009102 */ mul.s $f4, $f18, $f0 -/* 00488 809B3DA8 44819000 */ mtc1 $at, $f18 ## $f18 = -1.50 -/* 0048C 809B3DAC 24090032 */ addiu $t1, $zero, 0x0032 ## $t1 = 00000032 -/* 00490 809B3DB0 A2090248 */ sb $t1, 0x0248($s0) ## 00000248 -/* 00494 809B3DB4 E612006C */ swc1 $f18, 0x006C($s0) ## 0000006C -/* 00498 809B3DB8 46043280 */ add.s $f10, $f6, $f4 -/* 0049C 809B3DBC 460A4402 */ mul.s $f16, $f8, $f10 -/* 004A0 809B3DC0 E6100068 */ swc1 $f16, 0x0068($s0) ## 00000068 -/* 004A4 809B3DC4 8FBF001C */ lw $ra, 0x001C($sp) -/* 004A8 809B3DC8 8FB00018 */ lw $s0, 0x0018($sp) -/* 004AC 809B3DCC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 004B0 809B3DD0 03E00008 */ jr $ra -/* 004B4 809B3DD4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3DD8.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3DD8.s deleted file mode 100644 index c6364ec9c5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3DD8.s +++ /dev/null @@ -1,141 +0,0 @@ -glabel func_809B3DD8 -/* 004B8 809B3DD8 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88 -/* 004BC 809B3DDC AFB00030 */ sw $s0, 0x0030($sp) -/* 004C0 809B3DE0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 004C4 809B3DE4 AFBF0034 */ sw $ra, 0x0034($sp) -/* 004C8 809B3DE8 AFA5007C */ sw $a1, 0x007C($sp) -/* 004CC 809B3DEC 26050210 */ addiu $a1, $s0, 0x0210 ## $a1 = 00000210 -/* 004D0 809B3DF0 24840024 */ addiu $a0, $a0, 0x0024 ## $a0 = 00000024 -/* 004D4 809B3DF4 0C01DFB4 */ jal Math_Vec3f_Diff - ## Vec3f_Sub -/* 004D8 809B3DF8 27A60068 */ addiu $a2, $sp, 0x0068 ## $a2 = FFFFFFF0 -/* 004DC 809B3DFC 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 004E0 809B3E00 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -/* 004E4 809B3E04 C7AA0068 */ lwc1 $f10, 0x0068($sp) -/* 004E8 809B3E08 C4460024 */ lwc1 $f6, 0x0024($v0) ## 00000024 -/* 004EC 809B3E0C C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028 -/* 004F0 809B3E10 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFF0 -/* 004F4 809B3E14 46062201 */ sub.s $f8, $f4, $f6 -/* 004F8 809B3E18 C4440028 */ lwc1 $f4, 0x0028($v0) ## 00000028 -/* 004FC 809B3E1C 460A4402 */ mul.s $f16, $f8, $f10 -/* 00500 809B3E20 46049181 */ sub.s $f6, $f18, $f4 -/* 00504 809B3E24 C7A8006C */ lwc1 $f8, 0x006C($sp) -/* 00508 809B3E28 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C -/* 0050C 809B3E2C 46083282 */ mul.s $f10, $f6, $f8 -/* 00510 809B3E30 C446002C */ lwc1 $f6, 0x002C($v0) ## 0000002C -/* 00514 809B3E34 46062201 */ sub.s $f8, $f4, $f6 -/* 00518 809B3E38 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 0051C 809B3E3C 460A8480 */ add.s $f18, $f16, $f10 -/* 00520 809B3E40 C7B00070 */ lwc1 $f16, 0x0070($sp) -/* 00524 809B3E44 46104282 */ mul.s $f10, $f8, $f16 -/* 00528 809B3E48 460A9300 */ add.s $f12, $f18, $f10 -/* 0052C 809B3E4C 4604603C */ c.lt.s $f12, $f4 -/* 00530 809B3E50 00000000 */ nop -/* 00534 809B3E54 4503005D */ bc1tl .L809B3FCC -/* 00538 809B3E58 8FBF0034 */ lw $ra, 0x0034($sp) -/* 0053C 809B3E5C 0C032D80 */ jal Math3D_Vec3fMagnitudeSq -/* 00540 809B3E60 E7AC004C */ swc1 $f12, 0x004C($sp) -/* 00544 809B3E64 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00548 809B3E68 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00 -/* 0054C 809B3E6C C7AC004C */ lwc1 $f12, 0x004C($sp) -/* 00550 809B3E70 4606003C */ c.lt.s $f0, $f6 -/* 00554 809B3E74 00000000 */ nop -/* 00558 809B3E78 45030054 */ bc1tl .L809B3FCC -/* 0055C 809B3E7C 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00560 809B3E80 46006083 */ div.s $f2, $f12, $f0 -/* 00564 809B3E84 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFF0 -/* 00568 809B3E88 44051000 */ mfc1 $a1, $f2 -/* 0056C 809B3E8C 0C01DFD7 */ jal Math_Vec3f_Scale - -/* 00570 809B3E90 00000000 */ nop -/* 00574 809B3E94 8E04024C */ lw $a0, 0x024C($s0) ## 0000024C -/* 00578 809B3E98 27A50068 */ addiu $a1, $sp, 0x0068 ## $a1 = FFFFFFF0 -/* 0057C 809B3E9C 27A6005C */ addiu $a2, $sp, 0x005C ## $a2 = FFFFFFE4 -/* 00580 809B3EA0 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 00584 809B3EA4 24840024 */ addiu $a0, $a0, 0x0024 ## $a0 = 00000024 -/* 00588 809B3EA8 8E05024C */ lw $a1, 0x024C($s0) ## 0000024C -/* 0058C 809B3EAC 8FA4007C */ lw $a0, 0x007C($sp) -/* 00590 809B3EB0 27AE0074 */ addiu $t6, $sp, 0x0074 ## $t6 = FFFFFFFC -/* 00594 809B3EB4 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 00598 809B3EB8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 0059C 809B3EBC 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 005A0 809B3EC0 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -/* 005A4 809B3EC4 27A90044 */ addiu $t1, $sp, 0x0044 ## $t1 = FFFFFFCC -/* 005A8 809B3EC8 AFA90024 */ sw $t1, 0x0024($sp) -/* 005AC 809B3ECC AFA80020 */ sw $t0, 0x0020($sp) -/* 005B0 809B3ED0 AFB9001C */ sw $t9, 0x001C($sp) -/* 005B4 809B3ED4 AFB80018 */ sw $t8, 0x0018($sp) -/* 005B8 809B3ED8 AFAF0014 */ sw $t7, 0x0014($sp) -/* 005BC 809B3EDC AFAE0010 */ sw $t6, 0x0010($sp) -/* 005C0 809B3EE0 27A6005C */ addiu $a2, $sp, 0x005C ## $a2 = FFFFFFE4 -/* 005C4 809B3EE4 27A70050 */ addiu $a3, $sp, 0x0050 ## $a3 = FFFFFFD8 -/* 005C8 809B3EE8 24A50024 */ addiu $a1, $a1, 0x0024 ## $a1 = 00000024 -/* 005CC 809B3EEC 0C00F7A1 */ jal BgCheck_EntityLineTest1 -/* 005D0 809B3EF0 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0 -/* 005D4 809B3EF4 10400030 */ beq $v0, $zero, .L809B3FB8 -/* 005D8 809B3EF8 C7A80050 */ lwc1 $f8, 0x0050($sp) -/* 005DC 809B3EFC C7B0005C */ lwc1 $f16, 0x005C($sp) -/* 005E0 809B3F00 C7B20050 */ lwc1 $f18, 0x0050($sp) -/* 005E4 809B3F04 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 005E8 809B3F08 4608803E */ c.le.s $f16, $f8 -/* 005EC 809B3F0C 00000000 */ nop -/* 005F0 809B3F10 45020008 */ bc1fl .L809B3F34 -/* 005F4 809B3F14 44811000 */ mtc1 $at, $f2 ## $f2 = -1.00 -/* 005F8 809B3F18 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 005FC 809B3F1C 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 00600 809B3F20 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00604 809B3F24 44811000 */ mtc1 $at, $f2 ## $f2 = -1.00 -/* 00608 809B3F28 10000005 */ beq $zero, $zero, .L809B3F40 -/* 0060C 809B3F2C 46006006 */ mov.s $f0, $f12 -/* 00610 809B3F30 44811000 */ mtc1 $at, $f2 ## $f2 = -1.00 -.L809B3F34: -/* 00614 809B3F34 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00618 809B3F38 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 0061C 809B3F3C 46001006 */ mov.s $f0, $f2 -.L809B3F40: -/* 00620 809B3F40 46120280 */ add.s $f10, $f0, $f18 -/* 00624 809B3F44 8E0A024C */ lw $t2, 0x024C($s0) ## 0000024C -/* 00628 809B3F48 E54A0024 */ swc1 $f10, 0x0024($t2) ## 00000024 -/* 0062C 809B3F4C C7A40054 */ lwc1 $f4, 0x0054($sp) -/* 00630 809B3F50 C7A60060 */ lwc1 $f6, 0x0060($sp) -/* 00634 809B3F54 C7A80054 */ lwc1 $f8, 0x0054($sp) -/* 00638 809B3F58 4604303E */ c.le.s $f6, $f4 -/* 0063C 809B3F5C 00000000 */ nop -/* 00640 809B3F60 45020004 */ bc1fl .L809B3F74 -/* 00644 809B3F64 46001006 */ mov.s $f0, $f2 -/* 00648 809B3F68 10000002 */ beq $zero, $zero, .L809B3F74 -/* 0064C 809B3F6C 46006006 */ mov.s $f0, $f12 -/* 00650 809B3F70 46001006 */ mov.s $f0, $f2 -.L809B3F74: -/* 00654 809B3F74 46080400 */ add.s $f16, $f0, $f8 -/* 00658 809B3F78 8E0B024C */ lw $t3, 0x024C($s0) ## 0000024C -/* 0065C 809B3F7C E5700028 */ swc1 $f16, 0x0028($t3) ## 00000028 -/* 00660 809B3F80 C7B20058 */ lwc1 $f18, 0x0058($sp) -/* 00664 809B3F84 C7AA0064 */ lwc1 $f10, 0x0064($sp) -/* 00668 809B3F88 C7A40058 */ lwc1 $f4, 0x0058($sp) -/* 0066C 809B3F8C 4612503E */ c.le.s $f10, $f18 -/* 00670 809B3F90 00000000 */ nop -/* 00674 809B3F94 45020004 */ bc1fl .L809B3FA8 -/* 00678 809B3F98 46001006 */ mov.s $f0, $f2 -/* 0067C 809B3F9C 10000002 */ beq $zero, $zero, .L809B3FA8 -/* 00680 809B3FA0 46006006 */ mov.s $f0, $f12 -/* 00684 809B3FA4 46001006 */ mov.s $f0, $f2 -.L809B3FA8: -/* 00688 809B3FA8 46040180 */ add.s $f6, $f0, $f4 -/* 0068C 809B3FAC 8E0C024C */ lw $t4, 0x024C($s0) ## 0000024C -/* 00690 809B3FB0 10000005 */ beq $zero, $zero, .L809B3FC8 -/* 00694 809B3FB4 E586002C */ swc1 $f6, 0x002C($t4) ## 0000002C -.L809B3FB8: -/* 00698 809B3FB8 8E04024C */ lw $a0, 0x024C($s0) ## 0000024C -/* 0069C 809B3FBC 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFE4 -/* 006A0 809B3FC0 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 006A4 809B3FC4 24840024 */ addiu $a0, $a0, 0x0024 ## $a0 = 00000024 -.L809B3FC8: -/* 006A8 809B3FC8 8FBF0034 */ lw $ra, 0x0034($sp) -.L809B3FCC: -/* 006AC 809B3FCC 8FB00030 */ lw $s0, 0x0030($sp) -/* 006B0 809B3FD0 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000 -/* 006B4 809B3FD4 03E00008 */ jr $ra -/* 006B8 809B3FD8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3FDC.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3FDC.s deleted file mode 100644 index fa8d455726..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3FDC.s +++ /dev/null @@ -1,437 +0,0 @@ -.late_rodata -glabel D_809B4F54 - .float 7.2000003 -glabel D_809B4F58 - .float -0.4 - -.text -glabel func_809B3FDC -/* 006BC 809B3FDC 27BDFF68 */ addiu $sp, $sp, 0xFF68 ## $sp = FFFFFF68 -/* 006C0 809B3FE0 AFBF0034 */ sw $ra, 0x0034($sp) -/* 006C4 809B3FE4 AFB00030 */ sw $s0, 0x0030($sp) -/* 006C8 809B3FE8 AFA5009C */ sw $a1, 0x009C($sp) -/* 006CC 809B3FEC 90820248 */ lbu $v0, 0x0248($a0) ## 00000248 -/* 006D0 809B3FF0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 006D4 809B3FF4 14400003 */ bne $v0, $zero, .L809B4004 -/* 006D8 809B3FF8 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 006DC 809B3FFC 10000004 */ beq $zero, $zero, .L809B4010 -/* 006E0 809B4000 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -.L809B4004: -/* 006E4 809B4004 31C200FF */ andi $v0, $t6, 0x00FF ## $v0 = 000000FF -/* 006E8 809B4008 00401825 */ or $v1, $v0, $zero ## $v1 = 000000FF -/* 006EC 809B400C A20E0248 */ sb $t6, 0x0248($s0) ## 00000248 -.L809B4010: -/* 006F0 809B4010 54600006 */ bnel $v1, $zero, .L809B402C -/* 006F4 809B4014 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 006F8 809B4018 0C00B55C */ jal Actor_Kill - -/* 006FC 809B401C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00700 809B4020 1000016B */ beq $zero, $zero, .L809B45D0 -/* 00704 809B4024 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00708 809B4028 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -.L809B402C: -/* 0070C 809B402C 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000 -/* 00710 809B4030 04410004 */ bgez $v0, .L809B4044 -/* 00714 809B4034 468021A0 */ cvt.s.w $f6, $f4 -/* 00718 809B4038 44814000 */ mtc1 $at, $f8 ## $f8 = 4294967296.00 -/* 0071C 809B403C 00000000 */ nop -/* 00720 809B4040 46083180 */ add.s $f6, $f6, $f8 -.L809B4044: -/* 00724 809B4044 3C01809B */ lui $at, %hi(D_809B4F54) ## $at = 809B0000 -/* 00728 809B4048 C42A4F54 */ lwc1 $f10, %lo(D_809B4F54)($at) -/* 0072C 809B404C 3C01809B */ lui $at, %hi(D_809B4F58) ## $at = 809B0000 -/* 00730 809B4050 460A303C */ c.lt.s $f6, $f10 -/* 00734 809B4054 00000000 */ nop -/* 00738 809B4058 45020004 */ bc1fl .L809B406C -/* 0073C 809B405C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00740 809B4060 C4304F58 */ lwc1 $f16, %lo(D_809B4F58)($at) -/* 00744 809B4064 E610006C */ swc1 $f16, 0x006C($s0) ## 0000006C -/* 00748 809B4068 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L809B406C: -/* 0074C 809B406C 0002182B */ sltu $v1, $zero, $v0 -/* 00750 809B4070 10600007 */ beq $v1, $zero, .L809B4090 -/* 00754 809B4074 28410009 */ slti $at, $v0, 0x0009 -/* 00758 809B4078 2843000A */ slti $v1, $v0, 0x000A -/* 0075C 809B407C 10600004 */ beq $v1, $zero, .L809B4090 -/* 00760 809B4080 00000000 */ nop -/* 00764 809B4084 920301A0 */ lbu $v1, 0x01A0($s0) ## 000001A0 -/* 00768 809B4088 30630002 */ andi $v1, $v1, 0x0002 ## $v1 = 00000000 -/* 0076C 809B408C 0003182B */ sltu $v1, $zero, $v1 -.L809B4090: -/* 00770 809B4090 14600006 */ bne $v1, $zero, .L809B40AC -/* 00774 809B4094 00000000 */ nop -/* 00778 809B4098 920F024A */ lbu $t7, 0x024A($s0) ## 0000024A -/* 0077C 809B409C 26040210 */ addiu $a0, $s0, 0x0210 ## $a0 = 00000210 -/* 00780 809B40A0 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00784 809B40A4 11E000A8 */ beq $t7, $zero, .L809B4348 -/* 00788 809B40A8 00000000 */ nop -.L809B40AC: -/* 0078C 809B40AC 14200039 */ bne $at, $zero, .L809B4194 -/* 00790 809B40B0 8FA4009C */ lw $a0, 0x009C($sp) -/* 00794 809B40B4 10600013 */ beq $v1, $zero, .L809B4104 -/* 00798 809B40B8 24071825 */ addiu $a3, $zero, 0x1825 ## $a3 = 00001825 -/* 0079C 809B40BC C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024 -/* 007A0 809B40C0 C6040100 */ lwc1 $f4, 0x0100($s0) ## 00000100 -/* 007A4 809B40C4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 007A8 809B40C8 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50 -/* 007AC 809B40CC 46049200 */ add.s $f8, $f18, $f4 -/* 007B0 809B40D0 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028 -/* 007B4 809B40D4 C6100104 */ lwc1 $f16, 0x0104($s0) ## 00000104 -/* 007B8 809B40D8 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 007BC 809B40DC 46004182 */ mul.s $f6, $f8, $f0 -/* 007C0 809B40E0 46105480 */ add.s $f18, $f10, $f16 -/* 007C4 809B40E4 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C -/* 007C8 809B40E8 46009102 */ mul.s $f4, $f18, $f0 -/* 007CC 809B40EC E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024 -/* 007D0 809B40F0 C6060108 */ lwc1 $f6, 0x0108($s0) ## 00000108 -/* 007D4 809B40F4 46064280 */ add.s $f10, $f8, $f6 -/* 007D8 809B40F8 E6040028 */ swc1 $f4, 0x0028($s0) ## 00000028 -/* 007DC 809B40FC 46005402 */ mul.s $f16, $f10, $f0 -/* 007E0 809B4100 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C -.L809B4104: -/* 007E4 809B4104 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 007E8 809B4108 14410013 */ bne $v0, $at, .L809B4158 -/* 007EC 809B410C 3C198016 */ lui $t9, %hi(gGameInfo) -/* 007F0 809B4110 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* 007F4 809B4114 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 007F8 809B4118 24060056 */ addiu $a2, $zero, 0x0056 ## $a2 = 00000056 -/* 007FC 809B411C A7380D38 */ sh $t8, 0x0D38($t9) ## 80160D38 -/* 00800 809B4120 C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028 -/* 00804 809B4124 8E070024 */ lw $a3, 0x0024($s0) ## 00000024 -/* 00808 809B4128 8FA5009C */ lw $a1, 0x009C($sp) -/* 0080C 809B412C E7B20010 */ swc1 $f18, 0x0010($sp) -/* 00810 809B4130 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C -/* 00814 809B4134 AFA00024 */ sw $zero, 0x0024($sp) -/* 00818 809B4138 AFA00020 */ sw $zero, 0x0020($sp) -/* 0081C 809B413C AFA0001C */ sw $zero, 0x001C($sp) -/* 00820 809B4140 AFA00018 */ sw $zero, 0x0018($sp) -/* 00824 809B4144 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C48 -/* 00828 809B4148 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 0082C 809B414C E7A40014 */ swc1 $f4, 0x0014($sp) -/* 00830 809B4150 10000001 */ beq $zero, $zero, .L809B4158 -/* 00834 809B4154 2407182B */ addiu $a3, $zero, 0x182B ## $a3 = 0000182B -.L809B4158: -/* 00838 809B4158 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 0083C 809B415C AFA50044 */ sw $a1, 0x0044($sp) -/* 00840 809B4160 8FA4009C */ lw $a0, 0x009C($sp) -/* 00844 809B4164 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00848 809B4168 0C00A700 */ jal EffectSsStone1_Spawn -/* 0084C 809B416C A7A70072 */ sh $a3, 0x0072($sp) -/* 00850 809B4170 97A70072 */ lhu $a3, 0x0072($sp) -/* 00854 809B4174 8FA4009C */ lw $a0, 0x009C($sp) -/* 00858 809B4178 8FA50044 */ lw $a1, 0x0044($sp) -/* 0085C 809B417C 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00860 809B4180 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00864 809B4184 0C00B55C */ jal Actor_Kill - -/* 00868 809B4188 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0086C 809B418C 1000009E */ beq $zero, $zero, .L809B4408 -/* 00870 809B4190 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -.L809B4194: -/* 00874 809B4194 26070024 */ addiu $a3, $s0, 0x0024 ## $a3 = 00000024 -/* 00878 809B4198 AFA70044 */ sw $a3, 0x0044($sp) -/* 0087C 809B419C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00880 809B41A0 24060096 */ addiu $a2, $zero, 0x0096 ## $a2 = 00000096 -/* 00884 809B41A4 0C00A732 */ jal EffectSsHitMark_SpawnCustomScale -/* 00888 809B41A8 AFA30050 */ sw $v1, 0x0050($sp) -/* 0088C 809B41AC 8FA30050 */ lw $v1, 0x0050($sp) -/* 00890 809B41B0 5060004D */ beql $v1, $zero, .L809B42E8 -/* 00894 809B41B4 9208024A */ lbu $t0, 0x024A($s0) ## 0000024A -/* 00898 809B41B8 8E0301C8 */ lw $v1, 0x01C8($s0) ## 000001C8 -/* 0089C 809B41BC 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 008A0 809B41C0 90690014 */ lbu $t1, 0x0014($v1) ## 00000014 -/* 008A4 809B41C4 51210048 */ beql $t1, $at, .L809B42E8 -/* 008A8 809B41C8 9208024A */ lbu $t0, 0x024A($s0) ## 0000024A -/* 008AC 809B41CC 8E020194 */ lw $v0, 0x0194($s0) ## 00000194 -/* 008B0 809B41D0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 008B4 809B41D4 8C4A0130 */ lw $t2, 0x0130($v0) ## 00000130 -/* 008B8 809B41D8 51400024 */ beql $t2, $zero, .L809B426C -/* 008BC 809B41DC 92090249 */ lbu $t1, 0x0249($s0) ## 00000249 -/* 008C0 809B41E0 920B01A0 */ lbu $t3, 0x01A0($s0) ## 000001A0 -/* 008C4 809B41E4 316C0004 */ andi $t4, $t3, 0x0004 ## $t4 = 00000000 -/* 008C8 809B41E8 55800020 */ bnel $t4, $zero, .L809B426C -/* 008CC 809B41EC 92090249 */ lbu $t1, 0x0249($s0) ## 00000249 -/* 008D0 809B41F0 8C4D0004 */ lw $t5, 0x0004($v0) ## 00000004 -/* 008D4 809B41F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008D8 809B41F8 31AE4000 */ andi $t6, $t5, 0x4000 ## $t6 = 00000000 -/* 008DC 809B41FC 51C0001B */ beql $t6, $zero, .L809B426C -/* 008E0 809B4200 92090249 */ lbu $t1, 0x0249($s0) ## 00000249 -/* 008E4 809B4204 AE02024C */ sw $v0, 0x024C($s0) ## 0000024C -/* 008E8 809B4208 AFA2006C */ sw $v0, 0x006C($sp) -/* 008EC 809B420C 0C26CF76 */ jal func_809B3DD8 -/* 008F0 809B4210 8FA5009C */ lw $a1, 0x009C($sp) -/* 008F4 809B4214 8FA2006C */ lw $v0, 0x006C($sp) -/* 008F8 809B4218 8FA50044 */ lw $a1, 0x0044($sp) -/* 008FC 809B421C 26060250 */ addiu $a2, $s0, 0x0250 ## $a2 = 00000250 -/* 00900 809B4220 0C01DFB4 */ jal Math_Vec3f_Diff - ## Vec3f_Sub -/* 00904 809B4224 24440024 */ addiu $a0, $v0, 0x0024 ## $a0 = 00000024 -/* 00908 809B4228 8FA2006C */ lw $v0, 0x006C($sp) -/* 0090C 809B422C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00910 809B4230 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50 -/* 00914 809B4234 8C4F0004 */ lw $t7, 0x0004($v0) ## 00000004 -/* 00918 809B4238 35F88000 */ ori $t8, $t7, 0x8000 ## $t8 = 00008000 -/* 0091C 809B423C AC580004 */ sw $t8, 0x0004($v0) ## 00000004 -/* 00920 809B4240 C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068 -/* 00924 809B4244 C60A0060 */ lwc1 $f10, 0x0060($s0) ## 00000060 -/* 00928 809B4248 921901A0 */ lbu $t9, 0x01A0($s0) ## 000001A0 -/* 0092C 809B424C 46004182 */ mul.s $f6, $f8, $f0 -/* 00930 809B4250 3328FFFD */ andi $t0, $t9, 0xFFFD ## $t0 = 00000000 -/* 00934 809B4254 46005402 */ mul.s $f16, $f10, $f0 -/* 00938 809B4258 A20801A0 */ sb $t0, 0x01A0($s0) ## 000001A0 -/* 0093C 809B425C E6060068 */ swc1 $f6, 0x0068($s0) ## 00000068 -/* 00940 809B4260 10000068 */ beq $zero, $zero, .L809B4404 -/* 00944 809B4264 E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060 -/* 00948 809B4268 92090249 */ lbu $t1, 0x0249($s0) ## 00000249 -.L809B426C: -/* 0094C 809B426C 352B0001 */ ori $t3, $t1, 0x0001 ## $t3 = 00000001 -/* 00950 809B4270 A20B0249 */ sb $t3, 0x0249($s0) ## 00000249 -/* 00954 809B4274 356C0002 */ ori $t4, $t3, 0x0002 ## $t4 = 00000003 -/* 00958 809B4278 A20C0249 */ sb $t4, 0x0249($s0) ## 00000249 -/* 0095C 809B427C 906D0016 */ lbu $t5, 0x0016($v1) ## 00000016 -/* 00960 809B4280 31AE0002 */ andi $t6, $t5, 0x0002 ## $t6 = 00000000 -/* 00964 809B4284 11C00010 */ beq $t6, $zero, .L809B42C8 -/* 00968 809B4288 00000000 */ nop -/* 0096C 809B428C 846F000E */ lh $t7, 0x000E($v1) ## 0000000E -/* 00970 809B4290 448F9000 */ mtc1 $t7, $f18 ## $f18 = 0.00 -/* 00974 809B4294 00000000 */ nop -/* 00978 809B4298 46809120 */ cvt.s.w $f4, $f18 -/* 0097C 809B429C E6040024 */ swc1 $f4, 0x0024($s0) ## 00000024 -/* 00980 809B42A0 84780010 */ lh $t8, 0x0010($v1) ## 00000010 -/* 00984 809B42A4 44984000 */ mtc1 $t8, $f8 ## $f8 = 0.00 -/* 00988 809B42A8 00000000 */ nop -/* 0098C 809B42AC 468041A0 */ cvt.s.w $f6, $f8 -/* 00990 809B42B0 E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028 -/* 00994 809B42B4 84790012 */ lh $t9, 0x0012($v1) ## 00000012 -/* 00998 809B42B8 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00 -/* 0099C 809B42BC 00000000 */ nop -/* 009A0 809B42C0 46805420 */ cvt.s.w $f16, $f10 -/* 009A4 809B42C4 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C -.L809B42C8: -/* 009A8 809B42C8 0C26CF3B */ jal func_809B3CEC -/* 009AC 809B42CC 8FA4009C */ lw $a0, 0x009C($sp) -/* 009B0 809B42D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 009B4 809B42D4 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 009B8 809B42D8 24051814 */ addiu $a1, $zero, 0x1814 ## $a1 = 00001814 -/* 009BC 809B42DC 1000004A */ beq $zero, $zero, .L809B4408 -/* 009C0 809B42E0 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 009C4 809B42E4 9208024A */ lbu $t0, 0x024A($s0) ## 0000024A -.L809B42E8: -/* 009C8 809B42E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 009CC 809B42EC 3C05809B */ lui $a1, %hi(func_809B45E0) ## $a1 = 809B0000 -/* 009D0 809B42F0 51000045 */ beql $t0, $zero, .L809B4408 -/* 009D4 809B42F4 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 009D8 809B42F8 0C26CE48 */ jal func_809B3920 -/* 009DC 809B42FC 24A545E0 */ addiu $a1, $a1, %lo(func_809B45E0) ## $a1 = 809B45E0 -/* 009E0 809B4300 3C050400 */ lui $a1, %hi(gArrow2Anim) ## $a1 = 04000000 -/* 009E4 809B4304 24A5436C */ addiu $a1, $a1, %lo(gArrow2Anim) ## $a1 = 0400436C -/* 009E8 809B4308 0C02947A */ jal Animation_PlayOnce -/* 009EC 809B430C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 009F0 809B4310 8609001C */ lh $t1, 0x001C($s0) ## 0000001C -/* 009F4 809B4314 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C -/* 009F8 809B4318 240B0014 */ addiu $t3, $zero, 0x0014 ## $t3 = 00000014 -/* 009FC 809B431C 05200003 */ bltz $t1, .L809B432C -/* 00A00 809B4320 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A04 809B4324 10000002 */ beq $zero, $zero, .L809B4330 -/* 00A08 809B4328 A20A0248 */ sb $t2, 0x0248($s0) ## 00000248 -.L809B432C: -/* 00A0C 809B432C A20B0248 */ sb $t3, 0x0248($s0) ## 00000248 -.L809B4330: -/* 00A10 809B4330 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 00A14 809B4334 24051815 */ addiu $a1, $zero, 0x1815 ## $a1 = 00001815 -/* 00A18 809B4338 920C0249 */ lbu $t4, 0x0249($s0) ## 00000249 -/* 00A1C 809B433C 358D0001 */ ori $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 00A20 809B4340 10000030 */ beq $zero, $zero, .L809B4404 -/* 00A24 809B4344 A20D0249 */ sb $t5, 0x0249($s0) ## 00000249 -.L809B4348: -/* 00A28 809B4348 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 00A2C 809B434C AFA50044 */ sw $a1, 0x0044($sp) -/* 00A30 809B4350 0C00B638 */ jal Actor_MoveForward - -/* 00A34 809B4354 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A38 809B4358 8FA4009C */ lw $a0, 0x009C($sp) -/* 00A3C 809B435C 260E0074 */ addiu $t6, $s0, 0x0074 ## $t6 = 00000074 -/* 00A40 809B4360 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 00A44 809B4364 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00A48 809B4368 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 00A4C 809B436C 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -/* 00A50 809B4370 27A90090 */ addiu $t1, $sp, 0x0090 ## $t1 = FFFFFFF8 -/* 00A54 809B4374 AFA90024 */ sw $t1, 0x0024($sp) -/* 00A58 809B4378 AFA80020 */ sw $t0, 0x0020($sp) -/* 00A5C 809B437C AFB9001C */ sw $t9, 0x001C($sp) -/* 00A60 809B4380 AFB80018 */ sw $t8, 0x0018($sp) -/* 00A64 809B4384 AFAF0014 */ sw $t7, 0x0014($sp) -/* 00A68 809B4388 AFAE0010 */ sw $t6, 0x0010($sp) -/* 00A6C 809B438C 26050100 */ addiu $a1, $s0, 0x0100 ## $a1 = 00000100 -/* 00A70 809B4390 8FA60044 */ lw $a2, 0x0044($sp) -/* 00A74 809B4394 27A70084 */ addiu $a3, $sp, 0x0084 ## $a3 = FFFFFFEC -/* 00A78 809B4398 0C00F80B */ jal BgCheck_ProjectileLineTest -/* 00A7C 809B439C 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0 -/* 00A80 809B43A0 304A00FF */ andi $t2, $v0, 0x00FF ## $t2 = 00000000 -/* 00A84 809B43A4 1140000E */ beq $t2, $zero, .L809B43E0 -/* 00A88 809B43A8 A202024A */ sb $v0, 0x024A($s0) ## 0000024A -/* 00A8C 809B43AC 8E060074 */ lw $a2, 0x0074($s0) ## 00000074 -/* 00A90 809B43B0 27AB0084 */ addiu $t3, $sp, 0x0084 ## $t3 = FFFFFFEC -/* 00A94 809B43B4 AFAB0010 */ sw $t3, 0x0010($sp) -/* 00A98 809B43B8 8FA4009C */ lw $a0, 0x009C($sp) -/* 00A9C 809B43BC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00AA0 809B43C0 0C00BE7B */ jal func_8002F9EC -/* 00AA4 809B43C4 8FA70090 */ lw $a3, 0x0090($sp) -/* 00AA8 809B43C8 27A40078 */ addiu $a0, $sp, 0x0078 ## $a0 = FFFFFFE0 -/* 00AAC 809B43CC 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 00AB0 809B43D0 8FA50044 */ lw $a1, 0x0044($sp) -/* 00AB4 809B43D4 8FA40044 */ lw $a0, 0x0044($sp) -/* 00AB8 809B43D8 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 00ABC 809B43DC 27A50084 */ addiu $a1, $sp, 0x0084 ## $a1 = FFFFFFEC -.L809B43E0: -/* 00AC0 809B43E0 860C001C */ lh $t4, 0x001C($s0) ## 0000001C -/* 00AC4 809B43E4 29810009 */ slti $at, $t4, 0x0009 -/* 00AC8 809B43E8 50200007 */ beql $at, $zero, .L809B4408 -/* 00ACC 809B43EC 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 00AD0 809B43F0 C60E0060 */ lwc1 $f14, 0x0060($s0) ## 00000060 -/* 00AD4 809B43F4 C60C0068 */ lwc1 $f12, 0x0068($s0) ## 00000068 -/* 00AD8 809B43F8 0C034199 */ jal Math_Atan2S - -/* 00ADC 809B43FC 46007387 */ neg.s $f14, $f14 -/* 00AE0 809B4400 A60200B4 */ sh $v0, 0x00B4($s0) ## 000000B4 -.L809B4404: -/* 00AE4 809B4404 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -.L809B4408: -/* 00AE8 809B4408 50400071 */ beql $v0, $zero, .L809B45D0 -/* 00AEC 809B440C 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00AF0 809B4410 8C4D0130 */ lw $t5, 0x0130($v0) ## 00000130 -/* 00AF4 809B4414 26040210 */ addiu $a0, $s0, 0x0210 ## $a0 = 00000210 -/* 00AF8 809B4418 26050250 */ addiu $a1, $s0, 0x0250 ## $a1 = 00000250 -/* 00AFC 809B441C 11A0006A */ beq $t5, $zero, .L809B45C8 -/* 00B00 809B4420 8FAE009C */ lw $t6, 0x009C($sp) -/* 00B04 809B4424 25CF07C0 */ addiu $t7, $t6, 0x07C0 ## $t7 = 000007C0 -/* 00B08 809B4428 AFAF003C */ sw $t7, 0x003C($sp) -/* 00B0C 809B442C 27A60060 */ addiu $a2, $sp, 0x0060 ## $a2 = FFFFFFC8 -/* 00B10 809B4430 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 00B14 809B4434 AFA50040 */ sw $a1, 0x0040($sp) -/* 00B18 809B4438 8FA40044 */ lw $a0, 0x0044($sp) -/* 00B1C 809B443C 8FA50040 */ lw $a1, 0x0040($sp) -/* 00B20 809B4440 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 00B24 809B4444 27A60054 */ addiu $a2, $sp, 0x0054 ## $a2 = FFFFFFBC -/* 00B28 809B4448 27B80094 */ addiu $t8, $sp, 0x0094 ## $t8 = FFFFFFFC -/* 00B2C 809B444C 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 00B30 809B4450 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -/* 00B34 809B4454 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 00B38 809B4458 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 00B3C 809B445C 27AB0090 */ addiu $t3, $sp, 0x0090 ## $t3 = FFFFFFF8 -/* 00B40 809B4460 AFAB0024 */ sw $t3, 0x0024($sp) -/* 00B44 809B4464 AFAA0020 */ sw $t2, 0x0020($sp) -/* 00B48 809B4468 AFA9001C */ sw $t1, 0x001C($sp) -/* 00B4C 809B446C AFA80018 */ sw $t0, 0x0018($sp) -/* 00B50 809B4470 AFB90014 */ sw $t9, 0x0014($sp) -/* 00B54 809B4474 AFB80010 */ sw $t8, 0x0010($sp) -/* 00B58 809B4478 8FA4003C */ lw $a0, 0x003C($sp) -/* 00B5C 809B447C 27A50060 */ addiu $a1, $sp, 0x0060 ## $a1 = FFFFFFC8 -/* 00B60 809B4480 27A60054 */ addiu $a2, $sp, 0x0054 ## $a2 = FFFFFFBC -/* 00B64 809B4484 0C00F7A1 */ jal BgCheck_EntityLineTest1 -/* 00B68 809B4488 27A70084 */ addiu $a3, $sp, 0x0084 ## $a3 = FFFFFFEC -/* 00B6C 809B448C 1040003D */ beq $v0, $zero, .L809B4584 -/* 00B70 809B4490 8FA40044 */ lw $a0, 0x0044($sp) -/* 00B74 809B4494 C7B20084 */ lwc1 $f18, 0x0084($sp) -/* 00B78 809B4498 C7A40054 */ lwc1 $f4, 0x0054($sp) -/* 00B7C 809B449C C7A80084 */ lwc1 $f8, 0x0084($sp) -/* 00B80 809B44A0 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00B84 809B44A4 4612203E */ c.le.s $f4, $f18 -/* 00B88 809B44A8 00000000 */ nop -/* 00B8C 809B44AC 45020008 */ bc1fl .L809B44D0 -/* 00B90 809B44B0 44816000 */ mtc1 $at, $f12 ## $f12 = -1.00 -/* 00B94 809B44B4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00B98 809B44B8 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 -/* 00B9C 809B44BC 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00BA0 809B44C0 44816000 */ mtc1 $at, $f12 ## $f12 = -1.00 -/* 00BA4 809B44C4 10000005 */ beq $zero, $zero, .L809B44DC -/* 00BA8 809B44C8 46001006 */ mov.s $f0, $f2 -/* 00BAC 809B44CC 44816000 */ mtc1 $at, $f12 ## $f12 = -1.00 -.L809B44D0: -/* 00BB0 809B44D0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00BB4 809B44D4 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 -/* 00BB8 809B44D8 46006006 */ mov.s $f0, $f12 -.L809B44DC: -/* 00BBC 809B44DC 46080180 */ add.s $f6, $f0, $f8 -/* 00BC0 809B44E0 8E0C024C */ lw $t4, 0x024C($s0) ## 0000024C -/* 00BC4 809B44E4 E5860024 */ swc1 $f6, 0x0024($t4) ## 00000024 -/* 00BC8 809B44E8 C7AA0088 */ lwc1 $f10, 0x0088($sp) -/* 00BCC 809B44EC C7B00058 */ lwc1 $f16, 0x0058($sp) -/* 00BD0 809B44F0 C7B20088 */ lwc1 $f18, 0x0088($sp) -/* 00BD4 809B44F4 460A803E */ c.le.s $f16, $f10 -/* 00BD8 809B44F8 00000000 */ nop -/* 00BDC 809B44FC 45020004 */ bc1fl .L809B4510 -/* 00BE0 809B4500 46006006 */ mov.s $f0, $f12 -/* 00BE4 809B4504 10000002 */ beq $zero, $zero, .L809B4510 -/* 00BE8 809B4508 46001006 */ mov.s $f0, $f2 -/* 00BEC 809B450C 46006006 */ mov.s $f0, $f12 -.L809B4510: -/* 00BF0 809B4510 46120100 */ add.s $f4, $f0, $f18 -/* 00BF4 809B4514 8E0D024C */ lw $t5, 0x024C($s0) ## 0000024C -/* 00BF8 809B4518 E5A40028 */ swc1 $f4, 0x0028($t5) ## 00000028 -/* 00BFC 809B451C C7A8008C */ lwc1 $f8, 0x008C($sp) -/* 00C00 809B4520 C7A6005C */ lwc1 $f6, 0x005C($sp) -/* 00C04 809B4524 C7AA008C */ lwc1 $f10, 0x008C($sp) -/* 00C08 809B4528 4608303E */ c.le.s $f6, $f8 -/* 00C0C 809B452C 00000000 */ nop -/* 00C10 809B4530 45020004 */ bc1fl .L809B4544 -/* 00C14 809B4534 46006006 */ mov.s $f0, $f12 -/* 00C18 809B4538 10000002 */ beq $zero, $zero, .L809B4544 -/* 00C1C 809B453C 46001006 */ mov.s $f0, $f2 -/* 00C20 809B4540 46006006 */ mov.s $f0, $f12 -.L809B4544: -/* 00C24 809B4544 460A0400 */ add.s $f16, $f0, $f10 -/* 00C28 809B4548 8E0E024C */ lw $t6, 0x024C($s0) ## 0000024C -/* 00C2C 809B454C E5D0002C */ swc1 $f16, 0x002C($t6) ## 0000002C -/* 00C30 809B4550 8E04024C */ lw $a0, 0x024C($s0) ## 0000024C -/* 00C34 809B4554 8FA60040 */ lw $a2, 0x0040($sp) -/* 00C38 809B4558 8FA50044 */ lw $a1, 0x0044($sp) -/* 00C3C 809B455C 0C01DFB4 */ jal Math_Vec3f_Diff - ## Vec3f_Sub -/* 00C40 809B4560 24840024 */ addiu $a0, $a0, 0x0024 ## $a0 = 00000024 -/* 00C44 809B4564 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 00C48 809B4568 3C01FFFF */ lui $at, 0xFFFF ## $at = FFFF0000 -/* 00C4C 809B456C 34217FFF */ ori $at, $at, 0x7FFF ## $at = FFFF7FFF -/* 00C50 809B4570 8C4F0004 */ lw $t7, 0x0004($v0) ## 00000004 -/* 00C54 809B4574 01E1C024 */ and $t8, $t7, $at -/* 00C58 809B4578 AC580004 */ sw $t8, 0x0004($v0) ## 00000004 -/* 00C5C 809B457C 10000005 */ beq $zero, $zero, .L809B4594 -/* 00C60 809B4580 AE00024C */ sw $zero, 0x024C($s0) ## 0000024C -.L809B4584: -/* 00C64 809B4584 8E06024C */ lw $a2, 0x024C($s0) ## 0000024C -/* 00C68 809B4588 8FA50040 */ lw $a1, 0x0040($sp) -/* 00C6C 809B458C 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 00C70 809B4590 24C60024 */ addiu $a2, $a2, 0x0024 ## $a2 = 00000024 -.L809B4594: -/* 00C74 809B4594 9219024A */ lbu $t9, 0x024A($s0) ## 0000024A -/* 00C78 809B4598 5320000D */ beql $t9, $zero, .L809B45D0 -/* 00C7C 809B459C 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00C80 809B45A0 8E02024C */ lw $v0, 0x024C($s0) ## 0000024C -/* 00C84 809B45A4 5040000A */ beql $v0, $zero, .L809B45D0 -/* 00C88 809B45A8 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00C8C 809B45AC 8C480004 */ lw $t0, 0x0004($v0) ## 00000004 -/* 00C90 809B45B0 3C01FFFF */ lui $at, 0xFFFF ## $at = FFFF0000 -/* 00C94 809B45B4 34217FFF */ ori $at, $at, 0x7FFF ## $at = FFFF7FFF -/* 00C98 809B45B8 01014824 */ and $t1, $t0, $at -/* 00C9C 809B45BC AC490004 */ sw $t1, 0x0004($v0) ## 00000004 -/* 00CA0 809B45C0 10000002 */ beq $zero, $zero, .L809B45CC -/* 00CA4 809B45C4 AE00024C */ sw $zero, 0x024C($s0) ## 0000024C -.L809B45C8: -/* 00CA8 809B45C8 AE00024C */ sw $zero, 0x024C($s0) ## 0000024C -.L809B45CC: -/* 00CAC 809B45CC 8FBF0034 */ lw $ra, 0x0034($sp) -.L809B45D0: -/* 00CB0 809B45D0 8FB00030 */ lw $s0, 0x0030($sp) -/* 00CB4 809B45D4 27BD0098 */ addiu $sp, $sp, 0x0098 ## $sp = 00000000 -/* 00CB8 809B45D8 03E00008 */ jr $ra -/* 00CBC 809B45DC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B45E0.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B45E0.s deleted file mode 100644 index 14c4f731a0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B45E0.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_809B45E0 -/* 00CC0 809B45E0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00CC4 809B45E4 AFA5001C */ sw $a1, 0x001C($sp) -/* 00CC8 809B45E8 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 00CCC 809B45EC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00CD0 809B45F0 AFA40018 */ sw $a0, 0x0018($sp) -/* 00CD4 809B45F4 AFA50018 */ sw $a1, 0x0018($sp) -/* 00CD8 809B45F8 0C02927F */ jal SkelAnime_Update - -/* 00CDC 809B45FC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C -/* 00CE0 809B4600 8FA50018 */ lw $a1, 0x0018($sp) -/* 00CE4 809B4604 90A20248 */ lbu $v0, 0x0248($a1) ## 00000248 -/* 00CE8 809B4608 14400003 */ bne $v0, $zero, .L809B4618 -/* 00CEC 809B460C 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 00CF0 809B4610 10000003 */ beq $zero, $zero, .L809B4620 -/* 00CF4 809B4614 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -.L809B4618: -/* 00CF8 809B4618 A0AE0248 */ sb $t6, 0x0248($a1) ## 00000248 -/* 00CFC 809B461C 31C300FF */ andi $v1, $t6, 0x00FF ## $v1 = 000000FF -.L809B4620: -/* 00D00 809B4620 54600004 */ bnel $v1, $zero, .L809B4634 -/* 00D04 809B4624 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00D08 809B4628 0C00B55C */ jal Actor_Kill - -/* 00D0C 809B462C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00D10 809B4630 8FBF0014 */ lw $ra, 0x0014($sp) -.L809B4634: -/* 00D14 809B4634 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00D18 809B4638 03E00008 */ jr $ra -/* 00D1C 809B463C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4640.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4640.s deleted file mode 100644 index 2367389cb3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4640.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_809B4640 -/* 00D20 809B4640 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00D24 809B4644 AFA5001C */ sw $a1, 0x001C($sp) -/* 00D28 809B4648 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 00D2C 809B464C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00D30 809B4650 AFA40018 */ sw $a0, 0x0018($sp) -/* 00D34 809B4654 AFA50018 */ sw $a1, 0x0018($sp) -/* 00D38 809B4658 0C02927F */ jal SkelAnime_Update - -/* 00D3C 809B465C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C -/* 00D40 809B4660 0C00B638 */ jal Actor_MoveForward - -/* 00D44 809B4664 8FA40018 */ lw $a0, 0x0018($sp) -/* 00D48 809B4668 8FA50018 */ lw $a1, 0x0018($sp) -/* 00D4C 809B466C 90A20248 */ lbu $v0, 0x0248($a1) ## 00000248 -/* 00D50 809B4670 14400003 */ bne $v0, $zero, .L809B4680 -/* 00D54 809B4674 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 00D58 809B4678 10000003 */ beq $zero, $zero, .L809B4688 -/* 00D5C 809B467C 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -.L809B4680: -/* 00D60 809B4680 A0AE0248 */ sb $t6, 0x0248($a1) ## 00000248 -/* 00D64 809B4684 31C300FF */ andi $v1, $t6, 0x00FF ## $v1 = 000000FF -.L809B4688: -/* 00D68 809B4688 54600004 */ bnel $v1, $zero, .L809B469C -/* 00D6C 809B468C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00D70 809B4690 0C00B55C */ jal Actor_Kill - -/* 00D74 809B4694 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00D78 809B4698 8FBF0014 */ lw $ra, 0x0014($sp) -.L809B469C: -/* 00D7C 809B469C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00D80 809B46A0 03E00008 */ jr $ra -/* 00D84 809B46A4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4800.s b/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4800.s deleted file mode 100644 index 4a100da78f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4800.s +++ /dev/null @@ -1,95 +0,0 @@ -glabel func_809B4800 -/* 00EE0 809B4800 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 00EE4 809B4804 AFB00020 */ sw $s0, 0x0020($sp) -/* 00EE8 809B4808 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00EEC 809B480C AFBF0024 */ sw $ra, 0x0024($sp) -/* 00EF0 809B4810 AFA50054 */ sw $a1, 0x0054($sp) -/* 00EF4 809B4814 3C04809B */ lui $a0, %hi(D_809B4EA0) ## $a0 = 809B0000 -/* 00EF8 809B4818 24844EA0 */ addiu $a0, $a0, %lo(D_809B4EA0) ## $a0 = 809B4EA0 -/* 00EFC 809B481C 0C0346BD */ jal Matrix_MultVec3f -/* 00F00 809B4820 2605021C */ addiu $a1, $s0, 0x021C ## $a1 = 0000021C -/* 00F04 809B4824 8E0E025C */ lw $t6, 0x025C($s0) ## 0000025C -/* 00F08 809B4828 3C0F809B */ lui $t7, %hi(func_809B3FDC) ## $t7 = 809B0000 -/* 00F0C 809B482C 25EF3FDC */ addiu $t7, $t7, %lo(func_809B3FDC) ## $t7 = 809B3FDC -/* 00F10 809B4830 15CF0048 */ bne $t6, $t7, .L809B4954 -/* 00F14 809B4834 3C04809B */ lui $a0, %hi(D_809B4E88) ## $a0 = 809B0000 -/* 00F18 809B4838 24844E88 */ addiu $a0, $a0, %lo(D_809B4E88) ## $a0 = 809B4E88 -/* 00F1C 809B483C 0C0346BD */ jal Matrix_MultVec3f -/* 00F20 809B4840 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4 -/* 00F24 809B4844 3C04809B */ lui $a0, %hi(D_809B4E94) ## $a0 = 809B0000 -/* 00F28 809B4848 24844E94 */ addiu $a0, $a0, %lo(D_809B4E94) ## $a0 = 809B4E94 -/* 00F2C 809B484C 0C0346BD */ jal Matrix_MultVec3f -/* 00F30 809B4850 27A50038 */ addiu $a1, $sp, 0x0038 ## $a1 = FFFFFFE8 -/* 00F34 809B4854 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00F38 809B4858 2841000A */ slti $at, $v0, 0x000A -/* 00F3C 809B485C 5020003E */ beql $at, $zero, .L809B4958 -/* 00F40 809B4860 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00F44 809B4864 8E18024C */ lw $t8, 0x024C($s0) ## 0000024C -/* 00F48 809B4868 28430006 */ slti $v1, $v0, 0x0006 -/* 00F4C 809B486C 8FA40054 */ lw $a0, 0x0054($sp) -/* 00F50 809B4870 1700000A */ bne $t8, $zero, .L809B489C -/* 00F54 809B4874 26050190 */ addiu $a1, $s0, 0x0190 ## $a1 = 00000190 -/* 00F58 809B4878 27B90038 */ addiu $t9, $sp, 0x0038 ## $t9 = FFFFFFE8 -/* 00F5C 809B487C AFB90010 */ sw $t9, 0x0010($sp) -/* 00F60 809B4880 2606022C */ addiu $a2, $s0, 0x022C ## $a2 = 0000022C -/* 00F64 809B4884 27A70044 */ addiu $a3, $sp, 0x0044 ## $a3 = FFFFFFF4 -/* 00F68 809B4888 0C024120 */ jal func_80090480 -/* 00F6C 809B488C AFA30034 */ sw $v1, 0x0034($sp) -/* 00F70 809B4890 8FA30034 */ lw $v1, 0x0034($sp) -/* 00F74 809B4894 10000027 */ beq $zero, $zero, .L809B4934 -/* 00F78 809B4898 00621824 */ and $v1, $v1, $v0 -.L809B489C: -/* 00F7C 809B489C 10600025 */ beq $v1, $zero, .L809B4934 -/* 00F80 809B48A0 C7A40044 */ lwc1 $f4, 0x0044($sp) -/* 00F84 809B48A4 C6060230 */ lwc1 $f6, 0x0230($s0) ## 00000230 -/* 00F88 809B48A8 C7A80048 */ lwc1 $f8, 0x0048($sp) -/* 00F8C 809B48AC 46062032 */ c.eq.s $f4, $f6 -/* 00F90 809B48B0 00000000 */ nop -/* 00F94 809B48B4 4500001F */ bc1f .L809B4934 -/* 00F98 809B48B8 00000000 */ nop -/* 00F9C 809B48BC C60A0234 */ lwc1 $f10, 0x0234($s0) ## 00000234 -/* 00FA0 809B48C0 C7B0004C */ lwc1 $f16, 0x004C($sp) -/* 00FA4 809B48C4 460A4032 */ c.eq.s $f8, $f10 -/* 00FA8 809B48C8 00000000 */ nop -/* 00FAC 809B48CC 45000019 */ bc1f .L809B4934 -/* 00FB0 809B48D0 00000000 */ nop -/* 00FB4 809B48D4 C6120238 */ lwc1 $f18, 0x0238($s0) ## 00000238 -/* 00FB8 809B48D8 C7A40038 */ lwc1 $f4, 0x0038($sp) -/* 00FBC 809B48DC 46128032 */ c.eq.s $f16, $f18 -/* 00FC0 809B48E0 00000000 */ nop -/* 00FC4 809B48E4 45000013 */ bc1f .L809B4934 -/* 00FC8 809B48E8 00000000 */ nop -/* 00FCC 809B48EC C606023C */ lwc1 $f6, 0x023C($s0) ## 0000023C -/* 00FD0 809B48F0 C7A8003C */ lwc1 $f8, 0x003C($sp) -/* 00FD4 809B48F4 46062032 */ c.eq.s $f4, $f6 -/* 00FD8 809B48F8 00000000 */ nop -/* 00FDC 809B48FC 4500000D */ bc1f .L809B4934 -/* 00FE0 809B4900 00000000 */ nop -/* 00FE4 809B4904 C60A0240 */ lwc1 $f10, 0x0240($s0) ## 00000240 -/* 00FE8 809B4908 C7B00040 */ lwc1 $f16, 0x0040($sp) -/* 00FEC 809B490C 460A4032 */ c.eq.s $f8, $f10 -/* 00FF0 809B4910 00000000 */ nop -/* 00FF4 809B4914 45000007 */ bc1f .L809B4934 -/* 00FF8 809B4918 00000000 */ nop -/* 00FFC 809B491C C6120244 */ lwc1 $f18, 0x0244($s0) ## 00000244 -/* 01000 809B4920 46128032 */ c.eq.s $f16, $f18 -/* 01004 809B4924 00000000 */ nop -/* 01008 809B4928 45000002 */ bc1f .L809B4934 -/* 0100C 809B492C 00000000 */ nop -/* 01010 809B4930 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -.L809B4934: -/* 01014 809B4934 50600008 */ beql $v1, $zero, .L809B4958 -/* 01018 809B4938 8FBF0024 */ lw $ra, 0x0024($sp) -/* 0101C 809B493C 0C009AC3 */ jal Effect_GetByIndex -/* 01020 809B4940 8E040228 */ lw $a0, 0x0228($s0) ## 00000228 -/* 01024 809B4944 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000 -/* 01028 809B4948 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4 -/* 0102C 809B494C 0C007F7C */ jal EffectBlure_AddVertex -/* 01030 809B4950 27A60038 */ addiu $a2, $sp, 0x0038 ## $a2 = FFFFFFE8 -.L809B4954: -/* 01034 809B4954 8FBF0024 */ lw $ra, 0x0024($sp) -.L809B4958: -/* 01038 809B4958 8FB00020 */ lw $s0, 0x0020($sp) -/* 0103C 809B495C 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 -/* 01040 809B4960 03E00008 */ jr $ra -/* 01044 809B4964 00000000 */ nop diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index 86877f76ba..c850803261 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -846,8 +846,8 @@ - - + + diff --git a/data/overlays/actors/z_en_arrow.data.s b/data/overlays/actors/z_en_arrow.data.s deleted file mode 100644 index ae7e3bc392..0000000000 --- a/data/overlays/actors/z_en_arrow.data.s +++ /dev/null @@ -1,50 +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_Arrow_InitVars - .word 0x00160700, 0x00000030, 0x00010000, 0x00000260 -.word EnArrow_Init -.word EnArrow_Destroy -.word EnArrow_Update -.word EnArrow_Draw -glabel D_809B4D50 - .word 0x0A090000, 0x08030000, 0x02000000, 0x00000020, 0x00010000, 0xFFCFFFFF, 0x00000000, 0x1D000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_809B4DA0 - .word 0x3070FF6A -glabel D_809B4DA4 - .word 0x00000000, 0x00040000, 0x00FFC8FF, 0x00FFFFFF, 0x00FFC800, 0x00FFFF00 -glabel D_809B4DBC - .word 0x10000100, 0xFFFFAAFF, 0x00960000 -glabel D_809B4DC8 - .word 0x00000000, 0x00040000, 0x00FFC8FF, 0x00FFFFFF, 0x00FFC800, 0x00FFFF00, 0x10000100, 0xFFC800FF, 0xFF000000 -glabel D_809B4DEC - .word 0x00000000, 0x00040000, 0x00FFC8FF, 0x00FFFFFF, 0x00FFC800, 0x00FFFF00, 0x10000100, 0xAAFFFFFF, 0x0064FF00 -glabel D_809B4E10 - .word 0x00000000, 0x00040000, 0x00FFC8FF, 0x00FFFFFF, 0x00FFC800, 0x00FFFF00, 0x10000100, 0xFFFFAAFF, 0xFFFF0000 -glabel D_809B4E34 - .word 0x00000800, 0x00000020, 0x00000020, 0x00000800, 0x00001000, 0x00002000, 0x00010000, 0x00004000, 0x00008000, 0x00000004 -glabel D_809B4E5C - .word 0x010A010B, 0x010C010A, 0x010A010A -glabel D_809B4E68 - .word 0x00000000, 0x3F000000, 0x00000000 -glabel D_809B4E74 - .word 0x00000000, 0x3F000000, 0x00000000 -glabel D_809B4E80 - .word 0xFFFF64FF -glabel D_809B4E84 - .word 0xFF320000 -glabel D_809B4E88 - .word 0x00000000, 0x43C80000, 0x44BB8000 -glabel D_809B4E94 - .word 0x00000000, 0xC3C80000, 0x44BB8000 -glabel D_809B4EA0 - .word 0x00000000, 0x00000000, 0xC3960000, 0x00000000 - diff --git a/data/overlays/actors/z_en_arrow.reloc.s b/data/overlays/actors/z_en_arrow.reloc.s deleted file mode 100644 index 9b038aa743..0000000000 --- a/data/overlays/actors/z_en_arrow.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_809B4F70 - .incbin "baserom/ovl_En_Arrow", 0x1650, 0x00000190 diff --git a/spec b/spec index 43787bd906..b31bfd5a7c 100644 --- a/spec +++ b/spec @@ -1884,8 +1884,7 @@ endseg beginseg name "ovl_En_Arrow" include "build/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" - include "build/data/overlays/actors/z_en_arrow.data.o" - include "build/data/overlays/actors/z_en_arrow.reloc.o" + include "build/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" endseg beginseg 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 fc720dc229..37ce94048f 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -166,7 +166,7 @@ void ArrowFire_Fly(ArrowFire* this, GlobalContext* globalCtx) { } func_80865ECC(&this->unkPos, &this->actor.world.pos, 0.05f); - if (arrow->hitWall & 1) { + if (arrow->hitFlags & 1) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_EXPLOSION_FRAME); ArrowFire_SetupAction(this, ArrowFire_Hit); this->timer = 32; @@ -203,7 +203,7 @@ void ArrowFire_Draw(Actor* thisx, GlobalContext* globalCtx) { if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) { if (1) {} - tranform = (arrow->hitWall & 2) ? &this->actor : &arrow->actor; + tranform = (arrow->hitFlags & 2) ? &this->actor : &arrow->actor; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_arrow_fire.c", 618); 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 cd0dd87db8..6b07d5c936 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -167,7 +167,7 @@ void ArrowIce_Fly(ArrowIce* this, GlobalContext* globalCtx) { } func_80867E8C(&this->unkPos, &this->actor.world.pos, 0.05f); - if (arrow->hitWall & 1) { + if (arrow->hitFlags & 1) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_EXPLOSION_ICE); ArrowIce_SetupAction(this, ArrowIce_Hit); this->timer = 32; @@ -204,7 +204,7 @@ void ArrowIce_Draw(Actor* thisx, GlobalContext* globalCtx) { if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) { if (1) {} - tranform = (arrow->hitWall & 2) ? &this->actor : &arrow->actor; + tranform = (arrow->hitFlags & 2) ? &this->actor : &arrow->actor; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_arrow_ice.c", 610); 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 90a5e7f033..e67c5eaf01 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -167,7 +167,7 @@ void ArrowLight_Fly(ArrowLight* this, GlobalContext* globalCtx) { } func_80869E6C(&this->unkPos, &this->actor.world.pos, 0.05f); - if (arrow->hitWall & 1) { + if (arrow->hitFlags & 1) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_EXPLOSION_LIGHT); ArrowLight_SetupAction(this, ArrowLight_Hit); this->timer = 32; @@ -204,7 +204,7 @@ void ArrowLight_Draw(Actor* thisx, GlobalContext* globalCtx) { if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) { if (1) {} - tranform = (arrow->hitWall & 2) ? &this->actor : &arrow->actor; + tranform = (arrow->hitFlags & 2) ? &this->actor : &arrow->actor; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_arrow_light.c", 598); 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 000b6878b2..1183cdb586 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -5,7 +5,7 @@ */ #include "z_demo_im.h" - +#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #include "vt.h" #define FLAGS 0x00000011 @@ -750,7 +750,7 @@ void func_809865F8(DemoIm* this, GlobalContext* globalCtx, s32 arg2) { f32 spawnPosZ = thisPos->z + (Math_CosS(shapeRotY) * 30.0f); Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ARROW, spawnPosX, spawnPosY, spawnPosZ, 0xFA0, - this->actor.shape.rot.y, 0, 0xFFF6); + this->actor.shape.rot.y, 0, ARROW_CS_NUT); this->unk_27C = 1; } } else { @@ -1160,18 +1160,17 @@ s32 DemoIm_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList } } - if (*unk_2D0 != 0) { - if (limbIndex == 15) { - *dList = D_0600EDE8; - } + if ((*unk_2D0 != 0) && (limbIndex == 15)) { + *dList = D_0600EDE8; } + return false; } void DemoIm_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { DemoIm* this = THIS; - if (limbIndex == 0x10) { + if (limbIndex == 16) { Vec3f sp28 = D_809887D8; Vec3f dest; diff --git a/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c b/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c index 14d13c9fc2..2541977914 100644 --- a/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c +++ b/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c @@ -5,7 +5,7 @@ */ #include "z_en_arow_trap.h" - +#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #define FLAGS 0x00000010 #define THIS ((EnArowTrap*)thisx) @@ -47,7 +47,7 @@ void EnArowTrap_Update(Actor* thisx, GlobalContext* globalCtx) { if (this->attackTimer == 0) { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ARROW, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, this->actor.shape.rot.x, - this->actor.shape.rot.y, this->actor.shape.rot.z, -1); + this->actor.shape.rot.y, this->actor.shape.rot.z, ARROW_NORMAL_SILENT); this->attackTimer = 80; } } diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 13f5adb68e..f2ed4c7db9 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -1,7 +1,7 @@ /* * File: z_en_arrow.c * Overlay: ovl_En_Arrow - * Description: Arrows + * Description: Arrow, Deku Seed, and Deku Nut Projectile */ #include "z_en_arrow.h" @@ -16,7 +16,11 @@ void EnArrow_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnArrow_Update(Actor* thisx, GlobalContext* globalCtx); void EnArrow_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +void EnArrow_Shoot(EnArrow* this, GlobalContext* globalCtx); +void EnArrow_Fly(EnArrow* this, GlobalContext* globalCtx); +void func_809B45E0(EnArrow* this, GlobalContext* globalCtx); +void func_809B4640(EnArrow* this, GlobalContext* globalCtx); + const ActorInit En_Arrow_InitVars = { ACTOR_EN_ARROW, ACTORCAT_ITEMACTION, @@ -29,7 +33,7 @@ const ActorInit En_Arrow_InitVars = { (ActorFunc)EnArrow_Draw, }; -static ColliderQuadInit D_809B4D50 = { +static ColliderQuadInit sColliderInit = { { COLTYPE_NONE, AT_ON | AT_TYPE_PLAYER, @@ -48,27 +52,447 @@ static ColliderQuadInit D_809B4D50 = { }, { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } }, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3920.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Init.s") +static InitChainEntry sInitChain[] = { + ICHAIN_F32(minVelocityY, 65386, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Destroy.s") +void EnArrow_SetupAction(EnArrow* this, EnArrowActionFunc actionFunc) { + this->actionFunc = actionFunc; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3BD4.s") +void EnArrow_Init(Actor* thisx, GlobalContext* globalCtx) { + static EffectBlureInit2 blureNormal = { + 0, 4, 0, { 0, 255, 200, 255 }, { 0, 255, 255, 255 }, { 0, 255, 200, 0 }, { 0, 255, 255, 0 }, 16, + 0, 1, 0, { 255, 255, 170, 255 }, { 0, 150, 0, 0 }, + }; + static EffectBlureInit2 blureFire = { + 0, 4, 0, { 0, 255, 200, 255 }, { 0, 255, 255, 255 }, { 0, 255, 200, 0 }, { 0, 255, 255, 0 }, 16, + 0, 1, 0, { 255, 200, 0, 255 }, { 255, 0, 0, 0 }, + }; + static EffectBlureInit2 blureIce = { + 0, 4, 0, { 0, 255, 200, 255 }, { 0, 255, 255, 255 }, { 0, 255, 200, 0 }, { 0, 255, 255, 0 }, 16, + 0, 1, 0, { 170, 255, 255, 255 }, { 0, 100, 255, 0 }, + }; + static EffectBlureInit2 blureLight = { + 0, 4, 0, { 0, 255, 200, 255 }, { 0, 255, 255, 255 }, { 0, 255, 200, 0 }, { 0, 255, 255, 0 }, 16, + 0, 1, 0, { 255, 255, 170, 255 }, { 255, 255, 0, 0 }, + }; + static u32 dmgFlags[] = { + 0x00000800, 0x00000020, 0x00000020, 0x00000800, 0x00001000, + 0x00002000, 0x00010000, 0x00004000, 0x00008000, 0x00000004, + }; + EnArrow* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3CEC.s") + Actor_ProcessInitChain(&this->actor, sInitChain); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3DD8.s") + if (this->actor.params == ARROW_CS_NUT) { + this->isCsNut = true; + this->actor.params = ARROW_NUT; + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B3FDC.s") + if (this->actor.params <= ARROW_SEED) { -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B45E0.s") + if (this->actor.params <= ARROW_0E) { + SkelAnime_Init(globalCtx, &this->skelAnime, &gArrowSkel, &gArrow2Anim, NULL, NULL, 0); + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4640.s") + if (this->actor.params <= ARROW_NORMAL) { + if (this->actor.params == ARROW_NORMAL_HORSE) { + blureNormal.elemDuration = 4; + } else { + blureNormal.elemDuration = 16; + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Update.s") + Effect_Add(globalCtx, &this->effectIndex, EFFECT_BLURE2, 0, 0, &blureNormal); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/func_809B4800.s") + } else if (this->actor.params == ARROW_FIRE) { -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Arrow/EnArrow_Draw.s") + Effect_Add(globalCtx, &this->effectIndex, EFFECT_BLURE2, 0, 0, &blureFire); + + } else if (this->actor.params == ARROW_ICE) { + + Effect_Add(globalCtx, &this->effectIndex, EFFECT_BLURE2, 0, 0, &blureIce); + + } else if (this->actor.params == ARROW_LIGHT) { + + Effect_Add(globalCtx, &this->effectIndex, EFFECT_BLURE2, 0, 0, &blureLight); + } + + Collider_InitQuad(globalCtx, &this->collider); + Collider_SetQuad(globalCtx, &this->collider, &this->actor, &sColliderInit); + + if (this->actor.params <= ARROW_NORMAL) { + this->collider.info.toucherFlags &= ~0x18; + this->collider.info.toucherFlags |= 0; + } + + if (this->actor.params < 0) { + this->collider.base.atFlags = (AT_ON | AT_TYPE_ENEMY); + } else if (this->actor.params <= ARROW_SEED) { + this->collider.info.toucher.dmgFlags = dmgFlags[this->actor.params]; + LOG_HEX("this->at_info.cl_elem.at_btl_info.at_type", this->collider.info.toucher.dmgFlags, "../z_en_arrow.c", + 707); + } + } + + EnArrow_SetupAction(this, EnArrow_Shoot); +} + +void EnArrow_Destroy(Actor* thisx, GlobalContext* globalCtx) { + EnArrow* this = THIS; + + if (this->actor.params <= ARROW_LIGHT) { + Effect_Delete(globalCtx, this->effectIndex); + } + + SkelAnime_Free(&this->skelAnime, globalCtx); + Collider_DestroyQuad(globalCtx, &this->collider); + + if ((this->hitActor != NULL) && (this->hitActor->update != NULL)) { + this->hitActor->flags &= ~0x8000; + } +} + +void EnArrow_Shoot(EnArrow* this, GlobalContext* globalCtx) { + Player* player = PLAYER; + + if (this->actor.parent == NULL) { + if ((this->actor.params != ARROW_NUT) && (player->unk_A73 == 0)) { + Actor_Kill(&this->actor); + return; + } + + switch (this->actor.params) { + case ARROW_SEED: + func_8002F7DC(&player->actor, NA_SE_IT_SLING_SHOT); + break; + + case ARROW_NORMAL_LIT: + case ARROW_NORMAL_HORSE: + case ARROW_NORMAL: + func_8002F7DC(&player->actor, NA_SE_IT_ARROW_SHOT); + break; + + case ARROW_FIRE: + case ARROW_ICE: + case ARROW_LIGHT: + func_8002F7DC(&player->actor, NA_SE_IT_MAGIC_ARROW_SHOT); + break; + } + + EnArrow_SetupAction(this, EnArrow_Fly); + Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos); + + if (this->actor.params >= ARROW_SEED) { + func_8002D9A4(&this->actor, 80.0f); + this->timer = 15; + this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0; + } else { + func_8002D9A4(&this->actor, 150.0f); + this->timer = 12; + } + } +} + +void func_809B3CEC(GlobalContext* globalCtx, EnArrow* this) { + EnArrow_SetupAction(this, func_809B4640); + Animation_PlayOnce(&this->skelAnime, &gArrow1Anim); + this->actor.world.rot.y += (s32)(24576.0f * (Rand_ZeroOne() - 0.5f)) + 0x8000; + this->actor.velocity.y += (this->actor.speedXZ * (0.4f + (0.4f * Rand_ZeroOne()))); + this->actor.speedXZ *= (0.04f + 0.3f * Rand_ZeroOne()); + this->timer = 50; + this->actor.gravity = -1.5f; +} + +void EnArrow_CarryActor(EnArrow* this, GlobalContext* globalCtx) { + CollisionPoly* hitPoly; + Vec3f posDiffLastFrame; + Vec3f actorNextPos; + Vec3f hitPos; + f32 temp_f12; + f32 scale; + s32 bgId; + + Math_Vec3f_Diff(&this->actor.world.pos, &this->unk_210, &posDiffLastFrame); + + temp_f12 = ((this->actor.world.pos.x - this->hitActor->world.pos.x) * posDiffLastFrame.x) + + ((this->actor.world.pos.y - this->hitActor->world.pos.y) * posDiffLastFrame.y) + + ((this->actor.world.pos.z - this->hitActor->world.pos.z) * posDiffLastFrame.z); + + if (!(temp_f12 < 0.0f)) { + scale = Math3D_Vec3fMagnitudeSq(&posDiffLastFrame); + + if (!(scale < 1.0f)) { + scale = temp_f12 / scale; + Math_Vec3f_Scale(&posDiffLastFrame, scale); + Math_Vec3f_Sum(&this->hitActor->world.pos, &posDiffLastFrame, &actorNextPos); + + if (BgCheck_EntityLineTest1(&globalCtx->colCtx, &this->hitActor->world.pos, &actorNextPos, &hitPos, + &hitPoly, true, true, true, true, &bgId)) { + this->hitActor->world.pos.x = hitPos.x + ((actorNextPos.x <= hitPos.x) ? 1.0f : -1.0f); + this->hitActor->world.pos.y = hitPos.y + ((actorNextPos.y <= hitPos.y) ? 1.0f : -1.0f); + this->hitActor->world.pos.z = hitPos.z + ((actorNextPos.z <= hitPos.z) ? 1.0f : -1.0f); + } else { + Math_Vec3f_Copy(&this->hitActor->world.pos, &actorNextPos); + } + } + } +} + +void EnArrow_Fly(EnArrow* this, GlobalContext* globalCtx) { + CollisionPoly* hitPoly; + s32 bgId; + Vec3f hitPoint; + Vec3f posCopy; + s32 atTouched; + u16 sfxId; + Actor* hitActor; + Vec3f sp60; + Vec3f sp54; + + if (DECR(this->timer) == 0) { + Actor_Kill(&this->actor); + return; + } + + if (this->timer < 7.2000003f) { + this->actor.gravity = -0.4f; + } + + atTouched = (this->actor.params != ARROW_NORMAL_LIT) && (this->actor.params <= ARROW_SEED) && + (this->collider.base.atFlags & AT_HIT); + + if (atTouched || this->touchedPoly) { + if (this->actor.params >= ARROW_SEED) { + if (atTouched) { + this->actor.world.pos.x = (this->actor.world.pos.x + this->actor.prevPos.x) * 0.5f; + this->actor.world.pos.y = (this->actor.world.pos.y + this->actor.prevPos.y) * 0.5f; + this->actor.world.pos.z = (this->actor.world.pos.z + this->actor.prevPos.z) * 0.5f; + } + + if (this->actor.params == ARROW_NUT) { + iREG(50) = -1; + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_M_FIRE1, this->actor.world.pos.x, + this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0); + sfxId = NA_SE_IT_DEKU; + } else { + sfxId = NA_SE_IT_SLING_REFLECT; + } + + EffectSsStone1_Spawn(globalCtx, &this->actor.world.pos, 0); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, sfxId); + Actor_Kill(&this->actor); + } else { + EffectSsHitMark_SpawnCustomScale(globalCtx, 0, 150, &this->actor.world.pos); + + if (atTouched && (this->collider.info.atHitInfo->elemType != ELEMTYPE_UNK4)) { + hitActor = this->collider.base.at; + + if ((hitActor->update != NULL) && (!(this->collider.base.atFlags & AT_BOUNCED)) && + (hitActor->flags & 0x4000)) { + this->hitActor = hitActor; + EnArrow_CarryActor(this, globalCtx); + Math_Vec3f_Diff(&hitActor->world.pos, &this->actor.world.pos, &this->unk_250); + hitActor->flags |= 0x8000; + this->collider.base.atFlags &= ~AT_HIT; + this->actor.speedXZ /= 2.0f; + this->actor.velocity.y /= 2.0f; + } else { + this->hitFlags |= 1; + this->hitFlags |= 2; + + if (this->collider.info.atHitInfo->bumperFlags & 2) { + this->actor.world.pos.x = this->collider.info.atHitInfo->bumper.hitPos.x; + this->actor.world.pos.y = this->collider.info.atHitInfo->bumper.hitPos.y; + this->actor.world.pos.z = this->collider.info.atHitInfo->bumper.hitPos.z; + } + + func_809B3CEC(globalCtx, this); + Audio_PlayActorSound2(&this->actor, NA_SE_IT_ARROW_STICK_CRE); + } + } else if (this->touchedPoly) { + EnArrow_SetupAction(this, func_809B45E0); + Animation_PlayOnce(&this->skelAnime, &gArrow2Anim); + + if (this->actor.params >= ARROW_NORMAL_LIT) { + this->timer = 60; + } else { + this->timer = 20; + } + + Audio_PlayActorSound2(&this->actor, NA_SE_IT_ARROW_STICK_OBJ); + this->hitFlags |= 1; + } + } + } else { + Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos); + Actor_MoveForward(&this->actor); + + if (this->touchedPoly = + BgCheck_ProjectileLineTest(&globalCtx->colCtx, &this->actor.prevPos, &this->actor.world.pos, &hitPoint, + &this->actor.wallPoly, true, true, true, true, &bgId)) { + func_8002F9EC(globalCtx, &this->actor, this->actor.wallPoly, bgId, &hitPoint); + Math_Vec3f_Copy(&posCopy, &this->actor.world.pos); + Math_Vec3f_Copy(&this->actor.world.pos, &hitPoint); + } + + if (this->actor.params <= ARROW_0E) { + this->actor.shape.rot.x = Math_Atan2S(this->actor.speedXZ, -this->actor.velocity.y); + } + } + + if (this->hitActor != NULL) { + if (this->hitActor->update != NULL) { + Math_Vec3f_Sum(&this->unk_210, &this->unk_250, &sp60); + Math_Vec3f_Sum(&this->actor.world.pos, &this->unk_250, &sp54); + + if (BgCheck_EntityLineTest1(&globalCtx->colCtx, &sp60, &sp54, &hitPoint, &hitPoly, true, true, true, true, + &bgId)) { + this->hitActor->world.pos.x = hitPoint.x + ((sp54.x <= hitPoint.x) ? 1.0f : -1.0f); + this->hitActor->world.pos.y = hitPoint.y + ((sp54.y <= hitPoint.y) ? 1.0f : -1.0f); + this->hitActor->world.pos.z = hitPoint.z + ((sp54.z <= hitPoint.z) ? 1.0f : -1.0f); + Math_Vec3f_Diff(&this->hitActor->world.pos, &this->actor.world.pos, &this->unk_250); + this->hitActor->flags &= ~0x8000; + this->hitActor = NULL; + } else { + Math_Vec3f_Sum(&this->actor.world.pos, &this->unk_250, &this->hitActor->world.pos); + } + + if (this->touchedPoly && (this->hitActor != NULL)) { + this->hitActor->flags &= ~0x8000; + this->hitActor = NULL; + } + } else { + this->hitActor = NULL; + } + } +} + +void func_809B45E0(EnArrow* this, GlobalContext* globalCtx) { + SkelAnime_Update(&this->skelAnime); + + if (DECR(this->timer) == 0) { + Actor_Kill(&this->actor); + } +} + +void func_809B4640(EnArrow* this, GlobalContext* globalCtx) { + SkelAnime_Update(&this->skelAnime); + Actor_MoveForward(&this->actor); + + if (DECR(this->timer) == 0) { + Actor_Kill(&this->actor); + } +} + +void EnArrow_Update(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + EnArrow* this = THIS; + Player* player = PLAYER; + + if (this->isCsNut || ((this->actor.params >= ARROW_NORMAL_LIT) && (player->unk_A73 != 0)) || + !Player_InBlockingCsMode(globalCtx, player)) { + this->actionFunc(this, globalCtx); + } + + if ((this->actor.params >= ARROW_FIRE) && (this->actor.params <= ARROW_0E)) { + s16 elementalActorIds[] = { ACTOR_ARROW_FIRE, ACTOR_ARROW_ICE, ACTOR_ARROW_LIGHT, + ACTOR_ARROW_FIRE, ACTOR_ARROW_FIRE, ACTOR_ARROW_FIRE }; + + if (this->actor.child == NULL) { + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, elementalActorIds[this->actor.params - 3], + this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, + 0); + } + } else if (this->actor.params == ARROW_NORMAL_LIT) { + static Vec3f velocity = { 0.0f, 0.5f, 0.0f }; + static Vec3f accel = { 0.0f, 0.5f, 0.0f }; + static Color_RGBA8 primColor = { 255, 255, 100, 255 }; + static Color_RGBA8 envColor = { 255, 50, 0, 0 }; + // spawn dust for the flame + func_8002836C(globalCtx, &this->unk_21C, &velocity, &accel, &primColor, &envColor, 100, 0, 8); + } +} + +void func_809B4800(EnArrow* this, GlobalContext* globalCtx) { + static Vec3f D_809B4E88 = { 0.0f, 400.0f, 1500.0f }; + static Vec3f D_809B4E94 = { 0.0f, -400.0f, 1500.0f }; + static Vec3f D_809B4EA0 = { 0.0f, 0.0f, -300.0f }; + Vec3f sp44; + Vec3f sp38; + s32 addBlureVertex; + + Matrix_MultVec3f(&D_809B4EA0, &this->unk_21C); + + if (EnArrow_Fly == this->actionFunc) { + Matrix_MultVec3f(&D_809B4E88, &sp44); + Matrix_MultVec3f(&D_809B4E94, &sp38); + + if (this->actor.params <= ARROW_SEED) { + addBlureVertex = this->actor.params <= ARROW_LIGHT; + + if (this->hitActor == NULL) { + addBlureVertex &= func_80090480(globalCtx, &this->collider, &this->weaponInfo, &sp44, &sp38); + } else { + if (addBlureVertex) { + if ((sp44.x == this->weaponInfo.tip.x) && (sp44.y == this->weaponInfo.tip.y) && + (sp44.z == this->weaponInfo.tip.z) && (sp38.x == this->weaponInfo.base.x) && + (sp38.y == this->weaponInfo.base.y) && (sp38.z == this->weaponInfo.base.z)) { + addBlureVertex = false; + } + } + } + + if (addBlureVertex) { + EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &sp44, &sp38); + } + } + } +} + +void EnArrow_Draw(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + EnArrow* this = THIS; + u8 alpha; + f32 scale; + + if (this->actor.params <= ARROW_0E) { + func_80093D18(globalCtx->state.gfxCtx); + SkelAnime_DrawLod(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, NULL, NULL, this, + (this->actor.projectedPos.z < MREG(95)) ? 0 : 1); + } else if (this->actor.speedXZ != 0.0f) { + alpha = (Math_CosS(this->timer * 5000) * 127.5f) + 127.5f; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_arrow.c", 1346); + + func_80093C14(globalCtx->state.gfxCtx); + + if (this->actor.params == ARROW_SEED) { + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); + gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, alpha); + scale = 50.0f; + } else { + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 12, 0, 0, 255); + gDPSetEnvColor(POLY_XLU_DISP++, 250, 250, 0, alpha); + scale = 150.0f; + } + + Matrix_Push(); + Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY); + // redundant check because this is contained in an if block for non-zero speed + Matrix_RotateZ((this->actor.speedXZ == 0.0f) ? 0.0f + : ((globalCtx->gameplayFrames & 0xFF) * 4000) * (M_PI / 32768), + MTXMODE_APPLY); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_arrow.c", 1374), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, gEffSparklesDL); + Matrix_Pull(); + Matrix_RotateY(this->actor.world.rot.y * (M_PI / 32768), MTXMODE_APPLY); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_arrow.c", 1381); + } + + func_809B4800(this, globalCtx); +} diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h index 2fe8830fd4..60465b3c06 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h @@ -6,16 +6,41 @@ struct EnArrow; +typedef void (*EnArrowActionFunc)(struct EnArrow*, GlobalContext*); + typedef struct EnArrow { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x5C]; - /* 0x01A8 */ s32 unk_1A8; // related to arrows being on fire - /* 0x01AC */ char unk_1AC[0x9C]; + /* 0x014C */ SkelAnime skelAnime; + /* 0x0190 */ ColliderQuad collider; + /* 0x0210 */ Vec3f unk_210; + /* 0x021C */ Vec3f unk_21C; + /* 0x0228 */ s32 effectIndex; + /* 0x022C */ WeaponInfo weaponInfo; /* 0x0248 */ u8 timer; // used for dissapearing when flying or hitting a wall - /* 0x0249 */ u8 hitWall; - /* 0x024A */ char unk_24A[0x16]; + /* 0x0249 */ u8 hitFlags; + /* 0x024A */ u8 touchedPoly; + /* 0x024B */ u8 isCsNut; + /* 0x024C */ Actor* hitActor; + /* 0x0250 */ Vec3f unk_250; + /* 0x025C */ EnArrowActionFunc actionFunc; } EnArrow; // size = 0x0260 +typedef enum { + /* -10 */ ARROW_CS_NUT = -10, // cutscene deku nuts are allowed to update in blocking mode + /* -1 */ ARROW_NORMAL_SILENT = -1, // normal arrow that does not make a sound when being shot + /* 0 */ ARROW_NORMAL_LIT, // normal arrow lit on fire + /* 1 */ ARROW_NORMAL_HORSE, // normal arrow shot while riding a horse + /* 2 */ ARROW_NORMAL, + /* 3 */ ARROW_FIRE, + /* 4 */ ARROW_ICE, + /* 5 */ ARROW_LIGHT, + /* 6 */ ARROW_0C, + /* 7 */ ARROW_0D, + /* 8 */ ARROW_0E, + /* 9 */ ARROW_SEED, + /* 10 */ ARROW_NUT +} ArrowType; + extern const ActorInit En_Arrow_InitVars; #endif diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.h b/src/overlays/actors/ovl_En_Boom/z_en_boom.h index 361577b278..7725ebfbab 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.h +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.h @@ -9,15 +9,15 @@ struct EnBoom; typedef void (*EnBoomActionFunc)(struct EnBoom*, GlobalContext*); typedef struct EnBoom { - /* 0x0000 */ Actor actor; - /* 0x014C */ ColliderQuad collider; - /* 0x01CC */ Actor* moveTo; // actor boomerang moves toward - /* 0x01D0 */ Actor* grabbed; // actor grabbed by the boomerang - /* 0x01D4 */ u8 returnTimer; // returns to Link when 0 - /* 0x01D5 */ u8 activeTimer; // increments once every update - /* 0x01D8 */ s32 effectIndex; // set by Effect_Add - /* 0x01DC */ WeaponInfo boomerangInfo; - /* 0x01F8 */ EnBoomActionFunc actionFunc; + /* 0x0000 */ Actor actor; + /* 0x014C */ ColliderQuad collider; + /* 0x01CC */ Actor* moveTo; // actor boomerang moves toward + /* 0x01D0 */ Actor* grabbed; // actor grabbed by the boomerang + /* 0x01D4 */ u8 returnTimer; // returns to Link when 0 + /* 0x01D5 */ u8 activeTimer; // increments once every update + /* 0x01D8 */ s32 effectIndex; + /* 0x01DC */ WeaponInfo boomerangInfo; + /* 0x01F8 */ EnBoomActionFunc actionFunc; } EnBoom; // size = 0x01FC extern const ActorInit En_Boom_InitVars; diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index a180b0f386..490e88579f 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -197,7 +197,7 @@ void ObjSyokudai_Update(Actor* thisx, GlobalContext* globalCtx2) { arrow = (EnArrow*)this->colliderFlame.base.ac; if ((arrow->actor.update != NULL) && (arrow->actor.id == ACTOR_EN_ARROW)) { arrow->actor.params = 0; - arrow->unk_1A8 = 0x800; + arrow->collider.info.toucher.dmgFlags = 0x800; } } if ((0 <= this->litTimer) && (this->litTimer < (50 * litTimeScale + 100)) && (torchType != 0)) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 618a0e2754..0a51a7bd57 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -10,6 +10,7 @@ #include "overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.h" #include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h" #include "overlays/actors/ovl_En_Boom/z_en_boom.h" +#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #include "overlays/actors/ovl_En_Box/z_en_box.h" #include "overlays/actors/ovl_En_Door/z_en_door.h" #include "overlays/actors/ovl_En_Elf/z_en_elf.h" @@ -33,7 +34,8 @@ typedef struct { #define CHEST_ANIM_SHORT 0 #define CHEST_ANIM_LONG 1 -#define GET_ITEM_NONE { ITEM_NONE, 0, 0, 0, 0 } +#define GET_ITEM_NONE \ + { ITEM_NONE, 0, 0, 0, 0 } typedef struct { /* 0x00 */ u8 itemId; @@ -1931,13 +1933,13 @@ s32 func_80834380(GlobalContext* globalCtx, Player* this, s32* itemPtr, s32* typ if (LINK_IS_ADULT) { *itemPtr = ITEM_BOW; if (this->stateFlags1 & 0x800000) { - *typePtr = 1; + *typePtr = ARROW_NORMAL_HORSE; } else { *typePtr = this->heldItemActionParam - 6; } } else { *itemPtr = ITEM_SLINGSHOT; - *typePtr = 9; + *typePtr = ARROW_SEED; } if (gSaveContext.minigameState == 1) { @@ -1967,12 +1969,12 @@ s32 func_8083442C(Player* this, GlobalContext* globalCtx) { func_8002F7DC(&this->actor, D_80854398[ABS(this->unk_860) - 1]); if (!Player_HoldsHookshot(this) && (func_80834380(globalCtx, this, &item, &arrowType) > 0)) { - magicArrowType = arrowType - 3; + magicArrowType = arrowType - ARROW_FIRE; if (this->unk_860 >= 0) { - if ((magicArrowType >= 0) && (magicArrowType < 3) && + if ((magicArrowType >= 0) && (magicArrowType <= 2) && !func_80087708(globalCtx, sMagicArrowCosts[magicArrowType], 0)) { - arrowType = 2; + arrowType = ARROW_NORMAL; } this->heldActor = Actor_SpawnAsChild( @@ -9034,7 +9036,8 @@ void Player_Init(Actor* thisx, GlobalContext* globalCtx2) { titleFileSize = scene->titleFile.vromEnd - scene->titleFile.vromStart; if ((titleFileSize != 0) && gSaveContext.showTitleCard) { if ((gSaveContext.sceneSetupIndex < 4) && - (gEntranceTable[((void)0, gSaveContext.entranceIndex) + ((void)0, gSaveContext.sceneSetupIndex)].field & 0x4000) && + (gEntranceTable[((void)0, gSaveContext.entranceIndex) + ((void)0, gSaveContext.sceneSetupIndex)].field & + 0x4000) && ((globalCtx->sceneNum != SCENE_DDAN) || (gSaveContext.eventChkInf[11] & 1)) && ((globalCtx->sceneNum != SCENE_NIGHT_SHOP) || (gSaveContext.eventChkInf[2] & 0x20))) { TitleCard_InitPlaceName(globalCtx, &globalCtx->actorCtx.titleCtx, this->giObjectSegment, 0xA0, 0x78, diff --git a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c index 41dceb770b..71ff1a0b5d 100644 --- a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c +++ b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c @@ -41,12 +41,12 @@ u32 EffectSsKiraKira_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, v if ((this->life = initParams->life) < 0) { this->life = -this->life; - this->gfx = SEGMENTED_TO_VIRTUAL(gEffFairySparklesDL); + this->gfx = SEGMENTED_TO_VIRTUAL(gEffSparklesDL); this->update = func_809AAD6C; this->rEnvColorA = initParams->scale; this->rScale = 0; } else { - this->gfx = SEGMENTED_TO_VIRTUAL(gEffFairySparklesDL); + this->gfx = SEGMENTED_TO_VIRTUAL(gEffSparklesDL); if (initParams->updateMode == 0) { this->update = func_809AABF0;