camera functions and zone collision data (#671)

* match 3 functions

* match 4 camera functions

* fixes

* camSettings type enum

* PR suggestions
This commit is contained in:
Unnunu 2022-03-28 12:29:47 +03:00 committed by GitHub
parent 7dbd1770ec
commit 9e0aab9e6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 483 additions and 2230 deletions

View File

@ -759,19 +759,6 @@ typedef struct UiStatus {
/* 0x6C */ s8 unk_6C[4];
} UiStatus; // size = 0x70
typedef struct Collider {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 nextSibling;
/* 0x06 */ s16 firstChild;
/* 0x08 */ s16 parentModelIndex;
/* 0x0A */ s16 numTriangles;
/* 0x0C */ struct ColliderTriangle* triangleTable;
/* 0x10 */ struct ColliderBoundingBox* aabb;
/* 0x14 */ s16 numVertices;
/* 0x16 */ char unk_16[2];
/* 0x18 */ Vec3f* vertexTable; // contains local and global coordinates
} Collider; // size = 0x1C
typedef struct CameraInitData {
/* 0x00 */ s16 flags;
/* 0x02 */ s8 type;
@ -900,7 +887,7 @@ typedef struct Camera {
/* 0x528 */ f32 unk_528;
/* 0x52C */ s32 unk_52C;
/* 0x530 */ s32 unk_530;
/* 0x534 */ struct ColliderBoundingBox* aabbForZoneBelow;
/* 0x534 */ CameraControlSettings* aabbForZoneBelow;
/* 0x538 */ char unk_538[0x18];
/* 0x550 */ f32 unk_550;
/* 0x554 */ s16 unk_554;
@ -1080,10 +1067,29 @@ typedef struct MoveData {
/* 0x13 */ u8 actionCommandID;
} MoveData; // size = 0x14
typedef struct Collider {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 nextSibling;
/* 0x06 */ s16 firstChild;
/* 0x08 */ s16 parentModelIndex;
/* 0x0A */ s16 numTriangles;
/* 0x0C */ struct ColliderTriangle* triangleTable;
/* 0x10 */ union {
struct ColliderBoundingBox* aabb;
struct CameraControlSettings* camSettings;
};
/* 0x14 */ s16 numVertices;
/* 0x16 */ char unk_16[2];
/* 0x18 */ Vec3f* vertexTable; // contains local and global coordinates
} Collider; // size = 0x1C
typedef struct CollisionData {
/* 0x00 */ Vec3f* vertices;
/* 0x04 */ Collider* colliderList;
/* 0x08 */ struct ColliderBoundingBox* aabbs;
/* 0x08 */ union {
struct ColliderBoundingBox* aabbs;
CameraControlSettings* camSettings;
};
/* 0x0C */ s16 numColliders;
/* 0x0E */ char unk_0E[2];
} CollisionData; // size = 0x10
@ -2355,15 +2361,6 @@ typedef struct VirtualEntity {
typedef VirtualEntity* VirtualEntityList[0x40];
typedef struct TempSetZoneEnabled {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 id1;
/* 0x06 */ s16 id2;
/* 0x08 */ char unk_08[0x8];
/* 0x10 */ CameraControlSettings* unk_10;
/* 0x14 */ char unk_14[0x8];
} TempSetZoneEnabled; // size = 0x1C
typedef struct ActionCommandStatus {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 hudElements[15];

View File

@ -2753,6 +2753,16 @@ enum CameraFlags {
CAMERA_FLAGS_80000000 = 0x80000000,
};
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 BtlCameraPreset {
BTL_CAM_PRESET_A = 0,
BTL_CAM_PRESET_B,

View File

@ -111,7 +111,7 @@ extern s32 CreateEntityVarArgBuffer[3]; // not size 3
extern f32 DefaultMoveSpeeds[4];
extern TempSetZoneEnabled* D_800D91D4;
extern CollisionData gZoneCollisionData;
// Animation related
extern AnimatedMeshList* gCurrentAnimMeshListPtr;

View File

@ -5,7 +5,7 @@ extern f32 D_800A08DC;
extern f32 D_800A08E0;
void func_80030210(Camera* camera, f32 arg1, f32 arg2, s32 arg3);
void func_8003034C(Camera* camera);
void update_camera_mode_unused(Camera* camera);
// Issues with zero float temp?
@ -194,17 +194,16 @@ CameraControlSettings* test_ray_zone_aabb(f32 x, f32 y, f32 z) {
return NULL;
}
return D_800D91D4[zoneID].unk_10;
return gZoneCollisionData.colliderList[zoneID].camSettings;
}
void update_camera_from_controller(Camera*, CamPosSettings*, CameraControlSettings**, CamPosSettings*, CameraControlSettings**, f32, f32, f32, f32, f32, f32, s32, f32*, s32); // extern
INCLUDE_ASM(s32, "B0E0", update_camera_from_controller);
void update_camera_zone_interp(Camera* camera);
// Mostly issues with the switch
#ifdef NON_EQUIVALENT
void update_camera_zone_interp(Camera* camera) {
CameraControlSettings* currentController;
CameraControlSettings* cs;
CameraControlSettings* cs2;
f32 targetX;
f32 targetY;
f32 targetZ;
@ -216,11 +215,9 @@ void update_camera_zone_interp(Camera* camera) {
f32 deltaSqSum;
f32 panPhase;
f32 temp_f20_2;
f32 temp_f22;
f32 temp_f22_3;
f32 temp_f22_4;
f32 cosNegViewPitch;
f32 sinNegViewPitch;
f32 panRad;
f32 cosViewPitch;
f32 sinViewPitch;
f32 temp_f24;
f32 temp_f24_2;
f32 temp_f26;
@ -238,6 +235,8 @@ void update_camera_zone_interp(Camera* camera) {
f32 tZ;
s32 changingZone;
f32 dist;
f32 temp;
f32 temp2;
targetX = camera->targetPos.x;
targetY = camera->targetPos.y;
@ -264,7 +263,7 @@ void update_camera_zone_interp(Camera* camera) {
camera->unk_498 = 1.0f;
camera->linearInterpScale = 1.0f;
}
temp = targetX;
if (camera->moveFlags & 1) {
camera->unk_498 = 0.0f;
} else if (camera->unk_494 != targetY) {
@ -294,6 +293,7 @@ void update_camera_zone_interp(Camera* camera) {
camera->savedTargetY += (camera->unk_494 - camera->savedTargetY) * camera->unk_498;
}
temp2 = targetZ;
if (camera->unk_506 != 0 || camera->unk_4A4 != targetX || camera->unk_4A8 != targetY ||
camera->unk_4AC != targetZ || camera->changingMap) {
@ -304,46 +304,48 @@ void update_camera_zone_interp(Camera* camera) {
}
cond2 = FALSE;
if (cs != NULL && camera->currentController != NULL && cs->type == camera->currentController->type &&
cs->flag == camera->currentController->flag && cs->boomLength == camera->currentController->boomLength &&
cs->boomPitch == camera->currentController->boomPitch &&
cs->viewPitch == camera->currentController->viewPitch) {
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) {
switch (cs->type) {
case 0:
if (cs->posA.x == camera->currentController->posA.x &&
cs->posA.z == camera->currentController->posA.z &&
cs->posB.x == camera->currentController->posB.x &&
cs->posB.z == camera->currentController->posB.z) {
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) {
cond2 = TRUE;
}
break;
case 1:
if (!cs->flag) {
if (cs->posA.x == camera->currentController->posA.x &&
cs->posA.z == camera->currentController->posA.z) {
cond2 = TRUE;
}
} else {
if (cs->posA.x == camera->currentController->posA.x &&
cs->posA.z == camera->currentController->posA.z &&
cs->posB.x == camera->currentController->posB.x &&
cs->posB.z == camera->currentController->posB.z) {
cond2 = TRUE;
}
switch (cs->flag){
case 0:
if (cs->posA.x == currentController->posA.x &&
cs->posA.z == currentController->posA.z) {
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) {
cond2 = TRUE;
}
break;
}
break;
default:
if (cs->posA.x == camera->currentController->posA.x &&
cs->posA.z == camera->currentController->posA.z &&
cs->posA.y == camera->currentController->posA.y &&
cs->posB.y == camera->currentController->posB.y &&
cs->posB.x == camera->currentController->posB.x &&
cs->posB.z == camera->currentController->posB.z) {
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) {
cond2 = TRUE;
}
@ -351,7 +353,7 @@ void update_camera_zone_interp(Camera* camera) {
}
}
if (camera->unk_506 != 0 || (!cond2 && cs != camera->currentController)) {
if (camera->unk_506 != 0 || (!cond2 && cs2 != currentController)) {
if (camera->interpAlpha == 1.0f) {
camera->prevController = camera->currentController;
} else {
@ -376,17 +378,17 @@ void update_camera_zone_interp(Camera* camera) {
}
}
posX = targetX;
posX = temp;
if (camera->prevPrevFollowFlags) {
posX = camera->prevPrevMovePos.x;
posY = camera->prevPrevMovePos.y;
posZ = camera->prevPrevMovePos.z;
} else {
posY = camera->savedTargetY;
posZ = targetZ;
posZ = temp2;
}
tX = targetX;
tX = temp;
if (camera->prevFollowFlags) {
camera->savedTargetY = camera->prevMovePos.y;
tX = camera->prevMovePos.x;
@ -394,7 +396,7 @@ void update_camera_zone_interp(Camera* camera) {
tZ = camera->prevMovePos.z;
} else {
tY = camera->savedTargetY;
tZ = targetZ;
tZ = temp2;
}
update_camera_from_controller(camera, &camera->oldCameraSettings, &camera->prevController,
@ -414,14 +416,15 @@ void update_camera_zone_interp(Camera* camera) {
camera->oldCameraSettings.boomYaw += 360.0f;
}
boomYawDiff = camera->oldCameraSettings.boomYaw - camera->newCameraSettings.boomYaw;
if (boomYawDiff < 0.0f) {
boomYawDiff = -boomYawDiff;
settingDiff = camera->oldCameraSettings.boomYaw - camera->newCameraSettings.boomYaw;
if (settingDiff < 0.0f) {
settingDiff = -settingDiff;
}
if (boomYawDiff > 180.0f) {
boomYawDiff = 360.0f - boomYawDiff;
if (settingDiff > 180.0f) {
settingDiff = 360.0f - settingDiff;
}
boomYawDiff = settingDiff;
settingDiff = camera->oldCameraSettings.boomPitch - camera->newCameraSettings.boomPitch;
if (settingDiff < 0.0f) {
settingDiff = -settingDiff;
@ -455,14 +458,18 @@ void update_camera_zone_interp(Camera* camera) {
deltaX = camera->oldCameraSettings.position.x - camera->newCameraSettings.position.x;
deltaY = camera->oldCameraSettings.position.y - camera->newCameraSettings.position.y;
deltaZ = camera->oldCameraSettings.position.z - camera->newCameraSettings.position.z;
deltaSqSum = SQ(deltaX) + SQ(deltaY) + SQ(deltaZ);
settingDiff = SQ(deltaX);
settingDiff += SQ(deltaY);
settingDiff += SQ(deltaZ);
if (deltaSqSum != 0.0f) {
deltaSqSum = sqrtf(deltaSqSum) * 0.2;
if (settingDiff != 0.0f) {
settingDiff = sqrtf(settingDiff) * 0.2;
}
if (boomYawDiff < deltaSqSum) {
boomYawDiff = deltaSqSum;
if (boomYawDiff < settingDiff) {
boomYawDiff = settingDiff;
settingDiff++;
settingDiff--;
}
if (boomYawDiff > 90.0f) {
boomYawDiff = 90.0f;
@ -480,10 +487,12 @@ void update_camera_zone_interp(Camera* camera) {
if (camera->interpAlpha < 1.0) {
panPhase = camera->panPhase;
temp_f22 = panPhase * PI_D;
temp_f24 = 2.0f / (cos_rad(temp_f22) + 1.0f);
temp_f22_2 = cos_rad((camera->linearInterp * PI_D * (1.0f - panPhase)) + temp_f22);
camera->interpAlpha = (2.0f - ((f32) ((temp_f22_2 + ((1.0 - cos_rad(temp_f22)) * 0.5)) * temp_f24) + 1.0f)) * 0.5001;
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;
}
if (camera->interpAlpha >= 1.0f) {
@ -510,17 +519,17 @@ void update_camera_zone_interp(Camera* camera) {
temp_f20_2 = blendedCamSettings.boomYaw + D_800A08E0;
temp_f26 = sin_deg(temp_f20_2);
temp_f24_2 = -cos_deg(temp_f20_2);
temp_f22_3 = cos_deg(blendedCamSettings.boomPitch + D_800A08DC);
temp_f22_4 = sin_deg(blendedCamSettings.boomPitch + D_800A08DC);
cosViewPitch = cos_deg(blendedCamSettings.boomPitch + D_800A08DC);
sinViewPitch = sin_deg(blendedCamSettings.boomPitch + D_800A08DC);
if (!(camera->moveFlags & 2)) {
camera->lookAt_eye.y = blendedCamSettings.position.y + (blendedCamSettings.boomLength * temp_f22_4);
camera->lookAt_eye.y = blendedCamSettings.position.y + (blendedCamSettings.boomLength * sinViewPitch);
}
camera->lookAt_eye.x = blendedCamSettings.position.x - (temp_f26 * blendedCamSettings.boomLength * temp_f22_3);
camera->lookAt_eye.z = blendedCamSettings.position.z - (temp_f24_2 * blendedCamSettings.boomLength * temp_f22_3);
cosNegViewPitch = cos_deg(-blendedCamSettings.viewPitch);
sinNegViewPitch = sin_deg(-blendedCamSettings.viewPitch);
camera->lookAt_eye.x = blendedCamSettings.position.x - (temp_f26 * blendedCamSettings.boomLength * cosViewPitch);
camera->lookAt_eye.z = blendedCamSettings.position.z - (temp_f24_2 * blendedCamSettings.boomLength * cosViewPitch);
cosViewPitch = cos_deg(-blendedCamSettings.viewPitch);
sinViewPitch = sin_deg(-blendedCamSettings.viewPitch);
if (camera->lookAt_eye.x == blendedCamSettings.position.x && camera->lookAt_eye.z == blendedCamSettings.position.z) {
dist = 0.0f;
@ -530,9 +539,9 @@ void update_camera_zone_interp(Camera* camera) {
temp_f8_2 = blendedCamSettings.position.y - camera->lookAt_eye.y;
if (!(camera->moveFlags & 2)) {
camera->lookAt_obj.y = camera->lookAt_eye.y + ((dist * sinNegViewPitch) + (temp_f8_2 * cosNegViewPitch));
camera->lookAt_obj.y = camera->lookAt_eye.y + ((dist * sinViewPitch) + (temp_f8_2 * cosViewPitch));
}
temp_f4_4 = (dist * cosNegViewPitch) - (temp_f8_2 * sinNegViewPitch);
temp_f4_4 = (dist * cosViewPitch) - (temp_f8_2 * sinViewPitch);
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;
@ -545,6 +554,3 @@ void update_camera_zone_interp(Camera* camera) {
camera->unk_5C = camera->lookAt_obj.z;
camera->currentYOffset = 0.0f;
}
#else
INCLUDE_ASM(s32, "B0E0", update_camera_zone_interp);
#endif

View File

@ -318,10 +318,7 @@ BSS s8 D_800B6590[0x2000];
BSS u8 nuYieldBuf[0xC10];
BSS s8 D_800B91A0[0x30];
BSS s8 D_800B91D0[0x20000];
BSS s32 gZoneCollisionData;
BSS s32 D_800D91D4;
BSS char D_800D91D8[0x4];
BSS s16 D_800D91DC;
BSS s8 gZoneCollisionData[0x10];
BSS s8 wMapHitName[0x18];
BSS s8 nuSiMgrMesgQ[0x38];
BSS s8 wMapShapeName[0x18];

View File

@ -1,24 +1,291 @@
#include "common.h"
#include "camera.h"
s32 gCurrentCameraID = CAM_DEFAULT;
s32 func_800328A4(Camera* camera, f32 arg1, f32 arg2);
s32 func_80032970(Camera* camera, f32 arg1);
void create_camera_leadplayer_matrix(Camera* camera);
CameraControlSettings* test_ray_zone(f32 posX, f32 posY, f32 posZ, Collider** zone) {
f32 hitX, hitY, hitZ, hitDepth, nX, nY, nZ;
s32 zoneID;
INCLUDE_ASM(s32, "camera", test_ray_zone);
hitDepth = 32767.0f;
zoneID = test_ray_zones(posX, posY, posZ, 0.0f, -1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &nX, &nY, &nZ);
if (zoneID >= 0) {
if (zone != NULL) {
*zone = &gZoneCollisionData.colliderList[zoneID];
}
return gZoneCollisionData.colliderList[zoneID].camSettings;
} else {
return NULL;
}
}
s32 func_800322DC(f32, f32, f32, f32, f32, f32, f32, f32, f32*, f32*, f32*);
INCLUDE_ASM(s32, "camera", func_800322DC);
s32 func_800325E4(f32, f32, f32, f32, f32, f32, f32, f32, f32*, f32*, f32*);
INCLUDE_ASM(s32, "camera", func_800325E4);
INCLUDE_ASM(s32, "camera", func_800328A4, Camera* camera, f32 arg1, f32 arg2);
s32 func_800328A4(CameraControlSettings* camSettings, f32 x, f32 z) {
f32 product1, product2;
f32 delta, p1, p2, p3, p4;
INCLUDE_ASM(s32, "camera", func_80032970, Camera* camera, f32 arg1);
if (camSettings == NULL) {
return 0;
}
if (camSettings->type != CAMERA_SETTINGS_TYPE_6) {
return 0;
}
delta = x - camSettings->posA.x;
p1 = (camSettings->posB.x - camSettings->posA.x) * delta;
INCLUDE_ASM(s32, "camera", func_80032C64);
delta = z - camSettings->posA.z;
p2 = (camSettings->posB.z - camSettings->posA.z) * delta;
void create_camera_leadplayer_matrix(Camera *camera) {
delta = x - camSettings->posB.x;
p3 = (camSettings->posB.x - camSettings->posA.x) * delta;
delta = z - camSettings->posB.z;
p4 = (camSettings->posB.z - camSettings->posA.z) * delta;
product1 = p1 + p2;
product2 = p3 + p4;
if (product1 < 0 && product2 < 0) {
return -1;
}
if (product1 > 0 && product2 > 0) {
return 1;
}
return 0;
}
void func_80032970(Camera* camera, f32 arg1) {
f32 stickX;
f32 deltaLeadAmount;
s32 flags = camera->flags & CAM_FLAG_1000;
s32 a2 = flags != 0;
if (camera->currentController != NULL && camera->currentController->type == CAMERA_SETTINGS_TYPE_4) {
a2 = TRUE;
}
if (a2) {
stickX = 0.0f;
camera->unk_51C = TRUE;
camera->unk_514 = 1.0f;
camera->unk_510 = 0.0f;
} else {
if (gPlayerStatusPtr->animFlags & PLAYER_STATUS_ANIM_FLAGS_400000) {
stickX = gPartnerActionStatus.stickX;
} else {
stickX = gPlayerStatusPtr->stickAxis[0];
}
if (stickX > 0.0f) {
stickX = 50.0f;
}
if (stickX < 0.0f) {
stickX = -50.0f;
}
}
if (stickX != 0.0f) {
if (stickX < 0.0f) {
if (camera->unk_518 > 0.0f) {
camera->unk_518 = stickX;
} else {
camera->unk_518 += stickX;
}
if (camera->unk_518 <= -300.0f) {
camera->unk_51C = TRUE;
if (camera->unk_510 > 0.0f) {
camera->unk_514 = 0.0f;
}
camera->unk_510 = -arg1;
camera->unk_518 = -300.0f;
}
} else {
if (camera->unk_518 < 0.0f) {
camera->unk_518 = stickX;
} else {
camera->unk_518 += stickX;
}
if (camera->unk_518 >= 300.0f) {
camera->unk_51C = TRUE;
if (camera->unk_510 < 0.0f) {
camera->unk_514 = 0.0f;
}
camera->unk_510 = arg1;
camera->unk_518 = 300.0f;
}
}
}
if (camera->unk_51C) {
camera->unk_514 += 0.01f;
if (camera->unk_514 > 1.0f) {
camera->unk_514 = 1.0f;
}
}
if (camera->unk_510 - camera->leadAmount == 0.0f) {
camera->unk_514 = 0.0f;
camera->unk_51C = FALSE;
}
deltaLeadAmount = (camera->unk_510 - camera->leadAmount) * camera->unk_514;
if (camera->unk_510 - camera->leadAmount > 0.0f) {
if (camera->unk_510 - camera->leadAmount < 0.1) {
deltaLeadAmount = camera->unk_510 - camera->leadAmount;
}
if (deltaLeadAmount > 3.0f) {
deltaLeadAmount = 3.0f;
}
} else {
if (camera->unk_510 - camera->leadAmount > -0.1) {
deltaLeadAmount = camera->unk_510 - camera->leadAmount;
}
if (deltaLeadAmount < -3.0f) {
deltaLeadAmount = -3.0f;
}
}
if (stickX != 0.0f || a2) {
camera->leadAmount += deltaLeadAmount;
} else {
camera->unk_514 = 0.0f;
}
}
void func_80032C64(Camera* camera) {
s32 i;
f32 rotationRad;
f32 leadAmount;
CameraControlSettings* settings;
CameraControlSettings* settings2;
CameraControlSettings* settings3;
s32 s2;
f32 X, Y, Z, S;
f32 product;
f32 newPosX, newPosZ;
Collider* zone;
s32 cond;
f32 dist;
f32 sp44, sp48, sp4C;
f32 deltaPosX, deltaPosZ;
f32 f24, f22, cosYaw, sinYaw;
rotationRad = camera->trueRotation.x / 180.0f * PI;
leadAmount = camera->leadAmount;
s2 = 0;
cos_rad(rotationRad);
sin_rad(rotationRad);
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 (camera->unk_530) {
guPerspectiveF(camera->perspectiveMatrix, &camera->perspNorm, camera->vfov,
(f32)camera->viewportW / (f32)camera->viewportH, camera->nearClip, camera->farClip, 1.0f);
guMtxCatF(camera->viewMtxPlayer, camera->perspectiveMatrix, camera->perspectiveMatrix);
transform_point(camera->perspectiveMatrix, camera->targetPos.x, camera->targetPos.y, camera->targetPos.z,
1.0f, &X, &Y, &Z, &S);
if (S == 0.0f) {
S = 1.0f;
}
S = 1.0f / S;
X *= S;
camera->unk_52C = (X > 0.0f) ? 1 : (X < 0.0f) ? -1 : 0;
camera->unk_530 = 0;
} 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 && s2 != 0) {
camera->unk_52C = s2;
} else {
f24 = cosYaw = camera->targetPos.x - camera->unk_524;
f22 = camera->targetPos.z - camera->unk_528;
cosYaw = -cos_deg(camera->currentYaw);
sinYaw = -sin_deg(camera->currentYaw);
product = f24 * cosYaw + f22 * sinYaw;
camera->unk_52C = (product > 0) ? -1 : (product < 0) ? 1 : 0;
}
}
}
if (leadAmount > 0.0f && camera->unk_52C > 0 || leadAmount < 0.0f && camera->unk_52C < 0) {
camera->unk_514 = 0.0f;
camera->leadAmount = 0.0f;
}
camera->aabbForZoneBelow = settings3;
camera->unk_524 = camera->targetPos.x;
camera->unk_528 = camera->targetPos.z;
return;
}
}
camera->unk_52C = 0;
camera->aabbForZoneBelow = settings3;
camera->unk_524 = camera->targetPos.x;
camera->unk_528 = camera->targetPos.z;
newPosX = camera->targetPos.x + leadAmount * cos_rad(rotationRad);
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) {
cond = TRUE;
dist = 1000000.0f;
if (camera->aabbForZoneBelow != NULL && camera->aabbForZoneBelow->type == CAMERA_SETTINGS_TYPE_6) {
settings2 = camera->aabbForZoneBelow;
cond = FALSE;
deltaPosX = settings2->posB.x - settings2->posA.x;
deltaPosZ = settings2->posB.z - settings2->posA.z;
if (func_800325E4(settings2->posA.x, settings2->posA.z, settings2->posA.x - deltaPosZ, settings2->posA.z + deltaPosX,
camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < 1000000.0f) {
dist = sp4C;
}
do {
if (func_800325E4(settings2->posB.x, settings2->posB.z, settings2->posB.x - deltaPosZ, settings2->posB.z + deltaPosX,
camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < dist) {
dist = sp4C;
}
} while (0); // TODO find better match
}
if (cond) {
for (i = 0; i < zone->numTriangles; i++) {
if (func_800322DC(zone->triangleTable[i].v1->x, zone->triangleTable[i].v1->z,
zone->triangleTable[i].v2->x, zone->triangleTable[i].v2->z,
camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < dist) {
dist = sp4C;
}
if (func_800322DC(zone->triangleTable[i].v2->x, zone->triangleTable[i].v2->z,
zone->triangleTable[i].v3->x, zone->triangleTable[i].v3->z,
camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < dist) {
dist = sp4C;
}
if (func_800322DC(zone->triangleTable[i].v3->x, zone->triangleTable[i].v3->z,
zone->triangleTable[i].v1->x, zone->triangleTable[i].v1->z,
camera->targetPos.x, camera->targetPos.z, newPosX, newPosZ, &sp44, &sp48, &sp4C) && sp4C < dist) {
dist = sp4C;
}
}
}
if (dist == 1000000.0f || dist == 0) {
camera->leadAmount = 0.0f;
} else {
camera->leadAmount = (camera->leadAmount > 0.0f) ? sqrtf(dist) : -sqrtf(dist);
}
camera->unk_514 = 0.0f;
}
}
}
void create_camera_leadplayer_matrix(Camera* camera) {
f32 xTemp = camera->lookAt_eye.x - camera->lookAt_obj.x;
f32 yTemp = camera->lookAt_eye.y - camera->lookAt_obj.y;
f32 zTemp = camera->lookAt_eye.z - camera->lookAt_obj.z;

View File

@ -55,8 +55,6 @@ extern f32 gCollisionNormalY;
extern f32 gCollisionNormalZ;
extern ColliderBackupEntry* gCollisionDataBackup;
extern ColliderBackupEntry* gCollisionDataZoneBackup;
extern CollisionData gZoneCollisionData;
extern s16 D_800D91DC;
s32 collision_heap_create(void);
void* collision_heap_malloc(s32 size);
@ -88,7 +86,7 @@ void backup_map_collision_data(void) {
backupEntry->parentModelIndex = collider->parentModelIndex;
}
D_800D91DC = 0;
gZoneCollisionData.numColliders = 0;
}
void func_8005AF84(void) {
@ -99,7 +97,7 @@ void func_8005AF8C(void) {
void initialize_collision(void) {
gCollisionData.numColliders = 0;
D_800D91DC = 0;
gZoneCollisionData.numColliders = 0;
collision_heap_create();
}

View File

@ -339,7 +339,7 @@ ApiStatus UseSettingsFrom(Evt* script, s32 isInitialCall) {
&nx, &ny, &nz);
if (hitID >= 0) {
camera->controlSettings = *D_800D91D4[hitID].unk_10;
camera->controlSettings = *gZoneCollisionData.colliderList[hitID].camSettings;
}
return ApiStatus_DONE2;
}
@ -545,9 +545,88 @@ ApiStatus WaitForCam(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "evt/cam_api", SetCamProperties, Evt* script, s32 isInitialCall);
ApiStatus SetCamProperties(Evt* script, s32 isInitialCall) {
f32 hitX, hitY, hitZ, hitDepth, nX, nY, nZ;
s32 zoneID;
Bytecode* args = script->ptrReadPos;
Camera* camera = &gCameras[evt_get_variable(script, *args++)];
f32 moveSpeed = evt_get_float_variable(script, *args++);
f32 posX = evt_get_float_variable(script, *args++);
f32 posY = evt_get_float_variable(script, *args++);
f32 posZ = evt_get_float_variable(script, *args++);
f32 boomLength = evt_get_float_variable(script, *args++);
f32 boomPitch = evt_get_float_variable(script, *args++);
f32 viewPitch = evt_get_float_variable(script, *args++);
INCLUDE_ASM(s32, "evt/cam_api", AdjustCam, Evt* script, s32 isInitialCall);
if (isInitialCall) {
hitDepth = 32767.0f;
zoneID = test_ray_zones(posX, posY + 10.0f, posZ, 0.0f, -1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &nX, &nY, &nZ);
if (zoneID >= 0) {
camera->controlSettings = *gZoneCollisionData.colliderList[zoneID].camSettings;
}
camera->movePos.x = posX;
camera->movePos.y = posY;
camera->movePos.z = posZ;
camera->controlSettings.boomLength = boomLength;
camera->controlSettings.boomPitch = boomPitch;
camera->controlSettings.viewPitch = viewPitch;
camera->moveSpeed = moveSpeed;
camera->unk_506 = 1;
camera->followPlayer = TRUE;
camera->panPhase = 0.0f;
return ApiStatus_BLOCK;
}
if (camera->interpAlpha >= 1.0f) {
return ApiStatus_DONE2;
} else {
return ApiStatus_BLOCK;
}
}
ApiStatus AdjustCam(Evt* script, s32 isInitialCall) {
f32 hitX, hitY, hitZ, hitDepth, nX, nY, nZ;
f32 posX, posY, posZ;
s32 zoneID;
Bytecode* args = script->ptrReadPos;
Camera* camera = &gCameras[evt_get_variable(script, *args++)];
f32 moveSpeed = evt_get_float_variable(script, *args++);
f32 deltaPosX = evt_get_float_variable(script, *args++);
f32 boomLength = evt_get_float_variable(script, *args++);
f32 boomPitch = evt_get_float_variable(script, *args++);
f32 viewPitch = evt_get_float_variable(script, *args++);
PlayerStatus* playerStatus = &gPlayerStatus;
if (isInitialCall) {
hitDepth = 32767.0f;
posX = playerStatus->position.x;
posY = playerStatus->position.y;
posZ = playerStatus->position.z;
zoneID = test_ray_zones(posX, posY + 10.0f, posZ, 0.0f, -1.0f, 0.0f, &hitX, &hitY, &hitZ, &hitDepth, &nX, &nY, &nZ);
if (zoneID >= 0) {
camera->controlSettings = *gZoneCollisionData.colliderList[zoneID].camSettings;
}
camera->movePos.x = posX + deltaPosX;
camera->movePos.y = posY;
camera->movePos.z = posZ;
camera->controlSettings.boomLength = boomLength;
camera->controlSettings.boomPitch = boomPitch;
camera->controlSettings.viewPitch = viewPitch;
camera->moveSpeed = moveSpeed;
camera->unk_506 = 1;
camera->followPlayer = TRUE;
camera->panPhase = 0.0f;
return ApiStatus_BLOCK;
}
if (camera->interpAlpha >= 1.0f) {
return ApiStatus_DONE2;
} else {
return ApiStatus_BLOCK;
}
}
ApiStatus ResetCam(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -569,7 +648,7 @@ ApiStatus ResetCam(Evt* script, s32 isInitialCall) {
&nx, &ny, &nz);
if (hitID >= 0) {
camera->controlSettings = *D_800D91D4[hitID].unk_10;
camera->controlSettings = *gZoneCollisionData.colliderList[hitID].camSettings;
}
camera->movePos.x = x;

View File

@ -597,41 +597,41 @@ ApiStatus UpdateColliderTransform(Evt* script, s32 isInitialCall) {
}
void set_zone_enabled(s32 zoneID, s32 enabled) {
TempSetZoneEnabled* unkStruct = &D_800D91D4[zoneID];
Collider* zone = &gZoneCollisionData.colliderList[zoneID];
if (unkStruct->id1 >= 0) {
set_zone_enabled(unkStruct->id1, enabled);
if (zone->nextSibling >= 0) {
set_zone_enabled(zone->nextSibling, enabled);
}
if (unkStruct->id2 >= 0) {
set_zone_enabled(unkStruct->id2, enabled);
if (zone->firstChild >= 0) {
set_zone_enabled(zone->firstChild, enabled);
}
switch (enabled) {
case 0:
unkStruct->flags |= TEMP_SET_ZONE_ENABLED_FLAGS_10000;
zone->flags |= TEMP_SET_ZONE_ENABLED_FLAGS_10000;
break;
case 1:
unkStruct->flags &= ~TEMP_SET_ZONE_ENABLED_FLAGS_10000;
zone->flags &= ~TEMP_SET_ZONE_ENABLED_FLAGS_10000;
break;
}
}
ApiStatus SetZoneEnabled(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 idx = evt_get_variable(script, *args++);
s32 zoneID = evt_get_variable(script, *args++);
s32 enabled = evt_get_variable(script, *args++);
TempSetZoneEnabled* unkStruct = &D_800D91D4[idx];
Collider* zone = &gZoneCollisionData.colliderList[zoneID];
if (unkStruct->id2 >= 0) {
set_zone_enabled(unkStruct->id2, enabled);
if (zone->firstChild >= 0) {
set_zone_enabled(zone->firstChild, enabled);
}
switch (enabled) {
case FALSE:
unkStruct->flags |= TEMP_SET_ZONE_ENABLED_FLAGS_10000;
zone->flags |= TEMP_SET_ZONE_ENABLED_FLAGS_10000;
break;
case TRUE:
unkStruct->flags &= ~TEMP_SET_ZONE_ENABLED_FLAGS_10000;
zone->flags &= ~TEMP_SET_ZONE_ENABLED_FLAGS_10000;
break;
}

View File

@ -15,7 +15,6 @@ extern OSThread GfxTaskMgrThread;
extern NUScTask nuGfxTask[NU_GFX_TASK_NUM];
extern s32 D_800DA040;
extern s32 D_800B91D0;
extern s32 gZoneCollisionData;
extern u8 rspbootUcodeBuffer[];
extern u32 nuGfxCfbCounter;
extern OSMesgQueue D_800DA47C;

View File

@ -1,939 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80098250
.double 1.01
dlabel D_80098258
.double 0.3
dlabel D_80098260
.double 0.2
dlabel D_80098268
.double 3.141592
dlabel D_80098270
.double 0.5001
dlabel D_80098278
.double 0.01
.section .text
glabel update_camera_zone_interp
/* C894 80031494 27BDFF80 */ addiu $sp, $sp, -0x80
/* C898 80031498 AFB10044 */ sw $s1, 0x44($sp)
/* C89C 8003149C 0080882D */ daddu $s1, $a0, $zero
/* C8A0 800314A0 AFBF004C */ sw $ra, 0x4c($sp)
/* C8A4 800314A4 AFB20048 */ sw $s2, 0x48($sp)
/* C8A8 800314A8 AFB00040 */ sw $s0, 0x40($sp)
/* C8AC 800314AC F7BE0078 */ sdc1 $f30, 0x78($sp)
/* C8B0 800314B0 F7BC0070 */ sdc1 $f28, 0x70($sp)
/* C8B4 800314B4 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* C8B8 800314B8 F7B80060 */ sdc1 $f24, 0x60($sp)
/* C8BC 800314BC F7B60058 */ sdc1 $f22, 0x58($sp)
/* C8C0 800314C0 F7B40050 */ sdc1 $f20, 0x50($sp)
/* C8C4 800314C4 C6300060 */ lwc1 $f16, 0x60($s1)
/* C8C8 800314C8 E7B00038 */ swc1 $f16, 0x38($sp)
/* C8CC 800314CC C63E0064 */ lwc1 $f30, 0x64($s1)
/* C8D0 800314D0 86220008 */ lh $v0, 8($s1)
/* C8D4 800314D4 C6300068 */ lwc1 $f16, 0x68($s1)
/* C8D8 800314D8 0000802D */ daddu $s0, $zero, $zero
/* C8DC 800314DC 10400017 */ beqz $v0, .L8003153C
/* C8E0 800314E0 E7B0003C */ swc1 $f16, 0x3c($sp)
/* C8E4 800314E4 3C013F80 */ lui $at, 0x3f80
/* C8E8 800314E8 44810000 */ mtc1 $at, $f0
/* C8EC 800314EC AE200448 */ sw $zero, 0x448($s1)
/* C8F0 800314F0 AE200444 */ sw $zero, 0x444($s1)
/* C8F4 800314F4 AE200488 */ sw $zero, 0x488($s1)
/* C8F8 800314F8 AE200494 */ sw $zero, 0x494($s1)
/* C8FC 800314FC E63E04A0 */ swc1 $f30, 0x4a0($s1)
/* C900 80031500 AE200098 */ sw $zero, 0x98($s1)
/* C904 80031504 AE20009C */ sw $zero, 0x9c($s1)
/* C908 80031508 AE2004A4 */ sw $zero, 0x4a4($s1)
/* C90C 8003150C AE2004A8 */ sw $zero, 0x4a8($s1)
/* C910 80031510 AE2004AC */ sw $zero, 0x4ac($s1)
/* C914 80031514 A62004D4 */ sh $zero, 0x4d4($s1)
/* C918 80031518 A62004D6 */ sh $zero, 0x4d6($s1)
/* C91C 8003151C AE200508 */ sw $zero, 0x508($s1)
/* C920 80031520 3C01800A */ lui $at, %hi(D_800A08DC)
/* C924 80031524 AC2008DC */ sw $zero, %lo(D_800A08DC)($at)
/* C928 80031528 3C01800A */ lui $at, %hi(D_800A08E0)
/* C92C 8003152C AC2008E0 */ sw $zero, %lo(D_800A08E0)($at)
/* C930 80031530 E6200484 */ swc1 $f0, 0x484($s1)
/* C934 80031534 E6200498 */ swc1 $f0, 0x498($s1)
/* C938 80031538 E620048C */ swc1 $f0, 0x48c($s1)
.L8003153C:
/* C93C 8003153C 96220002 */ lhu $v0, 2($s1)
/* C940 80031540 C7B60038 */ lwc1 $f22, 0x38($sp)
/* C944 80031544 30420001 */ andi $v0, $v0, 1
/* C948 80031548 54400008 */ bnel $v0, $zero, .L8003156C
/* C94C 8003154C AE200498 */ sw $zero, 0x498($s1)
/* C950 80031550 C6200494 */ lwc1 $f0, 0x494($s1)
/* C954 80031554 461E0032 */ c.eq.s $f0, $f30
/* C958 80031558 00000000 */ nop
/* C95C 8003155C 45010004 */ bc1t .L80031570
/* C960 80031560 00000000 */ nop
/* C964 80031564 E63E0494 */ swc1 $f30, 0x494($s1)
/* C968 80031568 AE200498 */ sw $zero, 0x498($s1)
.L8003156C:
/* C96C 8003156C C6200494 */ lwc1 $f0, 0x494($s1)
.L80031570:
/* C970 80031570 4600F03C */ c.lt.s $f30, $f0
/* C974 80031574 00000000 */ nop
/* C978 80031578 4500000A */ bc1f .L800315A4
/* C97C 8003157C 00000000 */ nop
/* C980 80031580 C62004A0 */ lwc1 $f0, 0x4a0($s1)
/* C984 80031584 4600F03E */ c.le.s $f30, $f0
/* C988 80031588 00000000 */ nop
/* C98C 8003158C 45000005 */ bc1f .L800315A4
/* C990 80031590 00000000 */ nop
/* C994 80031594 3C013F80 */ lui $at, 0x3f80
/* C998 80031598 44810000 */ mtc1 $at, $f0
/* C99C 8003159C E63E0494 */ swc1 $f30, 0x494($s1)
/* C9A0 800315A0 E6200498 */ swc1 $f0, 0x498($s1)
.L800315A4:
/* C9A4 800315A4 C6220498 */ lwc1 $f2, 0x498($s1)
/* C9A8 800315A8 3C01800A */ lui $at, %hi(D_80098250)
/* C9AC 800315AC D4248250 */ ldc1 $f4, %lo(D_80098250)($at)
/* C9B0 800315B0 C620049C */ lwc1 $f0, 0x49c($s1)
/* C9B4 800315B4 460010A1 */ cvt.d.s $f2, $f2
/* C9B8 800315B8 46222101 */ sub.d $f4, $f4, $f2
/* C9BC 800315BC 46000021 */ cvt.d.s $f0, $f0
/* C9C0 800315C0 46202103 */ div.d $f4, $f4, $f0
/* C9C4 800315C4 46241080 */ add.d $f2, $f2, $f4
/* C9C8 800315C8 3C013FF0 */ lui $at, 0x3ff0
/* C9CC 800315CC 44812800 */ mtc1 $at, $f5
/* C9D0 800315D0 44802000 */ mtc1 $zero, $f4
/* C9D4 800315D4 462010A0 */ cvt.s.d $f2, $f2
/* C9D8 800315D8 46001021 */ cvt.d.s $f0, $f2
/* C9DC 800315DC 4620203C */ c.lt.d $f4, $f0
/* C9E0 800315E0 00000000 */ nop
/* C9E4 800315E4 45000005 */ bc1f .L800315FC
/* C9E8 800315E8 E6220498 */ swc1 $f2, 0x498($s1)
/* C9EC 800315EC 3C013F80 */ lui $at, 0x3f80
/* C9F0 800315F0 44810000 */ mtc1 $at, $f0
/* C9F4 800315F4 00000000 */ nop
/* C9F8 800315F8 E6200498 */ swc1 $f0, 0x498($s1)
.L800315FC:
/* C9FC 800315FC 96220002 */ lhu $v0, 2($s1)
/* CA00 80031600 30420004 */ andi $v0, $v0, 4
/* CA04 80031604 10400010 */ beqz $v0, .L80031648
/* CA08 80031608 00000000 */ nop
/* CA0C 8003160C C6200498 */ lwc1 $f0, 0x498($s1)
/* CA10 80031610 3C01800A */ lui $at, %hi(D_80098258)
/* CA14 80031614 D4228258 */ ldc1 $f2, %lo(D_80098258)($at)
/* CA18 80031618 46000021 */ cvt.d.s $f0, $f0
/* CA1C 8003161C 46220000 */ add.d $f0, $f0, $f2
/* CA20 80031620 46200020 */ cvt.s.d $f0, $f0
/* CA24 80031624 460000A1 */ cvt.d.s $f2, $f0
/* CA28 80031628 4622203E */ c.le.d $f4, $f2
/* CA2C 8003162C 00000000 */ nop
/* CA30 80031630 45000005 */ bc1f .L80031648
/* CA34 80031634 E6200498 */ swc1 $f0, 0x498($s1)
/* CA38 80031638 3C013F80 */ lui $at, 0x3f80
/* CA3C 8003163C 44810000 */ mtc1 $at, $f0
/* CA40 80031640 00000000 */ nop
/* CA44 80031644 E6200498 */ swc1 $f0, 0x498($s1)
.L80031648:
/* CA48 80031648 96220002 */ lhu $v0, 2($s1)
/* CA4C 8003164C 30420002 */ andi $v0, $v0, 2
/* CA50 80031650 14400009 */ bnez $v0, .L80031678
/* CA54 80031654 00000000 */ nop
/* CA58 80031658 C6200494 */ lwc1 $f0, 0x494($s1)
/* CA5C 8003165C C62204A0 */ lwc1 $f2, 0x4a0($s1)
/* CA60 80031660 46020001 */ sub.s $f0, $f0, $f2
/* CA64 80031664 C6240498 */ lwc1 $f4, 0x498($s1)
/* CA68 80031668 46040002 */ mul.s $f0, $f0, $f4
/* CA6C 8003166C 00000000 */ nop
/* CA70 80031670 46001080 */ add.s $f2, $f2, $f0
/* CA74 80031674 E62204A0 */ swc1 $f2, 0x4a0($s1)
.L80031678:
/* CA78 80031678 96220506 */ lhu $v0, 0x506($s1)
/* CA7C 8003167C 14400014 */ bnez $v0, .L800316D0
/* CA80 80031680 C7B4003C */ lwc1 $f20, 0x3c($sp)
/* CA84 80031684 C62004A4 */ lwc1 $f0, 0x4a4($s1)
/* CA88 80031688 C7B00038 */ lwc1 $f16, 0x38($sp)
/* CA8C 8003168C 46100032 */ c.eq.s $f0, $f16
/* CA90 80031690 00000000 */ nop
/* CA94 80031694 4500000E */ bc1f .L800316D0
/* CA98 80031698 00000000 */ nop
/* CA9C 8003169C C62004A8 */ lwc1 $f0, 0x4a8($s1)
/* CAA0 800316A0 461E0032 */ c.eq.s $f0, $f30
/* CAA4 800316A4 00000000 */ nop
/* CAA8 800316A8 45000009 */ bc1f .L800316D0
/* CAAC 800316AC 00000000 */ nop
/* CAB0 800316B0 C62004AC */ lwc1 $f0, 0x4ac($s1)
/* CAB4 800316B4 46140032 */ c.eq.s $f0, $f20
/* CAB8 800316B8 00000000 */ nop
/* CABC 800316BC 45000004 */ bc1f .L800316D0
/* CAC0 800316C0 00000000 */ nop
/* CAC4 800316C4 86220008 */ lh $v0, 8($s1)
/* CAC8 800316C8 104000C6 */ beqz $v0, .L800319E4
/* CACC 800316CC 00000000 */ nop
.L800316D0:
/* CAD0 800316D0 96220504 */ lhu $v0, 0x504($s1)
/* CAD4 800316D4 14400008 */ bnez $v0, .L800316F8
/* CAD8 800316D8 262404D8 */ addiu $a0, $s1, 0x4d8
/* CADC 800316DC 3C014120 */ lui $at, 0x4120
/* CAE0 800316E0 44817000 */ mtc1 $at, $f14
/* CAE4 800316E4 8FA6003C */ lw $a2, 0x3c($sp)
/* CAE8 800316E8 C7AC0038 */ lwc1 $f12, 0x38($sp)
/* CAEC 800316EC 0C00C116 */ jal test_ray_zone_aabb
/* CAF0 800316F0 460EF380 */ add.s $f14, $f30, $f14
/* CAF4 800316F4 0040202D */ daddu $a0, $v0, $zero
.L800316F8:
/* CAF8 800316F8 0000402D */ daddu $t0, $zero, $zero
/* CAFC 800316FC 8E230448 */ lw $v1, 0x448($s1)
/* CB00 80031700 1080007E */ beqz $a0, .L800318FC
/* CB04 80031704 0080382D */ daddu $a3, $a0, $zero
/* CB08 80031708 1060007C */ beqz $v1, .L800318FC
/* CB0C 8003170C 00000000 */ nop
/* CB10 80031710 8C850000 */ lw $a1, ($a0)
/* CB14 80031714 8C620000 */ lw $v0, ($v1)
/* CB18 80031718 14A20078 */ bne $a1, $v0, .L800318FC
/* CB1C 8003171C 00000000 */ nop
/* CB20 80031720 8C860028 */ lw $a2, 0x28($a0)
/* CB24 80031724 8C620028 */ lw $v0, 0x28($v1)
/* CB28 80031728 14C20074 */ bne $a2, $v0, .L800318FC
/* CB2C 8003172C 00000000 */ nop
/* CB30 80031730 C4820004 */ lwc1 $f2, 4($a0)
/* CB34 80031734 C4600004 */ lwc1 $f0, 4($v1)
/* CB38 80031738 46001032 */ c.eq.s $f2, $f0
/* CB3C 8003173C 00000000 */ nop
/* CB40 80031740 4500006E */ bc1f .L800318FC
/* CB44 80031744 00000000 */ nop
/* CB48 80031748 C4820008 */ lwc1 $f2, 8($a0)
/* CB4C 8003174C C4600008 */ lwc1 $f0, 8($v1)
/* CB50 80031750 46001032 */ c.eq.s $f2, $f0
/* CB54 80031754 00000000 */ nop
/* CB58 80031758 45000068 */ bc1f .L800318FC
/* CB5C 8003175C 00000000 */ nop
/* CB60 80031760 C4820024 */ lwc1 $f2, 0x24($a0)
/* CB64 80031764 C4600024 */ lwc1 $f0, 0x24($v1)
/* CB68 80031768 46001032 */ c.eq.s $f2, $f0
/* CB6C 8003176C 00000000 */ nop
/* CB70 80031770 45000062 */ bc1f .L800318FC
/* CB74 80031774 00000000 */ nop
/* CB78 80031778 10A00005 */ beqz $a1, .L80031790
/* CB7C 8003177C 24020001 */ addiu $v0, $zero, 1
/* CB80 80031780 10A20017 */ beq $a1, $v0, .L800317E0
/* CB84 80031784 00000000 */ nop
/* CB88 80031788 0800C61B */ j .L8003186C
/* CB8C 8003178C 00000000 */ nop
.L80031790:
/* CB90 80031790 C482000C */ lwc1 $f2, 0xc($a0)
/* CB94 80031794 C460000C */ lwc1 $f0, 0xc($v1)
/* CB98 80031798 46001032 */ c.eq.s $f2, $f0
/* CB9C 8003179C 00000000 */ nop
/* CBA0 800317A0 45000056 */ bc1f .L800318FC
/* CBA4 800317A4 00000000 */ nop
/* CBA8 800317A8 C4820014 */ lwc1 $f2, 0x14($a0)
/* CBAC 800317AC C4600014 */ lwc1 $f0, 0x14($v1)
/* CBB0 800317B0 46001032 */ c.eq.s $f2, $f0
/* CBB4 800317B4 00000000 */ nop
/* CBB8 800317B8 45000050 */ bc1f .L800318FC
/* CBBC 800317BC 00000000 */ nop
/* CBC0 800317C0 C4820018 */ lwc1 $f2, 0x18($a0)
/* CBC4 800317C4 C4600018 */ lwc1 $f0, 0x18($v1)
/* CBC8 800317C8 46001032 */ c.eq.s $f2, $f0
/* CBCC 800317CC 00000000 */ nop
/* CBD0 800317D0 4500004A */ bc1f .L800318FC
/* CBD4 800317D4 00000000 */ nop
/* CBD8 800317D8 0800C63A */ j .L800318E8
/* CBDC 800317DC C4820020 */ lwc1 $f2, 0x20($a0)
.L800317E0:
/* CBE0 800317E0 10C00005 */ beqz $a2, .L800317F8
/* CBE4 800317E4 00000000 */ nop
/* CBE8 800317E8 10C5000C */ beq $a2, $a1, .L8003181C
/* CBEC 800317EC 00000000 */ nop
/* CBF0 800317F0 0800C63F */ j .L800318FC
/* CBF4 800317F4 00000000 */ nop
.L800317F8:
/* CBF8 800317F8 C482000C */ lwc1 $f2, 0xc($a0)
/* CBFC 800317FC C460000C */ lwc1 $f0, 0xc($v1)
/* CC00 80031800 46001032 */ c.eq.s $f2, $f0
/* CC04 80031804 00000000 */ nop
/* CC08 80031808 4500003C */ bc1f .L800318FC
/* CC0C 8003180C 00000000 */ nop
/* CC10 80031810 C4820014 */ lwc1 $f2, 0x14($a0)
/* CC14 80031814 0800C63B */ j .L800318EC
/* CC18 80031818 C4600014 */ lwc1 $f0, 0x14($v1)
.L8003181C:
/* CC1C 8003181C C482000C */ lwc1 $f2, 0xc($a0)
/* CC20 80031820 C460000C */ lwc1 $f0, 0xc($v1)
/* CC24 80031824 46001032 */ c.eq.s $f2, $f0
/* CC28 80031828 00000000 */ nop
/* CC2C 8003182C 45000033 */ bc1f .L800318FC
/* CC30 80031830 00000000 */ nop
/* CC34 80031834 C4820014 */ lwc1 $f2, 0x14($a0)
/* CC38 80031838 C4600014 */ lwc1 $f0, 0x14($v1)
/* CC3C 8003183C 46001032 */ c.eq.s $f2, $f0
/* CC40 80031840 00000000 */ nop
/* CC44 80031844 4500002D */ bc1f .L800318FC
/* CC48 80031848 00000000 */ nop
/* CC4C 8003184C C4820018 */ lwc1 $f2, 0x18($a0)
/* CC50 80031850 C4600018 */ lwc1 $f0, 0x18($v1)
/* CC54 80031854 46001032 */ c.eq.s $f2, $f0
/* CC58 80031858 00000000 */ nop
/* CC5C 8003185C 45000027 */ bc1f .L800318FC
/* CC60 80031860 00000000 */ nop
/* CC64 80031864 0800C63A */ j .L800318E8
/* CC68 80031868 C4820020 */ lwc1 $f2, 0x20($a0)
.L8003186C:
/* CC6C 8003186C C4E2000C */ lwc1 $f2, 0xc($a3)
/* CC70 80031870 C460000C */ lwc1 $f0, 0xc($v1)
/* CC74 80031874 46001032 */ c.eq.s $f2, $f0
/* CC78 80031878 00000000 */ nop
/* CC7C 8003187C 4500001F */ bc1f .L800318FC
/* CC80 80031880 00000000 */ nop
/* CC84 80031884 C4E20014 */ lwc1 $f2, 0x14($a3)
/* CC88 80031888 C4600014 */ lwc1 $f0, 0x14($v1)
/* CC8C 8003188C 46001032 */ c.eq.s $f2, $f0
/* CC90 80031890 00000000 */ nop
/* CC94 80031894 45000019 */ bc1f .L800318FC
/* CC98 80031898 00000000 */ nop
/* CC9C 8003189C C4E20010 */ lwc1 $f2, 0x10($a3)
/* CCA0 800318A0 C4600010 */ lwc1 $f0, 0x10($v1)
/* CCA4 800318A4 46001032 */ c.eq.s $f2, $f0
/* CCA8 800318A8 00000000 */ nop
/* CCAC 800318AC 45000013 */ bc1f .L800318FC
/* CCB0 800318B0 00000000 */ nop
/* CCB4 800318B4 C4E2001C */ lwc1 $f2, 0x1c($a3)
/* CCB8 800318B8 C460001C */ lwc1 $f0, 0x1c($v1)
/* CCBC 800318BC 46001032 */ c.eq.s $f2, $f0
/* CCC0 800318C0 00000000 */ nop
/* CCC4 800318C4 4500000D */ bc1f .L800318FC
/* CCC8 800318C8 00000000 */ nop
/* CCCC 800318CC C4E20018 */ lwc1 $f2, 0x18($a3)
/* CCD0 800318D0 C4600018 */ lwc1 $f0, 0x18($v1)
/* CCD4 800318D4 46001032 */ c.eq.s $f2, $f0
/* CCD8 800318D8 00000000 */ nop
/* CCDC 800318DC 45000007 */ bc1f .L800318FC
/* CCE0 800318E0 00000000 */ nop
/* CCE4 800318E4 C4E20020 */ lwc1 $f2, 0x20($a3)
.L800318E8:
/* CCE8 800318E8 C4600020 */ lwc1 $f0, 0x20($v1)
.L800318EC:
/* CCEC 800318EC 46001032 */ c.eq.s $f2, $f0
/* CCF0 800318F0 00000000 */ nop
/* CCF4 800318F4 45030001 */ bc1tl .L800318FC
/* CCF8 800318F8 24080001 */ addiu $t0, $zero, 1
.L800318FC:
/* CCFC 800318FC 96220506 */ lhu $v0, 0x506($s1)
/* CD00 80031900 14400005 */ bnez $v0, .L80031918
/* CD04 80031904 00000000 */ nop
/* CD08 80031908 15000036 */ bnez $t0, .L800319E4
/* CD0C 8003190C 00000000 */ nop
/* CD10 80031910 10E30034 */ beq $a3, $v1, .L800319E4
/* CD14 80031914 00000000 */ nop
.L80031918:
/* CD18 80031918 C6220484 */ lwc1 $f2, 0x484($s1)
/* CD1C 8003191C 3C013F80 */ lui $at, 0x3f80
/* CD20 80031920 44810000 */ mtc1 $at, $f0
/* CD24 80031924 00000000 */ nop
/* CD28 80031928 46001032 */ c.eq.s $f2, $f0
/* CD2C 8003192C 00000000 */ nop
/* CD30 80031930 45000004 */ bc1f .L80031944
/* CD34 80031934 2402FFFF */ addiu $v0, $zero, -1
/* CD38 80031938 8E220448 */ lw $v0, 0x448($s1)
/* CD3C 8003193C 0800C652 */ j .L80031948
/* CD40 80031940 AE220444 */ sw $v0, 0x444($s1)
.L80031944:
/* CD44 80031944 AE220444 */ sw $v0, 0x444($s1)
.L80031948:
/* CD48 80031948 3C0C800A */ lui $t4, %hi(blendedCamSettings)
/* CD4C 8003194C 258C08C0 */ addiu $t4, $t4, %lo(blendedCamSettings)
/* CD50 80031950 8D890000 */ lw $t1, ($t4)
/* CD54 80031954 8D8A0004 */ lw $t2, 4($t4)
/* CD58 80031958 8D8B0008 */ lw $t3, 8($t4)
/* CD5C 8003195C AE29044C */ sw $t1, 0x44c($s1)
/* CD60 80031960 AE2A0450 */ sw $t2, 0x450($s1)
/* CD64 80031964 AE2B0454 */ sw $t3, 0x454($s1)
/* CD68 80031968 8D89000C */ lw $t1, 0xc($t4)
/* CD6C 8003196C 8D8A0010 */ lw $t2, 0x10($t4)
/* CD70 80031970 8D8B0014 */ lw $t3, 0x14($t4)
/* CD74 80031974 AE290458 */ sw $t1, 0x458($s1)
/* CD78 80031978 AE2A045C */ sw $t2, 0x45c($s1)
/* CD7C 8003197C AE2B0460 */ sw $t3, 0x460($s1)
/* CD80 80031980 8D890018 */ lw $t1, 0x18($t4)
/* CD84 80031984 AE290464 */ sw $t1, 0x464($s1)
/* CD88 80031988 C6200490 */ lwc1 $f0, 0x490($s1)
/* CD8C 8003198C 962204D6 */ lhu $v0, 0x4d6($s1)
/* CD90 80031990 96230504 */ lhu $v1, 0x504($s1)
/* CD94 80031994 C62204C8 */ lwc1 $f2, 0x4c8($s1)
/* CD98 80031998 C62404CC */ lwc1 $f4, 0x4cc($s1)
/* CD9C 8003199C C62604D0 */ lwc1 $f6, 0x4d0($s1)
/* CDA0 800319A0 C62804B0 */ lwc1 $f8, 0x4b0($s1)
/* CDA4 800319A4 C62A04B4 */ lwc1 $f10, 0x4b4($s1)
/* CDA8 800319A8 C62C04B8 */ lwc1 $f12, 0x4b8($s1)
/* CDAC 800319AC 24100001 */ addiu $s0, $zero, 1
/* CDB0 800319B0 AE240448 */ sw $a0, 0x448($s1)
/* CDB4 800319B4 AE200484 */ sw $zero, 0x484($s1)
/* CDB8 800319B8 AE200488 */ sw $zero, 0x488($s1)
/* CDBC 800319BC A6200506 */ sh $zero, 0x506($s1)
/* CDC0 800319C0 E620048C */ swc1 $f0, 0x48c($s1)
/* CDC4 800319C4 A62204D4 */ sh $v0, 0x4d4($s1)
/* CDC8 800319C8 A62304D6 */ sh $v1, 0x4d6($s1)
/* CDCC 800319CC E62204BC */ swc1 $f2, 0x4bc($s1)
/* CDD0 800319D0 E62404C0 */ swc1 $f4, 0x4c0($s1)
/* CDD4 800319D4 E62604C4 */ swc1 $f6, 0x4c4($s1)
/* CDD8 800319D8 E62804C8 */ swc1 $f8, 0x4c8($s1)
/* CDDC 800319DC E62A04CC */ swc1 $f10, 0x4cc($s1)
/* CDE0 800319E0 E62C04D0 */ swc1 $f12, 0x4d0($s1)
.L800319E4:
/* CDE4 800319E4 962204D4 */ lhu $v0, 0x4d4($s1)
/* CDE8 800319E8 10400005 */ beqz $v0, .L80031A00
/* CDEC 800319EC 4600B286 */ mov.s $f10, $f22
/* CDF0 800319F0 C62A04BC */ lwc1 $f10, 0x4bc($s1)
/* CDF4 800319F4 C62804C0 */ lwc1 $f8, 0x4c0($s1)
/* CDF8 800319F8 0800C682 */ j .L80031A08
/* CDFC 800319FC C62604C4 */ lwc1 $f6, 0x4c4($s1)
.L80031A00:
/* CE00 80031A00 C62804A0 */ lwc1 $f8, 0x4a0($s1)
/* CE04 80031A04 4600A186 */ mov.s $f6, $f20
.L80031A08:
/* CE08 80031A08 962204D6 */ lhu $v0, 0x4d6($s1)
/* CE0C 80031A0C 10400006 */ beqz $v0, .L80031A28
/* CE10 80031A10 4600B106 */ mov.s $f4, $f22
/* CE14 80031A14 C62004CC */ lwc1 $f0, 0x4cc($s1)
/* CE18 80031A18 C62404C8 */ lwc1 $f4, 0x4c8($s1)
/* CE1C 80031A1C C62204D0 */ lwc1 $f2, 0x4d0($s1)
/* CE20 80031A20 0800C68C */ j .L80031A30
/* CE24 80031A24 E62004A0 */ swc1 $f0, 0x4a0($s1)
.L80031A28:
/* CE28 80031A28 C62004A0 */ lwc1 $f0, 0x4a0($s1)
/* CE2C 80031A2C 4600A086 */ mov.s $f2, $f20
.L80031A30:
/* CE30 80031A30 0220202D */ daddu $a0, $s1, $zero
/* CE34 80031A34 26260444 */ addiu $a2, $s1, 0x444
/* CE38 80031A38 26270468 */ addiu $a3, $s1, 0x468
/* CE3C 80031A3C 26220448 */ addiu $v0, $s1, 0x448
/* CE40 80031A40 AFA20010 */ sw $v0, 0x10($sp)
/* CE44 80031A44 26220484 */ addiu $v0, $s1, 0x484
/* CE48 80031A48 E7AA0014 */ swc1 $f10, 0x14($sp)
/* CE4C 80031A4C E7A80018 */ swc1 $f8, 0x18($sp)
/* CE50 80031A50 E7A6001C */ swc1 $f6, 0x1c($sp)
/* CE54 80031A54 E7A40020 */ swc1 $f4, 0x20($sp)
/* CE58 80031A58 E7A00024 */ swc1 $f0, 0x24($sp)
/* CE5C 80031A5C E7A20028 */ swc1 $f2, 0x28($sp)
/* CE60 80031A60 86230008 */ lh $v1, 8($s1)
/* CE64 80031A64 2625044C */ addiu $a1, $s1, 0x44c
/* CE68 80031A68 AFA20030 */ sw $v0, 0x30($sp)
/* CE6C 80031A6C AFB00034 */ sw $s0, 0x34($sp)
/* CE70 80031A70 0C00C13F */ jal update_camera_from_controller
/* CE74 80031A74 AFA3002C */ sw $v1, 0x2c($sp)
/* CE78 80031A78 86220008 */ lh $v0, 8($s1)
/* CE7C 80031A7C 10400013 */ beqz $v0, .L80031ACC
/* CE80 80031A80 00000000 */ nop
/* CE84 80031A84 3C013F80 */ lui $at, 0x3f80
/* CE88 80031A88 44810000 */ mtc1 $at, $f0
/* CE8C 80031A8C 8E290468 */ lw $t1, 0x468($s1)
/* CE90 80031A90 8E2A046C */ lw $t2, 0x46c($s1)
/* CE94 80031A94 8E2B0470 */ lw $t3, 0x470($s1)
/* CE98 80031A98 8E2C0474 */ lw $t4, 0x474($s1)
/* CE9C 80031A9C AE29044C */ sw $t1, 0x44c($s1)
/* CEA0 80031AA0 AE2A0450 */ sw $t2, 0x450($s1)
/* CEA4 80031AA4 AE2B0454 */ sw $t3, 0x454($s1)
/* CEA8 80031AA8 AE2C0458 */ sw $t4, 0x458($s1)
/* CEAC 80031AAC 8E290478 */ lw $t1, 0x478($s1)
/* CEB0 80031AB0 8E2A047C */ lw $t2, 0x47c($s1)
/* CEB4 80031AB4 8E2B0480 */ lw $t3, 0x480($s1)
/* CEB8 80031AB8 AE29045C */ sw $t1, 0x45c($s1)
/* CEBC 80031ABC AE2A0460 */ sw $t2, 0x460($s1)
/* CEC0 80031AC0 AE2B0464 */ sw $t3, 0x464($s1)
/* CEC4 80031AC4 A6200008 */ sh $zero, 8($s1)
/* CEC8 80031AC8 E6200484 */ swc1 $f0, 0x484($s1)
.L80031ACC:
/* CECC 80031ACC C622044C */ lwc1 $f2, 0x44c($s1)
/* CED0 80031AD0 C6200468 */ lwc1 $f0, 0x468($s1)
/* CED4 80031AD4 46001001 */ sub.s $f0, $f2, $f0
/* CED8 80031AD8 3C014334 */ lui $at, 0x4334
/* CEDC 80031ADC 44813000 */ mtc1 $at, $f6
/* CEE0 80031AE0 00000000 */ nop
/* CEE4 80031AE4 4600303C */ c.lt.s $f6, $f0
/* CEE8 80031AE8 00000000 */ nop
/* CEEC 80031AEC 45000006 */ bc1f .L80031B08
/* CEF0 80031AF0 00000000 */ nop
/* CEF4 80031AF4 3C0143B4 */ lui $at, 0x43b4
/* CEF8 80031AF8 44810000 */ mtc1 $at, $f0
/* CEFC 80031AFC 00000000 */ nop
/* CF00 80031B00 46001001 */ sub.s $f0, $f2, $f0
/* CF04 80031B04 E620044C */ swc1 $f0, 0x44c($s1)
.L80031B08:
/* CF08 80031B08 C624044C */ lwc1 $f4, 0x44c($s1)
/* CF0C 80031B0C C6200468 */ lwc1 $f0, 0x468($s1)
/* CF10 80031B10 46002001 */ sub.s $f0, $f4, $f0
/* CF14 80031B14 3C01C334 */ lui $at, 0xc334
/* CF18 80031B18 44811000 */ mtc1 $at, $f2
/* CF1C 80031B1C 00000000 */ nop
/* CF20 80031B20 4602003C */ c.lt.s $f0, $f2
/* CF24 80031B24 00000000 */ nop
/* CF28 80031B28 45000006 */ bc1f .L80031B44
/* CF2C 80031B2C 00000000 */ nop
/* CF30 80031B30 3C0143B4 */ lui $at, 0x43b4
/* CF34 80031B34 44810000 */ mtc1 $at, $f0
/* CF38 80031B38 00000000 */ nop
/* CF3C 80031B3C 46002000 */ add.s $f0, $f4, $f0
/* CF40 80031B40 E620044C */ swc1 $f0, 0x44c($s1)
.L80031B44:
/* CF44 80031B44 C622044C */ lwc1 $f2, 0x44c($s1)
/* CF48 80031B48 C6200468 */ lwc1 $f0, 0x468($s1)
/* CF4C 80031B4C 46001301 */ sub.s $f12, $f2, $f0
/* CF50 80031B50 44804000 */ mtc1 $zero, $f8
/* CF54 80031B54 00000000 */ nop
/* CF58 80031B58 4608603C */ c.lt.s $f12, $f8
/* CF5C 80031B5C 00000000 */ nop
/* CF60 80031B60 45030001 */ bc1tl .L80031B68
/* CF64 80031B64 46006307 */ neg.s $f12, $f12
.L80031B68:
/* CF68 80031B68 460C303C */ c.lt.s $f6, $f12
/* CF6C 80031B6C 00000000 */ nop
/* CF70 80031B70 45000005 */ bc1f .L80031B88
/* CF74 80031B74 00000000 */ nop
/* CF78 80031B78 3C0143B4 */ lui $at, 0x43b4
/* CF7C 80031B7C 44810000 */ mtc1 $at, $f0
/* CF80 80031B80 00000000 */ nop
/* CF84 80031B84 460C0301 */ sub.s $f12, $f0, $f12
.L80031B88:
/* CF88 80031B88 C6220454 */ lwc1 $f2, 0x454($s1)
/* CF8C 80031B8C C6200470 */ lwc1 $f0, 0x470($s1)
/* CF90 80031B90 46006506 */ mov.s $f20, $f12
/* CF94 80031B94 46001301 */ sub.s $f12, $f2, $f0
/* CF98 80031B98 4608603C */ c.lt.s $f12, $f8
/* CF9C 80031B9C 00000000 */ nop
/* CFA0 80031BA0 45030001 */ bc1tl .L80031BA8
/* CFA4 80031BA4 46006307 */ neg.s $f12, $f12
.L80031BA8:
/* CFA8 80031BA8 460C303C */ c.lt.s $f6, $f12
/* CFAC 80031BAC 00000000 */ nop
/* CFB0 80031BB0 45000005 */ bc1f .L80031BC8
/* CFB4 80031BB4 00000000 */ nop
/* CFB8 80031BB8 3C0143B4 */ lui $at, 0x43b4
/* CFBC 80031BBC 44810000 */ mtc1 $at, $f0
/* CFC0 80031BC0 00000000 */ nop
/* CFC4 80031BC4 460C0301 */ sub.s $f12, $f0, $f12
.L80031BC8:
/* CFC8 80031BC8 460CA03C */ c.lt.s $f20, $f12
/* CFCC 80031BCC 00000000 */ nop
/* CFD0 80031BD0 45030001 */ bc1tl .L80031BD8
/* CFD4 80031BD4 46006506 */ mov.s $f20, $f12
.L80031BD8:
/* CFD8 80031BD8 C6220458 */ lwc1 $f2, 0x458($s1)
/* CFDC 80031BDC C6200474 */ lwc1 $f0, 0x474($s1)
/* CFE0 80031BE0 46001301 */ sub.s $f12, $f2, $f0
/* CFE4 80031BE4 4608603C */ c.lt.s $f12, $f8
/* CFE8 80031BE8 00000000 */ nop
/* CFEC 80031BEC 45030001 */ bc1tl .L80031BF4
/* CFF0 80031BF0 46006307 */ neg.s $f12, $f12
.L80031BF4:
/* CFF4 80031BF4 460C303C */ c.lt.s $f6, $f12
/* CFF8 80031BF8 00000000 */ nop
/* CFFC 80031BFC 45000005 */ bc1f .L80031C14
/* D000 80031C00 00000000 */ nop
/* D004 80031C04 3C0143B4 */ lui $at, 0x43b4
/* D008 80031C08 44810000 */ mtc1 $at, $f0
/* D00C 80031C0C 00000000 */ nop
/* D010 80031C10 460C0301 */ sub.s $f12, $f0, $f12
.L80031C14:
/* D014 80031C14 460CA03C */ c.lt.s $f20, $f12
/* D018 80031C18 00000000 */ nop
/* D01C 80031C1C 45030001 */ bc1tl .L80031C24
/* D020 80031C20 46006506 */ mov.s $f20, $f12
.L80031C24:
/* D024 80031C24 C6220450 */ lwc1 $f2, 0x450($s1)
/* D028 80031C28 C620046C */ lwc1 $f0, 0x46c($s1)
/* D02C 80031C2C 46001301 */ sub.s $f12, $f2, $f0
/* D030 80031C30 4608603C */ c.lt.s $f12, $f8
/* D034 80031C34 00000000 */ nop
/* D038 80031C38 45030001 */ bc1tl .L80031C40
/* D03C 80031C3C 46006307 */ neg.s $f12, $f12
.L80031C40:
/* D040 80031C40 460CA03C */ c.lt.s $f20, $f12
/* D044 80031C44 00000000 */ nop
/* D048 80031C48 45030001 */ bc1tl .L80031C50
/* D04C 80031C4C 46006506 */ mov.s $f20, $f12
.L80031C50:
/* D050 80031C50 C620045C */ lwc1 $f0, 0x45c($s1)
/* D054 80031C54 C6220478 */ lwc1 $f2, 0x478($s1)
/* D058 80031C58 46020001 */ sub.s $f0, $f0, $f2
/* D05C 80031C5C 46000302 */ mul.s $f12, $f0, $f0
/* D060 80031C60 00000000 */ nop
/* D064 80031C64 C6240460 */ lwc1 $f4, 0x460($s1)
/* D068 80031C68 C620047C */ lwc1 $f0, 0x47c($s1)
/* D06C 80031C6C 46002101 */ sub.s $f4, $f4, $f0
/* D070 80031C70 46042102 */ mul.s $f4, $f4, $f4
/* D074 80031C74 00000000 */ nop
/* D078 80031C78 C6220480 */ lwc1 $f2, 0x480($s1)
/* D07C 80031C7C C6200464 */ lwc1 $f0, 0x464($s1)
/* D080 80031C80 46020001 */ sub.s $f0, $f0, $f2
/* D084 80031C84 46000002 */ mul.s $f0, $f0, $f0
/* D088 80031C88 00000000 */ nop
/* D08C 80031C8C 46046300 */ add.s $f12, $f12, $f4
/* D090 80031C90 46006300 */ add.s $f12, $f12, $f0
/* D094 80031C94 46086032 */ c.eq.s $f12, $f8
/* D098 80031C98 00000000 */ nop
/* D09C 80031C9C 4501000E */ bc1t .L80031CD8
/* D0A0 80031CA0 00000000 */ nop
/* D0A4 80031CA4 46006004 */ sqrt.s $f0, $f12
/* D0A8 80031CA8 46000032 */ c.eq.s $f0, $f0
/* D0AC 80031CAC 00000000 */ nop
/* D0B0 80031CB0 45010003 */ bc1t .L80031CC0
/* D0B4 80031CB4 00000000 */ nop
/* D0B8 80031CB8 0C0187BC */ jal sqrtf
/* D0BC 80031CBC 00000000 */ nop
.L80031CC0:
/* D0C0 80031CC0 3C01800A */ lui $at, %hi(D_80098260)
/* D0C4 80031CC4 D4228260 */ ldc1 $f2, %lo(D_80098260)($at)
/* D0C8 80031CC8 46000021 */ cvt.d.s $f0, $f0
/* D0CC 80031CCC 46220002 */ mul.d $f0, $f0, $f2
/* D0D0 80031CD0 00000000 */ nop
/* D0D4 80031CD4 46200320 */ cvt.s.d $f12, $f0
.L80031CD8:
/* D0D8 80031CD8 460CA03C */ c.lt.s $f20, $f12
/* D0DC 80031CDC 00000000 */ nop
/* D0E0 80031CE0 45030001 */ bc1tl .L80031CE8
/* D0E4 80031CE4 46006506 */ mov.s $f20, $f12
.L80031CE8:
/* D0E8 80031CE8 3C0142B4 */ lui $at, 0x42b4
/* D0EC 80031CEC 44810000 */ mtc1 $at, $f0
/* D0F0 80031CF0 00000000 */ nop
/* D0F4 80031CF4 4614003C */ c.lt.s $f0, $f20
/* D0F8 80031CF8 00000000 */ nop
/* D0FC 80031CFC 45030001 */ bc1tl .L80031D04
/* D100 80031D00 46000506 */ mov.s $f20, $f0
.L80031D04:
/* D104 80031D04 3C0141A0 */ lui $at, 0x41a0
/* D108 80031D08 44810000 */ mtc1 $at, $f0
/* D10C 80031D0C 00000000 */ nop
/* D110 80031D10 4600A03C */ c.lt.s $f20, $f0
/* D114 80031D14 00000000 */ nop
/* D118 80031D18 45030001 */ bc1tl .L80031D20
/* D11C 80031D1C 46000506 */ mov.s $f20, $f0
.L80031D20:
/* D120 80031D20 44800000 */ mtc1 $zero, $f0
/* D124 80031D24 00000000 */ nop
/* D128 80031D28 4600A032 */ c.eq.s $f20, $f0
/* D12C 80031D2C 00000000 */ nop
/* D130 80031D30 4501000E */ bc1t .L80031D6C
/* D134 80031D34 00000000 */ nop
/* D138 80031D38 3C013F80 */ lui $at, 0x3f80
/* D13C 80031D3C 44812000 */ mtc1 $at, $f4
/* D140 80031D40 C620048C */ lwc1 $f0, 0x48c($s1)
/* D144 80031D44 46142083 */ div.s $f2, $f4, $f20
/* D148 80031D48 46001082 */ mul.s $f2, $f2, $f0
/* D14C 80031D4C 00000000 */ nop
/* D150 80031D50 C6200488 */ lwc1 $f0, 0x488($s1)
/* D154 80031D54 46020000 */ add.s $f0, $f0, $f2
/* D158 80031D58 4600203C */ c.lt.s $f4, $f0
/* D15C 80031D5C 00000000 */ nop
/* D160 80031D60 45000002 */ bc1f .L80031D6C
/* D164 80031D64 E6200488 */ swc1 $f0, 0x488($s1)
/* D168 80031D68 E6240488 */ swc1 $f4, 0x488($s1)
.L80031D6C:
/* D16C 80031D6C C6200484 */ lwc1 $f0, 0x484($s1)
/* D170 80031D70 3C013FF0 */ lui $at, 0x3ff0
/* D174 80031D74 4481E800 */ mtc1 $at, $f29
/* D178 80031D78 4480E000 */ mtc1 $zero, $f28
/* D17C 80031D7C 46000021 */ cvt.d.s $f0, $f0
/* D180 80031D80 463C003C */ c.lt.d $f0, $f28
/* D184 80031D84 00000000 */ nop
/* D188 80031D88 45000036 */ bc1f .L80031E64
/* D18C 80031D8C 00000000 */ nop
/* D190 80031D90 C6340508 */ lwc1 $f20, 0x508($s1)
/* D194 80031D94 3C01800A */ lui $at, %hi(D_80098268)
/* D198 80031D98 D4388268 */ ldc1 $f24, %lo(D_80098268)($at)
/* D19C 80031D9C 4600A5A1 */ cvt.d.s $f22, $f20
/* D1A0 80031DA0 4638B582 */ mul.d $f22, $f22, $f24
/* D1A4 80031DA4 00000000 */ nop
/* D1A8 80031DA8 4620B5A0 */ cvt.s.d $f22, $f22
/* D1AC 80031DAC 0C00A874 */ jal cos_rad
/* D1B0 80031DB0 4600B306 */ mov.s $f12, $f22
/* D1B4 80031DB4 C62C0488 */ lwc1 $f12, 0x488($s1)
/* D1B8 80031DB8 46006321 */ cvt.d.s $f12, $f12
/* D1BC 80031DBC 46386302 */ mul.d $f12, $f12, $f24
/* D1C0 80031DC0 00000000 */ nop
/* D1C4 80031DC4 3C013F80 */ lui $at, 0x3f80
/* D1C8 80031DC8 4481D000 */ mtc1 $at, $f26
/* D1CC 80031DCC 00000000 */ nop
/* D1D0 80031DD0 4614D501 */ sub.s $f20, $f26, $f20
/* D1D4 80031DD4 4600A521 */ cvt.d.s $f20, $f20
/* D1D8 80031DD8 46346302 */ mul.d $f12, $f12, $f20
/* D1DC 80031DDC 00000000 */ nop
/* D1E0 80031DE0 461A0600 */ add.s $f24, $f0, $f26
/* D1E4 80031DE4 4600B0A1 */ cvt.d.s $f2, $f22
/* D1E8 80031DE8 3C014000 */ lui $at, 0x4000
/* D1EC 80031DEC 4481A000 */ mtc1 $at, $f20
/* D1F0 80031DF0 46226300 */ add.d $f12, $f12, $f2
/* D1F4 80031DF4 4618A603 */ div.s $f24, $f20, $f24
/* D1F8 80031DF8 0C00A874 */ jal cos_rad
/* D1FC 80031DFC 46206320 */ cvt.s.d $f12, $f12
/* D200 80031E00 4600B306 */ mov.s $f12, $f22
/* D204 80031E04 0C00A874 */ jal cos_rad
/* D208 80031E08 460005A1 */ cvt.d.s $f22, $f0
/* D20C 80031E0C 46000021 */ cvt.d.s $f0, $f0
/* D210 80031E10 4620E001 */ sub.d $f0, $f28, $f0
/* D214 80031E14 3C013FE0 */ lui $at, 0x3fe0
/* D218 80031E18 44811800 */ mtc1 $at, $f3
/* D21C 80031E1C 44801000 */ mtc1 $zero, $f2
/* D220 80031E20 00000000 */ nop
/* D224 80031E24 46220002 */ mul.d $f0, $f0, $f2
/* D228 80031E28 00000000 */ nop
/* D22C 80031E2C 4620B580 */ add.d $f22, $f22, $f0
/* D230 80031E30 4600C621 */ cvt.d.s $f24, $f24
/* D234 80031E34 4638B582 */ mul.d $f22, $f22, $f24
/* D238 80031E38 00000000 */ nop
/* D23C 80031E3C 4620B5A0 */ cvt.s.d $f22, $f22
/* D240 80031E40 461AB680 */ add.s $f26, $f22, $f26
/* D244 80031E44 461AA501 */ sub.s $f20, $f20, $f26
/* D248 80031E48 3C01800A */ lui $at, %hi(D_80098270)
/* D24C 80031E4C D4208270 */ ldc1 $f0, %lo(D_80098270)($at)
/* D250 80031E50 4600A521 */ cvt.d.s $f20, $f20
/* D254 80031E54 4620A502 */ mul.d $f20, $f20, $f0
/* D258 80031E58 00000000 */ nop
/* D25C 80031E5C 4620A5A0 */ cvt.s.d $f22, $f20
/* D260 80031E60 E6360484 */ swc1 $f22, 0x484($s1)
.L80031E64:
/* D264 80031E64 C6200484 */ lwc1 $f0, 0x484($s1)
/* D268 80031E68 3C013F80 */ lui $at, 0x3f80
/* D26C 80031E6C 44814000 */ mtc1 $at, $f8
/* D270 80031E70 00000000 */ nop
/* D274 80031E74 4600403E */ c.le.s $f8, $f0
/* D278 80031E78 00000000 */ nop
/* D27C 80031E7C 45000003 */ bc1f .L80031E8C
/* D280 80031E80 00000000 */ nop
/* D284 80031E84 E6280484 */ swc1 $f8, 0x484($s1)
/* D288 80031E88 AE200488 */ sw $zero, 0x488($s1)
.L80031E8C:
/* D28C 80031E8C C6260484 */ lwc1 $f6, 0x484($s1)
/* D290 80031E90 C6200468 */ lwc1 $f0, 0x468($s1)
/* D294 80031E94 46060002 */ mul.s $f0, $f0, $f6
/* D298 80031E98 00000000 */ nop
/* D29C 80031E9C 46064201 */ sub.s $f8, $f8, $f6
/* D2A0 80031EA0 C622044C */ lwc1 $f2, 0x44c($s1)
/* D2A4 80031EA4 C7B00038 */ lwc1 $f16, 0x38($sp)
/* D2A8 80031EA8 46081082 */ mul.s $f2, $f2, $f8
/* D2AC 80031EAC 00000000 */ nop
/* D2B0 80031EB0 E63004A4 */ swc1 $f16, 0x4a4($s1)
/* D2B4 80031EB4 E63E04A8 */ swc1 $f30, 0x4a8($s1)
/* D2B8 80031EB8 C7B0003C */ lwc1 $f16, 0x3c($sp)
/* D2BC 80031EBC 46001080 */ add.s $f2, $f2, $f0
/* D2C0 80031EC0 3C12800A */ lui $s2, %hi(blendedCamSettings)
/* D2C4 80031EC4 265208C0 */ addiu $s2, $s2, %lo(blendedCamSettings)
/* D2C8 80031EC8 E63004AC */ swc1 $f16, 0x4ac($s1)
/* D2CC 80031ECC E6420000 */ swc1 $f2, ($s2)
/* D2D0 80031ED0 C6240450 */ lwc1 $f4, 0x450($s1)
/* D2D4 80031ED4 46082102 */ mul.s $f4, $f4, $f8
/* D2D8 80031ED8 00000000 */ nop
/* D2DC 80031EDC C620046C */ lwc1 $f0, 0x46c($s1)
/* D2E0 80031EE0 46060002 */ mul.s $f0, $f0, $f6
/* D2E4 80031EE4 00000000 */ nop
/* D2E8 80031EE8 46002100 */ add.s $f4, $f4, $f0
/* D2EC 80031EEC E6440004 */ swc1 $f4, 4($s2)
/* D2F0 80031EF0 C6220454 */ lwc1 $f2, 0x454($s1)
/* D2F4 80031EF4 46081082 */ mul.s $f2, $f2, $f8
/* D2F8 80031EF8 00000000 */ nop
/* D2FC 80031EFC C6200470 */ lwc1 $f0, 0x470($s1)
/* D300 80031F00 46060002 */ mul.s $f0, $f0, $f6
/* D304 80031F04 00000000 */ nop
/* D308 80031F08 46001080 */ add.s $f2, $f2, $f0
/* D30C 80031F0C E6420008 */ swc1 $f2, 8($s2)
/* D310 80031F10 C6220458 */ lwc1 $f2, 0x458($s1)
/* D314 80031F14 46081082 */ mul.s $f2, $f2, $f8
/* D318 80031F18 00000000 */ nop
/* D31C 80031F1C C6200474 */ lwc1 $f0, 0x474($s1)
/* D320 80031F20 46060002 */ mul.s $f0, $f0, $f6
/* D324 80031F24 00000000 */ nop
/* D328 80031F28 46001080 */ add.s $f2, $f2, $f0
/* D32C 80031F2C E642000C */ swc1 $f2, 0xc($s2)
/* D330 80031F30 C622045C */ lwc1 $f2, 0x45c($s1)
/* D334 80031F34 46081082 */ mul.s $f2, $f2, $f8
/* D338 80031F38 00000000 */ nop
/* D33C 80031F3C C6200478 */ lwc1 $f0, 0x478($s1)
/* D340 80031F40 46060002 */ mul.s $f0, $f0, $f6
/* D344 80031F44 00000000 */ nop
/* D348 80031F48 46001080 */ add.s $f2, $f2, $f0
/* D34C 80031F4C E6420010 */ swc1 $f2, 0x10($s2)
/* D350 80031F50 C6220460 */ lwc1 $f2, 0x460($s1)
/* D354 80031F54 46081082 */ mul.s $f2, $f2, $f8
/* D358 80031F58 00000000 */ nop
/* D35C 80031F5C C620047C */ lwc1 $f0, 0x47c($s1)
/* D360 80031F60 46060002 */ mul.s $f0, $f0, $f6
/* D364 80031F64 00000000 */ nop
/* D368 80031F68 46001080 */ add.s $f2, $f2, $f0
/* D36C 80031F6C E6420014 */ swc1 $f2, 0x14($s2)
/* D370 80031F70 C6220464 */ lwc1 $f2, 0x464($s1)
/* D374 80031F74 46081082 */ mul.s $f2, $f2, $f8
/* D378 80031F78 00000000 */ nop
/* D37C 80031F7C C6200480 */ lwc1 $f0, 0x480($s1)
/* D380 80031F80 46060002 */ mul.s $f0, $f0, $f6
/* D384 80031F84 00000000 */ nop
/* D388 80031F88 46001080 */ add.s $f2, $f2, $f0
/* D38C 80031F8C E6420018 */ swc1 $f2, 0x18($s2)
/* D390 80031F90 8622002A */ lh $v0, 0x2a($s1)
/* D394 80031F94 44820000 */ mtc1 $v0, $f0
/* D398 80031F98 00000000 */ nop
/* D39C 80031F9C 46800020 */ cvt.s.w $f0, $f0
/* D3A0 80031FA0 46002102 */ mul.s $f4, $f4, $f0
/* D3A4 80031FA4 00000000 */ nop
/* D3A8 80031FA8 3C01800A */ lui $at, %hi(D_80098278)
/* D3AC 80031FAC D4208278 */ ldc1 $f0, %lo(D_80098278)($at)
/* D3B0 80031FB0 46002121 */ cvt.d.s $f4, $f4
/* D3B4 80031FB4 46202102 */ mul.d $f4, $f4, $f0
/* D3B8 80031FB8 00000000 */ nop
/* D3BC 80031FBC 0220202D */ daddu $a0, $s1, $zero
/* D3C0 80031FC0 46202120 */ cvt.s.d $f4, $f4
/* D3C4 80031FC4 0C00C114 */ jal func_80030450
/* D3C8 80031FC8 E6440004 */ swc1 $f4, 4($s2)
/* D3CC 80031FCC C6540000 */ lwc1 $f20, ($s2)
/* D3D0 80031FD0 3C01800A */ lui $at, %hi(D_800A08E0)
/* D3D4 80031FD4 C42008E0 */ lwc1 $f0, %lo(D_800A08E0)($at)
/* D3D8 80031FD8 4600A500 */ add.s $f20, $f20, $f0
/* D3DC 80031FDC 0C00A8BB */ jal sin_deg
/* D3E0 80031FE0 4600A306 */ mov.s $f12, $f20
/* D3E4 80031FE4 4600A306 */ mov.s $f12, $f20
/* D3E8 80031FE8 0C00A8D4 */ jal cos_deg
/* D3EC 80031FEC 46000686 */ mov.s $f26, $f0
/* D3F0 80031FF0 3C10800A */ lui $s0, %hi(D_800A08DC)
/* D3F4 80031FF4 261008DC */ addiu $s0, $s0, %lo(D_800A08DC)
/* D3F8 80031FF8 C6420008 */ lwc1 $f2, 8($s2)
/* D3FC 80031FFC C60C0000 */ lwc1 $f12, ($s0)
/* D400 80032000 460C1300 */ add.s $f12, $f2, $f12
/* D404 80032004 0C00A8D4 */ jal cos_deg
/* D408 80032008 46000607 */ neg.s $f24, $f0
/* D40C 8003200C C6420008 */ lwc1 $f2, 8($s2)
/* D410 80032010 C60C0000 */ lwc1 $f12, ($s0)
/* D414 80032014 460C1300 */ add.s $f12, $f2, $f12
/* D418 80032018 0C00A8BB */ jal sin_deg
/* D41C 8003201C 46000586 */ mov.s $f22, $f0
/* D420 80032020 96220002 */ lhu $v0, 2($s1)
/* D424 80032024 30420002 */ andi $v0, $v0, 2
/* D428 80032028 14400007 */ bnez $v0, .L80032048
/* D42C 8003202C 46000506 */ mov.s $f20, $f0
/* D430 80032030 C6420004 */ lwc1 $f2, 4($s2)
/* D434 80032034 46141082 */ mul.s $f2, $f2, $f20
/* D438 80032038 00000000 */ nop
/* D43C 8003203C C6400014 */ lwc1 $f0, 0x14($s2)
/* D440 80032040 46020000 */ add.s $f0, $f0, $f2
/* D444 80032044 E6200040 */ swc1 $f0, 0x40($s1)
.L80032048:
/* D448 80032048 C6420004 */ lwc1 $f2, 4($s2)
/* D44C 8003204C 4602D082 */ mul.s $f2, $f26, $f2
/* D450 80032050 00000000 */ nop
/* D454 80032054 46161082 */ mul.s $f2, $f2, $f22
/* D458 80032058 00000000 */ nop
/* D45C 8003205C C6400010 */ lwc1 $f0, 0x10($s2)
/* D460 80032060 46020001 */ sub.s $f0, $f0, $f2
/* D464 80032064 E620003C */ swc1 $f0, 0x3c($s1)
/* D468 80032068 C6420004 */ lwc1 $f2, 4($s2)
/* D46C 8003206C 4602C082 */ mul.s $f2, $f24, $f2
/* D470 80032070 00000000 */ nop
/* D474 80032074 46161082 */ mul.s $f2, $f2, $f22
/* D478 80032078 00000000 */ nop
/* D47C 8003207C C6400018 */ lwc1 $f0, 0x18($s2)
/* D480 80032080 46020001 */ sub.s $f0, $f0, $f2
/* D484 80032084 E6200044 */ swc1 $f0, 0x44($s1)
/* D488 80032088 C64C000C */ lwc1 $f12, 0xc($s2)
/* D48C 8003208C 0C00A8D4 */ jal cos_deg
/* D490 80032090 46006307 */ neg.s $f12, $f12
/* D494 80032094 C64C000C */ lwc1 $f12, 0xc($s2)
/* D498 80032098 46000586 */ mov.s $f22, $f0
/* D49C 8003209C 0C00A8BB */ jal sin_deg
/* D4A0 800320A0 46006307 */ neg.s $f12, $f12
/* D4A4 800320A4 C624003C */ lwc1 $f4, 0x3c($s1)
/* D4A8 800320A8 C6420010 */ lwc1 $f2, 0x10($s2)
/* D4AC 800320AC 46022032 */ c.eq.s $f4, $f2
/* D4B0 800320B0 00000000 */ nop
/* D4B4 800320B4 4500000A */ bc1f .L800320E0
/* D4B8 800320B8 46000506 */ mov.s $f20, $f0
/* D4BC 800320BC C6220044 */ lwc1 $f2, 0x44($s1)
/* D4C0 800320C0 C6400018 */ lwc1 $f0, 0x18($s2)
/* D4C4 800320C4 46001032 */ c.eq.s $f2, $f0
/* D4C8 800320C8 00000000 */ nop
/* D4CC 800320CC 45000004 */ bc1f .L800320E0
/* D4D0 800320D0 00000000 */ nop
/* D4D4 800320D4 44802000 */ mtc1 $zero, $f4
/* D4D8 800320D8 0800C840 */ j .L80032100
/* D4DC 800320DC 00000000 */ nop
.L800320E0:
/* D4E0 800320E0 3C02800A */ lui $v0, %hi(blendedCamSettings)
/* D4E4 800320E4 244208C0 */ addiu $v0, $v0, %lo(blendedCamSettings)
/* D4E8 800320E8 C62C003C */ lwc1 $f12, 0x3c($s1)
/* D4EC 800320EC C62E0044 */ lwc1 $f14, 0x44($s1)
/* D4F0 800320F0 8C460010 */ lw $a2, 0x10($v0)
/* D4F4 800320F4 0C00A7B5 */ jal dist2D
/* D4F8 800320F8 8C470018 */ lw $a3, 0x18($v0)
/* D4FC 800320FC 46000106 */ mov.s $f4, $f0
.L80032100:
/* D500 80032100 3C03800A */ lui $v1, %hi(blendedCamSettings)
/* D504 80032104 246308C0 */ addiu $v1, $v1, %lo(blendedCamSettings)
/* D508 80032108 C4600014 */ lwc1 $f0, 0x14($v1)
/* D50C 8003210C 96220002 */ lhu $v0, 2($s1)
/* D510 80032110 C6260040 */ lwc1 $f6, 0x40($s1)
/* D514 80032114 30420002 */ andi $v0, $v0, 2
/* D518 80032118 14400008 */ bnez $v0, .L8003213C
/* D51C 8003211C 46060201 */ sub.s $f8, $f0, $f6
/* D520 80032120 46142002 */ mul.s $f0, $f4, $f20
/* D524 80032124 00000000 */ nop
/* D528 80032128 46164082 */ mul.s $f2, $f8, $f22
/* D52C 8003212C 00000000 */ nop
/* D530 80032130 46020000 */ add.s $f0, $f0, $f2
/* D534 80032134 46003000 */ add.s $f0, $f6, $f0
/* D538 80032138 E620004C */ swc1 $f0, 0x4c($s1)
.L8003213C:
/* D53C 8003213C 46162102 */ mul.s $f4, $f4, $f22
/* D540 80032140 00000000 */ nop
/* D544 80032144 46144002 */ mul.s $f0, $f8, $f20
/* D548 80032148 00000000 */ nop
/* D54C 8003214C 46002101 */ sub.s $f4, $f4, $f0
/* D550 80032150 4604D002 */ mul.s $f0, $f26, $f4
/* D554 80032154 00000000 */ nop
/* D558 80032158 4604C102 */ mul.s $f4, $f24, $f4
/* D55C 8003215C 00000000 */ nop
/* D560 80032160 C622003C */ lwc1 $f2, 0x3c($s1)
/* D564 80032164 46001080 */ add.s $f2, $f2, $f0
/* D568 80032168 C6200044 */ lwc1 $f0, 0x44($s1)
/* D56C 8003216C 46040000 */ add.s $f0, $f0, $f4
/* D570 80032170 E6220048 */ swc1 $f2, 0x48($s1)
/* D574 80032174 3C01800A */ lui $at, %hi(D_800A08E0)
/* D578 80032178 C42208E0 */ lwc1 $f2, %lo(D_800A08E0)($at)
/* D57C 8003217C E6200050 */ swc1 $f0, 0x50($s1)
/* D580 80032180 C4600000 */ lwc1 $f0, ($v1)
/* D584 80032184 46020000 */ add.s $f0, $f0, $f2
/* D588 80032188 C6240048 */ lwc1 $f4, 0x48($s1)
/* D58C 8003218C E620006C */ swc1 $f0, 0x6c($s1)
/* D590 80032190 E6200084 */ swc1 $f0, 0x84($s1)
/* D594 80032194 C4600004 */ lwc1 $f0, 4($v1)
/* D598 80032198 E6200078 */ swc1 $f0, 0x78($s1)
/* D59C 8003219C C4600000 */ lwc1 $f0, ($v1)
/* D5A0 800321A0 C622004C */ lwc1 $f2, 0x4c($s1)
/* D5A4 800321A4 46000007 */ neg.s $f0, $f0
/* D5A8 800321A8 E6200090 */ swc1 $f0, 0x90($s1)
/* D5AC 800321AC C4600008 */ lwc1 $f0, 8($v1)
/* D5B0 800321B0 C466000C */ lwc1 $f6, 0xc($v1)
/* D5B4 800321B4 E6220058 */ swc1 $f2, 0x58($s1)
/* D5B8 800321B8 C6220050 */ lwc1 $f2, 0x50($s1)
/* D5BC 800321BC E6240054 */ swc1 $f4, 0x54($s1)
/* D5C0 800321C0 46000007 */ neg.s $f0, $f0
/* D5C4 800321C4 46060001 */ sub.s $f0, $f0, $f6
/* D5C8 800321C8 AE20007C */ sw $zero, 0x7c($s1)
/* D5CC 800321CC E622005C */ swc1 $f2, 0x5c($s1)
/* D5D0 800321D0 E6200094 */ swc1 $f0, 0x94($s1)
/* D5D4 800321D4 8FBF004C */ lw $ra, 0x4c($sp)
/* D5D8 800321D8 8FB20048 */ lw $s2, 0x48($sp)
/* D5DC 800321DC 8FB10044 */ lw $s1, 0x44($sp)
/* D5E0 800321E0 8FB00040 */ lw $s0, 0x40($sp)
/* D5E4 800321E4 D7BE0078 */ ldc1 $f30, 0x78($sp)
/* D5E8 800321E8 D7BC0070 */ ldc1 $f28, 0x70($sp)
/* D5EC 800321EC D7BA0068 */ ldc1 $f26, 0x68($sp)
/* D5F0 800321F0 D7B80060 */ ldc1 $f24, 0x60($sp)
/* D5F4 800321F4 D7B60058 */ ldc1 $f22, 0x58($sp)
/* D5F8 800321F8 D7B40050 */ ldc1 $f20, 0x50($sp)
/* D5FC 800321FC 03E00008 */ jr $ra
/* D600 80032200 27BD0080 */ addiu $sp, $sp, 0x80
/* D604 80032204 00000000 */ nop
/* D608 80032208 00000000 */ nop
/* D60C 8003220C 00000000 */ nop

View File

@ -1,59 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800328A4
/* DCA4 800328A4 44857000 */ mtc1 $a1, $f14
/* DCA8 800328A8 44868000 */ mtc1 $a2, $f16
/* DCAC 800328AC 14800003 */ bnez $a0, .L800328BC
/* DCB0 800328B0 24020006 */ addiu $v0, $zero, 6
.L800328B4:
/* DCB4 800328B4 03E00008 */ jr $ra
/* DCB8 800328B8 0000102D */ daddu $v0, $zero, $zero
.L800328BC:
/* DCBC 800328BC 8C830000 */ lw $v1, ($a0)
/* DCC0 800328C0 1462FFFC */ bne $v1, $v0, .L800328B4
/* DCC4 800328C4 00000000 */ nop
/* DCC8 800328C8 C482000C */ lwc1 $f2, 0xc($a0)
/* DCCC 800328CC 46027301 */ sub.s $f12, $f14, $f2
/* DCD0 800328D0 C4880018 */ lwc1 $f8, 0x18($a0)
/* DCD4 800328D4 46024081 */ sub.s $f2, $f8, $f2
/* DCD8 800328D8 460C1282 */ mul.s $f10, $f2, $f12
/* DCDC 800328DC 00000000 */ nop
/* DCE0 800328E0 C4800014 */ lwc1 $f0, 0x14($a0)
/* DCE4 800328E4 46008301 */ sub.s $f12, $f16, $f0
/* DCE8 800328E8 C4840020 */ lwc1 $f4, 0x20($a0)
/* DCEC 800328EC 46002001 */ sub.s $f0, $f4, $f0
/* DCF0 800328F0 460C0182 */ mul.s $f6, $f0, $f12
/* DCF4 800328F4 00000000 */ nop
/* DCF8 800328F8 46087301 */ sub.s $f12, $f14, $f8
/* DCFC 800328FC 460C1082 */ mul.s $f2, $f2, $f12
/* DD00 80032900 00000000 */ nop
/* DD04 80032904 46048301 */ sub.s $f12, $f16, $f4
/* DD08 80032908 460C0002 */ mul.s $f0, $f0, $f12
/* DD0C 8003290C 00000000 */ nop
/* DD10 80032910 46065280 */ add.s $f10, $f10, $f6
/* DD14 80032914 44802000 */ mtc1 $zero, $f4
/* DD18 80032918 00000000 */ nop
/* DD1C 8003291C 4604503C */ c.lt.s $f10, $f4
/* DD20 80032920 00000000 */ nop
/* DD24 80032924 45000005 */ bc1f .L8003293C
/* DD28 80032928 46001080 */ add.s $f2, $f2, $f0
/* DD2C 8003292C 4604103C */ c.lt.s $f2, $f4
/* DD30 80032930 00000000 */ nop
/* DD34 80032934 4501000C */ bc1t .L80032968
/* DD38 80032938 2402FFFF */ addiu $v0, $zero, -1
.L8003293C:
/* DD3C 8003293C 44800000 */ mtc1 $zero, $f0
/* DD40 80032940 00000000 */ nop
/* DD44 80032944 460A003C */ c.lt.s $f0, $f10
/* DD48 80032948 00000000 */ nop
/* DD4C 8003294C 45000006 */ bc1f .L80032968
/* DD50 80032950 0000102D */ daddu $v0, $zero, $zero
/* DD54 80032954 4602003C */ c.lt.s $f0, $f2
/* DD58 80032958 00000000 */ nop
/* DD5C 8003295C 45010002 */ bc1t .L80032968
/* DD60 80032960 24020001 */ addiu $v0, $zero, 1
/* DD64 80032964 0000102D */ daddu $v0, $zero, $zero
.L80032968:
/* DD68 80032968 03E00008 */ jr $ra
/* DD6C 8003296C 00000000 */ nop

View File

@ -1,227 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80098280
.double 0.1
dlabel D_80098288
.double -0.1
.section .text
glabel func_80032970
/* DD70 80032970 44853000 */ mtc1 $a1, $f6
/* DD74 80032974 94820000 */ lhu $v0, ($a0)
/* DD78 80032978 8C830448 */ lw $v1, 0x448($a0)
/* DD7C 8003297C 30421000 */ andi $v0, $v0, 0x1000
/* DD80 80032980 10600005 */ beqz $v1, .L80032998
/* DD84 80032984 0002302B */ sltu $a2, $zero, $v0
/* DD88 80032988 8C630000 */ lw $v1, ($v1)
/* DD8C 8003298C 24020004 */ addiu $v0, $zero, 4
/* DD90 80032990 50620001 */ beql $v1, $v0, .L80032998
/* DD94 80032994 24060001 */ addiu $a2, $zero, 1
.L80032998:
/* DD98 80032998 10C00008 */ beqz $a2, .L800329BC
/* DD9C 8003299C 24020001 */ addiu $v0, $zero, 1
/* DDA0 800329A0 44804000 */ mtc1 $zero, $f8
/* DDA4 800329A4 3C013F80 */ lui $at, 0x3f80
/* DDA8 800329A8 44810000 */ mtc1 $at, $f0
/* DDAC 800329AC AC82051C */ sw $v0, 0x51c($a0)
/* DDB0 800329B0 E4800514 */ swc1 $f0, 0x514($a0)
/* DDB4 800329B4 0800CA8D */ j .L80032A34
/* DDB8 800329B8 E4880510 */ swc1 $f8, 0x510($a0)
.L800329BC:
/* DDBC 800329BC 3C05800F */ lui $a1, %hi(gPlayerStatusPtr)
/* DDC0 800329C0 8CA57B30 */ lw $a1, %lo(gPlayerStatusPtr)($a1)
/* DDC4 800329C4 8CA20004 */ lw $v0, 4($a1)
/* DDC8 800329C8 3C030040 */ lui $v1, 0x40
/* DDCC 800329CC 00431024 */ and $v0, $v0, $v1
/* DDD0 800329D0 10400007 */ beqz $v0, .L800329F0
/* DDD4 800329D4 00000000 */ nop
/* DDD8 800329D8 3C028011 */ lui $v0, %hi(gPartnerActionStatus+0x4)
/* DDDC 800329DC 8442EBB4 */ lh $v0, %lo(gPartnerActionStatus+0x4)($v0)
/* DDE0 800329E0 44824000 */ mtc1 $v0, $f8
/* DDE4 800329E4 00000000 */ nop
/* DDE8 800329E8 0800CA7E */ j .L800329F8
/* DDEC 800329EC 46804220 */ cvt.s.w $f8, $f8
.L800329F0:
/* DDF0 800329F0 C4A800E8 */ lwc1 $f8, 0xe8($a1)
/* DDF4 800329F4 46804220 */ cvt.s.w $f8, $f8
.L800329F8:
/* DDF8 800329F8 44800000 */ mtc1 $zero, $f0
/* DDFC 800329FC 00000000 */ nop
/* DE00 80032A00 4608003C */ c.lt.s $f0, $f8
/* DE04 80032A04 00000000 */ nop
/* DE08 80032A08 45000004 */ bc1f .L80032A1C
/* DE0C 80032A0C 00000000 */ nop
/* DE10 80032A10 3C014248 */ lui $at, 0x4248
/* DE14 80032A14 44814000 */ mtc1 $at, $f8
/* DE18 80032A18 00000000 */ nop
.L80032A1C:
/* DE1C 80032A1C 4600403C */ c.lt.s $f8, $f0
/* DE20 80032A20 00000000 */ nop
/* DE24 80032A24 45000003 */ bc1f .L80032A34
/* DE28 80032A28 00000000 */ nop
/* DE2C 80032A2C 3C01C248 */ lui $at, 0xc248
/* DE30 80032A30 44814000 */ mtc1 $at, $f8
.L80032A34:
/* DE34 80032A34 44801000 */ mtc1 $zero, $f2
/* DE38 80032A38 00000000 */ nop
/* DE3C 80032A3C 46024032 */ c.eq.s $f8, $f2
/* DE40 80032A40 00000000 */ nop
/* DE44 80032A44 4501003A */ bc1t .L80032B30
/* DE48 80032A48 00000000 */ nop
/* DE4C 80032A4C 4602403C */ c.lt.s $f8, $f2
/* DE50 80032A50 00000000 */ nop
/* DE54 80032A54 4500001C */ bc1f .L80032AC8
/* DE58 80032A58 00000000 */ nop
/* DE5C 80032A5C C4800518 */ lwc1 $f0, 0x518($a0)
/* DE60 80032A60 4600103C */ c.lt.s $f2, $f0
/* DE64 80032A64 00000000 */ nop
/* DE68 80032A68 45020003 */ bc1fl .L80032A78
/* DE6C 80032A6C 46080000 */ add.s $f0, $f0, $f8
/* DE70 80032A70 0800CA9F */ j .L80032A7C
/* DE74 80032A74 E4880518 */ swc1 $f8, 0x518($a0)
.L80032A78:
/* DE78 80032A78 E4800518 */ swc1 $f0, 0x518($a0)
.L80032A7C:
/* DE7C 80032A7C C4800518 */ lwc1 $f0, 0x518($a0)
/* DE80 80032A80 3C01C396 */ lui $at, 0xc396
/* DE84 80032A84 44812000 */ mtc1 $at, $f4
/* DE88 80032A88 00000000 */ nop
/* DE8C 80032A8C 4604003E */ c.le.s $f0, $f4
/* DE90 80032A90 00000000 */ nop
/* DE94 80032A94 45000026 */ bc1f .L80032B30
/* DE98 80032A98 24020001 */ addiu $v0, $zero, 1
/* DE9C 80032A9C C4800510 */ lwc1 $f0, 0x510($a0)
/* DEA0 80032AA0 44801000 */ mtc1 $zero, $f2
/* DEA4 80032AA4 00000000 */ nop
/* DEA8 80032AA8 4600103C */ c.lt.s $f2, $f0
/* DEAC 80032AAC 00000000 */ nop
/* DEB0 80032AB0 45000002 */ bc1f .L80032ABC
/* DEB4 80032AB4 AC82051C */ sw $v0, 0x51c($a0)
/* DEB8 80032AB8 E4820514 */ swc1 $f2, 0x514($a0)
.L80032ABC:
/* DEBC 80032ABC 46003007 */ neg.s $f0, $f6
/* DEC0 80032AC0 0800CACB */ j .L80032B2C
/* DEC4 80032AC4 E4800510 */ swc1 $f0, 0x510($a0)
.L80032AC8:
/* DEC8 80032AC8 C4800518 */ lwc1 $f0, 0x518($a0)
/* DECC 80032ACC 4602003C */ c.lt.s $f0, $f2
/* DED0 80032AD0 00000000 */ nop
/* DED4 80032AD4 45020003 */ bc1fl .L80032AE4
/* DED8 80032AD8 46080000 */ add.s $f0, $f0, $f8
/* DEDC 80032ADC 0800CABA */ j .L80032AE8
/* DEE0 80032AE0 E4880518 */ swc1 $f8, 0x518($a0)
.L80032AE4:
/* DEE4 80032AE4 E4800518 */ swc1 $f0, 0x518($a0)
.L80032AE8:
/* DEE8 80032AE8 C4800518 */ lwc1 $f0, 0x518($a0)
/* DEEC 80032AEC 3C014396 */ lui $at, 0x4396
/* DEF0 80032AF0 44812000 */ mtc1 $at, $f4
/* DEF4 80032AF4 00000000 */ nop
/* DEF8 80032AF8 4600203E */ c.le.s $f4, $f0
/* DEFC 80032AFC 00000000 */ nop
/* DF00 80032B00 4500000B */ bc1f .L80032B30
/* DF04 80032B04 24020001 */ addiu $v0, $zero, 1
/* DF08 80032B08 C4800510 */ lwc1 $f0, 0x510($a0)
/* DF0C 80032B0C 44801000 */ mtc1 $zero, $f2
/* DF10 80032B10 00000000 */ nop
/* DF14 80032B14 4602003C */ c.lt.s $f0, $f2
/* DF18 80032B18 00000000 */ nop
/* DF1C 80032B1C 45000002 */ bc1f .L80032B28
/* DF20 80032B20 AC82051C */ sw $v0, 0x51c($a0)
/* DF24 80032B24 E4820514 */ swc1 $f2, 0x514($a0)
.L80032B28:
/* DF28 80032B28 E4860510 */ swc1 $f6, 0x510($a0)
.L80032B2C:
/* DF2C 80032B2C E4840518 */ swc1 $f4, 0x518($a0)
.L80032B30:
/* DF30 80032B30 8C82051C */ lw $v0, 0x51c($a0)
/* DF34 80032B34 1040000F */ beqz $v0, .L80032B74
/* DF38 80032B38 00000000 */ nop
/* DF3C 80032B3C C4800514 */ lwc1 $f0, 0x514($a0)
/* DF40 80032B40 3C013C23 */ lui $at, 0x3c23
/* DF44 80032B44 3421D70A */ ori $at, $at, 0xd70a
/* DF48 80032B48 44811000 */ mtc1 $at, $f2
/* DF4C 80032B4C 00000000 */ nop
/* DF50 80032B50 46020000 */ add.s $f0, $f0, $f2
/* DF54 80032B54 3C013F80 */ lui $at, 0x3f80
/* DF58 80032B58 44811000 */ mtc1 $at, $f2
/* DF5C 80032B5C 00000000 */ nop
/* DF60 80032B60 4600103C */ c.lt.s $f2, $f0
/* DF64 80032B64 00000000 */ nop
/* DF68 80032B68 45000002 */ bc1f .L80032B74
/* DF6C 80032B6C E4800514 */ swc1 $f0, 0x514($a0)
/* DF70 80032B70 E4820514 */ swc1 $f2, 0x514($a0)
.L80032B74:
/* DF74 80032B74 C4800510 */ lwc1 $f0, 0x510($a0)
/* DF78 80032B78 C482050C */ lwc1 $f2, 0x50c($a0)
/* DF7C 80032B7C 46020001 */ sub.s $f0, $f0, $f2
/* DF80 80032B80 44805000 */ mtc1 $zero, $f10
/* DF84 80032B84 00000000 */ nop
/* DF88 80032B88 460A0032 */ c.eq.s $f0, $f10
/* DF8C 80032B8C 00000000 */ nop
/* DF90 80032B90 45000003 */ bc1f .L80032BA0
/* DF94 80032B94 00000000 */ nop
/* DF98 80032B98 E48A0514 */ swc1 $f10, 0x514($a0)
/* DF9C 80032B9C AC80051C */ sw $zero, 0x51c($a0)
.L80032BA0:
/* DFA0 80032BA0 C4800510 */ lwc1 $f0, 0x510($a0)
/* DFA4 80032BA4 C482050C */ lwc1 $f2, 0x50c($a0)
/* DFA8 80032BA8 46020101 */ sub.s $f4, $f0, $f2
/* DFAC 80032BAC C4800514 */ lwc1 $f0, 0x514($a0)
/* DFB0 80032BB0 46002182 */ mul.s $f6, $f4, $f0
/* DFB4 80032BB4 00000000 */ nop
/* DFB8 80032BB8 4604503C */ c.lt.s $f10, $f4
/* DFBC 80032BBC 00000000 */ nop
/* DFC0 80032BC0 4500000D */ bc1f .L80032BF8
/* DFC4 80032BC4 46002021 */ cvt.d.s $f0, $f4
/* DFC8 80032BC8 3C01800A */ lui $at, %hi(D_80098280)
/* DFCC 80032BCC D4228280 */ ldc1 $f2, %lo(D_80098280)($at)
/* DFD0 80032BD0 4622003C */ c.lt.d $f0, $f2
/* DFD4 80032BD4 00000000 */ nop
/* DFD8 80032BD8 45030001 */ bc1tl .L80032BE0
/* DFDC 80032BDC 46002186 */ mov.s $f6, $f4
.L80032BE0:
/* DFE0 80032BE0 3C014040 */ lui $at, 0x4040
/* DFE4 80032BE4 44810000 */ mtc1 $at, $f0
/* DFE8 80032BE8 00000000 */ nop
/* DFEC 80032BEC 4606003C */ c.lt.s $f0, $f6
/* DFF0 80032BF0 0800CB09 */ j .L80032C24
/* DFF4 80032BF4 00000000 */ nop
.L80032BF8:
/* DFF8 80032BF8 3C01800A */ lui $at, %hi(D_80098288)
/* DFFC 80032BFC D4228288 */ ldc1 $f2, %lo(D_80098288)($at)
/* E000 80032C00 4620103C */ c.lt.d $f2, $f0
/* E004 80032C04 00000000 */ nop
/* E008 80032C08 45030001 */ bc1tl .L80032C10
/* E00C 80032C0C 46002186 */ mov.s $f6, $f4
.L80032C10:
/* E010 80032C10 3C01C040 */ lui $at, 0xc040
/* E014 80032C14 44810000 */ mtc1 $at, $f0
/* E018 80032C18 00000000 */ nop
/* E01C 80032C1C 4600303C */ c.lt.s $f6, $f0
/* E020 80032C20 00000000 */ nop
.L80032C24:
/* E024 80032C24 45030001 */ bc1tl .L80032C2C
/* E028 80032C28 46000186 */ mov.s $f6, $f0
.L80032C2C:
/* E02C 80032C2C 44800000 */ mtc1 $zero, $f0
/* E030 80032C30 00000000 */ nop
/* E034 80032C34 46004032 */ c.eq.s $f8, $f0
/* E038 80032C38 00000000 */ nop
/* E03C 80032C3C 45000003 */ bc1f .L80032C4C
/* E040 80032C40 00000000 */ nop
/* E044 80032C44 10C00005 */ beqz $a2, .L80032C5C
/* E048 80032C48 00000000 */ nop
.L80032C4C:
/* E04C 80032C4C C480050C */ lwc1 $f0, 0x50c($a0)
/* E050 80032C50 46060000 */ add.s $f0, $f0, $f6
/* E054 80032C54 03E00008 */ jr $ra
/* E058 80032C58 E480050C */ swc1 $f0, 0x50c($a0)
.L80032C5C:
/* E05C 80032C5C 03E00008 */ jr $ra
/* E060 80032C60 E4800514 */ swc1 $f0, 0x514($a0)

View File

@ -1,488 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80032C64
/* E064 80032C64 27BDFF68 */ addiu $sp, $sp, -0x98
/* E068 80032C68 AFB10054 */ sw $s1, 0x54($sp)
/* E06C 80032C6C 0080882D */ daddu $s1, $a0, $zero
/* E070 80032C70 AFBF0068 */ sw $ra, 0x68($sp)
/* E074 80032C74 AFB50064 */ sw $s5, 0x64($sp)
/* E078 80032C78 AFB40060 */ sw $s4, 0x60($sp)
/* E07C 80032C7C AFB3005C */ sw $s3, 0x5c($sp)
/* E080 80032C80 AFB20058 */ sw $s2, 0x58($sp)
/* E084 80032C84 AFB00050 */ sw $s0, 0x50($sp)
/* E088 80032C88 F7BC0090 */ sdc1 $f28, 0x90($sp)
/* E08C 80032C8C F7BA0088 */ sdc1 $f26, 0x88($sp)
/* E090 80032C90 F7B80080 */ sdc1 $f24, 0x80($sp)
/* E094 80032C94 F7B60078 */ sdc1 $f22, 0x78($sp)
/* E098 80032C98 F7B40070 */ sdc1 $f20, 0x70($sp)
/* E09C 80032C9C C6200084 */ lwc1 $f0, 0x84($s1)
/* E0A0 80032CA0 3C014334 */ lui $at, 0x4334
/* E0A4 80032CA4 44811000 */ mtc1 $at, $f2
/* E0A8 80032CA8 3C014049 */ lui $at, 0x4049
/* E0AC 80032CAC 34210FD8 */ ori $at, $at, 0xfd8
/* E0B0 80032CB0 44812000 */ mtc1 $at, $f4
/* E0B4 80032CB4 46020003 */ div.s $f0, $f0, $f2
/* E0B8 80032CB8 46040502 */ mul.s $f20, $f0, $f4
/* E0BC 80032CBC 00000000 */ nop
/* E0C0 80032CC0 0000902D */ daddu $s2, $zero, $zero
/* E0C4 80032CC4 C63A050C */ lwc1 $f26, 0x50c($s1)
/* E0C8 80032CC8 0C00A874 */ jal cos_rad
/* E0CC 80032CCC 4600A306 */ mov.s $f12, $f20
/* E0D0 80032CD0 0C00A85B */ jal sin_rad
/* E0D4 80032CD4 4600A306 */ mov.s $f12, $f20
/* E0D8 80032CD8 C6200064 */ lwc1 $f0, 0x64($s1)
/* E0DC 80032CDC 3C014120 */ lui $at, 0x4120
/* E0E0 80032CE0 44817000 */ mtc1 $at, $f14
/* E0E4 80032CE4 C62C0060 */ lwc1 $f12, 0x60($s1)
/* E0E8 80032CE8 460E0380 */ add.s $f14, $f0, $f14
/* E0EC 80032CEC 8E260068 */ lw $a2, 0x68($s1)
/* E0F0 80032CF0 0C00C884 */ jal test_ray_zone
/* E0F4 80032CF4 0240382D */ daddu $a3, $s2, $zero
/* E0F8 80032CF8 0040802D */ daddu $s0, $v0, $zero
/* E0FC 80032CFC 120000A1 */ beqz $s0, .L80032F84
/* E100 80032D00 0200982D */ daddu $s3, $s0, $zero
/* E104 80032D04 8E030000 */ lw $v1, ($s0)
/* E108 80032D08 24020002 */ addiu $v0, $zero, 2
/* E10C 80032D0C 1062000A */ beq $v1, $v0, .L80032D38
/* E110 80032D10 24020005 */ addiu $v0, $zero, 5
/* E114 80032D14 10620008 */ beq $v1, $v0, .L80032D38
/* E118 80032D18 00000000 */ nop
/* E11C 80032D1C 8E250060 */ lw $a1, 0x60($s1)
/* E120 80032D20 8E260068 */ lw $a2, 0x68($s1)
/* E124 80032D24 0C00CA29 */ jal func_800328A4
/* E128 80032D28 0200202D */ daddu $a0, $s0, $zero
/* E12C 80032D2C 0040902D */ daddu $s2, $v0, $zero
/* E130 80032D30 12400094 */ beqz $s2, .L80032F84
/* E134 80032D34 00000000 */ nop
.L80032D38:
/* E138 80032D38 8E220530 */ lw $v0, 0x530($s1)
/* E13C 80032D3C 10400049 */ beqz $v0, .L80032E64
/* E140 80032D40 00000000 */ nop
/* E144 80032D44 263000D4 */ addiu $s0, $s1, 0xd4
/* E148 80032D48 0200202D */ daddu $a0, $s0, $zero
/* E14C 80032D4C 8627000A */ lh $a3, 0xa($s1)
/* E150 80032D50 86220012 */ lh $v0, 0x12($s1)
/* E154 80032D54 8623000C */ lh $v1, 0xc($s1)
/* E158 80032D58 3C013F80 */ lui $at, 0x3f80
/* E15C 80032D5C 4481A000 */ mtc1 $at, $f20
/* E160 80032D60 44820000 */ mtc1 $v0, $f0
/* E164 80032D64 00000000 */ nop
/* E168 80032D68 46800020 */ cvt.s.w $f0, $f0
/* E16C 80032D6C E7A00010 */ swc1 $f0, 0x10($sp)
/* E170 80032D70 86220014 */ lh $v0, 0x14($s1)
/* E174 80032D74 44871000 */ mtc1 $a3, $f2
/* E178 80032D78 00000000 */ nop
/* E17C 80032D7C 468010A0 */ cvt.s.w $f2, $f2
/* E180 80032D80 E7B40018 */ swc1 $f20, 0x18($sp)
/* E184 80032D84 44820000 */ mtc1 $v0, $f0
/* E188 80032D88 00000000 */ nop
/* E18C 80032D8C 46800020 */ cvt.s.w $f0, $f0
/* E190 80032D90 E7A00014 */ swc1 $f0, 0x14($sp)
/* E194 80032D94 44830000 */ mtc1 $v1, $f0
/* E198 80032D98 00000000 */ nop
/* E19C 80032D9C 46800020 */ cvt.s.w $f0, $f0
/* E1A0 80032DA0 46001083 */ div.s $f2, $f2, $f0
/* E1A4 80032DA4 8E260018 */ lw $a2, 0x18($s1)
/* E1A8 80032DA8 44071000 */ mfc1 $a3, $f2
/* E1AC 80032DAC 0C018EE4 */ jal guPerspectiveF
/* E1B0 80032DB0 26250038 */ addiu $a1, $s1, 0x38
/* E1B4 80032DB4 26240114 */ addiu $a0, $s1, 0x114
/* E1B8 80032DB8 0200282D */ daddu $a1, $s0, $zero
/* E1BC 80032DBC 0C019D80 */ jal guMtxCatF
/* E1C0 80032DC0 0200302D */ daddu $a2, $s0, $zero
/* E1C4 80032DC4 27A20030 */ addiu $v0, $sp, 0x30
/* E1C8 80032DC8 AFA20014 */ sw $v0, 0x14($sp)
/* E1CC 80032DCC 27A20034 */ addiu $v0, $sp, 0x34
/* E1D0 80032DD0 AFA20018 */ sw $v0, 0x18($sp)
/* E1D4 80032DD4 27A20038 */ addiu $v0, $sp, 0x38
/* E1D8 80032DD8 AFA2001C */ sw $v0, 0x1c($sp)
/* E1DC 80032DDC 27A2003C */ addiu $v0, $sp, 0x3c
/* E1E0 80032DE0 E7B40010 */ swc1 $f20, 0x10($sp)
/* E1E4 80032DE4 AFA20020 */ sw $v0, 0x20($sp)
/* E1E8 80032DE8 8E250060 */ lw $a1, 0x60($s1)
/* E1EC 80032DEC 8E260064 */ lw $a2, 0x64($s1)
/* E1F0 80032DF0 8E270068 */ lw $a3, 0x68($s1)
/* E1F4 80032DF4 0C00A588 */ jal transform_point
/* E1F8 80032DF8 0200202D */ daddu $a0, $s0, $zero
/* E1FC 80032DFC C7A0003C */ lwc1 $f0, 0x3c($sp)
/* E200 80032E00 44802000 */ mtc1 $zero, $f4
/* E204 80032E04 00000000 */ nop
/* E208 80032E08 46040032 */ c.eq.s $f0, $f4
/* E20C 80032E0C 00000000 */ nop
/* E210 80032E10 45030001 */ bc1tl .L80032E18
/* E214 80032E14 E7B4003C */ swc1 $f20, 0x3c($sp)
.L80032E18:
/* E218 80032E18 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* E21C 80032E1C C7A20030 */ lwc1 $f2, 0x30($sp)
/* E220 80032E20 4600A003 */ div.s $f0, $f20, $f0
/* E224 80032E24 46001082 */ mul.s $f2, $f2, $f0
/* E228 80032E28 00000000 */ nop
/* E22C 80032E2C 2623052C */ addiu $v1, $s1, 0x52c
/* E230 80032E30 E7A0003C */ swc1 $f0, 0x3c($sp)
/* E234 80032E34 4602203C */ c.lt.s $f4, $f2
/* E238 80032E38 E7A20030 */ swc1 $f2, 0x30($sp)
/* E23C 80032E3C 45010006 */ bc1t .L80032E58
/* E240 80032E40 24020001 */ addiu $v0, $zero, 1
/* E244 80032E44 4604103C */ c.lt.s $f2, $f4
/* E248 80032E48 00000000 */ nop
/* E24C 80032E4C 45000002 */ bc1f .L80032E58
/* E250 80032E50 0000102D */ daddu $v0, $zero, $zero
/* E254 80032E54 2402FFFF */ addiu $v0, $zero, -1
.L80032E58:
/* E258 80032E58 AC620000 */ sw $v0, ($v1)
/* E25C 80032E5C 0800CBC9 */ j .L80032F24
/* E260 80032E60 AE200530 */ sw $zero, 0x530($s1)
.L80032E64:
/* E264 80032E64 8E220534 */ lw $v0, 0x534($s1)
/* E268 80032E68 10400011 */ beqz $v0, .L80032EB0
/* E26C 80032E6C 00000000 */ nop
/* E270 80032E70 8C430000 */ lw $v1, ($v0)
/* E274 80032E74 24020002 */ addiu $v0, $zero, 2
/* E278 80032E78 1062002A */ beq $v1, $v0, .L80032F24
/* E27C 80032E7C 24020005 */ addiu $v0, $zero, 5
/* E280 80032E80 10620028 */ beq $v1, $v0, .L80032F24
/* E284 80032E84 00000000 */ nop
/* E288 80032E88 8E250524 */ lw $a1, 0x524($s1)
/* E28C 80032E8C 8E260528 */ lw $a2, 0x528($s1)
/* E290 80032E90 0C00CA29 */ jal func_800328A4
/* E294 80032E94 0200202D */ daddu $a0, $s0, $zero
/* E298 80032E98 14400022 */ bnez $v0, .L80032F24
/* E29C 80032E9C 00000000 */ nop
/* E2A0 80032EA0 12400003 */ beqz $s2, .L80032EB0
/* E2A4 80032EA4 00000000 */ nop
/* E2A8 80032EA8 0800CBC9 */ j .L80032F24
/* E2AC 80032EAC AE32052C */ sw $s2, 0x52c($s1)
.L80032EB0:
/* E2B0 80032EB0 C6380060 */ lwc1 $f24, 0x60($s1)
/* E2B4 80032EB4 C6200524 */ lwc1 $f0, 0x524($s1)
/* E2B8 80032EB8 C6360068 */ lwc1 $f22, 0x68($s1)
/* E2BC 80032EBC 4600C601 */ sub.s $f24, $f24, $f0
/* E2C0 80032EC0 C6200528 */ lwc1 $f0, 0x528($s1)
/* E2C4 80032EC4 C62C006C */ lwc1 $f12, 0x6c($s1)
/* E2C8 80032EC8 0C00A8D4 */ jal cos_deg
/* E2CC 80032ECC 4600B581 */ sub.s $f22, $f22, $f0
/* E2D0 80032ED0 C62C006C */ lwc1 $f12, 0x6c($s1)
/* E2D4 80032ED4 0C00A8BB */ jal sin_deg
/* E2D8 80032ED8 46000507 */ neg.s $f20, $f0
/* E2DC 80032EDC 4614C602 */ mul.s $f24, $f24, $f20
/* E2E0 80032EE0 00000000 */ nop
/* E2E4 80032EE4 46000007 */ neg.s $f0, $f0
/* E2E8 80032EE8 4600B582 */ mul.s $f22, $f22, $f0
/* E2EC 80032EEC 00000000 */ nop
/* E2F0 80032EF0 4616C600 */ add.s $f24, $f24, $f22
/* E2F4 80032EF4 44800000 */ mtc1 $zero, $f0
/* E2F8 80032EF8 00000000 */ nop
/* E2FC 80032EFC 4618003C */ c.lt.s $f0, $f24
/* E300 80032F00 00000000 */ nop
/* E304 80032F04 45010006 */ bc1t .L80032F20
/* E308 80032F08 2402FFFF */ addiu $v0, $zero, -1
/* E30C 80032F0C 4600C03C */ c.lt.s $f24, $f0
/* E310 80032F10 00000000 */ nop
/* E314 80032F14 45010002 */ bc1t .L80032F20
/* E318 80032F18 24020001 */ addiu $v0, $zero, 1
/* E31C 80032F1C 0000102D */ daddu $v0, $zero, $zero
.L80032F20:
/* E320 80032F20 AE22052C */ sw $v0, 0x52c($s1)
.L80032F24:
/* E324 80032F24 44800000 */ mtc1 $zero, $f0
/* E328 80032F28 00000000 */ nop
/* E32C 80032F2C 461A003C */ c.lt.s $f0, $f26
/* E330 80032F30 00000000 */ nop
/* E334 80032F34 45000004 */ bc1f .L80032F48
/* E338 80032F38 00000000 */ nop
/* E33C 80032F3C 8E22052C */ lw $v0, 0x52c($s1)
/* E340 80032F40 5C400009 */ bgtzl $v0, .L80032F68
/* E344 80032F44 AE200514 */ sw $zero, 0x514($s1)
.L80032F48:
/* E348 80032F48 4600D03C */ c.lt.s $f26, $f0
/* E34C 80032F4C 00000000 */ nop
/* E350 80032F50 45000006 */ bc1f .L80032F6C
/* E354 80032F54 00000000 */ nop
/* E358 80032F58 8E22052C */ lw $v0, 0x52c($s1)
/* E35C 80032F5C 04410003 */ bgez $v0, .L80032F6C
/* E360 80032F60 00000000 */ nop
/* E364 80032F64 AE200514 */ sw $zero, 0x514($s1)
.L80032F68:
/* E368 80032F68 AE20050C */ sw $zero, 0x50c($s1)
.L80032F6C:
/* E36C 80032F6C C6200060 */ lwc1 $f0, 0x60($s1)
/* E370 80032F70 C6220068 */ lwc1 $f2, 0x68($s1)
/* E374 80032F74 AE330534 */ sw $s3, 0x534($s1)
/* E378 80032F78 E6200524 */ swc1 $f0, 0x524($s1)
/* E37C 80032F7C 0800CCD7 */ j .L8003335C
/* E380 80032F80 E6220528 */ swc1 $f2, 0x528($s1)
.L80032F84:
/* E384 80032F84 C6200060 */ lwc1 $f0, 0x60($s1)
/* E388 80032F88 C6220068 */ lwc1 $f2, 0x68($s1)
/* E38C 80032F8C 4600A306 */ mov.s $f12, $f20
/* E390 80032F90 AE20052C */ sw $zero, 0x52c($s1)
/* E394 80032F94 AE330534 */ sw $s3, 0x534($s1)
/* E398 80032F98 E6200524 */ swc1 $f0, 0x524($s1)
/* E39C 80032F9C 0C00A874 */ jal cos_rad
/* E3A0 80032FA0 E6220528 */ swc1 $f2, 0x528($s1)
/* E3A4 80032FA4 4600D002 */ mul.s $f0, $f26, $f0
/* E3A8 80032FA8 00000000 */ nop
/* E3AC 80032FAC C6220060 */ lwc1 $f2, 0x60($s1)
/* E3B0 80032FB0 46001700 */ add.s $f28, $f2, $f0
/* E3B4 80032FB4 0C00A85B */ jal sin_rad
/* E3B8 80032FB8 4600A306 */ mov.s $f12, $f20
/* E3BC 80032FBC 4600D002 */ mul.s $f0, $f26, $f0
/* E3C0 80032FC0 00000000 */ nop
/* E3C4 80032FC4 C6220068 */ lwc1 $f2, 0x68($s1)
/* E3C8 80032FC8 3C014120 */ lui $at, 0x4120
/* E3CC 80032FCC 44817000 */ mtc1 $at, $f14
/* E3D0 80032FD0 46001680 */ add.s $f26, $f2, $f0
/* E3D4 80032FD4 C6200064 */ lwc1 $f0, 0x64($s1)
/* E3D8 80032FD8 27A70040 */ addiu $a3, $sp, 0x40
/* E3DC 80032FDC 460E0380 */ add.s $f14, $f0, $f14
/* E3E0 80032FE0 4406D000 */ mfc1 $a2, $f26
/* E3E4 80032FE4 0C00C884 */ jal test_ray_zone
/* E3E8 80032FE8 4600E306 */ mov.s $f12, $f28
/* E3EC 80032FEC 0040802D */ daddu $s0, $v0, $zero
/* E3F0 80032FF0 120000DA */ beqz $s0, .L8003335C
/* E3F4 80032FF4 24020002 */ addiu $v0, $zero, 2
/* E3F8 80032FF8 8E040000 */ lw $a0, ($s0)
/* E3FC 80032FFC 1082000A */ beq $a0, $v0, .L80033028
/* E400 80033000 24020005 */ addiu $v0, $zero, 5
/* E404 80033004 10820008 */ beq $a0, $v0, .L80033028
/* E408 80033008 00000000 */ nop
/* E40C 8003300C 8E240534 */ lw $a0, 0x534($s1)
/* E410 80033010 4405E000 */ mfc1 $a1, $f28
/* E414 80033014 4406D000 */ mfc1 $a2, $f26
/* E418 80033018 0C00CA29 */ jal func_800328A4
/* E41C 8003301C 00000000 */ nop
/* E420 80033020 104000CE */ beqz $v0, .L8003335C
/* E424 80033024 00000000 */ nop
.L80033028:
/* E428 80033028 8E240534 */ lw $a0, 0x534($s1)
/* E42C 8003302C 3C014974 */ lui $at, 0x4974
/* E430 80033030 34212400 */ ori $at, $at, 0x2400
/* E434 80033034 4481A000 */ mtc1 $at, $f20
/* E438 80033038 10800043 */ beqz $a0, .L80033148
/* E43C 8003303C 24120001 */ addiu $s2, $zero, 1
/* E440 80033040 8C830000 */ lw $v1, ($a0)
/* E444 80033044 24020006 */ addiu $v0, $zero, 6
/* E448 80033048 1462003F */ bne $v1, $v0, .L80033148
/* E44C 8003304C 0080802D */ daddu $s0, $a0, $zero
/* E450 80033050 C6200060 */ lwc1 $f0, 0x60($s1)
/* E454 80033054 C6080018 */ lwc1 $f8, 0x18($s0)
/* E458 80033058 C604000C */ lwc1 $f4, 0xc($s0)
/* E45C 8003305C C6020020 */ lwc1 $f2, 0x20($s0)
/* E460 80033060 C6060014 */ lwc1 $f6, 0x14($s0)
/* E464 80033064 E7A00010 */ swc1 $f0, 0x10($sp)
/* E468 80033068 C6200068 */ lwc1 $f0, 0x68($s1)
/* E46C 8003306C 27A20044 */ addiu $v0, $sp, 0x44
/* E470 80033070 AFA20020 */ sw $v0, 0x20($sp)
/* E474 80033074 27A20048 */ addiu $v0, $sp, 0x48
/* E478 80033078 46061601 */ sub.s $f24, $f2, $f6
/* E47C 8003307C AFA20024 */ sw $v0, 0x24($sp)
/* E480 80033080 27A2004C */ addiu $v0, $sp, 0x4c
/* E484 80033084 46044581 */ sub.s $f22, $f8, $f4
/* E488 80033088 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E48C 8003308C E7BA001C */ swc1 $f26, 0x1c($sp)
/* E490 80033090 AFA20028 */ sw $v0, 0x28($sp)
/* E494 80033094 46182281 */ sub.s $f10, $f4, $f24
/* E498 80033098 E7A00014 */ swc1 $f0, 0x14($sp)
/* E49C 8003309C C60C000C */ lwc1 $f12, 0xc($s0)
/* E4A0 800330A0 46163180 */ add.s $f6, $f6, $f22
/* E4A4 800330A4 C60E0014 */ lwc1 $f14, 0x14($s0)
/* E4A8 800330A8 44065000 */ mfc1 $a2, $f10
/* E4AC 800330AC 44073000 */ mfc1 $a3, $f6
/* E4B0 800330B0 0C00C979 */ jal func_800325E4
/* E4B4 800330B4 0000902D */ daddu $s2, $zero, $zero
/* E4B8 800330B8 10400006 */ beqz $v0, .L800330D4
/* E4BC 800330BC 00000000 */ nop
/* E4C0 800330C0 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E4C4 800330C4 4614003C */ c.lt.s $f0, $f20
/* E4C8 800330C8 00000000 */ nop
/* E4CC 800330CC 45030001 */ bc1tl .L800330D4
/* E4D0 800330D0 46000506 */ mov.s $f20, $f0
.L800330D4:
/* E4D4 800330D4 C6200060 */ lwc1 $f0, 0x60($s1)
/* E4D8 800330D8 C6020018 */ lwc1 $f2, 0x18($s0)
/* E4DC 800330DC C6040020 */ lwc1 $f4, 0x20($s0)
/* E4E0 800330E0 E7A00010 */ swc1 $f0, 0x10($sp)
/* E4E4 800330E4 C6200068 */ lwc1 $f0, 0x68($s1)
/* E4E8 800330E8 27A20044 */ addiu $v0, $sp, 0x44
/* E4EC 800330EC AFA20020 */ sw $v0, 0x20($sp)
/* E4F0 800330F0 27A20048 */ addiu $v0, $sp, 0x48
/* E4F4 800330F4 46181081 */ sub.s $f2, $f2, $f24
/* E4F8 800330F8 AFA20024 */ sw $v0, 0x24($sp)
/* E4FC 800330FC 27A2004C */ addiu $v0, $sp, 0x4c
/* E500 80033100 46162100 */ add.s $f4, $f4, $f22
/* E504 80033104 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E508 80033108 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E50C 8003310C AFA20028 */ sw $v0, 0x28($sp)
/* E510 80033110 E7A00014 */ swc1 $f0, 0x14($sp)
/* E514 80033114 C60C0018 */ lwc1 $f12, 0x18($s0)
/* E518 80033118 C60E0020 */ lwc1 $f14, 0x20($s0)
/* E51C 8003311C 44061000 */ mfc1 $a2, $f2
/* E520 80033120 44072000 */ mfc1 $a3, $f4
/* E524 80033124 0C00C979 */ jal func_800325E4
/* E528 80033128 00000000 */ nop
/* E52C 8003312C 10400006 */ beqz $v0, .L80033148
/* E530 80033130 00000000 */ nop
/* E534 80033134 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E538 80033138 4614003C */ c.lt.s $f0, $f20
/* E53C 8003313C 00000000 */ nop
/* E540 80033140 45030001 */ bc1tl .L80033148
/* E544 80033144 46000506 */ mov.s $f20, $f0
.L80033148:
/* E548 80033148 1240005C */ beqz $s2, .L800332BC
/* E54C 8003314C 00000000 */ nop
/* E550 80033150 8FA30040 */ lw $v1, 0x40($sp)
/* E554 80033154 8462000A */ lh $v0, 0xa($v1)
/* E558 80033158 18400058 */ blez $v0, .L800332BC
/* E55C 8003315C 0000902D */ daddu $s2, $zero, $zero
/* E560 80033160 27B50044 */ addiu $s5, $sp, 0x44
/* E564 80033164 27B40048 */ addiu $s4, $sp, 0x48
/* E568 80033168 27B3004C */ addiu $s3, $sp, 0x4c
/* E56C 8003316C 0240802D */ daddu $s0, $s2, $zero
.L80033170:
/* E570 80033170 8C62000C */ lw $v0, 0xc($v1)
/* E574 80033174 C6200060 */ lwc1 $f0, 0x60($s1)
/* E578 80033178 02021021 */ addu $v0, $s0, $v0
/* E57C 8003317C 8C430000 */ lw $v1, ($v0)
/* E580 80033180 8C420004 */ lw $v0, 4($v0)
/* E584 80033184 E7A00010 */ swc1 $f0, 0x10($sp)
/* E588 80033188 C6200068 */ lwc1 $f0, 0x68($s1)
/* E58C 8003318C E7BC0018 */ swc1 $f28, 0x18($sp)
/* E590 80033190 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E594 80033194 AFB50020 */ sw $s5, 0x20($sp)
/* E598 80033198 AFB40024 */ sw $s4, 0x24($sp)
/* E59C 8003319C AFB30028 */ sw $s3, 0x28($sp)
/* E5A0 800331A0 E7A00014 */ swc1 $f0, 0x14($sp)
/* E5A4 800331A4 C46C0000 */ lwc1 $f12, ($v1)
/* E5A8 800331A8 C46E0008 */ lwc1 $f14, 8($v1)
/* E5AC 800331AC 8C460000 */ lw $a2, ($v0)
/* E5B0 800331B0 0C00C8B7 */ jal func_800322DC
/* E5B4 800331B4 8C470008 */ lw $a3, 8($v0)
/* E5B8 800331B8 10400006 */ beqz $v0, .L800331D4
/* E5BC 800331BC 00000000 */ nop
/* E5C0 800331C0 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E5C4 800331C4 4614003C */ c.lt.s $f0, $f20
/* E5C8 800331C8 00000000 */ nop
/* E5CC 800331CC 45030001 */ bc1tl .L800331D4
/* E5D0 800331D0 46000506 */ mov.s $f20, $f0
.L800331D4:
/* E5D4 800331D4 8FA20040 */ lw $v0, 0x40($sp)
/* E5D8 800331D8 8C42000C */ lw $v0, 0xc($v0)
/* E5DC 800331DC C6200060 */ lwc1 $f0, 0x60($s1)
/* E5E0 800331E0 02021021 */ addu $v0, $s0, $v0
/* E5E4 800331E4 8C430004 */ lw $v1, 4($v0)
/* E5E8 800331E8 8C420008 */ lw $v0, 8($v0)
/* E5EC 800331EC E7A00010 */ swc1 $f0, 0x10($sp)
/* E5F0 800331F0 C6200068 */ lwc1 $f0, 0x68($s1)
/* E5F4 800331F4 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E5F8 800331F8 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E5FC 800331FC AFB50020 */ sw $s5, 0x20($sp)
/* E600 80033200 AFB40024 */ sw $s4, 0x24($sp)
/* E604 80033204 AFB30028 */ sw $s3, 0x28($sp)
/* E608 80033208 E7A00014 */ swc1 $f0, 0x14($sp)
/* E60C 8003320C C46C0000 */ lwc1 $f12, ($v1)
/* E610 80033210 C46E0008 */ lwc1 $f14, 8($v1)
/* E614 80033214 8C460000 */ lw $a2, ($v0)
/* E618 80033218 0C00C8B7 */ jal func_800322DC
/* E61C 8003321C 8C470008 */ lw $a3, 8($v0)
/* E620 80033220 10400006 */ beqz $v0, .L8003323C
/* E624 80033224 00000000 */ nop
/* E628 80033228 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E62C 8003322C 4614003C */ c.lt.s $f0, $f20
/* E630 80033230 00000000 */ nop
/* E634 80033234 45030001 */ bc1tl .L8003323C
/* E638 80033238 46000506 */ mov.s $f20, $f0
.L8003323C:
/* E63C 8003323C 8FA20040 */ lw $v0, 0x40($sp)
/* E640 80033240 8C42000C */ lw $v0, 0xc($v0)
/* E644 80033244 C6200060 */ lwc1 $f0, 0x60($s1)
/* E648 80033248 02021021 */ addu $v0, $s0, $v0
/* E64C 8003324C 8C430008 */ lw $v1, 8($v0)
/* E650 80033250 8C420000 */ lw $v0, ($v0)
/* E654 80033254 E7A00010 */ swc1 $f0, 0x10($sp)
/* E658 80033258 C6200068 */ lwc1 $f0, 0x68($s1)
/* E65C 8003325C E7BC0018 */ swc1 $f28, 0x18($sp)
/* E660 80033260 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E664 80033264 AFB50020 */ sw $s5, 0x20($sp)
/* E668 80033268 AFB40024 */ sw $s4, 0x24($sp)
/* E66C 8003326C AFB30028 */ sw $s3, 0x28($sp)
/* E670 80033270 E7A00014 */ swc1 $f0, 0x14($sp)
/* E674 80033274 C46C0000 */ lwc1 $f12, ($v1)
/* E678 80033278 C46E0008 */ lwc1 $f14, 8($v1)
/* E67C 8003327C 8C460000 */ lw $a2, ($v0)
/* E680 80033280 0C00C8B7 */ jal func_800322DC
/* E684 80033284 8C470008 */ lw $a3, 8($v0)
/* E688 80033288 10400006 */ beqz $v0, .L800332A4
/* E68C 8003328C 00000000 */ nop
/* E690 80033290 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E694 80033294 4614003C */ c.lt.s $f0, $f20
/* E698 80033298 00000000 */ nop
/* E69C 8003329C 45030001 */ bc1tl .L800332A4
/* E6A0 800332A0 46000506 */ mov.s $f20, $f0
.L800332A4:
/* E6A4 800332A4 8FA30040 */ lw $v1, 0x40($sp)
/* E6A8 800332A8 8462000A */ lh $v0, 0xa($v1)
/* E6AC 800332AC 26520001 */ addiu $s2, $s2, 1
/* E6B0 800332B0 0242102A */ slt $v0, $s2, $v0
/* E6B4 800332B4 1440FFAE */ bnez $v0, .L80033170
/* E6B8 800332B8 26100040 */ addiu $s0, $s0, 0x40
.L800332BC:
/* E6BC 800332BC 3C014974 */ lui $at, 0x4974
/* E6C0 800332C0 34212400 */ ori $at, $at, 0x2400
/* E6C4 800332C4 44810000 */ mtc1 $at, $f0
/* E6C8 800332C8 00000000 */ nop
/* E6CC 800332CC 4600A032 */ c.eq.s $f20, $f0
/* E6D0 800332D0 00000000 */ nop
/* E6D4 800332D4 45030020 */ bc1tl .L80033358
/* E6D8 800332D8 AE20050C */ sw $zero, 0x50c($s1)
/* E6DC 800332DC 44801000 */ mtc1 $zero, $f2
/* E6E0 800332E0 00000000 */ nop
/* E6E4 800332E4 4602A032 */ c.eq.s $f20, $f2
/* E6E8 800332E8 00000000 */ nop
/* E6EC 800332EC 45000003 */ bc1f .L800332FC
/* E6F0 800332F0 00000000 */ nop
/* E6F4 800332F4 0800CCD6 */ j .L80033358
/* E6F8 800332F8 AE20050C */ sw $zero, 0x50c($s1)
.L800332FC:
/* E6FC 800332FC C620050C */ lwc1 $f0, 0x50c($s1)
/* E700 80033300 4600103C */ c.lt.s $f2, $f0
/* E704 80033304 00000000 */ nop
/* E708 80033308 4500000A */ bc1f .L80033334
/* E70C 8003330C 2630050C */ addiu $s0, $s1, 0x50c
/* E710 80033310 4600A004 */ sqrt.s $f0, $f20
/* E714 80033314 46000032 */ c.eq.s $f0, $f0
/* E718 80033318 00000000 */ nop
/* E71C 8003331C 4503000E */ bc1tl .L80033358
/* E720 80033320 E6000000 */ swc1 $f0, ($s0)
/* E724 80033324 0C0187BC */ jal sqrtf
/* E728 80033328 4600A306 */ mov.s $f12, $f20
/* E72C 8003332C 0800CCD6 */ j .L80033358
/* E730 80033330 E6000000 */ swc1 $f0, ($s0)
.L80033334:
/* E734 80033334 4600A004 */ sqrt.s $f0, $f20
/* E738 80033338 46000032 */ c.eq.s $f0, $f0
/* E73C 8003333C 00000000 */ nop
/* E740 80033340 45030004 */ bc1tl .L80033354
/* E744 80033344 46000007 */ neg.s $f0, $f0
/* E748 80033348 0C0187BC */ jal sqrtf
/* E74C 8003334C 4600A306 */ mov.s $f12, $f20
/* E750 80033350 46000007 */ neg.s $f0, $f0
.L80033354:
/* E754 80033354 E6000000 */ swc1 $f0, ($s0)
.L80033358:
/* E758 80033358 AE200514 */ sw $zero, 0x514($s1)
.L8003335C:
/* E75C 8003335C 8FBF0068 */ lw $ra, 0x68($sp)
/* E760 80033360 8FB50064 */ lw $s5, 0x64($sp)
/* E764 80033364 8FB40060 */ lw $s4, 0x60($sp)
/* E768 80033368 8FB3005C */ lw $s3, 0x5c($sp)
/* E76C 8003336C 8FB20058 */ lw $s2, 0x58($sp)
/* E770 80033370 8FB10054 */ lw $s1, 0x54($sp)
/* E774 80033374 8FB00050 */ lw $s0, 0x50($sp)
/* E778 80033378 D7BC0090 */ ldc1 $f28, 0x90($sp)
/* E77C 8003337C D7BA0088 */ ldc1 $f26, 0x88($sp)
/* E780 80033380 D7B80080 */ ldc1 $f24, 0x80($sp)
/* E784 80033384 D7B60078 */ ldc1 $f22, 0x78($sp)
/* E788 80033388 D7B40070 */ ldc1 $f20, 0x70($sp)
/* E78C 8003338C 03E00008 */ jr $ra
/* E790 80033390 27BD0098 */ addiu $sp, $sp, 0x98

View File

@ -1,57 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel test_ray_zone
/* D610 80032210 27BDFFA0 */ addiu $sp, $sp, -0x60
/* D614 80032214 AFB00058 */ sw $s0, 0x58($sp)
/* D618 80032218 00E0802D */ daddu $s0, $a3, $zero
/* D61C 8003221C 3C0146FF */ lui $at, 0x46ff
/* D620 80032220 3421FE00 */ ori $at, $at, 0xfe00
/* D624 80032224 44811000 */ mtc1 $at, $f2
/* D628 80032228 44802000 */ mtc1 $zero, $f4
/* D62C 8003222C 3C01BF80 */ lui $at, 0xbf80
/* D630 80032230 44810000 */ mtc1 $at, $f0
/* D634 80032234 44072000 */ mfc1 $a3, $f4
/* D638 80032238 27A20038 */ addiu $v0, $sp, 0x38
/* D63C 8003223C AFBF005C */ sw $ra, 0x5c($sp)
/* D640 80032240 E7A20044 */ swc1 $f2, 0x44($sp)
/* D644 80032244 AFA20018 */ sw $v0, 0x18($sp)
/* D648 80032248 27A2003C */ addiu $v0, $sp, 0x3c
/* D64C 8003224C AFA2001C */ sw $v0, 0x1c($sp)
/* D650 80032250 27A20040 */ addiu $v0, $sp, 0x40
/* D654 80032254 AFA20020 */ sw $v0, 0x20($sp)
/* D658 80032258 27A20044 */ addiu $v0, $sp, 0x44
/* D65C 8003225C AFA20024 */ sw $v0, 0x24($sp)
/* D660 80032260 27A20048 */ addiu $v0, $sp, 0x48
/* D664 80032264 AFA20028 */ sw $v0, 0x28($sp)
/* D668 80032268 27A2004C */ addiu $v0, $sp, 0x4c
/* D66C 8003226C AFA2002C */ sw $v0, 0x2c($sp)
/* D670 80032270 27A20050 */ addiu $v0, $sp, 0x50
/* D674 80032274 E7A00010 */ swc1 $f0, 0x10($sp)
/* D678 80032278 E7A40014 */ swc1 $f4, 0x14($sp)
/* D67C 8003227C 0C017449 */ jal test_ray_zones
/* D680 80032280 AFA20030 */ sw $v0, 0x30($sp)
/* D684 80032284 0040202D */ daddu $a0, $v0, $zero
/* D688 80032288 04800010 */ bltz $a0, .L800322CC
/* D68C 8003228C 0000102D */ daddu $v0, $zero, $zero
/* D690 80032290 12000007 */ beqz $s0, .L800322B0
/* D694 80032294 000410C0 */ sll $v0, $a0, 3
/* D698 80032298 00441023 */ subu $v0, $v0, $a0
/* D69C 8003229C 3C03800E */ lui $v1, %hi(D_800D91D4)
/* D6A0 800322A0 8C6391D4 */ lw $v1, %lo(D_800D91D4)($v1)
/* D6A4 800322A4 00021080 */ sll $v0, $v0, 2
/* D6A8 800322A8 00621821 */ addu $v1, $v1, $v0
/* D6AC 800322AC AE030000 */ sw $v1, ($s0)
.L800322B0:
/* D6B0 800322B0 000410C0 */ sll $v0, $a0, 3
/* D6B4 800322B4 00441023 */ subu $v0, $v0, $a0
/* D6B8 800322B8 3C03800E */ lui $v1, %hi(D_800D91D4)
/* D6BC 800322BC 8C6391D4 */ lw $v1, %lo(D_800D91D4)($v1)
/* D6C0 800322C0 00021080 */ sll $v0, $v0, 2
/* D6C4 800322C4 00431021 */ addu $v0, $v0, $v1
/* D6C8 800322C8 8C420010 */ lw $v0, 0x10($v0)
.L800322CC:
/* D6CC 800322CC 8FBF005C */ lw $ra, 0x5c($sp)
/* D6D0 800322D0 8FB00058 */ lw $s0, 0x58($sp)
/* D6D4 800322D4 03E00008 */ jr $ra
/* D6D8 800322D8 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,162 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel AdjustCam
/* F1010 802CC660 27BDFF58 */ addiu $sp, $sp, -0xa8
/* F1014 802CC664 AFB10064 */ sw $s1, 0x64($sp)
/* F1018 802CC668 0080882D */ daddu $s1, $a0, $zero
/* F101C 802CC66C AFB20068 */ sw $s2, 0x68($sp)
/* F1020 802CC670 00A0902D */ daddu $s2, $a1, $zero
/* F1024 802CC674 AFBF0070 */ sw $ra, 0x70($sp)
/* F1028 802CC678 AFB3006C */ sw $s3, 0x6c($sp)
/* F102C 802CC67C AFB00060 */ sw $s0, 0x60($sp)
/* F1030 802CC680 F7BE00A0 */ sdc1 $f30, 0xa0($sp)
/* F1034 802CC684 F7BC0098 */ sdc1 $f28, 0x98($sp)
/* F1038 802CC688 F7BA0090 */ sdc1 $f26, 0x90($sp)
/* F103C 802CC68C F7B80088 */ sdc1 $f24, 0x88($sp)
/* F1040 802CC690 F7B60080 */ sdc1 $f22, 0x80($sp)
/* F1044 802CC694 F7B40078 */ sdc1 $f20, 0x78($sp)
/* F1048 802CC698 8E30000C */ lw $s0, 0xc($s1)
/* F104C 802CC69C 8E050000 */ lw $a1, ($s0)
/* F1050 802CC6A0 0C0B1EAF */ jal evt_get_variable
/* F1054 802CC6A4 26100004 */ addiu $s0, $s0, 4
/* F1058 802CC6A8 8E050000 */ lw $a1, ($s0)
/* F105C 802CC6AC 26100004 */ addiu $s0, $s0, 4
/* F1060 802CC6B0 0220202D */ daddu $a0, $s1, $zero
/* F1064 802CC6B4 3C06800B */ lui $a2, %hi(gCameras)
/* F1068 802CC6B8 24C61D80 */ addiu $a2, $a2, %lo(gCameras)
/* F106C 802CC6BC 00021880 */ sll $v1, $v0, 2
/* F1070 802CC6C0 00621821 */ addu $v1, $v1, $v0
/* F1074 802CC6C4 00031880 */ sll $v1, $v1, 2
/* F1078 802CC6C8 00621823 */ subu $v1, $v1, $v0
/* F107C 802CC6CC 000310C0 */ sll $v0, $v1, 3
/* F1080 802CC6D0 00621821 */ addu $v1, $v1, $v0
/* F1084 802CC6D4 000318C0 */ sll $v1, $v1, 3
/* F1088 802CC6D8 0C0B210B */ jal evt_get_float_variable
/* F108C 802CC6DC 00669821 */ addu $s3, $v1, $a2
/* F1090 802CC6E0 8E050000 */ lw $a1, ($s0)
/* F1094 802CC6E4 26100004 */ addiu $s0, $s0, 4
/* F1098 802CC6E8 0220202D */ daddu $a0, $s1, $zero
/* F109C 802CC6EC 0C0B210B */ jal evt_get_float_variable
/* F10A0 802CC6F0 E7A00054 */ swc1 $f0, 0x54($sp)
/* F10A4 802CC6F4 8E050000 */ lw $a1, ($s0)
/* F10A8 802CC6F8 26100004 */ addiu $s0, $s0, 4
/* F10AC 802CC6FC 0220202D */ daddu $a0, $s1, $zero
/* F10B0 802CC700 0C0B210B */ jal evt_get_float_variable
/* F10B4 802CC704 E7A00058 */ swc1 $f0, 0x58($sp)
/* F10B8 802CC708 8E050000 */ lw $a1, ($s0)
/* F10BC 802CC70C 26100004 */ addiu $s0, $s0, 4
/* F10C0 802CC710 0220202D */ daddu $a0, $s1, $zero
/* F10C4 802CC714 0C0B210B */ jal evt_get_float_variable
/* F10C8 802CC718 46000786 */ mov.s $f30, $f0
/* F10CC 802CC71C 0220202D */ daddu $a0, $s1, $zero
/* F10D0 802CC720 8E050000 */ lw $a1, ($s0)
/* F10D4 802CC724 0C0B210B */ jal evt_get_float_variable
/* F10D8 802CC728 46000706 */ mov.s $f28, $f0
/* F10DC 802CC72C 3C038011 */ lui $v1, %hi(gPlayerStatus)
/* F10E0 802CC730 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus)
/* F10E4 802CC734 1240004E */ beqz $s2, .L802CC870
/* F10E8 802CC738 46000686 */ mov.s $f26, $f0
/* F10EC 802CC73C 3C0146FF */ lui $at, 0x46ff
/* F10F0 802CC740 3421FE00 */ ori $at, $at, 0xfe00
/* F10F4 802CC744 44811000 */ mtc1 $at, $f2
/* F10F8 802CC748 44802000 */ mtc1 $zero, $f4
/* F10FC 802CC74C 3C01BF80 */ lui $at, 0xbf80
/* F1100 802CC750 44810000 */ mtc1 $at, $f0
/* F1104 802CC754 3C014120 */ lui $at, 0x4120
/* F1108 802CC758 44817000 */ mtc1 $at, $f14
/* F110C 802CC75C 27A20038 */ addiu $v0, $sp, 0x38
/* F1110 802CC760 E7A20044 */ swc1 $f2, 0x44($sp)
/* F1114 802CC764 AFA20018 */ sw $v0, 0x18($sp)
/* F1118 802CC768 27A2003C */ addiu $v0, $sp, 0x3c
/* F111C 802CC76C AFA2001C */ sw $v0, 0x1c($sp)
/* F1120 802CC770 27A20040 */ addiu $v0, $sp, 0x40
/* F1124 802CC774 AFA20020 */ sw $v0, 0x20($sp)
/* F1128 802CC778 27A20044 */ addiu $v0, $sp, 0x44
/* F112C 802CC77C AFA20024 */ sw $v0, 0x24($sp)
/* F1130 802CC780 27A20048 */ addiu $v0, $sp, 0x48
/* F1134 802CC784 AFA20028 */ sw $v0, 0x28($sp)
/* F1138 802CC788 27A2004C */ addiu $v0, $sp, 0x4c
/* F113C 802CC78C E7A00010 */ swc1 $f0, 0x10($sp)
/* F1140 802CC790 E7A40014 */ swc1 $f4, 0x14($sp)
/* F1144 802CC794 AFA2002C */ sw $v0, 0x2c($sp)
/* F1148 802CC798 C476002C */ lwc1 $f22, 0x2c($v1)
/* F114C 802CC79C 27A20050 */ addiu $v0, $sp, 0x50
/* F1150 802CC7A0 AFA20030 */ sw $v0, 0x30($sp)
/* F1154 802CC7A4 C4740030 */ lwc1 $f20, 0x30($v1)
/* F1158 802CC7A8 C4780028 */ lwc1 $f24, 0x28($v1)
/* F115C 802CC7AC 44072000 */ mfc1 $a3, $f4
/* F1160 802CC7B0 460EB380 */ add.s $f14, $f22, $f14
/* F1164 802CC7B4 4406A000 */ mfc1 $a2, $f20
/* F1168 802CC7B8 0C017449 */ jal test_ray_zones
/* F116C 802CC7BC 4600C306 */ mov.s $f12, $f24
/* F1170 802CC7C0 0040182D */ daddu $v1, $v0, $zero
/* F1174 802CC7C4 0460001A */ bltz $v1, .L802CC830
/* F1178 802CC7C8 000310C0 */ sll $v0, $v1, 3
/* F117C 802CC7CC 00431023 */ subu $v0, $v0, $v1
/* F1180 802CC7D0 3C03800E */ lui $v1, %hi(D_800D91D4)
/* F1184 802CC7D4 8C6391D4 */ lw $v1, %lo(D_800D91D4)($v1)
/* F1188 802CC7D8 00021080 */ sll $v0, $v0, 2
/* F118C 802CC7DC 00431021 */ addu $v0, $v0, $v1
/* F1190 802CC7E0 8C420010 */ lw $v0, 0x10($v0)
/* F1194 802CC7E4 266304D8 */ addiu $v1, $s3, 0x4d8
/* F1198 802CC7E8 24440020 */ addiu $a0, $v0, 0x20
.L802CC7EC:
/* F119C 802CC7EC 8C480000 */ lw $t0, ($v0)
/* F11A0 802CC7F0 8C490004 */ lw $t1, 4($v0)
/* F11A4 802CC7F4 8C4A0008 */ lw $t2, 8($v0)
/* F11A8 802CC7F8 8C4B000C */ lw $t3, 0xc($v0)
/* F11AC 802CC7FC AC680000 */ sw $t0, ($v1)
/* F11B0 802CC800 AC690004 */ sw $t1, 4($v1)
/* F11B4 802CC804 AC6A0008 */ sw $t2, 8($v1)
/* F11B8 802CC808 AC6B000C */ sw $t3, 0xc($v1)
/* F11BC 802CC80C 24420010 */ addiu $v0, $v0, 0x10
/* F11C0 802CC810 1444FFF6 */ bne $v0, $a0, .L802CC7EC
/* F11C4 802CC814 24630010 */ addiu $v1, $v1, 0x10
/* F11C8 802CC818 8C480000 */ lw $t0, ($v0)
/* F11CC 802CC81C 8C490004 */ lw $t1, 4($v0)
/* F11D0 802CC820 8C4A0008 */ lw $t2, 8($v0)
/* F11D4 802CC824 AC680000 */ sw $t0, ($v1)
/* F11D8 802CC828 AC690004 */ sw $t1, 4($v1)
/* F11DC 802CC82C AC6A0008 */ sw $t2, 8($v1)
.L802CC830:
/* F11E0 802CC830 E67604B4 */ swc1 $f22, 0x4b4($s3)
/* F11E4 802CC834 E67404B8 */ swc1 $f20, 0x4b8($s3)
/* F11E8 802CC838 E67E04DC */ swc1 $f30, 0x4dc($s3)
/* F11EC 802CC83C E67C04E0 */ swc1 $f28, 0x4e0($s3)
/* F11F0 802CC840 E67A04FC */ swc1 $f26, 0x4fc($s3)
/* F11F4 802CC844 C7A60054 */ lwc1 $f6, 0x54($sp)
/* F11F8 802CC848 24030001 */ addiu $v1, $zero, 1
/* F11FC 802CC84C E6660490 */ swc1 $f6, 0x490($s3)
/* F1200 802CC850 A6630506 */ sh $v1, 0x506($s3)
/* F1204 802CC854 C7A60058 */ lwc1 $f6, 0x58($sp)
/* F1208 802CC858 0000102D */ daddu $v0, $zero, $zero
/* F120C 802CC85C 4606C000 */ add.s $f0, $f24, $f6
/* F1210 802CC860 A6630504 */ sh $v1, 0x504($s3)
/* F1214 802CC864 AE600508 */ sw $zero, 0x508($s3)
/* F1218 802CC868 080B3225 */ j .L802CC894
/* F121C 802CC86C E66004B0 */ swc1 $f0, 0x4b0($s3)
.L802CC870:
/* F1220 802CC870 C6620484 */ lwc1 $f2, 0x484($s3)
/* F1224 802CC874 3C013F80 */ lui $at, 0x3f80
/* F1228 802CC878 44810000 */ mtc1 $at, $f0
/* F122C 802CC87C 00000000 */ nop
/* F1230 802CC880 4602003E */ c.le.s $f0, $f2
/* F1234 802CC884 00000000 */ nop
/* F1238 802CC888 45010002 */ bc1t .L802CC894
/* F123C 802CC88C 24020002 */ addiu $v0, $zero, 2
/* F1240 802CC890 0000102D */ daddu $v0, $zero, $zero
.L802CC894:
/* F1244 802CC894 8FBF0070 */ lw $ra, 0x70($sp)
/* F1248 802CC898 8FB3006C */ lw $s3, 0x6c($sp)
/* F124C 802CC89C 8FB20068 */ lw $s2, 0x68($sp)
/* F1250 802CC8A0 8FB10064 */ lw $s1, 0x64($sp)
/* F1254 802CC8A4 8FB00060 */ lw $s0, 0x60($sp)
/* F1258 802CC8A8 D7BE00A0 */ ldc1 $f30, 0xa0($sp)
/* F125C 802CC8AC D7BC0098 */ ldc1 $f28, 0x98($sp)
/* F1260 802CC8B0 D7BA0090 */ ldc1 $f26, 0x90($sp)
/* F1264 802CC8B4 D7B80088 */ ldc1 $f24, 0x88($sp)
/* F1268 802CC8B8 D7B60080 */ ldc1 $f22, 0x80($sp)
/* F126C 802CC8BC D7B40078 */ ldc1 $f20, 0x78($sp)
/* F1270 802CC8C0 03E00008 */ jr $ra
/* F1274 802CC8C4 27BD00A8 */ addiu $sp, $sp, 0xa8

View File

@ -1,165 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetCamProperties
/* F0D9C 802CC3EC 27BDFF60 */ addiu $sp, $sp, -0xa0
/* F0DA0 802CC3F0 AFB1005C */ sw $s1, 0x5c($sp)
/* F0DA4 802CC3F4 0080882D */ daddu $s1, $a0, $zero
/* F0DA8 802CC3F8 AFB20060 */ sw $s2, 0x60($sp)
/* F0DAC 802CC3FC 00A0902D */ daddu $s2, $a1, $zero
/* F0DB0 802CC400 AFBF0068 */ sw $ra, 0x68($sp)
/* F0DB4 802CC404 AFB30064 */ sw $s3, 0x64($sp)
/* F0DB8 802CC408 AFB00058 */ sw $s0, 0x58($sp)
/* F0DBC 802CC40C F7BE0098 */ sdc1 $f30, 0x98($sp)
/* F0DC0 802CC410 F7BC0090 */ sdc1 $f28, 0x90($sp)
/* F0DC4 802CC414 F7BA0088 */ sdc1 $f26, 0x88($sp)
/* F0DC8 802CC418 F7B80080 */ sdc1 $f24, 0x80($sp)
/* F0DCC 802CC41C F7B60078 */ sdc1 $f22, 0x78($sp)
/* F0DD0 802CC420 F7B40070 */ sdc1 $f20, 0x70($sp)
/* F0DD4 802CC424 8E30000C */ lw $s0, 0xc($s1)
/* F0DD8 802CC428 8E050000 */ lw $a1, ($s0)
/* F0DDC 802CC42C 0C0B1EAF */ jal evt_get_variable
/* F0DE0 802CC430 26100004 */ addiu $s0, $s0, 4
/* F0DE4 802CC434 8E050000 */ lw $a1, ($s0)
/* F0DE8 802CC438 26100004 */ addiu $s0, $s0, 4
/* F0DEC 802CC43C 0220202D */ daddu $a0, $s1, $zero
/* F0DF0 802CC440 3C06800B */ lui $a2, %hi(gCameras)
/* F0DF4 802CC444 24C61D80 */ addiu $a2, $a2, %lo(gCameras)
/* F0DF8 802CC448 00021880 */ sll $v1, $v0, 2
/* F0DFC 802CC44C 00621821 */ addu $v1, $v1, $v0
/* F0E00 802CC450 00031880 */ sll $v1, $v1, 2
/* F0E04 802CC454 00621823 */ subu $v1, $v1, $v0
/* F0E08 802CC458 000310C0 */ sll $v0, $v1, 3
/* F0E0C 802CC45C 00621821 */ addu $v1, $v1, $v0
/* F0E10 802CC460 000318C0 */ sll $v1, $v1, 3
/* F0E14 802CC464 0C0B210B */ jal evt_get_float_variable
/* F0E18 802CC468 00669821 */ addu $s3, $v1, $a2
/* F0E1C 802CC46C 8E050000 */ lw $a1, ($s0)
/* F0E20 802CC470 26100004 */ addiu $s0, $s0, 4
/* F0E24 802CC474 0220202D */ daddu $a0, $s1, $zero
/* F0E28 802CC478 0C0B210B */ jal evt_get_float_variable
/* F0E2C 802CC47C E7A00054 */ swc1 $f0, 0x54($sp)
/* F0E30 802CC480 8E050000 */ lw $a1, ($s0)
/* F0E34 802CC484 26100004 */ addiu $s0, $s0, 4
/* F0E38 802CC488 0220202D */ daddu $a0, $s1, $zero
/* F0E3C 802CC48C 0C0B210B */ jal evt_get_float_variable
/* F0E40 802CC490 46000606 */ mov.s $f24, $f0
/* F0E44 802CC494 8E050000 */ lw $a1, ($s0)
/* F0E48 802CC498 26100004 */ addiu $s0, $s0, 4
/* F0E4C 802CC49C 0220202D */ daddu $a0, $s1, $zero
/* F0E50 802CC4A0 0C0B210B */ jal evt_get_float_variable
/* F0E54 802CC4A4 46000586 */ mov.s $f22, $f0
/* F0E58 802CC4A8 8E050000 */ lw $a1, ($s0)
/* F0E5C 802CC4AC 26100004 */ addiu $s0, $s0, 4
/* F0E60 802CC4B0 0220202D */ daddu $a0, $s1, $zero
/* F0E64 802CC4B4 0C0B210B */ jal evt_get_float_variable
/* F0E68 802CC4B8 46000506 */ mov.s $f20, $f0
/* F0E6C 802CC4BC 8E050000 */ lw $a1, ($s0)
/* F0E70 802CC4C0 26100004 */ addiu $s0, $s0, 4
/* F0E74 802CC4C4 0220202D */ daddu $a0, $s1, $zero
/* F0E78 802CC4C8 0C0B210B */ jal evt_get_float_variable
/* F0E7C 802CC4CC 46000786 */ mov.s $f30, $f0
/* F0E80 802CC4D0 0220202D */ daddu $a0, $s1, $zero
/* F0E84 802CC4D4 8E050000 */ lw $a1, ($s0)
/* F0E88 802CC4D8 0C0B210B */ jal evt_get_float_variable
/* F0E8C 802CC4DC 46000706 */ mov.s $f28, $f0
/* F0E90 802CC4E0 12400049 */ beqz $s2, .L802CC608
/* F0E94 802CC4E4 46000686 */ mov.s $f26, $f0
/* F0E98 802CC4E8 27A20038 */ addiu $v0, $sp, 0x38
/* F0E9C 802CC4EC 3C0146FF */ lui $at, 0x46ff
/* F0EA0 802CC4F0 3421FE00 */ ori $at, $at, 0xfe00
/* F0EA4 802CC4F4 44811000 */ mtc1 $at, $f2
/* F0EA8 802CC4F8 44802000 */ mtc1 $zero, $f4
/* F0EAC 802CC4FC 3C01BF80 */ lui $at, 0xbf80
/* F0EB0 802CC500 44810000 */ mtc1 $at, $f0
/* F0EB4 802CC504 3C014120 */ lui $at, 0x4120
/* F0EB8 802CC508 44817000 */ mtc1 $at, $f14
/* F0EBC 802CC50C 4406A000 */ mfc1 $a2, $f20
/* F0EC0 802CC510 4600C306 */ mov.s $f12, $f24
/* F0EC4 802CC514 E7A20044 */ swc1 $f2, 0x44($sp)
/* F0EC8 802CC518 AFA20018 */ sw $v0, 0x18($sp)
/* F0ECC 802CC51C 27A2003C */ addiu $v0, $sp, 0x3c
/* F0ED0 802CC520 AFA2001C */ sw $v0, 0x1c($sp)
/* F0ED4 802CC524 27A20040 */ addiu $v0, $sp, 0x40
/* F0ED8 802CC528 AFA20020 */ sw $v0, 0x20($sp)
/* F0EDC 802CC52C 27A20044 */ addiu $v0, $sp, 0x44
/* F0EE0 802CC530 AFA20024 */ sw $v0, 0x24($sp)
/* F0EE4 802CC534 27A20048 */ addiu $v0, $sp, 0x48
/* F0EE8 802CC538 AFA20028 */ sw $v0, 0x28($sp)
/* F0EEC 802CC53C 27A2004C */ addiu $v0, $sp, 0x4c
/* F0EF0 802CC540 AFA2002C */ sw $v0, 0x2c($sp)
/* F0EF4 802CC544 27A20050 */ addiu $v0, $sp, 0x50
/* F0EF8 802CC548 44072000 */ mfc1 $a3, $f4
/* F0EFC 802CC54C 460EB380 */ add.s $f14, $f22, $f14
/* F0F00 802CC550 E7A00010 */ swc1 $f0, 0x10($sp)
/* F0F04 802CC554 E7A40014 */ swc1 $f4, 0x14($sp)
/* F0F08 802CC558 0C017449 */ jal test_ray_zones
/* F0F0C 802CC55C AFA20030 */ sw $v0, 0x30($sp)
/* F0F10 802CC560 0040182D */ daddu $v1, $v0, $zero
/* F0F14 802CC564 0460001A */ bltz $v1, .L802CC5D0
/* F0F18 802CC568 000310C0 */ sll $v0, $v1, 3
/* F0F1C 802CC56C 00431023 */ subu $v0, $v0, $v1
/* F0F20 802CC570 3C03800E */ lui $v1, %hi(D_800D91D4)
/* F0F24 802CC574 8C6391D4 */ lw $v1, %lo(D_800D91D4)($v1)
/* F0F28 802CC578 00021080 */ sll $v0, $v0, 2
/* F0F2C 802CC57C 00431021 */ addu $v0, $v0, $v1
/* F0F30 802CC580 8C420010 */ lw $v0, 0x10($v0)
/* F0F34 802CC584 266304D8 */ addiu $v1, $s3, 0x4d8
/* F0F38 802CC588 24440020 */ addiu $a0, $v0, 0x20
.L802CC58C:
/* F0F3C 802CC58C 8C480000 */ lw $t0, ($v0)
/* F0F40 802CC590 8C490004 */ lw $t1, 4($v0)
/* F0F44 802CC594 8C4A0008 */ lw $t2, 8($v0)
/* F0F48 802CC598 8C4B000C */ lw $t3, 0xc($v0)
/* F0F4C 802CC59C AC680000 */ sw $t0, ($v1)
/* F0F50 802CC5A0 AC690004 */ sw $t1, 4($v1)
/* F0F54 802CC5A4 AC6A0008 */ sw $t2, 8($v1)
/* F0F58 802CC5A8 AC6B000C */ sw $t3, 0xc($v1)
/* F0F5C 802CC5AC 24420010 */ addiu $v0, $v0, 0x10
/* F0F60 802CC5B0 1444FFF6 */ bne $v0, $a0, .L802CC58C
/* F0F64 802CC5B4 24630010 */ addiu $v1, $v1, 0x10
/* F0F68 802CC5B8 8C480000 */ lw $t0, ($v0)
/* F0F6C 802CC5BC 8C490004 */ lw $t1, 4($v0)
/* F0F70 802CC5C0 8C4A0008 */ lw $t2, 8($v0)
/* F0F74 802CC5C4 AC680000 */ sw $t0, ($v1)
/* F0F78 802CC5C8 AC690004 */ sw $t1, 4($v1)
/* F0F7C 802CC5CC AC6A0008 */ sw $t2, 8($v1)
.L802CC5D0:
/* F0F80 802CC5D0 0000102D */ daddu $v0, $zero, $zero
/* F0F84 802CC5D4 E67804B0 */ swc1 $f24, 0x4b0($s3)
/* F0F88 802CC5D8 E67604B4 */ swc1 $f22, 0x4b4($s3)
/* F0F8C 802CC5DC E67404B8 */ swc1 $f20, 0x4b8($s3)
/* F0F90 802CC5E0 E67E04DC */ swc1 $f30, 0x4dc($s3)
/* F0F94 802CC5E4 E67C04E0 */ swc1 $f28, 0x4e0($s3)
/* F0F98 802CC5E8 E67A04FC */ swc1 $f26, 0x4fc($s3)
/* F0F9C 802CC5EC C7A60054 */ lwc1 $f6, 0x54($sp)
/* F0FA0 802CC5F0 24030001 */ addiu $v1, $zero, 1
/* F0FA4 802CC5F4 E6660490 */ swc1 $f6, 0x490($s3)
/* F0FA8 802CC5F8 A6630506 */ sh $v1, 0x506($s3)
/* F0FAC 802CC5FC A6630504 */ sh $v1, 0x504($s3)
/* F0FB0 802CC600 080B318B */ j .L802CC62C
/* F0FB4 802CC604 AE600508 */ sw $zero, 0x508($s3)
.L802CC608:
/* F0FB8 802CC608 C6620484 */ lwc1 $f2, 0x484($s3)
/* F0FBC 802CC60C 3C013F80 */ lui $at, 0x3f80
/* F0FC0 802CC610 44810000 */ mtc1 $at, $f0
/* F0FC4 802CC614 00000000 */ nop
/* F0FC8 802CC618 4602003E */ c.le.s $f0, $f2
/* F0FCC 802CC61C 00000000 */ nop
/* F0FD0 802CC620 45010002 */ bc1t .L802CC62C
/* F0FD4 802CC624 24020002 */ addiu $v0, $zero, 2
/* F0FD8 802CC628 0000102D */ daddu $v0, $zero, $zero
.L802CC62C:
/* F0FDC 802CC62C 8FBF0068 */ lw $ra, 0x68($sp)
/* F0FE0 802CC630 8FB30064 */ lw $s3, 0x64($sp)
/* F0FE4 802CC634 8FB20060 */ lw $s2, 0x60($sp)
/* F0FE8 802CC638 8FB1005C */ lw $s1, 0x5c($sp)
/* F0FEC 802CC63C 8FB00058 */ lw $s0, 0x58($sp)
/* F0FF0 802CC640 D7BE0098 */ ldc1 $f30, 0x98($sp)
/* F0FF4 802CC644 D7BC0090 */ ldc1 $f28, 0x90($sp)
/* F0FF8 802CC648 D7BA0088 */ ldc1 $f26, 0x88($sp)
/* F0FFC 802CC64C D7B80080 */ ldc1 $f24, 0x80($sp)
/* F1000 802CC650 D7B60078 */ ldc1 $f22, 0x78($sp)
/* F1004 802CC654 D7B40070 */ ldc1 $f20, 0x70($sp)
/* F1008 802CC658 03E00008 */ jr $ra
/* F100C 802CC65C 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -2555,9 +2555,6 @@ queue_render_task = 0x8011D910; // type:func rom:0xB4010
execute_render_tasks = 0x8011D9B8; // type:func rom:0xB40B8
animator_copy_vertices_to_buffer = 0x8011DE80; // type:func rom:0xB4580
gZoneCollisionData = 0x800D91D0; // type:data rom:0xB45D0
D_800D91D4 = 0x800D91D4; // type:data rom:0xB45D4
D_800D91D8 = 0x800D91D8; // type:data rom:0xB45D8
D_800D91DC = 0x800D91DC; // type:data rom:0xB45DC
wMapHitName = 0x800D91E0; // type:data rom:0xB45E0
nuSiMgrMesgQ = 0x800D91F8; // type:data rom:0xB45F8
wMapShapeName = 0x800D9230; // type:data rom:0xB4630