.late_rodata glabel D_80139DE4 .float 0.017453292 # pi / 180 glabel D_80139DE8 .float 0.01 glabel D_80139DEC .float 0.1 glabel D_80139DF0 .float 0.2 .text glabel func_800458D4 /* ABCA74 800458D4 27BDFF90 */ addiu $sp, $sp, -0x70 /* ABCA78 800458D8 AFB0001C */ sw $s0, 0x1c($sp) /* ABCA7C 800458DC 00808025 */ move $s0, $a0 /* ABCA80 800458E0 AFBF0024 */ sw $ra, 0x24($sp) /* ABCA84 800458E4 AFB10020 */ sw $s1, 0x20($sp) /* ABCA88 800458E8 AFA60078 */ sw $a2, 0x78($sp) /* ABCA8C 800458EC AFA7007C */ sw $a3, 0x7c($sp) /* ABCA90 800458F0 00A08825 */ move $s1, $a1 /* ABCA94 800458F4 0C00B721 */ jal Player_GetCameraYOffset /* ABCA98 800458F8 8C840090 */ lw $a0, 0x90($a0) /* ABCA9C 800458FC C7A40078 */ lwc1 $f4, 0x78($sp) /* ABCAA0 80045900 44801000 */ mtc1 $zero, $f2 /* ABCAA4 80045904 87AE0082 */ lh $t6, 0x82($sp) /* ABCAA8 80045908 46040180 */ add.s $f6, $f0, $f4 /* ABCAAC 8004590C E7A20060 */ swc1 $f2, 0x60($sp) /* ABCAB0 80045910 E7A20068 */ swc1 $f2, 0x68($sp) /* ABCAB4 80045914 11C00010 */ beqz $t6, .L80045958 /* ABCAB8 80045918 E7A60064 */ swc1 $f6, 0x64($sp) /* ABCABC 8004591C 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 /* ABCAC0 80045920 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) /* ABCAC4 80045924 26040108 */ addiu $a0, $s0, 0x108 /* ABCAC8 80045928 860500A2 */ lh $a1, 0xa2($s0) /* ABCACC 8004592C 85F801A6 */ lh $t8, 0x1a6($t7) /* ABCAD0 80045930 86260006 */ lh $a2, 6($s1) /* ABCAD4 80045934 44984000 */ mtc1 $t8, $f8 /* ABCAD8 80045938 00000000 */ nop /* ABCADC 8004593C 46804220 */ cvt.s.w $f8, $f8 /* ABCAE0 80045940 44074000 */ mfc1 $a3, $f8 /* ABCAE4 80045944 0C0115C5 */ jal func_80045714 /* ABCAE8 80045948 00000000 */ nop /* ABCAEC 8004594C C7AA0064 */ lwc1 $f10, 0x64($sp) /* ABCAF0 80045950 46005401 */ sub.s $f16, $f10, $f0 /* ABCAF4 80045954 E7B00064 */ swc1 $f16, 0x64($sp) .L80045958: /* ABCAF8 80045958 8FB9007C */ lw $t9, 0x7c($sp) /* ABCAFC 8004595C 26110094 */ addiu $s1, $s0, 0x94 /* ABCB00 80045960 C6320004 */ lwc1 $f18, 4($s1) /* ABCB04 80045964 C7240000 */ lwc1 $f4, ($t9) /* ABCB08 80045968 26040050 */ addiu $a0, $s0, 0x50 /* ABCB0C 8004596C AFA40030 */ sw $a0, 0x30($sp) /* ABCB10 80045970 46049181 */ sub.s $f6, $f18, $f4 /* ABCB14 80045974 2605005C */ addiu $a1, $s0, 0x5c /* ABCB18 80045978 0C01F00A */ jal OLib_Vec3fDistXZ /* ABCB1C 8004597C E7A60048 */ swc1 $f6, 0x48($sp) /* ABCB20 80045980 C7AC0048 */ lwc1 $f12, 0x48($sp) /* ABCB24 80045984 0C03F494 */ jal Math_atan2f /* ABCB28 80045988 46000386 */ mov.s $f14, $f0 /* ABCB2C 8004598C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 /* ABCB30 80045990 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) /* ABCB34 80045994 3C018014 */ lui $at, %hi(D_80139DE4) /* ABCB38 80045998 C42C9DE4 */ lwc1 $f12, %lo(D_80139DE4)($at) /* ABCB3C 8004599C 844801D4 */ lh $t0, 0x1d4($v0) /* ABCB40 800459A0 46000386 */ mov.s $f14, $f0 /* ABCB44 800459A4 44884000 */ mtc1 $t0, $f8 /* ABCB48 800459A8 00000000 */ nop /* ABCB4C 800459AC 468042A0 */ cvt.s.w $f10, $f8 /* ABCB50 800459B0 460C5082 */ mul.s $f2, $f10, $f12 /* ABCB54 800459B4 4600103C */ c.lt.s $f2, $f0 /* ABCB58 800459B8 00000000 */ nop /* ABCB5C 800459BC 4502000A */ bc1fl .L800459E8 /* ABCB60 800459C0 844901D6 */ lh $t1, 0x1d6($v0) /* ABCB64 800459C4 0C0400A4 */ jal sinf /* ABCB68 800459C8 46027301 */ sub.s $f12, $f14, $f2 /* ABCB6C 800459CC 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ABCB70 800459D0 44818000 */ mtc1 $at, $f16 /* ABCB74 800459D4 3C028016 */ lui $v0, %hi(gGameInfo) /* ABCB78 800459D8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) /* ABCB7C 800459DC 10000015 */ b .L80045A34 /* ABCB80 800459E0 46008081 */ sub.s $f2, $f16, $f0 /* ABCB84 800459E4 844901D6 */ lh $t1, 0x1d6($v0) .L800459E8: /* ABCB88 800459E8 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ABCB8C 800459EC 44899000 */ mtc1 $t1, $f18 /* ABCB90 800459F0 00000000 */ nop /* ABCB94 800459F4 46809120 */ cvt.s.w $f4, $f18 /* ABCB98 800459F8 460C2082 */ mul.s $f2, $f4, $f12 /* ABCB9C 800459FC 4602003C */ c.lt.s $f0, $f2 /* ABCBA0 80045A00 00000000 */ nop /* ABCBA4 80045A04 4502000A */ bc1fl .L80045A30 /* ABCBA8 80045A08 44811000 */ mtc1 $at, $f2 /* ABCBAC 80045A0C 0C0400A4 */ jal sinf /* ABCBB0 80045A10 460E1301 */ sub.s $f12, $f2, $f14 /* ABCBB4 80045A14 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ABCBB8 80045A18 44813000 */ mtc1 $at, $f6 /* ABCBBC 80045A1C 3C028016 */ lui $v0, %hi(gGameInfo) /* ABCBC0 80045A20 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) /* ABCBC4 80045A24 10000003 */ b .L80045A34 /* ABCBC8 80045A28 46003081 */ sub.s $f2, $f6, $f0 /* ABCBCC 80045A2C 44811000 */ mtc1 $at, $f2 .L80045A30: /* ABCBD0 80045A30 00000000 */ nop .L80045A34: /* ABCBD4 80045A34 C7AA0048 */ lwc1 $f10, 0x48($sp) /* ABCBD8 80045A38 C7A80064 */ lwc1 $f8, 0x64($sp) /* ABCBDC 80045A3C 3C018014 */ lui $at, %hi(D_80139DE8) /* ABCBE0 80045A40 46025402 */ mul.s $f16, $f10, $f2 /* ABCBE4 80045A44 C4209DE8 */ lwc1 $f0, %lo(D_80139DE8)($at) /* ABCBE8 80045A48 3C018014 */ lui $at, %hi(D_80139DEC) /* ABCBEC 80045A4C 27A40060 */ addiu $a0, $sp, 0x60 /* ABCBF0 80045A50 260500E4 */ addiu $a1, $s0, 0xe4 /* ABCBF4 80045A54 46104481 */ sub.s $f18, $f8, $f16 /* ABCBF8 80045A58 E7B20064 */ swc1 $f18, 0x64($sp) /* ABCBFC 80045A5C 844A01CE */ lh $t2, 0x1ce($v0) /* ABCC00 80045A60 844B01D0 */ lh $t3, 0x1d0($v0) /* ABCC04 80045A64 448A2000 */ mtc1 $t2, $f4 /* ABCC08 80045A68 448B4000 */ mtc1 $t3, $f8 /* ABCC0C 80045A6C 468021A0 */ cvt.s.w $f6, $f4 /* ABCC10 80045A70 C4249DEC */ lwc1 $f4, %lo(D_80139DEC)($at) /* ABCC14 80045A74 E7A40010 */ swc1 $f4, 0x10($sp) /* ABCC18 80045A78 46804420 */ cvt.s.w $f16, $f8 /* ABCC1C 80045A7C 46003282 */ mul.s $f10, $f6, $f0 /* ABCC20 80045A80 00000000 */ nop /* ABCC24 80045A84 46008482 */ mul.s $f18, $f16, $f0 /* ABCC28 80045A88 44065000 */ mfc1 $a2, $f10 /* ABCC2C 80045A8C 44079000 */ mfc1 $a3, $f18 /* ABCC30 80045A90 0C010E8F */ jal func_80043A3C /* ABCC34 80045A94 00000000 */ nop /* ABCC38 80045A98 C6260000 */ lwc1 $f6, ($s1) /* ABCC3C 80045A9C C60A00E4 */ lwc1 $f10, 0xe4($s0) /* ABCC40 80045AA0 3C018014 */ lui $at, %hi(D_80139DF0) /* ABCC44 80045AA4 27A40054 */ addiu $a0, $sp, 0x54 /* ABCC48 80045AA8 460A3200 */ add.s $f8, $f6, $f10 /* ABCC4C 80045AAC 8FA50030 */ lw $a1, 0x30($sp) /* ABCC50 80045AB0 E7A80054 */ swc1 $f8, 0x54($sp) /* ABCC54 80045AB4 C61200E8 */ lwc1 $f18, 0xe8($s0) /* ABCC58 80045AB8 C6300004 */ lwc1 $f16, 4($s1) /* ABCC5C 80045ABC 46128100 */ add.s $f4, $f16, $f18 /* ABCC60 80045AC0 C4309DF0 */ lwc1 $f16, %lo(D_80139DF0)($at) /* ABCC64 80045AC4 E7A40058 */ swc1 $f4, 0x58($sp) /* ABCC68 80045AC8 C60A00EC */ lwc1 $f10, 0xec($s0) /* ABCC6C 80045ACC C6260008 */ lwc1 $f6, 8($s1) /* ABCC70 80045AD0 460A3200 */ add.s $f8, $f6, $f10 /* ABCC74 80045AD4 E7A8005C */ swc1 $f8, 0x5c($sp) /* ABCC78 80045AD8 C6000100 */ lwc1 $f0, 0x100($s0) /* ABCC7C 80045ADC E7B00010 */ swc1 $f16, 0x10($sp) /* ABCC80 80045AE0 44060000 */ mfc1 $a2, $f0 /* ABCC84 80045AE4 44070000 */ mfc1 $a3, $f0 /* ABCC88 80045AE8 0C010E8F */ jal func_80043A3C /* ABCC8C 80045AEC 00000000 */ nop /* ABCC90 80045AF0 8FBF0024 */ lw $ra, 0x24($sp) /* ABCC94 80045AF4 8FB0001C */ lw $s0, 0x1c($sp) /* ABCC98 80045AF8 8FB10020 */ lw $s1, 0x20($sp) /* ABCC9C 80045AFC 27BD0070 */ addiu $sp, $sp, 0x70 /* ABCCA0 80045B00 03E00008 */ jr $ra /* ABCCA4 80045B04 24020001 */ li $v0, 1