papermario/asm/nonmatchings/code_197F40/set_goal_pos_to_part.s
2020-10-14 23:49:49 -04:00

177 lines
8.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel set_goal_pos_to_part
/* 198034 80269754 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 198038 80269758 AFB20018 */ sw $s2, 0x18($sp)
/* 19803C 8026975C 0080902D */ daddu $s2, $a0, $zero
/* 198040 80269760 00A0202D */ daddu $a0, $a1, $zero
/* 198044 80269764 AFB3001C */ sw $s3, 0x1c($sp)
/* 198048 80269768 00C0982D */ daddu $s3, $a2, $zero
/* 19804C 8026976C AFB00010 */ sw $s0, 0x10($sp)
/* 198050 80269770 30900700 */ andi $s0, $a0, 0x700
/* 198054 80269774 AFBF0020 */ sw $ra, 0x20($sp)
/* 198058 80269778 0C09A75B */ jal get_actor
/* 19805C 8026977C AFB10014 */ sw $s1, 0x14($sp)
/* 198060 80269780 0040882D */ daddu $s1, $v0, $zero
/* 198064 80269784 24020100 */ addiu $v0, $zero, 0x100
/* 198068 80269788 12020035 */ beq $s0, $v0, .L80269860
/* 19806C 8026978C 2A020101 */ slti $v0, $s0, 0x101
/* 198070 80269790 50400005 */ beql $v0, $zero, .L802697A8
/* 198074 80269794 24020200 */ addiu $v0, $zero, 0x200
/* 198078 80269798 12000007 */ beqz $s0, .L802697B8
/* 19807C 8026979C 0220202D */ daddu $a0, $s1, $zero
/* 198080 802697A0 0809A66F */ j .L802699BC
/* 198084 802697A4 00000000 */ nop
.L802697A8:
/* 198088 802697A8 1202002E */ beq $s0, $v0, .L80269864
/* 19808C 802697AC 0220202D */ daddu $a0, $s1, $zero
/* 198090 802697B0 0809A66F */ j .L802699BC
/* 198094 802697B4 00000000 */ nop
.L802697B8:
/* 198098 802697B8 0C099117 */ jal get_actor_part
/* 19809C 802697BC 0000282D */ daddu $a1, $zero, $zero
/* 1980A0 802697C0 0040202D */ daddu $a0, $v0, $zero
/* 1980A4 802697C4 84820014 */ lh $v0, 0x14($a0)
/* 1980A8 802697C8 C6200188 */ lwc1 $f0, 0x188($s1)
/* 1980AC 802697CC 44821000 */ mtc1 $v0, $f2
/* 1980B0 802697D0 00000000 */ nop
/* 1980B4 802697D4 468010A0 */ cvt.s.w $f2, $f2
/* 1980B8 802697D8 46001082 */ mul.s $f2, $f2, $f0
/* 1980BC 802697DC 00000000 */ nop
/* 1980C0 802697E0 C6200144 */ lwc1 $f0, 0x144($s1)
/* 1980C4 802697E4 46020000 */ add.s $f0, $f0, $f2
/* 1980C8 802697E8 E640000C */ swc1 $f0, 0xc($s2)
/* 1980CC 802697EC 84820016 */ lh $v0, 0x16($a0)
/* 1980D0 802697F0 C6200188 */ lwc1 $f0, 0x188($s1)
/* 1980D4 802697F4 44821000 */ mtc1 $v0, $f2
/* 1980D8 802697F8 00000000 */ nop
/* 1980DC 802697FC 468010A0 */ cvt.s.w $f2, $f2
/* 1980E0 80269800 46001082 */ mul.s $f2, $f2, $f0
/* 1980E4 80269804 00000000 */ nop
/* 1980E8 80269808 C6200148 */ lwc1 $f0, 0x148($s1)
/* 1980EC 8026980C 46020000 */ add.s $f0, $f0, $f2
/* 1980F0 80269810 3C014120 */ lui $at, 0x4120
/* 1980F4 80269814 44811000 */ mtc1 $at, $f2
/* 1980F8 80269818 E6400010 */ swc1 $f0, 0x10($s2)
/* 1980FC 8026981C C620014C */ lwc1 $f0, 0x14c($s1)
/* 198100 80269820 46020000 */ add.s $f0, $f0, $f2
/* 198104 80269824 E6400014 */ swc1 $f0, 0x14($s2)
/* 198108 80269828 82230214 */ lb $v1, 0x214($s1)
/* 19810C 8026982C 2402000C */ addiu $v0, $zero, 0xc
/* 198110 80269830 14620062 */ bne $v1, $v0, .L802699BC
/* 198114 80269834 00000000 */ nop
/* 198118 80269838 C6200188 */ lwc1 $f0, 0x188($s1)
/* 19811C 8026983C 3C0140A0 */ lui $at, 0x40a0
/* 198120 80269840 44811000 */ mtc1 $at, $f2
/* 198124 80269844 00000000 */ nop
/* 198128 80269848 46020002 */ mul.s $f0, $f0, $f2
/* 19812C 8026984C 00000000 */ nop
/* 198130 80269850 C6420010 */ lwc1 $f2, 0x10($s2)
/* 198134 80269854 46001081 */ sub.s $f2, $f2, $f0
/* 198138 80269858 0809A66F */ j .L802699BC
/* 19813C 8026985C E6420010 */ swc1 $f2, 0x10($s2)
.L80269860:
/* 198140 80269860 0220202D */ daddu $a0, $s1, $zero
.L80269864:
/* 198144 80269864 0C099117 */ jal get_actor_part
/* 198148 80269868 0260282D */ daddu $a1, $s3, $zero
/* 19814C 8026986C 0040202D */ daddu $a0, $v0, $zero
/* 198150 80269870 8C820000 */ lw $v0, ($a0)
/* 198154 80269874 3C030010 */ lui $v1, 0x10
/* 198158 80269878 00431024 */ and $v0, $v0, $v1
/* 19815C 8026987C 1440002A */ bnez $v0, .L80269928
/* 198160 80269880 00000000 */ nop
/* 198164 80269884 84820014 */ lh $v0, 0x14($a0)
/* 198168 80269888 8483006C */ lh $v1, 0x6c($a0)
/* 19816C 8026988C C6200188 */ lwc1 $f0, 0x188($s1)
/* 198170 80269890 00431021 */ addu $v0, $v0, $v1
/* 198174 80269894 44821000 */ mtc1 $v0, $f2
/* 198178 80269898 00000000 */ nop
/* 19817C 8026989C 468010A0 */ cvt.s.w $f2, $f2
/* 198180 802698A0 46001082 */ mul.s $f2, $f2, $f0
/* 198184 802698A4 00000000 */ nop
/* 198188 802698A8 C6200144 */ lwc1 $f0, 0x144($s1)
/* 19818C 802698AC 46020000 */ add.s $f0, $f0, $f2
/* 198190 802698B0 E640000C */ swc1 $f0, 0xc($s2)
/* 198194 802698B4 8E220000 */ lw $v0, ($s1)
/* 198198 802698B8 30420800 */ andi $v0, $v0, 0x800
/* 19819C 802698BC 14400006 */ bnez $v0, .L802698D8
/* 1981A0 802698C0 00000000 */ nop
/* 1981A4 802698C4 84820016 */ lh $v0, 0x16($a0)
/* 1981A8 802698C8 8483006E */ lh $v1, 0x6e($a0)
/* 1981AC 802698CC C6200188 */ lwc1 $f0, 0x188($s1)
/* 1981B0 802698D0 0809A63B */ j .L802698EC
/* 1981B4 802698D4 00431021 */ addu $v0, $v0, $v1
.L802698D8:
/* 1981B8 802698D8 84820016 */ lh $v0, 0x16($a0)
/* 1981BC 802698DC 8483006E */ lh $v1, 0x6e($a0)
/* 1981C0 802698E0 C6200188 */ lwc1 $f0, 0x188($s1)
/* 1981C4 802698E4 00021023 */ negu $v0, $v0
/* 1981C8 802698E8 00431023 */ subu $v0, $v0, $v1
.L802698EC:
/* 1981CC 802698EC 44821000 */ mtc1 $v0, $f2
/* 1981D0 802698F0 00000000 */ nop
/* 1981D4 802698F4 468010A0 */ cvt.s.w $f2, $f2
/* 1981D8 802698F8 46001082 */ mul.s $f2, $f2, $f0
/* 1981DC 802698FC 00000000 */ nop
/* 1981E0 80269900 C6200148 */ lwc1 $f0, 0x148($s1)
/* 1981E4 80269904 46020000 */ add.s $f0, $f0, $f2
/* 1981E8 80269908 E6400010 */ swc1 $f0, 0x10($s2)
/* 1981EC 8026990C 84820018 */ lh $v0, 0x18($a0)
/* 1981F0 80269910 C620014C */ lwc1 $f0, 0x14c($s1)
/* 1981F4 80269914 44821000 */ mtc1 $v0, $f2
/* 1981F8 80269918 00000000 */ nop
/* 1981FC 8026991C 468010A0 */ cvt.s.w $f2, $f2
/* 198200 80269920 0809A66A */ j .L802699A8
/* 198204 80269924 46020000 */ add.s $f0, $f0, $f2
.L80269928:
/* 198208 80269928 8482006C */ lh $v0, 0x6c($a0)
/* 19820C 8026992C C480002C */ lwc1 $f0, 0x2c($a0)
/* 198210 80269930 44821000 */ mtc1 $v0, $f2
/* 198214 80269934 00000000 */ nop
/* 198218 80269938 468010A0 */ cvt.s.w $f2, $f2
/* 19821C 8026993C 46020000 */ add.s $f0, $f0, $f2
/* 198220 80269940 E640000C */ swc1 $f0, 0xc($s2)
/* 198224 80269944 8E220000 */ lw $v0, ($s1)
/* 198228 80269948 30420800 */ andi $v0, $v0, 0x800
/* 19822C 8026994C 1440000B */ bnez $v0, .L8026997C
/* 198230 80269950 00000000 */ nop
/* 198234 80269954 8482006E */ lh $v0, 0x6e($a0)
/* 198238 80269958 C6200188 */ lwc1 $f0, 0x188($s1)
/* 19823C 8026995C 44821000 */ mtc1 $v0, $f2
/* 198240 80269960 00000000 */ nop
/* 198244 80269964 468010A0 */ cvt.s.w $f2, $f2
/* 198248 80269968 46001082 */ mul.s $f2, $f2, $f0
/* 19824C 8026996C 00000000 */ nop
/* 198250 80269970 C4800030 */ lwc1 $f0, 0x30($a0)
/* 198254 80269974 0809A668 */ j .L802699A0
/* 198258 80269978 46020000 */ add.s $f0, $f0, $f2
.L8026997C:
/* 19825C 8026997C 8482006E */ lh $v0, 0x6e($a0)
/* 198260 80269980 C6200188 */ lwc1 $f0, 0x188($s1)
/* 198264 80269984 44821000 */ mtc1 $v0, $f2
/* 198268 80269988 00000000 */ nop
/* 19826C 8026998C 468010A0 */ cvt.s.w $f2, $f2
/* 198270 80269990 46001082 */ mul.s $f2, $f2, $f0
/* 198274 80269994 00000000 */ nop
/* 198278 80269998 C4800030 */ lwc1 $f0, 0x30($a0)
/* 19827C 8026999C 46020001 */ sub.s $f0, $f0, $f2
.L802699A0:
/* 198280 802699A0 E6400010 */ swc1 $f0, 0x10($s2)
/* 198284 802699A4 C4800034 */ lwc1 $f0, 0x34($a0)
.L802699A8:
/* 198288 802699A8 3C014120 */ lui $at, 0x4120
/* 19828C 802699AC 44811000 */ mtc1 $at, $f2
/* 198290 802699B0 00000000 */ nop
/* 198294 802699B4 46020000 */ add.s $f0, $f0, $f2
/* 198298 802699B8 E6400014 */ swc1 $f0, 0x14($s2)
.L802699BC:
/* 19829C 802699BC 8FBF0020 */ lw $ra, 0x20($sp)
/* 1982A0 802699C0 8FB3001C */ lw $s3, 0x1c($sp)
/* 1982A4 802699C4 8FB20018 */ lw $s2, 0x18($sp)
/* 1982A8 802699C8 8FB10014 */ lw $s1, 0x14($sp)
/* 1982AC 802699CC 8FB00010 */ lw $s0, 0x10($sp)
/* 1982B0 802699D0 03E00008 */ jr $ra
/* 1982B4 802699D4 27BD0028 */ addiu $sp, $sp, 0x28