oot/asm/non_matchings/code/z_camera/Camera_Data4.s

237 lines
11 KiB
ArmAsm

.late_rodata
glabel D_8013A1B4
.float 0.01
glabel D_8013A1B8
.float 0.01
glabel D_8013A1BC
.float 182.04167
glabel D_8013A1C0
.float 182.04167
.text
glabel Camera_Data4
/* AC83F0 80051250 27BDFF78 */ addiu $sp, $sp, -0x88
/* AC83F4 80051254 AFB00014 */ sw $s0, 0x14($sp)
/* AC83F8 80051258 00808025 */ move $s0, $a0
/* AC83FC 8005125C AFBF001C */ sw $ra, 0x1c($sp)
/* AC8400 80051260 AFB10018 */ sw $s1, 0x18($sp)
/* AC8404 80051264 0C00B721 */ jal Player_GetCameraYOffset
/* AC8408 80051268 8C840090 */ lw $a0, 0x90($a0)
/* AC840C 8005126C E7A00038 */ swc1 $f0, 0x38($sp)
/* AC8410 80051270 8602015E */ lh $v0, 0x15e($s0)
/* AC8414 80051274 2401000A */ li $at, 10
/* AC8418 80051278 10400008 */ beqz $v0, .L8005129C
/* AC841C 8005127C 00000000 */ nop
/* AC8420 80051280 10410006 */ beq $v0, $at, .L8005129C
/* AC8424 80051284 24010014 */ li $at, 20
/* AC8428 80051288 10410004 */ beq $v0, $at, .L8005129C
/* AC842C 8005128C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* AC8430 80051290 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* AC8434 80051294 85C20314 */ lh $v0, 0x314($t6)
/* AC8438 80051298 10400058 */ beqz $v0, .L800513FC
.L8005129C:
/* AC843C 8005129C 3C018014 */ lui $at, %hi(D_8013A1B4)
/* AC8440 800512A0 C42CA1B4 */ lwc1 $f12, %lo(D_8013A1B4)($at)
/* AC8444 800512A4 3C014288 */ li $at, 0x42880000 # 0.000000
/* AC8448 800512A8 44814000 */ mtc1 $at, $f8
/* AC844C 800512AC C7AA0038 */ lwc1 $f10, 0x38($sp)
/* AC8450 800512B0 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
/* AC8454 800512B4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* AC8458 800512B8 460A4403 */ div.s $f16, $f8, $f10
/* AC845C 800512BC 860F0142 */ lh $t7, 0x142($s0)
/* AC8460 800512C0 856C01F0 */ lh $t4, 0x1f0($t3)
/* AC8464 800512C4 3C198012 */ lui $t9, %hi(sCameraSettings+4)
/* AC8468 800512C8 000FC0C0 */ sll $t8, $t7, 3
/* AC846C 800512CC 448C2000 */ mtc1 $t4, $f4
/* AC8470 800512D0 86080144 */ lh $t0, 0x144($s0)
/* AC8474 800512D4 0338C821 */ addu $t9, $t9, $t8
/* AC8478 800512D8 468021A0 */ cvt.s.w $f6, $f4
/* AC847C 800512DC 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9)
/* AC8480 800512E0 000848C0 */ sll $t1, $t0, 3
/* AC8484 800512E4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC8488 800512E8 03295021 */ addu $t2, $t9, $t1
/* AC848C 800512EC 8D420004 */ lw $v0, 4($t2)
/* AC8490 800512F0 44812000 */ mtc1 $at, $f4
/* AC8494 800512F4 02002025 */ move $a0, $s0
/* AC8498 800512F8 844D0000 */ lh $t5, ($v0)
/* AC849C 800512FC 24420008 */ addiu $v0, $v0, 8
/* AC84A0 80051300 448D4000 */ mtc1 $t5, $f8
/* AC84A4 80051304 460C3002 */ mul.s $f0, $f6, $f12
/* AC84A8 80051308 00000000 */ nop
/* AC84AC 8005130C 46100482 */ mul.s $f18, $f0, $f16
/* AC84B0 80051310 46002180 */ add.s $f6, $f4, $f0
/* AC84B4 80051314 46804420 */ cvt.s.w $f16, $f8
/* AC84B8 80051318 46123081 */ sub.s $f2, $f6, $f18
/* AC84BC 8005131C 460C8102 */ mul.s $f4, $f16, $f12
/* AC84C0 80051320 00000000 */ nop
/* AC84C4 80051324 460A2182 */ mul.s $f6, $f4, $f10
/* AC84C8 80051328 00000000 */ nop
/* AC84CC 8005132C 46023482 */ mul.s $f18, $f6, $f2
/* AC84D0 80051330 E6120000 */ swc1 $f18, ($s0)
/* AC84D4 80051334 844EFFFC */ lh $t6, -4($v0)
/* AC84D8 80051338 448E4000 */ mtc1 $t6, $f8
/* AC84DC 8005133C 00000000 */ nop
/* AC84E0 80051340 46804420 */ cvt.s.w $f16, $f8
/* AC84E4 80051344 E6100004 */ swc1 $f16, 4($s0)
/* AC84E8 80051348 844F0000 */ lh $t7, ($v0)
/* AC84EC 8005134C 0C0111DB */ jal func_8004476C
/* AC84F0 80051350 A60F0008 */ sh $t7, 8($s0)
/* AC84F4 80051354 2611000C */ addiu $s1, $s0, 0xc
/* AC84F8 80051358 02202025 */ move $a0, $s1
/* AC84FC 8005135C 00402825 */ move $a1, $v0
/* AC8500 80051360 0C010EF1 */ jal func_80043BC4
/* AC8504 80051364 AFA20054 */ sw $v0, 0x54($sp)
/* AC8508 80051368 8FA60054 */ lw $a2, 0x54($sp)
/* AC850C 8005136C 2401FFFF */ li $at, -1
/* AC8510 80051370 88C80006 */ lwl $t0, 6($a2)
/* AC8514 80051374 98C80009 */ lwr $t0, 9($a2)
/* AC8518 80051378 AA28000C */ swl $t0, 0xc($s1)
/* AC851C 8005137C BA28000F */ swr $t0, 0xf($s1)
/* AC8520 80051380 94C8000A */ lhu $t0, 0xa($a2)
/* AC8524 80051384 A6280010 */ sh $t0, 0x10($s1)
/* AC8528 80051388 84C3000C */ lh $v1, 0xc($a2)
/* AC852C 8005138C 10610010 */ beq $v1, $at, .L800513D0
/* AC8530 80051390 A623001C */ sh $v1, 0x1c($s1)
/* AC8534 80051394 8622001C */ lh $v0, 0x1c($s1)
/* AC8538 80051398 28410169 */ slti $at, $v0, 0x169
/* AC853C 8005139C 50200007 */ beql $at, $zero, .L800513BC
/* AC8540 800513A0 44823000 */ mtc1 $v0, $f6
/* AC8544 800513A4 44822000 */ mtc1 $v0, $f4
/* AC8548 800513A8 00000000 */ nop
/* AC854C 800513AC 468022A0 */ cvt.s.w $f10, $f4
/* AC8550 800513B0 10000007 */ b .L800513D0
/* AC8554 800513B4 E60A0004 */ swc1 $f10, 4($s0)
/* AC8558 800513B8 44823000 */ mtc1 $v0, $f6
.L800513BC:
/* AC855C 800513BC 3C018014 */ lui $at, %hi(D_8013A1B8)
/* AC8560 800513C0 C428A1B8 */ lwc1 $f8, %lo(D_8013A1B8)($at)
/* AC8564 800513C4 468034A0 */ cvt.s.w $f18, $f6
/* AC8568 800513C8 46089402 */ mul.s $f16, $f18, $f8
/* AC856C 800513CC E6100004 */ swc1 $f16, 4($s0)
.L800513D0:
/* AC8570 800513D0 84D9000E */ lh $t9, 0xe($a2)
/* AC8574 800513D4 8E2A0000 */ lw $t2, ($s1)
/* AC8578 800513D8 3C0B8016 */ lui $t3, %hi(gGameInfo)
/* AC857C 800513DC A639001E */ sh $t9, 0x1e($s1)
/* AC8580 800513E0 AE0A005C */ sw $t2, 0x5c($s0)
/* AC8584 800513E4 8E290004 */ lw $t1, 4($s1)
/* AC8588 800513E8 AE090060 */ sw $t1, 0x60($s0)
/* AC858C 800513EC 8E2A0008 */ lw $t2, 8($s1)
/* AC8590 800513F0 AE0A0064 */ sw $t2, 0x64($s0)
/* AC8594 800513F4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* AC8598 800513F8 85620314 */ lh $v0, 0x314($t3)
.L800513FC:
/* AC859C 800513FC 260C005C */ addiu $t4, $s0, 0x5c
/* AC85A0 80051400 AFAC0028 */ sw $t4, 0x28($sp)
/* AC85A4 80051404 10400003 */ beqz $v0, .L80051414
/* AC85A8 80051408 2611000C */ addiu $s1, $s0, 0xc
/* AC85AC 8005140C 0C011495 */ jal Camera_CopyPREGToModeValues
/* AC85B0 80051410 02002025 */ move $a0, $s0
.L80051414:
/* AC85B4 80051414 860D0008 */ lh $t5, 8($s0)
/* AC85B8 80051418 3C018012 */ lui $at, %hi(D_8011D3A0)
/* AC85BC 8005141C 02002025 */ move $a0, $s0
/* AC85C0 80051420 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at)
/* AC85C4 80051424 8602015E */ lh $v0, 0x15e($s0)
/* AC85C8 80051428 14400003 */ bnez $v0, .L80051438
/* AC85CC 8005142C 244E0001 */ addiu $t6, $v0, 1
/* AC85D0 80051430 0C010ED8 */ jal func_80043B60
/* AC85D4 80051434 A60E015E */ sh $t6, 0x15e($s0)
.L80051438:
/* AC85D8 80051438 26050050 */ addiu $a1, $s0, 0x50
/* AC85DC 8005143C AFA50024 */ sw $a1, 0x24($sp)
/* AC85E0 80051440 27A40064 */ addiu $a0, $sp, 0x64
/* AC85E4 80051444 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* AC85E8 80051448 26060074 */ addiu $a2, $s0, 0x74
/* AC85EC 8005144C 02002025 */ move $a0, $s0
/* AC85F0 80051450 27A50064 */ addiu $a1, $sp, 0x64
/* AC85F4 80051454 8E060000 */ lw $a2, ($s0)
/* AC85F8 80051458 0C0115EA */ jal func_800457A8
/* AC85FC 8005145C 00003825 */ move $a3, $zero
/* AC8600 80051460 27A40074 */ addiu $a0, $sp, 0x74
/* AC8604 80051464 8FA50028 */ lw $a1, 0x28($sp)
/* AC8608 80051468 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* AC860C 8005146C 8FA60024 */ lw $a2, 0x24($sp)
/* AC8610 80051470 C7A40074 */ lwc1 $f4, 0x74($sp)
/* AC8614 80051474 87AE007A */ lh $t6, 0x7a($sp)
/* AC8618 80051478 27A6006C */ addiu $a2, $sp, 0x6c
/* AC861C 8005147C E7A4006C */ swc1 $f4, 0x6c($sp)
/* AC8620 80051480 862F001E */ lh $t7, 0x1e($s1)
/* AC8624 80051484 31F80001 */ andi $t8, $t7, 1
/* AC8628 80051488 53000012 */ beql $t8, $zero, .L800514D4
/* AC862C 8005148C A7AE0072 */ sh $t6, 0x72($sp)
/* AC8630 80051490 8608012C */ lh $t0, 0x12c($s0)
/* AC8634 80051494 3C018014 */ lui $at, %hi(D_8013A1BC)
/* AC8638 80051498 C432A1BC */ lwc1 $f18, %lo(D_8013A1BC)($at)
/* AC863C 8005149C 44885000 */ mtc1 $t0, $f10
/* AC8640 800514A0 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC8644 800514A4 44818000 */ mtc1 $at, $f16
/* AC8648 800514A8 468051A0 */ cvt.s.w $f6, $f10
/* AC864C 800514AC 862C000E */ lh $t4, 0xe($s1)
/* AC8650 800514B0 46123202 */ mul.s $f8, $f6, $f18
/* AC8654 800514B4 46104100 */ add.s $f4, $f8, $f16
/* AC8658 800514B8 4600228D */ trunc.w.s $f10, $f4
/* AC865C 800514BC 440B5000 */ mfc1 $t3, $f10
/* AC8660 800514C0 00000000 */ nop
/* AC8664 800514C4 016C6821 */ addu $t5, $t3, $t4
/* AC8668 800514C8 10000002 */ b .L800514D4
/* AC866C 800514CC A7AD0072 */ sh $t5, 0x72($sp)
/* AC8670 800514D0 A7AE0072 */ sh $t6, 0x72($sp)
.L800514D4:
/* AC8674 800514D4 862F001E */ lh $t7, 0x1e($s1)
/* AC8678 800514D8 87AE0078 */ lh $t6, 0x78($sp)
/* AC867C 800514DC 31F80002 */ andi $t8, $t7, 2
/* AC8680 800514E0 53000012 */ beql $t8, $zero, .L8005152C
/* AC8684 800514E4 A7AE0070 */ sh $t6, 0x70($sp)
/* AC8688 800514E8 8608012E */ lh $t0, 0x12e($s0)
/* AC868C 800514EC 3C018014 */ lui $at, %hi(D_8013A1C0)
/* AC8690 800514F0 C428A1C0 */ lwc1 $f8, %lo(D_8013A1C0)($at)
/* AC8694 800514F4 44883000 */ mtc1 $t0, $f6
/* AC8698 800514F8 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC869C 800514FC 44812000 */ mtc1 $at, $f4
/* AC86A0 80051500 468034A0 */ cvt.s.w $f18, $f6
/* AC86A4 80051504 862C000C */ lh $t4, 0xc($s1)
/* AC86A8 80051508 46089402 */ mul.s $f16, $f18, $f8
/* AC86AC 8005150C 46048280 */ add.s $f10, $f16, $f4
/* AC86B0 80051510 4600518D */ trunc.w.s $f6, $f10
/* AC86B4 80051514 440B3000 */ mfc1 $t3, $f6
/* AC86B8 80051518 00000000 */ nop
/* AC86BC 8005151C 016C6821 */ addu $t5, $t3, $t4
/* AC86C0 80051520 10000002 */ b .L8005152C
/* AC86C4 80051524 A7AD0070 */ sh $t5, 0x70($sp)
/* AC86C8 80051528 A7AE0070 */ sh $t6, 0x70($sp)
.L8005152C:
/* AC86CC 8005152C 8FA40024 */ lw $a0, 0x24($sp)
/* AC86D0 80051530 0C010F0A */ jal func_80043C28
/* AC86D4 80051534 8FA50028 */ lw $a1, 0x28($sp)
/* AC86D8 80051538 8E180094 */ lw $t8, 0x94($s0)
/* AC86DC 8005153C 27A40048 */ addiu $a0, $sp, 0x48
/* AC86E0 80051540 AC980000 */ sw $t8, ($a0)
/* AC86E4 80051544 8E0F0098 */ lw $t7, 0x98($s0)
/* AC86E8 80051548 AC8F0004 */ sw $t7, 4($a0)
/* AC86EC 8005154C 8E18009C */ lw $t8, 0x9c($s0)
/* AC86F0 80051550 AC980008 */ sw $t8, 8($a0)
/* AC86F4 80051554 C7B2004C */ lwc1 $f18, 0x4c($sp)
/* AC86F8 80051558 C7A80038 */ lwc1 $f8, 0x38($sp)
/* AC86FC 8005155C 8FA50028 */ lw $a1, 0x28($sp)
/* AC8700 80051560 46089400 */ add.s $f16, $f18, $f8
/* AC8704 80051564 0C01EFE4 */ jal OLib_Vec3fDist
/* AC8708 80051568 E7B0004C */ swc1 $f16, 0x4c($sp)
/* AC870C 8005156C 44802000 */ mtc1 $zero, $f4
/* AC8710 80051570 C60A0004 */ lwc1 $f10, 4($s0)
/* AC8714 80051574 44803000 */ mtc1 $zero, $f6
/* AC8718 80051578 E60000DC */ swc1 $f0, 0xdc($s0)
/* AC871C 8005157C A600015A */ sh $zero, 0x15a($s0)
/* AC8720 80051580 E60400D8 */ swc1 $f4, 0xd8($s0)
/* AC8724 80051584 E60A00FC */ swc1 $f10, 0xfc($s0)
/* AC8728 80051588 E6060100 */ swc1 $f6, 0x100($s0)
/* AC872C 8005158C 8FBF001C */ lw $ra, 0x1c($sp)
/* AC8730 80051590 8FB10018 */ lw $s1, 0x18($sp)
/* AC8734 80051594 8FB00014 */ lw $s0, 0x14($sp)
/* AC8738 80051598 27BD0088 */ addiu $sp, $sp, 0x88
/* AC873C 8005159C 03E00008 */ jr $ra
/* AC8740 800515A0 24020001 */ li $v0, 1