papermario/asm/nonmatchings/code_E245D0/func_802B6000_E245D0.s

115 lines
5.6 KiB
ArmAsm
Raw Normal View History

2021-01-10 17:38:51 +01:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B6000_E245D0
/* E245D0 802B6000 27BDFFD8 */ addiu $sp, $sp, -0x28
/* E245D4 802B6004 AFB00020 */ sw $s0, 0x20($sp)
/* E245D8 802B6008 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E245DC 802B600C 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E245E0 802B6010 AFBF0024 */ sw $ra, 0x24($sp)
/* E245E4 802B6014 8E030000 */ lw $v1, ($s0)
/* E245E8 802B6018 04610024 */ bgez $v1, .L802B60AC
/* E245EC 802B601C 3C027FFF */ lui $v0, 0x7fff
/* E245F0 802B6020 3442FFFF */ ori $v0, $v0, 0xffff
/* E245F4 802B6024 00621024 */ and $v0, $v1, $v0
/* E245F8 802B6028 0C03954C */ jal func_800E5530
/* E245FC 802B602C AE020000 */ sw $v0, ($s0)
/* E24600 802B6030 8E030004 */ lw $v1, 4($s0)
/* E24604 802B6034 30621000 */ andi $v0, $v1, 0x1000
/* E24608 802B6038 14400009 */ bnez $v0, .L802B6060
/* E2460C 802B603C 30620001 */ andi $v0, $v1, 1
/* E24610 802B6040 14400003 */ bnez $v0, .L802B6050
/* E24614 802B6044 3C040006 */ lui $a0, 6
/* E24618 802B6048 3C040001 */ lui $a0, 1
/* E2461C 802B604C 34840004 */ ori $a0, $a0, 4
.L802B6050:
/* E24620 802B6050 0C037FBF */ jal func_800DFEFC
2021-01-12 16:42:27 +01:00
/* E24624 802B6054 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E24628 802B6058 080AD81A */ j .L802B6068
2021-01-12 16:42:27 +01:00
/* E2462C 802B605C 00000000 */ nop
2021-01-10 17:38:51 +01:00
.L802B6060:
/* E24630 802B6060 0C0AD866 */ jal func_802B6198_E24768
2021-01-12 16:42:27 +01:00
/* E24634 802B6064 00000000 */ nop
2021-01-10 17:38:51 +01:00
.L802B6068:
/* E24638 802B6068 3C01418E */ lui $at, 0x418e
/* E2463C 802B606C 34210D84 */ ori $at, $at, 0xd84
/* E24640 802B6070 44810000 */ mtc1 $at, $f0
/* E24644 802B6074 3C01C136 */ lui $at, 0xc136
/* E24648 802B6078 34212DE0 */ ori $at, $at, 0x2de0
/* E2464C 802B607C 44811000 */ mtc1 $at, $f2
/* E24650 802B6080 3C014060 */ lui $at, 0x4060
/* E24654 802B6084 44812000 */ mtc1 $at, $f4
/* E24658 802B6088 3C01BF40 */ lui $at, 0xbf40
/* E2465C 802B608C 44813000 */ mtc1 $at, $f6
/* E24660 802B6090 A20000B6 */ sb $zero, 0xb6($s0)
/* E24664 802B6094 A60000C0 */ sh $zero, 0xc0($s0)
/* E24668 802B6098 A60000C2 */ sh $zero, 0xc2($s0)
/* E2466C 802B609C E6000070 */ swc1 $f0, 0x70($s0)
/* E24670 802B60A0 E6020074 */ swc1 $f2, 0x74($s0)
/* E24674 802B60A4 E6040078 */ swc1 $f4, 0x78($s0)
/* E24678 802B60A8 E606007C */ swc1 $f6, 0x7c($s0)
.L802B60AC:
/* E2467C 802B60AC 0C038D12 */ jal integrate_gravity
2021-01-12 16:42:27 +01:00
/* E24680 802B60B0 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E24684 802B60B4 C60C0080 */ lwc1 $f12, 0x80($s0)
/* E24688 802B60B8 3C0140C9 */ lui $at, 0x40c9
/* E2468C 802B60BC 34210FD0 */ ori $at, $at, 0xfd0
/* E24690 802B60C0 44810000 */ mtc1 $at, $f0
2021-01-12 16:42:27 +01:00
/* E24694 802B60C4 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E24698 802B60C8 46006302 */ mul.s $f12, $f12, $f0
2021-01-12 16:42:27 +01:00
/* E2469C 802B60CC 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E246A0 802B60D0 27A50010 */ addiu $a1, $sp, 0x10
/* E246A4 802B60D4 3C0143B4 */ lui $at, 0x43b4
/* E246A8 802B60D8 44810000 */ mtc1 $at, $f0
/* E246AC 802B60DC 27A60014 */ addiu $a2, $sp, 0x14
/* E246B0 802B60E0 0C00A82D */ jal sin_cos_rad
/* E246B4 802B60E4 46006303 */ div.s $f12, $f12, $f0
/* E246B8 802B60E8 C7A00010 */ lwc1 $f0, 0x10($sp)
/* E246BC 802B60EC 3C014040 */ lui $at, 0x4040
/* E246C0 802B60F0 44811000 */ mtc1 $at, $f2
2021-01-12 16:42:27 +01:00
/* E246C4 802B60F4 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E246C8 802B60F8 46020002 */ mul.s $f0, $f0, $f2
2021-01-12 16:42:27 +01:00
/* E246CC 802B60FC 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E246D0 802B6100 C7A40014 */ lwc1 $f4, 0x14($sp)
/* E246D4 802B6104 46022102 */ mul.s $f4, $f4, $f2
2021-01-12 16:42:27 +01:00
/* E246D8 802B6108 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E246DC 802B610C 2402FFFF */ addiu $v0, $zero, -1
/* E246E0 802B6110 C6020028 */ lwc1 $f2, 0x28($s0)
/* E246E4 802B6114 C60C0070 */ lwc1 $f12, 0x70($s0)
/* E246E8 802B6118 46001080 */ add.s $f2, $f2, $f0
/* E246EC 802B611C 44803000 */ mtc1 $zero, $f6
/* E246F0 802B6120 C6000030 */ lwc1 $f0, 0x30($s0)
/* E246F4 802B6124 4606603C */ c.lt.s $f12, $f6
/* E246F8 802B6128 46040001 */ sub.s $f0, $f0, $f4
/* E246FC 802B612C AFA20018 */ sw $v0, 0x18($sp)
/* E24700 802B6130 E6020028 */ swc1 $f2, 0x28($s0)
/* E24704 802B6134 45000005 */ bc1f .L802B614C
/* E24708 802B6138 E6000030 */ swc1 $f0, 0x30($s0)
/* E2470C 802B613C 0C038D45 */ jal func_800E3514
/* E24710 802B6140 27A50018 */ addiu $a1, $sp, 0x18
/* E24714 802B6144 080AD856 */ j .L802B6158
/* E24718 802B6148 E600002C */ swc1 $f0, 0x2c($s0)
.L802B614C:
/* E2471C 802B614C C600002C */ lwc1 $f0, 0x2c($s0)
/* E24720 802B6150 460C0000 */ add.s $f0, $f0, $f12
/* E24724 802B6154 E600002C */ swc1 $f0, 0x2c($s0)
.L802B6158:
/* E24728 802B6158 8FA20018 */ lw $v0, 0x18($sp)
/* E2472C 802B615C 0440000A */ bltz $v0, .L802B6188
/* E24730 802B6160 2402001A */ addiu $v0, $zero, 0x1a
/* E24734 802B6164 820400B5 */ lb $a0, 0xb5($s0)
/* E24738 802B6168 10820005 */ beq $a0, $v0, .L802B6180
2021-01-12 16:42:27 +01:00
/* E2473C 802B616C 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E24740 802B6170 0C039769 */ jal set_action_state
2021-01-12 16:42:27 +01:00
/* E24744 802B6174 00000000 */ nop
2021-01-10 17:38:51 +01:00
/* E24748 802B6178 080AD862 */ j .L802B6188
2021-01-12 16:42:27 +01:00
/* E2474C 802B617C 00000000 */ nop
2021-01-10 17:38:51 +01:00
.L802B6180:
/* E24750 802B6180 0C0397DA */ jal update_locomotion_state
2021-01-12 16:42:27 +01:00
/* E24754 802B6184 00000000 */ nop
2021-01-10 17:38:51 +01:00
.L802B6188:
/* E24758 802B6188 8FBF0024 */ lw $ra, 0x24($sp)
/* E2475C 802B618C 8FB00020 */ lw $s0, 0x20($sp)
/* E24760 802B6190 03E00008 */ jr $ra
/* E24764 802B6194 27BD0028 */ addiu $sp, $sp, 0x28