Files
oot/asm/non_matchings/code/z_camera/func_80052A18.s
T
krimtonz 16b304d548 Split remaining z_camera files (#98)
* split func_800473A0.s

* split func_80051B3C.s

* split func_80054478

* split func_8004B5A0, match a few functions

* rename Matrix_TranslateThenRotateZYX to Matrix_RotateRPYf (#96)

* rename Matrix_TranslateThenRotateZYX to Matrix_RotateRPYf

* rename Matrix_RotateRPYf to Matrix_JointPosition

* rename Matrix_RotateZYX to Matrix_RotateRPY

* extract camera floats, and jump tables

* decompile baby functions

priv_wip

wip

* rename struct_80045714 to VecSph
2020-04-30 10:49:11 -04:00

105 lines
5.0 KiB
ArmAsm

glabel func_80052A18
/* AC9BB8 80052A18 27BDFFC0 */ addiu $sp, $sp, -0x40
/* AC9BBC 80052A1C AFBF001C */ sw $ra, 0x1c($sp)
/* AC9BC0 80052A20 AFB00018 */ sw $s0, 0x18($sp)
/* AC9BC4 80052A24 8482015E */ lh $v0, 0x15e($a0)
/* AC9BC8 80052A28 00808025 */ move $s0, $a0
/* AC9BCC 80052A2C 2401000A */ li $at, 10
/* AC9BD0 80052A30 5040000A */ beql $v0, $zero, .L80052A5C
/* AC9BD4 80052A34 860F0142 */ lh $t7, 0x142($s0)
/* AC9BD8 80052A38 10410007 */ beq $v0, $at, .L80052A58
/* AC9BDC 80052A3C 24010014 */ li $at, 20
/* AC9BE0 80052A40 10410005 */ beq $v0, $at, .L80052A58
/* AC9BE4 80052A44 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* AC9BE8 80052A48 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* AC9BEC 80052A4C 85C20314 */ lh $v0, 0x314($t6)
/* AC9BF0 80052A50 1040000F */ beqz $v0, .L80052A90
/* AC9BF4 80052A54 00000000 */ nop
.L80052A58:
/* AC9BF8 80052A58 860F0142 */ lh $t7, 0x142($s0)
.L80052A5C:
/* AC9BFC 80052A5C 3C198012 */ lui $t9, %hi(D_8011D068)
/* AC9C00 80052A60 86080144 */ lh $t0, 0x144($s0)
/* AC9C04 80052A64 000FC0C0 */ sll $t8, $t7, 3
/* AC9C08 80052A68 0338C821 */ addu $t9, $t9, $t8
/* AC9C0C 80052A6C 8F39D068 */ lw $t9, %lo(D_8011D068)($t9)
/* AC9C10 80052A70 000848C0 */ sll $t1, $t0, 3
/* AC9C14 80052A74 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016
/* AC9C18 80052A78 03295021 */ addu $t2, $t9, $t1
/* AC9C1C 80052A7C 8D430004 */ lw $v1, 4($t2)
/* AC9C20 80052A80 846B0000 */ lh $t3, ($v1)
/* AC9C24 80052A84 A60B0000 */ sh $t3, ($s0)
/* AC9C28 80052A88 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4)
/* AC9C2C 80052A8C 85820314 */ lh $v0, 0x314($t4)
.L80052A90:
/* AC9C30 80052A90 50400004 */ beql $v0, $zero, .L80052AA4
/* AC9C34 80052A94 860D0000 */ lh $t5, ($s0)
/* AC9C38 80052A98 0C011495 */ jal func_80045254
/* AC9C3C 80052A9C 02002025 */ move $a0, $s0
/* AC9C40 80052AA0 860D0000 */ lh $t5, ($s0)
.L80052AA4:
/* AC9C44 80052AA4 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012
/* AC9C48 80052AA8 02002025 */ move $a0, $s0
/* AC9C4C 80052AAC AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at)
/* AC9C50 80052AB0 8602015E */ lh $v0, 0x15e($s0)
/* AC9C54 80052AB4 14400003 */ bnez $v0, .L80052AC4
/* AC9C58 80052AB8 244E0001 */ addiu $t6, $v0, 1
/* AC9C5C 80052ABC 0C010EAF */ jal func_80043ABC
/* AC9C60 80052AC0 A60E015E */ sh $t6, 0x15e($s0)
.L80052AC4:
/* AC9C64 80052AC4 8E040090 */ lw $a0, 0x90($s0)
/* AC9C68 80052AC8 2605005C */ addiu $a1, $s0, 0x5c
/* AC9C6C 80052ACC 10800020 */ beqz $a0, .L80052B50
/* AC9C70 80052AD0 00000000 */ nop
/* AC9C74 80052AD4 0C00B721 */ jal Player_GetCameraYOffset
/* AC9C78 80052AD8 00000000 */ nop
/* AC9C7C 80052ADC 26020094 */ addiu $v0, $s0, 0x94
/* AC9C80 80052AE0 8C580000 */ lw $t8, ($v0)
/* AC9C84 80052AE4 27A4002C */ addiu $a0, $sp, 0x2c
/* AC9C88 80052AE8 2605005C */ addiu $a1, $s0, 0x5c
/* AC9C8C 80052AEC AC980000 */ sw $t8, ($a0)
/* AC9C90 80052AF0 8C4F0004 */ lw $t7, 4($v0)
/* AC9C94 80052AF4 AC8F0004 */ sw $t7, 4($a0)
/* AC9C98 80052AF8 8C580008 */ lw $t8, 8($v0)
/* AC9C9C 80052AFC AC980008 */ sw $t8, 8($a0)
/* AC9CA0 80052B00 C7A40030 */ lwc1 $f4, 0x30($sp)
/* AC9CA4 80052B04 AFA20020 */ sw $v0, 0x20($sp)
/* AC9CA8 80052B08 46002180 */ add.s $f6, $f4, $f0
/* AC9CAC 80052B0C 0C01EFE4 */ jal func_8007BF90
/* AC9CB0 80052B10 E7A60030 */ swc1 $f6, 0x30($sp)
/* AC9CB4 80052B14 8FA20020 */ lw $v0, 0x20($sp)
/* AC9CB8 80052B18 E60000DC */ swc1 $f0, 0xdc($s0)
/* AC9CBC 80052B1C C6080050 */ lwc1 $f8, 0x50($s0)
/* AC9CC0 80052B20 C44A0000 */ lwc1 $f10, ($v0)
/* AC9CC4 80052B24 C6120054 */ lwc1 $f18, 0x54($s0)
/* AC9CC8 80052B28 460A4401 */ sub.s $f16, $f8, $f10
/* AC9CCC 80052B2C C6080058 */ lwc1 $f8, 0x58($s0)
/* AC9CD0 80052B30 E61000E4 */ swc1 $f16, 0xe4($s0)
/* AC9CD4 80052B34 C4440004 */ lwc1 $f4, 4($v0)
/* AC9CD8 80052B38 46049181 */ sub.s $f6, $f18, $f4
/* AC9CDC 80052B3C E60600E8 */ swc1 $f6, 0xe8($s0)
/* AC9CE0 80052B40 C44A0008 */ lwc1 $f10, 8($v0)
/* AC9CE4 80052B44 460A4401 */ sub.s $f16, $f8, $f10
/* AC9CE8 80052B48 10000004 */ b .L80052B5C
/* AC9CEC 80052B4C E61000EC */ swc1 $f16, 0xec($s0)
.L80052B50:
/* AC9CF0 80052B50 0C01EFE4 */ jal func_8007BF90
/* AC9CF4 80052B54 26040050 */ addiu $a0, $s0, 0x50
/* AC9CF8 80052B58 E60000DC */ swc1 $f0, 0xdc($s0)
.L80052B5C:
/* AC9CFC 80052B5C 86080000 */ lh $t0, ($s0)
/* AC9D00 80052B60 31190001 */ andi $t9, $t0, 1
/* AC9D04 80052B64 53200006 */ beql $t9, $zero, .L80052B80
/* AC9D08 80052B68 8FBF001C */ lw $ra, 0x1c($sp)
/* AC9D0C 80052B6C 86020160 */ lh $v0, 0x160($s0)
/* AC9D10 80052B70 18400002 */ blez $v0, .L80052B7C
/* AC9D14 80052B74 2449FFFF */ addiu $t1, $v0, -1
/* AC9D18 80052B78 A6090160 */ sh $t1, 0x160($s0)
.L80052B7C:
/* AC9D1C 80052B7C 8FBF001C */ lw $ra, 0x1c($sp)
.L80052B80:
/* AC9D20 80052B80 8FB00018 */ lw $s0, 0x18($sp)
/* AC9D24 80052B84 27BD0040 */ addiu $sp, $sp, 0x40
/* AC9D28 80052B88 03E00008 */ jr $ra
/* AC9D2C 80052B8C 24020001 */ li $v0, 1