papermario/asm/nonmatchings/code_f2470_len_27f0/NpcFacePlayer.s
Ethan Roseman 51c076bd8e symbols!
2020-09-27 21:13:56 -04:00

119 lines
5.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel NpcFacePlayer
/* F3678 802CECC8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* F367C 802CECCC AFB10014 */ sw $s1, 0x14($sp)
/* F3680 802CECD0 0080882D */ daddu $s1, $a0, $zero
/* F3684 802CECD4 AFB40020 */ sw $s4, 0x20($sp)
/* F3688 802CECD8 3C148011 */ lui $s4, %hi(gPlayerStatus)
/* F368C 802CECDC 2694EFC8 */ addiu $s4, $s4, %lo(gPlayerStatus)
/* F3690 802CECE0 AFB60028 */ sw $s6, 0x28($sp)
/* F3694 802CECE4 26360074 */ addiu $s6, $s1, 0x74
/* F3698 802CECE8 AFB50024 */ sw $s5, 0x24($sp)
/* F369C 802CECEC 26350078 */ addiu $s5, $s1, 0x78
/* F36A0 802CECF0 AFB3001C */ sw $s3, 0x1c($sp)
/* F36A4 802CECF4 AFBF002C */ sw $ra, 0x2c($sp)
/* F36A8 802CECF8 AFB20018 */ sw $s2, 0x18($sp)
/* F36AC 802CECFC AFB00010 */ sw $s0, 0x10($sp)
/* F36B0 802CED00 8E32000C */ lw $s2, 0xc($s1)
/* F36B4 802CED04 10A00034 */ beqz $a1, .L802CEDD8
/* F36B8 802CED08 2633007C */ addiu $s3, $s1, 0x7c
/* F36BC 802CED0C 8E450000 */ lw $a1, ($s2)
/* F36C0 802CED10 0C0B1EAF */ jal get_variable
/* F36C4 802CED14 26520004 */ addiu $s2, $s2, 4
/* F36C8 802CED18 0220202D */ daddu $a0, $s1, $zero
/* F36CC 802CED1C 0C0B36B0 */ jal resolve_npc
/* F36D0 802CED20 0040282D */ daddu $a1, $v0, $zero
/* F36D4 802CED24 0040802D */ daddu $s0, $v0, $zero
/* F36D8 802CED28 1200004B */ beqz $s0, .L802CEE58
/* F36DC 802CED2C 24020002 */ addiu $v0, $zero, 2
/* F36E0 802CED30 C600000C */ lwc1 $f0, 0xc($s0)
/* F36E4 802CED34 E6200074 */ swc1 $f0, 0x74($s1)
/* F36E8 802CED38 C60C0038 */ lwc1 $f12, 0x38($s0)
/* F36EC 802CED3C C60E0040 */ lwc1 $f14, 0x40($s0)
/* F36F0 802CED40 8E860028 */ lw $a2, 0x28($s4)
/* F36F4 802CED44 0C00A720 */ jal atan2
/* F36F8 802CED48 8E870030 */ lw $a3, 0x30($s4)
/* F36FC 802CED4C C6220074 */ lwc1 $f2, 0x74($s1)
/* F3700 802CED50 46020001 */ sub.s $f0, $f0, $f2
/* F3704 802CED54 AE300070 */ sw $s0, 0x70($s1)
/* F3708 802CED58 E6200078 */ swc1 $f0, 0x78($s1)
/* F370C 802CED5C 8E450000 */ lw $a1, ($s2)
/* F3710 802CED60 0C0B1EAF */ jal get_variable
/* F3714 802CED64 0220202D */ daddu $a0, $s1, $zero
/* F3718 802CED68 AE22007C */ sw $v0, 0x7c($s1)
/* F371C 802CED6C A600008E */ sh $zero, 0x8e($s0)
/* F3720 802CED70 C6220078 */ lwc1 $f2, 0x78($s1)
/* F3724 802CED74 3C01C334 */ lui $at, 0xc334
/* F3728 802CED78 44810000 */ mtc1 $at, $f0
/* F372C 802CED7C 00000000 */ nop
/* F3730 802CED80 4600103C */ c.lt.s $f2, $f0
/* F3734 802CED84 00000000 */ nop
/* F3738 802CED88 45000007 */ bc1f .L802CEDA8
/* F373C 802CED8C 00000000 */ nop
/* F3740 802CED90 3C0143B4 */ lui $at, 0x43b4
/* F3744 802CED94 44810000 */ mtc1 $at, $f0
/* F3748 802CED98 00000000 */ nop
/* F374C 802CED9C 46001000 */ add.s $f0, $f2, $f0
/* F3750 802CEDA0 E6200078 */ swc1 $f0, 0x78($s1)
/* F3754 802CEDA4 C6220078 */ lwc1 $f2, 0x78($s1)
.L802CEDA8:
/* F3758 802CEDA8 3C014334 */ lui $at, 0x4334
/* F375C 802CEDAC 44810000 */ mtc1 $at, $f0
/* F3760 802CEDB0 00000000 */ nop
/* F3764 802CEDB4 4602003C */ c.lt.s $f0, $f2
/* F3768 802CEDB8 00000000 */ nop
/* F376C 802CEDBC 45000006 */ bc1f .L802CEDD8
/* F3770 802CEDC0 00000000 */ nop
/* F3774 802CEDC4 3C0143B4 */ lui $at, 0x43b4
/* F3778 802CEDC8 44810000 */ mtc1 $at, $f0
/* F377C 802CEDCC 00000000 */ nop
/* F3780 802CEDD0 46001001 */ sub.s $f0, $f2, $f0
/* F3784 802CEDD4 E6200078 */ swc1 $f0, 0x78($s1)
.L802CEDD8:
/* F3788 802CEDD8 8E620000 */ lw $v0, ($s3)
/* F378C 802CEDDC 8E300070 */ lw $s0, 0x70($s1)
/* F3790 802CEDE0 1C400006 */ bgtz $v0, .L802CEDFC
/* F3794 802CEDE4 24020002 */ addiu $v0, $zero, 2
/* F3798 802CEDE8 C600000C */ lwc1 $f0, 0xc($s0)
/* F379C 802CEDEC C6A20000 */ lwc1 $f2, ($s5)
/* F37A0 802CEDF0 46020000 */ add.s $f0, $f0, $f2
/* F37A4 802CEDF4 080B3B96 */ j .L802CEE58
/* F37A8 802CEDF8 E600000C */ swc1 $f0, 0xc($s0)
.L802CEDFC:
/* F37AC 802CEDFC 9602008E */ lhu $v0, 0x8e($s0)
/* F37B0 802CEE00 24420001 */ addiu $v0, $v0, 1
/* F37B4 802CEE04 A602008E */ sh $v0, 0x8e($s0)
/* F37B8 802CEE08 00021400 */ sll $v0, $v0, 0x10
/* F37BC 802CEE0C 00021403 */ sra $v0, $v0, 0x10
/* F37C0 802CEE10 C6A00000 */ lwc1 $f0, ($s5)
/* F37C4 802CEE14 44821000 */ mtc1 $v0, $f2
/* F37C8 802CEE18 00000000 */ nop
/* F37CC 802CEE1C 468010A0 */ cvt.s.w $f2, $f2
/* F37D0 802CEE20 46020002 */ mul.s $f0, $f0, $f2
/* F37D4 802CEE24 00000000 */ nop
/* F37D8 802CEE28 C6CC0000 */ lwc1 $f12, ($s6)
/* F37DC 802CEE2C C6620000 */ lwc1 $f2, ($s3)
/* F37E0 802CEE30 468010A0 */ cvt.s.w $f2, $f2
/* F37E4 802CEE34 46020003 */ div.s $f0, $f0, $f2
/* F37E8 802CEE38 46006300 */ add.s $f12, $f12, $f0
/* F37EC 802CEE3C 0C00A6C9 */ jal clamp_angle
/* F37F0 802CEE40 E60C000C */ swc1 $f12, 0xc($s0)
/* F37F4 802CEE44 8602008E */ lh $v0, 0x8e($s0)
/* F37F8 802CEE48 E600000C */ swc1 $f0, 0xc($s0)
/* F37FC 802CEE4C 8E630000 */ lw $v1, ($s3)
/* F3800 802CEE50 0043102A */ slt $v0, $v0, $v1
/* F3804 802CEE54 38420001 */ xori $v0, $v0, 1
.L802CEE58:
/* F3808 802CEE58 8FBF002C */ lw $ra, 0x2c($sp)
/* F380C 802CEE5C 8FB60028 */ lw $s6, 0x28($sp)
/* F3810 802CEE60 8FB50024 */ lw $s5, 0x24($sp)
/* F3814 802CEE64 8FB40020 */ lw $s4, 0x20($sp)
/* F3818 802CEE68 8FB3001C */ lw $s3, 0x1c($sp)
/* F381C 802CEE6C 8FB20018 */ lw $s2, 0x18($sp)
/* F3820 802CEE70 8FB10014 */ lw $s1, 0x14($sp)
/* F3824 802CEE74 8FB00010 */ lw $s0, 0x10($sp)
/* F3828 802CEE78 03E00008 */ jr $ra
/* F382C 802CEE7C 27BD0030 */ addiu $sp, $sp, 0x30