mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-19 06:12:03 -04:00
a8e5c0f212
Introduce waypoint struct, which code_80005FD0 seems to be involved with. Updated several mips_to_c outputs as well. Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
94 lines
4.5 KiB
ArmAsm
94 lines
4.5 KiB
ArmAsm
glabel func_8000C884
|
|
/* 00D484 8000C884 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 00D488 8000C888 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 00D48C 8000C88C 00077400 */ sll $t6, $a3, 0x10
|
|
/* 00D490 8000C890 000E7C03 */ sra $t7, $t6, 0x10
|
|
/* 00D494 8000C894 F7B60010 */ sdc1 $f22, 0x10($sp)
|
|
/* 00D498 8000C898 25E8FFFD */ addiu $t0, $t7, -3
|
|
/* 00D49C 8000C89C 4486B000 */ mtc1 $a2, $f22
|
|
/* 00D4A0 8000C8A0 3C01800F */ lui $at, %hi(D_800ECFF0) # $at, 0x800f
|
|
/* 00D4A4 8000C8A4 00085C00 */ sll $t3, $t0, 0x10
|
|
/* 00D4A8 8000C8A8 C420CFF0 */ lwc1 $f0, %lo(D_800ECFF0)($at)
|
|
/* 00D4AC 8000C8AC 3C028016 */ lui $v0, %hi(gWaypointCountByPathIndex) # 0x8016
|
|
/* 00D4B0 8000C8B0 3C058016 */ lui $a1, %hi(D_80164550) # 0x8016
|
|
/* 00D4B4 8000C8B4 000B6403 */ sra $t4, $t3, 0x10
|
|
/* 00D4B8 8000C8B8 00083400 */ sll $a2, $t0, 0x10
|
|
/* 00D4BC 8000C8BC 25E90007 */ addiu $t1, $t7, 7
|
|
/* 00D4C0 8000C8C0 0004C040 */ sll $t8, $a0, 1
|
|
/* 00D4C4 8000C8C4 0004C880 */ sll $t9, $a0, 2
|
|
/* 00D4C8 8000C8C8 F7B40008 */ sdc1 $f20, 8($sp)
|
|
/* 00D4CC 8000C8CC AFA70024 */ sw $a3, 0x24($sp)
|
|
/* 00D4D0 8000C8D0 00581021 */ addu $v0, $v0, $t8
|
|
/* 00D4D4 8000C8D4 00B92821 */ addu $a1, $a1, $t9
|
|
/* 00D4D8 8000C8D8 0189082A */ slt $at, $t4, $t1
|
|
/* 00D4DC 8000C8DC 00065403 */ sra $t2, $a2, 0x10
|
|
/* 00D4E0 8000C8E0 01E03825 */ move $a3, $t7
|
|
/* 00D4E4 8000C8E4 46007506 */ mov.s $f20, $f14
|
|
/* 00D4E8 8000C8E8 2403FFFF */ li $v1, -1
|
|
/* 00D4EC 8000C8EC 944245C8 */ lhu $v0, %lo(gWaypointCountByPathIndex)($v0) # 0x45c8($v0)
|
|
/* 00D4F0 8000C8F0 8CA54550 */ lw $a1, %lo(D_80164550)($a1) # 0x4550($a1)
|
|
/* 00D4F4 8000C8F4 10200034 */ beqz $at, .L8000C9C8
|
|
/* 00D4F8 8000C8F8 01403025 */ move $a2, $t2
|
|
/* 00D4FC 8000C8FC 97A8002E */ lhu $t0, 0x2e($sp)
|
|
.L8000C900:
|
|
/* 00D500 8000C900 00C26821 */ addu $t5, $a2, $v0
|
|
/* 00D504 8000C904 01A2001A */ div $zero, $t5, $v0
|
|
/* 00D508 8000C908 00002010 */ mfhi $a0
|
|
/* 00D50C 8000C90C 00047400 */ sll $t6, $a0, 0x10
|
|
/* 00D510 8000C910 000E7C03 */ sra $t7, $t6, 0x10
|
|
/* 00D514 8000C914 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 00D518 8000C918 03053821 */ addu $a3, $t8, $a1
|
|
/* 00D51C 8000C91C 94F90006 */ lhu $t9, 6($a3)
|
|
/* 00D520 8000C920 14400002 */ bnez $v0, .L8000C92C
|
|
/* 00D524 8000C924 00000000 */ nop
|
|
/* 00D528 8000C928 0007000D */ break 7
|
|
.L8000C92C:
|
|
/* 00D52C 8000C92C 2401FFFF */ li $at, -1
|
|
/* 00D530 8000C930 14410004 */ bne $v0, $at, .L8000C944
|
|
/* 00D534 8000C934 3C018000 */ lui $at, 0x8000
|
|
/* 00D538 8000C938 15A10002 */ bne $t5, $at, .L8000C944
|
|
/* 00D53C 8000C93C 00000000 */ nop
|
|
/* 00D540 8000C940 0006000D */ break 6
|
|
.L8000C944:
|
|
/* 00D544 8000C944 24C60001 */ addiu $a2, $a2, 1
|
|
/* 00D548 8000C948 1519001A */ bne $t0, $t9, .L8000C9B4
|
|
/* 00D54C 8000C94C 01E02025 */ move $a0, $t7
|
|
/* 00D550 8000C950 84EA0000 */ lh $t2, ($a3)
|
|
/* 00D554 8000C954 84EB0002 */ lh $t3, 2($a3)
|
|
/* 00D558 8000C958 84EC0004 */ lh $t4, 4($a3)
|
|
/* 00D55C 8000C95C 448A2000 */ mtc1 $t2, $f4
|
|
/* 00D560 8000C960 448B4000 */ mtc1 $t3, $f8
|
|
/* 00D564 8000C964 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 00D568 8000C968 448C2000 */ mtc1 $t4, $f4
|
|
/* 00D56C 8000C96C 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 00D570 8000C970 460C3081 */ sub.s $f2, $f6, $f12
|
|
/* 00D574 8000C974 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 00D578 8000C978 46021202 */ mul.s $f8, $f2, $f2
|
|
/* 00D57C 8000C97C 46145381 */ sub.s $f14, $f10, $f20
|
|
/* 00D580 8000C980 46163401 */ sub.s $f16, $f6, $f22
|
|
/* 00D584 8000C984 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* 00D588 8000C988 460A4100 */ add.s $f4, $f8, $f10
|
|
/* 00D58C 8000C98C 46108182 */ mul.s $f6, $f16, $f16
|
|
/* 00D590 8000C990 46062480 */ add.s $f18, $f4, $f6
|
|
/* 00D594 8000C994 4600903C */ c.lt.s $f18, $f0
|
|
/* 00D598 8000C998 00000000 */ nop
|
|
/* 00D59C 8000C99C 45020006 */ bc1fl .L8000C9B8
|
|
/* 00D5A0 8000C9A0 00067400 */ sll $t6, $a2, 0x10
|
|
/* 00D5A4 8000C9A4 000F1C00 */ sll $v1, $t7, 0x10
|
|
/* 00D5A8 8000C9A8 00036C03 */ sra $t5, $v1, 0x10
|
|
/* 00D5AC 8000C9AC 46009006 */ mov.s $f0, $f18
|
|
/* 00D5B0 8000C9B0 01A01825 */ move $v1, $t5
|
|
.L8000C9B4:
|
|
/* 00D5B4 8000C9B4 00067400 */ sll $t6, $a2, 0x10
|
|
.L8000C9B8:
|
|
/* 00D5B8 8000C9B8 000E7C03 */ sra $t7, $t6, 0x10
|
|
/* 00D5BC 8000C9BC 01E9082A */ slt $at, $t7, $t1
|
|
/* 00D5C0 8000C9C0 1420FFCF */ bnez $at, .L8000C900
|
|
/* 00D5C4 8000C9C4 01E03025 */ move $a2, $t7
|
|
.L8000C9C8:
|
|
/* 00D5C8 8000C9C8 D7B40008 */ ldc1 $f20, 8($sp)
|
|
/* 00D5CC 8000C9CC D7B60010 */ ldc1 $f22, 0x10($sp)
|
|
/* 00D5D0 8000C9D0 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* 00D5D4 8000C9D4 03E00008 */ jr $ra
|
|
/* 00D5D8 8000C9D8 00601025 */ move $v0, $v1
|