mirror of
https://github.com/pmret/papermario.git
synced 2024-11-10 13:02:41 +01:00
137 lines
6.7 KiB
ArmAsm
137 lines
6.7 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_802B6000_E23260
|
|
/* E23260 802B6000 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* E23264 802B6004 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* E23268 802B6008 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* E2326C 802B600C 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
|
/* E23270 802B6010 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
|
/* E23274 802B6014 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* E23278 802B6018 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* E2327C 802B601C F7B40028 */ sdc1 $f20, 0x28($sp)
|
|
/* E23280 802B6020 8E040004 */ lw $a0, 4($s0)
|
|
/* E23284 802B6024 3C128011 */ lui $s2, %hi(gPlayerData)
|
|
/* E23288 802B6028 2652F290 */ addiu $s2, $s2, %lo(gPlayerData)
|
|
/* E2328C 802B602C 30821000 */ andi $v0, $a0, 0x1000
|
|
/* E23290 802B6030 10400005 */ beqz $v0, .L802B6048
|
|
/* E23294 802B6034 0000882D */ daddu $s1, $zero, $zero
|
|
/* E23298 802B6038 0C0AD879 */ jal func_802B61E4_E23444
|
|
/* E2329C 802B603C 00000000 */ nop
|
|
/* E232A0 802B6040 080AD872 */ j .L802B61C8
|
|
/* E232A4 802B6044 00000000 */ nop
|
|
.L802B6048:
|
|
/* E232A8 802B6048 96020008 */ lhu $v0, 8($s0)
|
|
/* E232AC 802B604C 8E030000 */ lw $v1, ($s0)
|
|
/* E232B0 802B6050 24420001 */ addiu $v0, $v0, 1
|
|
/* E232B4 802B6054 0461001E */ bgez $v1, .L802B60D0
|
|
/* E232B8 802B6058 A6020008 */ sh $v0, 8($s0)
|
|
/* E232BC 802B605C 3C027FF7 */ lui $v0, 0x7ff7
|
|
/* E232C0 802B6060 3442FFF1 */ ori $v0, $v0, 0xfff1
|
|
/* E232C4 802B6064 24110001 */ addiu $s1, $zero, 1
|
|
/* E232C8 802B6068 00621024 */ and $v0, $v1, $v0
|
|
/* E232CC 802B606C AE020000 */ sw $v0, ($s0)
|
|
/* E232D0 802B6070 30824000 */ andi $v0, $a0, 0x4000
|
|
/* E232D4 802B6074 A20000B6 */ sb $zero, 0xb6($s0)
|
|
/* E232D8 802B6078 A6000008 */ sh $zero, 8($s0)
|
|
/* E232DC 802B607C A60000C0 */ sh $zero, 0xc0($s0)
|
|
/* E232E0 802B6080 A60000C2 */ sh $zero, 0xc2($s0)
|
|
/* E232E4 802B6084 AE000054 */ sw $zero, 0x54($s0)
|
|
/* E232E8 802B6088 10400004 */ beqz $v0, .L802B609C
|
|
/* E232EC 802B608C AE00008C */ sw $zero, 0x8c($s0)
|
|
/* E232F0 802B6090 3C040009 */ lui $a0, 9
|
|
/* E232F4 802B6094 080AD832 */ j .L802B60C8
|
|
/* E232F8 802B6098 34840002 */ ori $a0, $a0, 2
|
|
.L802B609C:
|
|
/* E232FC 802B609C 30820001 */ andi $v0, $a0, 1
|
|
/* E23300 802B60A0 54400004 */ bnel $v0, $zero, .L802B60B4
|
|
/* E23304 802B60A4 3C040006 */ lui $a0, 6
|
|
/* E23308 802B60A8 3C040001 */ lui $a0, 1
|
|
/* E2330C 802B60AC 080AD832 */ j .L802B60C8
|
|
/* E23310 802B60B0 34840002 */ ori $a0, $a0, 2
|
|
.L802B60B4:
|
|
/* E23314 802B60B4 820200B5 */ lb $v0, 0xb5($s0)
|
|
/* E23318 802B60B8 14400003 */ bnez $v0, .L802B60C8
|
|
/* E2331C 802B60BC 34840007 */ ori $a0, $a0, 7
|
|
/* E23320 802B60C0 3C040006 */ lui $a0, 6
|
|
/* E23324 802B60C4 34840005 */ ori $a0, $a0, 5
|
|
.L802B60C8:
|
|
/* E23328 802B60C8 0C037FBF */ jal func_800DFEFC
|
|
/* E2332C 802B60CC 00000000 */ nop
|
|
.L802B60D0:
|
|
/* E23330 802B60D0 8E020004 */ lw $v0, 4($s0)
|
|
/* E23334 802B60D4 30420200 */ andi $v0, $v0, 0x200
|
|
/* E23338 802B60D8 10400005 */ beqz $v0, .L802B60F0
|
|
/* E2333C 802B60DC 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* E23340 802B60E0 0C039769 */ jal set_action_state
|
|
/* E23344 802B60E4 2404001C */ addiu $a0, $zero, 0x1c
|
|
/* E23348 802B60E8 080AD872 */ j .L802B61C8
|
|
/* E2334C 802B60EC 00000000 */ nop
|
|
.L802B60F0:
|
|
/* E23350 802B60F0 0C0388C1 */ jal input_to_move_vector
|
|
/* E23354 802B60F4 27A50014 */ addiu $a1, $sp, 0x14
|
|
/* E23358 802B60F8 0C039454 */ jal func_800E5150
|
|
/* E2335C 802B60FC 00000000 */ nop
|
|
/* E23360 802B6100 0C039858 */ jal check_input_jump
|
|
/* E23364 802B6104 00000000 */ nop
|
|
/* E23368 802B6108 10400011 */ beqz $v0, .L802B6150
|
|
/* E2336C 802B610C 00000000 */ nop
|
|
/* E23370 802B6110 C7A20014 */ lwc1 $f2, 0x14($sp)
|
|
/* E23374 802B6114 44800000 */ mtc1 $zero, $f0
|
|
/* E23378 802B6118 00000000 */ nop
|
|
/* E2337C 802B611C 46001032 */ c.eq.s $f2, $f0
|
|
/* E23380 802B6120 00000000 */ nop
|
|
/* E23384 802B6124 45000007 */ bc1f .L802B6144
|
|
/* E23388 802B6128 00000000 */ nop
|
|
/* E2338C 802B612C C6020080 */ lwc1 $f2, 0x80($s0)
|
|
/* E23390 802B6130 C7A00010 */ lwc1 $f0, 0x10($sp)
|
|
/* E23394 802B6134 46001032 */ c.eq.s $f2, $f0
|
|
/* E23398 802B6138 00000000 */ nop
|
|
/* E2339C 802B613C 45010022 */ bc1t .L802B61C8
|
|
/* E233A0 802B6140 00000000 */ nop
|
|
.L802B6144:
|
|
/* E233A4 802B6144 C7A00010 */ lwc1 $f0, 0x10($sp)
|
|
/* E233A8 802B6148 080AD872 */ j .L802B61C8
|
|
/* E233AC 802B614C E6000080 */ swc1 $f0, 0x80($s0)
|
|
.L802B6150:
|
|
/* E233B0 802B6150 16200005 */ bnez $s1, .L802B6168
|
|
/* E233B4 802B6154 00000000 */ nop
|
|
/* E233B8 802B6158 0C039838 */ jal check_input_hammer
|
|
/* E233BC 802B615C 00000000 */ nop
|
|
/* E233C0 802B6160 14400019 */ bnez $v0, .L802B61C8
|
|
/* E233C4 802B6164 00000000 */ nop
|
|
.L802B6168:
|
|
/* E233C8 802B6168 C7A00014 */ lwc1 $f0, 0x14($sp)
|
|
/* E233CC 802B616C 4480A000 */ mtc1 $zero, $f20
|
|
/* E233D0 802B6170 00000000 */ nop
|
|
/* E233D4 802B6174 46140032 */ c.eq.s $f0, $f20
|
|
/* E233D8 802B6178 00000000 */ nop
|
|
/* E233DC 802B617C 45000005 */ bc1f .L802B6194
|
|
/* E233E0 802B6180 24040001 */ addiu $a0, $zero, 1
|
|
/* E233E4 802B6184 964202B8 */ lhu $v0, 0x2b8($s2)
|
|
/* E233E8 802B6188 24420001 */ addiu $v0, $v0, 1
|
|
/* E233EC 802B618C 080AD872 */ j .L802B61C8
|
|
/* E233F0 802B6190 A64202B8 */ sh $v0, 0x2b8($s2)
|
|
.L802B6194:
|
|
/* E233F4 802B6194 0C039769 */ jal set_action_state
|
|
/* E233F8 802B6198 A6000008 */ sh $zero, 8($s0)
|
|
/* E233FC 802B619C C7A00014 */ lwc1 $f0, 0x14($sp)
|
|
/* E23400 802B61A0 46140032 */ c.eq.s $f0, $f20
|
|
/* E23404 802B61A4 00000000 */ nop
|
|
/* E23408 802B61A8 45010007 */ bc1t .L802B61C8
|
|
/* E2340C 802B61AC 3C037FFF */ lui $v1, 0x7fff
|
|
/* E23410 802B61B0 3463FFFF */ ori $v1, $v1, 0xffff
|
|
/* E23414 802B61B4 8E020004 */ lw $v0, 4($s0)
|
|
/* E23418 802B61B8 C7A00010 */ lwc1 $f0, 0x10($sp)
|
|
/* E2341C 802B61BC 00431024 */ and $v0, $v0, $v1
|
|
/* E23420 802B61C0 E6000080 */ swc1 $f0, 0x80($s0)
|
|
/* E23424 802B61C4 AE020004 */ sw $v0, 4($s0)
|
|
.L802B61C8:
|
|
/* E23428 802B61C8 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* E2342C 802B61CC 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* E23430 802B61D0 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* E23434 802B61D4 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* E23438 802B61D8 D7B40028 */ ldc1 $f20, 0x28($sp)
|
|
/* E2343C 802B61DC 03E00008 */ jr $ra
|
|
/* E23440 802B61E0 27BD0030 */ addiu $sp, $sp, 0x30
|