diff --git a/include/common_structs.h b/include/common_structs.h index 85c994c5b7..8b360f9e88 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -131,13 +131,13 @@ typedef struct Matrix4s { /* 0x20 */ s16 frac[4][4]; } Matrix4s; // size = 0x40 -typedef struct CamPosSettings { +typedef struct CamConfiguration { /* 0x00 */ f32 boomYaw; /* 0x04 */ f32 boomLength; /* 0x08 */ f32 boomPitch; /* 0x0C */ f32 viewPitch; - /* 0x10 */ Vec3f pos; -} CamPosSettings; // size = 0x1C + /* 0x10 */ Vec3f targetPos; +} CamConfiguration; // size = 0x1C typedef struct DmaTable { /* 0x00 */ u8* start; @@ -716,7 +716,7 @@ typedef struct UiStatus { typedef struct CameraInitData { /* 0x00 */ s16 flags; - /* 0x02 */ s8 type; + /* 0x02 */ s8 updateMode; /* 0x03 */ char unk_03; /* 0x04 */ s16 viewWidth; /* 0x06 */ s16 viewHeight; @@ -741,8 +741,24 @@ typedef struct CameraControlSettings { /* 0x00 */ s32 type; /* 0x04 */ f32 boomLength; /* 0x08 */ f32 boomPitch; - /* 0x0C */ Vec3f posA; - /* 0x18 */ Vec3f posB; + union { + struct { + f32 Ax; + f32 Ay; + f32 Az; + f32 Bx; + f32 By; + f32 Bz; + } two; + struct { + f32 Ax; + f32 Cx; + f32 Az; + f32 Bx; + f32 Cz; + f32 Bz; + } three; + } points; /* 0x24 */ f32 viewPitch; /* 0x28 */ s32 flag; } CameraControlSettings; // size = 0x2C @@ -808,8 +824,8 @@ typedef struct Camera { /* 0x214 */ CameraUnk unk_214[4]; /* 0x444 */ CameraControlSettings* prevController; /* 0x448 */ CameraControlSettings* currentController; - /* 0x44C */ CamPosSettings oldCameraSettings; - /* 0x468 */ CamPosSettings newCameraSettings; + /* 0x44C */ CamConfiguration prevConfiguration; + /* 0x468 */ CamConfiguration goalConfiguration; /* 0x484 */ f32 interpAlpha; /* 0x488 */ f32 linearInterp; /* 0x48C */ f32 linearInterpScale; /* 3.0? */ @@ -818,9 +834,7 @@ typedef struct Camera { /* 0x498 */ f32 unk_498; /* 0x49C */ f32 unk_49C; /* 0x4A0 */ f32 savedTargetY; - /* 0x4A4 */ f32 unk_4A4; - /* 0x4A8 */ f32 unk_4A8; - /* 0x4AC */ f32 unk_4AC; + /* 0x4A4 */ Vec3f prevTargetPos; /* 0x4B0 */ Vec3f movePos; /* 0x4BC */ Vec3f prevPrevMovePos; /* 0x4C8 */ Vec3f prevMovePos; diff --git a/include/enums.h b/include/enums.h index 2a81ce619f..84a6c5a9b4 100644 --- a/include/enums.h +++ b/include/enums.h @@ -5366,14 +5366,51 @@ enum CameraMoveFlags { CAMERA_MOVE_FLAG_4 = 0x00000004, }; -enum CameraSettingsType { - CAMERA_SETTINGS_TYPE_0 = 0, - CAMERA_SETTINGS_TYPE_1 = 1, - CAMERA_SETTINGS_TYPE_2 = 2, - CAMERA_SETTINGS_TYPE_3 = 3, - CAMERA_SETTINGS_TYPE_4 = 4, - CAMERA_SETTINGS_TYPE_5 = 5, - CAMERA_SETTINGS_TYPE_6 = 6, +enum CameraUpdateType { + CAM_UPDATE_MODE_0 = 0, + CAM_UPDATE_MODE_1 = 1, + CAM_UPDATE_MODE_2 = 2, + CAM_UPDATE_MODE_3 = 3, + CAM_UPDATE_MODE_4 = 4, + CAM_UPDATE_MODE_5 = 5, + CAM_UPDATE_MODE_6 = 6, +}; + +enum CameraControlType { + // Camera follows the player, using a fixed yaw position. + // Uses: A/B as 2D points + // Yaw is defined by the line segment AB + // flag 0 = free forward movement (follow player) + // flag 1 = lock forward movement (must intersect B) + CAM_CONTROL_FIXED_ORIENTATION = 0, + + // Camera faces toward or away from a point with the player in the center of the frame. + // Use a negative boom length to look away from a point. + // flag 1 = Constrain to Fixed Radius + CAM_CONTROL_LOOK_AT_POINT = 1, + + // Camera is contrained to a point along the line segment BC. + // Use these near exits to stop camera movement. + // Uses: A/B/C as 2D points + // The target position is found by projecting player position onto BC along a line orthogonal to AB. + // If posA == posB, AB is ignored and the projection axis will be along a line orthogonal to BC with + // the resulting position being the closest point on BC to the player. + // flag 1 = Freeze Camera Position + CAM_CONTROL_CONSTRAIN_TO_LINE = 2, + + // Follows the player using whatever yaw value the camera initially possessed. + CAM_CONTROL_FOLLOW_PLAYER = 3, + + // Both position and yaw are fixed. + CAM_CONTROL_FIXED_POS_AND_ORIENTATION = 4, + + // Look Toward Point, Constrain to Line + // flag 1 = Freeze Target at Point + CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE = 5, + + // Camera position is contrained to a line segment, with yaw perpendicular to the line segment. + // flag 1 = Disable Forward Motion + CAM_CONTROL_CONSTAIN_BETWEEN_POINTS = 6, }; enum BtlCameraPreset { diff --git a/include/script_api/macros.h b/include/script_api/macros.h index 9df0f158a5..8ee125681d 100644 --- a/include/script_api/macros.h +++ b/include/script_api/macros.h @@ -724,22 +724,22 @@ // only set perspective to standard values #define EVT_SETUP_CAMERA_MINIMAL() \ - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) #define EVT_SETUP_CAMERA_DEFAULT() \ - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) \ + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) \ EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) \ EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) #define EVT_SETUP_CAMERA_NO_LEAD() \ - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) \ + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) \ EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) \ EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) \ EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) // same as EVT_SETUP_CAMERA_NO_LEAD with calls reordered #define EVT_SETUP_CAMERA_ALT_NO_LEAD() \ - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) \ + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) \ EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) \ EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) \ EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/8800.c b/src/8800.c index 2e32cf7b16..24451cf4ed 100644 --- a/src/8800.c +++ b/src/8800.c @@ -24,25 +24,25 @@ void update_cameras(void) { gCurrentCamID = i; switch (cam->updateMode) { - case 3: + case CAM_UPDATE_MODE_3: update_camera_zone_interp(cam); break; - case 0: + case CAM_UPDATE_MODE_0: update_camera_mode_0(cam); break; - case 1: + case CAM_UPDATE_MODE_1: update_camera_mode_1(cam); break; - case 2: + case CAM_UPDATE_MODE_2: update_camera_mode_2(cam); break; - case 4: + case CAM_UPDATE_MODE_4: update_camera_mode_4(cam); break; - case 5: + case CAM_UPDATE_MODE_5: update_camera_mode_5(cam); break; - case 6: + case CAM_UPDATE_MODE_6: default: update_camera_mode_6(cam); break; @@ -237,7 +237,7 @@ void create_cameras_a(void) { } camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 0; @@ -248,7 +248,7 @@ void create_cameras_a(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 160; @@ -259,7 +259,7 @@ void create_cameras_a(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 0; @@ -270,7 +270,7 @@ void create_cameras_a(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 160; @@ -291,7 +291,7 @@ void create_cameras_b(void) { } camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 0; @@ -302,7 +302,7 @@ void create_cameras_b(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 160; @@ -313,7 +313,7 @@ void create_cameras_b(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 0; @@ -324,7 +324,7 @@ void create_cameras_b(void) { initialize_next_camera(camDataPtr); camDataPtr->flags = CAMERA_FLAG_ENABLED; - camDataPtr->type = 0; + camDataPtr->updateMode = CAM_UPDATE_MODE_0; camDataPtr->viewWidth = 160; camDataPtr->viewHeight = 120; camDataPtr->viewStartX = 160; @@ -363,7 +363,7 @@ Camera* initialize_next_camera(CameraInitData* initData) { camera->trueRotation.x = 0.0f; camera->trueRotation.y = 0.0f; camera->trueRotation.z = 0.0f; - camera->updateMode = initData->type; + camera->updateMode = initData->updateMode; camera->unk_06 = TRUE; camera->nearClip = initData->nearClip; camera->farClip = initData->farClip; diff --git a/src/B0E0.c b/src/B0E0.c index 85b297edc1..5365fe53d4 100644 --- a/src/B0E0.c +++ b/src/B0E0.c @@ -1,6 +1,6 @@ #include "common.h" -extern CamPosSettings blendedCamSettings; +extern CamConfiguration gCurrentCamConfiguration; extern f32 D_800A08DC; extern f32 D_800A08E0; extern f32 D_800A08E4; @@ -81,6 +81,8 @@ void update_camera_mode_unused(Camera* camera) { camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ))); } +//TODO CODE SPLIT? + void update_camera_mode_5(Camera* camera) { PlayerStatus* playerStatus = &gPlayerStatus; f32 lookXDelta, lookYDelta, lookZDelta; @@ -179,6 +181,8 @@ void func_8003034C(Camera* camera) { } } +//TODO CODE SPLIT? + void func_80030450(Camera* camera) { } @@ -195,31 +199,28 @@ CameraControlSettings* test_ray_zone_aabb(f32 x, f32 y, f32 z) { return gZoneCollisionData.colliderList[zoneID].camSettings; } -void update_camera_from_controller(Camera*, CamPosSettings*, CameraControlSettings**, CamPosSettings*, CameraControlSettings**, f32, f32, f32, f32, f32, f32, s32, f32*, s32); -// WIP - needs a lot of work -#ifdef NON_EQUIVALENT +enum CameraSettingsPtrType { + CAMERA_SETTINGS_PTR_MINUS_2 = -2, + CAMERA_SETTINGS_PTR_MINUS_1 = -1, + CAMERA_SETTINGS_PTR_NULL = 0, +}; + void update_camera_from_controller( Camera* camera, - CamPosSettings* oldSettings, CameraControlSettings** prevController, - CamPosSettings* newSettings, CameraControlSettings** newController, + CamConfiguration* oldConfiguration, CameraControlSettings** prevController, + CamConfiguration* newConfiguration, CameraControlSettings** newController, f32 x1, f32 y1, f32 z1, f32 tX, f32 tY, f32 tZ, s32 changingMap, f32* interpAlpha, s32 changingZone) { CameraControlSettings* prevSettings; CameraControlSettings* controller; - CamPosSettings* s1; - f32 posAx; - f32 posAz; - f32 posAy; - f32 posBy; - f32 posBx; - f32 posBz; + CamConfiguration* configuration; + f32 boomLength; - f32 temp_f10; - f32 temp_f20; - f32 f24_inv; + f32 temp_f18; + f32 f24; f32 temp_f2; f32 temp_f2_2; f32 temp_f2_3; @@ -232,55 +233,47 @@ void update_camera_from_controller( f32 temp_f4_9; f32 temp_f6; f32 temp_f8; + f32 var_f10; + f32 var_f16; f32 dz; f32 dx; - f32 sp10; - f32 sp20; - f32 x, y, z; - f32 temp2; - f32 temp7; - - /* - x f24 - y f30 - z f26 - */ - - s1 = oldSettings; + + configuration = oldConfiguration; controller = *prevController; x = x1; y = y1; z = z1; - if ((s32)controller != -2 && (s32)controller != -1) { - if (controller == NULL) { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + + if ((s32)controller != CAMERA_SETTINGS_PTR_MINUS_2 && (s32)controller != CAMERA_SETTINGS_PTR_MINUS_1) { + if (controller == CAMERA_SETTINGS_PTR_NULL) { + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } else { switch (controller->type) { - case 0: + case CAM_CONTROL_FIXED_ORIENTATION: if (controller->flag != 0) { - f32 temp_f10 = -(controller->posA.z - controller->posB.z) + controller->posB.x; - f32 temp_f6 = (controller->posA.x - controller->posB.x) + controller->posB.z; - - f32 temp_f8 = controller->posB.x - temp_f10; - f32 temp_f12_2 = controller->posB.z - temp_f6; + f32 temp_f10 = -(controller->points.two.Az - controller->points.two.Bz) + controller->points.two.Bx; + f32 temp_f6 = (controller->points.two.Ax - controller->points.two.Bx) + controller->points.two.Bz; + + f32 temp_f8 = controller->points.two.Bx - temp_f10; + f32 temp_f12_2 = controller->points.two.Bz - temp_f6; f32 temp_f4 = (SQ(temp_f8) + SQ(temp_f12_2)); temp_f4 = (((x - temp_f10) * temp_f8) + ((z - temp_f6) * temp_f12_2)) / temp_f4; - - s1->pos.x = temp_f4 * temp_f8 + temp_f10; - s1->pos.y = y; - s1->pos.z = temp_f4 * temp_f12_2 + temp_f6; + + configuration->targetPos.x = temp_f4 * temp_f8 + temp_f10; + configuration->targetPos.y = y; + configuration->targetPos.z = temp_f4 * temp_f12_2 + temp_f6; } else { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } break; - case 6: + case CAM_CONTROL_CONSTAIN_BETWEEN_POINTS: { f32 ax, az, bx, bz, temp_f8_2, temp_f6_2; f32 f22_1, f4_2, sp10, sp20, f14_1, f12_1; @@ -288,38 +281,38 @@ void update_camera_from_controller( f32 var1, var2; f32 f4_1; f32 var_f16, var_f10, temp_f8_3, temp_f6_3; - ax = controller->posA.x; - az = controller->posA.z; - bx = controller->posB.x; - bz = controller->posB.z; + ax = controller->points.two.Ax; + az = controller->points.two.Az; + bx = controller->points.two.Bx; + bz = controller->points.two.Bz; temp_f8_2 = bx - ax; temp_f6_2 = bz - az; var1 = x - ax; var2 = z - az; - - temp_f20 = temp_f8_2 * temp_f8_2; - temp_f18 = temp_f6_2 * temp_f6_2; - + + temp_f20 = SQ(temp_f8_2); + temp_f18 = SQ(temp_f6_2); + f4_1 = temp_f20 + temp_f18; f4_1 = (var1 * temp_f8_2 + var2 * temp_f6_2) / f4_1; - + var_f16 = f4_1 * temp_f8_2 + ax; - var_f10 = f4_1 * temp_f6_2 + az; - - f22_1 = controller->posA.x; - f4_2 = controller->posA.z; - sp10 = controller->posB.x; - sp20 = controller->posB.z; + var_f10 = f4_1 * temp_f6_2 + az; + f22_1 = controller->points.two.Ax; + f4_2 = controller->points.two.Az; + sp10 = controller->points.two.Bx; + sp20 = controller->points.two.Bz; + ax = sp10 - f22_1; az = sp20 - f4_2; - + temp_f8_2 = var_f16 - f22_1; temp_f6_2 = var_f10 - f4_2; - + temp_f20 = x - var_f16; - temp_f18 = z - var_f10; - + temp_f18 = z - var_f10; + if (ax * temp_f8_2 + az * temp_f6_2 < 0.0f) { var_f16 = f22_1; var_f10 = f4_2; @@ -331,112 +324,116 @@ void update_camera_from_controller( var_f16 += temp_f20; var_f10 += temp_f18; } - s1->pos.x = var_f16; - s1->pos.y = y; - s1->pos.z = var_f10; + configuration->targetPos.x = var_f16; + configuration->targetPos.y = y; + configuration->targetPos.z = var_f10; } break; - case 1: + case CAM_CONTROL_LOOK_AT_POINT: if (controller->flag != 0) { - dx = x - controller->posA.x; - dz = z - controller->posA.z; - x = SQ(dx) + SQ(dz); - if (x != 0.0f) { - f24_inv = 1.0f / sqrtf(x); - temp_f2 = sqrtf(SQ(controller->posB.x - controller->posA.x) + SQ(controller->posB.z - controller->posA.z)); - temp_f2_2 = dx * temp_f2 * f24_inv; - temp_f4_4 = dz * temp_f2 * f24_inv; - s1->pos.x = controller->posA.x + temp_f2_2; - s1->pos.y = y; - s1->pos.z = controller->posA.z + temp_f4_4; + dx = x - controller->points.two.Ax; + dz = z - controller->points.two.Az; + f24 = SQ(dx) + SQ(dz); + if (f24 != 0.0f) { + f24 = 1.0f / sqrtf(f24); + temp_f2 = sqrtf(SQ(controller->points.two.Bx - controller->points.two.Ax) + SQ(controller->points.two.Bz - controller->points.two.Az)); + temp_f2_2 = dx * temp_f2 * f24; + temp_f4_4 = dz * temp_f2 * f24; + configuration->targetPos.x = controller->points.two.Ax + temp_f2_2; + configuration->targetPos.y = y; + configuration->targetPos.z = controller->points.two.Az + temp_f4_4; } } else { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } break; - case 2: - case 5: - *prevController = (CameraControlSettings* )-1; + case CAM_CONTROL_CONSTRAIN_TO_LINE: + case CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE: + *prevController = (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_1; break; - case 3: - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + case CAM_CONTROL_FOLLOW_PLAYER: + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; break; - case 4: + case CAM_CONTROL_FIXED_POS_AND_ORIENTATION: break; } } } - - s1 = newSettings; + + configuration = newConfiguration; controller = *newController; x = tX; y = tY; z = tZ; - + if (controller == NULL) { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } else { switch (controller->type) { - case 0: - s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + case CAM_CONTROL_FIXED_ORIENTATION: + dx = controller->points.two.Bx - controller->points.two.Ax; + dz = controller->points.two.Bz - controller->points.two.Az; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - s1->boomLength = boomLength; - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; - if (controller->flag != 0) { - f32 temp_f10 = -(controller->posA.z - controller->posB.z) + controller->posB.x; - f32 temp_f6 = (controller->posA.x - controller->posB.x) + controller->posB.z; + configuration->boomLength = boomLength; + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; + if (controller->flag) { + f32 ABx = controller->points.two.Ax - controller->points.two.Bx; + f32 ABz = controller->points.two.Az - controller->points.two.Bz; + f32 temp_f10 = -ABz + controller->points.two.Bx; + f32 temp_f6 = ABx + controller->points.two.Bz; + + f32 temp_f8 = controller->points.two.Bx - temp_f10; + f32 temp_f12_2 = controller->points.two.Bz - temp_f6; - f32 temp_f8 = controller->posB.x - temp_f10; - f32 temp_f12_2 = controller->posB.z - temp_f6; - - f32 temp_f4 = (SQ(temp_f8) + SQ(temp_f12_2)); + f32 temp_f4 = SQ(temp_f8) + SQ(temp_f12_2); temp_f4 = (((x - temp_f10) * temp_f8) + ((z - temp_f6) * temp_f12_2)) / temp_f4; - - s1->pos.x = temp_f4 * temp_f8 + temp_f10; - s1->pos.y = y; - s1->pos.z = temp_f4 * temp_f12_2 + temp_f6; + + configuration->targetPos.x = temp_f4 * temp_f8 + temp_f10; + configuration->targetPos.y = y; + configuration->targetPos.z = temp_f4 * temp_f12_2 + temp_f6; } else { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } - if (changingZone) { - if (*interpAlpha != 1.0f) { - prevSettings = *prevController; - if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && - prevSettings->type == controller->type && - prevSettings->boomLength == controller->boomLength && - prevSettings->boomPitch == controller->boomPitch && - prevSettings->viewPitch == controller->viewPitch && - prevSettings->flag != controller->flag) - { - *interpAlpha = 1.0f; - } + if (changingZone && *interpAlpha != 1.0f) { + prevSettings = *prevController; + if (((s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_2 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_1 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_NULL) + && prevSettings->type == controller->type + && prevSettings->boomLength == controller->boomLength + && prevSettings->boomPitch == controller->boomPitch + && prevSettings->viewPitch == controller->viewPitch + && prevSettings->flag != controller->flag + ) { + *interpAlpha = 1.0f; } } break; - case 6: - temp7 = controller->posB.z - controller->posA.z; - dx = controller->posB.x - controller->posA.x; - s1->boomYaw = atan2(0.0f, 0.0f, temp7, -dx); + case CAM_CONTROL_CONSTAIN_BETWEEN_POINTS: + dx = controller->points.two.Bx - controller->points.two.Ax; + dz = controller->points.two.Bz - controller->points.two.Az; + configuration->boomYaw = atan2(0.0f, 0.0f, dz, -dx); boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - s1->boomLength = boomLength; - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; + configuration->boomLength = boomLength; + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; { f32 ax, az, bx, bz, temp_f8_2, temp_f6_2; f32 f22_1, f4_2, sp10, sp20, f14_1, f12_1; @@ -444,38 +441,38 @@ void update_camera_from_controller( f32 var1, var2; f32 f4_1; f32 var_f16, var_f10, temp_f8_3, temp_f6_3; - ax = controller->posA.x; - az = controller->posA.z; - bx = controller->posB.x; - bz = controller->posB.z; + ax = controller->points.two.Ax; + az = controller->points.two.Az; + bx = controller->points.two.Bx; + bz = controller->points.two.Bz; temp_f8_2 = bx - ax; temp_f6_2 = bz - az; var1 = x - ax; var2 = z - az; - + temp_f20 = temp_f8_2 * temp_f8_2; temp_f18 = temp_f6_2 * temp_f6_2; - + f4_1 = temp_f20 + temp_f18; f4_1 = (var1 * temp_f8_2 + var2 * temp_f6_2) / f4_1; - + var_f16 = f4_1 * temp_f8_2 + ax; - var_f10 = f4_1 * temp_f6_2 + az; - - f22_1 = controller->posA.x; - f4_2 = controller->posA.z; - sp10 = controller->posB.x; - sp20 = controller->posB.z; + var_f10 = f4_1 * temp_f6_2 + az; + f22_1 = controller->points.two.Ax; + f4_2 = controller->points.two.Az; + sp10 = controller->points.two.Bx; + sp20 = controller->points.two.Bz; + ax = sp10 - f22_1; az = sp20 - f4_2; - + temp_f8_2 = var_f16 - f22_1; temp_f6_2 = var_f10 - f4_2; - + temp_f20 = x - var_f16; - temp_f18 = z - var_f10; - + temp_f18 = z - var_f10; + if (ax * temp_f8_2 + az * temp_f6_2 < 0.0f) { var_f16 = f22_1; var_f10 = f4_2; @@ -487,282 +484,266 @@ void update_camera_from_controller( var_f16 += temp_f20; var_f10 += temp_f18; } - s1->pos.x = var_f16; - s1->pos.y = y; - s1->pos.z = var_f10; + configuration->targetPos.x = var_f16; + configuration->targetPos.y = y; + configuration->targetPos.z = var_f10; } if (changingZone) { if (*interpAlpha != 1.0f) { prevSettings = *prevController; - if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && - (prevSettings->type == controller->type) && - (prevSettings->boomLength == controller->boomLength) && - (prevSettings->boomPitch == controller->boomPitch) && - (prevSettings->viewPitch == controller->viewPitch) && - (prevSettings->flag != controller->flag)) - { + if (((s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_2 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_1 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_NULL) + && (prevSettings->type == controller->type) + && (prevSettings->boomLength == controller->boomLength) + && (prevSettings->boomPitch == controller->boomPitch) + && (prevSettings->viewPitch == controller->viewPitch) + && (prevSettings->flag != controller->flag) + ) { *interpAlpha = 1.0f; } } } break; - case 1: - // Camera faces toward or away from point A with the player in the center of the frame + case CAM_CONTROL_LOOK_AT_POINT: if (controller->boomLength < 0.0f) { // negative boom length means look *away* from point - dx = x - controller->posA.x; - dz = z - controller->posA.z; - s1->boomLength = -controller->boomLength; + dx = x - controller->points.two.Ax; + dz = z - controller->points.two.Az; + configuration->boomLength = -controller->boomLength; } else { - dx = controller->posA.x - x; - dz = controller->posA.z - z; - s1->boomLength = controller->boomLength; + dx = controller->points.two.Ax - x; + dz = controller->points.two.Az - z; + configuration->boomLength = controller->boomLength; } - s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; if (controller->flag != 0) { // constrain to fixed radius - dx = x - controller->posA.x; - dz = z - controller->posA.z; - x = SQ(dx) + SQ(dz); - if (x != 0.0f) { - f24_inv = 1.0f / sqrtf(x); - temp_f2_3 = sqrtf(SQ(controller->posB.x - controller->posA.x) + SQ(controller->posB.z - controller->posA.z)); - temp_f2_4 = dx * temp_f2_3 * f24_inv; - temp_f4_9 = dz * temp_f2_3 * f24_inv; - s1->pos.x = controller->posA.x + temp_f2_4; - s1->pos.y = y; - s1->pos.z = controller->posA.z + temp_f4_9; + dx = x - controller->points.two.Ax; + dz = z - controller->points.two.Az; + f24 = SQ(dx) + SQ(dz); + if (f24 != 0.0f) { + f24 = 1.0f / sqrtf(f24); + temp_f2_3 = sqrtf(SQ(controller->points.two.Bx - controller->points.two.Ax) + SQ(controller->points.two.Bz - controller->points.two.Az)); + temp_f2_4 = dx * temp_f2_3 * f24; + temp_f4_9 = dz * temp_f2_3 * f24; + configuration->targetPos.x = controller->points.two.Ax + temp_f2_4; + configuration->targetPos.y = y; + configuration->targetPos.z = controller->points.two.Az + temp_f4_9; } } else { - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; } if (changingZone) { if (*interpAlpha != 1.0f) { prevSettings = *prevController; - if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && - (prevSettings->type == controller->type) && - (prevSettings->boomLength == controller->boomLength) && - (prevSettings->boomPitch == controller->boomPitch) && - (prevSettings->viewPitch == controller->viewPitch) && - (prevSettings->flag != controller->flag) && - (prevSettings->posA.x == controller->posA.x) && - (prevSettings->posA.z == controller->posA.z)) - { + if (((s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_2 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_MINUS_1 + && (s32)prevSettings != CAMERA_SETTINGS_PTR_NULL) + && (prevSettings->type == controller->type) + && (prevSettings->boomLength == controller->boomLength) + && (prevSettings->boomPitch == controller->boomPitch) + && (prevSettings->viewPitch == controller->viewPitch) + && (prevSettings->flag != controller->flag) + && (prevSettings->points.two.Ax == controller->points.two.Ax) + && (prevSettings->points.two.Az == controller->points.two.Az) + ) { *interpAlpha = 1.0f; } } break; } break; - case 2: + case CAM_CONTROL_CONSTRAIN_TO_LINE: if (controller->flag == 0) { - - // Camera is prevented from moving past a fixed line - f32 posAx; // 18 - f32 posBx; // 16 - f32 posCx; // 4 - f32 posCz; // 14 - f32 posAz; // 10 - f32 posBz; // 12 + f32 posAx; + f32 posBx; + f32 posCx; + f32 posCz; + f32 posAz; + f32 posBz; f32 Tx, Tz; - posAx = controller->posA.x; // 18 - posAz = controller->posA.z; // 10 - - posBx = controller->posB.x; // 16 - posBz = controller->posB.z; // 12 - - posCx = controller->posA.y; // 4 - posCz = controller->posB.y; // 14 + posAx = controller->points.three.Ax; + posAz = controller->points.three.Az; + + posBx = controller->points.three.Bx; + posBz = controller->points.three.Bz; + + posCx = controller->points.three.Cx; + posCz = controller->points.three.Cz; if (posAx == posBx && posAz == posBz) { posAx = posCx; posAz = posCz; } - + if ((posBx - posCx) == 0.0f) { - f32 BAx; - f32 BCx; - f32 BCz; - f32 ABz; - f32 Q; - f32 V; - f32 var1; - f32 var2; - - BAx = posBx - posAx; - BCx = posBx - posCx; - BCz = posBz - posCz; - ABz = posAz - posBz; - var1 = BCx * BAx; - var2 = (posBz - z) * BCx; - - Q = var1 / BCz - ABz; - V = (x - posBx) + var2 / BCz; + f32 BAx = posBx - posAx; + f32 BCx = posBx - posCx; + f32 BCz = posBz - posCz; + f32 ABz = posAz - posBz; + f32 Q = BCx * BAx / BCz - ABz; + f32 V = (x - posBx) + (posBz - z) * BCx / BCz; + Tx = ABz * V / Q + x; Tz = BAx * V / Q + z; } else { - f32 BAx; - f32 BCx; - f32 BCz; - f32 ABz; - f32 Q; - f32 V; - f32 var1; - f32 var2; - - BAx = posBx - posAx; - BCx = posBx - posCx; - ABz = posAz - posBz; - BCz = posBz - posCz; - var1 = ABz * BCz; - var2 = (posBx - x) * BCz; - - Q = var1 / BCx - BAx; - V = (z - posBz) + var2 / BCx; - Tx = ABz * V / Q; - Tx += x; // permuter idea (score 15 -> 10) + f32 BAx = posBx - posAx; + f32 ABz = posAz - posBz; + f32 BCx = posBx - posCx; + f32 BCz = posBz - posCz; + f32 Q = ABz * BCz / BCx - BAx; + f32 V = (z - posBz) + (posBx - x) * BCz / BCx; + + Tx = ABz * V / Q + x; Tz = BAx * V / Q + z; } - s1->pos.x = Tx; - s1->pos.y = y; - s1->pos.z = Tz; + configuration->targetPos.x = Tx; + configuration->targetPos.y = y; + configuration->targetPos.z = Tz; if (changingMap) { - s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + dx = controller->points.two.Bx - controller->points.two.Ax; + dz = controller->points.two.Bz - controller->points.two.Az; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - s1->boomLength = boomLength; - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; + configuration->boomLength = boomLength; + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; } } else { if (changingMap) { - s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + dx = controller->points.two.Bx - controller->points.two.Ax; + dz = controller->points.two.Bz - controller->points.two.Az; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - s1->boomLength = boomLength; - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; - s1->pos.x = controller->posB.x; - s1->pos.z = controller->posB.z; + configuration->boomLength = boomLength; + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; + configuration->targetPos.x = controller->points.two.Bx; + configuration->targetPos.z = controller->points.two.Bz; } else if (changingZone) { - s1->pos.x = oldSettings->pos.x; - s1->pos.z = oldSettings->pos.z; + configuration->targetPos.x = oldConfiguration->targetPos.x; + configuration->targetPos.z = oldConfiguration->targetPos.z; } - s1->pos.y = y; + configuration->targetPos.y = y; } - *prevController = (CameraControlSettings*) -1; + *prevController = (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_1; break; - case 5: + case CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE: if (controller->flag == 0) { - f32 var3 = x - controller->posA.y; - f32 var4 = z - controller->posB.y; - f32 var1 = controller->posB.x - controller->posA.y; - f32 var2 = controller->posB.z - controller->posB.y; + f32 var3 = x - controller->points.three.Cx; + f32 var4 = z - controller->points.three.Cz; + f32 var1 = controller->points.three.Bx - controller->points.three.Cx; + f32 var2 = controller->points.three.Bz - controller->points.three.Cz; temp_f4_13 = SQ(var1) + SQ(var2); temp_f4_13 = (var3 * var1 + var4 * var2) / temp_f4_13; - temp_f2_7 = temp_f4_13 * var1 + controller->posA.y; - temp_f4_14 = temp_f4_13 * var2 + controller->posB.y; - - s1->pos.x = temp_f2_7; - s1->pos.y = y; - s1->pos.z = temp_f4_14; - + temp_f2_7 = temp_f4_13 * var1 + controller->points.three.Cx; + temp_f4_14 = temp_f4_13 * var2 + controller->points.three.Cz; + + configuration->targetPos.x = temp_f2_7; + configuration->targetPos.y = y; + configuration->targetPos.z = temp_f4_14; + if (controller->boomLength < 0.0f) { - dx = temp_f2_7 - controller->posA.x; - dz = temp_f4_14 - controller->posA.z; - s1->boomLength = -controller->boomLength; + dx = temp_f2_7 - controller->points.three.Ax; + dz = temp_f4_14 - controller->points.three.Az; + configuration->boomLength = -controller->boomLength; } else { - dx = controller->posA.x - temp_f2_7; - dz = controller->posA.z - temp_f4_14; - s1->boomLength = controller->boomLength; + dx = controller->points.three.Ax - temp_f2_7; + dz = controller->points.three.Az - temp_f4_14; + configuration->boomLength = controller->boomLength; } - s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; } else { if (changingMap) { if (controller->boomLength < 0.0f) { - dx = controller->posB.x - controller->posA.x; - dz = controller->posB.z - controller->posA.z; - s1->boomLength = -controller->boomLength; + dx = controller->points.three.Bx - controller->points.three.Ax; + dz = controller->points.three.Bz - controller->points.three.Az; + configuration->boomLength = -controller->boomLength; } else { - dx = controller->posA.x - controller->posB.x; - dz = controller->posA.z - controller->posB.z; - s1->boomLength = controller->boomLength; + dx = controller->points.three.Ax - controller->points.three.Bx; + dz = controller->points.three.Az - controller->points.three.Bz; + configuration->boomLength = controller->boomLength; } - s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; - s1->pos.x = controller->posB.x; - s1->pos.z = controller->posB.z; + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; + configuration->targetPos.x = controller->points.three.Bx; + configuration->targetPos.z = controller->points.three.Bz; } else if (changingZone) { - s1->pos.x = controller->posB.x; - s1->pos.z = controller->posB.z; + configuration->targetPos.x = controller->points.three.Bx; + configuration->targetPos.z = controller->points.three.Bz; } - s1->pos.y = y; + configuration->targetPos.y = y; } - *prevController = (CameraControlSettings*) -1; + *prevController = (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_1; break; - case 3: - s1->pos.x = x; - s1->pos.y = y; - s1->pos.z = z; + case CAM_CONTROL_FOLLOW_PLAYER: + configuration->targetPos.x = x; + configuration->targetPos.y = y; + configuration->targetPos.z = z; break; - case 4: - s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + case CAM_CONTROL_FIXED_POS_AND_ORIENTATION: + do { + dx = controller->points.two.Bx - controller->points.two.Ax; + dz = controller->points.two.Bz - controller->points.two.Az; + + configuration->boomYaw = atan2(0.0f, 0.0f, dx, dz); + } while (0); boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - s1->boomLength = boomLength; - s1->boomPitch = controller->boomPitch; - s1->viewPitch = controller->viewPitch; - s1->pos.x = controller->posB.x; - s1->pos.y = controller->posB.y; - s1->pos.z = controller->posB.z; - *prevController = (CameraControlSettings*) -2; + configuration->boomLength = boomLength; + configuration->boomPitch = controller->boomPitch; + configuration->viewPitch = controller->viewPitch; + configuration->targetPos.x = controller->points.two.Bx; + configuration->targetPos.y = controller->points.two.By; + configuration->targetPos.z = controller->points.two.Bz; + *prevController = (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_2; break; } - if (changingZone && - ((controller->type == 5) || (oldSettings->boomYaw != newSettings->boomYaw)) && - (fabsf(oldSettings->boomYaw - newSettings->boomYaw) < 3.0f) && - (fabsf(oldSettings->boomLength - newSettings->boomLength) < 10.0f) && - (fabsf(oldSettings->boomPitch - newSettings->boomPitch) < 1.0f) && - (fabsf(oldSettings->viewPitch - newSettings->viewPitch) < 1.0f) && - (fabsf(oldSettings->pos.x - newSettings->pos.x) < 10.0f) && - (fabsf(oldSettings->pos.y - newSettings->pos.y) < 10.0f) && - (fabsf(oldSettings->pos.z - newSettings->pos.z) < 10.0f)) - { + if (changingZone + && ((controller->type == CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE) || (oldConfiguration->boomYaw != newConfiguration->boomYaw)) + && (fabsf(oldConfiguration->boomYaw - newConfiguration->boomYaw) < 3.0f) + && (fabsf(oldConfiguration->boomLength - newConfiguration->boomLength) < 10.0f) + && (fabsf(oldConfiguration->boomPitch - newConfiguration->boomPitch) < 1.0f) + && (fabsf(oldConfiguration->viewPitch - newConfiguration->viewPitch) < 1.0f) + && (fabsf(oldConfiguration->targetPos.x - newConfiguration->targetPos.x) < 10.0f) + && (fabsf(oldConfiguration->targetPos.y - newConfiguration->targetPos.y) < 10.0f) + && (fabsf(oldConfiguration->targetPos.z - newConfiguration->targetPos.z) < 10.0f) + ) { *interpAlpha = 1.0f; } } - if (*prevController == (CameraControlSettings* )-1) { + if (*prevController == (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_1) { if (changingZone) { - D_800A08E4 = oldSettings->pos.x - newSettings->pos.x; - D_800A08E8 = oldSettings->pos.y - newSettings->pos.y; - D_800A08EC = oldSettings->pos.z - newSettings->pos.z; + D_800A08E4 = oldConfiguration->targetPos.x - newConfiguration->targetPos.x; + D_800A08E8 = oldConfiguration->targetPos.y - newConfiguration->targetPos.y; + D_800A08EC = oldConfiguration->targetPos.z - newConfiguration->targetPos.z; } - oldSettings->pos.x = newSettings->pos.x + D_800A08E4; - oldSettings->pos.y = newSettings->pos.y + D_800A08E8; - oldSettings->pos.z = newSettings->pos.z + D_800A08EC; + oldConfiguration->targetPos.x = newConfiguration->targetPos.x + D_800A08E4; + oldConfiguration->targetPos.y = newConfiguration->targetPos.y + D_800A08E8; + oldConfiguration->targetPos.z = newConfiguration->targetPos.z + D_800A08EC; } } -#else -INCLUDE_ASM(s32, "B0E0", update_camera_from_controller); -#endif void update_camera_zone_interp(Camera* camera) { CameraControlSettings* currentController; @@ -774,14 +755,14 @@ void update_camera_zone_interp(Camera* camera) { f32 deltaX; f32 deltaY; f32 deltaZ; - f32 boomYawDiff; - f32 settingDiff; + f32 maxDelta; + f32 delta; f32 deltaSqSum; f32 panPhase; f32 temp_f20_2; f32 panRad; - f32 cosViewPitch; - f32 sinViewPitch; + f32 cosAngle; + f32 sinAngle; f32 temp_f24; f32 temp_f24_2; f32 temp_f26; @@ -799,8 +780,8 @@ void update_camera_zone_interp(Camera* camera) { f32 tZ; s32 changingZone; f32 dist; - f32 temp; - f32 temp2; + f32 tempX; + f32 tempZ; targetX = camera->targetPos.x; targetY = camera->targetPos.y; @@ -815,9 +796,9 @@ void update_camera_zone_interp(Camera* camera) { camera->savedTargetY = targetY; camera->unk_98 = 0; camera->unk_9C = 0; - camera->unk_4A4 = 0.0f; - camera->unk_4A8 = 0.0f; - camera->unk_4AC = 0.0f; + camera->prevTargetPos.x = 0.0f; + camera->prevTargetPos.y = 0.0f; + camera->prevTargetPos.z = 0.0f; camera->prevPrevFollowFlags = 0; camera->prevFollowFlags = 0; camera->panPhase = 0.0f; @@ -827,7 +808,7 @@ void update_camera_zone_interp(Camera* camera) { camera->unk_498 = 1.0f; camera->linearInterpScale = 1.0f; } - temp = targetX; + tempX = targetX; if (camera->moveFlags & CAMERA_MOVE_IGNORE_PLAYER_Y) { camera->unk_498 = 0.0f; } else if (camera->unk_494 != targetY) { @@ -857,9 +838,13 @@ void update_camera_zone_interp(Camera* camera) { camera->savedTargetY += (camera->unk_494 - camera->savedTargetY) * camera->unk_498; } - temp2 = targetZ; - if (camera->panActive || camera->unk_4A4 != targetX || camera->unk_4A8 != targetY || - camera->unk_4AC != targetZ || camera->isChangingMap) { + tempZ = targetZ; + if (camera->panActive + || camera->prevTargetPos.x != targetX + || camera->prevTargetPos.y != targetY + || camera->prevTargetPos.z != targetZ + || camera->isChangingMap + ) { if (camera->followPlayer) { cs = &camera->controlSettings; @@ -870,47 +855,52 @@ void update_camera_zone_interp(Camera* camera) { cond2 = FALSE; cs2 = cs; currentController = camera->currentController; - if (cs != NULL && currentController != NULL && cs->type == currentController->type && - cs->flag == currentController->flag && cs->boomLength == currentController->boomLength && - cs->boomPitch == currentController->boomPitch && - cs->viewPitch == currentController->viewPitch) { - + if (cs != NULL + && currentController != NULL + && cs->type == currentController->type + && cs->flag == currentController->flag + && cs->boomLength == currentController->boomLength + && cs->boomPitch == currentController->boomPitch + && cs->viewPitch == currentController->viewPitch + ) { switch (cs->type) { - case 0: - if (cs->posA.x == currentController->posA.x && - cs->posA.z == currentController->posA.z && - cs->posB.x == currentController->posB.x && - cs->posB.z == currentController->posB.z) { - + case CAM_CONTROL_FIXED_ORIENTATION: + if (cs->points.two.Ax == currentController->points.two.Ax + && cs->points.two.Az == currentController->points.two.Az + && cs->points.two.Bx == currentController->points.two.Bx + && cs->points.two.Bz == currentController->points.two.Bz + ) { cond2 = TRUE; } break; - case 1: + case CAM_CONTROL_LOOK_AT_POINT: switch (cs->flag){ case 0: - if (cs->posA.x == currentController->posA.x && - cs->posA.z == currentController->posA.z) { + if (cs->points.two.Ax == currentController->points.two.Ax + && cs->points.two.Az == currentController->points.two.Az + ) { cond2 = TRUE; } break; case 1: - if (cs->posA.x == currentController->posA.x && - cs->posA.z == currentController->posA.z && - cs->posB.x == currentController->posB.x && - cs->posB.z == currentController->posB.z) { + if (cs->points.two.Ax == currentController->points.two.Ax + && cs->points.two.Az == currentController->points.two.Az + && cs->points.two.Bx == currentController->points.two.Bx + && cs->points.two.Bz == currentController->points.two.Bz + ) { cond2 = TRUE; } break; } break; default: - if (cs2->posA.x == currentController->posA.x && - cs2->posA.z == currentController->posA.z && - cs2->posA.y == currentController->posA.y && - cs2->posB.y == currentController->posB.y && - cs2->posB.x == currentController->posB.x && - cs2->posB.z == currentController->posB.z) { - + if (cs2->points.two.Ax == currentController->points.two.Ax + && cs2->points.two.Az == currentController->points.two.Az + && cs2->points.two.Ay == currentController->points.two.Ay + && cs2->points.two.By == currentController->points.two.By + && cs2->points.two.Bx == currentController->points.two.Bx + && cs2->points.two.Bz == currentController->points.two.Bz + ) { cond2 = TRUE; } break; @@ -921,11 +911,10 @@ void update_camera_zone_interp(Camera* camera) { if (camera->interpAlpha == 1.0f) { camera->prevController = camera->currentController; } else { - camera->prevController = (CameraControlSettings*)-1; + camera->prevController = (CameraControlSettings*) CAMERA_SETTINGS_PTR_MINUS_1; } - - camera->oldCameraSettings = blendedCamSettings; changingZone = TRUE; + camera->prevConfiguration = gCurrentCamConfiguration; camera->currentController = cs; camera->interpAlpha = 0.0f; camera->linearInterp = 0.0f; @@ -941,109 +930,109 @@ void update_camera_zone_interp(Camera* camera) { camera->prevMovePos.z = camera->movePos.z; } } - - posX = temp; + if (camera->prevPrevFollowFlags) { posX = camera->prevPrevMovePos.x; posY = camera->prevPrevMovePos.y; posZ = camera->prevPrevMovePos.z; } else { + posX = tempX; posY = camera->savedTargetY; - posZ = temp2; + posZ = tempZ; } - tX = temp; if (camera->prevFollowFlags) { camera->savedTargetY = camera->prevMovePos.y; tX = camera->prevMovePos.x; tY = camera->savedTargetY; tZ = camera->prevMovePos.z; } else { + tX = tempX; tY = camera->savedTargetY; - tZ = temp2; + tZ = tempZ; } - update_camera_from_controller(camera, &camera->oldCameraSettings, &camera->prevController, - &camera->newCameraSettings, &camera->currentController, posX, posY, posZ, tX, tY, tZ, + update_camera_from_controller(camera, &camera->prevConfiguration, &camera->prevController, + &camera->goalConfiguration, &camera->currentController, posX, posY, posZ, tX, tY, tZ, camera->isChangingMap, &camera->interpAlpha, changingZone); if (camera->isChangingMap) { - camera->oldCameraSettings = camera->newCameraSettings; + camera->prevConfiguration = camera->goalConfiguration; camera->isChangingMap = FALSE; camera->interpAlpha = 1.0f; } - if (camera->oldCameraSettings.boomYaw - camera->newCameraSettings.boomYaw > 180.0f) { - camera->oldCameraSettings.boomYaw -= 360.0f; + if (camera->prevConfiguration.boomYaw - camera->goalConfiguration.boomYaw > 180.0f) { + camera->prevConfiguration.boomYaw -= 360.0f; } - if (camera->oldCameraSettings.boomYaw - camera->newCameraSettings.boomYaw < -180.0f) { - camera->oldCameraSettings.boomYaw += 360.0f; + if (camera->prevConfiguration.boomYaw - camera->goalConfiguration.boomYaw < -180.0f) { + camera->prevConfiguration.boomYaw += 360.0f; } - settingDiff = camera->oldCameraSettings.boomYaw - camera->newCameraSettings.boomYaw; - if (settingDiff < 0.0f) { - settingDiff = -settingDiff; + delta = camera->prevConfiguration.boomYaw - camera->goalConfiguration.boomYaw; + if (delta < 0.0f) { + delta = -delta; } - if (settingDiff > 180.0f) { - settingDiff = 360.0f - settingDiff; + if (delta > 180.0f) { + delta = 360.0f - delta; + } + maxDelta = delta; + + delta = camera->prevConfiguration.boomPitch - camera->goalConfiguration.boomPitch; + if (delta < 0.0f) { + delta = -delta; + } + if (delta > 180.0f) { + delta = 360.0f - delta; + } + if (maxDelta < delta) { + maxDelta = delta; } - boomYawDiff = settingDiff; - settingDiff = camera->oldCameraSettings.boomPitch - camera->newCameraSettings.boomPitch; - if (settingDiff < 0.0f) { - settingDiff = -settingDiff; + delta = camera->prevConfiguration.viewPitch - camera->goalConfiguration.viewPitch; + if (delta < 0.0f) { + delta = -delta; } - if (settingDiff > 180.0f) { - settingDiff = 360.0f - settingDiff; + if (delta > 180.0f) { + delta = 360.0f - delta; } - if (boomYawDiff < settingDiff) { - boomYawDiff = settingDiff; + if (maxDelta < delta) { + maxDelta = delta; } - settingDiff = camera->oldCameraSettings.viewPitch - camera->newCameraSettings.viewPitch; - if (settingDiff < 0.0f) { - settingDiff = -settingDiff; + delta = camera->prevConfiguration.boomLength - camera->goalConfiguration.boomLength; + if (delta < 0.0f) { + delta = -delta; } - if (settingDiff > 180.0f) { - settingDiff = 360.0f - settingDiff; - } - if (boomYawDiff < settingDiff) { - boomYawDiff = settingDiff; + if (maxDelta < delta) { + maxDelta = delta; } - settingDiff = camera->oldCameraSettings.boomLength - camera->newCameraSettings.boomLength; - if (settingDiff < 0.0f) { - settingDiff = -settingDiff; - } - if (boomYawDiff < settingDiff) { - boomYawDiff = settingDiff; + deltaX = camera->prevConfiguration.targetPos.x - camera->goalConfiguration.targetPos.x; + deltaY = camera->prevConfiguration.targetPos.y - camera->goalConfiguration.targetPos.y; + deltaZ = camera->prevConfiguration.targetPos.z - camera->goalConfiguration.targetPos.z; + delta = SQ(deltaX); + delta += SQ(deltaY); + delta += SQ(deltaZ); + + if (delta != 0.0f) { + delta = sqrtf(delta) * 0.2; } - deltaX = camera->oldCameraSettings.pos.x - camera->newCameraSettings.pos.x; - deltaY = camera->oldCameraSettings.pos.y - camera->newCameraSettings.pos.y; - deltaZ = camera->oldCameraSettings.pos.z - camera->newCameraSettings.pos.z; - settingDiff = SQ(deltaX); - settingDiff += SQ(deltaY); - settingDiff += SQ(deltaZ); - - if (settingDiff != 0.0f) { - settingDiff = sqrtf(settingDiff) * 0.2; + if (maxDelta < delta) { + maxDelta = delta; + delta++; + delta--; + } + if (maxDelta > 90.0f) { + maxDelta = 90.0f; + } + if (maxDelta < 20.0f) { + maxDelta = 20.0f; } - if (boomYawDiff < settingDiff) { - boomYawDiff = settingDiff; - settingDiff++; - settingDiff--; - } - if (boomYawDiff > 90.0f) { - boomYawDiff = 90.0f; - } - if (boomYawDiff < 20.0f) { - boomYawDiff = 20.0f; - } - - if (boomYawDiff != 0.0f) { - camera->linearInterp += (1.0f / boomYawDiff) * camera->linearInterpScale; + if (maxDelta != 0.0f) { + camera->linearInterp += (1.0f / maxDelta) * camera->linearInterpScale; if (camera->linearInterp > 1.0f) { camera->linearInterp = 1.0f; } @@ -1054,9 +1043,9 @@ void update_camera_zone_interp(Camera* camera) { panRad = panPhase * PI_D; temp_f24 = 2.0f / (cos_rad(panRad) + 1.0f); temp_f22_2 = cos_rad((camera->linearInterp * PI_D * (1.0f - panPhase)) + panRad); - cosViewPitch = (temp_f22_2 + (1.0 - cos_rad(panRad)) * 0.5) * temp_f24; - cosViewPitch = (2.0f - (cosViewPitch + 1.0f)) * 0.5001; - camera->interpAlpha = cosViewPitch; + cosAngle = (temp_f22_2 + (1.0 - cos_rad(panRad)) * 0.5) * temp_f24; + cosAngle = (2.0f - (cosAngle + 1.0f)) * 0.5001; + camera->interpAlpha = cosAngle; } if (camera->interpAlpha >= 1.0f) { @@ -1064,55 +1053,56 @@ void update_camera_zone_interp(Camera* camera) { camera->linearInterp = 0.0f; } + camera->prevTargetPos.x = targetX; + camera->prevTargetPos.y = targetY; + camera->prevTargetPos.z = targetZ; + interpAlpha = camera->interpAlpha; interpAlphaInv = 1.0f - interpAlpha; - camera->unk_4A4 = targetX; - camera->unk_4A8 = targetY; - camera->unk_4AC = targetZ; - blendedCamSettings.boomYaw = (camera->oldCameraSettings.boomYaw * interpAlphaInv) + (camera->newCameraSettings.boomYaw * interpAlpha); - blendedCamSettings.boomLength = (camera->oldCameraSettings.boomLength * interpAlphaInv) + (camera->newCameraSettings.boomLength * interpAlpha); - blendedCamSettings.boomPitch = (camera->oldCameraSettings.boomPitch * interpAlphaInv) + (camera->newCameraSettings.boomPitch * interpAlpha); - blendedCamSettings.viewPitch = (camera->oldCameraSettings.viewPitch * interpAlphaInv) + (camera->newCameraSettings.viewPitch * interpAlpha); - blendedCamSettings.pos.x = (camera->oldCameraSettings.pos.x * interpAlphaInv) + (camera->newCameraSettings.pos.x * interpAlpha); - blendedCamSettings.pos.y = (camera->oldCameraSettings.pos.y * interpAlphaInv) + (camera->newCameraSettings.pos.y * interpAlpha); - blendedCamSettings.pos.z = (camera->oldCameraSettings.pos.z * interpAlphaInv) + (camera->newCameraSettings.pos.z * interpAlpha); - blendedCamSettings.boomLength *= camera->zoomPercent; - blendedCamSettings.boomLength *= 0.01; + gCurrentCamConfiguration.boomYaw = (camera->prevConfiguration.boomYaw * interpAlphaInv) + (camera->goalConfiguration.boomYaw * interpAlpha); + gCurrentCamConfiguration.boomLength = (camera->prevConfiguration.boomLength * interpAlphaInv) + (camera->goalConfiguration.boomLength * interpAlpha); + gCurrentCamConfiguration.boomPitch = (camera->prevConfiguration.boomPitch * interpAlphaInv) + (camera->goalConfiguration.boomPitch * interpAlpha); + gCurrentCamConfiguration.viewPitch = (camera->prevConfiguration.viewPitch * interpAlphaInv) + (camera->goalConfiguration.viewPitch * interpAlpha); + gCurrentCamConfiguration.targetPos.x = (camera->prevConfiguration.targetPos.x * interpAlphaInv) + (camera->goalConfiguration.targetPos.x * interpAlpha); + gCurrentCamConfiguration.targetPos.y = (camera->prevConfiguration.targetPos.y * interpAlphaInv) + (camera->goalConfiguration.targetPos.y * interpAlpha); + gCurrentCamConfiguration.targetPos.z = (camera->prevConfiguration.targetPos.z * interpAlphaInv) + (camera->goalConfiguration.targetPos.z * interpAlpha); + gCurrentCamConfiguration.boomLength *= camera->zoomPercent; + gCurrentCamConfiguration.boomLength *= 0.01; func_80030450(camera); - temp_f20_2 = blendedCamSettings.boomYaw + D_800A08E0; + temp_f20_2 = gCurrentCamConfiguration.boomYaw + D_800A08E0; temp_f26 = sin_deg(temp_f20_2); temp_f24_2 = -cos_deg(temp_f20_2); - cosViewPitch = cos_deg(blendedCamSettings.boomPitch + D_800A08DC); - sinViewPitch = sin_deg(blendedCamSettings.boomPitch + D_800A08DC); + cosAngle = cos_deg(gCurrentCamConfiguration.boomPitch + D_800A08DC); + sinAngle = sin_deg(gCurrentCamConfiguration.boomPitch + D_800A08DC); if (!(camera->moveFlags & CAMERA_MOVE_FLAG_2)) { - camera->lookAt_eye.y = blendedCamSettings.pos.y + (blendedCamSettings.boomLength * sinViewPitch); + camera->lookAt_eye.y = gCurrentCamConfiguration.targetPos.y + (gCurrentCamConfiguration.boomLength * sinAngle); } - camera->lookAt_eye.x = blendedCamSettings.pos.x - (temp_f26 * blendedCamSettings.boomLength * cosViewPitch); - camera->lookAt_eye.z = blendedCamSettings.pos.z - (temp_f24_2 * blendedCamSettings.boomLength * cosViewPitch); - cosViewPitch = cos_deg(-blendedCamSettings.viewPitch); - sinViewPitch = sin_deg(-blendedCamSettings.viewPitch); + camera->lookAt_eye.x = gCurrentCamConfiguration.targetPos.x - (temp_f26 * gCurrentCamConfiguration.boomLength * cosAngle); + camera->lookAt_eye.z = gCurrentCamConfiguration.targetPos.z - (temp_f24_2 * gCurrentCamConfiguration.boomLength * cosAngle); + cosAngle = cos_deg(-gCurrentCamConfiguration.viewPitch); + sinAngle = sin_deg(-gCurrentCamConfiguration.viewPitch); - if (camera->lookAt_eye.x == blendedCamSettings.pos.x && camera->lookAt_eye.z == blendedCamSettings.pos.z) { + if (camera->lookAt_eye.x == gCurrentCamConfiguration.targetPos.x && camera->lookAt_eye.z == gCurrentCamConfiguration.targetPos.z) { dist = 0.0f; } else { - dist = dist2D(camera->lookAt_eye.x, camera->lookAt_eye.z, blendedCamSettings.pos.x, blendedCamSettings.pos.z); + dist = dist2D(camera->lookAt_eye.x, camera->lookAt_eye.z, gCurrentCamConfiguration.targetPos.x, gCurrentCamConfiguration.targetPos.z); } - temp_f8_2 = blendedCamSettings.pos.y - camera->lookAt_eye.y; + temp_f8_2 = gCurrentCamConfiguration.targetPos.y - camera->lookAt_eye.y; if (!(camera->moveFlags & CAMERA_MOVE_FLAG_2)) { - camera->lookAt_obj.y = camera->lookAt_eye.y + ((dist * sinViewPitch) + (temp_f8_2 * cosViewPitch)); + camera->lookAt_obj.y = camera->lookAt_eye.y + ((dist * sinAngle) + (temp_f8_2 * cosAngle)); } - temp_f4_4 = (dist * cosViewPitch) - (temp_f8_2 * sinViewPitch); + temp_f4_4 = (dist * cosAngle) - (temp_f8_2 * sinAngle); camera->lookAt_obj.x = camera->lookAt_eye.x + (temp_f26 * temp_f4_4); camera->lookAt_obj.z = camera->lookAt_eye.z + (temp_f24_2 * temp_f4_4); - camera->currentYaw = blendedCamSettings.boomYaw + D_800A08E0; + camera->currentYaw = gCurrentCamConfiguration.boomYaw + D_800A08E0; camera->trueRotation.x = camera->currentYaw; - camera->currentBoomLength = blendedCamSettings.boomLength; - camera->currentBlendedYawNegated = -blendedCamSettings.boomYaw; - camera->currentPitch = -blendedCamSettings.boomPitch - blendedCamSettings.viewPitch; + camera->currentBoomLength = gCurrentCamConfiguration.boomLength; + camera->currentBlendedYawNegated = -gCurrentCamConfiguration.boomYaw; + camera->currentPitch = -gCurrentCamConfiguration.boomPitch - gCurrentCamConfiguration.viewPitch; camera->lookAt_obj_target.x = camera->lookAt_obj.x; camera->lookAt_obj_target.y = camera->lookAt_obj.y; camera->lookAt_obj_target.z = camera->lookAt_obj.z; diff --git a/src/battle/area/mac/actor/lee.c b/src/battle/area/mac/actor/lee.c index 08aa35c85a..c235f007c9 100644 --- a/src/battle/area/mac/actor/lee.c +++ b/src/battle/area/mac/actor/lee.c @@ -1005,7 +1005,7 @@ EvtScript N(80220100) = { EVT_WAIT(12) EVT_CALL(SetCamEnabled, CAM_TATTLE, TRUE) EVT_CALL(SetCamFlag80, CAM_TATTLE, FALSE) - EVT_CALL(SetCamPerspective, CAM_TATTLE, 6, 25, 16, 1024) + EVT_CALL(SetCamPerspective, CAM_TATTLE, CAM_UPDATE_MODE_6, 25, 16, 1024) EVT_CALL(SetCamViewport, CAM_TATTLE, 37, 95, 138, 99) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1019,7 +1019,7 @@ EvtScript N(80220100) = { EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_282) EVT_CALL(SetCamFlag80, CAM_TATTLE, TRUE) EVT_WAIT(10) - EVT_CALL(ActorSpeak, MSG_EnemyTattle_Mario, ACTOR_SELF, 1, 0x0009000F, 0x00090001) + EVT_CALL(ActorSpeak, MSG_EnemyTattle_Mario, ACTOR_SELF, 1, ANIM_BattleGoombario_Talk, ANIM_BattleGoombario_Idle) EVT_CALL(func_80218E2C_4652BC, LVar5) EVT_WAIT(12) EVT_CALL(SetCamEnabled, CAM_TATTLE, FALSE) diff --git a/src/battle/common/actor/ghost_goombario.inc.c b/src/battle/common/actor/ghost_goombario.inc.c index 8767ac382e..b7e12af687 100644 --- a/src/battle/common/actor/ghost_goombario.inc.c +++ b/src/battle/common/actor/ghost_goombario.inc.c @@ -499,7 +499,7 @@ EvtScript N(goombario_tattle) = { EVT_CALL(func_802535B4, 0) EVT_CALL(SetCamEnabled, CAM_TATTLE, TRUE) EVT_CALL(SetCamFlag80, CAM_TATTLE, FALSE) - EVT_CALL(SetCamPerspective, CAM_TATTLE, 6, 25, 16, 1024) + EVT_CALL(SetCamPerspective, CAM_TATTLE, CAM_UPDATE_MODE_6, 25, 16, 1024) EVT_CALL(SetCamViewport, CAM_TATTLE, 37, 95, 138, 99) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) diff --git a/src/battle/partner/goombario.c b/src/battle/partner/goombario.c index 56428c7a31..6b436b8b21 100644 --- a/src/battle/partner/goombario.c +++ b/src/battle/partner/goombario.c @@ -1441,7 +1441,7 @@ EvtScript N(tattle) = { EVT_WAIT(12) EVT_CALL(SetCamEnabled, CAM_TATTLE, TRUE) EVT_CALL(SetCamFlag80, CAM_TATTLE, FALSE) - EVT_CALL(SetCamPerspective, CAM_TATTLE, 6, 25, 16, 1024) + EVT_CALL(SetCamPerspective, CAM_TATTLE, CAM_UPDATE_MODE_6, 25, 16, 1024) EVT_CALL(SetCamViewport, CAM_TATTLE, 137, 95, 138, 99) EVT_CALL(GetOwnerTarget, LVarA, LVarB) EVT_CALL(GetActorPos, LVarA, LVar0, LVar1, LVar2) diff --git a/src/battle_cam.c b/src/battle_cam.c index ccf105e13b..a31d0e0616 100644 --- a/src/battle_cam.c +++ b/src/battle_cam.c @@ -122,10 +122,10 @@ EvtScript CamPreset_A = { }; EvtScript EVS_OnBattleInit = { - EVT_CALL(SetCamPerspective, 1, 6, 25, 16, 1024) - EVT_CALL(SetCamViewport, 1, 12, 20, 296, 200) - EVT_CALL(SetCamBGColor, 1, 0, 0, 0) - EVT_CALL(SetCamEnabled, 1, 1) + EVT_CALL(SetCamPerspective, CAM_BATTLE, CAM_UPDATE_MODE_6, 25, 16, 1024) + EVT_CALL(SetCamViewport, CAM_BATTLE, 12, 20, 296, 200) + EVT_CALL(SetCamBGColor, CAM_BATTLE, 0, 0, 0) + EVT_CALL(SetCamEnabled, CAM_BATTLE, TRUE) EVT_WAIT(1) EVT_CALL(InitVirtualEntityList) EVT_CALL(InitAnimatedModels) diff --git a/src/camera.c b/src/camera.c index a6fcf911d5..9636841e4c 100644 --- a/src/camera.c +++ b/src/camera.c @@ -218,7 +218,6 @@ s32 calculate_line_segment_intersection(f32 A1x, f32 A1z, f32 A2x, f32 A2z, f32 return TRUE; } - s32 func_800328A4(CameraControlSettings* camSettings, f32 x, f32 z) { f32 product1, product2; f32 delta, p1, p2, p3, p4; @@ -226,20 +225,20 @@ s32 func_800328A4(CameraControlSettings* camSettings, f32 x, f32 z) { if (camSettings == NULL) { return 0; } - if (camSettings->type != CAMERA_SETTINGS_TYPE_6) { + if (camSettings->type != CAM_CONTROL_CONSTAIN_BETWEEN_POINTS) { return 0; } - delta = x - camSettings->posA.x; - p1 = (camSettings->posB.x - camSettings->posA.x) * delta; + delta = x - camSettings->points.two.Ax; + p1 = (camSettings->points.two.Bx - camSettings->points.two.Ax) * delta; - delta = z - camSettings->posA.z; - p2 = (camSettings->posB.z - camSettings->posA.z) * delta; + delta = z - camSettings->points.two.Az; + p2 = (camSettings->points.two.Bz - camSettings->points.two.Az) * delta; - delta = x - camSettings->posB.x; - p3 = (camSettings->posB.x - camSettings->posA.x) * delta; + delta = x - camSettings->points.two.Bx; + p3 = (camSettings->points.two.Bx - camSettings->points.two.Ax) * delta; - delta = z - camSettings->posB.z; - p4 = (camSettings->posB.z - camSettings->posA.z) * delta; + delta = z - camSettings->points.two.Bz; + p4 = (camSettings->points.two.Bz - camSettings->points.two.Az) * delta; product1 = p1 + p2; product2 = p3 + p4; @@ -260,7 +259,7 @@ void func_80032970(Camera* camera, f32 arg1) { s32 flags = camera->flags & CAMERA_FLAG_1000; s32 a2 = flags != 0; - if (camera->currentController != NULL && camera->currentController->type == CAMERA_SETTINGS_TYPE_4) { + if (camera->currentController != NULL && camera->currentController->type == CAM_CONTROL_FIXED_POS_AND_ORIENTATION) { a2 = TRUE; } @@ -377,7 +376,7 @@ void func_80032C64(Camera* camera) { settings3 = settings = test_ray_zone(camera->targetPos.x, camera->targetPos.y + 10.0f, camera->targetPos.z, NULL); if (settings != NULL) { - if (settings->type == CAMERA_SETTINGS_TYPE_2 || settings->type == CAMERA_SETTINGS_TYPE_5 || (s2 = func_800328A4(settings, camera->targetPos.x, camera->targetPos.z))) { + if (settings->type == CAM_CONTROL_CONSTRAIN_TO_LINE || settings->type == CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE || (s2 = func_800328A4(settings, camera->targetPos.x, camera->targetPos.z))) { if (camera->unk_530) { guPerspectiveF(camera->perspectiveMatrix, &camera->perspNorm, camera->vfov, (f32)camera->viewportW / (f32)camera->viewportH, camera->nearClip, camera->farClip, 1.0f); @@ -394,7 +393,7 @@ void func_80032C64(Camera* camera) { } else { CameraControlSettings* aabbForZoneBelow = camera->aabbForZoneBelow; - if (!(aabbForZoneBelow != NULL && (aabbForZoneBelow->type == CAMERA_SETTINGS_TYPE_2 || aabbForZoneBelow->type == CAMERA_SETTINGS_TYPE_5 || func_800328A4(settings, camera->unk_524, camera->unk_528) != 0))) { + if (!(aabbForZoneBelow != NULL && (aabbForZoneBelow->type == CAM_CONTROL_CONSTRAIN_TO_LINE || aabbForZoneBelow->type == CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE || func_800328A4(settings, camera->unk_524, camera->unk_528) != 0))) { if (aabbForZoneBelow != NULL && s2 != 0) { camera->unk_52C = s2; } else { @@ -427,22 +426,22 @@ void func_80032C64(Camera* camera) { newPosZ = camera->targetPos.z + leadAmount * sin_rad(rotationRad); settings = test_ray_zone(newPosX, camera->targetPos.y + 10.0f, newPosZ, &zone); if (settings != NULL) { - if (settings->type == CAMERA_SETTINGS_TYPE_2 || settings->type == CAMERA_SETTINGS_TYPE_5 || func_800328A4(camera->aabbForZoneBelow, newPosX, newPosZ) != 0) { + if (settings->type == CAM_CONTROL_CONSTRAIN_TO_LINE || settings->type == CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE || func_800328A4(camera->aabbForZoneBelow, newPosX, newPosZ) != 0) { cond = TRUE; dist = SQ(1000.0f); - if (camera->aabbForZoneBelow != NULL && camera->aabbForZoneBelow->type == CAMERA_SETTINGS_TYPE_6) { + if (camera->aabbForZoneBelow != NULL && camera->aabbForZoneBelow->type == CAM_CONTROL_CONSTAIN_BETWEEN_POINTS) { settings2 = camera->aabbForZoneBelow; cond = FALSE; - deltaPosX = settings2->posB.x - settings2->posA.x; - deltaPosZ = settings2->posB.z - settings2->posA.z; + deltaPosX = settings2->points.two.Bx - settings2->points.two.Ax; + deltaPosZ = settings2->points.two.Bz - settings2->points.two.Az; - if (calculate_line_segment_intersection(settings2->posA.x, settings2->posA.z, settings2->posA.x - deltaPosZ, settings2->posA.z + deltaPosX, + if (calculate_line_segment_intersection(settings2->points.two.Ax, settings2->points.two.Az, settings2->points.two.Ax - deltaPosZ, settings2->points.two.Az + deltaPosX, camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < SQ(1000.0f)) { dist = sp4C; } do { - if (calculate_line_segment_intersection(settings2->posB.x, settings2->posB.z, settings2->posB.x - deltaPosZ, settings2->posB.z + deltaPosX, + if (calculate_line_segment_intersection(settings2->points.two.Bx, settings2->points.two.Bz, settings2->points.two.Bx - deltaPosZ, settings2->points.two.Bz + deltaPosX, camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < dist) { dist = sp4C; } diff --git a/src/evt/cam_api.c b/src/evt/cam_api.c index 1ce8f25e0f..da989c4f55 100644 --- a/src/evt/cam_api.c +++ b/src/evt/cam_api.c @@ -50,11 +50,12 @@ ApiStatus SetCamPerspective(Evt* script, s32 isInitialCall) { s16 farClip = evt_get_variable(script, *args++); Camera* camera = &gCameras[id]; - camera->farClip = farClip; camera->updateMode = mode; camera->unk_06 = TRUE; camera->isChangingMap = TRUE; + camera->vfov = vfov; + camera->farClip = farClip; camera->nearClip = nearClip; return ApiStatus_DONE2; } @@ -79,7 +80,7 @@ ApiStatus func_802CA988(Evt* script, s32 isInitialCall) { Bytecode outVar4 = *args++; f32 dx, dy, dz; - gCameras[id].updateMode = 2; + gCameras[id].updateMode = CAM_UPDATE_MODE_2; gCameras[id].unk_06 = FALSE; gCameras[id].auxPitch = -round(gCameras[id].currentPitch); gCameras[id].auxBoomLength = -gCameras[id].currentBlendedYawNegated; @@ -457,8 +458,8 @@ ApiStatus SetCamPosA(Evt* script, s32 isInitialCall) { f32 x = evt_get_float_variable(script, *args++); f32 z = evt_get_float_variable(script, *args++); - camera->controlSettings.posA.x = x; - camera->controlSettings.posA.z = z; + camera->controlSettings.points.two.Ax = x; + camera->controlSettings.points.two.Az = z; return ApiStatus_DONE2; } @@ -469,8 +470,8 @@ ApiStatus SetCamPosB(Evt* script, s32 isInitialCall) { f32 x = evt_get_float_variable(script, *args++); f32 z = evt_get_float_variable(script, *args++); - camera->controlSettings.posB.x = x; - camera->controlSettings.posB.z = z; + camera->controlSettings.points.two.Bx = x; + camera->controlSettings.points.two.Bz = z; return ApiStatus_DONE2; } @@ -481,8 +482,8 @@ ApiStatus SetCamPosC(Evt* script, s32 isInitialCall) { f32 y1 = evt_get_float_variable(script, *args++); f32 y2 = evt_get_float_variable(script, *args++); - camera->controlSettings.posA.y = y1; - camera->controlSettings.posB.y = y2; + camera->controlSettings.points.two.Ay = y1; + camera->controlSettings.points.two.By = y2; return ApiStatus_DONE2; } @@ -552,8 +553,8 @@ ApiStatus GetCamPosA(Evt* script, s32 isInitialCall) { Bytecode outVar2 = *args++; Camera* camera = &gCameras[id]; - evt_set_float_variable(script, outVar1, camera->controlSettings.posA.x); - evt_set_float_variable(script, outVar2, camera->controlSettings.posA.z); + evt_set_float_variable(script, outVar1, camera->controlSettings.points.two.Ax); + evt_set_float_variable(script, outVar2, camera->controlSettings.points.two.Az); return ApiStatus_DONE2; } @@ -564,8 +565,8 @@ ApiStatus GetCamPosB(Evt* script, s32 isInitialCall) { Bytecode outVar2 = *args++; Camera* camera = &gCameras[id]; - evt_set_float_variable(script, outVar1, camera->controlSettings.posB.x); - evt_set_float_variable(script, outVar2, camera->controlSettings.posB.z); + evt_set_float_variable(script, outVar1, camera->controlSettings.points.two.Bx); + evt_set_float_variable(script, outVar2, camera->controlSettings.points.two.Bz); return ApiStatus_DONE2; } @@ -576,8 +577,8 @@ ApiStatus GetCamPosC(Evt* script, s32 isInitialCall) { Bytecode outVar2 = *args++; Camera* camera = &gCameras[id]; - evt_set_float_variable(script, outVar1, camera->controlSettings.posA.y); - evt_set_float_variable(script, outVar2, camera->controlSettings.posB.y); + evt_set_float_variable(script, outVar1, camera->controlSettings.points.two.Ay); + evt_set_float_variable(script, outVar2, camera->controlSettings.points.two.By); return ApiStatus_DONE2; } diff --git a/src/hud_element.c b/src/hud_element.c index 63cc0be36d..2f6f0f14ea 100644 --- a/src/hud_element.c +++ b/src/hud_element.c @@ -682,7 +682,7 @@ void init_hud_element_list(void) { void func_801413F8(void) { set_cam_viewport(CAM_3, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); - gCameras[CAM_3].updateMode = 2; + gCameras[CAM_3].updateMode = CAM_UPDATE_MODE_2; gCameras[CAM_3].unk_06 = TRUE; gCameras[CAM_3].lookAt_dist = 15551; gCameras[CAM_3].nearClip = CAM_NEAR_CLIP; diff --git a/src/state_file_select.c b/src/state_file_select.c index 55dfa24d53..1e218fd1af 100644 --- a/src/state_file_select.c +++ b/src/state_file_select.c @@ -58,7 +58,7 @@ void state_init_file_select(void) { hud_element_set_aux_cache(0, 0); hud_element_clear_cache(); load_model_textures(0, 0, 0); - gCameras[CAM_DEFAULT].updateMode = 6; + gCameras[CAM_DEFAULT].updateMode = CAM_UPDATE_MODE_6; gCameras[CAM_DEFAULT].unk_06 = 1; gCameras[CAM_DEFAULT].nearClip = 16; gCameras[CAM_DEFAULT].farClip = 4096; diff --git a/src/state_logos.c b/src/state_logos.c index 01c64d8acb..dd5489770b 100644 --- a/src/state_logos.c +++ b/src/state_logos.c @@ -68,7 +68,7 @@ void state_init_logos(void) { nuContRmbForceStop(); create_cameras_a(); - gCameras[CAM_DEFAULT].updateMode = 6; + gCameras[CAM_DEFAULT].updateMode = CAM_UPDATE_MODE_6; gCameras[CAM_DEFAULT].unk_06 = TRUE; gCameras[CAM_DEFAULT].nearClip = 16; gCameras[CAM_DEFAULT].farClip = 4096; diff --git a/src/state_title_screen.c b/src/state_title_screen.c index a9185809ec..d0b3526c75 100644 --- a/src/state_title_screen.c +++ b/src/state_title_screen.c @@ -114,7 +114,7 @@ void state_init_title_screen(void) { #endif create_cameras_a(); - gCameras[CAM_DEFAULT].updateMode = 6; + gCameras[CAM_DEFAULT].updateMode = CAM_UPDATE_MODE_6; gCameras[CAM_DEFAULT].unk_06 = TRUE; gCameras[CAM_DEFAULT].nearClip = CAM_NEAR_CLIP; gCameras[CAM_DEFAULT].farClip = CAM_FAR_CLIP; diff --git a/src/world/area_end/end_00/end_00_1_main.c b/src/world/area_end/end_00/end_00_1_main.c index 545796f65d..b219bd6d62 100644 --- a/src/world/area_end/end_00/end_00_1_main.c +++ b/src/world/area_end/end_00/end_00_1_main.c @@ -1,7 +1,7 @@ #include "end_00.h" EvtScript N(EVS_Main) = { - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 35, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 35, 16, 4096) EVT_CALL(SetCamViewport, CAM_DEFAULT, 15, 28, 290, 128) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_end/end_01/end_01_1_main.c b/src/world/area_end/end_01/end_01_1_main.c index 4c71f7de77..5f50b21148 100644 --- a/src/world/area_end/end_01/end_01_1_main.c +++ b/src/world/area_end/end_01/end_01_1_main.c @@ -6,7 +6,7 @@ API_CALLABLE(N(WidenCameraFOV)) { } EvtScript N(EVS_Main) = { - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamViewport, CAM_DEFAULT, 15, 28, 290, 128) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_hos/hos_04/hos_04_6_intro.c b/src/world/area_hos/hos_04/hos_04_6_intro.c index da5ecb3e11..e547d0e1a8 100644 --- a/src/world/area_hos/hos_04/hos_04_6_intro.c +++ b/src/world/area_hos/hos_04/hos_04_6_intro.c @@ -15,21 +15,19 @@ Vec3f N(TwinkFlightPath)[] = { s32 N(Unused) = 0; CameraControlSettings N(CamSettings_PreHeist) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 700, .boomPitch = -0.9, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 500.0, -1.0, 0.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 500.0, -1.0, 0.0 }}, .viewPitch = -17.4, .flag = FALSE, }; CameraControlSettings N(CamSettings_PostHeist) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 665, .boomPitch = -0.9, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 500.0, -1.0, 0.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 500.0, -1.0, 0.0 }}, .viewPitch = -17.4, .flag = FALSE, }; diff --git a/src/world/area_hos/hos_04/hos_04_7_starship.c b/src/world/area_hos/hos_04/hos_04_7_starship.c index ca7f668407..ae123846f0 100644 --- a/src/world/area_hos/hos_04/hos_04_7_starship.c +++ b/src/world/area_hos/hos_04/hos_04_7_starship.c @@ -26,7 +26,7 @@ EvtScript N(EVS_Starship_FlyingAway) = { EVT_CALL(SetPlayerActionState, ACTION_STATE_LAND) EVT_CALL(DisablePartnerAI, 0) EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 45, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 45, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -280, 0, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, -280, 0, 0) EVT_CALL(SetCamType, CAM_DEFAULT, 0, FALSE) diff --git a/src/world/area_hos/hos_05/hos_05_4_npc.c b/src/world/area_hos/hos_05/hos_05_4_npc.c index b1cd08fa7d..66ce890273 100644 --- a/src/world/area_hos/hos_05/hos_05_4_npc.c +++ b/src/world/area_hos/hos_05/hos_05_4_npc.c @@ -278,7 +278,7 @@ EvtScript N(EVS_Scene_RecieveStarBeam) = { EVT_CALL(SetNpcAnimation, NPC_Klevar, ANIM_WorldKlevar_Back) EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o616, COLLIDER_FLAGS_UPPER_MASK) EVT_CALL(SetZoneEnabled, ZONE_o622, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.5)) diff --git a/src/world/area_hos/hos_05/hos_05_5_intro.c b/src/world/area_hos/hos_05/hos_05_5_intro.c index aa785792e8..9bae4a5645 100644 --- a/src/world/area_hos/hos_05/hos_05_5_intro.c +++ b/src/world/area_hos/hos_05/hos_05_5_intro.c @@ -53,171 +53,154 @@ s32 N(D_802495DC_A3381C) = 0; s32 N(D_802495E0_A33820) = 0; CameraControlSettings N(IntroCamSettings0) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 130.4, .boomPitch = 12.4, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, -500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, -500.0 }}, .viewPitch = -16.8, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings1) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 130.4, .boomPitch = 12.4, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { -433.0127, -1.0, -250.0 }, + .points = { .two = { 0.0, -1.0, 0.0, -433.0127, -1.0, -250.0 }}, .viewPitch = -16.8, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings2) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 400.0, .boomPitch = 2.7, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, -500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, -500.0 }}, .viewPitch = -7.4, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings3) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 274.4, .boomPitch = -9.3, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 114.3, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 114.3, -1.0, 500.0 }}, .viewPitch = 0.7, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings4) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 274.4, .boomPitch = -9.3, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 114.3, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 114.3, -1.0, 500.0 }}, .viewPitch = 0.7, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings5) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 243.3, .boomPitch = 16.0, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 56.1, -1.0, -1.1 }, + .points = { .two = { 0.0, -1.0, 0.0, 56.1, -1.0, -1.1 }}, .viewPitch = -3.0, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings6) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 192.5, .boomPitch = 12.4, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, 500.0 }}, .viewPitch = -10.7, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings7) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 467.0, .boomPitch = 21.0, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 71.3, -1.0, 154.3 }, + .points = { .two = { 0.0, -1.0, 0.0, 71.3, -1.0, 154.3 }}, .viewPitch = -3.0, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings8) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 121.6, .boomPitch = 0.0, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 24.4, -1.0, 154.3 }, + .points = { .two = { 0.0, -1.0, 0.0, 24.4, -1.0, 154.3 }}, .viewPitch = 0.0, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings9) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 474.7, .boomPitch = 0.0, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 24.4, -1.0, 154.3 }, + .points = { .two = { 0.0, -1.0, 0.0, 24.4, -1.0, 154.3 }}, .viewPitch = 0.0, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings10) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 225.7, .boomPitch = 9.7, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 6.9, -1.0, 168.8 }, + .points = { .two = { 0.0, -1.0, 0.0, 6.9, -1.0, 168.8 }}, .viewPitch = -3.0, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings11) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 130.0, .boomPitch = 9.8, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 40.0, -1.0, 168.8 }, + .points = { .two = { 0.0, -1.0, 0.0, 40.0, -1.0, 168.8 }}, .viewPitch = -9.3, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings12) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 270.0, .boomPitch = 9.8, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 40.0, -1.0, 168.8 }, + .points = { .two = { 0.0, -1.0, 0.0, 40.0, -1.0, 168.8 }}, .viewPitch = -9.3, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings13) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 246.1, .boomPitch = -1.3, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 500.0, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 500.0, -1.0, 500.0 }}, .viewPitch = 0.5, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings14) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 180.0, .boomPitch = -1.3, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, -500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, -500.0 }}, .viewPitch = 0.5, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings15) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 90.0, .boomPitch = 5.4, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, 500.0 }}, .viewPitch = -6.9, .flag = FALSE, }; CameraControlSettings N(IntroCamSettings16) = { - .type = CAMERA_SETTINGS_TYPE_0, + .type = CAM_CONTROL_FIXED_ORIENTATION, .boomLength = 445.8, .boomPitch = 5.4, - .posA = { 0.0, -1.0, 0.0 }, - .posB = { 0.0, -1.0, 500.0 }, + .points = { .two = { 0.0, -1.0, 0.0, 0.0, -1.0, 500.0 }}, .viewPitch = -6.9, .flag = FALSE, }; @@ -381,8 +364,8 @@ API_CALLABLE(N(InitializeStoryCamera)) { camera->controlSettings.boomLength = IntroCamStateA_BoomLength; camera->controlSettings.boomPitch = IntroCamStateA_BoomPitch; camera->controlSettings.viewPitch = IntroCamStateA_ViewPitch; - camera->controlSettings.posB.x = sin_deg(N(StoryCameraAngle)) * 500.0f; - camera->controlSettings.posB.z = cos_deg(N(StoryCameraAngle)) * -500.0f; + camera->controlSettings.points.two.Bx = sin_deg(N(StoryCameraAngle)) * 500.0f; + camera->controlSettings.points.two.Bz = cos_deg(N(StoryCameraAngle)) * -500.0f; camera->panActive = TRUE; return ApiStatus_DONE2; } @@ -412,8 +395,8 @@ API_CALLABLE(N(UnusedInitializeStoryCamera)) { camera->controlSettings.boomLength = IntroCamStateB_BoomLength; camera->controlSettings.boomPitch = IntroCamStateB_BoomPitch; camera->controlSettings.viewPitch = IntroCamStateB_ViewPitch; - camera->controlSettings.posB.x = sin_deg(N(StoryCameraAngle)) * 500.0f; - camera->controlSettings.posB.z = cos_deg(N(StoryCameraAngle)) * -500.0f; + camera->controlSettings.points.two.Bx = sin_deg(N(StoryCameraAngle)) * 500.0f; + camera->controlSettings.points.two.Bz = cos_deg(N(StoryCameraAngle)) * -500.0f; camera->panActive = TRUE; N(D_802498FC_A33B3C)++; if (N(StoryCameraAngle) == 0.0f) { @@ -861,8 +844,8 @@ API_CALLABLE(N(CamPanAcrossRoom)) { camera->panActive = TRUE; camera->movePos.x = N(PanAcrossRoomCamX); camera->movePos.z = N(PanAcrossRoomCamZ); - camera->controlSettings.posB.x = sin_deg(N(PanAcrossRoomAngle)) * 500.0f; - camera->controlSettings.posB.z = cos_deg(N(PanAcrossRoomAngle)) * 500.0f; + camera->controlSettings.points.two.Bx = sin_deg(N(PanAcrossRoomAngle)) * 500.0f; + camera->controlSettings.points.two.Bz = cos_deg(N(PanAcrossRoomAngle)) * 500.0f; N(PanAcrossRoomTime)++; if (N(PanAcrossRoomTime) == 170) { @@ -884,8 +867,8 @@ API_CALLABLE(N(CamMove_OrbitKammy)) { N(interp_value_with_easing)(INTRO_MATH_EASING_COS_IN_OUT, 50.0f, 35.0f, N(OrbitKammyTime), 30.0f, &N(OrbitKammyFov)); N(interp_value_with_easing)(INTRO_MATH_EASING_COS_IN_OUT, 246.1f, 180.0f, N(OrbitKammyTime), 30.0f, &N(OrbitKammyBoomLength)); N(interp_value_with_easing)(INTRO_MATH_EASING_COS_IN_OUT, 200.0f, 220.0f, N(OrbitKammyTime), 30.0f, &N(OrbitKammyCamY)); - camera->controlSettings.posB.x = sin_deg(N(OrbitKammyAngle)) * 500.0f; - camera->controlSettings.posB.z = cos_deg(N(OrbitKammyAngle)) * 500.0f; + camera->controlSettings.points.two.Bx = sin_deg(N(OrbitKammyAngle)) * 500.0f; + camera->controlSettings.points.two.Bz = cos_deg(N(OrbitKammyAngle)) * 500.0f; N(adjust_cam_vfov)(CAM_DEFAULT, N(OrbitKammyFov)); camera->panActive = TRUE; camera->controlSettings.boomLength = N(OrbitKammyBoomLength); diff --git a/src/world/area_iwa/iwa_11/iwa_11_2_main.c b/src/world/area_iwa/iwa_11/iwa_11_2_main.c index eb739fc655..cd3853b43d 100644 --- a/src/world/area_iwa/iwa_11/iwa_11_2_main.c +++ b/src/world/area_iwa/iwa_11/iwa_11_2_main.c @@ -28,7 +28,7 @@ EvtScript N(EVS_MonitorSceneSkip) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_MT_RUGGED) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 30, 16, 4096) // uses fov 25 instead of 30 + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 30, 16, 4096) // uses fov 25 instead of 30 EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_jan/jan_00/jan_00_1_main.c b/src/world/area_jan/jan_00/jan_00_1_main.c index 6a09833d10..fc18304bed 100644 --- a/src/world/area_jan/jan_00/jan_00_1_main.c +++ b/src/world/area_jan/jan_00/jan_00_1_main.c @@ -30,7 +30,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_JADE_JUNGLE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_kmr/kmr_21/kmr_21_1_main.c b/src/world/area_kmr/kmr_21/kmr_21_1_main.c index f6dbe8e49b..b330ea967a 100644 --- a/src/world/area_kmr/kmr_21/kmr_21_1_main.c +++ b/src/world/area_kmr/kmr_21/kmr_21_1_main.c @@ -139,7 +139,7 @@ EvtScript N(EVS_Main) = { EVT_CALL(SetNpcPos, NPC_PARTNER, NPC_DISPOSE_LOCATION) EVT_END_IF EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 208, 208, 208) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_kmr/kmr_22/kmr_22_1_main.c b/src/world/area_kmr/kmr_22/kmr_22_1_main.c index aa5249a67c..ac80cfcb28 100644 --- a/src/world/area_kmr/kmr_22/kmr_22_1_main.c +++ b/src/world/area_kmr/kmr_22/kmr_22_1_main.c @@ -143,7 +143,7 @@ EvtScript N(EVS_Main) = { EVT_CALL(SetNpcPos, NPC_PARTNER, NPC_DISPOSE_LOCATION) EVT_END_IF EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 208, 208, 208) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_kmr/kmr_24/kmr_24_1_main.c b/src/world/area_kmr/kmr_24/kmr_24_1_main.c index 4e018b01ba..aa5e327150 100644 --- a/src/world/area_kmr/kmr_24/kmr_24_1_main.c +++ b/src/world/area_kmr/kmr_24/kmr_24_1_main.c @@ -73,7 +73,7 @@ EvtScript N(EVS_Main) = { EVT_CALL(SetNpcPos, NPC_PARTNER, NPC_DISPOSE_LOCATION) EVT_END_IF EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 208, 208, 208) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_kpa/kpa_134/kpa_134_3_chains.c b/src/world/area_kpa/kpa_134/kpa_134_3_chains.c index 7e7f3cec4b..5f689c103d 100644 --- a/src/world/area_kpa/kpa_134/kpa_134_3_chains.c +++ b/src/world/area_kpa/kpa_134/kpa_134_3_chains.c @@ -167,7 +167,7 @@ EvtScript N(EVS_LowerWaterLevel0) = { EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_migi, COLLIDER_FLAGS_UPPER_MASK) EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deiliaw, COLLIDER_FLAGS_UPPER_MASK) EVT_WAIT(10) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(90.0)) EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(DisablePlayerPhysics, FALSE) @@ -271,7 +271,7 @@ EvtScript N(EVS_RaiseWaterLevel1) = { EVT_CALL(EnableModel, MODEL_o388, FALSE) EVT_END_THREAD EVT_WAIT(230) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(90.0)) EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_hidari, COLLIDER_FLAGS_UPPER_MASK) @@ -409,7 +409,7 @@ EvtScript N(EVS_LowerWaterLevel1) = { EVT_CALL(PlaySound, SOUND_22B | SOUND_ID_TRIGGER_CHANGE_SOUND) EVT_CALL(func_802D62E4, SOUND_22B) EVT_WAIT(10) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(90.0)) EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(DisablePlayerPhysics, FALSE) @@ -514,7 +514,7 @@ EvtScript N(EVS_RaiseWaterLevel2) = { EVT_CALL(EnableModel, MODEL_o388, FALSE) EVT_END_THREAD EVT_WAIT(230) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(90.0)) EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(DisablePlayerPhysics, FALSE) diff --git a/src/world/area_kpa/kpa_60/kpa_60_4_scenes.c b/src/world/area_kpa/kpa_60/kpa_60_4_scenes.c index 6e7258a768..d4fc9a1521 100644 --- a/src/world/area_kpa/kpa_60/kpa_60_4_scenes.c +++ b/src/world/area_kpa/kpa_60/kpa_60_4_scenes.c @@ -32,7 +32,7 @@ EvtScript N(EVS_Scene_Arrival) = { EVT_SET(MV_Starship_PosY, 0) EVT_SET(MV_Starship_PosZ, 0) EVT_EXEC(N(EVS_SetStarshipPosRot)) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 30, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 30, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -70, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, -70, 0) EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) @@ -82,7 +82,7 @@ EvtScript N(EVS_Scene_Departure) = { EVT_SET(MV_Starship_PosY, 160) EVT_SET(MV_Starship_PosZ, -970) EVT_EXEC(N(EVS_SetStarshipPosRot)) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 30, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 30, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -70, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, -70, 0) EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) diff --git a/src/world/area_kzn/kzn_17/kzn_17_1_main.c b/src/world/area_kzn/kzn_17/kzn_17_1_main.c index 8f12446645..adafe4d000 100644 --- a/src/world/area_kzn/kzn_17/kzn_17_1_main.c +++ b/src/world/area_kzn/kzn_17/kzn_17_1_main.c @@ -15,7 +15,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_MT_LAVALAVA) EVT_CALL(SetSpriteShading, SHADING_KZN_17) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) diff --git a/src/world/area_mac/mac_01/mac_01_2_main.c b/src/world/area_mac/mac_01/mac_01_2_main.c index 25b0dce106..bdd68c782d 100644 --- a/src/world/area_mac/mac_01/mac_01_2_main.c +++ b/src/world/area_mac/mac_01/mac_01_2_main.c @@ -113,7 +113,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_TOAD_TOWN) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 90, 4096) // note: unusually large near clip dist: 90 vs 16 + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 90, 4096) // note: unusually large near clip dist: 90 vs 16 EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_01/mim_01_2_main.c b/src/world/area_mim/mim_01/mim_01_2_main.c index 7630b22194..68da5f9e4a 100644 --- a/src/world/area_mim/mim_01/mim_01_2_main.c +++ b/src/world/area_mim/mim_01/mim_01_2_main.c @@ -21,7 +21,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_01) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_02/mim_02_2_main.c b/src/world/area_mim/mim_02/mim_02_2_main.c index 74e14e845c..5fdcf1cb41 100644 --- a/src/world/area_mim/mim_02/mim_02_2_main.c +++ b/src/world/area_mim/mim_02/mim_02_2_main.c @@ -19,7 +19,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_02) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_03/mim_03_2_main.c b/src/world/area_mim/mim_03/mim_03_2_main.c index 40bf744061..d477e5ef45 100644 --- a/src/world/area_mim/mim_03/mim_03_2_main.c +++ b/src/world/area_mim/mim_03/mim_03_2_main.c @@ -24,7 +24,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_03) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_04/mim_04_2_main.c b/src/world/area_mim/mim_04/mim_04_2_main.c index 1afe5486bd..9cce0156e4 100644 --- a/src/world/area_mim/mim_04/mim_04_2_main.c +++ b/src/world/area_mim/mim_04/mim_04_2_main.c @@ -21,7 +21,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_04) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_05/mim_05_2_main.c b/src/world/area_mim/mim_05/mim_05_2_main.c index 14fcbf3d67..1ecea13722 100644 --- a/src/world/area_mim/mim_05/mim_05_2_main.c +++ b/src/world/area_mim/mim_05/mim_05_2_main.c @@ -19,7 +19,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_05) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_06/mim_06_2_main.c b/src/world/area_mim/mim_06/mim_06_2_main.c index f8d1861d4d..048864a66d 100644 --- a/src/world/area_mim/mim_06/mim_06_2_main.c +++ b/src/world/area_mim/mim_06/mim_06_2_main.c @@ -21,7 +21,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_06) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_07/mim_07_2_main.c b/src/world/area_mim/mim_07/mim_07_2_main.c index 08337616d6..b5041d5921 100644 --- a/src/world/area_mim/mim_07/mim_07_2_main.c +++ b/src/world/area_mim/mim_07/mim_07_2_main.c @@ -19,7 +19,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_07) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_08/mim_08_2_main.c b/src/world/area_mim/mim_08/mim_08_2_main.c index 98e1f9e6ea..5afc45d32e 100644 --- a/src/world/area_mim/mim_08/mim_08_2_main.c +++ b/src/world/area_mim/mim_08/mim_08_2_main.c @@ -44,7 +44,7 @@ EvtScript N(D_802431F0_BB0B30) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_08) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_09/mim_09_2_main.c b/src/world/area_mim/mim_09/mim_09_2_main.c index bf466e91e1..4f2fcbbb22 100644 --- a/src/world/area_mim/mim_09/mim_09_2_main.c +++ b/src/world/area_mim/mim_09/mim_09_2_main.c @@ -24,7 +24,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_09) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) diff --git a/src/world/area_mim/mim_10/mim_10_4_npc.c b/src/world/area_mim/mim_10/mim_10_4_npc.c index 9451a8fbaa..edc8a90486 100644 --- a/src/world/area_mim/mim_10/mim_10_4_npc.c +++ b/src/world/area_mim/mim_10/mim_10_4_npc.c @@ -97,7 +97,7 @@ EvtScript N(EVS_Bootler_SpookPlayer) = { EvtScript N(EVS_Scene_BootlersInvitation) = { EVT_CALL(N(AwaitPlayerApproachForest)) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 650) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 650) EVT_CALL(N(InitializeLightingBright)) EVT_THREAD EVT_CALL(N(ReduceFogEndDist)) diff --git a/src/world/area_mim/mim_12/mim_12_3_main.c b/src/world/area_mim/mim_12/mim_12_3_main.c index 92a8d21780..d2ec281564 100644 --- a/src/world/area_mim/mim_12/mim_12_3_main.c +++ b/src/world/area_mim/mim_12/mim_12_3_main.c @@ -30,7 +30,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_FOREVER_FOREST) EVT_CALL(SetSpriteShading, SHADING_MIM_12) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 1024) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 1024) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) diff --git a/src/world/area_osr/osr_03/osr_03_3_intro.c b/src/world/area_osr/osr_03/osr_03_3_intro.c index 54916d2959..c196b51613 100644 --- a/src/world/area_osr/osr_03/osr_03_3_intro.c +++ b/src/world/area_osr/osr_03/osr_03_3_intro.c @@ -210,7 +210,7 @@ EvtScript N(MV_Scene_CastleAscending) = { EVT_CALL(EnableGroup, MODEL_kemuri, FALSE) EVT_CALL(EnableGroup, MODEL_obj, FALSE) EVT_CALL(EnableGroup, MODEL_g277, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 80, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 80, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetCamType, CAM_DEFAULT, 1, TRUE) EVT_CALL(SetPanTarget, CAM_DEFAULT, -150, 0, 0) @@ -249,7 +249,7 @@ EvtScript N(MV_Scene_PlayerTossedOut) = { EVT_CALL(EnableGroup, MODEL_jimen, FALSE) EVT_CALL(EnableGroup, MODEL_kemuri, FALSE) EVT_CALL(EnableGroup, MODEL_obj, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 80, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 80, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(-13.0), EVT_FLOAT(18.0)) @@ -298,7 +298,7 @@ EvtScript N(EVS_Scene_UnusedTossOut) = { EVT_CALL(EnableGroup, MODEL_jimen, FALSE) EVT_CALL(EnableGroup, MODEL_kemuri, FALSE) EVT_CALL(EnableGroup, MODEL_obj, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 6000) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 6000) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, -400, -1500, 0) EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(3500.0)) diff --git a/src/world/area_osr/osr_03/osr_03_4_starship.c b/src/world/area_osr/osr_03/osr_03_4_starship.c index 741106e220..ab9caa667f 100644 --- a/src/world/area_osr/osr_03/osr_03_4_starship.c +++ b/src/world/area_osr/osr_03/osr_03_4_starship.c @@ -45,7 +45,7 @@ EvtScript N(EVS_Scene_Starship) = { EVT_SET(MV_CastleLiftDist, 0) EVT_EXEC(N(EVS_AnimateSwingingChains)) EVT_EXEC(N(EVS_AnimateSpinningRing)) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 80, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 80, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(-13.0), EVT_FLOAT(18.0)) diff --git a/src/world/area_osr/osr_03/osr_03_5_interlude.c b/src/world/area_osr/osr_03/osr_03_5_interlude.c index f899a0f594..2c3e8ff40c 100644 --- a/src/world/area_osr/osr_03/osr_03_5_interlude.c +++ b/src/world/area_osr/osr_03/osr_03_5_interlude.c @@ -118,7 +118,7 @@ EvtScript N(EVS_Scene_BeginInterlude) = { EVT_CALL(EnableGroup, MODEL_jimen, FALSE) EVT_CALL(EnableGroup, MODEL_kemuri, FALSE) EVT_CALL(EnableGroup, MODEL_obj, FALSE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 80, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 80, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, -1, 0) EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(-13.0), EVT_FLOAT(18.0)) diff --git a/src/world/area_osr/osr_03/osr_03_6_ending.c b/src/world/area_osr/osr_03/osr_03_6_ending.c index b7d5e69f9d..f7ad81504d 100644 --- a/src/world/area_osr/osr_03/osr_03_6_ending.c +++ b/src/world/area_osr/osr_03/osr_03_6_ending.c @@ -123,7 +123,7 @@ EvtScript N(EVS_Scene_CastleDestruction) = { EVT_EXEC(N(EVS_AnimateSpinningRing)) EVT_EXEC(N(EVS_UpdateCamShaking)) EVT_EXEC_GET_TID(N(EVS_PlayExplosionFX), LVar9) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 22, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 22, 16, 4096) EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamType, CAM_DEFAULT, 1, TRUE) EVT_CALL(SetPanTarget, CAM_DEFAULT, -60, 0, 0) @@ -150,7 +150,7 @@ EvtScript N(EVS_Scene_CastleDestruction) = { EVT_CALL(UpdateLerp) EVT_SETF(LVar2, LVar0) EVT_DIVF(LVar2, 10) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, LVar2, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, LVar2, 16, 4096) EVT_WAIT(1) EVT_IF_EQ(LVar1, 0) EVT_BREAK_LOOP @@ -161,7 +161,7 @@ EvtScript N(EVS_Scene_CastleDestruction) = { EVT_CALL(UpdateLerp) EVT_SETF(LVar2, LVar0) EVT_DIVF(LVar2, 10) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, LVar2, 1, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, LVar2, 1, 4096) EVT_WAIT(1) EVT_IF_EQ(LVar1, 0) EVT_BREAK_LOOP diff --git a/src/world/area_pra/pra_02/pra_02_2_main.c b/src/world/area_pra/pra_02/pra_02_2_main.c index 1afdcb7e3b..10c16708ee 100644 --- a/src/world/area_pra/pra_02/pra_02_2_main.c +++ b/src/world/area_pra/pra_02/pra_02_2_main.c @@ -321,7 +321,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_03/pra_03_2_main.c b/src/world/area_pra/pra_03/pra_03_2_main.c index a9c0108f5c..adb08370f0 100644 --- a/src/world/area_pra/pra_03/pra_03_2_main.c +++ b/src/world/area_pra/pra_03/pra_03_2_main.c @@ -56,7 +56,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_04/pra_04_2_main.c b/src/world/area_pra/pra_04/pra_04_2_main.c index 2a9a00c305..a1b49a57fa 100644 --- a/src/world/area_pra/pra_04/pra_04_2_main.c +++ b/src/world/area_pra/pra_04/pra_04_2_main.c @@ -52,7 +52,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_05/pra_05_2_main.c b/src/world/area_pra/pra_05/pra_05_2_main.c index 766da64597..fb8a0d9c3f 100644 --- a/src/world/area_pra/pra_05/pra_05_2_main.c +++ b/src/world/area_pra/pra_05/pra_05_2_main.c @@ -41,7 +41,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_06/pra_06_2_main.c b/src/world/area_pra/pra_06/pra_06_2_main.c index 6f10c90538..2b459dff1a 100644 --- a/src/world/area_pra/pra_06/pra_06_2_main.c +++ b/src/world/area_pra/pra_06/pra_06_2_main.c @@ -48,7 +48,7 @@ EvtScript N(EVS_EnterDoors_0) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_09/pra_09_2_main.c b/src/world/area_pra/pra_09/pra_09_2_main.c index 94a9b8b409..4c13392fa3 100644 --- a/src/world/area_pra/pra_09/pra_09_2_main.c +++ b/src/world/area_pra/pra_09/pra_09_2_main.c @@ -70,7 +70,7 @@ EvtScript N(EVS_BlastWall) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_11/pra_11_2_main.c b/src/world/area_pra/pra_11/pra_11_2_main.c index 2dda6bc7bc..4a4e074645 100644 --- a/src/world/area_pra/pra_11/pra_11_2_main.c +++ b/src/world/area_pra/pra_11/pra_11_2_main.c @@ -21,7 +21,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_12/pra_12_2_main.c b/src/world/area_pra/pra_12/pra_12_2_main.c index 329f91a508..17e264e588 100644 --- a/src/world/area_pra/pra_12/pra_12_2_main.c +++ b/src/world/area_pra/pra_12/pra_12_2_main.c @@ -48,7 +48,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_13/pra_13_2_main.c b/src/world/area_pra/pra_13/pra_13_2_main.c index acc22b6888..baa0b77fc5 100644 --- a/src/world/area_pra/pra_13/pra_13_2_main.c +++ b/src/world/area_pra/pra_13/pra_13_2_main.c @@ -154,7 +154,7 @@ EvtScript N(EVS_BlastWall_Far) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_14/pra_14_2_main.c b/src/world/area_pra/pra_14/pra_14_2_main.c index 488f31d735..b43aa4a6bd 100644 --- a/src/world/area_pra/pra_14/pra_14_2_main.c +++ b/src/world/area_pra/pra_14/pra_14_2_main.c @@ -52,7 +52,7 @@ EvtScript N(EVS_BlastWallB) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_16/pra_16_2_main.c b/src/world/area_pra/pra_16/pra_16_2_main.c index 0b86fdb37d..d12c551dd2 100644 --- a/src/world/area_pra/pra_16/pra_16_2_main.c +++ b/src/world/area_pra/pra_16/pra_16_2_main.c @@ -162,7 +162,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_18/pra_18_2_main.c b/src/world/area_pra/pra_18/pra_18_2_main.c index d52f5e972d..56f5db22d4 100644 --- a/src/world/area_pra/pra_18/pra_18_2_main.c +++ b/src/world/area_pra/pra_18/pra_18_2_main.c @@ -112,7 +112,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_19/pra_19_2_main.c b/src/world/area_pra/pra_19/pra_19_2_main.c index d894a5de3e..75fabed6c8 100644 --- a/src/world/area_pra/pra_19/pra_19_2_main.c +++ b/src/world/area_pra/pra_19/pra_19_2_main.c @@ -52,7 +52,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_20/pra_20_2_main.c b/src/world/area_pra/pra_20/pra_20_2_main.c index adf8d56ea5..d0fa731b85 100644 --- a/src/world/area_pra/pra_20/pra_20_2_main.c +++ b/src/world/area_pra/pra_20/pra_20_2_main.c @@ -164,7 +164,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_21/pra_21_2_main.c b/src/world/area_pra/pra_21/pra_21_2_main.c index faefa98d8c..e409d14ca4 100644 --- a/src/world/area_pra/pra_21/pra_21_2_main.c +++ b/src/world/area_pra/pra_21/pra_21_2_main.c @@ -60,7 +60,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_22/pra_22_2_main.c b/src/world/area_pra/pra_22/pra_22_2_main.c index c3bf5321c2..6f98a17275 100644 --- a/src/world/area_pra/pra_22/pra_22_2_main.c +++ b/src/world/area_pra/pra_22/pra_22_2_main.c @@ -207,7 +207,7 @@ EvtScript N(EVS_PushStatue) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_27/pra_27_2_main.c b/src/world/area_pra/pra_27/pra_27_2_main.c index bfb5da81c7..3ce3aae061 100644 --- a/src/world/area_pra/pra_27/pra_27_2_main.c +++ b/src/world/area_pra/pra_27/pra_27_2_main.c @@ -47,7 +47,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_28/pra_28_2_main.c b/src/world/area_pra/pra_28/pra_28_2_main.c index 6ee379bfc2..3ff2dc3994 100644 --- a/src/world/area_pra/pra_28/pra_28_2_main.c +++ b/src/world/area_pra/pra_28/pra_28_2_main.c @@ -47,7 +47,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_29/pra_29_3_main.c b/src/world/area_pra/pra_29/pra_29_3_main.c index 10e973b0e9..464d49cbf4 100644 --- a/src/world/area_pra/pra_29/pra_29_3_main.c +++ b/src/world/area_pra/pra_29/pra_29_3_main.c @@ -153,7 +153,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_EXEC_WAIT(N(EVS_MakeEntities)) diff --git a/src/world/area_pra/pra_31/pra_31_3_main.c b/src/world/area_pra/pra_31/pra_31_3_main.c index 0525b65043..ced69cad46 100644 --- a/src/world/area_pra/pra_31/pra_31_3_main.c +++ b/src/world/area_pra/pra_31/pra_31_3_main.c @@ -82,7 +82,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_33/pra_33_2_main.c b/src/world/area_pra/pra_33/pra_33_2_main.c index 8a2474ff87..61af857387 100644 --- a/src/world/area_pra/pra_33/pra_33_2_main.c +++ b/src/world/area_pra/pra_33/pra_33_2_main.c @@ -96,7 +96,7 @@ EvtScript N(EVS_BlastWall) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_34/pra_34_2_main.c b/src/world/area_pra/pra_34/pra_34_2_main.c index 813b1bc0db..f882879200 100644 --- a/src/world/area_pra/pra_34/pra_34_2_main.c +++ b/src/world/area_pra/pra_34/pra_34_2_main.c @@ -198,7 +198,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_35/pra_35_2_main.c b/src/world/area_pra/pra_35/pra_35_2_main.c index 23286cd78c..afe07463ef 100644 --- a/src/world/area_pra/pra_35/pra_35_2_main.c +++ b/src/world/area_pra/pra_35/pra_35_2_main.c @@ -93,7 +93,7 @@ EvtScript N(D_802432B8_D90508) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_36/pra_36_2_main.c b/src/world/area_pra/pra_36/pra_36_2_main.c index 544a9f41fa..4afb8584d7 100644 --- a/src/world/area_pra/pra_36/pra_36_2_main.c +++ b/src/world/area_pra/pra_36/pra_36_2_main.c @@ -75,7 +75,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_37/pra_37_2_main.c b/src/world/area_pra/pra_37/pra_37_2_main.c index e03ba71021..f407526688 100644 --- a/src/world/area_pra/pra_37/pra_37_2_main.c +++ b/src/world/area_pra/pra_37/pra_37_2_main.c @@ -75,7 +75,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_38/pra_38_2_main.c b/src/world/area_pra/pra_38/pra_38_2_main.c index ed4d3aa6d0..9a209b845e 100644 --- a/src/world/area_pra/pra_38/pra_38_2_main.c +++ b/src/world/area_pra/pra_38/pra_38_2_main.c @@ -75,7 +75,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_39/pra_39_2_main.c b/src/world/area_pra/pra_39/pra_39_2_main.c index 316eb2078b..064ab71c24 100644 --- a/src/world/area_pra/pra_39/pra_39_2_main.c +++ b/src/world/area_pra/pra_39/pra_39_2_main.c @@ -75,7 +75,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_pra/pra_40/pra_40_2_main.c b/src/world/area_pra/pra_40/pra_40_2_main.c index 750639270d..c818dd8e63 100644 --- a/src/world/area_pra/pra_40/pra_40_2_main.c +++ b/src/world/area_pra/pra_40/pra_40_2_main.c @@ -39,7 +39,7 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_CRYSTAL_PALACE) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 24, 24, 40) EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) diff --git a/src/world/area_tst/tst_13/tst_13_1_main.c b/src/world/area_tst/tst_13/tst_13_1_main.c index 0a8eeed4e5..ca8557508a 100644 --- a/src/world/area_tst/tst_13/tst_13_1_main.c +++ b/src/world/area_tst/tst_13/tst_13_1_main.c @@ -315,7 +315,7 @@ s32 N(BetaPanelData)[] = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_TESTING) EVT_CALL(SetSpriteShading, SHADING_NONE) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs))) diff --git a/src/world/dead/area_kzn/kzn_17/kzn_17_1_main.c b/src/world/dead/area_kzn/kzn_17/kzn_17_1_main.c index 41a08381e5..2f610d3e85 100644 --- a/src/world/dead/area_kzn/kzn_17/kzn_17_1_main.c +++ b/src/world/dead/area_kzn/kzn_17/kzn_17_1_main.c @@ -15,7 +15,7 @@ EvtScript N(EVS_BindExitTriggers) = { EvtScript N(EVS_Main) = { EVT_SET(GB_WorldLocation, LOCATION_MT_LAVALAVA) EVT_CALL(SetSpriteShading, SHADING_KZN_17) - EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) + EVT_CALL(SetCamPerspective, CAM_DEFAULT, CAM_UPDATE_MODE_3, 25, 16, 4096) EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) diff --git a/ver/cn/asm/bss.s b/ver/cn/asm/bss.s index 12e5740570..6f801ae56e 100644 --- a/ver/cn/asm/bss.s +++ b/ver/cn/asm/bss.s @@ -268,7 +268,7 @@ dlabel GfxTaskMgrStack dlabel D_8009E6D0 .space 0x00000020 -dlabel blendedCamSettings +dlabel gCurrentCamConfiguration .space 0x0000001c dlabel D_800A08DC diff --git a/ver/cn/asm/nonmatchings/B0E0/update_camera_from_controller.s b/ver/cn/asm/nonmatchings/B0E0/update_camera_from_controller.s deleted file mode 100644 index dc5c496638..0000000000 --- a/ver/cn/asm/nonmatchings/B0E0/update_camera_from_controller.s +++ /dev/null @@ -1,1087 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -.section .rodata -.align 3 -glabel jtbl_IQUE_80096E80 -/* 72280 80096E80 8002FC60 */ .word .LIQUE_8002FC60 -/* 72284 80096E84 8002FE18 */ .word .LIQUE_8002FE18 -/* 72288 80096E88 8002FF18 */ .word .LIQUE_8002FF18 -/* 7228C 80096E8C 8002FF24 */ .word .LIQUE_8002FF24 -/* 72290 80096E90 8002FF30 */ .word .LIQUE_8002FF30 -/* 72294 80096E94 8002FF18 */ .word .LIQUE_8002FF18 -/* 72298 80096E98 8002FCF4 */ .word .LIQUE_8002FCF4 -/* 7229C 80096E9C 00000000 */ .word 0x00000000 - -.align 3 -glabel jtbl_IQUE_80096EA0 -/* 722A0 80096EA0 8002FF80 */ .word .LIQUE_8002FF80 -/* 722A4 80096EA4 800302AC */ .word .LIQUE_800302AC -/* 722A8 80096EA8 80030504 */ .word .LIQUE_80030504 -/* 722AC 80096EAC 800308C0 */ .word .LIQUE_800308C0 -/* 722B0 80096EB0 800308D0 */ .word .LIQUE_800308D0 -/* 722B4 80096EB4 8003071C */ .word .LIQUE_8003071C -/* 722B8 80096EB8 8003007C */ .word .LIQUE_8003007C -/* 722BC 80096EBC 00000000 */ .word 0x00000000 - - -.section .text -/* Generated by spimdisasm 1.11.1 */ - -glabel update_camera_from_controller -/* AFAC 8002FBAC 27BDFF80 */ addiu $sp, $sp, -0x80 -/* AFB0 8002FBB0 AFB20030 */ sw $s2, 0x30($sp) -/* AFB4 8002FBB4 00A0902D */ daddu $s2, $a1, $zero -/* AFB8 8002FBB8 AFB40038 */ sw $s4, 0x38($sp) -/* AFBC 8002FBBC 00C0A02D */ daddu $s4, $a2, $zero -/* AFC0 8002FBC0 AFB30034 */ sw $s3, 0x34($sp) -/* AFC4 8002FBC4 00E0982D */ daddu $s3, $a3, $zero -/* AFC8 8002FBC8 AFB1002C */ sw $s1, 0x2C($sp) -/* AFCC 8002FBCC AFBF0048 */ sw $ra, 0x48($sp) -/* AFD0 8002FBD0 AFB70044 */ sw $s7, 0x44($sp) -/* AFD4 8002FBD4 AFB60040 */ sw $s6, 0x40($sp) -/* AFD8 8002FBD8 AFB5003C */ sw $s5, 0x3C($sp) -/* AFDC 8002FBDC AFB00028 */ sw $s0, 0x28($sp) -/* AFE0 8002FBE0 F7BE0078 */ sdc1 $f30, 0x78($sp) -/* AFE4 8002FBE4 F7BC0070 */ sdc1 $f28, 0x70($sp) -/* AFE8 8002FBE8 F7BA0068 */ sdc1 $f26, 0x68($sp) -/* AFEC 8002FBEC F7B80060 */ sdc1 $f24, 0x60($sp) -/* AFF0 8002FBF0 F7B60058 */ sdc1 $f22, 0x58($sp) -/* AFF4 8002FBF4 F7B40050 */ sdc1 $f20, 0x50($sp) -/* AFF8 8002FBF8 8E900000 */ lw $s0, 0x0($s4) -/* AFFC 8002FBFC C7B80094 */ lwc1 $f24, 0x94($sp) -/* B000 8002FC00 C7BE0098 */ lwc1 $f30, 0x98($sp) -/* B004 8002FC04 C7BA009C */ lwc1 $f26, 0x9C($sp) -/* B008 8002FC08 8FB500AC */ lw $s5, 0xAC($sp) -/* B00C 8002FC0C 8FB600B0 */ lw $s6, 0xB0($sp) -/* B010 8002FC10 8FB700B4 */ lw $s7, 0xB4($sp) -/* B014 8002FC14 26020002 */ addiu $v0, $s0, 0x2 -/* B018 8002FC18 2C420002 */ sltiu $v0, $v0, 0x2 -/* B01C 8002FC1C 144000C4 */ bnez $v0, .LIQUE_8002FF30 -/* B020 8002FC20 0240882D */ daddu $s1, $s2, $zero -/* B024 8002FC24 16000005 */ bnez $s0, .LIQUE_8002FC3C -/* B028 8002FC28 00000000 */ nop -/* B02C 8002FC2C E6580010 */ swc1 $f24, 0x10($s2) -/* B030 8002FC30 E65E0014 */ swc1 $f30, 0x14($s2) -/* B034 8002FC34 0800BFCC */ j .LIQUE_8002FF30 -/* B038 8002FC38 E65A0018 */ swc1 $f26, 0x18($s2) -.LIQUE_8002FC3C: -/* B03C 8002FC3C 8E030000 */ lw $v1, 0x0($s0) -/* B040 8002FC40 2C620007 */ sltiu $v0, $v1, 0x7 -/* B044 8002FC44 104000BA */ beqz $v0, .LIQUE_8002FF30 -/* B048 8002FC48 00031080 */ sll $v0, $v1, 2 -/* B04C 8002FC4C 3C018009 */ lui $at, %hi(jtbl_IQUE_80096E80) -/* B050 8002FC50 00220821 */ addu $at, $at, $v0 -/* B054 8002FC54 8C226E80 */ lw $v0, %lo(jtbl_IQUE_80096E80)($at) -/* B058 8002FC58 00400008 */ jr $v0 -/* B05C 8002FC5C 00000000 */ nop -.LIQUE_8002FC60: -/* B060 8002FC60 8E020028 */ lw $v0, 0x28($s0) -/* B064 8002FC64 504000B0 */ beql $v0, $zero, .LIQUE_8002FF28 -/* B068 8002FC68 E6380010 */ swc1 $f24, 0x10($s1) -/* B06C 8002FC6C C60A0014 */ lwc1 $f10, 0x14($s0) -/* B070 8002FC70 C60C0020 */ lwc1 $f12, 0x20($s0) -/* B074 8002FC74 460C5281 */ sub.s $f10, $f10, $f12 -/* B078 8002FC78 C6000018 */ lwc1 $f0, 0x18($s0) -/* B07C 8002FC7C 46005287 */ neg.s $f10, $f10 -/* B080 8002FC80 46005280 */ add.s $f10, $f10, $f0 -/* B084 8002FC84 460A0201 */ sub.s $f8, $f0, $f10 -/* B088 8002FC88 46084102 */ mul.s $f4, $f8, $f8 -/* B08C 8002FC8C 00000000 */ nop -/* B090 8002FC90 C606000C */ lwc1 $f6, 0xC($s0) -/* B094 8002FC94 46003181 */ sub.s $f6, $f6, $f0 -/* B098 8002FC98 460C3180 */ add.s $f6, $f6, $f12 -/* B09C 8002FC9C 46066301 */ sub.s $f12, $f12, $f6 -/* B0A0 8002FCA0 460C6382 */ mul.s $f14, $f12, $f12 -/* B0A4 8002FCA4 00000000 */ nop -/* B0A8 8002FCA8 460AC081 */ sub.s $f2, $f24, $f10 -/* B0AC 8002FCAC 46081082 */ mul.s $f2, $f2, $f8 -/* B0B0 8002FCB0 00000000 */ nop -/* B0B4 8002FCB4 4606D001 */ sub.s $f0, $f26, $f6 -/* B0B8 8002FCB8 460C0002 */ mul.s $f0, $f0, $f12 -/* B0BC 8002FCBC 00000000 */ nop -/* B0C0 8002FCC0 460E2100 */ add.s $f4, $f4, $f14 -/* B0C4 8002FCC4 46001080 */ add.s $f2, $f2, $f0 -/* B0C8 8002FCC8 46041103 */ div.s $f4, $f2, $f4 -/* B0CC 8002FCCC 46082202 */ mul.s $f8, $f4, $f8 -/* B0D0 8002FCD0 00000000 */ nop -/* B0D4 8002FCD4 460C2102 */ mul.s $f4, $f4, $f12 -/* B0D8 8002FCD8 00000000 */ nop -/* B0DC 8002FCDC 460A4200 */ add.s $f8, $f8, $f10 -/* B0E0 8002FCE0 46062100 */ add.s $f4, $f4, $f6 -/* B0E4 8002FCE4 E63E0014 */ swc1 $f30, 0x14($s1) -/* B0E8 8002FCE8 E6280010 */ swc1 $f8, 0x10($s1) -/* B0EC 8002FCEC 0800BFCC */ j .LIQUE_8002FF30 -/* B0F0 8002FCF0 E6240018 */ swc1 $f4, 0x18($s1) -.LIQUE_8002FCF4: -/* B0F4 8002FCF4 C60E000C */ lwc1 $f14, 0xC($s0) -/* B0F8 8002FCF8 C61C0018 */ lwc1 $f28, 0x18($s0) -/* B0FC 8002FCFC 460EE201 */ sub.s $f8, $f28, $f14 -/* B100 8002FD00 46084502 */ mul.s $f20, $f8, $f8 -/* B104 8002FD04 00000000 */ nop -/* B108 8002FD08 460EC081 */ sub.s $f2, $f24, $f14 -/* B10C 8002FD0C 46081082 */ mul.s $f2, $f2, $f8 -/* B110 8002FD10 00000000 */ nop -/* B114 8002FD14 E7BC0010 */ swc1 $f28, 0x10($sp) -/* B118 8002FD18 C60C0014 */ lwc1 $f12, 0x14($s0) -/* B11C 8002FD1C C61C0020 */ lwc1 $f28, 0x20($s0) -/* B120 8002FD20 460CE181 */ sub.s $f6, $f28, $f12 -/* B124 8002FD24 46063482 */ mul.s $f18, $f6, $f6 -/* B128 8002FD28 00000000 */ nop -/* B12C 8002FD2C 460CD001 */ sub.s $f0, $f26, $f12 -/* B130 8002FD30 46060002 */ mul.s $f0, $f0, $f6 -/* B134 8002FD34 00000000 */ nop -/* B138 8002FD38 4612A100 */ add.s $f4, $f20, $f18 -/* B13C 8002FD3C 46001080 */ add.s $f2, $f2, $f0 -/* B140 8002FD40 46041103 */ div.s $f4, $f2, $f4 -/* B144 8002FD44 46082002 */ mul.s $f0, $f4, $f8 -/* B148 8002FD48 00000000 */ nop -/* B14C 8002FD4C 46062102 */ mul.s $f4, $f4, $f6 -/* B150 8002FD50 00000000 */ nop -/* B154 8002FD54 460E0400 */ add.s $f16, $f0, $f14 -/* B158 8002FD58 46007586 */ mov.s $f22, $f14 -/* B15C 8002FD5C 46004386 */ mov.s $f14, $f8 -/* B160 8002FD60 46168201 */ sub.s $f8, $f16, $f22 -/* B164 8002FD64 46087082 */ mul.s $f2, $f14, $f8 -/* B168 8002FD68 00000000 */ nop -/* B16C 8002FD6C 460C2280 */ add.s $f10, $f4, $f12 -/* B170 8002FD70 46006106 */ mov.s $f4, $f12 -/* B174 8002FD74 46003306 */ mov.s $f12, $f6 -/* B178 8002FD78 46045181 */ sub.s $f6, $f10, $f4 -/* B17C 8002FD7C 46066002 */ mul.s $f0, $f12, $f6 -/* B180 8002FD80 00000000 */ nop -/* B184 8002FD84 4610C501 */ sub.s $f20, $f24, $f16 -/* B188 8002FD88 460AD481 */ sub.s $f18, $f26, $f10 -/* B18C 8002FD8C 46001080 */ add.s $f2, $f2, $f0 -/* B190 8002FD90 44800000 */ mtc1 $zero, $f0 -/* B194 8002FD94 00000000 */ nop -/* B198 8002FD98 4600103C */ c.lt.s $f2, $f0 -/* B19C 8002FD9C 00000000 */ nop -/* B1A0 8002FDA0 45000004 */ bc1f .LIQUE_8002FDB4 -/* B1A4 8002FDA4 E7BC0020 */ swc1 $f28, 0x20($sp) -/* B1A8 8002FDA8 4600B406 */ mov.s $f16, $f22 -/* B1AC 8002FDAC 0800BF7D */ j .LIQUE_8002FDF4 -/* B1B0 8002FDB0 46002286 */ mov.s $f10, $f4 -.LIQUE_8002FDB4: -/* B1B4 8002FDB4 46084082 */ mul.s $f2, $f8, $f8 -/* B1B8 8002FDB8 00000000 */ nop -/* B1BC 8002FDBC 46063182 */ mul.s $f6, $f6, $f6 -/* B1C0 8002FDC0 00000000 */ nop -/* B1C4 8002FDC4 460E7002 */ mul.s $f0, $f14, $f14 -/* B1C8 8002FDC8 00000000 */ nop -/* B1CC 8002FDCC 460C6102 */ mul.s $f4, $f12, $f12 -/* B1D0 8002FDD0 00000000 */ nop -/* B1D4 8002FDD4 46061080 */ add.s $f2, $f2, $f6 -/* B1D8 8002FDD8 46040000 */ add.s $f0, $f0, $f4 -/* B1DC 8002FDDC 4602003C */ c.lt.s $f0, $f2 -/* B1E0 8002FDE0 00000000 */ nop -/* B1E4 8002FDE4 45000003 */ bc1f .LIQUE_8002FDF4 -/* B1E8 8002FDE8 00000000 */ nop -/* B1EC 8002FDEC C7B00010 */ lwc1 $f16, 0x10($sp) -/* B1F0 8002FDF0 C7AA0020 */ lwc1 $f10, 0x20($sp) -.LIQUE_8002FDF4: -/* B1F4 8002FDF4 8E020028 */ lw $v0, 0x28($s0) -/* B1F8 8002FDF8 54400004 */ bnel $v0, $zero, .LIQUE_8002FE0C -/* B1FC 8002FDFC E6300010 */ swc1 $f16, 0x10($s1) -/* B200 8002FE00 46148400 */ add.s $f16, $f16, $f20 -/* B204 8002FE04 46125280 */ add.s $f10, $f10, $f18 -/* B208 8002FE08 E6300010 */ swc1 $f16, 0x10($s1) -.LIQUE_8002FE0C: -/* B20C 8002FE0C E63E0014 */ swc1 $f30, 0x14($s1) -/* B210 8002FE10 0800BFCC */ j .LIQUE_8002FF30 -/* B214 8002FE14 E62A0018 */ swc1 $f10, 0x18($s1) -.LIQUE_8002FE18: -/* B218 8002FE18 8E020028 */ lw $v0, 0x28($s0) -/* B21C 8002FE1C 50400042 */ beql $v0, $zero, .LIQUE_8002FF28 -/* B220 8002FE20 E6380010 */ swc1 $f24, 0x10($s1) -/* B224 8002FE24 C600000C */ lwc1 $f0, 0xC($s0) -/* B228 8002FE28 4600C581 */ sub.s $f22, $f24, $f0 -/* B22C 8002FE2C 4616B082 */ mul.s $f2, $f22, $f22 -/* B230 8002FE30 00000000 */ nop -/* B234 8002FE34 C6000014 */ lwc1 $f0, 0x14($s0) -/* B238 8002FE38 4600D501 */ sub.s $f20, $f26, $f0 -/* B23C 8002FE3C 4614A002 */ mul.s $f0, $f20, $f20 -/* B240 8002FE40 00000000 */ nop -/* B244 8002FE44 46001600 */ add.s $f24, $f2, $f0 -/* B248 8002FE48 44800000 */ mtc1 $zero, $f0 -/* B24C 8002FE4C 00000000 */ nop -/* B250 8002FE50 4600C032 */ c.eq.s $f24, $f0 -/* B254 8002FE54 00000000 */ nop -/* B258 8002FE58 45010035 */ bc1t .LIQUE_8002FF30 -/* B25C 8002FE5C 00000000 */ nop -/* B260 8002FE60 4600C184 */ sqrt.s $f6, $f24 -/* B264 8002FE64 46063032 */ c.eq.s $f6, $f6 -/* B268 8002FE68 00000000 */ nop -/* B26C 8002FE6C 45010004 */ bc1t .LIQUE_8002FE80 -/* B270 8002FE70 00000000 */ nop -/* B274 8002FE74 0C0183A0 */ jal sqrtf -/* B278 8002FE78 4600C306 */ mov.s $f12, $f24 -/* B27C 8002FE7C 46000186 */ mov.s $f6, $f0 -.LIQUE_8002FE80: -/* B280 8002FE80 C6040018 */ lwc1 $f4, 0x18($s0) -/* B284 8002FE84 C600000C */ lwc1 $f0, 0xC($s0) -/* B288 8002FE88 46002101 */ sub.s $f4, $f4, $f0 -/* B28C 8002FE8C 46042102 */ mul.s $f4, $f4, $f4 -/* B290 8002FE90 00000000 */ nop -/* B294 8002FE94 C6020014 */ lwc1 $f2, 0x14($s0) -/* B298 8002FE98 C6000020 */ lwc1 $f0, 0x20($s0) -/* B29C 8002FE9C 46020001 */ sub.s $f0, $f0, $f2 -/* B2A0 8002FEA0 46000002 */ mul.s $f0, $f0, $f0 -/* B2A4 8002FEA4 00000000 */ nop -/* B2A8 8002FEA8 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* B2AC 8002FEAC 44811000 */ mtc1 $at, $f2 -/* B2B0 8002FEB0 46002300 */ add.s $f12, $f4, $f0 -/* B2B4 8002FEB4 46061603 */ div.s $f24, $f2, $f6 -/* B2B8 8002FEB8 46006084 */ sqrt.s $f2, $f12 -/* B2BC 8002FEBC 46021032 */ c.eq.s $f2, $f2 -/* B2C0 8002FEC0 00000000 */ nop -/* B2C4 8002FEC4 45010004 */ bc1t .LIQUE_8002FED8 -/* B2C8 8002FEC8 00000000 */ nop -/* B2CC 8002FECC 0C0183A0 */ jal sqrtf -/* B2D0 8002FED0 00000000 */ nop -/* B2D4 8002FED4 46000086 */ mov.s $f2, $f0 -.LIQUE_8002FED8: -/* B2D8 8002FED8 4602B002 */ mul.s $f0, $f22, $f2 -/* B2DC 8002FEDC 00000000 */ nop -/* B2E0 8002FEE0 4602A102 */ mul.s $f4, $f20, $f2 -/* B2E4 8002FEE4 00000000 */ nop -/* B2E8 8002FEE8 46180002 */ mul.s $f0, $f0, $f24 -/* B2EC 8002FEEC 00000000 */ nop -/* B2F0 8002FEF0 C602000C */ lwc1 $f2, 0xC($s0) -/* B2F4 8002FEF4 46001080 */ add.s $f2, $f2, $f0 -/* B2F8 8002FEF8 46182102 */ mul.s $f4, $f4, $f24 -/* B2FC 8002FEFC 00000000 */ nop -/* B300 8002FF00 E63E0014 */ swc1 $f30, 0x14($s1) -/* B304 8002FF04 E6220010 */ swc1 $f2, 0x10($s1) -/* B308 8002FF08 C6000014 */ lwc1 $f0, 0x14($s0) -/* B30C 8002FF0C 46040000 */ add.s $f0, $f0, $f4 -/* B310 8002FF10 0800BFCC */ j .LIQUE_8002FF30 -/* B314 8002FF14 E6200018 */ swc1 $f0, 0x18($s1) -.LIQUE_8002FF18: -/* B318 8002FF18 2402FFFF */ addiu $v0, $zero, -0x1 -/* B31C 8002FF1C 0800BFCC */ j .LIQUE_8002FF30 -/* B320 8002FF20 AE820000 */ sw $v0, 0x0($s4) -.LIQUE_8002FF24: -/* B324 8002FF24 E6380010 */ swc1 $f24, 0x10($s1) -.LIQUE_8002FF28: -/* B328 8002FF28 E63E0014 */ swc1 $f30, 0x14($s1) -/* B32C 8002FF2C E63A0018 */ swc1 $f26, 0x18($s1) -.LIQUE_8002FF30: -/* B330 8002FF30 8FA20090 */ lw $v0, 0x90($sp) -/* B334 8002FF34 C7B800A0 */ lwc1 $f24, 0xA0($sp) -/* B338 8002FF38 C7BE00A4 */ lwc1 $f30, 0xA4($sp) -/* B33C 8002FF3C 8C500000 */ lw $s0, 0x0($v0) -/* B340 8002FF40 C7BA00A8 */ lwc1 $f26, 0xA8($sp) -/* B344 8002FF44 16000005 */ bnez $s0, .LIQUE_8002FF5C -/* B348 8002FF48 0260882D */ daddu $s1, $s3, $zero -/* B34C 8002FF4C E6780010 */ swc1 $f24, 0x10($s3) -/* B350 8002FF50 E67E0014 */ swc1 $f30, 0x14($s3) -/* B354 8002FF54 0800C29C */ j .LIQUE_80030A70 -/* B358 8002FF58 E67A0018 */ swc1 $f26, 0x18($s3) -.LIQUE_8002FF5C: -/* B35C 8002FF5C 8E030000 */ lw $v1, 0x0($s0) -/* B360 8002FF60 2C620007 */ sltiu $v0, $v1, 0x7 -/* B364 8002FF64 10400279 */ beqz $v0, .LIQUE_8003094C -/* B368 8002FF68 00031080 */ sll $v0, $v1, 2 -/* B36C 8002FF6C 3C018009 */ lui $at, %hi(jtbl_IQUE_80096EA0) -/* B370 8002FF70 00220821 */ addu $at, $at, $v0 -/* B374 8002FF74 8C226EA0 */ lw $v0, %lo(jtbl_IQUE_80096EA0)($at) -/* B378 8002FF78 00400008 */ jr $v0 -/* B37C 8002FF7C 00000000 */ nop -.LIQUE_8002FF80: -/* B380 8002FF80 C6020018 */ lwc1 $f2, 0x18($s0) -/* B384 8002FF84 C600000C */ lwc1 $f0, 0xC($s0) -/* B388 8002FF88 46001081 */ sub.s $f2, $f2, $f0 -/* B38C 8002FF8C C6000014 */ lwc1 $f0, 0x14($s0) -/* B390 8002FF90 44061000 */ mfc1 $a2, $f2 -/* B394 8002FF94 C6020020 */ lwc1 $f2, 0x20($s0) -/* B398 8002FF98 4480A000 */ mtc1 $zero, $f20 -/* B39C 8002FF9C 46001081 */ sub.s $f2, $f2, $f0 -/* B3A0 8002FFA0 4600A306 */ mov.s $f12, $f20 -/* B3A4 8002FFA4 44071000 */ mfc1 $a3, $f2 -/* B3A8 8002FFA8 0C00A654 */ jal atan2 -/* B3AC 8002FFAC 4600A386 */ mov.s $f14, $f20 -/* B3B0 8002FFB0 E6200000 */ swc1 $f0, 0x0($s1) -/* B3B4 8002FFB4 C6000004 */ lwc1 $f0, 0x4($s0) -/* B3B8 8002FFB8 4614003C */ c.lt.s $f0, $f20 -/* B3BC 8002FFBC 00000000 */ nop -/* B3C0 8002FFC0 45030001 */ bc1tl .LIQUE_8002FFC8 -/* B3C4 8002FFC4 46000007 */ neg.s $f0, $f0 -.LIQUE_8002FFC8: -/* B3C8 8002FFC8 E6200004 */ swc1 $f0, 0x4($s1) -/* B3CC 8002FFCC C6000008 */ lwc1 $f0, 0x8($s0) -/* B3D0 8002FFD0 E6200008 */ swc1 $f0, 0x8($s1) -/* B3D4 8002FFD4 C6000024 */ lwc1 $f0, 0x24($s0) -/* B3D8 8002FFD8 E620000C */ swc1 $f0, 0xC($s1) -/* B3DC 8002FFDC 8E020028 */ lw $v0, 0x28($s0) -/* B3E0 8002FFE0 50400023 */ beql $v0, $zero, .LIQUE_80030070 -/* B3E4 8002FFE4 E6380010 */ swc1 $f24, 0x10($s1) -/* B3E8 8002FFE8 C60A0014 */ lwc1 $f10, 0x14($s0) -/* B3EC 8002FFEC C60C0020 */ lwc1 $f12, 0x20($s0) -/* B3F0 8002FFF0 460C5281 */ sub.s $f10, $f10, $f12 -/* B3F4 8002FFF4 C6000018 */ lwc1 $f0, 0x18($s0) -/* B3F8 8002FFF8 46005287 */ neg.s $f10, $f10 -/* B3FC 8002FFFC 46005280 */ add.s $f10, $f10, $f0 -/* B400 80030000 460A0201 */ sub.s $f8, $f0, $f10 -/* B404 80030004 46084102 */ mul.s $f4, $f8, $f8 -/* B408 80030008 00000000 */ nop -/* B40C 8003000C C606000C */ lwc1 $f6, 0xC($s0) -/* B410 80030010 46003181 */ sub.s $f6, $f6, $f0 -/* B414 80030014 460C3180 */ add.s $f6, $f6, $f12 -/* B418 80030018 46066301 */ sub.s $f12, $f12, $f6 -/* B41C 8003001C 460C6382 */ mul.s $f14, $f12, $f12 -/* B420 80030020 00000000 */ nop -/* B424 80030024 460AC081 */ sub.s $f2, $f24, $f10 -/* B428 80030028 46081082 */ mul.s $f2, $f2, $f8 -/* B42C 8003002C 00000000 */ nop -/* B430 80030030 4606D001 */ sub.s $f0, $f26, $f6 -/* B434 80030034 460C0002 */ mul.s $f0, $f0, $f12 -/* B438 80030038 00000000 */ nop -/* B43C 8003003C 460E2100 */ add.s $f4, $f4, $f14 -/* B440 80030040 46001080 */ add.s $f2, $f2, $f0 -/* B444 80030044 46041103 */ div.s $f4, $f2, $f4 -/* B448 80030048 46082202 */ mul.s $f8, $f4, $f8 -/* B44C 8003004C 00000000 */ nop -/* B450 80030050 460C2102 */ mul.s $f4, $f4, $f12 -/* B454 80030054 00000000 */ nop -/* B458 80030058 460A4200 */ add.s $f8, $f8, $f10 -/* B45C 8003005C 46062100 */ add.s $f4, $f4, $f6 -/* B460 80030060 E63E0014 */ swc1 $f30, 0x14($s1) -/* B464 80030064 E6280010 */ swc1 $f8, 0x10($s1) -/* B468 80030068 0800C080 */ j .LIQUE_80030200 -/* B46C 8003006C E6240018 */ swc1 $f4, 0x18($s1) -.LIQUE_80030070: -/* B470 80030070 E63E0014 */ swc1 $f30, 0x14($s1) -/* B474 80030074 0800C080 */ j .LIQUE_80030200 -/* B478 80030078 E63A0018 */ swc1 $f26, 0x18($s1) -.LIQUE_8003007C: -/* B47C 8003007C C6020018 */ lwc1 $f2, 0x18($s0) -/* B480 80030080 C600000C */ lwc1 $f0, 0xC($s0) -/* B484 80030084 46001581 */ sub.s $f22, $f2, $f0 -/* B488 80030088 C6020020 */ lwc1 $f2, 0x20($s0) -/* B48C 8003008C C6000014 */ lwc1 $f0, 0x14($s0) -/* B490 80030090 46001081 */ sub.s $f2, $f2, $f0 -/* B494 80030094 44806000 */ mtc1 $zero, $f12 -/* B498 80030098 4600B587 */ neg.s $f22, $f22 -/* B49C 8003009C 4407B000 */ mfc1 $a3, $f22 -/* B4A0 800300A0 44061000 */ mfc1 $a2, $f2 -/* B4A4 800300A4 0C00A654 */ jal atan2 -/* B4A8 800300A8 46006386 */ mov.s $f14, $f12 -/* B4AC 800300AC E6200000 */ swc1 $f0, 0x0($s1) -/* B4B0 800300B0 C6000004 */ lwc1 $f0, 0x4($s0) -/* B4B4 800300B4 4480E000 */ mtc1 $zero, $f28 -/* B4B8 800300B8 00000000 */ nop -/* B4BC 800300BC 461C003C */ c.lt.s $f0, $f28 -/* B4C0 800300C0 00000000 */ nop -/* B4C4 800300C4 45030001 */ bc1tl .LIQUE_800300CC -/* B4C8 800300C8 46000007 */ neg.s $f0, $f0 -.LIQUE_800300CC: -/* B4CC 800300CC E6200004 */ swc1 $f0, 0x4($s1) -/* B4D0 800300D0 C6000008 */ lwc1 $f0, 0x8($s0) -/* B4D4 800300D4 E6200008 */ swc1 $f0, 0x8($s1) -/* B4D8 800300D8 C6000024 */ lwc1 $f0, 0x24($s0) -/* B4DC 800300DC E620000C */ swc1 $f0, 0xC($s1) -/* B4E0 800300E0 C60E000C */ lwc1 $f14, 0xC($s0) -/* B4E4 800300E4 C61C0018 */ lwc1 $f28, 0x18($s0) -/* B4E8 800300E8 460EE201 */ sub.s $f8, $f28, $f14 -/* B4EC 800300EC 46084502 */ mul.s $f20, $f8, $f8 -/* B4F0 800300F0 00000000 */ nop -/* B4F4 800300F4 460EC081 */ sub.s $f2, $f24, $f14 -/* B4F8 800300F8 46081082 */ mul.s $f2, $f2, $f8 -/* B4FC 800300FC 00000000 */ nop -/* B500 80030100 E7BC0014 */ swc1 $f28, 0x14($sp) -/* B504 80030104 C60C0014 */ lwc1 $f12, 0x14($s0) -/* B508 80030108 C61C0020 */ lwc1 $f28, 0x20($s0) -/* B50C 8003010C 460CE181 */ sub.s $f6, $f28, $f12 -/* B510 80030110 46063482 */ mul.s $f18, $f6, $f6 -/* B514 80030114 00000000 */ nop -/* B518 80030118 460CD001 */ sub.s $f0, $f26, $f12 -/* B51C 8003011C 46060002 */ mul.s $f0, $f0, $f6 -/* B520 80030120 00000000 */ nop -/* B524 80030124 4612A100 */ add.s $f4, $f20, $f18 -/* B528 80030128 46001080 */ add.s $f2, $f2, $f0 -/* B52C 8003012C 46041103 */ div.s $f4, $f2, $f4 -/* B530 80030130 46082002 */ mul.s $f0, $f4, $f8 -/* B534 80030134 00000000 */ nop -/* B538 80030138 46062102 */ mul.s $f4, $f4, $f6 -/* B53C 8003013C 00000000 */ nop -/* B540 80030140 460E0400 */ add.s $f16, $f0, $f14 -/* B544 80030144 46007586 */ mov.s $f22, $f14 -/* B548 80030148 46004386 */ mov.s $f14, $f8 -/* B54C 8003014C 46168201 */ sub.s $f8, $f16, $f22 -/* B550 80030150 46087002 */ mul.s $f0, $f14, $f8 -/* B554 80030154 00000000 */ nop -/* B558 80030158 460C2280 */ add.s $f10, $f4, $f12 -/* B55C 8003015C 46006106 */ mov.s $f4, $f12 -/* B560 80030160 46003306 */ mov.s $f12, $f6 -/* B564 80030164 46045181 */ sub.s $f6, $f10, $f4 -/* B568 80030168 46066082 */ mul.s $f2, $f12, $f6 -/* B56C 8003016C 00000000 */ nop -/* B570 80030170 4610C501 */ sub.s $f20, $f24, $f16 -/* B574 80030174 E7BC0018 */ swc1 $f28, 0x18($sp) -/* B578 80030178 46020000 */ add.s $f0, $f0, $f2 -/* B57C 8003017C 4480E000 */ mtc1 $zero, $f28 -/* B580 80030180 00000000 */ nop -/* B584 80030184 461C003C */ c.lt.s $f0, $f28 -/* B588 80030188 00000000 */ nop -/* B58C 8003018C 45000004 */ bc1f .LIQUE_800301A0 -/* B590 80030190 460AD481 */ sub.s $f18, $f26, $f10 -/* B594 80030194 4600B406 */ mov.s $f16, $f22 -/* B598 80030198 0800C078 */ j .LIQUE_800301E0 -/* B59C 8003019C 46002286 */ mov.s $f10, $f4 -.LIQUE_800301A0: -/* B5A0 800301A0 46084082 */ mul.s $f2, $f8, $f8 -/* B5A4 800301A4 00000000 */ nop -/* B5A8 800301A8 46063182 */ mul.s $f6, $f6, $f6 -/* B5AC 800301AC 00000000 */ nop -/* B5B0 800301B0 460E7002 */ mul.s $f0, $f14, $f14 -/* B5B4 800301B4 00000000 */ nop -/* B5B8 800301B8 460C6102 */ mul.s $f4, $f12, $f12 -/* B5BC 800301BC 00000000 */ nop -/* B5C0 800301C0 46061080 */ add.s $f2, $f2, $f6 -/* B5C4 800301C4 46040000 */ add.s $f0, $f0, $f4 -/* B5C8 800301C8 4602003C */ c.lt.s $f0, $f2 -/* B5CC 800301CC 00000000 */ nop -/* B5D0 800301D0 45000003 */ bc1f .LIQUE_800301E0 -/* B5D4 800301D4 00000000 */ nop -/* B5D8 800301D8 C7B00014 */ lwc1 $f16, 0x14($sp) -/* B5DC 800301DC C7AA0018 */ lwc1 $f10, 0x18($sp) -.LIQUE_800301E0: -/* B5E0 800301E0 8E020028 */ lw $v0, 0x28($s0) -/* B5E4 800301E4 54400004 */ bnel $v0, $zero, .LIQUE_800301F8 -/* B5E8 800301E8 E6300010 */ swc1 $f16, 0x10($s1) -/* B5EC 800301EC 46148400 */ add.s $f16, $f16, $f20 -/* B5F0 800301F0 46125280 */ add.s $f10, $f10, $f18 -/* B5F4 800301F4 E6300010 */ swc1 $f16, 0x10($s1) -.LIQUE_800301F8: -/* B5F8 800301F8 E63E0014 */ swc1 $f30, 0x14($s1) -/* B5FC 800301FC E62A0018 */ swc1 $f10, 0x18($s1) -.LIQUE_80030200: -/* B600 80030200 12E0021B */ beqz $s7, .LIQUE_80030A70 -/* B604 80030204 00000000 */ nop -/* B608 80030208 C6C00000 */ lwc1 $f0, 0x0($s6) -/* B60C 8003020C 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* B610 80030210 44812000 */ mtc1 $at, $f4 -/* B614 80030214 00000000 */ nop -/* B618 80030218 46040032 */ c.eq.s $f0, $f4 -/* B61C 8003021C 00000000 */ nop -/* B620 80030220 450101CA */ bc1t .LIQUE_8003094C -/* B624 80030224 00000000 */ nop -/* B628 80030228 8E840000 */ lw $a0, 0x0($s4) -/* B62C 8003022C 24820002 */ addiu $v0, $a0, 0x2 -/* B630 80030230 2C420003 */ sltiu $v0, $v0, 0x3 -/* B634 80030234 144001C5 */ bnez $v0, .LIQUE_8003094C -/* B638 80030238 00000000 */ nop -/* B63C 8003023C 8C830000 */ lw $v1, 0x0($a0) -/* B640 80030240 8E020000 */ lw $v0, 0x0($s0) -/* B644 80030244 146201C1 */ bne $v1, $v0, .LIQUE_8003094C -/* B648 80030248 00000000 */ nop -/* B64C 8003024C C4820004 */ lwc1 $f2, 0x4($a0) -/* B650 80030250 C6000004 */ lwc1 $f0, 0x4($s0) -/* B654 80030254 46001032 */ c.eq.s $f2, $f0 -/* B658 80030258 00000000 */ nop -/* B65C 8003025C 450001BB */ bc1f .LIQUE_8003094C -/* B660 80030260 00000000 */ nop -/* B664 80030264 C4820008 */ lwc1 $f2, 0x8($a0) -/* B668 80030268 C6000008 */ lwc1 $f0, 0x8($s0) -/* B66C 8003026C 46001032 */ c.eq.s $f2, $f0 -/* B670 80030270 00000000 */ nop -/* B674 80030274 450001B5 */ bc1f .LIQUE_8003094C -/* B678 80030278 00000000 */ nop -/* B67C 8003027C C4820024 */ lwc1 $f2, 0x24($a0) -/* B680 80030280 C6000024 */ lwc1 $f0, 0x24($s0) -/* B684 80030284 46001032 */ c.eq.s $f2, $f0 -/* B688 80030288 00000000 */ nop -/* B68C 8003028C 450001AF */ bc1f .LIQUE_8003094C -/* B690 80030290 00000000 */ nop -/* B694 80030294 8C830028 */ lw $v1, 0x28($a0) -/* B698 80030298 8E020028 */ lw $v0, 0x28($s0) -/* B69C 8003029C 546201AB */ bnel $v1, $v0, .LIQUE_8003094C -/* B6A0 800302A0 E6C40000 */ swc1 $f4, 0x0($s6) -/* B6A4 800302A4 0800C253 */ j .LIQUE_8003094C -/* B6A8 800302A8 00000000 */ nop -.LIQUE_800302AC: -/* B6AC 800302AC C6040004 */ lwc1 $f4, 0x4($s0) -/* B6B0 800302B0 44800000 */ mtc1 $zero, $f0 -/* B6B4 800302B4 00000000 */ nop -/* B6B8 800302B8 4600203C */ c.lt.s $f4, $f0 -/* B6BC 800302BC 00000000 */ nop -/* B6C0 800302C0 45000008 */ bc1f .LIQUE_800302E4 -/* B6C4 800302C4 00000000 */ nop -/* B6C8 800302C8 C600000C */ lwc1 $f0, 0xC($s0) -/* B6CC 800302CC 4600C581 */ sub.s $f22, $f24, $f0 -/* B6D0 800302D0 C6020014 */ lwc1 $f2, 0x14($s0) -/* B6D4 800302D4 46002007 */ neg.s $f0, $f4 -/* B6D8 800302D8 E6200004 */ swc1 $f0, 0x4($s1) -/* B6DC 800302DC 0800C0BE */ j .LIQUE_800302F8 -/* B6E0 800302E0 4602D501 */ sub.s $f20, $f26, $f2 -.LIQUE_800302E4: -/* B6E4 800302E4 C600000C */ lwc1 $f0, 0xC($s0) -/* B6E8 800302E8 46180581 */ sub.s $f22, $f0, $f24 -/* B6EC 800302EC C6000014 */ lwc1 $f0, 0x14($s0) -/* B6F0 800302F0 E6240004 */ swc1 $f4, 0x4($s1) -/* B6F4 800302F4 461A0501 */ sub.s $f20, $f0, $f26 -.LIQUE_800302F8: -/* B6F8 800302F8 4406B000 */ mfc1 $a2, $f22 -/* B6FC 800302FC 44806000 */ mtc1 $zero, $f12 -/* B700 80030300 4407A000 */ mfc1 $a3, $f20 -/* B704 80030304 0C00A654 */ jal atan2 -/* B708 80030308 46006386 */ mov.s $f14, $f12 -/* B70C 8003030C E6200000 */ swc1 $f0, 0x0($s1) -/* B710 80030310 C6000008 */ lwc1 $f0, 0x8($s0) -/* B714 80030314 E6200008 */ swc1 $f0, 0x8($s1) -/* B718 80030318 C6000024 */ lwc1 $f0, 0x24($s0) -/* B71C 8003031C E620000C */ swc1 $f0, 0xC($s1) -/* B720 80030320 8E020028 */ lw $v0, 0x28($s0) -/* B724 80030324 5040003E */ beql $v0, $zero, .LIQUE_80030420 -/* B728 80030328 E6380010 */ swc1 $f24, 0x10($s1) -/* B72C 8003032C C600000C */ lwc1 $f0, 0xC($s0) -/* B730 80030330 4600C581 */ sub.s $f22, $f24, $f0 -/* B734 80030334 4616B082 */ mul.s $f2, $f22, $f22 -/* B738 80030338 00000000 */ nop -/* B73C 8003033C C6000014 */ lwc1 $f0, 0x14($s0) -/* B740 80030340 4600D501 */ sub.s $f20, $f26, $f0 -/* B744 80030344 4614A002 */ mul.s $f0, $f20, $f20 -/* B748 80030348 00000000 */ nop -/* B74C 8003034C 46001600 */ add.s $f24, $f2, $f0 -/* B750 80030350 4480E000 */ mtc1 $zero, $f28 -/* B754 80030354 00000000 */ nop -/* B758 80030358 461CC032 */ c.eq.s $f24, $f28 -/* B75C 8003035C 00000000 */ nop -/* B760 80030360 45010031 */ bc1t .LIQUE_80030428 -/* B764 80030364 00000000 */ nop -/* B768 80030368 4600C184 */ sqrt.s $f6, $f24 -/* B76C 8003036C 46063032 */ c.eq.s $f6, $f6 -/* B770 80030370 00000000 */ nop -/* B774 80030374 45010004 */ bc1t .LIQUE_80030388 -/* B778 80030378 00000000 */ nop -/* B77C 8003037C 0C0183A0 */ jal sqrtf -/* B780 80030380 4600C306 */ mov.s $f12, $f24 -/* B784 80030384 46000186 */ mov.s $f6, $f0 -.LIQUE_80030388: -/* B788 80030388 C6040018 */ lwc1 $f4, 0x18($s0) -/* B78C 8003038C C600000C */ lwc1 $f0, 0xC($s0) -/* B790 80030390 46002101 */ sub.s $f4, $f4, $f0 -/* B794 80030394 46042102 */ mul.s $f4, $f4, $f4 -/* B798 80030398 00000000 */ nop -/* B79C 8003039C C6020014 */ lwc1 $f2, 0x14($s0) -/* B7A0 800303A0 C6000020 */ lwc1 $f0, 0x20($s0) -/* B7A4 800303A4 46020001 */ sub.s $f0, $f0, $f2 -/* B7A8 800303A8 46000002 */ mul.s $f0, $f0, $f0 -/* B7AC 800303AC 00000000 */ nop -/* B7B0 800303B0 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* B7B4 800303B4 44811000 */ mtc1 $at, $f2 -/* B7B8 800303B8 46002300 */ add.s $f12, $f4, $f0 -/* B7BC 800303BC 46061603 */ div.s $f24, $f2, $f6 -/* B7C0 800303C0 46006084 */ sqrt.s $f2, $f12 -/* B7C4 800303C4 46021032 */ c.eq.s $f2, $f2 -/* B7C8 800303C8 00000000 */ nop -/* B7CC 800303CC 45010004 */ bc1t .LIQUE_800303E0 -/* B7D0 800303D0 00000000 */ nop -/* B7D4 800303D4 0C0183A0 */ jal sqrtf -/* B7D8 800303D8 00000000 */ nop -/* B7DC 800303DC 46000086 */ mov.s $f2, $f0 -.LIQUE_800303E0: -/* B7E0 800303E0 4602B002 */ mul.s $f0, $f22, $f2 -/* B7E4 800303E4 00000000 */ nop -/* B7E8 800303E8 4602A102 */ mul.s $f4, $f20, $f2 -/* B7EC 800303EC 00000000 */ nop -/* B7F0 800303F0 46180002 */ mul.s $f0, $f0, $f24 -/* B7F4 800303F4 00000000 */ nop -/* B7F8 800303F8 C602000C */ lwc1 $f2, 0xC($s0) -/* B7FC 800303FC 46001080 */ add.s $f2, $f2, $f0 -/* B800 80030400 46182102 */ mul.s $f4, $f4, $f24 -/* B804 80030404 00000000 */ nop -/* B808 80030408 E63E0014 */ swc1 $f30, 0x14($s1) -/* B80C 8003040C E6220010 */ swc1 $f2, 0x10($s1) -/* B810 80030410 C6000014 */ lwc1 $f0, 0x14($s0) -/* B814 80030414 46040000 */ add.s $f0, $f0, $f4 -/* B818 80030418 0800C10A */ j .LIQUE_80030428 -/* B81C 8003041C E6200018 */ swc1 $f0, 0x18($s1) -.LIQUE_80030420: -/* B820 80030420 E63E0014 */ swc1 $f30, 0x14($s1) -/* B824 80030424 E63A0018 */ swc1 $f26, 0x18($s1) -.LIQUE_80030428: -/* B828 80030428 12E00191 */ beqz $s7, .LIQUE_80030A70 -/* B82C 8003042C 00000000 */ nop -/* B830 80030430 C6C00000 */ lwc1 $f0, 0x0($s6) -/* B834 80030434 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* B838 80030438 44812000 */ mtc1 $at, $f4 -/* B83C 8003043C 00000000 */ nop -/* B840 80030440 46040032 */ c.eq.s $f0, $f4 -/* B844 80030444 00000000 */ nop -/* B848 80030448 45010140 */ bc1t .LIQUE_8003094C -/* B84C 8003044C 00000000 */ nop -/* B850 80030450 8E840000 */ lw $a0, 0x0($s4) -/* B854 80030454 24820002 */ addiu $v0, $a0, 0x2 -/* B858 80030458 2C420003 */ sltiu $v0, $v0, 0x3 -/* B85C 8003045C 1440013B */ bnez $v0, .LIQUE_8003094C -/* B860 80030460 00000000 */ nop -/* B864 80030464 8C830000 */ lw $v1, 0x0($a0) -/* B868 80030468 8E020000 */ lw $v0, 0x0($s0) -/* B86C 8003046C 14620137 */ bne $v1, $v0, .LIQUE_8003094C -/* B870 80030470 00000000 */ nop -/* B874 80030474 C4820004 */ lwc1 $f2, 0x4($a0) -/* B878 80030478 C6000004 */ lwc1 $f0, 0x4($s0) -/* B87C 8003047C 46001032 */ c.eq.s $f2, $f0 -/* B880 80030480 00000000 */ nop -/* B884 80030484 45000131 */ bc1f .LIQUE_8003094C -/* B888 80030488 00000000 */ nop -/* B88C 8003048C C4820008 */ lwc1 $f2, 0x8($a0) -/* B890 80030490 C6000008 */ lwc1 $f0, 0x8($s0) -/* B894 80030494 46001032 */ c.eq.s $f2, $f0 -/* B898 80030498 00000000 */ nop -/* B89C 8003049C 4500012B */ bc1f .LIQUE_8003094C -/* B8A0 800304A0 00000000 */ nop -/* B8A4 800304A4 C4820024 */ lwc1 $f2, 0x24($a0) -/* B8A8 800304A8 C6000024 */ lwc1 $f0, 0x24($s0) -/* B8AC 800304AC 46001032 */ c.eq.s $f2, $f0 -/* B8B0 800304B0 00000000 */ nop -/* B8B4 800304B4 45000125 */ bc1f .LIQUE_8003094C -/* B8B8 800304B8 00000000 */ nop -/* B8BC 800304BC 8C830028 */ lw $v1, 0x28($a0) -/* B8C0 800304C0 8E020028 */ lw $v0, 0x28($s0) -/* B8C4 800304C4 10620121 */ beq $v1, $v0, .LIQUE_8003094C -/* B8C8 800304C8 00000000 */ nop -/* B8CC 800304CC C482000C */ lwc1 $f2, 0xC($a0) -/* B8D0 800304D0 C600000C */ lwc1 $f0, 0xC($s0) -/* B8D4 800304D4 46001032 */ c.eq.s $f2, $f0 -/* B8D8 800304D8 00000000 */ nop -/* B8DC 800304DC 4500011B */ bc1f .LIQUE_8003094C -/* B8E0 800304E0 00000000 */ nop -/* B8E4 800304E4 C4820014 */ lwc1 $f2, 0x14($a0) -/* B8E8 800304E8 C6000014 */ lwc1 $f0, 0x14($s0) -/* B8EC 800304EC 46001032 */ c.eq.s $f2, $f0 -/* B8F0 800304F0 00000000 */ nop -/* B8F4 800304F4 45030115 */ bc1tl .LIQUE_8003094C -/* B8F8 800304F8 E6C40000 */ swc1 $f4, 0x0($s6) -/* B8FC 800304FC 0800C253 */ j .LIQUE_8003094C -/* B900 80030500 00000000 */ nop -.LIQUE_80030504: -/* B904 80030504 8E020028 */ lw $v0, 0x28($s0) -/* B908 80030508 1440005D */ bnez $v0, .LIQUE_80030680 -/* B90C 8003050C 00000000 */ nop -/* B910 80030510 C612000C */ lwc1 $f18, 0xC($s0) -/* B914 80030514 C6100018 */ lwc1 $f16, 0x18($s0) -/* B918 80030518 C60A0014 */ lwc1 $f10, 0x14($s0) -/* B91C 8003051C C60C0020 */ lwc1 $f12, 0x20($s0) -/* B920 80030520 C6040010 */ lwc1 $f4, 0x10($s0) -/* B924 80030524 C60E001C */ lwc1 $f14, 0x1C($s0) -/* B928 80030528 46109032 */ c.eq.s $f18, $f16 -/* B92C 8003052C 00000000 */ nop -/* B930 80030530 45000007 */ bc1f .LIQUE_80030550 -/* B934 80030534 46048201 */ sub.s $f8, $f16, $f4 -/* B938 80030538 460C5032 */ c.eq.s $f10, $f12 -/* B93C 8003053C 00000000 */ nop -/* B940 80030540 45000003 */ bc1f .LIQUE_80030550 -/* B944 80030544 00000000 */ nop -/* B948 80030548 46002486 */ mov.s $f18, $f4 -/* B94C 8003054C 46007286 */ mov.s $f10, $f14 -.LIQUE_80030550: -/* B950 80030550 44800000 */ mtc1 $zero, $f0 -/* B954 80030554 00000000 */ nop -/* B958 80030558 46004032 */ c.eq.s $f8, $f0 -/* B95C 8003055C 00000000 */ nop -/* B960 80030560 45020017 */ bc1fl .LIQUE_800305C0 -/* B964 80030564 460C5181 */ sub.s $f6, $f10, $f12 -/* B968 80030568 46128181 */ sub.s $f6, $f16, $f18 -/* B96C 8003056C 46064102 */ mul.s $f4, $f8, $f6 -/* B970 80030570 00000000 */ nop -/* B974 80030574 461A6081 */ sub.s $f2, $f12, $f26 -/* B978 80030578 46081082 */ mul.s $f2, $f2, $f8 -/* B97C 8003057C 00000000 */ nop -/* B980 80030580 460C5281 */ sub.s $f10, $f10, $f12 -/* B984 80030584 460E6201 */ sub.s $f8, $f12, $f14 -/* B988 80030588 4610C001 */ sub.s $f0, $f24, $f16 -/* B98C 8003058C 46081083 */ div.s $f2, $f2, $f8 -/* B990 80030590 46020000 */ add.s $f0, $f0, $f2 -/* B994 80030594 46005082 */ mul.s $f2, $f10, $f0 -/* B998 80030598 00000000 */ nop -/* B99C 8003059C 46003182 */ mul.s $f6, $f6, $f0 -/* B9A0 800305A0 00000000 */ nop -/* B9A4 800305A4 46082103 */ div.s $f4, $f4, $f8 -/* B9A8 800305A8 460A2101 */ sub.s $f4, $f4, $f10 -/* B9AC 800305AC 46041083 */ div.s $f2, $f2, $f4 -/* B9B0 800305B0 46181200 */ add.s $f8, $f2, $f24 -/* B9B4 800305B4 46043183 */ div.s $f6, $f6, $f4 -/* B9B8 800305B8 0800C184 */ j .LIQUE_80030610 -/* B9BC 800305BC 461A3000 */ add.s $f0, $f6, $f26 -.LIQUE_800305C0: -/* B9C0 800305C0 460E6081 */ sub.s $f2, $f12, $f14 -/* B9C4 800305C4 46023102 */ mul.s $f4, $f6, $f2 -/* B9C8 800305C8 00000000 */ nop -/* B9CC 800305CC 46188001 */ sub.s $f0, $f16, $f24 -/* B9D0 800305D0 46020002 */ mul.s $f0, $f0, $f2 -/* B9D4 800305D4 00000000 */ nop -/* B9D8 800305D8 460CD081 */ sub.s $f2, $f26, $f12 -/* B9DC 800305DC 46080003 */ div.s $f0, $f0, $f8 -/* B9E0 800305E0 46001080 */ add.s $f2, $f2, $f0 -/* B9E4 800305E4 46023182 */ mul.s $f6, $f6, $f2 -/* B9E8 800305E8 00000000 */ nop -/* B9EC 800305EC 46128001 */ sub.s $f0, $f16, $f18 -/* B9F0 800305F0 46020082 */ mul.s $f2, $f0, $f2 -/* B9F4 800305F4 00000000 */ nop -/* B9F8 800305F8 46082103 */ div.s $f4, $f4, $f8 -/* B9FC 800305FC 46002101 */ sub.s $f4, $f4, $f0 -/* BA00 80030600 46043183 */ div.s $f6, $f6, $f4 -/* BA04 80030604 46183200 */ add.s $f8, $f6, $f24 -/* BA08 80030608 46041083 */ div.s $f2, $f2, $f4 -/* BA0C 8003060C 461A1000 */ add.s $f0, $f2, $f26 -.LIQUE_80030610: -/* BA10 80030610 E6280010 */ swc1 $f8, 0x10($s1) -/* BA14 80030614 E63E0014 */ swc1 $f30, 0x14($s1) -/* BA18 80030618 12A0003E */ beqz $s5, .LIQUE_80030714 -/* BA1C 8003061C E6200018 */ swc1 $f0, 0x18($s1) -/* BA20 80030620 C6020018 */ lwc1 $f2, 0x18($s0) -/* BA24 80030624 C600000C */ lwc1 $f0, 0xC($s0) -/* BA28 80030628 46001081 */ sub.s $f2, $f2, $f0 -/* BA2C 8003062C C6000014 */ lwc1 $f0, 0x14($s0) -/* BA30 80030630 44061000 */ mfc1 $a2, $f2 -/* BA34 80030634 C6020020 */ lwc1 $f2, 0x20($s0) -/* BA38 80030638 4480A000 */ mtc1 $zero, $f20 -/* BA3C 8003063C 46001081 */ sub.s $f2, $f2, $f0 -/* BA40 80030640 4600A306 */ mov.s $f12, $f20 -/* BA44 80030644 44071000 */ mfc1 $a3, $f2 -/* BA48 80030648 0C00A654 */ jal atan2 -/* BA4C 8003064C 4600A386 */ mov.s $f14, $f20 -/* BA50 80030650 E6200000 */ swc1 $f0, 0x0($s1) -/* BA54 80030654 C6000004 */ lwc1 $f0, 0x4($s0) -/* BA58 80030658 4614003C */ c.lt.s $f0, $f20 -/* BA5C 8003065C 00000000 */ nop -/* BA60 80030660 45030001 */ bc1tl .LIQUE_80030668 -/* BA64 80030664 46000007 */ neg.s $f0, $f0 -.LIQUE_80030668: -/* BA68 80030668 E6200004 */ swc1 $f0, 0x4($s1) -/* BA6C 8003066C C6000008 */ lwc1 $f0, 0x8($s0) -/* BA70 80030670 E6200008 */ swc1 $f0, 0x8($s1) -/* BA74 80030674 C6000024 */ lwc1 $f0, 0x24($s0) -/* BA78 80030678 0800C1C5 */ j .LIQUE_80030714 -/* BA7C 8003067C E620000C */ swc1 $f0, 0xC($s1) -.LIQUE_80030680: -/* BA80 80030680 12A0001D */ beqz $s5, .LIQUE_800306F8 -/* BA84 80030684 00000000 */ nop -/* BA88 80030688 C6020018 */ lwc1 $f2, 0x18($s0) -/* BA8C 8003068C C600000C */ lwc1 $f0, 0xC($s0) -/* BA90 80030690 46001081 */ sub.s $f2, $f2, $f0 -/* BA94 80030694 C6000014 */ lwc1 $f0, 0x14($s0) -/* BA98 80030698 44061000 */ mfc1 $a2, $f2 -/* BA9C 8003069C C6020020 */ lwc1 $f2, 0x20($s0) -/* BAA0 800306A0 4480A000 */ mtc1 $zero, $f20 -/* BAA4 800306A4 46001081 */ sub.s $f2, $f2, $f0 -/* BAA8 800306A8 4600A306 */ mov.s $f12, $f20 -/* BAAC 800306AC 44071000 */ mfc1 $a3, $f2 -/* BAB0 800306B0 0C00A654 */ jal atan2 -/* BAB4 800306B4 4600A386 */ mov.s $f14, $f20 -/* BAB8 800306B8 E6200000 */ swc1 $f0, 0x0($s1) -/* BABC 800306BC C6000004 */ lwc1 $f0, 0x4($s0) -/* BAC0 800306C0 4614003C */ c.lt.s $f0, $f20 -/* BAC4 800306C4 00000000 */ nop -/* BAC8 800306C8 45030001 */ bc1tl .LIQUE_800306D0 -/* BACC 800306CC 46000007 */ neg.s $f0, $f0 -.LIQUE_800306D0: -/* BAD0 800306D0 E6200004 */ swc1 $f0, 0x4($s1) -/* BAD4 800306D4 C6000008 */ lwc1 $f0, 0x8($s0) -/* BAD8 800306D8 E6200008 */ swc1 $f0, 0x8($s1) -/* BADC 800306DC C6000024 */ lwc1 $f0, 0x24($s0) -/* BAE0 800306E0 E620000C */ swc1 $f0, 0xC($s1) -/* BAE4 800306E4 C6000018 */ lwc1 $f0, 0x18($s0) -/* BAE8 800306E8 E6200010 */ swc1 $f0, 0x10($s1) -/* BAEC 800306EC C6000020 */ lwc1 $f0, 0x20($s0) -/* BAF0 800306F0 0800C1C4 */ j .LIQUE_80030710 -/* BAF4 800306F4 E6200018 */ swc1 $f0, 0x18($s1) -.LIQUE_800306F8: -/* BAF8 800306F8 52E00006 */ beql $s7, $zero, .LIQUE_80030714 -/* BAFC 800306FC E63E0014 */ swc1 $f30, 0x14($s1) -/* BB00 80030700 C6400010 */ lwc1 $f0, 0x10($s2) -/* BB04 80030704 E6200010 */ swc1 $f0, 0x10($s1) -/* BB08 80030708 C6400018 */ lwc1 $f0, 0x18($s2) -/* BB0C 8003070C E6200018 */ swc1 $f0, 0x18($s1) -.LIQUE_80030710: -/* BB10 80030710 E63E0014 */ swc1 $f30, 0x14($s1) -.LIQUE_80030714: -/* BB14 80030714 0800C252 */ j .LIQUE_80030948 -/* BB18 80030718 2402FFFF */ addiu $v0, $zero, -0x1 -.LIQUE_8003071C: -/* BB1C 8003071C 8E020028 */ lw $v0, 0x28($s0) -/* BB20 80030720 1440003A */ bnez $v0, .LIQUE_8003080C -/* BB24 80030724 00000000 */ nop -/* BB28 80030728 C60C0010 */ lwc1 $f12, 0x10($s0) -/* BB2C 8003072C C6060018 */ lwc1 $f6, 0x18($s0) -/* BB30 80030730 460C3181 */ sub.s $f6, $f6, $f12 -/* BB34 80030734 46063102 */ mul.s $f4, $f6, $f6 -/* BB38 80030738 00000000 */ nop -/* BB3C 8003073C C60A001C */ lwc1 $f10, 0x1C($s0) -/* BB40 80030740 C6080020 */ lwc1 $f8, 0x20($s0) -/* BB44 80030744 460A4201 */ sub.s $f8, $f8, $f10 -/* BB48 80030748 46084382 */ mul.s $f14, $f8, $f8 -/* BB4C 8003074C 00000000 */ nop -/* BB50 80030750 460CC081 */ sub.s $f2, $f24, $f12 -/* BB54 80030754 46061082 */ mul.s $f2, $f2, $f6 -/* BB58 80030758 00000000 */ nop -/* BB5C 8003075C 460AD001 */ sub.s $f0, $f26, $f10 -/* BB60 80030760 46080002 */ mul.s $f0, $f0, $f8 -/* BB64 80030764 00000000 */ nop -/* BB68 80030768 460E2100 */ add.s $f4, $f4, $f14 -/* BB6C 8003076C 46001080 */ add.s $f2, $f2, $f0 -/* BB70 80030770 46041103 */ div.s $f4, $f2, $f4 -/* BB74 80030774 46062182 */ mul.s $f6, $f4, $f6 -/* BB78 80030778 00000000 */ nop -/* BB7C 8003077C 46082102 */ mul.s $f4, $f4, $f8 -/* BB80 80030780 00000000 */ nop -/* BB84 80030784 460C3080 */ add.s $f2, $f6, $f12 -/* BB88 80030788 44800000 */ mtc1 $zero, $f0 -/* BB8C 8003078C 460A2100 */ add.s $f4, $f4, $f10 -/* BB90 80030790 E63E0014 */ swc1 $f30, 0x14($s1) -/* BB94 80030794 E6220010 */ swc1 $f2, 0x10($s1) -/* BB98 80030798 E6240018 */ swc1 $f4, 0x18($s1) -/* BB9C 8003079C C6080004 */ lwc1 $f8, 0x4($s0) -/* BBA0 800307A0 4600403C */ c.lt.s $f8, $f0 -/* BBA4 800307A4 00000000 */ nop -/* BBA8 800307A8 45000008 */ bc1f .LIQUE_800307CC -/* BBAC 800307AC 00000000 */ nop -/* BBB0 800307B0 C600000C */ lwc1 $f0, 0xC($s0) -/* BBB4 800307B4 46001581 */ sub.s $f22, $f2, $f0 -/* BBB8 800307B8 C6020014 */ lwc1 $f2, 0x14($s0) -/* BBBC 800307BC 46004007 */ neg.s $f0, $f8 -/* BBC0 800307C0 E6200004 */ swc1 $f0, 0x4($s1) -/* BBC4 800307C4 0800C1F8 */ j .LIQUE_800307E0 -/* BBC8 800307C8 46022501 */ sub.s $f20, $f4, $f2 -.LIQUE_800307CC: -/* BBCC 800307CC C600000C */ lwc1 $f0, 0xC($s0) -/* BBD0 800307D0 46020581 */ sub.s $f22, $f0, $f2 -/* BBD4 800307D4 C6000014 */ lwc1 $f0, 0x14($s0) -/* BBD8 800307D8 E6280004 */ swc1 $f8, 0x4($s1) -/* BBDC 800307DC 46040501 */ sub.s $f20, $f0, $f4 -.LIQUE_800307E0: -/* BBE0 800307E0 4406B000 */ mfc1 $a2, $f22 -/* BBE4 800307E4 44806000 */ mtc1 $zero, $f12 -/* BBE8 800307E8 4407A000 */ mfc1 $a3, $f20 -/* BBEC 800307EC 0C00A654 */ jal atan2 -/* BBF0 800307F0 46006386 */ mov.s $f14, $f12 -/* BBF4 800307F4 E6200000 */ swc1 $f0, 0x0($s1) -/* BBF8 800307F8 C6000008 */ lwc1 $f0, 0x8($s0) -/* BBFC 800307FC E6200008 */ swc1 $f0, 0x8($s1) -/* BC00 80030800 C6000024 */ lwc1 $f0, 0x24($s0) -/* BC04 80030804 0800C22E */ j .LIQUE_800308B8 -/* BC08 80030808 E620000C */ swc1 $f0, 0xC($s1) -.LIQUE_8003080C: -/* BC0C 8003080C 12A00023 */ beqz $s5, .LIQUE_8003089C -/* BC10 80030810 00000000 */ nop -/* BC14 80030814 C6060004 */ lwc1 $f6, 0x4($s0) -/* BC18 80030818 44800000 */ mtc1 $zero, $f0 -/* BC1C 8003081C 00000000 */ nop -/* BC20 80030820 4600303C */ c.lt.s $f6, $f0 -/* BC24 80030824 00000000 */ nop -/* BC28 80030828 4500000A */ bc1f .LIQUE_80030854 -/* BC2C 8003082C 00000000 */ nop -/* BC30 80030830 C6020018 */ lwc1 $f2, 0x18($s0) -/* BC34 80030834 C600000C */ lwc1 $f0, 0xC($s0) -/* BC38 80030838 46001581 */ sub.s $f22, $f2, $f0 -/* BC3C 8003083C C6040020 */ lwc1 $f4, 0x20($s0) -/* BC40 80030840 C6020014 */ lwc1 $f2, 0x14($s0) -/* BC44 80030844 46003007 */ neg.s $f0, $f6 -/* BC48 80030848 E6200004 */ swc1 $f0, 0x4($s1) -/* BC4C 8003084C 0800C21C */ j .LIQUE_80030870 -/* BC50 80030850 46022501 */ sub.s $f20, $f4, $f2 -.LIQUE_80030854: -/* BC54 80030854 C602000C */ lwc1 $f2, 0xC($s0) -/* BC58 80030858 C6000018 */ lwc1 $f0, 0x18($s0) -/* BC5C 8003085C 46001581 */ sub.s $f22, $f2, $f0 -/* BC60 80030860 C6020014 */ lwc1 $f2, 0x14($s0) -/* BC64 80030864 C6000020 */ lwc1 $f0, 0x20($s0) -/* BC68 80030868 E6260004 */ swc1 $f6, 0x4($s1) -/* BC6C 8003086C 46001501 */ sub.s $f20, $f2, $f0 -.LIQUE_80030870: -/* BC70 80030870 4406B000 */ mfc1 $a2, $f22 -/* BC74 80030874 44806000 */ mtc1 $zero, $f12 -/* BC78 80030878 4407A000 */ mfc1 $a3, $f20 -/* BC7C 8003087C 0C00A654 */ jal atan2 -/* BC80 80030880 46006386 */ mov.s $f14, $f12 -/* BC84 80030884 E6200000 */ swc1 $f0, 0x0($s1) -/* BC88 80030888 C6000008 */ lwc1 $f0, 0x8($s0) -/* BC8C 8003088C E6200008 */ swc1 $f0, 0x8($s1) -/* BC90 80030890 C6000024 */ lwc1 $f0, 0x24($s0) -/* BC94 80030894 0800C229 */ j .LIQUE_800308A4 -/* BC98 80030898 E620000C */ swc1 $f0, 0xC($s1) -.LIQUE_8003089C: -/* BC9C 8003089C 52E00006 */ beql $s7, $zero, .LIQUE_800308B8 -/* BCA0 800308A0 E63E0014 */ swc1 $f30, 0x14($s1) -.LIQUE_800308A4: -/* BCA4 800308A4 C6000018 */ lwc1 $f0, 0x18($s0) -/* BCA8 800308A8 E6200010 */ swc1 $f0, 0x10($s1) -/* BCAC 800308AC C6000020 */ lwc1 $f0, 0x20($s0) -/* BCB0 800308B0 E6200018 */ swc1 $f0, 0x18($s1) -/* BCB4 800308B4 E63E0014 */ swc1 $f30, 0x14($s1) -.LIQUE_800308B8: -/* BCB8 800308B8 0800C252 */ j .LIQUE_80030948 -/* BCBC 800308BC 2402FFFF */ addiu $v0, $zero, -0x1 -.LIQUE_800308C0: -/* BCC0 800308C0 E6380010 */ swc1 $f24, 0x10($s1) -/* BCC4 800308C4 E63E0014 */ swc1 $f30, 0x14($s1) -/* BCC8 800308C8 0800C253 */ j .LIQUE_8003094C -/* BCCC 800308CC E63A0018 */ swc1 $f26, 0x18($s1) -.LIQUE_800308D0: -/* BCD0 800308D0 C6020018 */ lwc1 $f2, 0x18($s0) -/* BCD4 800308D4 C600000C */ lwc1 $f0, 0xC($s0) -/* BCD8 800308D8 46001081 */ sub.s $f2, $f2, $f0 -/* BCDC 800308DC C6000014 */ lwc1 $f0, 0x14($s0) -/* BCE0 800308E0 44061000 */ mfc1 $a2, $f2 -/* BCE4 800308E4 C6020020 */ lwc1 $f2, 0x20($s0) -/* BCE8 800308E8 4480A000 */ mtc1 $zero, $f20 -/* BCEC 800308EC 46001081 */ sub.s $f2, $f2, $f0 -/* BCF0 800308F0 4600A306 */ mov.s $f12, $f20 -/* BCF4 800308F4 44071000 */ mfc1 $a3, $f2 -/* BCF8 800308F8 0C00A654 */ jal atan2 -/* BCFC 800308FC 4600A386 */ mov.s $f14, $f20 -/* BD00 80030900 E6200000 */ swc1 $f0, 0x0($s1) -/* BD04 80030904 C6000004 */ lwc1 $f0, 0x4($s0) -/* BD08 80030908 4614003C */ c.lt.s $f0, $f20 -/* BD0C 8003090C 00000000 */ nop -/* BD10 80030910 45030001 */ bc1tl .LIQUE_80030918 -/* BD14 80030914 46000007 */ neg.s $f0, $f0 -.LIQUE_80030918: -/* BD18 80030918 E6200004 */ swc1 $f0, 0x4($s1) -/* BD1C 8003091C C6000008 */ lwc1 $f0, 0x8($s0) -/* BD20 80030920 E6200008 */ swc1 $f0, 0x8($s1) -/* BD24 80030924 C6000024 */ lwc1 $f0, 0x24($s0) -/* BD28 80030928 E620000C */ swc1 $f0, 0xC($s1) -/* BD2C 8003092C C6000018 */ lwc1 $f0, 0x18($s0) -/* BD30 80030930 E6200010 */ swc1 $f0, 0x10($s1) -/* BD34 80030934 C600001C */ lwc1 $f0, 0x1C($s0) -/* BD38 80030938 E6200014 */ swc1 $f0, 0x14($s1) -/* BD3C 8003093C C6000020 */ lwc1 $f0, 0x20($s0) -/* BD40 80030940 2402FFFE */ addiu $v0, $zero, -0x2 -/* BD44 80030944 E6200018 */ swc1 $f0, 0x18($s1) -.LIQUE_80030948: -/* BD48 80030948 AE820000 */ sw $v0, 0x0($s4) -.LIQUE_8003094C: -/* BD4C 8003094C 12E00048 */ beqz $s7, .LIQUE_80030A70 -/* BD50 80030950 24020005 */ addiu $v0, $zero, 0x5 -/* BD54 80030954 8E030000 */ lw $v1, 0x0($s0) -/* BD58 80030958 10620007 */ beq $v1, $v0, .LIQUE_80030978 -/* BD5C 8003095C 00000000 */ nop -/* BD60 80030960 C6420000 */ lwc1 $f2, 0x0($s2) -/* BD64 80030964 C6600000 */ lwc1 $f0, 0x0($s3) -/* BD68 80030968 46001032 */ c.eq.s $f2, $f0 -/* BD6C 8003096C 00000000 */ nop -/* BD70 80030970 4501003F */ bc1t .LIQUE_80030A70 -/* BD74 80030974 00000000 */ nop -.LIQUE_80030978: -/* BD78 80030978 C6400000 */ lwc1 $f0, 0x0($s2) -/* BD7C 8003097C C6620000 */ lwc1 $f2, 0x0($s3) -/* BD80 80030980 46020001 */ sub.s $f0, $f0, $f2 -/* BD84 80030984 3C014040 */ lui $at, (0x40400000 >> 16) -/* BD88 80030988 44811000 */ mtc1 $at, $f2 -/* BD8C 8003098C 46000005 */ abs.s $f0, $f0 -/* BD90 80030990 4602003C */ c.lt.s $f0, $f2 -/* BD94 80030994 00000000 */ nop -/* BD98 80030998 45000035 */ bc1f .LIQUE_80030A70 -/* BD9C 8003099C 00000000 */ nop -/* BDA0 800309A0 C6400004 */ lwc1 $f0, 0x4($s2) -/* BDA4 800309A4 C6620004 */ lwc1 $f2, 0x4($s3) -/* BDA8 800309A8 46020001 */ sub.s $f0, $f0, $f2 -/* BDAC 800309AC 3C014120 */ lui $at, (0x41200000 >> 16) -/* BDB0 800309B0 44812000 */ mtc1 $at, $f4 -/* BDB4 800309B4 46000005 */ abs.s $f0, $f0 -/* BDB8 800309B8 4604003C */ c.lt.s $f0, $f4 -/* BDBC 800309BC 00000000 */ nop -/* BDC0 800309C0 4500002B */ bc1f .LIQUE_80030A70 -/* BDC4 800309C4 00000000 */ nop -/* BDC8 800309C8 C6400008 */ lwc1 $f0, 0x8($s2) -/* BDCC 800309CC C6620008 */ lwc1 $f2, 0x8($s3) -/* BDD0 800309D0 46020001 */ sub.s $f0, $f0, $f2 -/* BDD4 800309D4 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* BDD8 800309D8 44813000 */ mtc1 $at, $f6 -/* BDDC 800309DC 46000005 */ abs.s $f0, $f0 -/* BDE0 800309E0 4606003C */ c.lt.s $f0, $f6 -/* BDE4 800309E4 00000000 */ nop -/* BDE8 800309E8 45000021 */ bc1f .LIQUE_80030A70 -/* BDEC 800309EC 00000000 */ nop -/* BDF0 800309F0 C640000C */ lwc1 $f0, 0xC($s2) -/* BDF4 800309F4 C662000C */ lwc1 $f2, 0xC($s3) -/* BDF8 800309F8 46020001 */ sub.s $f0, $f0, $f2 -/* BDFC 800309FC 46000005 */ abs.s $f0, $f0 -/* BE00 80030A00 4606003C */ c.lt.s $f0, $f6 -/* BE04 80030A04 00000000 */ nop -/* BE08 80030A08 45000019 */ bc1f .LIQUE_80030A70 -/* BE0C 80030A0C 00000000 */ nop -/* BE10 80030A10 C6400010 */ lwc1 $f0, 0x10($s2) -/* BE14 80030A14 C6620010 */ lwc1 $f2, 0x10($s3) -/* BE18 80030A18 46020001 */ sub.s $f0, $f0, $f2 -/* BE1C 80030A1C 46000005 */ abs.s $f0, $f0 -/* BE20 80030A20 4604003C */ c.lt.s $f0, $f4 -/* BE24 80030A24 00000000 */ nop -/* BE28 80030A28 45000011 */ bc1f .LIQUE_80030A70 -/* BE2C 80030A2C 00000000 */ nop -/* BE30 80030A30 C6400014 */ lwc1 $f0, 0x14($s2) -/* BE34 80030A34 C6620014 */ lwc1 $f2, 0x14($s3) -/* BE38 80030A38 46020001 */ sub.s $f0, $f0, $f2 -/* BE3C 80030A3C 46000005 */ abs.s $f0, $f0 -/* BE40 80030A40 4604003C */ c.lt.s $f0, $f4 -/* BE44 80030A44 00000000 */ nop -/* BE48 80030A48 45000009 */ bc1f .LIQUE_80030A70 -/* BE4C 80030A4C 00000000 */ nop -/* BE50 80030A50 C6400018 */ lwc1 $f0, 0x18($s2) -/* BE54 80030A54 C6620018 */ lwc1 $f2, 0x18($s3) -/* BE58 80030A58 46020001 */ sub.s $f0, $f0, $f2 -/* BE5C 80030A5C 46000005 */ abs.s $f0, $f0 -/* BE60 80030A60 4604003C */ c.lt.s $f0, $f4 -/* BE64 80030A64 00000000 */ nop -/* BE68 80030A68 45030001 */ bc1tl .LIQUE_80030A70 -/* BE6C 80030A6C E6C60000 */ swc1 $f6, 0x0($s6) -.LIQUE_80030A70: -/* BE70 80030A70 8E830000 */ lw $v1, 0x0($s4) -/* BE74 80030A74 2402FFFF */ addiu $v0, $zero, -0x1 -/* BE78 80030A78 14620021 */ bne $v1, $v0, .LIQUE_80030B00 -/* BE7C 80030A7C 00000000 */ nop -/* BE80 80030A80 12E00010 */ beqz $s7, .LIQUE_80030AC4 -/* BE84 80030A84 00000000 */ nop -/* BE88 80030A88 C6460010 */ lwc1 $f6, 0x10($s2) -/* BE8C 80030A8C C6600010 */ lwc1 $f0, 0x10($s3) -/* BE90 80030A90 C6440014 */ lwc1 $f4, 0x14($s2) -/* BE94 80030A94 46003181 */ sub.s $f6, $f6, $f0 -/* BE98 80030A98 C6600014 */ lwc1 $f0, 0x14($s3) -/* BE9C 80030A9C C6420018 */ lwc1 $f2, 0x18($s2) -/* BEA0 80030AA0 46002101 */ sub.s $f4, $f4, $f0 -/* BEA4 80030AA4 C6600018 */ lwc1 $f0, 0x18($s3) -/* BEA8 80030AA8 46001081 */ sub.s $f2, $f2, $f0 -/* BEAC 80030AAC 3C01800A */ lui $at, %hi(D_800A08E4) -/* BEB0 80030AB0 E426D2F4 */ swc1 $f6, %lo(D_800A08E4)($at) -/* BEB4 80030AB4 3C01800A */ lui $at, %hi(D_800A08E8) -/* BEB8 80030AB8 E424D2F8 */ swc1 $f4, %lo(D_800A08E8)($at) -/* BEBC 80030ABC 3C01800A */ lui $at, %hi(D_800A08EC) -/* BEC0 80030AC0 E422D2FC */ swc1 $f2, %lo(D_800A08EC)($at) -.LIQUE_80030AC4: -/* BEC4 80030AC4 C6600010 */ lwc1 $f0, 0x10($s3) -/* BEC8 80030AC8 3C01800A */ lui $at, %hi(D_800A08E4) -/* BECC 80030ACC C422D2F4 */ lwc1 $f2, %lo(D_800A08E4)($at) -/* BED0 80030AD0 46020000 */ add.s $f0, $f0, $f2 -/* BED4 80030AD4 3C01800A */ lui $at, %hi(D_800A08E8) -/* BED8 80030AD8 C422D2F8 */ lwc1 $f2, %lo(D_800A08E8)($at) -/* BEDC 80030ADC E6400010 */ swc1 $f0, 0x10($s2) -/* BEE0 80030AE0 C6600014 */ lwc1 $f0, 0x14($s3) -/* BEE4 80030AE4 46020000 */ add.s $f0, $f0, $f2 -/* BEE8 80030AE8 3C01800A */ lui $at, %hi(D_800A08EC) -/* BEEC 80030AEC C422D2FC */ lwc1 $f2, %lo(D_800A08EC)($at) -/* BEF0 80030AF0 E6400014 */ swc1 $f0, 0x14($s2) -/* BEF4 80030AF4 C6600018 */ lwc1 $f0, 0x18($s3) -/* BEF8 80030AF8 46020000 */ add.s $f0, $f0, $f2 -/* BEFC 80030AFC E6400018 */ swc1 $f0, 0x18($s2) -.LIQUE_80030B00: -/* BF00 80030B00 8FBF0048 */ lw $ra, 0x48($sp) -/* BF04 80030B04 8FB70044 */ lw $s7, 0x44($sp) -/* BF08 80030B08 8FB60040 */ lw $s6, 0x40($sp) -/* BF0C 80030B0C 8FB5003C */ lw $s5, 0x3C($sp) -/* BF10 80030B10 8FB40038 */ lw $s4, 0x38($sp) -/* BF14 80030B14 8FB30034 */ lw $s3, 0x34($sp) -/* BF18 80030B18 8FB20030 */ lw $s2, 0x30($sp) -/* BF1C 80030B1C 8FB1002C */ lw $s1, 0x2C($sp) -/* BF20 80030B20 8FB00028 */ lw $s0, 0x28($sp) -/* BF24 80030B24 D7BE0078 */ ldc1 $f30, 0x78($sp) -/* BF28 80030B28 D7BC0070 */ ldc1 $f28, 0x70($sp) -/* BF2C 80030B2C D7BA0068 */ ldc1 $f26, 0x68($sp) -/* BF30 80030B30 D7B80060 */ ldc1 $f24, 0x60($sp) -/* BF34 80030B34 D7B60058 */ ldc1 $f22, 0x58($sp) -/* BF38 80030B38 D7B40050 */ ldc1 $f20, 0x50($sp) -/* BF3C 80030B3C 03E00008 */ jr $ra -/* BF40 80030B40 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/ver/jp/asm/main.bss.s b/ver/jp/asm/main.bss.s index 41877c1d4e..9195303bbd 100644 --- a/ver/jp/asm/main.bss.s +++ b/ver/jp/asm/main.bss.s @@ -205,7 +205,7 @@ dlabel GfxTaskMgrStack dlabel D_8009E6D0 .space 0x00000020 -dlabel blendedCamSettings +dlabel gCurrentCamConfiguration .space 0x0000001C dlabel D_800A08DC diff --git a/ver/jp/asm/nonmatchings/B0E0/update_camera_from_controller.s b/ver/jp/asm/nonmatchings/B0E0/update_camera_from_controller.s deleted file mode 100644 index 5062e4c61c..0000000000 --- a/ver/jp/asm/nonmatchings/B0E0/update_camera_from_controller.s +++ /dev/null @@ -1,1085 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -.section .rodata -.align 3 -glabel jtbl_JP_800981F0 -/* 735F0 800981F0 80030240 */ .word .LJP_80030240 -/* 735F4 800981F4 800303F8 */ .word .LJP_800303F8 -/* 735F8 800981F8 800304F8 */ .word .LJP_800304F8 -/* 735FC 800981FC 80030504 */ .word .LJP_80030504 -/* 73600 80098200 80030510 */ .word .LJP_80030510 -/* 73604 80098204 800304F8 */ .word .LJP_800304F8 -/* 73608 80098208 800302D4 */ .word .LJP_800302D4 -/* 7360C 8009820C 00000000 */ .word 0x00000000 - -.align 3 -glabel jtbl_JP_80098210 -/* 73610 80098210 80030560 */ .word .LJP_80030560 -/* 73614 80098214 8003088C */ .word .LJP_8003088C -/* 73618 80098218 80030AE4 */ .word .LJP_80030AE4 -/* 7361C 8009821C 80030EA0 */ .word .LJP_80030EA0 -/* 73620 80098220 80030EB0 */ .word .LJP_80030EB0 -/* 73624 80098224 80030CFC */ .word .LJP_80030CFC -/* 73628 80098228 8003065C */ .word .LJP_8003065C -/* 7362C 8009822C 00000000 */ .word 0x00000000 - - -.section .text -glabel update_camera_from_controller -/* B58C 8003018C 27BDFF80 */ addiu $sp, $sp, -0x80 -/* B590 80030190 AFB20030 */ sw $s2, 0x30($sp) -/* B594 80030194 00A0902D */ daddu $s2, $a1, $zero -/* B598 80030198 AFB40038 */ sw $s4, 0x38($sp) -/* B59C 8003019C 00C0A02D */ daddu $s4, $a2, $zero -/* B5A0 800301A0 AFB30034 */ sw $s3, 0x34($sp) -/* B5A4 800301A4 00E0982D */ daddu $s3, $a3, $zero -/* B5A8 800301A8 AFB1002C */ sw $s1, 0x2C($sp) -/* B5AC 800301AC AFBF0048 */ sw $ra, 0x48($sp) -/* B5B0 800301B0 AFB70044 */ sw $s7, 0x44($sp) -/* B5B4 800301B4 AFB60040 */ sw $s6, 0x40($sp) -/* B5B8 800301B8 AFB5003C */ sw $s5, 0x3C($sp) -/* B5BC 800301BC AFB00028 */ sw $s0, 0x28($sp) -/* B5C0 800301C0 F7BE0078 */ sdc1 $f30, 0x78($sp) -/* B5C4 800301C4 F7BC0070 */ sdc1 $f28, 0x70($sp) -/* B5C8 800301C8 F7BA0068 */ sdc1 $f26, 0x68($sp) -/* B5CC 800301CC F7B80060 */ sdc1 $f24, 0x60($sp) -/* B5D0 800301D0 F7B60058 */ sdc1 $f22, 0x58($sp) -/* B5D4 800301D4 F7B40050 */ sdc1 $f20, 0x50($sp) -/* B5D8 800301D8 8E900000 */ lw $s0, 0x0($s4) -/* B5DC 800301DC C7B80094 */ lwc1 $f24, 0x94($sp) -/* B5E0 800301E0 C7BE0098 */ lwc1 $f30, 0x98($sp) -/* B5E4 800301E4 C7BA009C */ lwc1 $f26, 0x9C($sp) -/* B5E8 800301E8 8FB500AC */ lw $s5, 0xAC($sp) -/* B5EC 800301EC 8FB600B0 */ lw $s6, 0xB0($sp) -/* B5F0 800301F0 8FB700B4 */ lw $s7, 0xB4($sp) -/* B5F4 800301F4 26020002 */ addiu $v0, $s0, 0x2 -/* B5F8 800301F8 2C420002 */ sltiu $v0, $v0, 0x2 -/* B5FC 800301FC 144000C4 */ bnez $v0, .LJP_80030510 -/* B600 80030200 0240882D */ daddu $s1, $s2, $zero -/* B604 80030204 16000005 */ bnez $s0, .LJP_8003021C -/* B608 80030208 00000000 */ nop -/* B60C 8003020C E6580010 */ swc1 $f24, 0x10($s2) -/* B610 80030210 E65E0014 */ swc1 $f30, 0x14($s2) -/* B614 80030214 0800C144 */ j .LJP_80030510 -/* B618 80030218 E65A0018 */ swc1 $f26, 0x18($s2) -.LJP_8003021C: -/* B61C 8003021C 8E030000 */ lw $v1, 0x0($s0) -/* B620 80030220 2C620007 */ sltiu $v0, $v1, 0x7 -/* B624 80030224 104000BA */ beqz $v0, .LJP_80030510 -/* B628 80030228 00031080 */ sll $v0, $v1, 2 -/* B62C 8003022C 3C01800A */ lui $at, %hi(jtbl_JP_800981F0) -/* B630 80030230 00220821 */ addu $at, $at, $v0 -/* B634 80030234 8C2281F0 */ lw $v0, %lo(jtbl_JP_800981F0)($at) -/* B638 80030238 00400008 */ jr $v0 -/* B63C 8003023C 00000000 */ nop -glabel .LJP_80030240 -/* B640 80030240 8E020028 */ lw $v0, 0x28($s0) -/* B644 80030244 504000B0 */ beql $v0, $zero, .LJP_80030508 -/* B648 80030248 E6380010 */ swc1 $f24, 0x10($s1) -/* B64C 8003024C C60A0014 */ lwc1 $f10, 0x14($s0) -/* B650 80030250 C60C0020 */ lwc1 $f12, 0x20($s0) -/* B654 80030254 460C5281 */ sub.s $f10, $f10, $f12 -/* B658 80030258 C6000018 */ lwc1 $f0, 0x18($s0) -/* B65C 8003025C 46005287 */ neg.s $f10, $f10 -/* B660 80030260 46005280 */ add.s $f10, $f10, $f0 -/* B664 80030264 460A0201 */ sub.s $f8, $f0, $f10 -/* B668 80030268 46084102 */ mul.s $f4, $f8, $f8 -/* B66C 8003026C 00000000 */ nop -/* B670 80030270 C606000C */ lwc1 $f6, 0xC($s0) -/* B674 80030274 46003181 */ sub.s $f6, $f6, $f0 -/* B678 80030278 460C3180 */ add.s $f6, $f6, $f12 -/* B67C 8003027C 46066301 */ sub.s $f12, $f12, $f6 -/* B680 80030280 460C6382 */ mul.s $f14, $f12, $f12 -/* B684 80030284 00000000 */ nop -/* B688 80030288 460AC081 */ sub.s $f2, $f24, $f10 -/* B68C 8003028C 46081082 */ mul.s $f2, $f2, $f8 -/* B690 80030290 00000000 */ nop -/* B694 80030294 4606D001 */ sub.s $f0, $f26, $f6 -/* B698 80030298 460C0002 */ mul.s $f0, $f0, $f12 -/* B69C 8003029C 00000000 */ nop -/* B6A0 800302A0 460E2100 */ add.s $f4, $f4, $f14 -/* B6A4 800302A4 46001080 */ add.s $f2, $f2, $f0 -/* B6A8 800302A8 46041103 */ div.s $f4, $f2, $f4 -/* B6AC 800302AC 46082202 */ mul.s $f8, $f4, $f8 -/* B6B0 800302B0 00000000 */ nop -/* B6B4 800302B4 460C2102 */ mul.s $f4, $f4, $f12 -/* B6B8 800302B8 00000000 */ nop -/* B6BC 800302BC 460A4200 */ add.s $f8, $f8, $f10 -/* B6C0 800302C0 46062100 */ add.s $f4, $f4, $f6 -/* B6C4 800302C4 E63E0014 */ swc1 $f30, 0x14($s1) -/* B6C8 800302C8 E6280010 */ swc1 $f8, 0x10($s1) -/* B6CC 800302CC 0800C144 */ j .LJP_80030510 -/* B6D0 800302D0 E6240018 */ swc1 $f4, 0x18($s1) -glabel .LJP_800302D4 -/* B6D4 800302D4 C60E000C */ lwc1 $f14, 0xC($s0) -/* B6D8 800302D8 C61C0018 */ lwc1 $f28, 0x18($s0) -/* B6DC 800302DC 460EE201 */ sub.s $f8, $f28, $f14 -/* B6E0 800302E0 46084502 */ mul.s $f20, $f8, $f8 -/* B6E4 800302E4 00000000 */ nop -/* B6E8 800302E8 460EC081 */ sub.s $f2, $f24, $f14 -/* B6EC 800302EC 46081082 */ mul.s $f2, $f2, $f8 -/* B6F0 800302F0 00000000 */ nop -/* B6F4 800302F4 E7BC0010 */ swc1 $f28, 0x10($sp) -/* B6F8 800302F8 C60C0014 */ lwc1 $f12, 0x14($s0) -/* B6FC 800302FC C61C0020 */ lwc1 $f28, 0x20($s0) -/* B700 80030300 460CE181 */ sub.s $f6, $f28, $f12 -/* B704 80030304 46063482 */ mul.s $f18, $f6, $f6 -/* B708 80030308 00000000 */ nop -/* B70C 8003030C 460CD001 */ sub.s $f0, $f26, $f12 -/* B710 80030310 46060002 */ mul.s $f0, $f0, $f6 -/* B714 80030314 00000000 */ nop -/* B718 80030318 4612A100 */ add.s $f4, $f20, $f18 -/* B71C 8003031C 46001080 */ add.s $f2, $f2, $f0 -/* B720 80030320 46041103 */ div.s $f4, $f2, $f4 -/* B724 80030324 46082002 */ mul.s $f0, $f4, $f8 -/* B728 80030328 00000000 */ nop -/* B72C 8003032C 46062102 */ mul.s $f4, $f4, $f6 -/* B730 80030330 00000000 */ nop -/* B734 80030334 460E0400 */ add.s $f16, $f0, $f14 -/* B738 80030338 46007586 */ mov.s $f22, $f14 -/* B73C 8003033C 46004386 */ mov.s $f14, $f8 -/* B740 80030340 46168201 */ sub.s $f8, $f16, $f22 -/* B744 80030344 46087082 */ mul.s $f2, $f14, $f8 -/* B748 80030348 00000000 */ nop -/* B74C 8003034C 460C2280 */ add.s $f10, $f4, $f12 -/* B750 80030350 46006106 */ mov.s $f4, $f12 -/* B754 80030354 46003306 */ mov.s $f12, $f6 -/* B758 80030358 46045181 */ sub.s $f6, $f10, $f4 -/* B75C 8003035C 46066002 */ mul.s $f0, $f12, $f6 -/* B760 80030360 00000000 */ nop -/* B764 80030364 4610C501 */ sub.s $f20, $f24, $f16 -/* B768 80030368 460AD481 */ sub.s $f18, $f26, $f10 -/* B76C 8003036C 46001080 */ add.s $f2, $f2, $f0 -/* B770 80030370 44800000 */ mtc1 $zero, $f0 -/* B774 80030374 00000000 */ nop -/* B778 80030378 4600103C */ c.lt.s $f2, $f0 -/* B77C 8003037C 00000000 */ nop -/* B780 80030380 45000004 */ bc1f .LJP_80030394 -/* B784 80030384 E7BC0020 */ swc1 $f28, 0x20($sp) -/* B788 80030388 4600B406 */ mov.s $f16, $f22 -/* B78C 8003038C 0800C0F5 */ j .LJP_800303D4 -/* B790 80030390 46002286 */ mov.s $f10, $f4 -.LJP_80030394: -/* B794 80030394 46084082 */ mul.s $f2, $f8, $f8 -/* B798 80030398 00000000 */ nop -/* B79C 8003039C 46063182 */ mul.s $f6, $f6, $f6 -/* B7A0 800303A0 00000000 */ nop -/* B7A4 800303A4 460E7002 */ mul.s $f0, $f14, $f14 -/* B7A8 800303A8 00000000 */ nop -/* B7AC 800303AC 460C6102 */ mul.s $f4, $f12, $f12 -/* B7B0 800303B0 00000000 */ nop -/* B7B4 800303B4 46061080 */ add.s $f2, $f2, $f6 -/* B7B8 800303B8 46040000 */ add.s $f0, $f0, $f4 -/* B7BC 800303BC 4602003C */ c.lt.s $f0, $f2 -/* B7C0 800303C0 00000000 */ nop -/* B7C4 800303C4 45000003 */ bc1f .LJP_800303D4 -/* B7C8 800303C8 00000000 */ nop -/* B7CC 800303CC C7B00010 */ lwc1 $f16, 0x10($sp) -/* B7D0 800303D0 C7AA0020 */ lwc1 $f10, 0x20($sp) -.LJP_800303D4: -/* B7D4 800303D4 8E020028 */ lw $v0, 0x28($s0) -/* B7D8 800303D8 54400004 */ bnel $v0, $zero, .LJP_800303EC -/* B7DC 800303DC E6300010 */ swc1 $f16, 0x10($s1) -/* B7E0 800303E0 46148400 */ add.s $f16, $f16, $f20 -/* B7E4 800303E4 46125280 */ add.s $f10, $f10, $f18 -/* B7E8 800303E8 E6300010 */ swc1 $f16, 0x10($s1) -.LJP_800303EC: -/* B7EC 800303EC E63E0014 */ swc1 $f30, 0x14($s1) -/* B7F0 800303F0 0800C144 */ j .LJP_80030510 -/* B7F4 800303F4 E62A0018 */ swc1 $f10, 0x18($s1) -glabel .LJP_800303F8 -/* B7F8 800303F8 8E020028 */ lw $v0, 0x28($s0) -/* B7FC 800303FC 50400042 */ beql $v0, $zero, .LJP_80030508 -/* B800 80030400 E6380010 */ swc1 $f24, 0x10($s1) -/* B804 80030404 C600000C */ lwc1 $f0, 0xC($s0) -/* B808 80030408 4600C581 */ sub.s $f22, $f24, $f0 -/* B80C 8003040C 4616B082 */ mul.s $f2, $f22, $f22 -/* B810 80030410 00000000 */ nop -/* B814 80030414 C6000014 */ lwc1 $f0, 0x14($s0) -/* B818 80030418 4600D501 */ sub.s $f20, $f26, $f0 -/* B81C 8003041C 4614A002 */ mul.s $f0, $f20, $f20 -/* B820 80030420 00000000 */ nop -/* B824 80030424 46001600 */ add.s $f24, $f2, $f0 -/* B828 80030428 44800000 */ mtc1 $zero, $f0 -/* B82C 8003042C 00000000 */ nop -/* B830 80030430 4600C032 */ c.eq.s $f24, $f0 -/* B834 80030434 00000000 */ nop -/* B838 80030438 45010035 */ bc1t .LJP_80030510 -/* B83C 8003043C 00000000 */ nop -/* B840 80030440 4600C184 */ sqrt.s $f6, $f24 -/* B844 80030444 46063032 */ c.eq.s $f6, $f6 -/* B848 80030448 00000000 */ nop -/* B84C 8003044C 45010004 */ bc1t .LJP_80030460 -/* B850 80030450 00000000 */ nop -/* B854 80030454 0C0187B0 */ jal sqrtf -/* B858 80030458 4600C306 */ mov.s $f12, $f24 -/* B85C 8003045C 46000186 */ mov.s $f6, $f0 -.LJP_80030460: -/* B860 80030460 C6040018 */ lwc1 $f4, 0x18($s0) -/* B864 80030464 C600000C */ lwc1 $f0, 0xC($s0) -/* B868 80030468 46002101 */ sub.s $f4, $f4, $f0 -/* B86C 8003046C 46042102 */ mul.s $f4, $f4, $f4 -/* B870 80030470 00000000 */ nop -/* B874 80030474 C6020014 */ lwc1 $f2, 0x14($s0) -/* B878 80030478 C6000020 */ lwc1 $f0, 0x20($s0) -/* B87C 8003047C 46020001 */ sub.s $f0, $f0, $f2 -/* B880 80030480 46000002 */ mul.s $f0, $f0, $f0 -/* B884 80030484 00000000 */ nop -/* B888 80030488 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* B88C 8003048C 44811000 */ mtc1 $at, $f2 -/* B890 80030490 46002300 */ add.s $f12, $f4, $f0 -/* B894 80030494 46061603 */ div.s $f24, $f2, $f6 -/* B898 80030498 46006084 */ sqrt.s $f2, $f12 -/* B89C 8003049C 46021032 */ c.eq.s $f2, $f2 -/* B8A0 800304A0 00000000 */ nop -/* B8A4 800304A4 45010004 */ bc1t .LJP_800304B8 -/* B8A8 800304A8 00000000 */ nop -/* B8AC 800304AC 0C0187B0 */ jal sqrtf -/* B8B0 800304B0 00000000 */ nop -/* B8B4 800304B4 46000086 */ mov.s $f2, $f0 -.LJP_800304B8: -/* B8B8 800304B8 4602B002 */ mul.s $f0, $f22, $f2 -/* B8BC 800304BC 00000000 */ nop -/* B8C0 800304C0 4602A102 */ mul.s $f4, $f20, $f2 -/* B8C4 800304C4 00000000 */ nop -/* B8C8 800304C8 46180002 */ mul.s $f0, $f0, $f24 -/* B8CC 800304CC 00000000 */ nop -/* B8D0 800304D0 C602000C */ lwc1 $f2, 0xC($s0) -/* B8D4 800304D4 46001080 */ add.s $f2, $f2, $f0 -/* B8D8 800304D8 46182102 */ mul.s $f4, $f4, $f24 -/* B8DC 800304DC 00000000 */ nop -/* B8E0 800304E0 E63E0014 */ swc1 $f30, 0x14($s1) -/* B8E4 800304E4 E6220010 */ swc1 $f2, 0x10($s1) -/* B8E8 800304E8 C6000014 */ lwc1 $f0, 0x14($s0) -/* B8EC 800304EC 46040000 */ add.s $f0, $f0, $f4 -/* B8F0 800304F0 0800C144 */ j .LJP_80030510 -/* B8F4 800304F4 E6200018 */ swc1 $f0, 0x18($s1) -glabel .LJP_800304F8 -/* B8F8 800304F8 2402FFFF */ addiu $v0, $zero, -0x1 -/* B8FC 800304FC 0800C144 */ j .LJP_80030510 -/* B900 80030500 AE820000 */ sw $v0, 0x0($s4) -glabel .LJP_80030504 -/* B904 80030504 E6380010 */ swc1 $f24, 0x10($s1) -.LJP_80030508: -/* B908 80030508 E63E0014 */ swc1 $f30, 0x14($s1) -/* B90C 8003050C E63A0018 */ swc1 $f26, 0x18($s1) -glabel .LJP_80030510 -/* B910 80030510 8FA20090 */ lw $v0, 0x90($sp) -/* B914 80030514 C7B800A0 */ lwc1 $f24, 0xA0($sp) -/* B918 80030518 C7BE00A4 */ lwc1 $f30, 0xA4($sp) -/* B91C 8003051C 8C500000 */ lw $s0, 0x0($v0) -/* B920 80030520 C7BA00A8 */ lwc1 $f26, 0xA8($sp) -/* B924 80030524 16000005 */ bnez $s0, .LJP_8003053C -/* B928 80030528 0260882D */ daddu $s1, $s3, $zero -/* B92C 8003052C E6780010 */ swc1 $f24, 0x10($s3) -/* B930 80030530 E67E0014 */ swc1 $f30, 0x14($s3) -/* B934 80030534 0800C414 */ j .LJP_80031050 -/* B938 80030538 E67A0018 */ swc1 $f26, 0x18($s3) -.LJP_8003053C: -/* B93C 8003053C 8E030000 */ lw $v1, 0x0($s0) -/* B940 80030540 2C620007 */ sltiu $v0, $v1, 0x7 -/* B944 80030544 10400279 */ beqz $v0, .LJP_80030F2C -/* B948 80030548 00031080 */ sll $v0, $v1, 2 -/* B94C 8003054C 3C01800A */ lui $at, %hi(jtbl_JP_80098210) -/* B950 80030550 00220821 */ addu $at, $at, $v0 -/* B954 80030554 8C228210 */ lw $v0, %lo(jtbl_JP_80098210)($at) -/* B958 80030558 00400008 */ jr $v0 -/* B95C 8003055C 00000000 */ nop -glabel .LJP_80030560 -/* B960 80030560 C6020018 */ lwc1 $f2, 0x18($s0) -/* B964 80030564 C600000C */ lwc1 $f0, 0xC($s0) -/* B968 80030568 46001081 */ sub.s $f2, $f2, $f0 -/* B96C 8003056C C6000014 */ lwc1 $f0, 0x14($s0) -/* B970 80030570 44061000 */ mfc1 $a2, $f2 -/* B974 80030574 C6020020 */ lwc1 $f2, 0x20($s0) -/* B978 80030578 4480A000 */ mtc1 $zero, $f20 -/* B97C 8003057C 46001081 */ sub.s $f2, $f2, $f0 -/* B980 80030580 4600A306 */ mov.s $f12, $f20 -/* B984 80030584 44071000 */ mfc1 $a3, $f2 -/* B988 80030588 0C00A710 */ jal atan2 -/* B98C 8003058C 4600A386 */ mov.s $f14, $f20 -/* B990 80030590 E6200000 */ swc1 $f0, 0x0($s1) -/* B994 80030594 C6000004 */ lwc1 $f0, 0x4($s0) -/* B998 80030598 4614003C */ c.lt.s $f0, $f20 -/* B99C 8003059C 00000000 */ nop -/* B9A0 800305A0 45030001 */ bc1tl .LJP_800305A8 -/* B9A4 800305A4 46000007 */ neg.s $f0, $f0 -.LJP_800305A8: -/* B9A8 800305A8 E6200004 */ swc1 $f0, 0x4($s1) -/* B9AC 800305AC C6000008 */ lwc1 $f0, 0x8($s0) -/* B9B0 800305B0 E6200008 */ swc1 $f0, 0x8($s1) -/* B9B4 800305B4 C6000024 */ lwc1 $f0, 0x24($s0) -/* B9B8 800305B8 E620000C */ swc1 $f0, 0xC($s1) -/* B9BC 800305BC 8E020028 */ lw $v0, 0x28($s0) -/* B9C0 800305C0 50400023 */ beql $v0, $zero, .LJP_80030650 -/* B9C4 800305C4 E6380010 */ swc1 $f24, 0x10($s1) -/* B9C8 800305C8 C60A0014 */ lwc1 $f10, 0x14($s0) -/* B9CC 800305CC C60C0020 */ lwc1 $f12, 0x20($s0) -/* B9D0 800305D0 460C5281 */ sub.s $f10, $f10, $f12 -/* B9D4 800305D4 C6000018 */ lwc1 $f0, 0x18($s0) -/* B9D8 800305D8 46005287 */ neg.s $f10, $f10 -/* B9DC 800305DC 46005280 */ add.s $f10, $f10, $f0 -/* B9E0 800305E0 460A0201 */ sub.s $f8, $f0, $f10 -/* B9E4 800305E4 46084102 */ mul.s $f4, $f8, $f8 -/* B9E8 800305E8 00000000 */ nop -/* B9EC 800305EC C606000C */ lwc1 $f6, 0xC($s0) -/* B9F0 800305F0 46003181 */ sub.s $f6, $f6, $f0 -/* B9F4 800305F4 460C3180 */ add.s $f6, $f6, $f12 -/* B9F8 800305F8 46066301 */ sub.s $f12, $f12, $f6 -/* B9FC 800305FC 460C6382 */ mul.s $f14, $f12, $f12 -/* BA00 80030600 00000000 */ nop -/* BA04 80030604 460AC081 */ sub.s $f2, $f24, $f10 -/* BA08 80030608 46081082 */ mul.s $f2, $f2, $f8 -/* BA0C 8003060C 00000000 */ nop -/* BA10 80030610 4606D001 */ sub.s $f0, $f26, $f6 -/* BA14 80030614 460C0002 */ mul.s $f0, $f0, $f12 -/* BA18 80030618 00000000 */ nop -/* BA1C 8003061C 460E2100 */ add.s $f4, $f4, $f14 -/* BA20 80030620 46001080 */ add.s $f2, $f2, $f0 -/* BA24 80030624 46041103 */ div.s $f4, $f2, $f4 -/* BA28 80030628 46082202 */ mul.s $f8, $f4, $f8 -/* BA2C 8003062C 00000000 */ nop -/* BA30 80030630 460C2102 */ mul.s $f4, $f4, $f12 -/* BA34 80030634 00000000 */ nop -/* BA38 80030638 460A4200 */ add.s $f8, $f8, $f10 -/* BA3C 8003063C 46062100 */ add.s $f4, $f4, $f6 -/* BA40 80030640 E63E0014 */ swc1 $f30, 0x14($s1) -/* BA44 80030644 E6280010 */ swc1 $f8, 0x10($s1) -/* BA48 80030648 0800C1F8 */ j .LJP_800307E0 -/* BA4C 8003064C E6240018 */ swc1 $f4, 0x18($s1) -.LJP_80030650: -/* BA50 80030650 E63E0014 */ swc1 $f30, 0x14($s1) -/* BA54 80030654 0800C1F8 */ j .LJP_800307E0 -/* BA58 80030658 E63A0018 */ swc1 $f26, 0x18($s1) -glabel .LJP_8003065C -/* BA5C 8003065C C6020018 */ lwc1 $f2, 0x18($s0) -/* BA60 80030660 C600000C */ lwc1 $f0, 0xC($s0) -/* BA64 80030664 46001581 */ sub.s $f22, $f2, $f0 -/* BA68 80030668 C6020020 */ lwc1 $f2, 0x20($s0) -/* BA6C 8003066C C6000014 */ lwc1 $f0, 0x14($s0) -/* BA70 80030670 46001081 */ sub.s $f2, $f2, $f0 -/* BA74 80030674 44806000 */ mtc1 $zero, $f12 -/* BA78 80030678 4600B587 */ neg.s $f22, $f22 -/* BA7C 8003067C 4407B000 */ mfc1 $a3, $f22 -/* BA80 80030680 44061000 */ mfc1 $a2, $f2 -/* BA84 80030684 0C00A710 */ jal atan2 -/* BA88 80030688 46006386 */ mov.s $f14, $f12 -/* BA8C 8003068C E6200000 */ swc1 $f0, 0x0($s1) -/* BA90 80030690 C6000004 */ lwc1 $f0, 0x4($s0) -/* BA94 80030694 4480E000 */ mtc1 $zero, $f28 -/* BA98 80030698 00000000 */ nop -/* BA9C 8003069C 461C003C */ c.lt.s $f0, $f28 -/* BAA0 800306A0 00000000 */ nop -/* BAA4 800306A4 45030001 */ bc1tl .LJP_800306AC -/* BAA8 800306A8 46000007 */ neg.s $f0, $f0 -.LJP_800306AC: -/* BAAC 800306AC E6200004 */ swc1 $f0, 0x4($s1) -/* BAB0 800306B0 C6000008 */ lwc1 $f0, 0x8($s0) -/* BAB4 800306B4 E6200008 */ swc1 $f0, 0x8($s1) -/* BAB8 800306B8 C6000024 */ lwc1 $f0, 0x24($s0) -/* BABC 800306BC E620000C */ swc1 $f0, 0xC($s1) -/* BAC0 800306C0 C60E000C */ lwc1 $f14, 0xC($s0) -/* BAC4 800306C4 C61C0018 */ lwc1 $f28, 0x18($s0) -/* BAC8 800306C8 460EE201 */ sub.s $f8, $f28, $f14 -/* BACC 800306CC 46084502 */ mul.s $f20, $f8, $f8 -/* BAD0 800306D0 00000000 */ nop -/* BAD4 800306D4 460EC081 */ sub.s $f2, $f24, $f14 -/* BAD8 800306D8 46081082 */ mul.s $f2, $f2, $f8 -/* BADC 800306DC 00000000 */ nop -/* BAE0 800306E0 E7BC0014 */ swc1 $f28, 0x14($sp) -/* BAE4 800306E4 C60C0014 */ lwc1 $f12, 0x14($s0) -/* BAE8 800306E8 C61C0020 */ lwc1 $f28, 0x20($s0) -/* BAEC 800306EC 460CE181 */ sub.s $f6, $f28, $f12 -/* BAF0 800306F0 46063482 */ mul.s $f18, $f6, $f6 -/* BAF4 800306F4 00000000 */ nop -/* BAF8 800306F8 460CD001 */ sub.s $f0, $f26, $f12 -/* BAFC 800306FC 46060002 */ mul.s $f0, $f0, $f6 -/* BB00 80030700 00000000 */ nop -/* BB04 80030704 4612A100 */ add.s $f4, $f20, $f18 -/* BB08 80030708 46001080 */ add.s $f2, $f2, $f0 -/* BB0C 8003070C 46041103 */ div.s $f4, $f2, $f4 -/* BB10 80030710 46082002 */ mul.s $f0, $f4, $f8 -/* BB14 80030714 00000000 */ nop -/* BB18 80030718 46062102 */ mul.s $f4, $f4, $f6 -/* BB1C 8003071C 00000000 */ nop -/* BB20 80030720 460E0400 */ add.s $f16, $f0, $f14 -/* BB24 80030724 46007586 */ mov.s $f22, $f14 -/* BB28 80030728 46004386 */ mov.s $f14, $f8 -/* BB2C 8003072C 46168201 */ sub.s $f8, $f16, $f22 -/* BB30 80030730 46087002 */ mul.s $f0, $f14, $f8 -/* BB34 80030734 00000000 */ nop -/* BB38 80030738 460C2280 */ add.s $f10, $f4, $f12 -/* BB3C 8003073C 46006106 */ mov.s $f4, $f12 -/* BB40 80030740 46003306 */ mov.s $f12, $f6 -/* BB44 80030744 46045181 */ sub.s $f6, $f10, $f4 -/* BB48 80030748 46066082 */ mul.s $f2, $f12, $f6 -/* BB4C 8003074C 00000000 */ nop -/* BB50 80030750 4610C501 */ sub.s $f20, $f24, $f16 -/* BB54 80030754 E7BC0018 */ swc1 $f28, 0x18($sp) -/* BB58 80030758 46020000 */ add.s $f0, $f0, $f2 -/* BB5C 8003075C 4480E000 */ mtc1 $zero, $f28 -/* BB60 80030760 00000000 */ nop -/* BB64 80030764 461C003C */ c.lt.s $f0, $f28 -/* BB68 80030768 00000000 */ nop -/* BB6C 8003076C 45000004 */ bc1f .LJP_80030780 -/* BB70 80030770 460AD481 */ sub.s $f18, $f26, $f10 -/* BB74 80030774 4600B406 */ mov.s $f16, $f22 -/* BB78 80030778 0800C1F0 */ j .LJP_800307C0 -/* BB7C 8003077C 46002286 */ mov.s $f10, $f4 -.LJP_80030780: -/* BB80 80030780 46084082 */ mul.s $f2, $f8, $f8 -/* BB84 80030784 00000000 */ nop -/* BB88 80030788 46063182 */ mul.s $f6, $f6, $f6 -/* BB8C 8003078C 00000000 */ nop -/* BB90 80030790 460E7002 */ mul.s $f0, $f14, $f14 -/* BB94 80030794 00000000 */ nop -/* BB98 80030798 460C6102 */ mul.s $f4, $f12, $f12 -/* BB9C 8003079C 00000000 */ nop -/* BBA0 800307A0 46061080 */ add.s $f2, $f2, $f6 -/* BBA4 800307A4 46040000 */ add.s $f0, $f0, $f4 -/* BBA8 800307A8 4602003C */ c.lt.s $f0, $f2 -/* BBAC 800307AC 00000000 */ nop -/* BBB0 800307B0 45000003 */ bc1f .LJP_800307C0 -/* BBB4 800307B4 00000000 */ nop -/* BBB8 800307B8 C7B00014 */ lwc1 $f16, 0x14($sp) -/* BBBC 800307BC C7AA0018 */ lwc1 $f10, 0x18($sp) -.LJP_800307C0: -/* BBC0 800307C0 8E020028 */ lw $v0, 0x28($s0) -/* BBC4 800307C4 54400004 */ bnel $v0, $zero, .LJP_800307D8 -/* BBC8 800307C8 E6300010 */ swc1 $f16, 0x10($s1) -/* BBCC 800307CC 46148400 */ add.s $f16, $f16, $f20 -/* BBD0 800307D0 46125280 */ add.s $f10, $f10, $f18 -/* BBD4 800307D4 E6300010 */ swc1 $f16, 0x10($s1) -.LJP_800307D8: -/* BBD8 800307D8 E63E0014 */ swc1 $f30, 0x14($s1) -/* BBDC 800307DC E62A0018 */ swc1 $f10, 0x18($s1) -.LJP_800307E0: -/* BBE0 800307E0 12E0021B */ beqz $s7, .LJP_80031050 -/* BBE4 800307E4 00000000 */ nop -/* BBE8 800307E8 C6C00000 */ lwc1 $f0, 0x0($s6) -/* BBEC 800307EC 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* BBF0 800307F0 44812000 */ mtc1 $at, $f4 -/* BBF4 800307F4 00000000 */ nop -/* BBF8 800307F8 46040032 */ c.eq.s $f0, $f4 -/* BBFC 800307FC 00000000 */ nop -/* BC00 80030800 450101CA */ bc1t .LJP_80030F2C -/* BC04 80030804 00000000 */ nop -/* BC08 80030808 8E840000 */ lw $a0, 0x0($s4) -/* BC0C 8003080C 24820002 */ addiu $v0, $a0, 0x2 -/* BC10 80030810 2C420003 */ sltiu $v0, $v0, 0x3 -/* BC14 80030814 144001C5 */ bnez $v0, .LJP_80030F2C -/* BC18 80030818 00000000 */ nop -/* BC1C 8003081C 8C830000 */ lw $v1, 0x0($a0) -/* BC20 80030820 8E020000 */ lw $v0, 0x0($s0) -/* BC24 80030824 146201C1 */ bne $v1, $v0, .LJP_80030F2C -/* BC28 80030828 00000000 */ nop -/* BC2C 8003082C C4820004 */ lwc1 $f2, 0x4($a0) -/* BC30 80030830 C6000004 */ lwc1 $f0, 0x4($s0) -/* BC34 80030834 46001032 */ c.eq.s $f2, $f0 -/* BC38 80030838 00000000 */ nop -/* BC3C 8003083C 450001BB */ bc1f .LJP_80030F2C -/* BC40 80030840 00000000 */ nop -/* BC44 80030844 C4820008 */ lwc1 $f2, 0x8($a0) -/* BC48 80030848 C6000008 */ lwc1 $f0, 0x8($s0) -/* BC4C 8003084C 46001032 */ c.eq.s $f2, $f0 -/* BC50 80030850 00000000 */ nop -/* BC54 80030854 450001B5 */ bc1f .LJP_80030F2C -/* BC58 80030858 00000000 */ nop -/* BC5C 8003085C C4820024 */ lwc1 $f2, 0x24($a0) -/* BC60 80030860 C6000024 */ lwc1 $f0, 0x24($s0) -/* BC64 80030864 46001032 */ c.eq.s $f2, $f0 -/* BC68 80030868 00000000 */ nop -/* BC6C 8003086C 450001AF */ bc1f .LJP_80030F2C -/* BC70 80030870 00000000 */ nop -/* BC74 80030874 8C830028 */ lw $v1, 0x28($a0) -/* BC78 80030878 8E020028 */ lw $v0, 0x28($s0) -/* BC7C 8003087C 546201AB */ bnel $v1, $v0, .LJP_80030F2C -/* BC80 80030880 E6C40000 */ swc1 $f4, 0x0($s6) -/* BC84 80030884 0800C3CB */ j .LJP_80030F2C -/* BC88 80030888 00000000 */ nop -glabel .LJP_8003088C -/* BC8C 8003088C C6040004 */ lwc1 $f4, 0x4($s0) -/* BC90 80030890 44800000 */ mtc1 $zero, $f0 -/* BC94 80030894 00000000 */ nop -/* BC98 80030898 4600203C */ c.lt.s $f4, $f0 -/* BC9C 8003089C 00000000 */ nop -/* BCA0 800308A0 45000008 */ bc1f .LJP_800308C4 -/* BCA4 800308A4 00000000 */ nop -/* BCA8 800308A8 C600000C */ lwc1 $f0, 0xC($s0) -/* BCAC 800308AC 4600C581 */ sub.s $f22, $f24, $f0 -/* BCB0 800308B0 C6020014 */ lwc1 $f2, 0x14($s0) -/* BCB4 800308B4 46002007 */ neg.s $f0, $f4 -/* BCB8 800308B8 E6200004 */ swc1 $f0, 0x4($s1) -/* BCBC 800308BC 0800C236 */ j .LJP_800308D8 -/* BCC0 800308C0 4602D501 */ sub.s $f20, $f26, $f2 -.LJP_800308C4: -/* BCC4 800308C4 C600000C */ lwc1 $f0, 0xC($s0) -/* BCC8 800308C8 46180581 */ sub.s $f22, $f0, $f24 -/* BCCC 800308CC C6000014 */ lwc1 $f0, 0x14($s0) -/* BCD0 800308D0 E6240004 */ swc1 $f4, 0x4($s1) -/* BCD4 800308D4 461A0501 */ sub.s $f20, $f0, $f26 -.LJP_800308D8: -/* BCD8 800308D8 4406B000 */ mfc1 $a2, $f22 -/* BCDC 800308DC 44806000 */ mtc1 $zero, $f12 -/* BCE0 800308E0 4407A000 */ mfc1 $a3, $f20 -/* BCE4 800308E4 0C00A710 */ jal atan2 -/* BCE8 800308E8 46006386 */ mov.s $f14, $f12 -/* BCEC 800308EC E6200000 */ swc1 $f0, 0x0($s1) -/* BCF0 800308F0 C6000008 */ lwc1 $f0, 0x8($s0) -/* BCF4 800308F4 E6200008 */ swc1 $f0, 0x8($s1) -/* BCF8 800308F8 C6000024 */ lwc1 $f0, 0x24($s0) -/* BCFC 800308FC E620000C */ swc1 $f0, 0xC($s1) -/* BD00 80030900 8E020028 */ lw $v0, 0x28($s0) -/* BD04 80030904 5040003E */ beql $v0, $zero, .LJP_80030A00 -/* BD08 80030908 E6380010 */ swc1 $f24, 0x10($s1) -/* BD0C 8003090C C600000C */ lwc1 $f0, 0xC($s0) -/* BD10 80030910 4600C581 */ sub.s $f22, $f24, $f0 -/* BD14 80030914 4616B082 */ mul.s $f2, $f22, $f22 -/* BD18 80030918 00000000 */ nop -/* BD1C 8003091C C6000014 */ lwc1 $f0, 0x14($s0) -/* BD20 80030920 4600D501 */ sub.s $f20, $f26, $f0 -/* BD24 80030924 4614A002 */ mul.s $f0, $f20, $f20 -/* BD28 80030928 00000000 */ nop -/* BD2C 8003092C 46001600 */ add.s $f24, $f2, $f0 -/* BD30 80030930 4480E000 */ mtc1 $zero, $f28 -/* BD34 80030934 00000000 */ nop -/* BD38 80030938 461CC032 */ c.eq.s $f24, $f28 -/* BD3C 8003093C 00000000 */ nop -/* BD40 80030940 45010031 */ bc1t .LJP_80030A08 -/* BD44 80030944 00000000 */ nop -/* BD48 80030948 4600C184 */ sqrt.s $f6, $f24 -/* BD4C 8003094C 46063032 */ c.eq.s $f6, $f6 -/* BD50 80030950 00000000 */ nop -/* BD54 80030954 45010004 */ bc1t .LJP_80030968 -/* BD58 80030958 00000000 */ nop -/* BD5C 8003095C 0C0187B0 */ jal sqrtf -/* BD60 80030960 4600C306 */ mov.s $f12, $f24 -/* BD64 80030964 46000186 */ mov.s $f6, $f0 -.LJP_80030968: -/* BD68 80030968 C6040018 */ lwc1 $f4, 0x18($s0) -/* BD6C 8003096C C600000C */ lwc1 $f0, 0xC($s0) -/* BD70 80030970 46002101 */ sub.s $f4, $f4, $f0 -/* BD74 80030974 46042102 */ mul.s $f4, $f4, $f4 -/* BD78 80030978 00000000 */ nop -/* BD7C 8003097C C6020014 */ lwc1 $f2, 0x14($s0) -/* BD80 80030980 C6000020 */ lwc1 $f0, 0x20($s0) -/* BD84 80030984 46020001 */ sub.s $f0, $f0, $f2 -/* BD88 80030988 46000002 */ mul.s $f0, $f0, $f0 -/* BD8C 8003098C 00000000 */ nop -/* BD90 80030990 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* BD94 80030994 44811000 */ mtc1 $at, $f2 -/* BD98 80030998 46002300 */ add.s $f12, $f4, $f0 -/* BD9C 8003099C 46061603 */ div.s $f24, $f2, $f6 -/* BDA0 800309A0 46006084 */ sqrt.s $f2, $f12 -/* BDA4 800309A4 46021032 */ c.eq.s $f2, $f2 -/* BDA8 800309A8 00000000 */ nop -/* BDAC 800309AC 45010004 */ bc1t .LJP_800309C0 -/* BDB0 800309B0 00000000 */ nop -/* BDB4 800309B4 0C0187B0 */ jal sqrtf -/* BDB8 800309B8 00000000 */ nop -/* BDBC 800309BC 46000086 */ mov.s $f2, $f0 -.LJP_800309C0: -/* BDC0 800309C0 4602B002 */ mul.s $f0, $f22, $f2 -/* BDC4 800309C4 00000000 */ nop -/* BDC8 800309C8 4602A102 */ mul.s $f4, $f20, $f2 -/* BDCC 800309CC 00000000 */ nop -/* BDD0 800309D0 46180002 */ mul.s $f0, $f0, $f24 -/* BDD4 800309D4 00000000 */ nop -/* BDD8 800309D8 C602000C */ lwc1 $f2, 0xC($s0) -/* BDDC 800309DC 46001080 */ add.s $f2, $f2, $f0 -/* BDE0 800309E0 46182102 */ mul.s $f4, $f4, $f24 -/* BDE4 800309E4 00000000 */ nop -/* BDE8 800309E8 E63E0014 */ swc1 $f30, 0x14($s1) -/* BDEC 800309EC E6220010 */ swc1 $f2, 0x10($s1) -/* BDF0 800309F0 C6000014 */ lwc1 $f0, 0x14($s0) -/* BDF4 800309F4 46040000 */ add.s $f0, $f0, $f4 -/* BDF8 800309F8 0800C282 */ j .LJP_80030A08 -/* BDFC 800309FC E6200018 */ swc1 $f0, 0x18($s1) -.LJP_80030A00: -/* BE00 80030A00 E63E0014 */ swc1 $f30, 0x14($s1) -/* BE04 80030A04 E63A0018 */ swc1 $f26, 0x18($s1) -.LJP_80030A08: -/* BE08 80030A08 12E00191 */ beqz $s7, .LJP_80031050 -/* BE0C 80030A0C 00000000 */ nop -/* BE10 80030A10 C6C00000 */ lwc1 $f0, 0x0($s6) -/* BE14 80030A14 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* BE18 80030A18 44812000 */ mtc1 $at, $f4 -/* BE1C 80030A1C 00000000 */ nop -/* BE20 80030A20 46040032 */ c.eq.s $f0, $f4 -/* BE24 80030A24 00000000 */ nop -/* BE28 80030A28 45010140 */ bc1t .LJP_80030F2C -/* BE2C 80030A2C 00000000 */ nop -/* BE30 80030A30 8E840000 */ lw $a0, 0x0($s4) -/* BE34 80030A34 24820002 */ addiu $v0, $a0, 0x2 -/* BE38 80030A38 2C420003 */ sltiu $v0, $v0, 0x3 -/* BE3C 80030A3C 1440013B */ bnez $v0, .LJP_80030F2C -/* BE40 80030A40 00000000 */ nop -/* BE44 80030A44 8C830000 */ lw $v1, 0x0($a0) -/* BE48 80030A48 8E020000 */ lw $v0, 0x0($s0) -/* BE4C 80030A4C 14620137 */ bne $v1, $v0, .LJP_80030F2C -/* BE50 80030A50 00000000 */ nop -/* BE54 80030A54 C4820004 */ lwc1 $f2, 0x4($a0) -/* BE58 80030A58 C6000004 */ lwc1 $f0, 0x4($s0) -/* BE5C 80030A5C 46001032 */ c.eq.s $f2, $f0 -/* BE60 80030A60 00000000 */ nop -/* BE64 80030A64 45000131 */ bc1f .LJP_80030F2C -/* BE68 80030A68 00000000 */ nop -/* BE6C 80030A6C C4820008 */ lwc1 $f2, 0x8($a0) -/* BE70 80030A70 C6000008 */ lwc1 $f0, 0x8($s0) -/* BE74 80030A74 46001032 */ c.eq.s $f2, $f0 -/* BE78 80030A78 00000000 */ nop -/* BE7C 80030A7C 4500012B */ bc1f .LJP_80030F2C -/* BE80 80030A80 00000000 */ nop -/* BE84 80030A84 C4820024 */ lwc1 $f2, 0x24($a0) -/* BE88 80030A88 C6000024 */ lwc1 $f0, 0x24($s0) -/* BE8C 80030A8C 46001032 */ c.eq.s $f2, $f0 -/* BE90 80030A90 00000000 */ nop -/* BE94 80030A94 45000125 */ bc1f .LJP_80030F2C -/* BE98 80030A98 00000000 */ nop -/* BE9C 80030A9C 8C830028 */ lw $v1, 0x28($a0) -/* BEA0 80030AA0 8E020028 */ lw $v0, 0x28($s0) -/* BEA4 80030AA4 10620121 */ beq $v1, $v0, .LJP_80030F2C -/* BEA8 80030AA8 00000000 */ nop -/* BEAC 80030AAC C482000C */ lwc1 $f2, 0xC($a0) -/* BEB0 80030AB0 C600000C */ lwc1 $f0, 0xC($s0) -/* BEB4 80030AB4 46001032 */ c.eq.s $f2, $f0 -/* BEB8 80030AB8 00000000 */ nop -/* BEBC 80030ABC 4500011B */ bc1f .LJP_80030F2C -/* BEC0 80030AC0 00000000 */ nop -/* BEC4 80030AC4 C4820014 */ lwc1 $f2, 0x14($a0) -/* BEC8 80030AC8 C6000014 */ lwc1 $f0, 0x14($s0) -/* BECC 80030ACC 46001032 */ c.eq.s $f2, $f0 -/* BED0 80030AD0 00000000 */ nop -/* BED4 80030AD4 45030115 */ bc1tl .LJP_80030F2C -/* BED8 80030AD8 E6C40000 */ swc1 $f4, 0x0($s6) -/* BEDC 80030ADC 0800C3CB */ j .LJP_80030F2C -/* BEE0 80030AE0 00000000 */ nop -glabel .LJP_80030AE4 -/* BEE4 80030AE4 8E020028 */ lw $v0, 0x28($s0) -/* BEE8 80030AE8 1440005D */ bnez $v0, .LJP_80030C60 -/* BEEC 80030AEC 00000000 */ nop -/* BEF0 80030AF0 C612000C */ lwc1 $f18, 0xC($s0) -/* BEF4 80030AF4 C6100018 */ lwc1 $f16, 0x18($s0) -/* BEF8 80030AF8 C60A0014 */ lwc1 $f10, 0x14($s0) -/* BEFC 80030AFC C60C0020 */ lwc1 $f12, 0x20($s0) -/* BF00 80030B00 C6040010 */ lwc1 $f4, 0x10($s0) -/* BF04 80030B04 C60E001C */ lwc1 $f14, 0x1C($s0) -/* BF08 80030B08 46109032 */ c.eq.s $f18, $f16 -/* BF0C 80030B0C 00000000 */ nop -/* BF10 80030B10 45000007 */ bc1f .LJP_80030B30 -/* BF14 80030B14 46048201 */ sub.s $f8, $f16, $f4 -/* BF18 80030B18 460C5032 */ c.eq.s $f10, $f12 -/* BF1C 80030B1C 00000000 */ nop -/* BF20 80030B20 45000003 */ bc1f .LJP_80030B30 -/* BF24 80030B24 00000000 */ nop -/* BF28 80030B28 46002486 */ mov.s $f18, $f4 -/* BF2C 80030B2C 46007286 */ mov.s $f10, $f14 -.LJP_80030B30: -/* BF30 80030B30 44800000 */ mtc1 $zero, $f0 -/* BF34 80030B34 00000000 */ nop -/* BF38 80030B38 46004032 */ c.eq.s $f8, $f0 -/* BF3C 80030B3C 00000000 */ nop -/* BF40 80030B40 45020017 */ bc1fl .LJP_80030BA0 -/* BF44 80030B44 460C5181 */ sub.s $f6, $f10, $f12 -/* BF48 80030B48 46128181 */ sub.s $f6, $f16, $f18 -/* BF4C 80030B4C 46064102 */ mul.s $f4, $f8, $f6 -/* BF50 80030B50 00000000 */ nop -/* BF54 80030B54 461A6081 */ sub.s $f2, $f12, $f26 -/* BF58 80030B58 46081082 */ mul.s $f2, $f2, $f8 -/* BF5C 80030B5C 00000000 */ nop -/* BF60 80030B60 460C5281 */ sub.s $f10, $f10, $f12 -/* BF64 80030B64 460E6201 */ sub.s $f8, $f12, $f14 -/* BF68 80030B68 4610C001 */ sub.s $f0, $f24, $f16 -/* BF6C 80030B6C 46081083 */ div.s $f2, $f2, $f8 -/* BF70 80030B70 46020000 */ add.s $f0, $f0, $f2 -/* BF74 80030B74 46005082 */ mul.s $f2, $f10, $f0 -/* BF78 80030B78 00000000 */ nop -/* BF7C 80030B7C 46003182 */ mul.s $f6, $f6, $f0 -/* BF80 80030B80 00000000 */ nop -/* BF84 80030B84 46082103 */ div.s $f4, $f4, $f8 -/* BF88 80030B88 460A2101 */ sub.s $f4, $f4, $f10 -/* BF8C 80030B8C 46041083 */ div.s $f2, $f2, $f4 -/* BF90 80030B90 46181200 */ add.s $f8, $f2, $f24 -/* BF94 80030B94 46043183 */ div.s $f6, $f6, $f4 -/* BF98 80030B98 0800C2FC */ j .LJP_80030BF0 -/* BF9C 80030B9C 461A3000 */ add.s $f0, $f6, $f26 -.LJP_80030BA0: -/* BFA0 80030BA0 460E6081 */ sub.s $f2, $f12, $f14 -/* BFA4 80030BA4 46023102 */ mul.s $f4, $f6, $f2 -/* BFA8 80030BA8 00000000 */ nop -/* BFAC 80030BAC 46188001 */ sub.s $f0, $f16, $f24 -/* BFB0 80030BB0 46020002 */ mul.s $f0, $f0, $f2 -/* BFB4 80030BB4 00000000 */ nop -/* BFB8 80030BB8 460CD081 */ sub.s $f2, $f26, $f12 -/* BFBC 80030BBC 46080003 */ div.s $f0, $f0, $f8 -/* BFC0 80030BC0 46001080 */ add.s $f2, $f2, $f0 -/* BFC4 80030BC4 46023182 */ mul.s $f6, $f6, $f2 -/* BFC8 80030BC8 00000000 */ nop -/* BFCC 80030BCC 46128001 */ sub.s $f0, $f16, $f18 -/* BFD0 80030BD0 46020082 */ mul.s $f2, $f0, $f2 -/* BFD4 80030BD4 00000000 */ nop -/* BFD8 80030BD8 46082103 */ div.s $f4, $f4, $f8 -/* BFDC 80030BDC 46002101 */ sub.s $f4, $f4, $f0 -/* BFE0 80030BE0 46043183 */ div.s $f6, $f6, $f4 -/* BFE4 80030BE4 46183200 */ add.s $f8, $f6, $f24 -/* BFE8 80030BE8 46041083 */ div.s $f2, $f2, $f4 -/* BFEC 80030BEC 461A1000 */ add.s $f0, $f2, $f26 -.LJP_80030BF0: -/* BFF0 80030BF0 E6280010 */ swc1 $f8, 0x10($s1) -/* BFF4 80030BF4 E63E0014 */ swc1 $f30, 0x14($s1) -/* BFF8 80030BF8 12A0003E */ beqz $s5, .LJP_80030CF4 -/* BFFC 80030BFC E6200018 */ swc1 $f0, 0x18($s1) -/* C000 80030C00 C6020018 */ lwc1 $f2, 0x18($s0) -/* C004 80030C04 C600000C */ lwc1 $f0, 0xC($s0) -/* C008 80030C08 46001081 */ sub.s $f2, $f2, $f0 -/* C00C 80030C0C C6000014 */ lwc1 $f0, 0x14($s0) -/* C010 80030C10 44061000 */ mfc1 $a2, $f2 -/* C014 80030C14 C6020020 */ lwc1 $f2, 0x20($s0) -/* C018 80030C18 4480A000 */ mtc1 $zero, $f20 -/* C01C 80030C1C 46001081 */ sub.s $f2, $f2, $f0 -/* C020 80030C20 4600A306 */ mov.s $f12, $f20 -/* C024 80030C24 44071000 */ mfc1 $a3, $f2 -/* C028 80030C28 0C00A710 */ jal atan2 -/* C02C 80030C2C 4600A386 */ mov.s $f14, $f20 -/* C030 80030C30 E6200000 */ swc1 $f0, 0x0($s1) -/* C034 80030C34 C6000004 */ lwc1 $f0, 0x4($s0) -/* C038 80030C38 4614003C */ c.lt.s $f0, $f20 -/* C03C 80030C3C 00000000 */ nop -/* C040 80030C40 45030001 */ bc1tl .LJP_80030C48 -/* C044 80030C44 46000007 */ neg.s $f0, $f0 -.LJP_80030C48: -/* C048 80030C48 E6200004 */ swc1 $f0, 0x4($s1) -/* C04C 80030C4C C6000008 */ lwc1 $f0, 0x8($s0) -/* C050 80030C50 E6200008 */ swc1 $f0, 0x8($s1) -/* C054 80030C54 C6000024 */ lwc1 $f0, 0x24($s0) -/* C058 80030C58 0800C33D */ j .LJP_80030CF4 -/* C05C 80030C5C E620000C */ swc1 $f0, 0xC($s1) -.LJP_80030C60: -/* C060 80030C60 12A0001D */ beqz $s5, .LJP_80030CD8 -/* C064 80030C64 00000000 */ nop -/* C068 80030C68 C6020018 */ lwc1 $f2, 0x18($s0) -/* C06C 80030C6C C600000C */ lwc1 $f0, 0xC($s0) -/* C070 80030C70 46001081 */ sub.s $f2, $f2, $f0 -/* C074 80030C74 C6000014 */ lwc1 $f0, 0x14($s0) -/* C078 80030C78 44061000 */ mfc1 $a2, $f2 -/* C07C 80030C7C C6020020 */ lwc1 $f2, 0x20($s0) -/* C080 80030C80 4480A000 */ mtc1 $zero, $f20 -/* C084 80030C84 46001081 */ sub.s $f2, $f2, $f0 -/* C088 80030C88 4600A306 */ mov.s $f12, $f20 -/* C08C 80030C8C 44071000 */ mfc1 $a3, $f2 -/* C090 80030C90 0C00A710 */ jal atan2 -/* C094 80030C94 4600A386 */ mov.s $f14, $f20 -/* C098 80030C98 E6200000 */ swc1 $f0, 0x0($s1) -/* C09C 80030C9C C6000004 */ lwc1 $f0, 0x4($s0) -/* C0A0 80030CA0 4614003C */ c.lt.s $f0, $f20 -/* C0A4 80030CA4 00000000 */ nop -/* C0A8 80030CA8 45030001 */ bc1tl .LJP_80030CB0 -/* C0AC 80030CAC 46000007 */ neg.s $f0, $f0 -.LJP_80030CB0: -/* C0B0 80030CB0 E6200004 */ swc1 $f0, 0x4($s1) -/* C0B4 80030CB4 C6000008 */ lwc1 $f0, 0x8($s0) -/* C0B8 80030CB8 E6200008 */ swc1 $f0, 0x8($s1) -/* C0BC 80030CBC C6000024 */ lwc1 $f0, 0x24($s0) -/* C0C0 80030CC0 E620000C */ swc1 $f0, 0xC($s1) -/* C0C4 80030CC4 C6000018 */ lwc1 $f0, 0x18($s0) -/* C0C8 80030CC8 E6200010 */ swc1 $f0, 0x10($s1) -/* C0CC 80030CCC C6000020 */ lwc1 $f0, 0x20($s0) -/* C0D0 80030CD0 0800C33C */ j .LJP_80030CF0 -/* C0D4 80030CD4 E6200018 */ swc1 $f0, 0x18($s1) -.LJP_80030CD8: -/* C0D8 80030CD8 52E00006 */ beql $s7, $zero, .LJP_80030CF4 -/* C0DC 80030CDC E63E0014 */ swc1 $f30, 0x14($s1) -/* C0E0 80030CE0 C6400010 */ lwc1 $f0, 0x10($s2) -/* C0E4 80030CE4 E6200010 */ swc1 $f0, 0x10($s1) -/* C0E8 80030CE8 C6400018 */ lwc1 $f0, 0x18($s2) -/* C0EC 80030CEC E6200018 */ swc1 $f0, 0x18($s1) -.LJP_80030CF0: -/* C0F0 80030CF0 E63E0014 */ swc1 $f30, 0x14($s1) -.LJP_80030CF4: -/* C0F4 80030CF4 0800C3CA */ j .LJP_80030F28 -/* C0F8 80030CF8 2402FFFF */ addiu $v0, $zero, -0x1 -glabel .LJP_80030CFC -/* C0FC 80030CFC 8E020028 */ lw $v0, 0x28($s0) -/* C100 80030D00 1440003A */ bnez $v0, .LJP_80030DEC -/* C104 80030D04 00000000 */ nop -/* C108 80030D08 C60C0010 */ lwc1 $f12, 0x10($s0) -/* C10C 80030D0C C6060018 */ lwc1 $f6, 0x18($s0) -/* C110 80030D10 460C3181 */ sub.s $f6, $f6, $f12 -/* C114 80030D14 46063102 */ mul.s $f4, $f6, $f6 -/* C118 80030D18 00000000 */ nop -/* C11C 80030D1C C60A001C */ lwc1 $f10, 0x1C($s0) -/* C120 80030D20 C6080020 */ lwc1 $f8, 0x20($s0) -/* C124 80030D24 460A4201 */ sub.s $f8, $f8, $f10 -/* C128 80030D28 46084382 */ mul.s $f14, $f8, $f8 -/* C12C 80030D2C 00000000 */ nop -/* C130 80030D30 460CC081 */ sub.s $f2, $f24, $f12 -/* C134 80030D34 46061082 */ mul.s $f2, $f2, $f6 -/* C138 80030D38 00000000 */ nop -/* C13C 80030D3C 460AD001 */ sub.s $f0, $f26, $f10 -/* C140 80030D40 46080002 */ mul.s $f0, $f0, $f8 -/* C144 80030D44 00000000 */ nop -/* C148 80030D48 460E2100 */ add.s $f4, $f4, $f14 -/* C14C 80030D4C 46001080 */ add.s $f2, $f2, $f0 -/* C150 80030D50 46041103 */ div.s $f4, $f2, $f4 -/* C154 80030D54 46062182 */ mul.s $f6, $f4, $f6 -/* C158 80030D58 00000000 */ nop -/* C15C 80030D5C 46082102 */ mul.s $f4, $f4, $f8 -/* C160 80030D60 00000000 */ nop -/* C164 80030D64 460C3080 */ add.s $f2, $f6, $f12 -/* C168 80030D68 44800000 */ mtc1 $zero, $f0 -/* C16C 80030D6C 460A2100 */ add.s $f4, $f4, $f10 -/* C170 80030D70 E63E0014 */ swc1 $f30, 0x14($s1) -/* C174 80030D74 E6220010 */ swc1 $f2, 0x10($s1) -/* C178 80030D78 E6240018 */ swc1 $f4, 0x18($s1) -/* C17C 80030D7C C6080004 */ lwc1 $f8, 0x4($s0) -/* C180 80030D80 4600403C */ c.lt.s $f8, $f0 -/* C184 80030D84 00000000 */ nop -/* C188 80030D88 45000008 */ bc1f .LJP_80030DAC -/* C18C 80030D8C 00000000 */ nop -/* C190 80030D90 C600000C */ lwc1 $f0, 0xC($s0) -/* C194 80030D94 46001581 */ sub.s $f22, $f2, $f0 -/* C198 80030D98 C6020014 */ lwc1 $f2, 0x14($s0) -/* C19C 80030D9C 46004007 */ neg.s $f0, $f8 -/* C1A0 80030DA0 E6200004 */ swc1 $f0, 0x4($s1) -/* C1A4 80030DA4 0800C370 */ j .LJP_80030DC0 -/* C1A8 80030DA8 46022501 */ sub.s $f20, $f4, $f2 -.LJP_80030DAC: -/* C1AC 80030DAC C600000C */ lwc1 $f0, 0xC($s0) -/* C1B0 80030DB0 46020581 */ sub.s $f22, $f0, $f2 -/* C1B4 80030DB4 C6000014 */ lwc1 $f0, 0x14($s0) -/* C1B8 80030DB8 E6280004 */ swc1 $f8, 0x4($s1) -/* C1BC 80030DBC 46040501 */ sub.s $f20, $f0, $f4 -.LJP_80030DC0: -/* C1C0 80030DC0 4406B000 */ mfc1 $a2, $f22 -/* C1C4 80030DC4 44806000 */ mtc1 $zero, $f12 -/* C1C8 80030DC8 4407A000 */ mfc1 $a3, $f20 -/* C1CC 80030DCC 0C00A710 */ jal atan2 -/* C1D0 80030DD0 46006386 */ mov.s $f14, $f12 -/* C1D4 80030DD4 E6200000 */ swc1 $f0, 0x0($s1) -/* C1D8 80030DD8 C6000008 */ lwc1 $f0, 0x8($s0) -/* C1DC 80030DDC E6200008 */ swc1 $f0, 0x8($s1) -/* C1E0 80030DE0 C6000024 */ lwc1 $f0, 0x24($s0) -/* C1E4 80030DE4 0800C3A6 */ j .LJP_80030E98 -/* C1E8 80030DE8 E620000C */ swc1 $f0, 0xC($s1) -.LJP_80030DEC: -/* C1EC 80030DEC 12A00023 */ beqz $s5, .LJP_80030E7C -/* C1F0 80030DF0 00000000 */ nop -/* C1F4 80030DF4 C6060004 */ lwc1 $f6, 0x4($s0) -/* C1F8 80030DF8 44800000 */ mtc1 $zero, $f0 -/* C1FC 80030DFC 00000000 */ nop -/* C200 80030E00 4600303C */ c.lt.s $f6, $f0 -/* C204 80030E04 00000000 */ nop -/* C208 80030E08 4500000A */ bc1f .LJP_80030E34 -/* C20C 80030E0C 00000000 */ nop -/* C210 80030E10 C6020018 */ lwc1 $f2, 0x18($s0) -/* C214 80030E14 C600000C */ lwc1 $f0, 0xC($s0) -/* C218 80030E18 46001581 */ sub.s $f22, $f2, $f0 -/* C21C 80030E1C C6040020 */ lwc1 $f4, 0x20($s0) -/* C220 80030E20 C6020014 */ lwc1 $f2, 0x14($s0) -/* C224 80030E24 46003007 */ neg.s $f0, $f6 -/* C228 80030E28 E6200004 */ swc1 $f0, 0x4($s1) -/* C22C 80030E2C 0800C394 */ j .LJP_80030E50 -/* C230 80030E30 46022501 */ sub.s $f20, $f4, $f2 -.LJP_80030E34: -/* C234 80030E34 C602000C */ lwc1 $f2, 0xC($s0) -/* C238 80030E38 C6000018 */ lwc1 $f0, 0x18($s0) -/* C23C 80030E3C 46001581 */ sub.s $f22, $f2, $f0 -/* C240 80030E40 C6020014 */ lwc1 $f2, 0x14($s0) -/* C244 80030E44 C6000020 */ lwc1 $f0, 0x20($s0) -/* C248 80030E48 E6260004 */ swc1 $f6, 0x4($s1) -/* C24C 80030E4C 46001501 */ sub.s $f20, $f2, $f0 -.LJP_80030E50: -/* C250 80030E50 4406B000 */ mfc1 $a2, $f22 -/* C254 80030E54 44806000 */ mtc1 $zero, $f12 -/* C258 80030E58 4407A000 */ mfc1 $a3, $f20 -/* C25C 80030E5C 0C00A710 */ jal atan2 -/* C260 80030E60 46006386 */ mov.s $f14, $f12 -/* C264 80030E64 E6200000 */ swc1 $f0, 0x0($s1) -/* C268 80030E68 C6000008 */ lwc1 $f0, 0x8($s0) -/* C26C 80030E6C E6200008 */ swc1 $f0, 0x8($s1) -/* C270 80030E70 C6000024 */ lwc1 $f0, 0x24($s0) -/* C274 80030E74 0800C3A1 */ j .LJP_80030E84 -/* C278 80030E78 E620000C */ swc1 $f0, 0xC($s1) -.LJP_80030E7C: -/* C27C 80030E7C 52E00006 */ beql $s7, $zero, .LJP_80030E98 -/* C280 80030E80 E63E0014 */ swc1 $f30, 0x14($s1) -.LJP_80030E84: -/* C284 80030E84 C6000018 */ lwc1 $f0, 0x18($s0) -/* C288 80030E88 E6200010 */ swc1 $f0, 0x10($s1) -/* C28C 80030E8C C6000020 */ lwc1 $f0, 0x20($s0) -/* C290 80030E90 E6200018 */ swc1 $f0, 0x18($s1) -/* C294 80030E94 E63E0014 */ swc1 $f30, 0x14($s1) -.LJP_80030E98: -/* C298 80030E98 0800C3CA */ j .LJP_80030F28 -/* C29C 80030E9C 2402FFFF */ addiu $v0, $zero, -0x1 -glabel .LJP_80030EA0 -/* C2A0 80030EA0 E6380010 */ swc1 $f24, 0x10($s1) -/* C2A4 80030EA4 E63E0014 */ swc1 $f30, 0x14($s1) -/* C2A8 80030EA8 0800C3CB */ j .LJP_80030F2C -/* C2AC 80030EAC E63A0018 */ swc1 $f26, 0x18($s1) -glabel .LJP_80030EB0 -/* C2B0 80030EB0 C6020018 */ lwc1 $f2, 0x18($s0) -/* C2B4 80030EB4 C600000C */ lwc1 $f0, 0xC($s0) -/* C2B8 80030EB8 46001081 */ sub.s $f2, $f2, $f0 -/* C2BC 80030EBC C6000014 */ lwc1 $f0, 0x14($s0) -/* C2C0 80030EC0 44061000 */ mfc1 $a2, $f2 -/* C2C4 80030EC4 C6020020 */ lwc1 $f2, 0x20($s0) -/* C2C8 80030EC8 4480A000 */ mtc1 $zero, $f20 -/* C2CC 80030ECC 46001081 */ sub.s $f2, $f2, $f0 -/* C2D0 80030ED0 4600A306 */ mov.s $f12, $f20 -/* C2D4 80030ED4 44071000 */ mfc1 $a3, $f2 -/* C2D8 80030ED8 0C00A710 */ jal atan2 -/* C2DC 80030EDC 4600A386 */ mov.s $f14, $f20 -/* C2E0 80030EE0 E6200000 */ swc1 $f0, 0x0($s1) -/* C2E4 80030EE4 C6000004 */ lwc1 $f0, 0x4($s0) -/* C2E8 80030EE8 4614003C */ c.lt.s $f0, $f20 -/* C2EC 80030EEC 00000000 */ nop -/* C2F0 80030EF0 45030001 */ bc1tl .LJP_80030EF8 -/* C2F4 80030EF4 46000007 */ neg.s $f0, $f0 -.LJP_80030EF8: -/* C2F8 80030EF8 E6200004 */ swc1 $f0, 0x4($s1) -/* C2FC 80030EFC C6000008 */ lwc1 $f0, 0x8($s0) -/* C300 80030F00 E6200008 */ swc1 $f0, 0x8($s1) -/* C304 80030F04 C6000024 */ lwc1 $f0, 0x24($s0) -/* C308 80030F08 E620000C */ swc1 $f0, 0xC($s1) -/* C30C 80030F0C C6000018 */ lwc1 $f0, 0x18($s0) -/* C310 80030F10 E6200010 */ swc1 $f0, 0x10($s1) -/* C314 80030F14 C600001C */ lwc1 $f0, 0x1C($s0) -/* C318 80030F18 E6200014 */ swc1 $f0, 0x14($s1) -/* C31C 80030F1C C6000020 */ lwc1 $f0, 0x20($s0) -/* C320 80030F20 2402FFFE */ addiu $v0, $zero, -0x2 -/* C324 80030F24 E6200018 */ swc1 $f0, 0x18($s1) -.LJP_80030F28: -/* C328 80030F28 AE820000 */ sw $v0, 0x0($s4) -.LJP_80030F2C: -/* C32C 80030F2C 12E00048 */ beqz $s7, .LJP_80031050 -/* C330 80030F30 24020005 */ addiu $v0, $zero, 0x5 -/* C334 80030F34 8E030000 */ lw $v1, 0x0($s0) -/* C338 80030F38 10620007 */ beq $v1, $v0, .LJP_80030F58 -/* C33C 80030F3C 00000000 */ nop -/* C340 80030F40 C6420000 */ lwc1 $f2, 0x0($s2) -/* C344 80030F44 C6600000 */ lwc1 $f0, 0x0($s3) -/* C348 80030F48 46001032 */ c.eq.s $f2, $f0 -/* C34C 80030F4C 00000000 */ nop -/* C350 80030F50 4501003F */ bc1t .LJP_80031050 -/* C354 80030F54 00000000 */ nop -.LJP_80030F58: -/* C358 80030F58 C6400000 */ lwc1 $f0, 0x0($s2) -/* C35C 80030F5C C6620000 */ lwc1 $f2, 0x0($s3) -/* C360 80030F60 46020001 */ sub.s $f0, $f0, $f2 -/* C364 80030F64 3C014040 */ lui $at, (0x40400000 >> 16) -/* C368 80030F68 44811000 */ mtc1 $at, $f2 -/* C36C 80030F6C 46000005 */ abs.s $f0, $f0 -/* C370 80030F70 4602003C */ c.lt.s $f0, $f2 -/* C374 80030F74 00000000 */ nop -/* C378 80030F78 45000035 */ bc1f .LJP_80031050 -/* C37C 80030F7C 00000000 */ nop -/* C380 80030F80 C6400004 */ lwc1 $f0, 0x4($s2) -/* C384 80030F84 C6620004 */ lwc1 $f2, 0x4($s3) -/* C388 80030F88 46020001 */ sub.s $f0, $f0, $f2 -/* C38C 80030F8C 3C014120 */ lui $at, (0x41200000 >> 16) -/* C390 80030F90 44812000 */ mtc1 $at, $f4 -/* C394 80030F94 46000005 */ abs.s $f0, $f0 -/* C398 80030F98 4604003C */ c.lt.s $f0, $f4 -/* C39C 80030F9C 00000000 */ nop -/* C3A0 80030FA0 4500002B */ bc1f .LJP_80031050 -/* C3A4 80030FA4 00000000 */ nop -/* C3A8 80030FA8 C6400008 */ lwc1 $f0, 0x8($s2) -/* C3AC 80030FAC C6620008 */ lwc1 $f2, 0x8($s3) -/* C3B0 80030FB0 46020001 */ sub.s $f0, $f0, $f2 -/* C3B4 80030FB4 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* C3B8 80030FB8 44813000 */ mtc1 $at, $f6 -/* C3BC 80030FBC 46000005 */ abs.s $f0, $f0 -/* C3C0 80030FC0 4606003C */ c.lt.s $f0, $f6 -/* C3C4 80030FC4 00000000 */ nop -/* C3C8 80030FC8 45000021 */ bc1f .LJP_80031050 -/* C3CC 80030FCC 00000000 */ nop -/* C3D0 80030FD0 C640000C */ lwc1 $f0, 0xC($s2) -/* C3D4 80030FD4 C662000C */ lwc1 $f2, 0xC($s3) -/* C3D8 80030FD8 46020001 */ sub.s $f0, $f0, $f2 -/* C3DC 80030FDC 46000005 */ abs.s $f0, $f0 -/* C3E0 80030FE0 4606003C */ c.lt.s $f0, $f6 -/* C3E4 80030FE4 00000000 */ nop -/* C3E8 80030FE8 45000019 */ bc1f .LJP_80031050 -/* C3EC 80030FEC 00000000 */ nop -/* C3F0 80030FF0 C6400010 */ lwc1 $f0, 0x10($s2) -/* C3F4 80030FF4 C6620010 */ lwc1 $f2, 0x10($s3) -/* C3F8 80030FF8 46020001 */ sub.s $f0, $f0, $f2 -/* C3FC 80030FFC 46000005 */ abs.s $f0, $f0 -/* C400 80031000 4604003C */ c.lt.s $f0, $f4 -/* C404 80031004 00000000 */ nop -/* C408 80031008 45000011 */ bc1f .LJP_80031050 -/* C40C 8003100C 00000000 */ nop -/* C410 80031010 C6400014 */ lwc1 $f0, 0x14($s2) -/* C414 80031014 C6620014 */ lwc1 $f2, 0x14($s3) -/* C418 80031018 46020001 */ sub.s $f0, $f0, $f2 -/* C41C 8003101C 46000005 */ abs.s $f0, $f0 -/* C420 80031020 4604003C */ c.lt.s $f0, $f4 -/* C424 80031024 00000000 */ nop -/* C428 80031028 45000009 */ bc1f .LJP_80031050 -/* C42C 8003102C 00000000 */ nop -/* C430 80031030 C6400018 */ lwc1 $f0, 0x18($s2) -/* C434 80031034 C6620018 */ lwc1 $f2, 0x18($s3) -/* C438 80031038 46020001 */ sub.s $f0, $f0, $f2 -/* C43C 8003103C 46000005 */ abs.s $f0, $f0 -/* C440 80031040 4604003C */ c.lt.s $f0, $f4 -/* C444 80031044 00000000 */ nop -/* C448 80031048 45030001 */ bc1tl .LJP_80031050 -/* C44C 8003104C E6C60000 */ swc1 $f6, 0x0($s6) -.LJP_80031050: -/* C450 80031050 8E830000 */ lw $v1, 0x0($s4) -/* C454 80031054 2402FFFF */ addiu $v0, $zero, -0x1 -/* C458 80031058 14620021 */ bne $v1, $v0, .LJP_800310E0 -/* C45C 8003105C 00000000 */ nop -/* C460 80031060 12E00010 */ beqz $s7, .LJP_800310A4 -/* C464 80031064 00000000 */ nop -/* C468 80031068 C6460010 */ lwc1 $f6, 0x10($s2) -/* C46C 8003106C C6600010 */ lwc1 $f0, 0x10($s3) -/* C470 80031070 C6440014 */ lwc1 $f4, 0x14($s2) -/* C474 80031074 46003181 */ sub.s $f6, $f6, $f0 -/* C478 80031078 C6600014 */ lwc1 $f0, 0x14($s3) -/* C47C 8003107C C6420018 */ lwc1 $f2, 0x18($s2) -/* C480 80031080 46002101 */ sub.s $f4, $f4, $f0 -/* C484 80031084 C6600018 */ lwc1 $f0, 0x18($s3) -/* C488 80031088 46001081 */ sub.s $f2, $f2, $f0 -/* C48C 8003108C 3C01800A */ lui $at, %hi(D_800A08E4) -/* C490 80031090 E426E6F4 */ swc1 $f6, %lo(D_800A08E4)($at) -/* C494 80031094 3C01800A */ lui $at, %hi(D_800A08E8) -/* C498 80031098 E424E6F8 */ swc1 $f4, %lo(D_800A08E8)($at) -/* C49C 8003109C 3C01800A */ lui $at, %hi(D_800A08EC) -/* C4A0 800310A0 E422E6FC */ swc1 $f2, %lo(D_800A08EC)($at) -.LJP_800310A4: -/* C4A4 800310A4 C6600010 */ lwc1 $f0, 0x10($s3) -/* C4A8 800310A8 3C01800A */ lui $at, %hi(D_800A08E4) -/* C4AC 800310AC C422E6F4 */ lwc1 $f2, %lo(D_800A08E4)($at) -/* C4B0 800310B0 46020000 */ add.s $f0, $f0, $f2 -/* C4B4 800310B4 3C01800A */ lui $at, %hi(D_800A08E8) -/* C4B8 800310B8 C422E6F8 */ lwc1 $f2, %lo(D_800A08E8)($at) -/* C4BC 800310BC E6400010 */ swc1 $f0, 0x10($s2) -/* C4C0 800310C0 C6600014 */ lwc1 $f0, 0x14($s3) -/* C4C4 800310C4 46020000 */ add.s $f0, $f0, $f2 -/* C4C8 800310C8 3C01800A */ lui $at, %hi(D_800A08EC) -/* C4CC 800310CC C422E6FC */ lwc1 $f2, %lo(D_800A08EC)($at) -/* C4D0 800310D0 E6400014 */ swc1 $f0, 0x14($s2) -/* C4D4 800310D4 C6600018 */ lwc1 $f0, 0x18($s3) -/* C4D8 800310D8 46020000 */ add.s $f0, $f0, $f2 -/* C4DC 800310DC E6400018 */ swc1 $f0, 0x18($s2) -.LJP_800310E0: -/* C4E0 800310E0 8FBF0048 */ lw $ra, 0x48($sp) -/* C4E4 800310E4 8FB70044 */ lw $s7, 0x44($sp) -/* C4E8 800310E8 8FB60040 */ lw $s6, 0x40($sp) -/* C4EC 800310EC 8FB5003C */ lw $s5, 0x3C($sp) -/* C4F0 800310F0 8FB40038 */ lw $s4, 0x38($sp) -/* C4F4 800310F4 8FB30034 */ lw $s3, 0x34($sp) -/* C4F8 800310F8 8FB20030 */ lw $s2, 0x30($sp) -/* C4FC 800310FC 8FB1002C */ lw $s1, 0x2C($sp) -/* C500 80031100 8FB00028 */ lw $s0, 0x28($sp) -/* C504 80031104 D7BE0078 */ ldc1 $f30, 0x78($sp) -/* C508 80031108 D7BC0070 */ ldc1 $f28, 0x70($sp) -/* C50C 8003110C D7BA0068 */ ldc1 $f26, 0x68($sp) -/* C510 80031110 D7B80060 */ ldc1 $f24, 0x60($sp) -/* C514 80031114 D7B60058 */ ldc1 $f22, 0x58($sp) -/* C518 80031118 D7B40050 */ ldc1 $f20, 0x50($sp) -/* C51C 8003111C 03E00008 */ jr $ra -/* C520 80031120 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/ver/us/asm/bss.s b/ver/us/asm/bss.s index 582f09c0ca..5fbae33fe1 100644 --- a/ver/us/asm/bss.s +++ b/ver/us/asm/bss.s @@ -260,7 +260,7 @@ dlabel siMgrThread dlabel siMgrStack .space 0x2000 -dlabel blendedCamSettings +dlabel gCurrentCamConfiguration .space 0x0000001c dlabel D_800A08DC diff --git a/ver/us/asm/nonmatchings/B0E0/update_camera_from_controller.s b/ver/us/asm/nonmatchings/B0E0/update_camera_from_controller.s deleted file mode 100644 index 4ec6a569a8..0000000000 --- a/ver/us/asm/nonmatchings/B0E0/update_camera_from_controller.s +++ /dev/null @@ -1,1070 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel jtbl_80098210 -.word .L800305B0_B9B0, .L80030768_BB68, .L80030868_BC68, .L80030874_BC74, .L80030880_BC80, .L80030868_BC68, .L80030644_BA44, 0 - -dlabel jtbl_80098230 -.word .L800308D0_BCD0, .L80030BFC_BFFC, .L80030E54_C254, .L80031210_C610, .L80031220_C620, .L8003106C_C46C, .L800309CC_BDCC, 0 - -.section .text - -glabel update_camera_from_controller -/* B8FC 800304FC 27BDFF80 */ addiu $sp, $sp, -0x80 -/* B900 80030500 AFB20030 */ sw $s2, 0x30($sp) -/* B904 80030504 00A0902D */ daddu $s2, $a1, $zero -/* B908 80030508 AFB40038 */ sw $s4, 0x38($sp) -/* B90C 8003050C 00C0A02D */ daddu $s4, $a2, $zero -/* B910 80030510 AFB30034 */ sw $s3, 0x34($sp) -/* B914 80030514 00E0982D */ daddu $s3, $a3, $zero -/* B918 80030518 AFB1002C */ sw $s1, 0x2c($sp) -/* B91C 8003051C AFBF0048 */ sw $ra, 0x48($sp) -/* B920 80030520 AFB70044 */ sw $s7, 0x44($sp) -/* B924 80030524 AFB60040 */ sw $s6, 0x40($sp) -/* B928 80030528 AFB5003C */ sw $s5, 0x3c($sp) -/* B92C 8003052C AFB00028 */ sw $s0, 0x28($sp) -/* B930 80030530 F7BE0078 */ sdc1 $f30, 0x78($sp) -/* B934 80030534 F7BC0070 */ sdc1 $f28, 0x70($sp) -/* B938 80030538 F7BA0068 */ sdc1 $f26, 0x68($sp) -/* B93C 8003053C F7B80060 */ sdc1 $f24, 0x60($sp) -/* B940 80030540 F7B60058 */ sdc1 $f22, 0x58($sp) -/* B944 80030544 F7B40050 */ sdc1 $f20, 0x50($sp) -/* B948 80030548 8E900000 */ lw $s0, ($s4) -/* B94C 8003054C C7B80094 */ lwc1 $f24, 0x94($sp) -/* B950 80030550 C7BE0098 */ lwc1 $f30, 0x98($sp) -/* B954 80030554 C7BA009C */ lwc1 $f26, 0x9c($sp) -/* B958 80030558 8FB500AC */ lw $s5, 0xac($sp) -/* B95C 8003055C 8FB600B0 */ lw $s6, 0xb0($sp) -/* B960 80030560 8FB700B4 */ lw $s7, 0xb4($sp) -/* B964 80030564 26020002 */ addiu $v0, $s0, 2 -/* B968 80030568 2C420002 */ sltiu $v0, $v0, 2 -/* B96C 8003056C 144000C4 */ bnez $v0, .L80030880_BC80 -/* B970 80030570 0240882D */ daddu $s1, $s2, $zero -/* B974 80030574 16000005 */ bnez $s0, .L8003058C -/* B978 80030578 00000000 */ nop -/* B97C 8003057C E6580010 */ swc1 $f24, 0x10($s2) -/* B980 80030580 E65E0014 */ swc1 $f30, 0x14($s2) -/* B984 80030584 0800C220 */ j .L80030880_BC80 -/* B988 80030588 E65A0018 */ swc1 $f26, 0x18($s2) -.L8003058C: -/* B98C 8003058C 8E030000 */ lw $v1, ($s0) -/* B990 80030590 2C620007 */ sltiu $v0, $v1, 7 -/* B994 80030594 104000BA */ beqz $v0, .L80030880_BC80 -/* B998 80030598 00031080 */ sll $v0, $v1, 2 -/* B99C 8003059C 3C01800A */ lui $at, %hi(jtbl_80098210) -/* B9A0 800305A0 00220821 */ addu $at, $at, $v0 -/* B9A4 800305A4 8C228210 */ lw $v0, %lo(jtbl_80098210)($at) -/* B9A8 800305A8 00400008 */ jr $v0 -/* B9AC 800305AC 00000000 */ nop -.L800305B0_B9B0: -/* B9B0 800305B0 8E020028 */ lw $v0, 0x28($s0) -/* B9B4 800305B4 504000B0 */ beql $v0, $zero, .L80030878 -/* B9B8 800305B8 E6380010 */ swc1 $f24, 0x10($s1) -/* B9BC 800305BC C60A0014 */ lwc1 $f10, 0x14($s0) -/* B9C0 800305C0 C60C0020 */ lwc1 $f12, 0x20($s0) -/* B9C4 800305C4 460C5281 */ sub.s $f10, $f10, $f12 -/* B9C8 800305C8 C6000018 */ lwc1 $f0, 0x18($s0) -/* B9CC 800305CC 46005287 */ neg.s $f10, $f10 -/* B9D0 800305D0 46005280 */ add.s $f10, $f10, $f0 -/* B9D4 800305D4 460A0201 */ sub.s $f8, $f0, $f10 -/* B9D8 800305D8 46084102 */ mul.s $f4, $f8, $f8 -/* B9DC 800305DC 00000000 */ nop -/* B9E0 800305E0 C606000C */ lwc1 $f6, 0xc($s0) -/* B9E4 800305E4 46003181 */ sub.s $f6, $f6, $f0 -/* B9E8 800305E8 460C3180 */ add.s $f6, $f6, $f12 -/* B9EC 800305EC 46066301 */ sub.s $f12, $f12, $f6 -/* B9F0 800305F0 460C6382 */ mul.s $f14, $f12, $f12 -/* B9F4 800305F4 00000000 */ nop -/* B9F8 800305F8 460AC081 */ sub.s $f2, $f24, $f10 -/* B9FC 800305FC 46081082 */ mul.s $f2, $f2, $f8 -/* BA00 80030600 00000000 */ nop -/* BA04 80030604 4606D001 */ sub.s $f0, $f26, $f6 -/* BA08 80030608 460C0002 */ mul.s $f0, $f0, $f12 -/* BA0C 8003060C 00000000 */ nop -/* BA10 80030610 460E2100 */ add.s $f4, $f4, $f14 -/* BA14 80030614 46001080 */ add.s $f2, $f2, $f0 -/* BA18 80030618 46041103 */ div.s $f4, $f2, $f4 -/* BA1C 8003061C 46082202 */ mul.s $f8, $f4, $f8 -/* BA20 80030620 00000000 */ nop -/* BA24 80030624 460C2102 */ mul.s $f4, $f4, $f12 -/* BA28 80030628 00000000 */ nop -/* BA2C 8003062C 460A4200 */ add.s $f8, $f8, $f10 -/* BA30 80030630 46062100 */ add.s $f4, $f4, $f6 -/* BA34 80030634 E63E0014 */ swc1 $f30, 0x14($s1) -/* BA38 80030638 E6280010 */ swc1 $f8, 0x10($s1) -/* BA3C 8003063C 0800C220 */ j .L80030880_BC80 -/* BA40 80030640 E6240018 */ swc1 $f4, 0x18($s1) -.L80030644_BA44: -/* BA44 80030644 C60E000C */ lwc1 $f14, 0xc($s0) -/* BA48 80030648 C61C0018 */ lwc1 $f28, 0x18($s0) -/* BA4C 8003064C 460EE201 */ sub.s $f8, $f28, $f14 -/* BA50 80030650 46084502 */ mul.s $f20, $f8, $f8 -/* BA54 80030654 00000000 */ nop -/* BA58 80030658 460EC081 */ sub.s $f2, $f24, $f14 -/* BA5C 8003065C 46081082 */ mul.s $f2, $f2, $f8 -/* BA60 80030660 00000000 */ nop -/* BA64 80030664 E7BC0010 */ swc1 $f28, 0x10($sp) -/* BA68 80030668 C60C0014 */ lwc1 $f12, 0x14($s0) -/* BA6C 8003066C C61C0020 */ lwc1 $f28, 0x20($s0) -/* BA70 80030670 460CE181 */ sub.s $f6, $f28, $f12 -/* BA74 80030674 46063482 */ mul.s $f18, $f6, $f6 -/* BA78 80030678 00000000 */ nop -/* BA7C 8003067C 460CD001 */ sub.s $f0, $f26, $f12 -/* BA80 80030680 46060002 */ mul.s $f0, $f0, $f6 -/* BA84 80030684 00000000 */ nop -/* BA88 80030688 4612A100 */ add.s $f4, $f20, $f18 -/* BA8C 8003068C 46001080 */ add.s $f2, $f2, $f0 -/* BA90 80030690 46041103 */ div.s $f4, $f2, $f4 -/* BA94 80030694 46082002 */ mul.s $f0, $f4, $f8 -/* BA98 80030698 00000000 */ nop -/* BA9C 8003069C 46062102 */ mul.s $f4, $f4, $f6 -/* BAA0 800306A0 00000000 */ nop -/* BAA4 800306A4 460E0400 */ add.s $f16, $f0, $f14 -/* BAA8 800306A8 46007586 */ mov.s $f22, $f14 -/* BAAC 800306AC 46004386 */ mov.s $f14, $f8 -/* BAB0 800306B0 46168201 */ sub.s $f8, $f16, $f22 -/* BAB4 800306B4 46087082 */ mul.s $f2, $f14, $f8 -/* BAB8 800306B8 00000000 */ nop -/* BABC 800306BC 460C2280 */ add.s $f10, $f4, $f12 -/* BAC0 800306C0 46006106 */ mov.s $f4, $f12 -/* BAC4 800306C4 46003306 */ mov.s $f12, $f6 -/* BAC8 800306C8 46045181 */ sub.s $f6, $f10, $f4 -/* BACC 800306CC 46066002 */ mul.s $f0, $f12, $f6 -/* BAD0 800306D0 00000000 */ nop -/* BAD4 800306D4 4610C501 */ sub.s $f20, $f24, $f16 -/* BAD8 800306D8 460AD481 */ sub.s $f18, $f26, $f10 -/* BADC 800306DC 46001080 */ add.s $f2, $f2, $f0 -/* BAE0 800306E0 44800000 */ mtc1 $zero, $f0 -/* BAE4 800306E4 00000000 */ nop -/* BAE8 800306E8 4600103C */ c.lt.s $f2, $f0 -/* BAEC 800306EC 00000000 */ nop -/* BAF0 800306F0 45000004 */ bc1f .L80030704 -/* BAF4 800306F4 E7BC0020 */ swc1 $f28, 0x20($sp) -/* BAF8 800306F8 4600B406 */ mov.s $f16, $f22 -/* BAFC 800306FC 0800C1D1 */ j .L80030744 -/* BB00 80030700 46002286 */ mov.s $f10, $f4 -.L80030704: -/* BB04 80030704 46084082 */ mul.s $f2, $f8, $f8 -/* BB08 80030708 00000000 */ nop -/* BB0C 8003070C 46063182 */ mul.s $f6, $f6, $f6 -/* BB10 80030710 00000000 */ nop -/* BB14 80030714 460E7002 */ mul.s $f0, $f14, $f14 -/* BB18 80030718 00000000 */ nop -/* BB1C 8003071C 460C6102 */ mul.s $f4, $f12, $f12 -/* BB20 80030720 00000000 */ nop -/* BB24 80030724 46061080 */ add.s $f2, $f2, $f6 -/* BB28 80030728 46040000 */ add.s $f0, $f0, $f4 -/* BB2C 8003072C 4602003C */ c.lt.s $f0, $f2 -/* BB30 80030730 00000000 */ nop -/* BB34 80030734 45000003 */ bc1f .L80030744 -/* BB38 80030738 00000000 */ nop -/* BB3C 8003073C C7B00010 */ lwc1 $f16, 0x10($sp) -/* BB40 80030740 C7AA0020 */ lwc1 $f10, 0x20($sp) -.L80030744: -/* BB44 80030744 8E020028 */ lw $v0, 0x28($s0) -/* BB48 80030748 54400004 */ bnel $v0, $zero, .L8003075C -/* BB4C 8003074C E6300010 */ swc1 $f16, 0x10($s1) -/* BB50 80030750 46148400 */ add.s $f16, $f16, $f20 -/* BB54 80030754 46125280 */ add.s $f10, $f10, $f18 -/* BB58 80030758 E6300010 */ swc1 $f16, 0x10($s1) -.L8003075C: -/* BB5C 8003075C E63E0014 */ swc1 $f30, 0x14($s1) -/* BB60 80030760 0800C220 */ j .L80030880_BC80 -/* BB64 80030764 E62A0018 */ swc1 $f10, 0x18($s1) -.L80030768_BB68: -/* BB68 80030768 8E020028 */ lw $v0, 0x28($s0) -/* BB6C 8003076C 50400042 */ beql $v0, $zero, .L80030878 -/* BB70 80030770 E6380010 */ swc1 $f24, 0x10($s1) -/* BB74 80030774 C600000C */ lwc1 $f0, 0xc($s0) -/* BB78 80030778 4600C581 */ sub.s $f22, $f24, $f0 -/* BB7C 8003077C 4616B082 */ mul.s $f2, $f22, $f22 -/* BB80 80030780 00000000 */ nop -/* BB84 80030784 C6000014 */ lwc1 $f0, 0x14($s0) -/* BB88 80030788 4600D501 */ sub.s $f20, $f26, $f0 -/* BB8C 8003078C 4614A002 */ mul.s $f0, $f20, $f20 -/* BB90 80030790 00000000 */ nop -/* BB94 80030794 46001600 */ add.s $f24, $f2, $f0 -/* BB98 80030798 44800000 */ mtc1 $zero, $f0 -/* BB9C 8003079C 00000000 */ nop -/* BBA0 800307A0 4600C032 */ c.eq.s $f24, $f0 -/* BBA4 800307A4 00000000 */ nop -/* BBA8 800307A8 45010035 */ bc1t .L80030880_BC80 -/* BBAC 800307AC 00000000 */ nop -/* BBB0 800307B0 4600C184 */ sqrt.s $f6, $f24 -/* BBB4 800307B4 46063032 */ c.eq.s $f6, $f6 -/* BBB8 800307B8 00000000 */ nop -/* BBBC 800307BC 45010004 */ bc1t .L800307D0 -/* BBC0 800307C0 00000000 */ nop -/* BBC4 800307C4 0C0187BC */ jal sqrtf -/* BBC8 800307C8 4600C306 */ mov.s $f12, $f24 -/* BBCC 800307CC 46000186 */ mov.s $f6, $f0 -.L800307D0: -/* BBD0 800307D0 C6040018 */ lwc1 $f4, 0x18($s0) -/* BBD4 800307D4 C600000C */ lwc1 $f0, 0xc($s0) -/* BBD8 800307D8 46002101 */ sub.s $f4, $f4, $f0 -/* BBDC 800307DC 46042102 */ mul.s $f4, $f4, $f4 -/* BBE0 800307E0 00000000 */ nop -/* BBE4 800307E4 C6020014 */ lwc1 $f2, 0x14($s0) -/* BBE8 800307E8 C6000020 */ lwc1 $f0, 0x20($s0) -/* BBEC 800307EC 46020001 */ sub.s $f0, $f0, $f2 -/* BBF0 800307F0 46000002 */ mul.s $f0, $f0, $f0 -/* BBF4 800307F4 00000000 */ nop -/* BBF8 800307F8 3C013F80 */ lui $at, 0x3f80 -/* BBFC 800307FC 44811000 */ mtc1 $at, $f2 -/* BC00 80030800 46002300 */ add.s $f12, $f4, $f0 -/* BC04 80030804 46061603 */ div.s $f24, $f2, $f6 -/* BC08 80030808 46006084 */ sqrt.s $f2, $f12 -/* BC0C 8003080C 46021032 */ c.eq.s $f2, $f2 -/* BC10 80030810 00000000 */ nop -/* BC14 80030814 45010004 */ bc1t .L80030828 -/* BC18 80030818 00000000 */ nop -/* BC1C 8003081C 0C0187BC */ jal sqrtf -/* BC20 80030820 00000000 */ nop -/* BC24 80030824 46000086 */ mov.s $f2, $f0 -.L80030828: -/* BC28 80030828 4602B002 */ mul.s $f0, $f22, $f2 -/* BC2C 8003082C 00000000 */ nop -/* BC30 80030830 4602A102 */ mul.s $f4, $f20, $f2 -/* BC34 80030834 00000000 */ nop -/* BC38 80030838 46180002 */ mul.s $f0, $f0, $f24 -/* BC3C 8003083C 00000000 */ nop -/* BC40 80030840 C602000C */ lwc1 $f2, 0xc($s0) -/* BC44 80030844 46001080 */ add.s $f2, $f2, $f0 -/* BC48 80030848 46182102 */ mul.s $f4, $f4, $f24 -/* BC4C 8003084C 00000000 */ nop -/* BC50 80030850 E63E0014 */ swc1 $f30, 0x14($s1) -/* BC54 80030854 E6220010 */ swc1 $f2, 0x10($s1) -/* BC58 80030858 C6000014 */ lwc1 $f0, 0x14($s0) -/* BC5C 8003085C 46040000 */ add.s $f0, $f0, $f4 -/* BC60 80030860 0800C220 */ j .L80030880_BC80 -/* BC64 80030864 E6200018 */ swc1 $f0, 0x18($s1) -.L80030868_BC68: -/* BC68 80030868 2402FFFF */ addiu $v0, $zero, -1 -/* BC6C 8003086C 0800C220 */ j .L80030880_BC80 -/* BC70 80030870 AE820000 */ sw $v0, ($s4) -.L80030874_BC74: -/* BC74 80030874 E6380010 */ swc1 $f24, 0x10($s1) -.L80030878: -/* BC78 80030878 E63E0014 */ swc1 $f30, 0x14($s1) -/* BC7C 8003087C E63A0018 */ swc1 $f26, 0x18($s1) -.L80030880_BC80: -/* BC80 80030880 8FA20090 */ lw $v0, 0x90($sp) -/* BC84 80030884 C7B800A0 */ lwc1 $f24, 0xa0($sp) -/* BC88 80030888 C7BE00A4 */ lwc1 $f30, 0xa4($sp) -/* BC8C 8003088C 8C500000 */ lw $s0, ($v0) -/* BC90 80030890 C7BA00A8 */ lwc1 $f26, 0xa8($sp) -/* BC94 80030894 16000005 */ bnez $s0, .L800308AC -/* BC98 80030898 0260882D */ daddu $s1, $s3, $zero -/* BC9C 8003089C E6780010 */ swc1 $f24, 0x10($s3) -/* BCA0 800308A0 E67E0014 */ swc1 $f30, 0x14($s3) -/* BCA4 800308A4 0800C4F0 */ j .L800313C0 -/* BCA8 800308A8 E67A0018 */ swc1 $f26, 0x18($s3) -.L800308AC: -/* BCAC 800308AC 8E030000 */ lw $v1, ($s0) -/* BCB0 800308B0 2C620007 */ sltiu $v0, $v1, 7 -/* BCB4 800308B4 10400279 */ beqz $v0, .L8003129C -/* BCB8 800308B8 00031080 */ sll $v0, $v1, 2 -/* BCBC 800308BC 3C01800A */ lui $at, %hi(jtbl_80098230) -/* BCC0 800308C0 00220821 */ addu $at, $at, $v0 -/* BCC4 800308C4 8C228230 */ lw $v0, %lo(jtbl_80098230)($at) -/* BCC8 800308C8 00400008 */ jr $v0 -/* BCCC 800308CC 00000000 */ nop -.L800308D0_BCD0: -/* BCD0 800308D0 C6020018 */ lwc1 $f2, 0x18($s0) -/* BCD4 800308D4 C600000C */ lwc1 $f0, 0xc($s0) -/* BCD8 800308D8 46001081 */ sub.s $f2, $f2, $f0 -/* BCDC 800308DC C6000014 */ lwc1 $f0, 0x14($s0) -/* BCE0 800308E0 44061000 */ mfc1 $a2, $f2 -/* BCE4 800308E4 C6020020 */ lwc1 $f2, 0x20($s0) -/* BCE8 800308E8 4480A000 */ mtc1 $zero, $f20 -/* BCEC 800308EC 46001081 */ sub.s $f2, $f2, $f0 -/* BCF0 800308F0 4600A306 */ mov.s $f12, $f20 -/* BCF4 800308F4 44071000 */ mfc1 $a3, $f2 -/* BCF8 800308F8 0C00A720 */ jal atan2 -/* BCFC 800308FC 4600A386 */ mov.s $f14, $f20 -/* BD00 80030900 E6200000 */ swc1 $f0, ($s1) -/* BD04 80030904 C6000004 */ lwc1 $f0, 4($s0) -/* BD08 80030908 4614003C */ c.lt.s $f0, $f20 -/* BD0C 8003090C 00000000 */ nop -/* BD10 80030910 45030001 */ bc1tl .L80030918 -/* BD14 80030914 46000007 */ neg.s $f0, $f0 -.L80030918: -/* BD18 80030918 E6200004 */ swc1 $f0, 4($s1) -/* BD1C 8003091C C6000008 */ lwc1 $f0, 8($s0) -/* BD20 80030920 E6200008 */ swc1 $f0, 8($s1) -/* BD24 80030924 C6000024 */ lwc1 $f0, 0x24($s0) -/* BD28 80030928 E620000C */ swc1 $f0, 0xc($s1) -/* BD2C 8003092C 8E020028 */ lw $v0, 0x28($s0) -/* BD30 80030930 50400023 */ beql $v0, $zero, .L800309C0 -/* BD34 80030934 E6380010 */ swc1 $f24, 0x10($s1) -/* BD38 80030938 C60A0014 */ lwc1 $f10, 0x14($s0) -/* BD3C 8003093C C60C0020 */ lwc1 $f12, 0x20($s0) -/* BD40 80030940 460C5281 */ sub.s $f10, $f10, $f12 -/* BD44 80030944 C6000018 */ lwc1 $f0, 0x18($s0) -/* BD48 80030948 46005287 */ neg.s $f10, $f10 -/* BD4C 8003094C 46005280 */ add.s $f10, $f10, $f0 -/* BD50 80030950 460A0201 */ sub.s $f8, $f0, $f10 -/* BD54 80030954 46084102 */ mul.s $f4, $f8, $f8 -/* BD58 80030958 00000000 */ nop -/* BD5C 8003095C C606000C */ lwc1 $f6, 0xc($s0) -/* BD60 80030960 46003181 */ sub.s $f6, $f6, $f0 -/* BD64 80030964 460C3180 */ add.s $f6, $f6, $f12 -/* BD68 80030968 46066301 */ sub.s $f12, $f12, $f6 -/* BD6C 8003096C 460C6382 */ mul.s $f14, $f12, $f12 -/* BD70 80030970 00000000 */ nop -/* BD74 80030974 460AC081 */ sub.s $f2, $f24, $f10 -/* BD78 80030978 46081082 */ mul.s $f2, $f2, $f8 -/* BD7C 8003097C 00000000 */ nop -/* BD80 80030980 4606D001 */ sub.s $f0, $f26, $f6 -/* BD84 80030984 460C0002 */ mul.s $f0, $f0, $f12 -/* BD88 80030988 00000000 */ nop -/* BD8C 8003098C 460E2100 */ add.s $f4, $f4, $f14 -/* BD90 80030990 46001080 */ add.s $f2, $f2, $f0 -/* BD94 80030994 46041103 */ div.s $f4, $f2, $f4 -/* BD98 80030998 46082202 */ mul.s $f8, $f4, $f8 -/* BD9C 8003099C 00000000 */ nop -/* BDA0 800309A0 460C2102 */ mul.s $f4, $f4, $f12 -/* BDA4 800309A4 00000000 */ nop -/* BDA8 800309A8 460A4200 */ add.s $f8, $f8, $f10 -/* BDAC 800309AC 46062100 */ add.s $f4, $f4, $f6 -/* BDB0 800309B0 E63E0014 */ swc1 $f30, 0x14($s1) -/* BDB4 800309B4 E6280010 */ swc1 $f8, 0x10($s1) -/* BDB8 800309B8 0800C2D4 */ j .L80030B50 -/* BDBC 800309BC E6240018 */ swc1 $f4, 0x18($s1) -.L800309C0: -/* BDC0 800309C0 E63E0014 */ swc1 $f30, 0x14($s1) -/* BDC4 800309C4 0800C2D4 */ j .L80030B50 -/* BDC8 800309C8 E63A0018 */ swc1 $f26, 0x18($s1) -.L800309CC_BDCC: -/* BDCC 800309CC C6020018 */ lwc1 $f2, 0x18($s0) -/* BDD0 800309D0 C600000C */ lwc1 $f0, 0xc($s0) -/* BDD4 800309D4 46001581 */ sub.s $f22, $f2, $f0 -/* BDD8 800309D8 C6020020 */ lwc1 $f2, 0x20($s0) -/* BDDC 800309DC C6000014 */ lwc1 $f0, 0x14($s0) -/* BDE0 800309E0 46001081 */ sub.s $f2, $f2, $f0 -/* BDE4 800309E4 44806000 */ mtc1 $zero, $f12 -/* BDE8 800309E8 4600B587 */ neg.s $f22, $f22 -/* BDEC 800309EC 4407B000 */ mfc1 $a3, $f22 -/* BDF0 800309F0 44061000 */ mfc1 $a2, $f2 -/* BDF4 800309F4 0C00A720 */ jal atan2 -/* BDF8 800309F8 46006386 */ mov.s $f14, $f12 -/* BDFC 800309FC E6200000 */ swc1 $f0, ($s1) -/* BE00 80030A00 C6000004 */ lwc1 $f0, 4($s0) -/* BE04 80030A04 4480E000 */ mtc1 $zero, $f28 -/* BE08 80030A08 00000000 */ nop -/* BE0C 80030A0C 461C003C */ c.lt.s $f0, $f28 -/* BE10 80030A10 00000000 */ nop -/* BE14 80030A14 45030001 */ bc1tl .L80030A1C -/* BE18 80030A18 46000007 */ neg.s $f0, $f0 -.L80030A1C: -/* BE1C 80030A1C E6200004 */ swc1 $f0, 4($s1) -/* BE20 80030A20 C6000008 */ lwc1 $f0, 8($s0) -/* BE24 80030A24 E6200008 */ swc1 $f0, 8($s1) -/* BE28 80030A28 C6000024 */ lwc1 $f0, 0x24($s0) -/* BE2C 80030A2C E620000C */ swc1 $f0, 0xc($s1) -/* BE30 80030A30 C60E000C */ lwc1 $f14, 0xc($s0) -/* BE34 80030A34 C61C0018 */ lwc1 $f28, 0x18($s0) -/* BE38 80030A38 460EE201 */ sub.s $f8, $f28, $f14 -/* BE3C 80030A3C 46084502 */ mul.s $f20, $f8, $f8 -/* BE40 80030A40 00000000 */ nop -/* BE44 80030A44 460EC081 */ sub.s $f2, $f24, $f14 -/* BE48 80030A48 46081082 */ mul.s $f2, $f2, $f8 -/* BE4C 80030A4C 00000000 */ nop -/* BE50 80030A50 E7BC0014 */ swc1 $f28, 0x14($sp) -/* BE54 80030A54 C60C0014 */ lwc1 $f12, 0x14($s0) -/* BE58 80030A58 C61C0020 */ lwc1 $f28, 0x20($s0) -/* BE5C 80030A5C 460CE181 */ sub.s $f6, $f28, $f12 -/* BE60 80030A60 46063482 */ mul.s $f18, $f6, $f6 -/* BE64 80030A64 00000000 */ nop -/* BE68 80030A68 460CD001 */ sub.s $f0, $f26, $f12 -/* BE6C 80030A6C 46060002 */ mul.s $f0, $f0, $f6 -/* BE70 80030A70 00000000 */ nop -/* BE74 80030A74 4612A100 */ add.s $f4, $f20, $f18 -/* BE78 80030A78 46001080 */ add.s $f2, $f2, $f0 -/* BE7C 80030A7C 46041103 */ div.s $f4, $f2, $f4 -/* BE80 80030A80 46082002 */ mul.s $f0, $f4, $f8 -/* BE84 80030A84 00000000 */ nop -/* BE88 80030A88 46062102 */ mul.s $f4, $f4, $f6 -/* BE8C 80030A8C 00000000 */ nop -/* BE90 80030A90 460E0400 */ add.s $f16, $f0, $f14 -/* BE94 80030A94 46007586 */ mov.s $f22, $f14 -/* BE98 80030A98 46004386 */ mov.s $f14, $f8 -/* BE9C 80030A9C 46168201 */ sub.s $f8, $f16, $f22 -/* BEA0 80030AA0 46087002 */ mul.s $f0, $f14, $f8 -/* BEA4 80030AA4 00000000 */ nop -/* BEA8 80030AA8 460C2280 */ add.s $f10, $f4, $f12 -/* BEAC 80030AAC 46006106 */ mov.s $f4, $f12 -/* BEB0 80030AB0 46003306 */ mov.s $f12, $f6 -/* BEB4 80030AB4 46045181 */ sub.s $f6, $f10, $f4 -/* BEB8 80030AB8 46066082 */ mul.s $f2, $f12, $f6 -/* BEBC 80030ABC 00000000 */ nop -/* BEC0 80030AC0 4610C501 */ sub.s $f20, $f24, $f16 -/* BEC4 80030AC4 E7BC0018 */ swc1 $f28, 0x18($sp) -/* BEC8 80030AC8 46020000 */ add.s $f0, $f0, $f2 -/* BECC 80030ACC 4480E000 */ mtc1 $zero, $f28 -/* BED0 80030AD0 00000000 */ nop -/* BED4 80030AD4 461C003C */ c.lt.s $f0, $f28 -/* BED8 80030AD8 00000000 */ nop -/* BEDC 80030ADC 45000004 */ bc1f .L80030AF0 -/* BEE0 80030AE0 460AD481 */ sub.s $f18, $f26, $f10 -/* BEE4 80030AE4 4600B406 */ mov.s $f16, $f22 -/* BEE8 80030AE8 0800C2CC */ j .L80030B30 -/* BEEC 80030AEC 46002286 */ mov.s $f10, $f4 -.L80030AF0: -/* BEF0 80030AF0 46084082 */ mul.s $f2, $f8, $f8 -/* BEF4 80030AF4 00000000 */ nop -/* BEF8 80030AF8 46063182 */ mul.s $f6, $f6, $f6 -/* BEFC 80030AFC 00000000 */ nop -/* BF00 80030B00 460E7002 */ mul.s $f0, $f14, $f14 -/* BF04 80030B04 00000000 */ nop -/* BF08 80030B08 460C6102 */ mul.s $f4, $f12, $f12 -/* BF0C 80030B0C 00000000 */ nop -/* BF10 80030B10 46061080 */ add.s $f2, $f2, $f6 -/* BF14 80030B14 46040000 */ add.s $f0, $f0, $f4 -/* BF18 80030B18 4602003C */ c.lt.s $f0, $f2 -/* BF1C 80030B1C 00000000 */ nop -/* BF20 80030B20 45000003 */ bc1f .L80030B30 -/* BF24 80030B24 00000000 */ nop -/* BF28 80030B28 C7B00014 */ lwc1 $f16, 0x14($sp) -/* BF2C 80030B2C C7AA0018 */ lwc1 $f10, 0x18($sp) -.L80030B30: -/* BF30 80030B30 8E020028 */ lw $v0, 0x28($s0) -/* BF34 80030B34 54400004 */ bnel $v0, $zero, .L80030B48 -/* BF38 80030B38 E6300010 */ swc1 $f16, 0x10($s1) -/* BF3C 80030B3C 46148400 */ add.s $f16, $f16, $f20 -/* BF40 80030B40 46125280 */ add.s $f10, $f10, $f18 -/* BF44 80030B44 E6300010 */ swc1 $f16, 0x10($s1) -.L80030B48: -/* BF48 80030B48 E63E0014 */ swc1 $f30, 0x14($s1) -/* BF4C 80030B4C E62A0018 */ swc1 $f10, 0x18($s1) -.L80030B50: -/* BF50 80030B50 12E0021B */ beqz $s7, .L800313C0 -/* BF54 80030B54 00000000 */ nop -/* BF58 80030B58 C6C00000 */ lwc1 $f0, ($s6) -/* BF5C 80030B5C 3C013F80 */ lui $at, 0x3f80 -/* BF60 80030B60 44812000 */ mtc1 $at, $f4 -/* BF64 80030B64 00000000 */ nop -/* BF68 80030B68 46040032 */ c.eq.s $f0, $f4 -/* BF6C 80030B6C 00000000 */ nop -/* BF70 80030B70 450101CA */ bc1t .L8003129C -/* BF74 80030B74 00000000 */ nop -/* BF78 80030B78 8E840000 */ lw $a0, ($s4) -/* BF7C 80030B7C 24820002 */ addiu $v0, $a0, 2 -/* BF80 80030B80 2C420003 */ sltiu $v0, $v0, 3 -/* BF84 80030B84 144001C5 */ bnez $v0, .L8003129C -/* BF88 80030B88 00000000 */ nop -/* BF8C 80030B8C 8C830000 */ lw $v1, ($a0) -/* BF90 80030B90 8E020000 */ lw $v0, ($s0) -/* BF94 80030B94 146201C1 */ bne $v1, $v0, .L8003129C -/* BF98 80030B98 00000000 */ nop -/* BF9C 80030B9C C4820004 */ lwc1 $f2, 4($a0) -/* BFA0 80030BA0 C6000004 */ lwc1 $f0, 4($s0) -/* BFA4 80030BA4 46001032 */ c.eq.s $f2, $f0 -/* BFA8 80030BA8 00000000 */ nop -/* BFAC 80030BAC 450001BB */ bc1f .L8003129C -/* BFB0 80030BB0 00000000 */ nop -/* BFB4 80030BB4 C4820008 */ lwc1 $f2, 8($a0) -/* BFB8 80030BB8 C6000008 */ lwc1 $f0, 8($s0) -/* BFBC 80030BBC 46001032 */ c.eq.s $f2, $f0 -/* BFC0 80030BC0 00000000 */ nop -/* BFC4 80030BC4 450001B5 */ bc1f .L8003129C -/* BFC8 80030BC8 00000000 */ nop -/* BFCC 80030BCC C4820024 */ lwc1 $f2, 0x24($a0) -/* BFD0 80030BD0 C6000024 */ lwc1 $f0, 0x24($s0) -/* BFD4 80030BD4 46001032 */ c.eq.s $f2, $f0 -/* BFD8 80030BD8 00000000 */ nop -/* BFDC 80030BDC 450001AF */ bc1f .L8003129C -/* BFE0 80030BE0 00000000 */ nop -/* BFE4 80030BE4 8C830028 */ lw $v1, 0x28($a0) -/* BFE8 80030BE8 8E020028 */ lw $v0, 0x28($s0) -/* BFEC 80030BEC 546201AB */ bnel $v1, $v0, .L8003129C -/* BFF0 80030BF0 E6C40000 */ swc1 $f4, ($s6) -/* BFF4 80030BF4 0800C4A7 */ j .L8003129C -/* BFF8 80030BF8 00000000 */ nop -.L80030BFC_BFFC: -/* BFFC 80030BFC C6040004 */ lwc1 $f4, 4($s0) -/* C000 80030C00 44800000 */ mtc1 $zero, $f0 -/* C004 80030C04 00000000 */ nop -/* C008 80030C08 4600203C */ c.lt.s $f4, $f0 -/* C00C 80030C0C 00000000 */ nop -/* C010 80030C10 45000008 */ bc1f .L80030C34 -/* C014 80030C14 00000000 */ nop -/* C018 80030C18 C600000C */ lwc1 $f0, 0xc($s0) -/* C01C 80030C1C 4600C581 */ sub.s $f22, $f24, $f0 -/* C020 80030C20 C6020014 */ lwc1 $f2, 0x14($s0) -/* C024 80030C24 46002007 */ neg.s $f0, $f4 -/* C028 80030C28 E6200004 */ swc1 $f0, 4($s1) -/* C02C 80030C2C 0800C312 */ j .L80030C48 -/* C030 80030C30 4602D501 */ sub.s $f20, $f26, $f2 -.L80030C34: -/* C034 80030C34 C600000C */ lwc1 $f0, 0xc($s0) -/* C038 80030C38 46180581 */ sub.s $f22, $f0, $f24 -/* C03C 80030C3C C6000014 */ lwc1 $f0, 0x14($s0) -/* C040 80030C40 E6240004 */ swc1 $f4, 4($s1) -/* C044 80030C44 461A0501 */ sub.s $f20, $f0, $f26 -.L80030C48: -/* C048 80030C48 4406B000 */ mfc1 $a2, $f22 -/* C04C 80030C4C 44806000 */ mtc1 $zero, $f12 -/* C050 80030C50 4407A000 */ mfc1 $a3, $f20 -/* C054 80030C54 0C00A720 */ jal atan2 -/* C058 80030C58 46006386 */ mov.s $f14, $f12 -/* C05C 80030C5C E6200000 */ swc1 $f0, ($s1) -/* C060 80030C60 C6000008 */ lwc1 $f0, 8($s0) -/* C064 80030C64 E6200008 */ swc1 $f0, 8($s1) -/* C068 80030C68 C6000024 */ lwc1 $f0, 0x24($s0) -/* C06C 80030C6C E620000C */ swc1 $f0, 0xc($s1) -/* C070 80030C70 8E020028 */ lw $v0, 0x28($s0) -/* C074 80030C74 5040003E */ beql $v0, $zero, .L80030D70 -/* C078 80030C78 E6380010 */ swc1 $f24, 0x10($s1) -/* C07C 80030C7C C600000C */ lwc1 $f0, 0xc($s0) -/* C080 80030C80 4600C581 */ sub.s $f22, $f24, $f0 -/* C084 80030C84 4616B082 */ mul.s $f2, $f22, $f22 -/* C088 80030C88 00000000 */ nop -/* C08C 80030C8C C6000014 */ lwc1 $f0, 0x14($s0) -/* C090 80030C90 4600D501 */ sub.s $f20, $f26, $f0 -/* C094 80030C94 4614A002 */ mul.s $f0, $f20, $f20 -/* C098 80030C98 00000000 */ nop -/* C09C 80030C9C 46001600 */ add.s $f24, $f2, $f0 -/* C0A0 80030CA0 4480E000 */ mtc1 $zero, $f28 -/* C0A4 80030CA4 00000000 */ nop -/* C0A8 80030CA8 461CC032 */ c.eq.s $f24, $f28 -/* C0AC 80030CAC 00000000 */ nop -/* C0B0 80030CB0 45010031 */ bc1t .L80030D78 -/* C0B4 80030CB4 00000000 */ nop -/* C0B8 80030CB8 4600C184 */ sqrt.s $f6, $f24 -/* C0BC 80030CBC 46063032 */ c.eq.s $f6, $f6 -/* C0C0 80030CC0 00000000 */ nop -/* C0C4 80030CC4 45010004 */ bc1t .L80030CD8 -/* C0C8 80030CC8 00000000 */ nop -/* C0CC 80030CCC 0C0187BC */ jal sqrtf -/* C0D0 80030CD0 4600C306 */ mov.s $f12, $f24 -/* C0D4 80030CD4 46000186 */ mov.s $f6, $f0 -.L80030CD8: -/* C0D8 80030CD8 C6040018 */ lwc1 $f4, 0x18($s0) -/* C0DC 80030CDC C600000C */ lwc1 $f0, 0xc($s0) -/* C0E0 80030CE0 46002101 */ sub.s $f4, $f4, $f0 -/* C0E4 80030CE4 46042102 */ mul.s $f4, $f4, $f4 -/* C0E8 80030CE8 00000000 */ nop -/* C0EC 80030CEC C6020014 */ lwc1 $f2, 0x14($s0) -/* C0F0 80030CF0 C6000020 */ lwc1 $f0, 0x20($s0) -/* C0F4 80030CF4 46020001 */ sub.s $f0, $f0, $f2 -/* C0F8 80030CF8 46000002 */ mul.s $f0, $f0, $f0 -/* C0FC 80030CFC 00000000 */ nop -/* C100 80030D00 3C013F80 */ lui $at, 0x3f80 -/* C104 80030D04 44811000 */ mtc1 $at, $f2 -/* C108 80030D08 46002300 */ add.s $f12, $f4, $f0 -/* C10C 80030D0C 46061603 */ div.s $f24, $f2, $f6 -/* C110 80030D10 46006084 */ sqrt.s $f2, $f12 -/* C114 80030D14 46021032 */ c.eq.s $f2, $f2 -/* C118 80030D18 00000000 */ nop -/* C11C 80030D1C 45010004 */ bc1t .L80030D30 -/* C120 80030D20 00000000 */ nop -/* C124 80030D24 0C0187BC */ jal sqrtf -/* C128 80030D28 00000000 */ nop -/* C12C 80030D2C 46000086 */ mov.s $f2, $f0 -.L80030D30: -/* C130 80030D30 4602B002 */ mul.s $f0, $f22, $f2 -/* C134 80030D34 00000000 */ nop -/* C138 80030D38 4602A102 */ mul.s $f4, $f20, $f2 -/* C13C 80030D3C 00000000 */ nop -/* C140 80030D40 46180002 */ mul.s $f0, $f0, $f24 -/* C144 80030D44 00000000 */ nop -/* C148 80030D48 C602000C */ lwc1 $f2, 0xc($s0) -/* C14C 80030D4C 46001080 */ add.s $f2, $f2, $f0 -/* C150 80030D50 46182102 */ mul.s $f4, $f4, $f24 -/* C154 80030D54 00000000 */ nop -/* C158 80030D58 E63E0014 */ swc1 $f30, 0x14($s1) -/* C15C 80030D5C E6220010 */ swc1 $f2, 0x10($s1) -/* C160 80030D60 C6000014 */ lwc1 $f0, 0x14($s0) -/* C164 80030D64 46040000 */ add.s $f0, $f0, $f4 -/* C168 80030D68 0800C35E */ j .L80030D78 -/* C16C 80030D6C E6200018 */ swc1 $f0, 0x18($s1) -.L80030D70: -/* C170 80030D70 E63E0014 */ swc1 $f30, 0x14($s1) -/* C174 80030D74 E63A0018 */ swc1 $f26, 0x18($s1) -.L80030D78: -/* C178 80030D78 12E00191 */ beqz $s7, .L800313C0 -/* C17C 80030D7C 00000000 */ nop -/* C180 80030D80 C6C00000 */ lwc1 $f0, ($s6) -/* C184 80030D84 3C013F80 */ lui $at, 0x3f80 -/* C188 80030D88 44812000 */ mtc1 $at, $f4 -/* C18C 80030D8C 00000000 */ nop -/* C190 80030D90 46040032 */ c.eq.s $f0, $f4 -/* C194 80030D94 00000000 */ nop -/* C198 80030D98 45010140 */ bc1t .L8003129C -/* C19C 80030D9C 00000000 */ nop -/* C1A0 80030DA0 8E840000 */ lw $a0, ($s4) -/* C1A4 80030DA4 24820002 */ addiu $v0, $a0, 2 -/* C1A8 80030DA8 2C420003 */ sltiu $v0, $v0, 3 -/* C1AC 80030DAC 1440013B */ bnez $v0, .L8003129C -/* C1B0 80030DB0 00000000 */ nop -/* C1B4 80030DB4 8C830000 */ lw $v1, ($a0) -/* C1B8 80030DB8 8E020000 */ lw $v0, ($s0) -/* C1BC 80030DBC 14620137 */ bne $v1, $v0, .L8003129C -/* C1C0 80030DC0 00000000 */ nop -/* C1C4 80030DC4 C4820004 */ lwc1 $f2, 4($a0) -/* C1C8 80030DC8 C6000004 */ lwc1 $f0, 4($s0) -/* C1CC 80030DCC 46001032 */ c.eq.s $f2, $f0 -/* C1D0 80030DD0 00000000 */ nop -/* C1D4 80030DD4 45000131 */ bc1f .L8003129C -/* C1D8 80030DD8 00000000 */ nop -/* C1DC 80030DDC C4820008 */ lwc1 $f2, 8($a0) -/* C1E0 80030DE0 C6000008 */ lwc1 $f0, 8($s0) -/* C1E4 80030DE4 46001032 */ c.eq.s $f2, $f0 -/* C1E8 80030DE8 00000000 */ nop -/* C1EC 80030DEC 4500012B */ bc1f .L8003129C -/* C1F0 80030DF0 00000000 */ nop -/* C1F4 80030DF4 C4820024 */ lwc1 $f2, 0x24($a0) -/* C1F8 80030DF8 C6000024 */ lwc1 $f0, 0x24($s0) -/* C1FC 80030DFC 46001032 */ c.eq.s $f2, $f0 -/* C200 80030E00 00000000 */ nop -/* C204 80030E04 45000125 */ bc1f .L8003129C -/* C208 80030E08 00000000 */ nop -/* C20C 80030E0C 8C830028 */ lw $v1, 0x28($a0) -/* C210 80030E10 8E020028 */ lw $v0, 0x28($s0) -/* C214 80030E14 10620121 */ beq $v1, $v0, .L8003129C -/* C218 80030E18 00000000 */ nop -/* C21C 80030E1C C482000C */ lwc1 $f2, 0xc($a0) -/* C220 80030E20 C600000C */ lwc1 $f0, 0xc($s0) -/* C224 80030E24 46001032 */ c.eq.s $f2, $f0 -/* C228 80030E28 00000000 */ nop -/* C22C 80030E2C 4500011B */ bc1f .L8003129C -/* C230 80030E30 00000000 */ nop -/* C234 80030E34 C4820014 */ lwc1 $f2, 0x14($a0) -/* C238 80030E38 C6000014 */ lwc1 $f0, 0x14($s0) -/* C23C 80030E3C 46001032 */ c.eq.s $f2, $f0 -/* C240 80030E40 00000000 */ nop -/* C244 80030E44 45030115 */ bc1tl .L8003129C -/* C248 80030E48 E6C40000 */ swc1 $f4, ($s6) -/* C24C 80030E4C 0800C4A7 */ j .L8003129C -/* C250 80030E50 00000000 */ nop -.L80030E54_C254: -/* C254 80030E54 8E020028 */ lw $v0, 0x28($s0) -/* C258 80030E58 1440005D */ bnez $v0, .L80030FD0 -/* C25C 80030E5C 00000000 */ nop -/* C260 80030E60 C612000C */ lwc1 $f18, 0xc($s0) -/* C264 80030E64 C6100018 */ lwc1 $f16, 0x18($s0) -/* C268 80030E68 C60A0014 */ lwc1 $f10, 0x14($s0) -/* C26C 80030E6C C60C0020 */ lwc1 $f12, 0x20($s0) -/* C270 80030E70 C6040010 */ lwc1 $f4, 0x10($s0) -/* C274 80030E74 C60E001C */ lwc1 $f14, 0x1c($s0) -/* C278 80030E78 46109032 */ c.eq.s $f18, $f16 -/* C27C 80030E7C 00000000 */ nop -/* C280 80030E80 45000007 */ bc1f .L80030EA0 -/* C284 80030E84 46048201 */ sub.s $f8, $f16, $f4 -/* C288 80030E88 460C5032 */ c.eq.s $f10, $f12 -/* C28C 80030E8C 00000000 */ nop -/* C290 80030E90 45000003 */ bc1f .L80030EA0 -/* C294 80030E94 00000000 */ nop -/* C298 80030E98 46002486 */ mov.s $f18, $f4 -/* C29C 80030E9C 46007286 */ mov.s $f10, $f14 -.L80030EA0: -/* C2A0 80030EA0 44800000 */ mtc1 $zero, $f0 -/* C2A4 80030EA4 00000000 */ nop -/* C2A8 80030EA8 46004032 */ c.eq.s $f8, $f0 -/* C2AC 80030EAC 00000000 */ nop -/* C2B0 80030EB0 45020017 */ bc1fl .L80030F10 -/* C2B4 80030EB4 460C5181 */ sub.s $f6, $f10, $f12 -/* C2B8 80030EB8 46128181 */ sub.s $f6, $f16, $f18 -/* C2BC 80030EBC 46064102 */ mul.s $f4, $f8, $f6 -/* C2C0 80030EC0 00000000 */ nop -/* C2C4 80030EC4 461A6081 */ sub.s $f2, $f12, $f26 -/* C2C8 80030EC8 46081082 */ mul.s $f2, $f2, $f8 -/* C2CC 80030ECC 00000000 */ nop -/* C2D0 80030ED0 460C5281 */ sub.s $f10, $f10, $f12 -/* C2D4 80030ED4 460E6201 */ sub.s $f8, $f12, $f14 -/* C2D8 80030ED8 4610C001 */ sub.s $f0, $f24, $f16 -/* C2DC 80030EDC 46081083 */ div.s $f2, $f2, $f8 -/* C2E0 80030EE0 46020000 */ add.s $f0, $f0, $f2 -/* C2E4 80030EE4 46005082 */ mul.s $f2, $f10, $f0 -/* C2E8 80030EE8 00000000 */ nop -/* C2EC 80030EEC 46003182 */ mul.s $f6, $f6, $f0 -/* C2F0 80030EF0 00000000 */ nop -/* C2F4 80030EF4 46082103 */ div.s $f4, $f4, $f8 -/* C2F8 80030EF8 460A2101 */ sub.s $f4, $f4, $f10 -/* C2FC 80030EFC 46041083 */ div.s $f2, $f2, $f4 -/* C300 80030F00 46181200 */ add.s $f8, $f2, $f24 -/* C304 80030F04 46043183 */ div.s $f6, $f6, $f4 -/* C308 80030F08 0800C3D8 */ j .L80030F60 -/* C30C 80030F0C 461A3000 */ add.s $f0, $f6, $f26 -.L80030F10: -/* C310 80030F10 460E6081 */ sub.s $f2, $f12, $f14 -/* C314 80030F14 46023102 */ mul.s $f4, $f6, $f2 -/* C318 80030F18 00000000 */ nop -/* C31C 80030F1C 46188001 */ sub.s $f0, $f16, $f24 -/* C320 80030F20 46020002 */ mul.s $f0, $f0, $f2 -/* C324 80030F24 00000000 */ nop -/* C328 80030F28 460CD081 */ sub.s $f2, $f26, $f12 -/* C32C 80030F2C 46080003 */ div.s $f0, $f0, $f8 -/* C330 80030F30 46001080 */ add.s $f2, $f2, $f0 -/* C334 80030F34 46023182 */ mul.s $f6, $f6, $f2 -/* C338 80030F38 00000000 */ nop -/* C33C 80030F3C 46128001 */ sub.s $f0, $f16, $f18 -/* C340 80030F40 46020082 */ mul.s $f2, $f0, $f2 -/* C344 80030F44 00000000 */ nop -/* C348 80030F48 46082103 */ div.s $f4, $f4, $f8 -/* C34C 80030F4C 46002101 */ sub.s $f4, $f4, $f0 -/* C350 80030F50 46043183 */ div.s $f6, $f6, $f4 -/* C354 80030F54 46183200 */ add.s $f8, $f6, $f24 -/* C358 80030F58 46041083 */ div.s $f2, $f2, $f4 -/* C35C 80030F5C 461A1000 */ add.s $f0, $f2, $f26 -.L80030F60: -/* C360 80030F60 E6280010 */ swc1 $f8, 0x10($s1) -/* C364 80030F64 E63E0014 */ swc1 $f30, 0x14($s1) -/* C368 80030F68 12A0003E */ beqz $s5, .L80031064 -/* C36C 80030F6C E6200018 */ swc1 $f0, 0x18($s1) -/* C370 80030F70 C6020018 */ lwc1 $f2, 0x18($s0) -/* C374 80030F74 C600000C */ lwc1 $f0, 0xc($s0) -/* C378 80030F78 46001081 */ sub.s $f2, $f2, $f0 -/* C37C 80030F7C C6000014 */ lwc1 $f0, 0x14($s0) -/* C380 80030F80 44061000 */ mfc1 $a2, $f2 -/* C384 80030F84 C6020020 */ lwc1 $f2, 0x20($s0) -/* C388 80030F88 4480A000 */ mtc1 $zero, $f20 -/* C38C 80030F8C 46001081 */ sub.s $f2, $f2, $f0 -/* C390 80030F90 4600A306 */ mov.s $f12, $f20 -/* C394 80030F94 44071000 */ mfc1 $a3, $f2 -/* C398 80030F98 0C00A720 */ jal atan2 -/* C39C 80030F9C 4600A386 */ mov.s $f14, $f20 -/* C3A0 80030FA0 E6200000 */ swc1 $f0, ($s1) -/* C3A4 80030FA4 C6000004 */ lwc1 $f0, 4($s0) -/* C3A8 80030FA8 4614003C */ c.lt.s $f0, $f20 -/* C3AC 80030FAC 00000000 */ nop -/* C3B0 80030FB0 45030001 */ bc1tl .L80030FB8 -/* C3B4 80030FB4 46000007 */ neg.s $f0, $f0 -.L80030FB8: -/* C3B8 80030FB8 E6200004 */ swc1 $f0, 4($s1) -/* C3BC 80030FBC C6000008 */ lwc1 $f0, 8($s0) -/* C3C0 80030FC0 E6200008 */ swc1 $f0, 8($s1) -/* C3C4 80030FC4 C6000024 */ lwc1 $f0, 0x24($s0) -/* C3C8 80030FC8 0800C419 */ j .L80031064 -/* C3CC 80030FCC E620000C */ swc1 $f0, 0xc($s1) -.L80030FD0: -/* C3D0 80030FD0 12A0001D */ beqz $s5, .L80031048 -/* C3D4 80030FD4 00000000 */ nop -/* C3D8 80030FD8 C6020018 */ lwc1 $f2, 0x18($s0) -/* C3DC 80030FDC C600000C */ lwc1 $f0, 0xc($s0) -/* C3E0 80030FE0 46001081 */ sub.s $f2, $f2, $f0 -/* C3E4 80030FE4 C6000014 */ lwc1 $f0, 0x14($s0) -/* C3E8 80030FE8 44061000 */ mfc1 $a2, $f2 -/* C3EC 80030FEC C6020020 */ lwc1 $f2, 0x20($s0) -/* C3F0 80030FF0 4480A000 */ mtc1 $zero, $f20 -/* C3F4 80030FF4 46001081 */ sub.s $f2, $f2, $f0 -/* C3F8 80030FF8 4600A306 */ mov.s $f12, $f20 -/* C3FC 80030FFC 44071000 */ mfc1 $a3, $f2 -/* C400 80031000 0C00A720 */ jal atan2 -/* C404 80031004 4600A386 */ mov.s $f14, $f20 -/* C408 80031008 E6200000 */ swc1 $f0, ($s1) -/* C40C 8003100C C6000004 */ lwc1 $f0, 4($s0) -/* C410 80031010 4614003C */ c.lt.s $f0, $f20 -/* C414 80031014 00000000 */ nop -/* C418 80031018 45030001 */ bc1tl .L80031020 -/* C41C 8003101C 46000007 */ neg.s $f0, $f0 -.L80031020: -/* C420 80031020 E6200004 */ swc1 $f0, 4($s1) -/* C424 80031024 C6000008 */ lwc1 $f0, 8($s0) -/* C428 80031028 E6200008 */ swc1 $f0, 8($s1) -/* C42C 8003102C C6000024 */ lwc1 $f0, 0x24($s0) -/* C430 80031030 E620000C */ swc1 $f0, 0xc($s1) -/* C434 80031034 C6000018 */ lwc1 $f0, 0x18($s0) -/* C438 80031038 E6200010 */ swc1 $f0, 0x10($s1) -/* C43C 8003103C C6000020 */ lwc1 $f0, 0x20($s0) -/* C440 80031040 0800C418 */ j .L80031060 -/* C444 80031044 E6200018 */ swc1 $f0, 0x18($s1) -.L80031048: -/* C448 80031048 52E00006 */ beql $s7, $zero, .L80031064 -/* C44C 8003104C E63E0014 */ swc1 $f30, 0x14($s1) -/* C450 80031050 C6400010 */ lwc1 $f0, 0x10($s2) -/* C454 80031054 E6200010 */ swc1 $f0, 0x10($s1) -/* C458 80031058 C6400018 */ lwc1 $f0, 0x18($s2) -/* C45C 8003105C E6200018 */ swc1 $f0, 0x18($s1) -.L80031060: -/* C460 80031060 E63E0014 */ swc1 $f30, 0x14($s1) -.L80031064: -/* C464 80031064 0800C4A6 */ j .L80031298 -/* C468 80031068 2402FFFF */ addiu $v0, $zero, -1 -.L8003106C_C46C: -/* C46C 8003106C 8E020028 */ lw $v0, 0x28($s0) -/* C470 80031070 1440003A */ bnez $v0, .L8003115C -/* C474 80031074 00000000 */ nop -/* C478 80031078 C60C0010 */ lwc1 $f12, 0x10($s0) -/* C47C 8003107C C6060018 */ lwc1 $f6, 0x18($s0) -/* C480 80031080 460C3181 */ sub.s $f6, $f6, $f12 -/* C484 80031084 46063102 */ mul.s $f4, $f6, $f6 -/* C488 80031088 00000000 */ nop -/* C48C 8003108C C60A001C */ lwc1 $f10, 0x1c($s0) -/* C490 80031090 C6080020 */ lwc1 $f8, 0x20($s0) -/* C494 80031094 460A4201 */ sub.s $f8, $f8, $f10 -/* C498 80031098 46084382 */ mul.s $f14, $f8, $f8 -/* C49C 8003109C 00000000 */ nop -/* C4A0 800310A0 460CC081 */ sub.s $f2, $f24, $f12 -/* C4A4 800310A4 46061082 */ mul.s $f2, $f2, $f6 -/* C4A8 800310A8 00000000 */ nop -/* C4AC 800310AC 460AD001 */ sub.s $f0, $f26, $f10 -/* C4B0 800310B0 46080002 */ mul.s $f0, $f0, $f8 -/* C4B4 800310B4 00000000 */ nop -/* C4B8 800310B8 460E2100 */ add.s $f4, $f4, $f14 -/* C4BC 800310BC 46001080 */ add.s $f2, $f2, $f0 -/* C4C0 800310C0 46041103 */ div.s $f4, $f2, $f4 -/* C4C4 800310C4 46062182 */ mul.s $f6, $f4, $f6 -/* C4C8 800310C8 00000000 */ nop -/* C4CC 800310CC 46082102 */ mul.s $f4, $f4, $f8 -/* C4D0 800310D0 00000000 */ nop -/* C4D4 800310D4 460C3080 */ add.s $f2, $f6, $f12 -/* C4D8 800310D8 44800000 */ mtc1 $zero, $f0 -/* C4DC 800310DC 460A2100 */ add.s $f4, $f4, $f10 -/* C4E0 800310E0 E63E0014 */ swc1 $f30, 0x14($s1) -/* C4E4 800310E4 E6220010 */ swc1 $f2, 0x10($s1) -/* C4E8 800310E8 E6240018 */ swc1 $f4, 0x18($s1) -/* C4EC 800310EC C6080004 */ lwc1 $f8, 4($s0) -/* C4F0 800310F0 4600403C */ c.lt.s $f8, $f0 -/* C4F4 800310F4 00000000 */ nop -/* C4F8 800310F8 45000008 */ bc1f .L8003111C -/* C4FC 800310FC 00000000 */ nop -/* C500 80031100 C600000C */ lwc1 $f0, 0xc($s0) -/* C504 80031104 46001581 */ sub.s $f22, $f2, $f0 -/* C508 80031108 C6020014 */ lwc1 $f2, 0x14($s0) -/* C50C 8003110C 46004007 */ neg.s $f0, $f8 -/* C510 80031110 E6200004 */ swc1 $f0, 4($s1) -/* C514 80031114 0800C44C */ j .L80031130 -/* C518 80031118 46022501 */ sub.s $f20, $f4, $f2 -.L8003111C: -/* C51C 8003111C C600000C */ lwc1 $f0, 0xc($s0) -/* C520 80031120 46020581 */ sub.s $f22, $f0, $f2 -/* C524 80031124 C6000014 */ lwc1 $f0, 0x14($s0) -/* C528 80031128 E6280004 */ swc1 $f8, 4($s1) -/* C52C 8003112C 46040501 */ sub.s $f20, $f0, $f4 -.L80031130: -/* C530 80031130 4406B000 */ mfc1 $a2, $f22 -/* C534 80031134 44806000 */ mtc1 $zero, $f12 -/* C538 80031138 4407A000 */ mfc1 $a3, $f20 -/* C53C 8003113C 0C00A720 */ jal atan2 -/* C540 80031140 46006386 */ mov.s $f14, $f12 -/* C544 80031144 E6200000 */ swc1 $f0, ($s1) -/* C548 80031148 C6000008 */ lwc1 $f0, 8($s0) -/* C54C 8003114C E6200008 */ swc1 $f0, 8($s1) -/* C550 80031150 C6000024 */ lwc1 $f0, 0x24($s0) -/* C554 80031154 0800C482 */ j .L80031208 -/* C558 80031158 E620000C */ swc1 $f0, 0xc($s1) -.L8003115C: -/* C55C 8003115C 12A00023 */ beqz $s5, .L800311EC -/* C560 80031160 00000000 */ nop -/* C564 80031164 C6060004 */ lwc1 $f6, 4($s0) -/* C568 80031168 44800000 */ mtc1 $zero, $f0 -/* C56C 8003116C 00000000 */ nop -/* C570 80031170 4600303C */ c.lt.s $f6, $f0 -/* C574 80031174 00000000 */ nop -/* C578 80031178 4500000A */ bc1f .L800311A4 -/* C57C 8003117C 00000000 */ nop -/* C580 80031180 C6020018 */ lwc1 $f2, 0x18($s0) -/* C584 80031184 C600000C */ lwc1 $f0, 0xc($s0) -/* C588 80031188 46001581 */ sub.s $f22, $f2, $f0 -/* C58C 8003118C C6040020 */ lwc1 $f4, 0x20($s0) -/* C590 80031190 C6020014 */ lwc1 $f2, 0x14($s0) -/* C594 80031194 46003007 */ neg.s $f0, $f6 -/* C598 80031198 E6200004 */ swc1 $f0, 4($s1) -/* C59C 8003119C 0800C470 */ j .L800311C0 -/* C5A0 800311A0 46022501 */ sub.s $f20, $f4, $f2 -.L800311A4: -/* C5A4 800311A4 C602000C */ lwc1 $f2, 0xc($s0) -/* C5A8 800311A8 C6000018 */ lwc1 $f0, 0x18($s0) -/* C5AC 800311AC 46001581 */ sub.s $f22, $f2, $f0 -/* C5B0 800311B0 C6020014 */ lwc1 $f2, 0x14($s0) -/* C5B4 800311B4 C6000020 */ lwc1 $f0, 0x20($s0) -/* C5B8 800311B8 E6260004 */ swc1 $f6, 4($s1) -/* C5BC 800311BC 46001501 */ sub.s $f20, $f2, $f0 -.L800311C0: -/* C5C0 800311C0 4406B000 */ mfc1 $a2, $f22 -/* C5C4 800311C4 44806000 */ mtc1 $zero, $f12 -/* C5C8 800311C8 4407A000 */ mfc1 $a3, $f20 -/* C5CC 800311CC 0C00A720 */ jal atan2 -/* C5D0 800311D0 46006386 */ mov.s $f14, $f12 -/* C5D4 800311D4 E6200000 */ swc1 $f0, ($s1) -/* C5D8 800311D8 C6000008 */ lwc1 $f0, 8($s0) -/* C5DC 800311DC E6200008 */ swc1 $f0, 8($s1) -/* C5E0 800311E0 C6000024 */ lwc1 $f0, 0x24($s0) -/* C5E4 800311E4 0800C47D */ j .L800311F4 -/* C5E8 800311E8 E620000C */ swc1 $f0, 0xc($s1) -.L800311EC: -/* C5EC 800311EC 52E00006 */ beql $s7, $zero, .L80031208 -/* C5F0 800311F0 E63E0014 */ swc1 $f30, 0x14($s1) -.L800311F4: -/* C5F4 800311F4 C6000018 */ lwc1 $f0, 0x18($s0) -/* C5F8 800311F8 E6200010 */ swc1 $f0, 0x10($s1) -/* C5FC 800311FC C6000020 */ lwc1 $f0, 0x20($s0) -/* C600 80031200 E6200018 */ swc1 $f0, 0x18($s1) -/* C604 80031204 E63E0014 */ swc1 $f30, 0x14($s1) -.L80031208: -/* C608 80031208 0800C4A6 */ j .L80031298 -/* C60C 8003120C 2402FFFF */ addiu $v0, $zero, -1 -.L80031210_C610: -/* C610 80031210 E6380010 */ swc1 $f24, 0x10($s1) -/* C614 80031214 E63E0014 */ swc1 $f30, 0x14($s1) -/* C618 80031218 0800C4A7 */ j .L8003129C -/* C61C 8003121C E63A0018 */ swc1 $f26, 0x18($s1) -.L80031220_C620: -/* C620 80031220 C6020018 */ lwc1 $f2, 0x18($s0) -/* C624 80031224 C600000C */ lwc1 $f0, 0xc($s0) -/* C628 80031228 46001081 */ sub.s $f2, $f2, $f0 -/* C62C 8003122C C6000014 */ lwc1 $f0, 0x14($s0) -/* C630 80031230 44061000 */ mfc1 $a2, $f2 -/* C634 80031234 C6020020 */ lwc1 $f2, 0x20($s0) -/* C638 80031238 4480A000 */ mtc1 $zero, $f20 -/* C63C 8003123C 46001081 */ sub.s $f2, $f2, $f0 -/* C640 80031240 4600A306 */ mov.s $f12, $f20 -/* C644 80031244 44071000 */ mfc1 $a3, $f2 -/* C648 80031248 0C00A720 */ jal atan2 -/* C64C 8003124C 4600A386 */ mov.s $f14, $f20 -/* C650 80031250 E6200000 */ swc1 $f0, ($s1) -/* C654 80031254 C6000004 */ lwc1 $f0, 4($s0) -/* C658 80031258 4614003C */ c.lt.s $f0, $f20 -/* C65C 8003125C 00000000 */ nop -/* C660 80031260 45030001 */ bc1tl .L80031268 -/* C664 80031264 46000007 */ neg.s $f0, $f0 -.L80031268: -/* C668 80031268 E6200004 */ swc1 $f0, 4($s1) -/* C66C 8003126C C6000008 */ lwc1 $f0, 8($s0) -/* C670 80031270 E6200008 */ swc1 $f0, 8($s1) -/* C674 80031274 C6000024 */ lwc1 $f0, 0x24($s0) -/* C678 80031278 E620000C */ swc1 $f0, 0xc($s1) -/* C67C 8003127C C6000018 */ lwc1 $f0, 0x18($s0) -/* C680 80031280 E6200010 */ swc1 $f0, 0x10($s1) -/* C684 80031284 C600001C */ lwc1 $f0, 0x1c($s0) -/* C688 80031288 E6200014 */ swc1 $f0, 0x14($s1) -/* C68C 8003128C C6000020 */ lwc1 $f0, 0x20($s0) -/* C690 80031290 2402FFFE */ addiu $v0, $zero, -2 -/* C694 80031294 E6200018 */ swc1 $f0, 0x18($s1) -.L80031298: -/* C698 80031298 AE820000 */ sw $v0, ($s4) -.L8003129C: -/* C69C 8003129C 12E00048 */ beqz $s7, .L800313C0 -/* C6A0 800312A0 24020005 */ addiu $v0, $zero, 5 -/* C6A4 800312A4 8E030000 */ lw $v1, ($s0) -/* C6A8 800312A8 10620007 */ beq $v1, $v0, .L800312C8 -/* C6AC 800312AC 00000000 */ nop -/* C6B0 800312B0 C6420000 */ lwc1 $f2, ($s2) -/* C6B4 800312B4 C6600000 */ lwc1 $f0, ($s3) -/* C6B8 800312B8 46001032 */ c.eq.s $f2, $f0 -/* C6BC 800312BC 00000000 */ nop -/* C6C0 800312C0 4501003F */ bc1t .L800313C0 -/* C6C4 800312C4 00000000 */ nop -.L800312C8: -/* C6C8 800312C8 C6400000 */ lwc1 $f0, ($s2) -/* C6CC 800312CC C6620000 */ lwc1 $f2, ($s3) -/* C6D0 800312D0 46020001 */ sub.s $f0, $f0, $f2 -/* C6D4 800312D4 3C014040 */ lui $at, 0x4040 -/* C6D8 800312D8 44811000 */ mtc1 $at, $f2 -/* C6DC 800312DC 46000005 */ abs.s $f0, $f0 -/* C6E0 800312E0 4602003C */ c.lt.s $f0, $f2 -/* C6E4 800312E4 00000000 */ nop -/* C6E8 800312E8 45000035 */ bc1f .L800313C0 -/* C6EC 800312EC 00000000 */ nop -/* C6F0 800312F0 C6400004 */ lwc1 $f0, 4($s2) -/* C6F4 800312F4 C6620004 */ lwc1 $f2, 4($s3) -/* C6F8 800312F8 46020001 */ sub.s $f0, $f0, $f2 -/* C6FC 800312FC 3C014120 */ lui $at, 0x4120 -/* C700 80031300 44812000 */ mtc1 $at, $f4 -/* C704 80031304 46000005 */ abs.s $f0, $f0 -/* C708 80031308 4604003C */ c.lt.s $f0, $f4 -/* C70C 8003130C 00000000 */ nop -/* C710 80031310 4500002B */ bc1f .L800313C0 -/* C714 80031314 00000000 */ nop -/* C718 80031318 C6400008 */ lwc1 $f0, 8($s2) -/* C71C 8003131C C6620008 */ lwc1 $f2, 8($s3) -/* C720 80031320 46020001 */ sub.s $f0, $f0, $f2 -/* C724 80031324 3C013F80 */ lui $at, 0x3f80 -/* C728 80031328 44813000 */ mtc1 $at, $f6 -/* C72C 8003132C 46000005 */ abs.s $f0, $f0 -/* C730 80031330 4606003C */ c.lt.s $f0, $f6 -/* C734 80031334 00000000 */ nop -/* C738 80031338 45000021 */ bc1f .L800313C0 -/* C73C 8003133C 00000000 */ nop -/* C740 80031340 C640000C */ lwc1 $f0, 0xc($s2) -/* C744 80031344 C662000C */ lwc1 $f2, 0xc($s3) -/* C748 80031348 46020001 */ sub.s $f0, $f0, $f2 -/* C74C 8003134C 46000005 */ abs.s $f0, $f0 -/* C750 80031350 4606003C */ c.lt.s $f0, $f6 -/* C754 80031354 00000000 */ nop -/* C758 80031358 45000019 */ bc1f .L800313C0 -/* C75C 8003135C 00000000 */ nop -/* C760 80031360 C6400010 */ lwc1 $f0, 0x10($s2) -/* C764 80031364 C6620010 */ lwc1 $f2, 0x10($s3) -/* C768 80031368 46020001 */ sub.s $f0, $f0, $f2 -/* C76C 8003136C 46000005 */ abs.s $f0, $f0 -/* C770 80031370 4604003C */ c.lt.s $f0, $f4 -/* C774 80031374 00000000 */ nop -/* C778 80031378 45000011 */ bc1f .L800313C0 -/* C77C 8003137C 00000000 */ nop -/* C780 80031380 C6400014 */ lwc1 $f0, 0x14($s2) -/* C784 80031384 C6620014 */ lwc1 $f2, 0x14($s3) -/* C788 80031388 46020001 */ sub.s $f0, $f0, $f2 -/* C78C 8003138C 46000005 */ abs.s $f0, $f0 -/* C790 80031390 4604003C */ c.lt.s $f0, $f4 -/* C794 80031394 00000000 */ nop -/* C798 80031398 45000009 */ bc1f .L800313C0 -/* C79C 8003139C 00000000 */ nop -/* C7A0 800313A0 C6400018 */ lwc1 $f0, 0x18($s2) -/* C7A4 800313A4 C6620018 */ lwc1 $f2, 0x18($s3) -/* C7A8 800313A8 46020001 */ sub.s $f0, $f0, $f2 -/* C7AC 800313AC 46000005 */ abs.s $f0, $f0 -/* C7B0 800313B0 4604003C */ c.lt.s $f0, $f4 -/* C7B4 800313B4 00000000 */ nop -/* C7B8 800313B8 45030001 */ bc1tl .L800313C0 -/* C7BC 800313BC E6C60000 */ swc1 $f6, ($s6) -.L800313C0: -/* C7C0 800313C0 8E830000 */ lw $v1, ($s4) -/* C7C4 800313C4 2402FFFF */ addiu $v0, $zero, -1 -/* C7C8 800313C8 14620021 */ bne $v1, $v0, .L80031450 -/* C7CC 800313CC 00000000 */ nop -/* C7D0 800313D0 12E00010 */ beqz $s7, .L80031414 -/* C7D4 800313D4 00000000 */ nop -/* C7D8 800313D8 C6460010 */ lwc1 $f6, 0x10($s2) -/* C7DC 800313DC C6600010 */ lwc1 $f0, 0x10($s3) -/* C7E0 800313E0 C6440014 */ lwc1 $f4, 0x14($s2) -/* C7E4 800313E4 46003181 */ sub.s $f6, $f6, $f0 -/* C7E8 800313E8 C6600014 */ lwc1 $f0, 0x14($s3) -/* C7EC 800313EC C6420018 */ lwc1 $f2, 0x18($s2) -/* C7F0 800313F0 46002101 */ sub.s $f4, $f4, $f0 -/* C7F4 800313F4 C6600018 */ lwc1 $f0, 0x18($s3) -/* C7F8 800313F8 46001081 */ sub.s $f2, $f2, $f0 -/* C7FC 800313FC 3C01800A */ lui $at, %hi(D_800A08E4) -/* C800 80031400 E42608E4 */ swc1 $f6, %lo(D_800A08E4)($at) -/* C804 80031404 3C01800A */ lui $at, %hi(D_800A08E8) -/* C808 80031408 E42408E8 */ swc1 $f4, %lo(D_800A08E8)($at) -/* C80C 8003140C 3C01800A */ lui $at, %hi(D_800A08EC) -/* C810 80031410 E42208EC */ swc1 $f2, %lo(D_800A08EC)($at) -.L80031414: -/* C814 80031414 C6600010 */ lwc1 $f0, 0x10($s3) -/* C818 80031418 3C01800A */ lui $at, %hi(D_800A08E4) -/* C81C 8003141C C42208E4 */ lwc1 $f2, %lo(D_800A08E4)($at) -/* C820 80031420 46020000 */ add.s $f0, $f0, $f2 -/* C824 80031424 3C01800A */ lui $at, %hi(D_800A08E8) -/* C828 80031428 C42208E8 */ lwc1 $f2, %lo(D_800A08E8)($at) -/* C82C 8003142C E6400010 */ swc1 $f0, 0x10($s2) -/* C830 80031430 C6600014 */ lwc1 $f0, 0x14($s3) -/* C834 80031434 46020000 */ add.s $f0, $f0, $f2 -/* C838 80031438 3C01800A */ lui $at, %hi(D_800A08EC) -/* C83C 8003143C C42208EC */ lwc1 $f2, %lo(D_800A08EC)($at) -/* C840 80031440 E6400014 */ swc1 $f0, 0x14($s2) -/* C844 80031444 C6600018 */ lwc1 $f0, 0x18($s3) -/* C848 80031448 46020000 */ add.s $f0, $f0, $f2 -/* C84C 8003144C E6400018 */ swc1 $f0, 0x18($s2) -.L80031450: -/* C850 80031450 8FBF0048 */ lw $ra, 0x48($sp) -/* C854 80031454 8FB70044 */ lw $s7, 0x44($sp) -/* C858 80031458 8FB60040 */ lw $s6, 0x40($sp) -/* C85C 8003145C 8FB5003C */ lw $s5, 0x3c($sp) -/* C860 80031460 8FB40038 */ lw $s4, 0x38($sp) -/* C864 80031464 8FB30034 */ lw $s3, 0x34($sp) -/* C868 80031468 8FB20030 */ lw $s2, 0x30($sp) -/* C86C 8003146C 8FB1002C */ lw $s1, 0x2c($sp) -/* C870 80031470 8FB00028 */ lw $s0, 0x28($sp) -/* C874 80031474 D7BE0078 */ ldc1 $f30, 0x78($sp) -/* C878 80031478 D7BC0070 */ ldc1 $f28, 0x70($sp) -/* C87C 8003147C D7BA0068 */ ldc1 $f26, 0x68($sp) -/* C880 80031480 D7B80060 */ ldc1 $f24, 0x60($sp) -/* C884 80031484 D7B60058 */ ldc1 $f22, 0x58($sp) -/* C888 80031488 D7B40050 */ ldc1 $f20, 0x50($sp) -/* C88C 8003148C 03E00008 */ jr $ra -/* C890 80031490 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 1542908f4c..2ce251cc35 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -2706,7 +2706,7 @@ record_jump_apex = 0x800E26B0; // type:func rom:0x7BB60 can_trigger_loading_zone = 0x800E26C4; // type:func rom:0x7BB74 move_player = 0x800E2778; // type:func rom:0x7BC28 collision_main_above = 0x800E27E0; // type:func rom:0x7BC90 -blendedCamSettings = 0x800A08C0; // type:data rom:0x7BCC0 +gCurrentCamConfiguration = 0x800A08C0; // type:data rom:0x7BCC0 D_800A08DC = 0x800A08DC; // type:data rom:0x7BCDC D_800A08E0 = 0x800A08E0; // type:data rom:0x7BCE0 D_800A08E4 = 0x800A08E4; // type:data rom:0x7BCE4