Co-authored-by: Rainchus <rainmachus@gmail.com>
Co-authored-by: Unnunu <serge_zorkin@mail.ru>
This commit is contained in:
Ethan Roseman 2023-04-20 04:03:42 +09:00 committed by GitHub
parent dec110160c
commit 12a30b4ee8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 144 additions and 1134 deletions

View File

@ -267,7 +267,150 @@ void update_camera_mode_2(Camera *camera) {
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ)));
}
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera);
void update_camera_mode_1(Camera* camera) {
f32 sinBoom, cosBoom;
f32 f20;
f32 boomYaw;
f32 deltaX, deltaY, deltaZ;
f32 deltaX2, deltaY2, deltaZ2;
f32 x3, y3, z3;
f32 x2, y2, z2;
f32 new_var2;
f32 tmp1;
if (camera->unk_06) {
camera->unk_06 = FALSE;
deltaX = camera->lookAt_obj_target.x;
deltaZ2 = camera->lookAt_obj_target.z;
deltaX2 = camera->targetPos.x;
deltaZ = camera->targetPos.z;
camera->currentBoomYaw = camera->auxPitch;
camera->currentBoomLength = camera->lookAt_dist * 100 / D_8009A5EC;
camera->currentYOffset = camera->auxBoomPitch * 20 / D_8009A5EC;
f20 = atan2(deltaX, deltaZ2, deltaX2, deltaZ);
if ((dist2D(deltaX, deltaZ2, deltaX2, deltaZ) < camera->auxBoomLength * 100 / D_8009A5EC)) {
f20 = camera->trueRotation.x;
camera->trueRotation.x = f20;
} else {
camera->trueRotation.x = f20;
}
camera->trueRotation.y = f20;
camera->lookAt_obj.x = camera->lookAt_obj_target.x;
camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->currentYOffset;
camera->lookAt_obj.z = camera->lookAt_obj_target.z;
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
sinBoom = sin_rad(boomYaw);
deltaX = 0.0f;
deltaY = 0.0f;
new_var2 = -deltaY;
cosBoom = cos_rad(boomYaw);
boomYaw = new_var2;
deltaZ = camera->currentBoomLength;
deltaX2 = deltaX;
deltaY2 = new_var2;
deltaZ2 = deltaZ;
deltaX = deltaX2;
deltaY = cosBoom * -deltaY2 + deltaZ2 * sinBoom;
deltaZ = sinBoom * deltaY2 + deltaZ2 * cosBoom;
boomYaw = DEG_TO_RAD(f20);
deltaZ2 = deltaZ;
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
deltaX2 = cosBoom * deltaX - deltaZ * sinBoom;
deltaY2 = deltaY;
deltaZ = sinBoom * deltaX + deltaZ * cosBoom;
camera->lookAt_eye.x = camera->lookAt_obj.x + deltaX2;
camera->lookAt_eye.y = camera->lookAt_obj.y + deltaY2;
camera->lookAt_eye.z = camera->lookAt_obj.z + deltaZ;
}
tmp1 = camera->lookAt_obj_target.y;
x3 = camera->lookAt_obj_target.x;
y3 = tmp1;
z3 = camera->lookAt_obj_target.z;
camera->currentBoomYaw = camera->auxPitch;
camera->currentBoomLength = camera->lookAt_dist * 100 / D_8009A5EC;
camera->currentYOffset = camera->auxBoomPitch * 20 / D_8009A5EC;
y3 += camera->currentYOffset;
x3 -= camera->lookAt_obj.x;
y3 -= camera->lookAt_obj.y;
z3 -= camera->lookAt_obj.z;
deltaX = camera->lookAt_obj_target.x;
deltaY = camera->lookAt_obj_target.y;
deltaZ2 = camera->lookAt_obj_target.z;
deltaX2 = camera->targetPos.x;
deltaY2 = camera->targetPos.y;
deltaZ = camera->targetPos.z;
camera->lookAt_obj.x += x3 * 0.5f;
camera->lookAt_obj.y += y3 / 10.0f;
camera->lookAt_obj.z += z3 * 0.5f;
f20 = atan2(deltaX, deltaZ2, deltaX2, deltaZ);
if ((dist2D(deltaX, deltaZ2, deltaX2, deltaZ) < camera->auxBoomLength * 100 / D_8009A5EC)) {
f20 = camera->trueRotation.x;
} else {
camera->trueRotation.x = f20;
}
camera->trueRotation.y -= get_clamped_angle_diff(f20, camera->trueRotation.y) / 10.0f;
f20 = camera->trueRotation.y;
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
deltaX = 0.0f;
deltaY = 0.0f;
deltaZ = camera->currentBoomLength;
deltaX2 = deltaX;
deltaY2 = -deltaY;
deltaZ2 = deltaZ;
deltaX = deltaX2;
deltaY = -deltaY2;
deltaY = (cosBoom * deltaY) + (deltaZ2 * sinBoom);
deltaZ = sinBoom * deltaY2 + deltaZ2 * cosBoom;
deltaY2 = deltaY;
boomYaw = DEG_TO_RAD((f20));
deltaZ2 = deltaZ;
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
deltaX2 = cosBoom * deltaX - deltaZ * sinBoom;
deltaZ = sinBoom * deltaX + deltaZ * cosBoom;
camera->lookAt_eye.x = camera->lookAt_obj.x + deltaX2;
camera->lookAt_eye.y = camera->lookAt_obj.y + deltaY2;
camera->lookAt_eye.z = camera->lookAt_obj.z + deltaZ;
camera->currentYaw = atan2(camera->lookAt_eye.x, camera->lookAt_eye.z, camera->lookAt_obj.x, camera->lookAt_obj.z);
deltaX = camera->lookAt_obj.x - camera->lookAt_eye.x;
deltaY = camera->lookAt_obj.y - camera->lookAt_eye.y;
deltaZ2 = camera->lookAt_obj.z - camera->lookAt_eye.z;
camera->currentBlendedYawNegated = -atan2(0.0f, 0.0f, deltaX, deltaZ2);
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf((deltaX * deltaX) + (deltaZ2 * deltaZ2)));
}
void update_camera_mode_0(Camera* camera) {
f32 xTemp;

View File

@ -1,379 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
/* Generated by spimdisasm 1.11.1 */
glabel update_camera_mode_1
/* 9D40 8002E940 27BDFF90 */ addiu $sp, $sp, -0x70
/* 9D44 8002E944 AFB10034 */ sw $s1, 0x34($sp)
/* 9D48 8002E948 0080882D */ daddu $s1, $a0, $zero
/* 9D4C 8002E94C AFBF0038 */ sw $ra, 0x38($sp)
/* 9D50 8002E950 AFB00030 */ sw $s0, 0x30($sp)
/* 9D54 8002E954 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* 9D58 8002E958 F7BC0060 */ sdc1 $f28, 0x60($sp)
/* 9D5C 8002E95C F7BA0058 */ sdc1 $f26, 0x58($sp)
/* 9D60 8002E960 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 9D64 8002E964 F7B60048 */ sdc1 $f22, 0x48($sp)
/* 9D68 8002E968 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 9D6C 8002E96C 86220006 */ lh $v0, 0x6($s1)
/* 9D70 8002E970 10400089 */ beqz $v0, .LIQUE_8002EB98
/* 9D74 8002E974 00000000 */ nop
/* 9D78 8002E978 C63E0054 */ lwc1 $f30, 0x54($s1)
/* 9D7C 8002E97C C63C005C */ lwc1 $f28, 0x5C($s1)
/* 9D80 8002E980 C6380060 */ lwc1 $f24, 0x60($s1)
/* 9D84 8002E984 C6360068 */ lwc1 $f22, 0x68($s1)
/* 9D88 8002E988 8622001C */ lh $v0, 0x1C($s1)
/* 9D8C 8002E98C 86230020 */ lh $v1, 0x20($s1)
/* 9D90 8002E990 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* 9D94 8002E994 261091B8 */ addiu $s0, $s0, %lo(D_8009A5EC)
/* 9D98 8002E998 A6200006 */ sh $zero, 0x6($s1)
/* 9D9C 8002E99C 4600F306 */ mov.s $f12, $f30
/* 9DA0 8002E9A0 4600E386 */ mov.s $f14, $f28
/* 9DA4 8002E9A4 44820000 */ mtc1 $v0, $f0
/* 9DA8 8002E9A8 00000000 */ nop
/* 9DAC 8002E9AC 46800020 */ cvt.s.w $f0, $f0
/* 9DB0 8002E9B0 00031040 */ sll $v0, $v1, 1
/* 9DB4 8002E9B4 00431021 */ addu $v0, $v0, $v1
/* 9DB8 8002E9B8 000210C0 */ sll $v0, $v0, 3
/* 9DBC 8002E9BC 00431021 */ addu $v0, $v0, $v1
/* 9DC0 8002E9C0 00021080 */ sll $v0, $v0, 2
/* 9DC4 8002E9C4 E6200074 */ swc1 $f0, 0x74($s1)
/* 9DC8 8002E9C8 44820000 */ mtc1 $v0, $f0
/* 9DCC 8002E9CC 00000000 */ nop
/* 9DD0 8002E9D0 46800020 */ cvt.s.w $f0, $f0
/* 9DD4 8002E9D4 4406C000 */ mfc1 $a2, $f24
/* 9DD8 8002E9D8 4407B000 */ mfc1 $a3, $f22
/* 9DDC 8002E9DC C6020000 */ lwc1 $f2, 0x0($s0)
/* 9DE0 8002E9E0 86230022 */ lh $v1, 0x22($s1)
/* 9DE4 8002E9E4 46020003 */ div.s $f0, $f0, $f2
/* 9DE8 8002E9E8 00031080 */ sll $v0, $v1, 2
/* 9DEC 8002E9EC 00431021 */ addu $v0, $v0, $v1
/* 9DF0 8002E9F0 00021080 */ sll $v0, $v0, 2
/* 9DF4 8002E9F4 E6200078 */ swc1 $f0, 0x78($s1)
/* 9DF8 8002E9F8 44820000 */ mtc1 $v0, $f0
/* 9DFC 8002E9FC 00000000 */ nop
/* 9E00 8002EA00 46800020 */ cvt.s.w $f0, $f0
/* 9E04 8002EA04 46020003 */ div.s $f0, $f0, $f2
/* 9E08 8002EA08 0C00A654 */ jal atan2
/* 9E0C 8002EA0C E620007C */ swc1 $f0, 0x7C($s1)
/* 9E10 8002EA10 46000506 */ mov.s $f20, $f0
/* 9E14 8002EA14 4600F306 */ mov.s $f12, $f30
/* 9E18 8002EA18 4406C000 */ mfc1 $a2, $f24
/* 9E1C 8002EA1C 4407B000 */ mfc1 $a3, $f22
/* 9E20 8002EA20 0C00A6E9 */ jal dist2D
/* 9E24 8002EA24 4600E386 */ mov.s $f14, $f28
/* 9E28 8002EA28 8623001E */ lh $v1, 0x1E($s1)
/* 9E2C 8002EA2C C6040000 */ lwc1 $f4, 0x0($s0)
/* 9E30 8002EA30 00031040 */ sll $v0, $v1, 1
/* 9E34 8002EA34 00431021 */ addu $v0, $v0, $v1
/* 9E38 8002EA38 000210C0 */ sll $v0, $v0, 3
/* 9E3C 8002EA3C 00431021 */ addu $v0, $v0, $v1
/* 9E40 8002EA40 00021080 */ sll $v0, $v0, 2
/* 9E44 8002EA44 44821000 */ mtc1 $v0, $f2
/* 9E48 8002EA48 00000000 */ nop
/* 9E4C 8002EA4C 468010A0 */ cvt.s.w $f2, $f2
/* 9E50 8002EA50 46041083 */ div.s $f2, $f2, $f4
/* 9E54 8002EA54 4602003C */ c.lt.s $f0, $f2
/* 9E58 8002EA58 00000000 */ nop
/* 9E5C 8002EA5C 45020004 */ bc1fl .LIQUE_8002EA70
/* 9E60 8002EA60 E6340084 */ swc1 $f20, 0x84($s1)
/* 9E64 8002EA64 C6340084 */ lwc1 $f20, 0x84($s1)
/* 9E68 8002EA68 0800BA9D */ j .LIQUE_8002EA74
/* 9E6C 8002EA6C AFA00010 */ sw $zero, 0x10($sp)
.LIQUE_8002EA70:
/* 9E70 8002EA70 AFA00010 */ sw $zero, 0x10($sp)
.LIQUE_8002EA74:
/* 9E74 8002EA74 C6220074 */ lwc1 $f2, 0x74($s1)
/* 9E78 8002EA78 C6280054 */ lwc1 $f8, 0x54($s1)
/* 9E7C 8002EA7C 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* 9E80 8002EA80 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* 9E84 8002EA84 44815000 */ mtc1 $at, $f10
/* 9E88 8002EA88 C6200058 */ lwc1 $f0, 0x58($s1)
/* 9E8C 8002EA8C C624007C */ lwc1 $f4, 0x7C($s1)
/* 9E90 8002EA90 460A1082 */ mul.s $f2, $f2, $f10
/* 9E94 8002EA94 00000000 */ nop
/* 9E98 8002EA98 C626005C */ lwc1 $f6, 0x5C($s1)
/* 9E9C 8002EA9C 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* 9EA0 8002EAA0 4481B000 */ mtc1 $at, $f22
/* 9EA4 8002EAA4 E6340088 */ swc1 $f20, 0x88($s1)
/* 9EA8 8002EAA8 46040000 */ add.s $f0, $f0, $f4
/* 9EAC 8002EAAC E6280048 */ swc1 $f8, 0x48($s1)
/* 9EB0 8002EAB0 E6260050 */ swc1 $f6, 0x50($s1)
/* 9EB4 8002EAB4 E620004C */ swc1 $f0, 0x4C($s1)
/* 9EB8 8002EAB8 46161603 */ div.s $f24, $f2, $f22
/* 9EBC 8002EABC 0C00A78F */ jal sin_rad
/* 9EC0 8002EAC0 4600C306 */ mov.s $f12, $f24
/* 9EC4 8002EAC4 46000686 */ mov.s $f26, $f0
/* 9EC8 8002EAC8 0C00A7A8 */ jal cos_rad
/* 9ECC 8002EACC 4600C306 */ mov.s $f12, $f24
/* 9ED0 8002EAD0 C7B00010 */ lwc1 $f16, 0x10($sp)
/* 9ED4 8002EAD4 46000206 */ mov.s $f8, $f0
/* 9ED8 8002EAD8 46104182 */ mul.s $f6, $f8, $f16
/* 9EDC 8002EADC 00000000 */ nop
/* 9EE0 8002EAE0 C63C0078 */ lwc1 $f28, 0x78($s1)
/* 9EE4 8002EAE4 461AE082 */ mul.s $f2, $f28, $f26
/* 9EE8 8002EAE8 00000000 */ nop
/* 9EEC 8002EAEC 46008007 */ neg.s $f0, $f16
/* 9EF0 8002EAF0 4600D002 */ mul.s $f0, $f26, $f0
/* 9EF4 8002EAF4 00000000 */ nop
/* 9EF8 8002EAF8 4608E102 */ mul.s $f4, $f28, $f8
/* 9EFC 8002EAFC 00000000 */ nop
/* 9F00 8002EB00 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* 9F04 8002EB04 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* 9F08 8002EB08 44815000 */ mtc1 $at, $f10
/* 9F0C 8002EB0C 00000000 */ nop
/* 9F10 8002EB10 460AA282 */ mul.s $f10, $f20, $f10
/* 9F14 8002EB14 00000000 */ nop
/* 9F18 8002EB18 46008606 */ mov.s $f24, $f16
/* 9F1C 8002EB1C 4600C786 */ mov.s $f30, $f24
/* 9F20 8002EB20 46023180 */ add.s $f6, $f6, $f2
/* 9F24 8002EB24 46165603 */ div.s $f24, $f10, $f22
/* 9F28 8002EB28 4600C306 */ mov.s $f12, $f24
/* 9F2C 8002EB2C 46040700 */ add.s $f28, $f0, $f4
/* 9F30 8002EB30 0C00A78F */ jal sin_rad
/* 9F34 8002EB34 E7A60010 */ swc1 $f6, 0x10($sp)
/* 9F38 8002EB38 46000686 */ mov.s $f26, $f0
/* 9F3C 8002EB3C 0C00A7A8 */ jal cos_rad
/* 9F40 8002EB40 4600C306 */ mov.s $f12, $f24
/* 9F44 8002EB44 46000206 */ mov.s $f8, $f0
/* 9F48 8002EB48 461E4182 */ mul.s $f6, $f8, $f30
/* 9F4C 8002EB4C 00000000 */ nop
/* 9F50 8002EB50 461AE082 */ mul.s $f2, $f28, $f26
/* 9F54 8002EB54 00000000 */ nop
/* 9F58 8002EB58 461ED102 */ mul.s $f4, $f26, $f30
/* 9F5C 8002EB5C 00000000 */ nop
/* 9F60 8002EB60 4608E002 */ mul.s $f0, $f28, $f8
/* 9F64 8002EB64 00000000 */ nop
/* 9F68 8002EB68 46023601 */ sub.s $f24, $f6, $f2
/* 9F6C 8002EB6C C7B00010 */ lwc1 $f16, 0x10($sp)
/* 9F70 8002EB70 46002580 */ add.s $f22, $f4, $f0
/* 9F74 8002EB74 C620004C */ lwc1 $f0, 0x4C($s1)
/* 9F78 8002EB78 46100000 */ add.s $f0, $f0, $f16
/* 9F7C 8002EB7C C6240048 */ lwc1 $f4, 0x48($s1)
/* 9F80 8002EB80 46182100 */ add.s $f4, $f4, $f24
/* 9F84 8002EB84 C6220050 */ lwc1 $f2, 0x50($s1)
/* 9F88 8002EB88 46161080 */ add.s $f2, $f2, $f22
/* 9F8C 8002EB8C E6200040 */ swc1 $f0, 0x40($s1)
/* 9F90 8002EB90 E624003C */ swc1 $f4, 0x3C($s1)
/* 9F94 8002EB94 E6220044 */ swc1 $f2, 0x44($s1)
.LIQUE_8002EB98:
/* 9F98 8002EB98 C62A0054 */ lwc1 $f10, 0x54($s1)
/* 9F9C 8002EB9C 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* 9FA0 8002EBA0 261091B8 */ addiu $s0, $s0, %lo(D_8009A5EC)
/* 9FA4 8002EBA4 E7AA0028 */ swc1 $f10, 0x28($sp)
/* 9FA8 8002EBA8 C632005C */ lwc1 $f18, 0x5C($s1)
/* 9FAC 8002EBAC C63E0054 */ lwc1 $f30, 0x54($s1)
/* 9FB0 8002EBB0 C6380060 */ lwc1 $f24, 0x60($s1)
/* 9FB4 8002EBB4 C6360068 */ lwc1 $f22, 0x68($s1)
/* 9FB8 8002EBB8 86230022 */ lh $v1, 0x22($s1)
/* 9FBC 8002EBBC C6260058 */ lwc1 $f6, 0x58($s1)
/* 9FC0 8002EBC0 C60A0000 */ lwc1 $f10, 0x0($s0)
/* 9FC4 8002EBC4 C6280048 */ lwc1 $f8, 0x48($s1)
/* 9FC8 8002EBC8 46009706 */ mov.s $f28, $f18
/* 9FCC 8002EBCC 00031080 */ sll $v0, $v1, 2
/* 9FD0 8002EBD0 00431021 */ addu $v0, $v0, $v1
/* 9FD4 8002EBD4 00021080 */ sll $v0, $v0, 2
/* 9FD8 8002EBD8 44828000 */ mtc1 $v0, $f16
/* 9FDC 8002EBDC 00000000 */ nop
/* 9FE0 8002EBE0 46808420 */ cvt.s.w $f16, $f16
/* 9FE4 8002EBE4 460A8283 */ div.s $f10, $f16, $f10
/* 9FE8 8002EBE8 4600F306 */ mov.s $f12, $f30
/* 9FEC 8002EBEC E62A007C */ swc1 $f10, 0x7C($s1)
/* 9FF0 8002EBF0 C7B00028 */ lwc1 $f16, 0x28($sp)
/* 9FF4 8002EBF4 4600E386 */ mov.s $f14, $f28
/* 9FF8 8002EBF8 46088401 */ sub.s $f16, $f16, $f8
/* 9FFC 8002EBFC 4406C000 */ mfc1 $a2, $f24
/* A000 8002EC00 4407B000 */ mfc1 $a3, $f22
/* A004 8002EC04 460A3180 */ add.s $f6, $f6, $f10
/* A008 8002EC08 E7B00028 */ swc1 $f16, 0x28($sp)
/* A00C 8002EC0C C6200050 */ lwc1 $f0, 0x50($s1)
/* A010 8002EC10 8622001C */ lh $v0, 0x1C($s1)
/* A014 8002EC14 46009481 */ sub.s $f18, $f18, $f0
/* A018 8002EC18 44820000 */ mtc1 $v0, $f0
/* A01C 8002EC1C 00000000 */ nop
/* A020 8002EC20 46800020 */ cvt.s.w $f0, $f0
/* A024 8002EC24 E6200074 */ swc1 $f0, 0x74($s1)
/* A028 8002EC28 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* A02C 8002EC2C 44810000 */ mtc1 $at, $f0
/* A030 8002EC30 86230020 */ lh $v1, 0x20($s1)
/* A034 8002EC34 46008282 */ mul.s $f10, $f16, $f0
/* A038 8002EC38 00000000 */ nop
/* A03C 8002EC3C C622004C */ lwc1 $f2, 0x4C($s1)
/* A040 8002EC40 00031040 */ sll $v0, $v1, 1
/* A044 8002EC44 00431021 */ addu $v0, $v0, $v1
/* A048 8002EC48 000210C0 */ sll $v0, $v0, 3
/* A04C 8002EC4C 46023181 */ sub.s $f6, $f6, $f2
/* A050 8002EC50 00431021 */ addu $v0, $v0, $v1
/* A054 8002EC54 00021080 */ sll $v0, $v0, 2
/* A058 8002EC58 46009482 */ mul.s $f18, $f18, $f0
/* A05C 8002EC5C 00000000 */ nop
/* A060 8002EC60 3C014120 */ lui $at, (0x41200000 >> 16)
/* A064 8002EC64 44810000 */ mtc1 $at, $f0
/* A068 8002EC68 44822000 */ mtc1 $v0, $f4
/* A06C 8002EC6C 00000000 */ nop
/* A070 8002EC70 46802120 */ cvt.s.w $f4, $f4
/* A074 8002EC74 46003183 */ div.s $f6, $f6, $f0
/* A078 8002EC78 46001006 */ mov.s $f0, $f2
/* A07C 8002EC7C 46060000 */ add.s $f0, $f0, $f6
/* A080 8002EC80 C6100000 */ lwc1 $f16, 0x0($s0)
/* A084 8002EC84 C6220050 */ lwc1 $f2, 0x50($s1)
/* A088 8002EC88 460A4200 */ add.s $f8, $f8, $f10
/* A08C 8002EC8C 46102103 */ div.s $f4, $f4, $f16
/* A090 8002EC90 E6240078 */ swc1 $f4, 0x78($s1)
/* A094 8002EC94 46121080 */ add.s $f2, $f2, $f18
/* A098 8002EC98 E620004C */ swc1 $f0, 0x4C($s1)
/* A09C 8002EC9C E6280048 */ swc1 $f8, 0x48($s1)
/* A0A0 8002ECA0 0C00A654 */ jal atan2
/* A0A4 8002ECA4 E6220050 */ swc1 $f2, 0x50($s1)
/* A0A8 8002ECA8 46000506 */ mov.s $f20, $f0
/* A0AC 8002ECAC 4600F306 */ mov.s $f12, $f30
/* A0B0 8002ECB0 4406C000 */ mfc1 $a2, $f24
/* A0B4 8002ECB4 4407B000 */ mfc1 $a3, $f22
/* A0B8 8002ECB8 0C00A6E9 */ jal dist2D
/* A0BC 8002ECBC 4600E386 */ mov.s $f14, $f28
/* A0C0 8002ECC0 8623001E */ lh $v1, 0x1E($s1)
/* A0C4 8002ECC4 C6040000 */ lwc1 $f4, 0x0($s0)
/* A0C8 8002ECC8 00031040 */ sll $v0, $v1, 1
/* A0CC 8002ECCC 00431021 */ addu $v0, $v0, $v1
/* A0D0 8002ECD0 000210C0 */ sll $v0, $v0, 3
/* A0D4 8002ECD4 00431021 */ addu $v0, $v0, $v1
/* A0D8 8002ECD8 00021080 */ sll $v0, $v0, 2
/* A0DC 8002ECDC 44821000 */ mtc1 $v0, $f2
/* A0E0 8002ECE0 00000000 */ nop
/* A0E4 8002ECE4 468010A0 */ cvt.s.w $f2, $f2
/* A0E8 8002ECE8 46041083 */ div.s $f2, $f2, $f4
/* A0EC 8002ECEC 4602003C */ c.lt.s $f0, $f2
/* A0F0 8002ECF0 00000000 */ nop
/* A0F4 8002ECF4 45020002 */ bc1fl .LIQUE_8002ED00
/* A0F8 8002ECF8 E6340084 */ swc1 $f20, 0x84($s1)
/* A0FC 8002ECFC C6340084 */ lwc1 $f20, 0x84($s1)
.LIQUE_8002ED00:
/* A100 8002ED00 C62E0088 */ lwc1 $f14, 0x88($s1)
/* A104 8002ED04 0C00A63E */ jal get_clamped_angle_diff
/* A108 8002ED08 4600A306 */ mov.s $f12, $f20
/* A10C 8002ED0C C6240074 */ lwc1 $f4, 0x74($s1)
/* A110 8002ED10 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A114 8002ED14 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A118 8002ED18 44815000 */ mtc1 $at, $f10
/* A11C 8002ED1C 3C014120 */ lui $at, (0x41200000 >> 16)
/* A120 8002ED20 44811000 */ mtc1 $at, $f2
/* A124 8002ED24 460A2102 */ mul.s $f4, $f4, $f10
/* A128 8002ED28 00000000 */ nop
/* A12C 8002ED2C 46020003 */ div.s $f0, $f0, $f2
/* A130 8002ED30 C6220088 */ lwc1 $f2, 0x88($s1)
/* A134 8002ED34 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* A138 8002ED38 4481B000 */ mtc1 $at, $f22
/* A13C 8002ED3C 46001081 */ sub.s $f2, $f2, $f0
/* A140 8002ED40 AFA00010 */ sw $zero, 0x10($sp)
/* A144 8002ED44 46001506 */ mov.s $f20, $f2
/* A148 8002ED48 E6340088 */ swc1 $f20, 0x88($s1)
/* A14C 8002ED4C 46162603 */ div.s $f24, $f4, $f22
/* A150 8002ED50 0C00A78F */ jal sin_rad
/* A154 8002ED54 4600C306 */ mov.s $f12, $f24
/* A158 8002ED58 46000686 */ mov.s $f26, $f0
/* A15C 8002ED5C 0C00A7A8 */ jal cos_rad
/* A160 8002ED60 4600C306 */ mov.s $f12, $f24
/* A164 8002ED64 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A168 8002ED68 46000206 */ mov.s $f8, $f0
/* A16C 8002ED6C 46104182 */ mul.s $f6, $f8, $f16
/* A170 8002ED70 00000000 */ nop
/* A174 8002ED74 C63C0078 */ lwc1 $f28, 0x78($s1)
/* A178 8002ED78 461AE082 */ mul.s $f2, $f28, $f26
/* A17C 8002ED7C 00000000 */ nop
/* A180 8002ED80 46008007 */ neg.s $f0, $f16
/* A184 8002ED84 4600D002 */ mul.s $f0, $f26, $f0
/* A188 8002ED88 00000000 */ nop
/* A18C 8002ED8C 4608E102 */ mul.s $f4, $f28, $f8
/* A190 8002ED90 00000000 */ nop
/* A194 8002ED94 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A198 8002ED98 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A19C 8002ED9C 44815000 */ mtc1 $at, $f10
/* A1A0 8002EDA0 00000000 */ nop
/* A1A4 8002EDA4 460AA282 */ mul.s $f10, $f20, $f10
/* A1A8 8002EDA8 00000000 */ nop
/* A1AC 8002EDAC 46008606 */ mov.s $f24, $f16
/* A1B0 8002EDB0 4600C786 */ mov.s $f30, $f24
/* A1B4 8002EDB4 46023180 */ add.s $f6, $f6, $f2
/* A1B8 8002EDB8 46165603 */ div.s $f24, $f10, $f22
/* A1BC 8002EDBC 4600C306 */ mov.s $f12, $f24
/* A1C0 8002EDC0 46040700 */ add.s $f28, $f0, $f4
/* A1C4 8002EDC4 0C00A78F */ jal sin_rad
/* A1C8 8002EDC8 E7A60010 */ swc1 $f6, 0x10($sp)
/* A1CC 8002EDCC 46000686 */ mov.s $f26, $f0
/* A1D0 8002EDD0 0C00A7A8 */ jal cos_rad
/* A1D4 8002EDD4 4600C306 */ mov.s $f12, $f24
/* A1D8 8002EDD8 46000206 */ mov.s $f8, $f0
/* A1DC 8002EDDC 461E4102 */ mul.s $f4, $f8, $f30
/* A1E0 8002EDE0 00000000 */ nop
/* A1E4 8002EDE4 461AE002 */ mul.s $f0, $f28, $f26
/* A1E8 8002EDE8 00000000 */ nop
/* A1EC 8002EDEC 461ED182 */ mul.s $f6, $f26, $f30
/* A1F0 8002EDF0 00000000 */ nop
/* A1F4 8002EDF4 4608E082 */ mul.s $f2, $f28, $f8
/* A1F8 8002EDF8 00000000 */ nop
/* A1FC 8002EDFC 46002601 */ sub.s $f24, $f4, $f0
/* A200 8002EE00 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A204 8002EE04 46023580 */ add.s $f22, $f6, $f2
/* A208 8002EE08 C622004C */ lwc1 $f2, 0x4C($s1)
/* A20C 8002EE0C 46101080 */ add.s $f2, $f2, $f16
/* A210 8002EE10 C6200048 */ lwc1 $f0, 0x48($s1)
/* A214 8002EE14 8E260048 */ lw $a2, 0x48($s1)
/* A218 8002EE18 46180000 */ add.s $f0, $f0, $f24
/* A21C 8002EE1C C62E0050 */ lwc1 $f14, 0x50($s1)
/* A220 8002EE20 8E270050 */ lw $a3, 0x50($s1)
/* A224 8002EE24 46167380 */ add.s $f14, $f14, $f22
/* A228 8002EE28 E6220040 */ swc1 $f2, 0x40($s1)
/* A22C 8002EE2C E620003C */ swc1 $f0, 0x3C($s1)
/* A230 8002EE30 46000306 */ mov.s $f12, $f0
/* A234 8002EE34 0C00A654 */ jal atan2
/* A238 8002EE38 E62E0044 */ swc1 $f14, 0x44($s1)
/* A23C 8002EE3C C6240048 */ lwc1 $f4, 0x48($s1)
/* A240 8002EE40 C622003C */ lwc1 $f2, 0x3C($s1)
/* A244 8002EE44 4480A000 */ mtc1 $zero, $f20
/* A248 8002EE48 46022781 */ sub.s $f30, $f4, $f2
/* A24C 8002EE4C C6240050 */ lwc1 $f4, 0x50($s1)
/* A250 8002EE50 C6220044 */ lwc1 $f2, 0x44($s1)
/* A254 8002EE54 4600A306 */ mov.s $f12, $f20
/* A258 8002EE58 46022701 */ sub.s $f28, $f4, $f2
/* A25C 8002EE5C C624004C */ lwc1 $f4, 0x4C($s1)
/* A260 8002EE60 C6220040 */ lwc1 $f2, 0x40($s1)
/* A264 8002EE64 4406F000 */ mfc1 $a2, $f30
/* A268 8002EE68 46022101 */ sub.s $f4, $f4, $f2
/* A26C 8002EE6C 4407E000 */ mfc1 $a3, $f28
/* A270 8002EE70 4600A386 */ mov.s $f14, $f20
/* A274 8002EE74 E7A40010 */ swc1 $f4, 0x10($sp)
/* A278 8002EE78 0C00A654 */ jal atan2
/* A27C 8002EE7C E620006C */ swc1 $f0, 0x6C($s1)
/* A280 8002EE80 461EF102 */ mul.s $f4, $f30, $f30
/* A284 8002EE84 00000000 */ nop
/* A288 8002EE88 461CE082 */ mul.s $f2, $f28, $f28
/* A28C 8002EE8C 00000000 */ nop
/* A290 8002EE90 46022300 */ add.s $f12, $f4, $f2
/* A294 8002EE94 46000007 */ neg.s $f0, $f0
/* A298 8002EE98 E6200090 */ swc1 $f0, 0x90($s1)
/* A29C 8002EE9C 46006004 */ sqrt.s $f0, $f12
/* A2A0 8002EEA0 46000032 */ c.eq.s $f0, $f0
/* A2A4 8002EEA4 00000000 */ nop
/* A2A8 8002EEA8 45030004 */ bc1tl .LIQUE_8002EEBC
/* A2AC 8002EEAC 4600A306 */ mov.s $f12, $f20
/* A2B0 8002EEB0 0C0183A0 */ jal sqrtf
/* A2B4 8002EEB4 00000000 */ nop
/* A2B8 8002EEB8 4600A306 */ mov.s $f12, $f20
.LIQUE_8002EEBC:
/* A2BC 8002EEBC 46000007 */ neg.s $f0, $f0
/* A2C0 8002EEC0 8FA60010 */ lw $a2, 0x10($sp)
/* A2C4 8002EEC4 44070000 */ mfc1 $a3, $f0
/* A2C8 8002EEC8 0C00A654 */ jal atan2
/* A2CC 8002EECC 46006386 */ mov.s $f14, $f12
/* A2D0 8002EED0 E6200094 */ swc1 $f0, 0x94($s1)
/* A2D4 8002EED4 8FBF0038 */ lw $ra, 0x38($sp)
/* A2D8 8002EED8 8FB10034 */ lw $s1, 0x34($sp)
/* A2DC 8002EEDC 8FB00030 */ lw $s0, 0x30($sp)
/* A2E0 8002EEE0 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* A2E4 8002EEE4 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* A2E8 8002EEE8 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* A2EC 8002EEEC D7B80050 */ ldc1 $f24, 0x50($sp)
/* A2F0 8002EEF0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* A2F4 8002EEF4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* A2F8 8002EEF8 03E00008 */ jr $ra
/* A2FC 8002EEFC 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,377 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
glabel update_camera_mode_1
/* A320 8002EF20 27BDFF90 */ addiu $sp, $sp, -0x70
/* A324 8002EF24 AFB10034 */ sw $s1, 0x34($sp)
/* A328 8002EF28 0080882D */ daddu $s1, $a0, $zero
/* A32C 8002EF2C AFBF0038 */ sw $ra, 0x38($sp)
/* A330 8002EF30 AFB00030 */ sw $s0, 0x30($sp)
/* A334 8002EF34 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* A338 8002EF38 F7BC0060 */ sdc1 $f28, 0x60($sp)
/* A33C 8002EF3C F7BA0058 */ sdc1 $f26, 0x58($sp)
/* A340 8002EF40 F7B80050 */ sdc1 $f24, 0x50($sp)
/* A344 8002EF44 F7B60048 */ sdc1 $f22, 0x48($sp)
/* A348 8002EF48 F7B40040 */ sdc1 $f20, 0x40($sp)
/* A34C 8002EF4C 86220006 */ lh $v0, 0x6($s1)
/* A350 8002EF50 10400089 */ beqz $v0, .LJP_8002F178
/* A354 8002EF54 00000000 */ nop
/* A358 8002EF58 C63E0054 */ lwc1 $f30, 0x54($s1)
/* A35C 8002EF5C C63C005C */ lwc1 $f28, 0x5C($s1)
/* A360 8002EF60 C6380060 */ lwc1 $f24, 0x60($s1)
/* A364 8002EF64 C6360068 */ lwc1 $f22, 0x68($s1)
/* A368 8002EF68 8622001C */ lh $v0, 0x1C($s1)
/* A36C 8002EF6C 86230020 */ lh $v1, 0x20($s1)
/* A370 8002EF70 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* A374 8002EF74 2610A5CC */ addiu $s0, $s0, %lo(D_8009A5EC)
/* A378 8002EF78 A6200006 */ sh $zero, 0x6($s1)
/* A37C 8002EF7C 4600F306 */ mov.s $f12, $f30
/* A380 8002EF80 4600E386 */ mov.s $f14, $f28
/* A384 8002EF84 44820000 */ mtc1 $v0, $f0
/* A388 8002EF88 00000000 */ nop
/* A38C 8002EF8C 46800020 */ cvt.s.w $f0, $f0
/* A390 8002EF90 00031040 */ sll $v0, $v1, 1
/* A394 8002EF94 00431021 */ addu $v0, $v0, $v1
/* A398 8002EF98 000210C0 */ sll $v0, $v0, 3
/* A39C 8002EF9C 00431021 */ addu $v0, $v0, $v1
/* A3A0 8002EFA0 00021080 */ sll $v0, $v0, 2
/* A3A4 8002EFA4 E6200074 */ swc1 $f0, 0x74($s1)
/* A3A8 8002EFA8 44820000 */ mtc1 $v0, $f0
/* A3AC 8002EFAC 00000000 */ nop
/* A3B0 8002EFB0 46800020 */ cvt.s.w $f0, $f0
/* A3B4 8002EFB4 4406C000 */ mfc1 $a2, $f24
/* A3B8 8002EFB8 4407B000 */ mfc1 $a3, $f22
/* A3BC 8002EFBC C6020000 */ lwc1 $f2, 0x0($s0)
/* A3C0 8002EFC0 86230022 */ lh $v1, 0x22($s1)
/* A3C4 8002EFC4 46020003 */ div.s $f0, $f0, $f2
/* A3C8 8002EFC8 00031080 */ sll $v0, $v1, 2
/* A3CC 8002EFCC 00431021 */ addu $v0, $v0, $v1
/* A3D0 8002EFD0 00021080 */ sll $v0, $v0, 2
/* A3D4 8002EFD4 E6200078 */ swc1 $f0, 0x78($s1)
/* A3D8 8002EFD8 44820000 */ mtc1 $v0, $f0
/* A3DC 8002EFDC 00000000 */ nop
/* A3E0 8002EFE0 46800020 */ cvt.s.w $f0, $f0
/* A3E4 8002EFE4 46020003 */ div.s $f0, $f0, $f2
/* A3E8 8002EFE8 0C00A710 */ jal atan2
/* A3EC 8002EFEC E620007C */ swc1 $f0, 0x7C($s1)
/* A3F0 8002EFF0 46000506 */ mov.s $f20, $f0
/* A3F4 8002EFF4 4600F306 */ mov.s $f12, $f30
/* A3F8 8002EFF8 4406C000 */ mfc1 $a2, $f24
/* A3FC 8002EFFC 4407B000 */ mfc1 $a3, $f22
/* A400 8002F000 0C00A7A5 */ jal dist2D
/* A404 8002F004 4600E386 */ mov.s $f14, $f28
/* A408 8002F008 8623001E */ lh $v1, 0x1E($s1)
/* A40C 8002F00C C6040000 */ lwc1 $f4, 0x0($s0)
/* A410 8002F010 00031040 */ sll $v0, $v1, 1
/* A414 8002F014 00431021 */ addu $v0, $v0, $v1
/* A418 8002F018 000210C0 */ sll $v0, $v0, 3
/* A41C 8002F01C 00431021 */ addu $v0, $v0, $v1
/* A420 8002F020 00021080 */ sll $v0, $v0, 2
/* A424 8002F024 44821000 */ mtc1 $v0, $f2
/* A428 8002F028 00000000 */ nop
/* A42C 8002F02C 468010A0 */ cvt.s.w $f2, $f2
/* A430 8002F030 46041083 */ div.s $f2, $f2, $f4
/* A434 8002F034 4602003C */ c.lt.s $f0, $f2
/* A438 8002F038 00000000 */ nop
/* A43C 8002F03C 45020004 */ bc1fl .LJP_8002F050
/* A440 8002F040 E6340084 */ swc1 $f20, 0x84($s1)
/* A444 8002F044 C6340084 */ lwc1 $f20, 0x84($s1)
/* A448 8002F048 0800BC15 */ j .LJP_8002F054
/* A44C 8002F04C AFA00010 */ sw $zero, 0x10($sp)
.LJP_8002F050:
/* A450 8002F050 AFA00010 */ sw $zero, 0x10($sp)
.LJP_8002F054:
/* A454 8002F054 C6220074 */ lwc1 $f2, 0x74($s1)
/* A458 8002F058 C6280054 */ lwc1 $f8, 0x54($s1)
/* A45C 8002F05C 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A460 8002F060 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A464 8002F064 44815000 */ mtc1 $at, $f10
/* A468 8002F068 C6200058 */ lwc1 $f0, 0x58($s1)
/* A46C 8002F06C C624007C */ lwc1 $f4, 0x7C($s1)
/* A470 8002F070 460A1082 */ mul.s $f2, $f2, $f10
/* A474 8002F074 00000000 */ nop
/* A478 8002F078 C626005C */ lwc1 $f6, 0x5C($s1)
/* A47C 8002F07C 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* A480 8002F080 4481B000 */ mtc1 $at, $f22
/* A484 8002F084 E6340088 */ swc1 $f20, 0x88($s1)
/* A488 8002F088 46040000 */ add.s $f0, $f0, $f4
/* A48C 8002F08C E6280048 */ swc1 $f8, 0x48($s1)
/* A490 8002F090 E6260050 */ swc1 $f6, 0x50($s1)
/* A494 8002F094 E620004C */ swc1 $f0, 0x4C($s1)
/* A498 8002F098 46161603 */ div.s $f24, $f2, $f22
/* A49C 8002F09C 0C00A84B */ jal sin_rad
/* A4A0 8002F0A0 4600C306 */ mov.s $f12, $f24
/* A4A4 8002F0A4 46000686 */ mov.s $f26, $f0
/* A4A8 8002F0A8 0C00A864 */ jal cos_rad
/* A4AC 8002F0AC 4600C306 */ mov.s $f12, $f24
/* A4B0 8002F0B0 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A4B4 8002F0B4 46000206 */ mov.s $f8, $f0
/* A4B8 8002F0B8 46104182 */ mul.s $f6, $f8, $f16
/* A4BC 8002F0BC 00000000 */ nop
/* A4C0 8002F0C0 C63C0078 */ lwc1 $f28, 0x78($s1)
/* A4C4 8002F0C4 461AE082 */ mul.s $f2, $f28, $f26
/* A4C8 8002F0C8 00000000 */ nop
/* A4CC 8002F0CC 46008007 */ neg.s $f0, $f16
/* A4D0 8002F0D0 4600D002 */ mul.s $f0, $f26, $f0
/* A4D4 8002F0D4 00000000 */ nop
/* A4D8 8002F0D8 4608E102 */ mul.s $f4, $f28, $f8
/* A4DC 8002F0DC 00000000 */ nop
/* A4E0 8002F0E0 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A4E4 8002F0E4 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A4E8 8002F0E8 44815000 */ mtc1 $at, $f10
/* A4EC 8002F0EC 00000000 */ nop
/* A4F0 8002F0F0 460AA282 */ mul.s $f10, $f20, $f10
/* A4F4 8002F0F4 00000000 */ nop
/* A4F8 8002F0F8 46008606 */ mov.s $f24, $f16
/* A4FC 8002F0FC 4600C786 */ mov.s $f30, $f24
/* A500 8002F100 46023180 */ add.s $f6, $f6, $f2
/* A504 8002F104 46165603 */ div.s $f24, $f10, $f22
/* A508 8002F108 4600C306 */ mov.s $f12, $f24
/* A50C 8002F10C 46040700 */ add.s $f28, $f0, $f4
/* A510 8002F110 0C00A84B */ jal sin_rad
/* A514 8002F114 E7A60010 */ swc1 $f6, 0x10($sp)
/* A518 8002F118 46000686 */ mov.s $f26, $f0
/* A51C 8002F11C 0C00A864 */ jal cos_rad
/* A520 8002F120 4600C306 */ mov.s $f12, $f24
/* A524 8002F124 46000206 */ mov.s $f8, $f0
/* A528 8002F128 461E4182 */ mul.s $f6, $f8, $f30
/* A52C 8002F12C 00000000 */ nop
/* A530 8002F130 461AE082 */ mul.s $f2, $f28, $f26
/* A534 8002F134 00000000 */ nop
/* A538 8002F138 461ED102 */ mul.s $f4, $f26, $f30
/* A53C 8002F13C 00000000 */ nop
/* A540 8002F140 4608E002 */ mul.s $f0, $f28, $f8
/* A544 8002F144 00000000 */ nop
/* A548 8002F148 46023601 */ sub.s $f24, $f6, $f2
/* A54C 8002F14C C7B00010 */ lwc1 $f16, 0x10($sp)
/* A550 8002F150 46002580 */ add.s $f22, $f4, $f0
/* A554 8002F154 C620004C */ lwc1 $f0, 0x4C($s1)
/* A558 8002F158 46100000 */ add.s $f0, $f0, $f16
/* A55C 8002F15C C6240048 */ lwc1 $f4, 0x48($s1)
/* A560 8002F160 46182100 */ add.s $f4, $f4, $f24
/* A564 8002F164 C6220050 */ lwc1 $f2, 0x50($s1)
/* A568 8002F168 46161080 */ add.s $f2, $f2, $f22
/* A56C 8002F16C E6200040 */ swc1 $f0, 0x40($s1)
/* A570 8002F170 E624003C */ swc1 $f4, 0x3C($s1)
/* A574 8002F174 E6220044 */ swc1 $f2, 0x44($s1)
.LJP_8002F178:
/* A578 8002F178 C62A0054 */ lwc1 $f10, 0x54($s1)
/* A57C 8002F17C 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* A580 8002F180 2610A5CC */ addiu $s0, $s0, %lo(D_8009A5EC)
/* A584 8002F184 E7AA0028 */ swc1 $f10, 0x28($sp)
/* A588 8002F188 C632005C */ lwc1 $f18, 0x5C($s1)
/* A58C 8002F18C C63E0054 */ lwc1 $f30, 0x54($s1)
/* A590 8002F190 C6380060 */ lwc1 $f24, 0x60($s1)
/* A594 8002F194 C6360068 */ lwc1 $f22, 0x68($s1)
/* A598 8002F198 86230022 */ lh $v1, 0x22($s1)
/* A59C 8002F19C C6260058 */ lwc1 $f6, 0x58($s1)
/* A5A0 8002F1A0 C60A0000 */ lwc1 $f10, 0x0($s0)
/* A5A4 8002F1A4 C6280048 */ lwc1 $f8, 0x48($s1)
/* A5A8 8002F1A8 46009706 */ mov.s $f28, $f18
/* A5AC 8002F1AC 00031080 */ sll $v0, $v1, 2
/* A5B0 8002F1B0 00431021 */ addu $v0, $v0, $v1
/* A5B4 8002F1B4 00021080 */ sll $v0, $v0, 2
/* A5B8 8002F1B8 44828000 */ mtc1 $v0, $f16
/* A5BC 8002F1BC 00000000 */ nop
/* A5C0 8002F1C0 46808420 */ cvt.s.w $f16, $f16
/* A5C4 8002F1C4 460A8283 */ div.s $f10, $f16, $f10
/* A5C8 8002F1C8 4600F306 */ mov.s $f12, $f30
/* A5CC 8002F1CC E62A007C */ swc1 $f10, 0x7C($s1)
/* A5D0 8002F1D0 C7B00028 */ lwc1 $f16, 0x28($sp)
/* A5D4 8002F1D4 4600E386 */ mov.s $f14, $f28
/* A5D8 8002F1D8 46088401 */ sub.s $f16, $f16, $f8
/* A5DC 8002F1DC 4406C000 */ mfc1 $a2, $f24
/* A5E0 8002F1E0 4407B000 */ mfc1 $a3, $f22
/* A5E4 8002F1E4 460A3180 */ add.s $f6, $f6, $f10
/* A5E8 8002F1E8 E7B00028 */ swc1 $f16, 0x28($sp)
/* A5EC 8002F1EC C6200050 */ lwc1 $f0, 0x50($s1)
/* A5F0 8002F1F0 8622001C */ lh $v0, 0x1C($s1)
/* A5F4 8002F1F4 46009481 */ sub.s $f18, $f18, $f0
/* A5F8 8002F1F8 44820000 */ mtc1 $v0, $f0
/* A5FC 8002F1FC 00000000 */ nop
/* A600 8002F200 46800020 */ cvt.s.w $f0, $f0
/* A604 8002F204 E6200074 */ swc1 $f0, 0x74($s1)
/* A608 8002F208 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* A60C 8002F20C 44810000 */ mtc1 $at, $f0
/* A610 8002F210 86230020 */ lh $v1, 0x20($s1)
/* A614 8002F214 46008282 */ mul.s $f10, $f16, $f0
/* A618 8002F218 00000000 */ nop
/* A61C 8002F21C C622004C */ lwc1 $f2, 0x4C($s1)
/* A620 8002F220 00031040 */ sll $v0, $v1, 1
/* A624 8002F224 00431021 */ addu $v0, $v0, $v1
/* A628 8002F228 000210C0 */ sll $v0, $v0, 3
/* A62C 8002F22C 46023181 */ sub.s $f6, $f6, $f2
/* A630 8002F230 00431021 */ addu $v0, $v0, $v1
/* A634 8002F234 00021080 */ sll $v0, $v0, 2
/* A638 8002F238 46009482 */ mul.s $f18, $f18, $f0
/* A63C 8002F23C 00000000 */ nop
/* A640 8002F240 3C014120 */ lui $at, (0x41200000 >> 16)
/* A644 8002F244 44810000 */ mtc1 $at, $f0
/* A648 8002F248 44822000 */ mtc1 $v0, $f4
/* A64C 8002F24C 00000000 */ nop
/* A650 8002F250 46802120 */ cvt.s.w $f4, $f4
/* A654 8002F254 46003183 */ div.s $f6, $f6, $f0
/* A658 8002F258 46001006 */ mov.s $f0, $f2
/* A65C 8002F25C 46060000 */ add.s $f0, $f0, $f6
/* A660 8002F260 C6100000 */ lwc1 $f16, 0x0($s0)
/* A664 8002F264 C6220050 */ lwc1 $f2, 0x50($s1)
/* A668 8002F268 460A4200 */ add.s $f8, $f8, $f10
/* A66C 8002F26C 46102103 */ div.s $f4, $f4, $f16
/* A670 8002F270 E6240078 */ swc1 $f4, 0x78($s1)
/* A674 8002F274 46121080 */ add.s $f2, $f2, $f18
/* A678 8002F278 E620004C */ swc1 $f0, 0x4C($s1)
/* A67C 8002F27C E6280048 */ swc1 $f8, 0x48($s1)
/* A680 8002F280 0C00A710 */ jal atan2
/* A684 8002F284 E6220050 */ swc1 $f2, 0x50($s1)
/* A688 8002F288 46000506 */ mov.s $f20, $f0
/* A68C 8002F28C 4600F306 */ mov.s $f12, $f30
/* A690 8002F290 4406C000 */ mfc1 $a2, $f24
/* A694 8002F294 4407B000 */ mfc1 $a3, $f22
/* A698 8002F298 0C00A7A5 */ jal dist2D
/* A69C 8002F29C 4600E386 */ mov.s $f14, $f28
/* A6A0 8002F2A0 8623001E */ lh $v1, 0x1E($s1)
/* A6A4 8002F2A4 C6040000 */ lwc1 $f4, 0x0($s0)
/* A6A8 8002F2A8 00031040 */ sll $v0, $v1, 1
/* A6AC 8002F2AC 00431021 */ addu $v0, $v0, $v1
/* A6B0 8002F2B0 000210C0 */ sll $v0, $v0, 3
/* A6B4 8002F2B4 00431021 */ addu $v0, $v0, $v1
/* A6B8 8002F2B8 00021080 */ sll $v0, $v0, 2
/* A6BC 8002F2BC 44821000 */ mtc1 $v0, $f2
/* A6C0 8002F2C0 00000000 */ nop
/* A6C4 8002F2C4 468010A0 */ cvt.s.w $f2, $f2
/* A6C8 8002F2C8 46041083 */ div.s $f2, $f2, $f4
/* A6CC 8002F2CC 4602003C */ c.lt.s $f0, $f2
/* A6D0 8002F2D0 00000000 */ nop
/* A6D4 8002F2D4 45020002 */ bc1fl .LJP_8002F2E0
/* A6D8 8002F2D8 E6340084 */ swc1 $f20, 0x84($s1)
/* A6DC 8002F2DC C6340084 */ lwc1 $f20, 0x84($s1)
.LJP_8002F2E0:
/* A6E0 8002F2E0 C62E0088 */ lwc1 $f14, 0x88($s1)
/* A6E4 8002F2E4 0C00A6FA */ jal get_clamped_angle_diff
/* A6E8 8002F2E8 4600A306 */ mov.s $f12, $f20
/* A6EC 8002F2EC C6240074 */ lwc1 $f4, 0x74($s1)
/* A6F0 8002F2F0 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A6F4 8002F2F4 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A6F8 8002F2F8 44815000 */ mtc1 $at, $f10
/* A6FC 8002F2FC 3C014120 */ lui $at, (0x41200000 >> 16)
/* A700 8002F300 44811000 */ mtc1 $at, $f2
/* A704 8002F304 460A2102 */ mul.s $f4, $f4, $f10
/* A708 8002F308 00000000 */ nop
/* A70C 8002F30C 46020003 */ div.s $f0, $f0, $f2
/* A710 8002F310 C6220088 */ lwc1 $f2, 0x88($s1)
/* A714 8002F314 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* A718 8002F318 4481B000 */ mtc1 $at, $f22
/* A71C 8002F31C 46001081 */ sub.s $f2, $f2, $f0
/* A720 8002F320 AFA00010 */ sw $zero, 0x10($sp)
/* A724 8002F324 46001506 */ mov.s $f20, $f2
/* A728 8002F328 E6340088 */ swc1 $f20, 0x88($s1)
/* A72C 8002F32C 46162603 */ div.s $f24, $f4, $f22
/* A730 8002F330 0C00A84B */ jal sin_rad
/* A734 8002F334 4600C306 */ mov.s $f12, $f24
/* A738 8002F338 46000686 */ mov.s $f26, $f0
/* A73C 8002F33C 0C00A864 */ jal cos_rad
/* A740 8002F340 4600C306 */ mov.s $f12, $f24
/* A744 8002F344 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A748 8002F348 46000206 */ mov.s $f8, $f0
/* A74C 8002F34C 46104182 */ mul.s $f6, $f8, $f16
/* A750 8002F350 00000000 */ nop
/* A754 8002F354 C63C0078 */ lwc1 $f28, 0x78($s1)
/* A758 8002F358 461AE082 */ mul.s $f2, $f28, $f26
/* A75C 8002F35C 00000000 */ nop
/* A760 8002F360 46008007 */ neg.s $f0, $f16
/* A764 8002F364 4600D002 */ mul.s $f0, $f26, $f0
/* A768 8002F368 00000000 */ nop
/* A76C 8002F36C 4608E102 */ mul.s $f4, $f28, $f8
/* A770 8002F370 00000000 */ nop
/* A774 8002F374 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A778 8002F378 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A77C 8002F37C 44815000 */ mtc1 $at, $f10
/* A780 8002F380 00000000 */ nop
/* A784 8002F384 460AA282 */ mul.s $f10, $f20, $f10
/* A788 8002F388 00000000 */ nop
/* A78C 8002F38C 46008606 */ mov.s $f24, $f16
/* A790 8002F390 4600C786 */ mov.s $f30, $f24
/* A794 8002F394 46023180 */ add.s $f6, $f6, $f2
/* A798 8002F398 46165603 */ div.s $f24, $f10, $f22
/* A79C 8002F39C 4600C306 */ mov.s $f12, $f24
/* A7A0 8002F3A0 46040700 */ add.s $f28, $f0, $f4
/* A7A4 8002F3A4 0C00A84B */ jal sin_rad
/* A7A8 8002F3A8 E7A60010 */ swc1 $f6, 0x10($sp)
/* A7AC 8002F3AC 46000686 */ mov.s $f26, $f0
/* A7B0 8002F3B0 0C00A864 */ jal cos_rad
/* A7B4 8002F3B4 4600C306 */ mov.s $f12, $f24
/* A7B8 8002F3B8 46000206 */ mov.s $f8, $f0
/* A7BC 8002F3BC 461E4102 */ mul.s $f4, $f8, $f30
/* A7C0 8002F3C0 00000000 */ nop
/* A7C4 8002F3C4 461AE002 */ mul.s $f0, $f28, $f26
/* A7C8 8002F3C8 00000000 */ nop
/* A7CC 8002F3CC 461ED182 */ mul.s $f6, $f26, $f30
/* A7D0 8002F3D0 00000000 */ nop
/* A7D4 8002F3D4 4608E082 */ mul.s $f2, $f28, $f8
/* A7D8 8002F3D8 00000000 */ nop
/* A7DC 8002F3DC 46002601 */ sub.s $f24, $f4, $f0
/* A7E0 8002F3E0 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A7E4 8002F3E4 46023580 */ add.s $f22, $f6, $f2
/* A7E8 8002F3E8 C622004C */ lwc1 $f2, 0x4C($s1)
/* A7EC 8002F3EC 46101080 */ add.s $f2, $f2, $f16
/* A7F0 8002F3F0 C6200048 */ lwc1 $f0, 0x48($s1)
/* A7F4 8002F3F4 8E260048 */ lw $a2, 0x48($s1)
/* A7F8 8002F3F8 46180000 */ add.s $f0, $f0, $f24
/* A7FC 8002F3FC C62E0050 */ lwc1 $f14, 0x50($s1)
/* A800 8002F400 8E270050 */ lw $a3, 0x50($s1)
/* A804 8002F404 46167380 */ add.s $f14, $f14, $f22
/* A808 8002F408 E6220040 */ swc1 $f2, 0x40($s1)
/* A80C 8002F40C E620003C */ swc1 $f0, 0x3C($s1)
/* A810 8002F410 46000306 */ mov.s $f12, $f0
/* A814 8002F414 0C00A710 */ jal atan2
/* A818 8002F418 E62E0044 */ swc1 $f14, 0x44($s1)
/* A81C 8002F41C C6240048 */ lwc1 $f4, 0x48($s1)
/* A820 8002F420 C622003C */ lwc1 $f2, 0x3C($s1)
/* A824 8002F424 4480A000 */ mtc1 $zero, $f20
/* A828 8002F428 46022781 */ sub.s $f30, $f4, $f2
/* A82C 8002F42C C6240050 */ lwc1 $f4, 0x50($s1)
/* A830 8002F430 C6220044 */ lwc1 $f2, 0x44($s1)
/* A834 8002F434 4600A306 */ mov.s $f12, $f20
/* A838 8002F438 46022701 */ sub.s $f28, $f4, $f2
/* A83C 8002F43C C624004C */ lwc1 $f4, 0x4C($s1)
/* A840 8002F440 C6220040 */ lwc1 $f2, 0x40($s1)
/* A844 8002F444 4406F000 */ mfc1 $a2, $f30
/* A848 8002F448 46022101 */ sub.s $f4, $f4, $f2
/* A84C 8002F44C 4407E000 */ mfc1 $a3, $f28
/* A850 8002F450 4600A386 */ mov.s $f14, $f20
/* A854 8002F454 E7A40010 */ swc1 $f4, 0x10($sp)
/* A858 8002F458 0C00A710 */ jal atan2
/* A85C 8002F45C E620006C */ swc1 $f0, 0x6C($s1)
/* A860 8002F460 461EF102 */ mul.s $f4, $f30, $f30
/* A864 8002F464 00000000 */ nop
/* A868 8002F468 461CE082 */ mul.s $f2, $f28, $f28
/* A86C 8002F46C 00000000 */ nop
/* A870 8002F470 46022300 */ add.s $f12, $f4, $f2
/* A874 8002F474 46000007 */ neg.s $f0, $f0
/* A878 8002F478 E6200090 */ swc1 $f0, 0x90($s1)
/* A87C 8002F47C 46006004 */ sqrt.s $f0, $f12
/* A880 8002F480 46000032 */ c.eq.s $f0, $f0
/* A884 8002F484 00000000 */ nop
/* A888 8002F488 45030004 */ bc1tl .LJP_8002F49C
/* A88C 8002F48C 4600A306 */ mov.s $f12, $f20
/* A890 8002F490 0C0187B0 */ jal sqrtf
/* A894 8002F494 00000000 */ nop
/* A898 8002F498 4600A306 */ mov.s $f12, $f20
.LJP_8002F49C:
/* A89C 8002F49C 46000007 */ neg.s $f0, $f0
/* A8A0 8002F4A0 8FA60010 */ lw $a2, 0x10($sp)
/* A8A4 8002F4A4 44070000 */ mfc1 $a3, $f0
/* A8A8 8002F4A8 0C00A710 */ jal atan2
/* A8AC 8002F4AC 46006386 */ mov.s $f14, $f12
/* A8B0 8002F4B0 E6200094 */ swc1 $f0, 0x94($s1)
/* A8B4 8002F4B4 8FBF0038 */ lw $ra, 0x38($sp)
/* A8B8 8002F4B8 8FB10034 */ lw $s1, 0x34($sp)
/* A8BC 8002F4BC 8FB00030 */ lw $s0, 0x30($sp)
/* A8C0 8002F4C0 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* A8C4 8002F4C4 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* A8C8 8002F4C8 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* A8CC 8002F4CC D7B80050 */ ldc1 $f24, 0x50($sp)
/* A8D0 8002F4D0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* A8D4 8002F4D4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* A8D8 8002F4D8 03E00008 */ jr $ra
/* A8DC 8002F4DC 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,377 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_camera_mode_1
/* A690 8002F290 27BDFF90 */ addiu $sp, $sp, -0x70
/* A694 8002F294 AFB10034 */ sw $s1, 0x34($sp)
/* A698 8002F298 0080882D */ daddu $s1, $a0, $zero
/* A69C 8002F29C AFBF0038 */ sw $ra, 0x38($sp)
/* A6A0 8002F2A0 AFB00030 */ sw $s0, 0x30($sp)
/* A6A4 8002F2A4 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* A6A8 8002F2A8 F7BC0060 */ sdc1 $f28, 0x60($sp)
/* A6AC 8002F2AC F7BA0058 */ sdc1 $f26, 0x58($sp)
/* A6B0 8002F2B0 F7B80050 */ sdc1 $f24, 0x50($sp)
/* A6B4 8002F2B4 F7B60048 */ sdc1 $f22, 0x48($sp)
/* A6B8 8002F2B8 F7B40040 */ sdc1 $f20, 0x40($sp)
/* A6BC 8002F2BC 86220006 */ lh $v0, 6($s1)
/* A6C0 8002F2C0 10400089 */ beqz $v0, .L8002F4E8
/* A6C4 8002F2C4 00000000 */ nop
/* A6C8 8002F2C8 C63E0054 */ lwc1 $f30, 0x54($s1)
/* A6CC 8002F2CC C63C005C */ lwc1 $f28, 0x5c($s1)
/* A6D0 8002F2D0 C6380060 */ lwc1 $f24, 0x60($s1)
/* A6D4 8002F2D4 C6360068 */ lwc1 $f22, 0x68($s1)
/* A6D8 8002F2D8 8622001C */ lh $v0, 0x1c($s1)
/* A6DC 8002F2DC 86230020 */ lh $v1, 0x20($s1)
/* A6E0 8002F2E0 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* A6E4 8002F2E4 2610A5EC */ addiu $s0, $s0, %lo(D_8009A5EC)
/* A6E8 8002F2E8 A6200006 */ sh $zero, 6($s1)
/* A6EC 8002F2EC 4600F306 */ mov.s $f12, $f30
/* A6F0 8002F2F0 4600E386 */ mov.s $f14, $f28
/* A6F4 8002F2F4 44820000 */ mtc1 $v0, $f0
/* A6F8 8002F2F8 00000000 */ nop
/* A6FC 8002F2FC 46800020 */ cvt.s.w $f0, $f0
/* A700 8002F300 00031040 */ sll $v0, $v1, 1
/* A704 8002F304 00431021 */ addu $v0, $v0, $v1
/* A708 8002F308 000210C0 */ sll $v0, $v0, 3
/* A70C 8002F30C 00431021 */ addu $v0, $v0, $v1
/* A710 8002F310 00021080 */ sll $v0, $v0, 2
/* A714 8002F314 E6200074 */ swc1 $f0, 0x74($s1)
/* A718 8002F318 44820000 */ mtc1 $v0, $f0
/* A71C 8002F31C 00000000 */ nop
/* A720 8002F320 46800020 */ cvt.s.w $f0, $f0
/* A724 8002F324 4406C000 */ mfc1 $a2, $f24
/* A728 8002F328 4407B000 */ mfc1 $a3, $f22
/* A72C 8002F32C C6020000 */ lwc1 $f2, ($s0)
/* A730 8002F330 86230022 */ lh $v1, 0x22($s1)
/* A734 8002F334 46020003 */ div.s $f0, $f0, $f2
/* A738 8002F338 00031080 */ sll $v0, $v1, 2
/* A73C 8002F33C 00431021 */ addu $v0, $v0, $v1
/* A740 8002F340 00021080 */ sll $v0, $v0, 2
/* A744 8002F344 E6200078 */ swc1 $f0, 0x78($s1)
/* A748 8002F348 44820000 */ mtc1 $v0, $f0
/* A74C 8002F34C 00000000 */ nop
/* A750 8002F350 46800020 */ cvt.s.w $f0, $f0
/* A754 8002F354 46020003 */ div.s $f0, $f0, $f2
/* A758 8002F358 0C00A720 */ jal atan2
/* A75C 8002F35C E620007C */ swc1 $f0, 0x7c($s1)
/* A760 8002F360 46000506 */ mov.s $f20, $f0
/* A764 8002F364 4600F306 */ mov.s $f12, $f30
/* A768 8002F368 4406C000 */ mfc1 $a2, $f24
/* A76C 8002F36C 4407B000 */ mfc1 $a3, $f22
/* A770 8002F370 0C00A7B5 */ jal dist2D
/* A774 8002F374 4600E386 */ mov.s $f14, $f28
/* A778 8002F378 8623001E */ lh $v1, 0x1e($s1)
/* A77C 8002F37C C6040000 */ lwc1 $f4, ($s0)
/* A780 8002F380 00031040 */ sll $v0, $v1, 1
/* A784 8002F384 00431021 */ addu $v0, $v0, $v1
/* A788 8002F388 000210C0 */ sll $v0, $v0, 3
/* A78C 8002F38C 00431021 */ addu $v0, $v0, $v1
/* A790 8002F390 00021080 */ sll $v0, $v0, 2
/* A794 8002F394 44821000 */ mtc1 $v0, $f2
/* A798 8002F398 00000000 */ nop
/* A79C 8002F39C 468010A0 */ cvt.s.w $f2, $f2
/* A7A0 8002F3A0 46041083 */ div.s $f2, $f2, $f4
/* A7A4 8002F3A4 4602003C */ c.lt.s $f0, $f2
/* A7A8 8002F3A8 00000000 */ nop
/* A7AC 8002F3AC 45020004 */ bc1fl .L8002F3C0
/* A7B0 8002F3B0 E6340084 */ swc1 $f20, 0x84($s1)
/* A7B4 8002F3B4 C6340084 */ lwc1 $f20, 0x84($s1)
/* A7B8 8002F3B8 0800BCF1 */ j .L8002F3C4
/* A7BC 8002F3BC AFA00010 */ sw $zero, 0x10($sp)
.L8002F3C0:
/* A7C0 8002F3C0 AFA00010 */ sw $zero, 0x10($sp)
.L8002F3C4:
/* A7C4 8002F3C4 C6220074 */ lwc1 $f2, 0x74($s1)
/* A7C8 8002F3C8 C6280054 */ lwc1 $f8, 0x54($s1)
/* A7CC 8002F3CC 3C0140C9 */ lui $at, 0x40c9
/* A7D0 8002F3D0 34210FD0 */ ori $at, $at, 0xfd0
/* A7D4 8002F3D4 44815000 */ mtc1 $at, $f10
/* A7D8 8002F3D8 C6200058 */ lwc1 $f0, 0x58($s1)
/* A7DC 8002F3DC C624007C */ lwc1 $f4, 0x7c($s1)
/* A7E0 8002F3E0 460A1082 */ mul.s $f2, $f2, $f10
/* A7E4 8002F3E4 00000000 */ nop
/* A7E8 8002F3E8 C626005C */ lwc1 $f6, 0x5c($s1)
/* A7EC 8002F3EC 3C0143B4 */ lui $at, 0x43b4
/* A7F0 8002F3F0 4481B000 */ mtc1 $at, $f22
/* A7F4 8002F3F4 E6340088 */ swc1 $f20, 0x88($s1)
/* A7F8 8002F3F8 46040000 */ add.s $f0, $f0, $f4
/* A7FC 8002F3FC E6280048 */ swc1 $f8, 0x48($s1)
/* A800 8002F400 E6260050 */ swc1 $f6, 0x50($s1)
/* A804 8002F404 E620004C */ swc1 $f0, 0x4c($s1)
/* A808 8002F408 46161603 */ div.s $f24, $f2, $f22
/* A80C 8002F40C 0C00A85B */ jal sin_rad
/* A810 8002F410 4600C306 */ mov.s $f12, $f24
/* A814 8002F414 46000686 */ mov.s $f26, $f0
/* A818 8002F418 0C00A874 */ jal cos_rad
/* A81C 8002F41C 4600C306 */ mov.s $f12, $f24
/* A820 8002F420 C7B00010 */ lwc1 $f16, 0x10($sp)
/* A824 8002F424 46000206 */ mov.s $f8, $f0
/* A828 8002F428 46104182 */ mul.s $f6, $f8, $f16
/* A82C 8002F42C 00000000 */ nop
/* A830 8002F430 C63C0078 */ lwc1 $f28, 0x78($s1)
/* A834 8002F434 461AE082 */ mul.s $f2, $f28, $f26
/* A838 8002F438 00000000 */ nop
/* A83C 8002F43C 46008007 */ neg.s $f0, $f16
/* A840 8002F440 4600D002 */ mul.s $f0, $f26, $f0
/* A844 8002F444 00000000 */ nop
/* A848 8002F448 4608E102 */ mul.s $f4, $f28, $f8
/* A84C 8002F44C 00000000 */ nop
/* A850 8002F450 3C0140C9 */ lui $at, 0x40c9
/* A854 8002F454 34210FD0 */ ori $at, $at, 0xfd0
/* A858 8002F458 44815000 */ mtc1 $at, $f10
/* A85C 8002F45C 00000000 */ nop
/* A860 8002F460 460AA282 */ mul.s $f10, $f20, $f10
/* A864 8002F464 00000000 */ nop
/* A868 8002F468 46008606 */ mov.s $f24, $f16
/* A86C 8002F46C 4600C786 */ mov.s $f30, $f24
/* A870 8002F470 46023180 */ add.s $f6, $f6, $f2
/* A874 8002F474 46165603 */ div.s $f24, $f10, $f22
/* A878 8002F478 4600C306 */ mov.s $f12, $f24
/* A87C 8002F47C 46040700 */ add.s $f28, $f0, $f4
/* A880 8002F480 0C00A85B */ jal sin_rad
/* A884 8002F484 E7A60010 */ swc1 $f6, 0x10($sp)
/* A888 8002F488 46000686 */ mov.s $f26, $f0
/* A88C 8002F48C 0C00A874 */ jal cos_rad
/* A890 8002F490 4600C306 */ mov.s $f12, $f24
/* A894 8002F494 46000206 */ mov.s $f8, $f0
/* A898 8002F498 461E4182 */ mul.s $f6, $f8, $f30
/* A89C 8002F49C 00000000 */ nop
/* A8A0 8002F4A0 461AE082 */ mul.s $f2, $f28, $f26
/* A8A4 8002F4A4 00000000 */ nop
/* A8A8 8002F4A8 461ED102 */ mul.s $f4, $f26, $f30
/* A8AC 8002F4AC 00000000 */ nop
/* A8B0 8002F4B0 4608E002 */ mul.s $f0, $f28, $f8
/* A8B4 8002F4B4 00000000 */ nop
/* A8B8 8002F4B8 46023601 */ sub.s $f24, $f6, $f2
/* A8BC 8002F4BC C7B00010 */ lwc1 $f16, 0x10($sp)
/* A8C0 8002F4C0 46002580 */ add.s $f22, $f4, $f0
/* A8C4 8002F4C4 C620004C */ lwc1 $f0, 0x4c($s1)
/* A8C8 8002F4C8 46100000 */ add.s $f0, $f0, $f16
/* A8CC 8002F4CC C6240048 */ lwc1 $f4, 0x48($s1)
/* A8D0 8002F4D0 46182100 */ add.s $f4, $f4, $f24
/* A8D4 8002F4D4 C6220050 */ lwc1 $f2, 0x50($s1)
/* A8D8 8002F4D8 46161080 */ add.s $f2, $f2, $f22
/* A8DC 8002F4DC E6200040 */ swc1 $f0, 0x40($s1)
/* A8E0 8002F4E0 E624003C */ swc1 $f4, 0x3c($s1)
/* A8E4 8002F4E4 E6220044 */ swc1 $f2, 0x44($s1)
.L8002F4E8:
/* A8E8 8002F4E8 C62A0054 */ lwc1 $f10, 0x54($s1)
/* A8EC 8002F4EC 3C10800A */ lui $s0, %hi(D_8009A5EC)
/* A8F0 8002F4F0 2610A5EC */ addiu $s0, $s0, %lo(D_8009A5EC)
/* A8F4 8002F4F4 E7AA0028 */ swc1 $f10, 0x28($sp)
/* A8F8 8002F4F8 C632005C */ lwc1 $f18, 0x5c($s1)
/* A8FC 8002F4FC C63E0054 */ lwc1 $f30, 0x54($s1)
/* A900 8002F500 C6380060 */ lwc1 $f24, 0x60($s1)
/* A904 8002F504 C6360068 */ lwc1 $f22, 0x68($s1)
/* A908 8002F508 86230022 */ lh $v1, 0x22($s1)
/* A90C 8002F50C C6260058 */ lwc1 $f6, 0x58($s1)
/* A910 8002F510 C60A0000 */ lwc1 $f10, ($s0)
/* A914 8002F514 C6280048 */ lwc1 $f8, 0x48($s1)
/* A918 8002F518 46009706 */ mov.s $f28, $f18
/* A91C 8002F51C 00031080 */ sll $v0, $v1, 2
/* A920 8002F520 00431021 */ addu $v0, $v0, $v1
/* A924 8002F524 00021080 */ sll $v0, $v0, 2
/* A928 8002F528 44828000 */ mtc1 $v0, $f16
/* A92C 8002F52C 00000000 */ nop
/* A930 8002F530 46808420 */ cvt.s.w $f16, $f16
/* A934 8002F534 460A8283 */ div.s $f10, $f16, $f10
/* A938 8002F538 4600F306 */ mov.s $f12, $f30
/* A93C 8002F53C E62A007C */ swc1 $f10, 0x7c($s1)
/* A940 8002F540 C7B00028 */ lwc1 $f16, 0x28($sp)
/* A944 8002F544 4600E386 */ mov.s $f14, $f28
/* A948 8002F548 46088401 */ sub.s $f16, $f16, $f8
/* A94C 8002F54C 4406C000 */ mfc1 $a2, $f24
/* A950 8002F550 4407B000 */ mfc1 $a3, $f22
/* A954 8002F554 460A3180 */ add.s $f6, $f6, $f10
/* A958 8002F558 E7B00028 */ swc1 $f16, 0x28($sp)
/* A95C 8002F55C C6200050 */ lwc1 $f0, 0x50($s1)
/* A960 8002F560 8622001C */ lh $v0, 0x1c($s1)
/* A964 8002F564 46009481 */ sub.s $f18, $f18, $f0
/* A968 8002F568 44820000 */ mtc1 $v0, $f0
/* A96C 8002F56C 00000000 */ nop
/* A970 8002F570 46800020 */ cvt.s.w $f0, $f0
/* A974 8002F574 E6200074 */ swc1 $f0, 0x74($s1)
/* A978 8002F578 3C013F00 */ lui $at, 0x3f00
/* A97C 8002F57C 44810000 */ mtc1 $at, $f0
/* A980 8002F580 86230020 */ lh $v1, 0x20($s1)
/* A984 8002F584 46008282 */ mul.s $f10, $f16, $f0
/* A988 8002F588 00000000 */ nop
/* A98C 8002F58C C622004C */ lwc1 $f2, 0x4c($s1)
/* A990 8002F590 00031040 */ sll $v0, $v1, 1
/* A994 8002F594 00431021 */ addu $v0, $v0, $v1
/* A998 8002F598 000210C0 */ sll $v0, $v0, 3
/* A99C 8002F59C 46023181 */ sub.s $f6, $f6, $f2
/* A9A0 8002F5A0 00431021 */ addu $v0, $v0, $v1
/* A9A4 8002F5A4 00021080 */ sll $v0, $v0, 2
/* A9A8 8002F5A8 46009482 */ mul.s $f18, $f18, $f0
/* A9AC 8002F5AC 00000000 */ nop
/* A9B0 8002F5B0 3C014120 */ lui $at, 0x4120
/* A9B4 8002F5B4 44810000 */ mtc1 $at, $f0
/* A9B8 8002F5B8 44822000 */ mtc1 $v0, $f4
/* A9BC 8002F5BC 00000000 */ nop
/* A9C0 8002F5C0 46802120 */ cvt.s.w $f4, $f4
/* A9C4 8002F5C4 46003183 */ div.s $f6, $f6, $f0
/* A9C8 8002F5C8 46001006 */ mov.s $f0, $f2
/* A9CC 8002F5CC 46060000 */ add.s $f0, $f0, $f6
/* A9D0 8002F5D0 C6100000 */ lwc1 $f16, ($s0)
/* A9D4 8002F5D4 C6220050 */ lwc1 $f2, 0x50($s1)
/* A9D8 8002F5D8 460A4200 */ add.s $f8, $f8, $f10
/* A9DC 8002F5DC 46102103 */ div.s $f4, $f4, $f16
/* A9E0 8002F5E0 E6240078 */ swc1 $f4, 0x78($s1)
/* A9E4 8002F5E4 46121080 */ add.s $f2, $f2, $f18
/* A9E8 8002F5E8 E620004C */ swc1 $f0, 0x4c($s1)
/* A9EC 8002F5EC E6280048 */ swc1 $f8, 0x48($s1)
/* A9F0 8002F5F0 0C00A720 */ jal atan2
/* A9F4 8002F5F4 E6220050 */ swc1 $f2, 0x50($s1)
/* A9F8 8002F5F8 46000506 */ mov.s $f20, $f0
/* A9FC 8002F5FC 4600F306 */ mov.s $f12, $f30
/* AA00 8002F600 4406C000 */ mfc1 $a2, $f24
/* AA04 8002F604 4407B000 */ mfc1 $a3, $f22
/* AA08 8002F608 0C00A7B5 */ jal dist2D
/* AA0C 8002F60C 4600E386 */ mov.s $f14, $f28
/* AA10 8002F610 8623001E */ lh $v1, 0x1e($s1)
/* AA14 8002F614 C6040000 */ lwc1 $f4, ($s0)
/* AA18 8002F618 00031040 */ sll $v0, $v1, 1
/* AA1C 8002F61C 00431021 */ addu $v0, $v0, $v1
/* AA20 8002F620 000210C0 */ sll $v0, $v0, 3
/* AA24 8002F624 00431021 */ addu $v0, $v0, $v1
/* AA28 8002F628 00021080 */ sll $v0, $v0, 2
/* AA2C 8002F62C 44821000 */ mtc1 $v0, $f2
/* AA30 8002F630 00000000 */ nop
/* AA34 8002F634 468010A0 */ cvt.s.w $f2, $f2
/* AA38 8002F638 46041083 */ div.s $f2, $f2, $f4
/* AA3C 8002F63C 4602003C */ c.lt.s $f0, $f2
/* AA40 8002F640 00000000 */ nop
/* AA44 8002F644 45020002 */ bc1fl .L8002F650
/* AA48 8002F648 E6340084 */ swc1 $f20, 0x84($s1)
/* AA4C 8002F64C C6340084 */ lwc1 $f20, 0x84($s1)
.L8002F650:
/* AA50 8002F650 C62E0088 */ lwc1 $f14, 0x88($s1)
/* AA54 8002F654 0C00A70A */ jal get_clamped_angle_diff
/* AA58 8002F658 4600A306 */ mov.s $f12, $f20
/* AA5C 8002F65C C6240074 */ lwc1 $f4, 0x74($s1)
/* AA60 8002F660 3C0140C9 */ lui $at, 0x40c9
/* AA64 8002F664 34210FD0 */ ori $at, $at, 0xfd0
/* AA68 8002F668 44815000 */ mtc1 $at, $f10
/* AA6C 8002F66C 3C014120 */ lui $at, 0x4120
/* AA70 8002F670 44811000 */ mtc1 $at, $f2
/* AA74 8002F674 460A2102 */ mul.s $f4, $f4, $f10
/* AA78 8002F678 00000000 */ nop
/* AA7C 8002F67C 46020003 */ div.s $f0, $f0, $f2
/* AA80 8002F680 C6220088 */ lwc1 $f2, 0x88($s1)
/* AA84 8002F684 3C0143B4 */ lui $at, 0x43b4
/* AA88 8002F688 4481B000 */ mtc1 $at, $f22
/* AA8C 8002F68C 46001081 */ sub.s $f2, $f2, $f0
/* AA90 8002F690 AFA00010 */ sw $zero, 0x10($sp)
/* AA94 8002F694 46001506 */ mov.s $f20, $f2
/* AA98 8002F698 E6340088 */ swc1 $f20, 0x88($s1)
/* AA9C 8002F69C 46162603 */ div.s $f24, $f4, $f22
/* AAA0 8002F6A0 0C00A85B */ jal sin_rad
/* AAA4 8002F6A4 4600C306 */ mov.s $f12, $f24
/* AAA8 8002F6A8 46000686 */ mov.s $f26, $f0
/* AAAC 8002F6AC 0C00A874 */ jal cos_rad
/* AAB0 8002F6B0 4600C306 */ mov.s $f12, $f24
/* AAB4 8002F6B4 C7B00010 */ lwc1 $f16, 0x10($sp)
/* AAB8 8002F6B8 46000206 */ mov.s $f8, $f0
/* AABC 8002F6BC 46104182 */ mul.s $f6, $f8, $f16
/* AAC0 8002F6C0 00000000 */ nop
/* AAC4 8002F6C4 C63C0078 */ lwc1 $f28, 0x78($s1)
/* AAC8 8002F6C8 461AE082 */ mul.s $f2, $f28, $f26
/* AACC 8002F6CC 00000000 */ nop
/* AAD0 8002F6D0 46008007 */ neg.s $f0, $f16
/* AAD4 8002F6D4 4600D002 */ mul.s $f0, $f26, $f0
/* AAD8 8002F6D8 00000000 */ nop
/* AADC 8002F6DC 4608E102 */ mul.s $f4, $f28, $f8
/* AAE0 8002F6E0 00000000 */ nop
/* AAE4 8002F6E4 3C0140C9 */ lui $at, 0x40c9
/* AAE8 8002F6E8 34210FD0 */ ori $at, $at, 0xfd0
/* AAEC 8002F6EC 44815000 */ mtc1 $at, $f10
/* AAF0 8002F6F0 00000000 */ nop
/* AAF4 8002F6F4 460AA282 */ mul.s $f10, $f20, $f10
/* AAF8 8002F6F8 00000000 */ nop
/* AAFC 8002F6FC 46008606 */ mov.s $f24, $f16
/* AB00 8002F700 4600C786 */ mov.s $f30, $f24
/* AB04 8002F704 46023180 */ add.s $f6, $f6, $f2
/* AB08 8002F708 46165603 */ div.s $f24, $f10, $f22
/* AB0C 8002F70C 4600C306 */ mov.s $f12, $f24
/* AB10 8002F710 46040700 */ add.s $f28, $f0, $f4
/* AB14 8002F714 0C00A85B */ jal sin_rad
/* AB18 8002F718 E7A60010 */ swc1 $f6, 0x10($sp)
/* AB1C 8002F71C 46000686 */ mov.s $f26, $f0
/* AB20 8002F720 0C00A874 */ jal cos_rad
/* AB24 8002F724 4600C306 */ mov.s $f12, $f24
/* AB28 8002F728 46000206 */ mov.s $f8, $f0
/* AB2C 8002F72C 461E4102 */ mul.s $f4, $f8, $f30
/* AB30 8002F730 00000000 */ nop
/* AB34 8002F734 461AE002 */ mul.s $f0, $f28, $f26
/* AB38 8002F738 00000000 */ nop
/* AB3C 8002F73C 461ED182 */ mul.s $f6, $f26, $f30
/* AB40 8002F740 00000000 */ nop
/* AB44 8002F744 4608E082 */ mul.s $f2, $f28, $f8
/* AB48 8002F748 00000000 */ nop
/* AB4C 8002F74C 46002601 */ sub.s $f24, $f4, $f0
/* AB50 8002F750 C7B00010 */ lwc1 $f16, 0x10($sp)
/* AB54 8002F754 46023580 */ add.s $f22, $f6, $f2
/* AB58 8002F758 C622004C */ lwc1 $f2, 0x4c($s1)
/* AB5C 8002F75C 46101080 */ add.s $f2, $f2, $f16
/* AB60 8002F760 C6200048 */ lwc1 $f0, 0x48($s1)
/* AB64 8002F764 8E260048 */ lw $a2, 0x48($s1)
/* AB68 8002F768 46180000 */ add.s $f0, $f0, $f24
/* AB6C 8002F76C C62E0050 */ lwc1 $f14, 0x50($s1)
/* AB70 8002F770 8E270050 */ lw $a3, 0x50($s1)
/* AB74 8002F774 46167380 */ add.s $f14, $f14, $f22
/* AB78 8002F778 E6220040 */ swc1 $f2, 0x40($s1)
/* AB7C 8002F77C E620003C */ swc1 $f0, 0x3c($s1)
/* AB80 8002F780 46000306 */ mov.s $f12, $f0
/* AB84 8002F784 0C00A720 */ jal atan2
/* AB88 8002F788 E62E0044 */ swc1 $f14, 0x44($s1)
/* AB8C 8002F78C C6240048 */ lwc1 $f4, 0x48($s1)
/* AB90 8002F790 C622003C */ lwc1 $f2, 0x3c($s1)
/* AB94 8002F794 4480A000 */ mtc1 $zero, $f20
/* AB98 8002F798 46022781 */ sub.s $f30, $f4, $f2
/* AB9C 8002F79C C6240050 */ lwc1 $f4, 0x50($s1)
/* ABA0 8002F7A0 C6220044 */ lwc1 $f2, 0x44($s1)
/* ABA4 8002F7A4 4600A306 */ mov.s $f12, $f20
/* ABA8 8002F7A8 46022701 */ sub.s $f28, $f4, $f2
/* ABAC 8002F7AC C624004C */ lwc1 $f4, 0x4c($s1)
/* ABB0 8002F7B0 C6220040 */ lwc1 $f2, 0x40($s1)
/* ABB4 8002F7B4 4406F000 */ mfc1 $a2, $f30
/* ABB8 8002F7B8 46022101 */ sub.s $f4, $f4, $f2
/* ABBC 8002F7BC 4407E000 */ mfc1 $a3, $f28
/* ABC0 8002F7C0 4600A386 */ mov.s $f14, $f20
/* ABC4 8002F7C4 E7A40010 */ swc1 $f4, 0x10($sp)
/* ABC8 8002F7C8 0C00A720 */ jal atan2
/* ABCC 8002F7CC E620006C */ swc1 $f0, 0x6c($s1)
/* ABD0 8002F7D0 461EF102 */ mul.s $f4, $f30, $f30
/* ABD4 8002F7D4 00000000 */ nop
/* ABD8 8002F7D8 461CE082 */ mul.s $f2, $f28, $f28
/* ABDC 8002F7DC 00000000 */ nop
/* ABE0 8002F7E0 46022300 */ add.s $f12, $f4, $f2
/* ABE4 8002F7E4 46000007 */ neg.s $f0, $f0
/* ABE8 8002F7E8 E6200090 */ swc1 $f0, 0x90($s1)
/* ABEC 8002F7EC 46006004 */ sqrt.s $f0, $f12
/* ABF0 8002F7F0 46000032 */ c.eq.s $f0, $f0
/* ABF4 8002F7F4 00000000 */ nop
/* ABF8 8002F7F8 45030004 */ bc1tl .L8002F80C
/* ABFC 8002F7FC 4600A306 */ mov.s $f12, $f20
/* AC00 8002F800 0C0187BC */ jal sqrtf
/* AC04 8002F804 00000000 */ nop
/* AC08 8002F808 4600A306 */ mov.s $f12, $f20
.L8002F80C:
/* AC0C 8002F80C 46000007 */ neg.s $f0, $f0
/* AC10 8002F810 8FA60010 */ lw $a2, 0x10($sp)
/* AC14 8002F814 44070000 */ mfc1 $a3, $f0
/* AC18 8002F818 0C00A720 */ jal atan2
/* AC1C 8002F81C 46006386 */ mov.s $f14, $f12
/* AC20 8002F820 E6200094 */ swc1 $f0, 0x94($s1)
/* AC24 8002F824 8FBF0038 */ lw $ra, 0x38($sp)
/* AC28 8002F828 8FB10034 */ lw $s1, 0x34($sp)
/* AC2C 8002F82C 8FB00030 */ lw $s0, 0x30($sp)
/* AC30 8002F830 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* AC34 8002F834 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* AC38 8002F838 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* AC3C 8002F83C D7B80050 */ ldc1 $f24, 0x50($sp)
/* AC40 8002F840 D7B60048 */ ldc1 $f22, 0x48($sp)
/* AC44 8002F844 D7B40040 */ ldc1 $f20, 0x40($sp)
/* AC48 8002F848 03E00008 */ jr $ra
/* AC4C 8002F84C 27BD0070 */ addiu $sp, $sp, 0x70