mirror of
https://github.com/pmret/papermario.git
synced 2024-11-10 04:52:34 +01:00
191 lines
9.8 KiB
ArmAsm
191 lines
9.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_802BFBA0
|
|
/* 3236F0 802BFBA0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 3236F4 802BFBA4 AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 3236F8 802BFBA8 0080982D */ daddu $s3, $a0, $zero
|
|
/* 3236FC 802BFBAC AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 323700 802BFBB0 00A0802D */ daddu $s0, $a1, $zero
|
|
/* 323704 802BFBB4 2404FFFC */ addiu $a0, $zero, -4
|
|
/* 323708 802BFBB8 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 32370C 802BFBBC AFB40020 */ sw $s4, 0x20($sp)
|
|
/* 323710 802BFBC0 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 323714 802BFBC4 0C00EABB */ jal get_npc_unsafe
|
|
/* 323718 802BFBC8 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 32371C 802BFBCC 3C148011 */ lui $s4, %hi(D_8010EBB0)
|
|
/* 323720 802BFBD0 2694EBB0 */ addiu $s4, $s4, %lo(D_8010EBB0)
|
|
/* 323724 802BFBD4 3C128011 */ lui $s2, %hi(gPlayerStatus)
|
|
/* 323728 802BFBD8 2652EFC8 */ addiu $s2, $s2, %lo(gPlayerStatus)
|
|
/* 32372C 802BFBDC 12000002 */ beqz $s0, .L802BFBE8
|
|
/* 323730 802BFBE0 0040882D */ daddu $s1, $v0, $zero
|
|
/* 323734 802BFBE4 AE600070 */ sw $zero, 0x70($s3)
|
|
.L802BFBE8:
|
|
/* 323738 802BFBE8 8E700070 */ lw $s0, 0x70($s3)
|
|
/* 32373C 802BFBEC 12000005 */ beqz $s0, .L802BFC04
|
|
/* 323740 802BFBF0 24020001 */ addiu $v0, $zero, 1
|
|
/* 323744 802BFBF4 1202006A */ beq $s0, $v0, .L802BFDA0
|
|
/* 323748 802BFBF8 0000102D */ daddu $v0, $zero, $zero
|
|
/* 32374C 802BFBFC 080AFF8D */ j .L802BFE34
|
|
/* 323750 802BFC00 00000000 */ nop
|
|
.L802BFC04:
|
|
/* 323754 802BFC04 8E6200B4 */ lw $v0, 0xb4($s3)
|
|
/* 323758 802BFC08 1440000F */ bnez $v0, .L802BFC48
|
|
/* 32375C 802BFC0C 00000000 */ nop
|
|
/* 323760 802BFC10 C6400028 */ lwc1 $f0, 0x28($s2)
|
|
/* 323764 802BFC14 3C014120 */ lui $at, 0x4120
|
|
/* 323768 802BFC18 44811000 */ mtc1 $at, $f2
|
|
/* 32376C 802BFC1C E6200038 */ swc1 $f0, 0x38($s1)
|
|
/* 323770 802BFC20 E6200060 */ swc1 $f0, 0x60($s1)
|
|
/* 323774 802BFC24 C620003C */ lwc1 $f0, 0x3c($s1)
|
|
/* 323778 802BFC28 C6440030 */ lwc1 $f4, 0x30($s2)
|
|
/* 32377C 802BFC2C 46020000 */ add.s $f0, $f0, $f2
|
|
/* 323780 802BFC30 E6240040 */ swc1 $f4, 0x40($s1)
|
|
/* 323784 802BFC34 E6240068 */ swc1 $f4, 0x68($s1)
|
|
/* 323788 802BFC38 0C03ADF3 */ jal partner_kill_ability_script
|
|
/* 32378C 802BFC3C E640002C */ swc1 $f0, 0x2c($s2)
|
|
/* 323790 802BFC40 080AFF25 */ j .L802BFC94
|
|
/* 323794 802BFC44 00000000 */ nop
|
|
.L802BFC48:
|
|
/* 323798 802BFC48 0C039769 */ jal set_action_state
|
|
/* 32379C 802BFC4C 24040021 */ addiu $a0, $zero, 0x21
|
|
/* 3237A0 802BFC50 0C038045 */ jal disable_player_static_collisions
|
|
/* 3237A4 802BFC54 00000000 */ nop
|
|
/* 3237A8 802BFC58 0C03805E */ jal disable_player_input
|
|
/* 3237AC 802BFC5C 00000000 */ nop
|
|
/* 3237B0 802BFC60 C6400028 */ lwc1 $f0, 0x28($s2)
|
|
/* 3237B4 802BFC64 3C014120 */ lui $at, 0x4120
|
|
/* 3237B8 802BFC68 44811000 */ mtc1 $at, $f2
|
|
/* 3237BC 802BFC6C E6200038 */ swc1 $f0, 0x38($s1)
|
|
/* 3237C0 802BFC70 E6200060 */ swc1 $f0, 0x60($s1)
|
|
/* 3237C4 802BFC74 C640002C */ lwc1 $f0, 0x2c($s2)
|
|
/* 3237C8 802BFC78 E620003C */ swc1 $f0, 0x3c($s1)
|
|
/* 3237CC 802BFC7C E6200064 */ swc1 $f0, 0x64($s1)
|
|
/* 3237D0 802BFC80 C6440030 */ lwc1 $f4, 0x30($s2)
|
|
/* 3237D4 802BFC84 46020000 */ add.s $f0, $f0, $f2
|
|
/* 3237D8 802BFC88 E6240040 */ swc1 $f4, 0x40($s1)
|
|
/* 3237DC 802BFC8C E6240068 */ swc1 $f4, 0x68($s1)
|
|
/* 3237E0 802BFC90 E640002C */ swc1 $f0, 0x2c($s2)
|
|
.L802BFC94:
|
|
/* 3237E4 802BFC94 C6660088 */ lwc1 $f6, 0x88($s3)
|
|
/* 3237E8 802BFC98 468031A0 */ cvt.s.w $f6, $f6
|
|
/* 3237EC 802BFC9C 44063000 */ mfc1 $a2, $f6
|
|
/* 3237F0 802BFCA0 C6660090 */ lwc1 $f6, 0x90($s3)
|
|
/* 3237F4 802BFCA4 468031A0 */ cvt.s.w $f6, $f6
|
|
/* 3237F8 802BFCA8 8E620094 */ lw $v0, 0x94($s3)
|
|
/* 3237FC 802BFCAC 44073000 */ mfc1 $a3, $f6
|
|
/* 323800 802BFCB0 AE620074 */ sw $v0, 0x74($s3)
|
|
/* 323804 802BFCB4 C62C0038 */ lwc1 $f12, 0x38($s1)
|
|
/* 323808 802BFCB8 C62E0040 */ lwc1 $f14, 0x40($s1)
|
|
/* 32380C 802BFCBC 0C00A720 */ jal atan2
|
|
/* 323810 802BFCC0 26700098 */ addiu $s0, $s3, 0x98
|
|
/* 323814 802BFCC4 46000086 */ mov.s $f2, $f0
|
|
/* 323818 802BFCC8 E622000C */ swc1 $f2, 0xc($s1)
|
|
/* 32381C 802BFCCC 8E6200B4 */ lw $v0, 0xb4($s3)
|
|
/* 323820 802BFCD0 10400014 */ beqz $v0, .L802BFD24
|
|
/* 323824 802BFCD4 24040295 */ addiu $a0, $zero, 0x295
|
|
/* 323828 802BFCD8 44800000 */ mtc1 $zero, $f0
|
|
/* 32382C 802BFCDC 00000000 */ nop
|
|
/* 323830 802BFCE0 4602003E */ c.le.s $f0, $f2
|
|
/* 323834 802BFCE4 00000000 */ nop
|
|
/* 323838 802BFCE8 4500000F */ bc1f .L802BFD28
|
|
/* 32383C 802BFCEC 0000282D */ daddu $a1, $zero, $zero
|
|
/* 323840 802BFCF0 3C014334 */ lui $at, 0x4334
|
|
/* 323844 802BFCF4 44810000 */ mtc1 $at, $f0
|
|
/* 323848 802BFCF8 00000000 */ nop
|
|
/* 32384C 802BFCFC 4600103E */ c.le.s $f2, $f0
|
|
/* 323850 802BFD00 00000000 */ nop
|
|
/* 323854 802BFD04 45000008 */ bc1f .L802BFD28
|
|
/* 323858 802BFD08 00000000 */ nop
|
|
/* 32385C 802BFD0C 4600118D */ trunc.w.s $f6, $f2
|
|
/* 323860 802BFD10 44023000 */ mfc1 $v0, $f6
|
|
/* 323864 802BFD14 00000000 */ nop
|
|
/* 323868 802BFD18 A622008A */ sh $v0, 0x8a($s1)
|
|
/* 32386C 802BFD1C 24020001 */ addiu $v0, $zero, 1
|
|
/* 323870 802BFD20 A6220088 */ sh $v0, 0x88($s1)
|
|
.L802BFD24:
|
|
/* 323874 802BFD24 0000282D */ daddu $a1, $zero, $zero
|
|
.L802BFD28:
|
|
/* 323878 802BFD28 0C052742 */ jal play_sound_at_npc
|
|
/* 32387C 802BFD2C 2406FFFC */ addiu $a2, $zero, -4
|
|
/* 323880 802BFD30 3C020008 */ lui $v0, 8
|
|
/* 323884 802BFD34 3C014000 */ lui $at, 0x4000
|
|
/* 323888 802BFD38 44816000 */ mtc1 $at, $f12
|
|
/* 32388C 802BFD3C 3442000E */ ori $v0, $v0, 0xe
|
|
/* 323890 802BFD40 AE4200B8 */ sw $v0, 0xb8($s2)
|
|
/* 323894 802BFD44 8E420000 */ lw $v0, ($s2)
|
|
/* 323898 802BFD48 3C031000 */ lui $v1, 0x1000
|
|
/* 32389C 802BFD4C A64000BC */ sh $zero, 0xbc($s2)
|
|
/* 3238A0 802BFD50 00431025 */ or $v0, $v0, $v1
|
|
/* 3238A4 802BFD54 0C0AFED1 */ jal func_802BFB44
|
|
/* 3238A8 802BFD58 AE420000 */ sw $v0, ($s2)
|
|
/* 3238AC 802BFD5C 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
|
/* 3238B0 802BFD60 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
|
/* 3238B4 802BFD64 24020001 */ addiu $v0, $zero, 1
|
|
/* 3238B8 802BFD68 A062007D */ sb $v0, 0x7d($v1)
|
|
/* 3238BC 802BFD6C 8E220000 */ lw $v0, ($s1)
|
|
/* 3238C0 802BFD70 34420100 */ ori $v0, $v0, 0x100
|
|
/* 3238C4 802BFD74 AE220000 */ sw $v0, ($s1)
|
|
/* 3238C8 802BFD78 C6000000 */ lwc1 $f0, ($s0)
|
|
/* 3238CC 802BFD7C 24020001 */ addiu $v0, $zero, 1
|
|
/* 3238D0 802BFD80 AE200014 */ sw $zero, 0x14($s1)
|
|
/* 3238D4 802BFD84 3C01802C */ lui $at, 0x802c
|
|
/* 3238D8 802BFD88 AC20FF10 */ sw $zero, -0xf0($at)
|
|
/* 3238DC 802BFD8C 3C01802C */ lui $at, 0x802c
|
|
/* 3238E0 802BFD90 AC20FF18 */ sw $zero, -0xe8($at)
|
|
/* 3238E4 802BFD94 E6200018 */ swc1 $f0, 0x18($s1)
|
|
/* 3238E8 802BFD98 080AFF8C */ j .L802BFE30
|
|
/* 3238EC 802BFD9C AE620070 */ sw $v0, 0x70($s3)
|
|
.L802BFDA0:
|
|
/* 3238F0 802BFDA0 8E250018 */ lw $a1, 0x18($s1)
|
|
/* 3238F4 802BFDA4 8E26000C */ lw $a2, 0xc($s1)
|
|
/* 3238F8 802BFDA8 0C00EA95 */ jal npc_move_heading
|
|
/* 3238FC 802BFDAC 0220202D */ daddu $a0, $s1, $zero
|
|
/* 323900 802BFDB0 C6200038 */ lwc1 $f0, 0x38($s1)
|
|
/* 323904 802BFDB4 3C014120 */ lui $at, 0x4120
|
|
/* 323908 802BFDB8 44811000 */ mtc1 $at, $f2
|
|
/* 32390C 802BFDBC E6400028 */ swc1 $f0, 0x28($s2)
|
|
/* 323910 802BFDC0 C620003C */ lwc1 $f0, 0x3c($s1)
|
|
/* 323914 802BFDC4 46020000 */ add.s $f0, $f0, $f2
|
|
/* 323918 802BFDC8 3C014000 */ lui $at, 0x4000
|
|
/* 32391C 802BFDCC 44816000 */ mtc1 $at, $f12
|
|
/* 323920 802BFDD0 E640002C */ swc1 $f0, 0x2c($s2)
|
|
/* 323924 802BFDD4 C6200040 */ lwc1 $f0, 0x40($s1)
|
|
/* 323928 802BFDD8 E6400030 */ swc1 $f0, 0x30($s2)
|
|
/* 32392C 802BFDDC C620000C */ lwc1 $f0, 0xc($s1)
|
|
/* 323930 802BFDE0 0C0AFED1 */ jal func_802BFB44
|
|
/* 323934 802BFDE4 E6400080 */ swc1 $f0, 0x80($s2)
|
|
/* 323938 802BFDE8 8E620074 */ lw $v0, 0x74($s3)
|
|
/* 32393C 802BFDEC 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 323940 802BFDF0 1440000F */ bnez $v0, .L802BFE30
|
|
/* 323944 802BFDF4 AE620074 */ sw $v0, 0x74($s3)
|
|
/* 323948 802BFDF8 8E6200B4 */ lw $v0, 0xb4($s3)
|
|
/* 32394C 802BFDFC 1040000A */ beqz $v0, .L802BFE28
|
|
/* 323950 802BFE00 24040021 */ addiu $a0, $zero, 0x21
|
|
/* 323954 802BFE04 0C039769 */ jal set_action_state
|
|
/* 323958 802BFE08 A2900001 */ sb $s0, 1($s4)
|
|
/* 32395C 802BFE0C A2800003 */ sb $zero, 3($s4)
|
|
/* 323960 802BFE10 0C03ACC5 */ jal partner_use_ability
|
|
/* 323964 802BFE14 A2800000 */ sb $zero, ($s4)
|
|
/* 323968 802BFE18 0C038050 */ jal enable_player_static_collisions
|
|
/* 32396C 802BFE1C 00000000 */ nop
|
|
/* 323970 802BFE20 0C038069 */ jal enable_player_input
|
|
/* 323974 802BFE24 00000000 */ nop
|
|
.L802BFE28:
|
|
/* 323978 802BFE28 080AFF8D */ j .L802BFE34
|
|
/* 32397C 802BFE2C 24020002 */ addiu $v0, $zero, 2
|
|
.L802BFE30:
|
|
/* 323980 802BFE30 0000102D */ daddu $v0, $zero, $zero
|
|
.L802BFE34:
|
|
/* 323984 802BFE34 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 323988 802BFE38 8FB40020 */ lw $s4, 0x20($sp)
|
|
/* 32398C 802BFE3C 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 323990 802BFE40 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 323994 802BFE44 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 323998 802BFE48 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 32399C 802BFE4C 03E00008 */ jr $ra
|
|
/* 3239A0 802BFE50 27BD0028 */ addiu $sp, $sp, 0x28
|
|
/* 3239A4 802BFE54 00000000 */ nop
|
|
/* 3239A8 802BFE58 00000000 */ nop
|
|
/* 3239AC 802BFE5C 00000000 */ nop
|