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

80 lines
3.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E315C
/* 7C60C 800E315C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7C610 800E3160 AFB00010 */ sw $s0, 0x10($sp)
/* 7C614 800E3164 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* 7C618 800E3168 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* 7C61C 800E316C AFB10014 */ sw $s1, 0x14($sp)
/* 7C620 800E3170 3C118011 */ lui $s1, %hi(D_8010EBB0)
/* 7C624 800E3174 2631EBB0 */ addiu $s1, $s1, %lo(D_8010EBB0)
/* 7C628 800E3178 0480003A */ bltz $a0, .L800E3264
/* 7C62C 800E317C AFBF0018 */ sw $ra, 0x18($sp)
/* 7C630 800E3180 0C016F6A */ jal get_collider_type_by_id
/* 7C634 800E3184 00000000 */ nop
/* 7C638 800E3188 304200FF */ andi $v0, $v0, 0xff
/* 7C63C 800E318C 2443FFFF */ addiu $v1, $v0, -1
/* 7C640 800E3190 2C620005 */ sltiu $v0, $v1, 5
/* 7C644 800E3194 10400031 */ beqz $v0, .L800E325C
/* 7C648 800E3198 00031080 */ sll $v0, $v1, 2
/* 7C64C 800E319C 3C018011 */ lui $at, 0x8011
/* 7C650 800E31A0 00220821 */ addu $at, $at, $v0
/* 7C654 800E31A4 8C22BE40 */ lw $v0, -0x41c0($at)
/* 7C658 800E31A8 00400008 */ jr $v0
/* 7C65C 800E31AC 00000000 */ nop
/* 7C660 800E31B0 0C039769 */ jal set_action_state
/* 7C664 800E31B4 2404000A */ addiu $a0, $zero, 0xa
/* 7C668 800E31B8 08038C99 */ j .L800E3264
/* 7C66C 800E31BC 00000000 */ nop
/* 7C670 800E31C0 3C04FF00 */ lui $a0, 0xff00
/* 7C674 800E31C4 348400FF */ ori $a0, $a0, 0xff
/* 7C678 800E31C8 3C030100 */ lui $v1, 0x100
/* 7C67C 800E31CC 8E220000 */ lw $v0, ($s1)
/* 7C680 800E31D0 34630009 */ ori $v1, $v1, 9
/* 7C684 800E31D4 00441024 */ and $v0, $v0, $a0
/* 7C688 800E31D8 10430022 */ beq $v0, $v1, .L800E3264
/* 7C68C 800E31DC 00000000 */ nop
/* 7C690 800E31E0 86020010 */ lh $v0, 0x10($s0)
/* 7C694 800E31E4 14400019 */ bnez $v0, .L800E324C
/* 7C698 800E31E8 24020017 */ addiu $v0, $zero, 0x17
/* 7C69C 800E31EC 820300B4 */ lb $v1, 0xb4($s0)
/* 7C6A0 800E31F0 1062001C */ beq $v1, $v0, .L800E3264
/* 7C6A4 800E31F4 24020001 */ addiu $v0, $zero, 1
/* 7C6A8 800E31F8 08038C8F */ j .L800E323C
/* 7C6AC 800E31FC A20200BF */ sb $v0, 0xbf($s0)
/* 7C6B0 800E3200 3C04FF00 */ lui $a0, 0xff00
/* 7C6B4 800E3204 348400FF */ ori $a0, $a0, 0xff
/* 7C6B8 800E3208 3C030100 */ lui $v1, 0x100
/* 7C6BC 800E320C 8E220000 */ lw $v0, ($s1)
/* 7C6C0 800E3210 34630009 */ ori $v1, $v1, 9
/* 7C6C4 800E3214 00441024 */ and $v0, $v0, $a0
/* 7C6C8 800E3218 10430012 */ beq $v0, $v1, .L800E3264
/* 7C6CC 800E321C 00000000 */ nop
/* 7C6D0 800E3220 86020010 */ lh $v0, 0x10($s0)
/* 7C6D4 800E3224 14400009 */ bnez $v0, .L800E324C
/* 7C6D8 800E3228 24020015 */ addiu $v0, $zero, 0x15
/* 7C6DC 800E322C 820300B4 */ lb $v1, 0xb4($s0)
/* 7C6E0 800E3230 1062000C */ beq $v1, $v0, .L800E3264
/* 7C6E4 800E3234 24020002 */ addiu $v0, $zero, 2
/* 7C6E8 800E3238 A20200BF */ sb $v0, 0xbf($s0)
.L800E323C:
/* 7C6EC 800E323C 0C039769 */ jal set_action_state
/* 7C6F0 800E3240 24040017 */ addiu $a0, $zero, 0x17
/* 7C6F4 800E3244 08038C99 */ j .L800E3264
/* 7C6F8 800E3248 00000000 */ nop
.L800E324C:
/* 7C6FC 800E324C 0C039769 */ jal set_action_state
/* 7C700 800E3250 24040016 */ addiu $a0, $zero, 0x16
/* 7C704 800E3254 08038C99 */ j .L800E3264
/* 7C708 800E3258 00000000 */ nop
.L800E325C:
/* 7C70C 800E325C 0C038C9E */ jal phys_player_land
/* 7C710 800E3260 00000000 */ nop
.L800E3264:
/* 7C714 800E3264 8FBF0018 */ lw $ra, 0x18($sp)
/* 7C718 800E3268 8FB10014 */ lw $s1, 0x14($sp)
/* 7C71C 800E326C 8FB00010 */ lw $s0, 0x10($sp)
/* 7C720 800E3270 03E00008 */ jr $ra
/* 7C724 800E3274 27BD0020 */ addiu $sp, $sp, 0x20