mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
92 lines
4.7 KiB
ArmAsm
92 lines
4.7 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_802BD540
|
|
/* 323E90 802BD540 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
|
/* 323E94 802BD544 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
|
/* 323E98 802BD548 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 323E9C 802BD54C AFB20038 */ sw $s2, 0x38($sp)
|
|
/* 323EA0 802BD550 3C128011 */ lui $s2, %hi(gPlayerStatus)
|
|
/* 323EA4 802BD554 2652EFC8 */ addiu $s2, $s2, %lo(gPlayerStatus)
|
|
/* 323EA8 802BD558 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 323EAC 802BD55C AFB10034 */ sw $s1, 0x34($sp)
|
|
/* 323EB0 802BD560 AFB00030 */ sw $s0, 0x30($sp)
|
|
/* 323EB4 802BD564 F7B60048 */ sdc1 $f22, 0x48($sp)
|
|
/* 323EB8 802BD568 F7B40040 */ sdc1 $f20, 0x40($sp)
|
|
/* 323EBC 802BD56C 84430086 */ lh $v1, 0x86($v0)
|
|
/* 323EC0 802BD570 24020010 */ addiu $v0, $zero, 0x10
|
|
/* 323EC4 802BD574 5462003F */ bnel $v1, $v0, .L802BD674
|
|
/* 323EC8 802BD578 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 323ECC 802BD57C C640001C */ lwc1 $f0, 0x1c($s2)
|
|
/* 323ED0 802BD580 44801000 */ mtc1 $zero, $f2
|
|
/* 323ED4 802BD584 00000000 */ nop
|
|
/* 323ED8 802BD588 46020032 */ c.eq.s $f0, $f2
|
|
/* 323EDC 802BD58C 00000000 */ nop
|
|
/* 323EE0 802BD590 45000006 */ bc1f .L802BD5AC
|
|
/* 323EE4 802BD594 00000000 */ nop
|
|
/* 323EE8 802BD598 C6400024 */ lwc1 $f0, 0x24($s2)
|
|
/* 323EEC 802BD59C 46020032 */ c.eq.s $f0, $f2
|
|
/* 323EF0 802BD5A0 00000000 */ nop
|
|
/* 323EF4 802BD5A4 45010033 */ bc1t .L802BD674
|
|
/* 323EF8 802BD5A8 2402FFFF */ addiu $v0, $zero, -1
|
|
.L802BD5AC:
|
|
/* 323EFC 802BD5AC 8E46001C */ lw $a2, 0x1c($s2)
|
|
/* 323F00 802BD5B0 44806000 */ mtc1 $zero, $f12
|
|
/* 323F04 802BD5B4 8E470024 */ lw $a3, 0x24($s2)
|
|
/* 323F08 802BD5B8 0C00A720 */ jal atan2
|
|
/* 323F0C 802BD5BC 46006386 */ mov.s $f14, $f12
|
|
/* 323F10 802BD5C0 864200B0 */ lh $v0, 0xb0($s2)
|
|
/* 323F14 802BD5C4 3C013F00 */ lui $at, 0x3f00
|
|
/* 323F18 802BD5C8 4481A000 */ mtc1 $at, $f20
|
|
/* 323F1C 802BD5CC 44821000 */ mtc1 $v0, $f2
|
|
/* 323F20 802BD5D0 00000000 */ nop
|
|
/* 323F24 802BD5D4 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 323F28 802BD5D8 46141082 */ mul.s $f2, $f2, $f20
|
|
/* 323F2C 802BD5DC 00000000 */ nop
|
|
/* 323F30 802BD5E0 46000586 */ mov.s $f22, $f0
|
|
/* 323F34 802BD5E4 3C014334 */ lui $at, 0x4334
|
|
/* 323F38 802BD5E8 44816000 */ mtc1 $at, $f12
|
|
/* 323F3C 802BD5EC C6460028 */ lwc1 $f6, 0x28($s2)
|
|
/* 323F40 802BD5F0 460CB300 */ add.s $f12, $f22, $f12
|
|
/* 323F44 802BD5F4 C640002C */ lwc1 $f0, 0x2c($s2)
|
|
/* 323F48 802BD5F8 C6440030 */ lwc1 $f4, 0x30($s2)
|
|
/* 323F4C 802BD5FC 46020000 */ add.s $f0, $f0, $f2
|
|
/* 323F50 802BD600 E7A60020 */ swc1 $f6, 0x20($sp)
|
|
/* 323F54 802BD604 E7A40024 */ swc1 $f4, 0x24($sp)
|
|
/* 323F58 802BD608 0C00A6C9 */ jal clamp_angle
|
|
/* 323F5C 802BD60C E7A00028 */ swc1 $f0, 0x28($sp)
|
|
/* 323F60 802BD610 864200B2 */ lh $v0, 0xb2($s2)
|
|
/* 323F64 802BD614 44821000 */ mtc1 $v0, $f2
|
|
/* 323F68 802BD618 00000000 */ nop
|
|
/* 323F6C 802BD61C 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 323F70 802BD620 46141082 */ mul.s $f2, $f2, $f20
|
|
/* 323F74 802BD624 00000000 */ nop
|
|
/* 323F78 802BD628 27B00020 */ addiu $s0, $sp, 0x20
|
|
/* 323F7C 802BD62C 0200202D */ daddu $a0, $s0, $zero
|
|
/* 323F80 802BD630 27B10024 */ addiu $s1, $sp, 0x24
|
|
/* 323F84 802BD634 44070000 */ mfc1 $a3, $f0
|
|
/* 323F88 802BD638 44061000 */ mfc1 $a2, $f2
|
|
/* 323F8C 802BD63C 0C00A7E7 */ jal add_vec2D_polar
|
|
/* 323F90 802BD640 0220282D */ daddu $a1, $s1, $zero
|
|
/* 323F94 802BD644 0000202D */ daddu $a0, $zero, $zero
|
|
/* 323F98 802BD648 0240282D */ daddu $a1, $s2, $zero
|
|
/* 323F9C 802BD64C 0200302D */ daddu $a2, $s0, $zero
|
|
/* 323FA0 802BD650 84A200B2 */ lh $v0, 0xb2($a1)
|
|
/* 323FA4 802BD654 27A70028 */ addiu $a3, $sp, 0x28
|
|
/* 323FA8 802BD658 AFB10010 */ sw $s1, 0x10($sp)
|
|
/* 323FAC 802BD65C E7B60018 */ swc1 $f22, 0x18($sp)
|
|
/* 323FB0 802BD660 44820000 */ mtc1 $v0, $f0
|
|
/* 323FB4 802BD664 00000000 */ nop
|
|
/* 323FB8 802BD668 46800020 */ cvt.s.w $f0, $f0
|
|
/* 323FBC 802BD66C 0C037B01 */ jal do_lateral_collision
|
|
/* 323FC0 802BD670 E7A00014 */ swc1 $f0, 0x14($sp)
|
|
.L802BD674:
|
|
/* 323FC4 802BD674 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 323FC8 802BD678 8FB20038 */ lw $s2, 0x38($sp)
|
|
/* 323FCC 802BD67C 8FB10034 */ lw $s1, 0x34($sp)
|
|
/* 323FD0 802BD680 8FB00030 */ lw $s0, 0x30($sp)
|
|
/* 323FD4 802BD684 D7B60048 */ ldc1 $f22, 0x48($sp)
|
|
/* 323FD8 802BD688 D7B40040 */ ldc1 $f20, 0x40($sp)
|
|
/* 323FDC 802BD68C 03E00008 */ jr $ra
|
|
/* 323FE0 802BD690 27BD0050 */ addiu $sp, $sp, 0x50
|