From dfb6c5b02c1d0c201d7201aa4b0b121d3f2d5683 Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Wed, 8 Nov 2023 00:52:09 +1100 Subject: [PATCH] Struct Returns (#1466) * change args * more funcs * cleanup * play cleanup * missed a file * weird warnings * missed some * fix func from honotrap --- include/functions.h | 34 +- src/code/cutscene_camera.c | 4 +- src/code/z_actor.c | 17 +- src/code/z_camera.c | 444 +++++++++--------- src/code/z_olib.c | 82 ++-- src/code/z_play.c | 30 +- src/code/z_quake.c | 10 +- src/code/z_room.c | 5 +- src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 2 +- .../actors/ovl_Oceff_Wipe/z_oceff_wipe.c | 4 +- .../actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c | 4 +- .../actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c | 4 +- .../actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c | 4 +- .../actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c | 2 +- .../actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c | 7 +- .../actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c | 4 +- 18 files changed, 303 insertions(+), 358 deletions(-) diff --git a/include/functions.h b/include/functions.h index 84c6c06152..0e0e3dcbb7 100644 --- a/include/functions.h +++ b/include/functions.h @@ -328,9 +328,9 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, Hilite* Hilite_DrawOpa(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx); void func_800B8050(Actor* actor, PlayState* play, s32 flag); void func_800B8118(Actor* actor, PlayState* play, s32 flag); -PosRot* Actor_GetFocus(PosRot* dest, Actor* actor); -PosRot* Actor_GetWorld(PosRot* dest, Actor* actor); -PosRot* Actor_GetWorldPosShapeRot(PosRot* dest, Actor* actor); +PosRot Actor_GetFocus(Actor* actor); +PosRot Actor_GetWorld(Actor* actor); +PosRot Actor_GetWorldPosShapeRot(Actor* actor); s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash); s32 Actor_ProcessTalkRequest(Actor* actor, GameState* gameState); @@ -479,10 +479,10 @@ s32 Camera_CheckValidMode(Camera* camera, s16 mode); s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags); s32 Camera_ChangeSetting(Camera* camera, s16 setting); s32 Camera_ChangeActorCsCamIndex(Camera* camera, s32 bgCamIndex); -Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera); +Vec3s Camera_GetInputDir(Camera* camera); s16 Camera_GetInputDirPitch(Camera* camera); s16 Camera_GetInputDirYaw(Camera* camera); -Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera); +Vec3s Camera_GetCamDir(Camera* camera); s16 Camera_GetCamDirPitch(Camera* camera); s16 Camera_GetCamDirYaw(Camera* camera); s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown); @@ -494,7 +494,7 @@ s16 Camera_UnsetStateFlag(Camera* camera, s16 flags); s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamIndex, f32 arg3, s16 timer1, s16 timer2, s16 timer3); s32 Camera_Copy(Camera* dstCam, Camera* srcCam); s32 Camera_IsDbgCamEnabled(void); -Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera); +Vec3f Camera_GetQuakeOffset(Camera* camera); void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3); s32 Camera_GetNegOne(void); s16 func_800E0238(Camera* camera); @@ -757,17 +757,17 @@ f32 OLib_Vec3fDistOutDiff(Vec3f* a, Vec3f* b, Vec3f* dest); f32 OLib_Vec3fDistXZ(Vec3f* a, Vec3f* b); f32 OLib_ClampMinDist(f32 val, f32 min); f32 OLib_ClampMaxDist(f32 val, f32 max); -Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b); -Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph); -Vec3f* OLib_VecGeoToVec3f(Vec3f* dest, VecGeo* geo); -VecSph* OLib_Vec3fToVecSph(VecSph* dest, Vec3f* vec); -VecGeo* OLib_Vec3fToVecGeo(VecGeo* dest, Vec3f* vec); -VecSph* OLib_Vec3fDiffToVecSph(VecSph* dest, Vec3f* a, Vec3f* b); -VecGeo* OLib_Vec3fDiffToVecGeo(VecGeo* dest, Vec3f* a, Vec3f* b); -Vec3f* OLib_AddVecGeoToVec3f(Vec3f* dest, Vec3f* a, VecGeo* geo); -Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b); -Vec3f* OLib_Vec3fDiffDegF(Vec3f* dest, Vec3f* a, Vec3f* b); -Vec3s* OLib_Vec3fDiffBinAng(Vec3s* dest, Vec3f* a, Vec3f* b); +Vec3f OLib_Vec3fDistNormalize(Vec3f* a, Vec3f* b); +Vec3f OLib_VecSphToVec3f(VecSph* sph); +Vec3f OLib_VecGeoToVec3f(VecGeo* geo); +VecSph OLib_Vec3fToVecSph(Vec3f* vec); +VecGeo OLib_Vec3fToVecGeo(Vec3f* vec); +VecSph OLib_Vec3fDiffToVecSph(Vec3f* a, Vec3f* b); +VecGeo OLib_Vec3fDiffToVecGeo(Vec3f* a, Vec3f* b); +Vec3f OLib_AddVecGeoToVec3f(Vec3f* a, VecGeo* geo); +Vec3f OLib_Vec3fDiffRad(Vec3f* a, Vec3f* b); +Vec3f OLib_Vec3fDiffDegF(Vec3f* a, Vec3f* b); +Vec3s OLib_Vec3fDiffBinAng(Vec3f* a, Vec3f* b); void OLib_Vec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode); void OLib_Vec3fAdd(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode); diff --git a/src/code/cutscene_camera.c b/src/code/cutscene_camera.c index 24f6fcc181..d5f3ef4a3b 100644 --- a/src/code/cutscene_camera.c +++ b/src/code/cutscene_camera.c @@ -516,9 +516,9 @@ s16 CutsceneCamera_Interp_Geo(Vec3f* camPos, f32* camFov, s16* camRoll, CsCmdCam interpState->curFrame++; if (camPos != NULL) { - OLib_Vec3fDiffToVecGeo(&sp40, &interpState->curPos, camPos); + sp40 = OLib_Vec3fDiffToVecGeo(&interpState->curPos, camPos); sp40.r = interpState->unk_20 / Math_FTanF(DEG_TO_RAD(*camFov)); - OLib_AddVecGeoToVec3f(camPos, &interpState->curPos, &sp40); + *camPos = OLib_AddVecGeoToVec3f(&interpState->curPos, &sp40); } if (camFov != NULL) { diff --git a/src/code/z_actor.c b/src/code/z_actor.c index aacee620b8..887e08dcd9 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1815,19 +1815,15 @@ void func_800B8118(Actor* actor, PlayState* play, s32 flag) { } } -PosRot* Actor_GetFocus(PosRot* dest, Actor* actor) { - *dest = actor->focus; - - return dest; +PosRot Actor_GetFocus(Actor* actor) { + return actor->focus; } -PosRot* Actor_GetWorld(PosRot* dest, Actor* actor) { - *dest = actor->world; - - return dest; +PosRot Actor_GetWorld(Actor* actor) { + return actor->world; } -PosRot* Actor_GetWorldPosShapeRot(PosRot* dest, Actor* actor) { +PosRot Actor_GetWorldPosShapeRot(Actor* actor) { PosRot sp1C; Math_Vec3f_Copy(&sp1C.pos, &actor->world.pos); @@ -1837,9 +1833,8 @@ PosRot* Actor_GetWorldPosShapeRot(PosRot* dest, Actor* actor) { sp1C.pos.y += player->unk_AC0 * actor->scale.y; } sp1C.rot = actor->shape.rot; - *dest = sp1C; - return dest; + return sp1C; } /** diff --git a/src/code/z_camera.c b/src/code/z_camera.c index a64793632a..b0721592a8 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -246,14 +246,13 @@ void Camera_SetUpdateRatesSlow(Camera* camera) { camera->fovUpdateRate = 0.01f; } -Vec3f* Camera_Vec3sToVec3f(Vec3f* dest, Vec3s* src) { - Vec3f copy; +Vec3f Camera_Vec3sToVec3f(Vec3s* src) { + Vec3f dest; - copy.x = src->x; - copy.y = src->y; - copy.z = src->z; + dest.x = src->x; + dest.y = src->y; + dest.z = src->z; - *dest = copy; return dest; } @@ -281,7 +280,7 @@ f32 Camera_GetFocalActorHeight(Camera* camera) { if (focalActor == &GET_PLAYER(camera->play)->actor) { focalActorHeight = Player_GetHeight((Player*)focalActor); } else { - Actor_GetFocus(&focalActorFocus, focalActor); + focalActorFocus = Actor_GetFocus(focalActor); focalActorHeight = focalActorFocus.pos.y - camera->focalActorPosRot.pos.y; if (focalActorHeight == 0.0f) { focalActorHeight = 10.0f; @@ -477,17 +476,15 @@ PlayerMeleeWeaponState func_800CBAAC(Camera* camera) { } } -Vec3f* Camera_GetFocalActorPos(Vec3f* dst, Camera* camera) { +Vec3f Camera_GetFocalActorPos(Camera* camera) { PosRot focalPosRot; Actor* focalActor = camera->focalActor; if (camera->focalActor == &GET_PLAYER(camera->play)->actor) { - *dst = ((Player*)focalActor)->bodyPartsPos[PLAYER_BODYPART_WAIST]; - return dst; + return ((Player*)focalActor)->bodyPartsPos[PLAYER_BODYPART_WAIST]; } else { - Actor_GetWorldPosShapeRot(&focalPosRot, camera->focalActor); - *dst = focalPosRot.pos; - return dst; + focalPosRot = Actor_GetWorldPosShapeRot(camera->focalActor); + return focalPosRot.pos; } } @@ -551,7 +548,7 @@ s32 func_800CBC84(Camera* camera, Vec3f* from, CameraCollision* to, s32 arg3) { CollisionPoly** floorPoly; s32 floorBgId; - OLib_Vec3fDistNormalize(&fromToNorm, from, &to->pos); + fromToNorm = OLib_Vec3fDistNormalize(from, &to->pos); toPoint.x = to->pos.x + fromToNorm.x; toPoint.y = to->pos.y + fromToNorm.y; toPoint.z = to->pos.z + fromToNorm.z; @@ -630,7 +627,7 @@ s32 Camera_BgCheckInfo(Camera* camera, Vec3f* from, CameraCollision* to) { return to->bgId + 1; } - OLib_Vec3fDistNormalize(&fromToNorm, from, &to->pos); + fromToNorm = OLib_Vec3fDistNormalize(from, &to->pos); to->norm.x = -fromToNorm.x; to->norm.y = -fromToNorm.y; to->norm.z = -fromToNorm.z; @@ -686,13 +683,13 @@ s16 func_800CC260(Camera* camera, Vec3f* arg1, Vec3f* arg2, VecGeo* arg3, Actor* s32 i; sp64 = *arg2; - Actor_GetFocus(&playerFocus, &player->actor); // playerFocus unused + playerFocus = Actor_GetFocus(&player->actor); // playerFocus unused sp90 = *arg3; angleCount = ARRAY_COUNT(D_801B9E18); for (i = 0; i < angleCount; i++) { - OLib_AddVecGeoToVec3f(arg1, arg2, &sp90); + *arg1 = OLib_AddVecGeoToVec3f(arg2, &sp90); if (!Camera_CheckOOB(camera, arg1, &sp64) && !func_800CBC30(camera, arg2->y, arg1->y) && !CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, arg2, arg1, exclusions, @@ -848,7 +845,7 @@ s32 Camera_GetWaterBoxBgCamSetting(Camera* camera, f32* waterY) { s32 camSetting; s32 bgId; - Actor_GetWorldPosShapeRot(&playerPosShape, camera->focalActor); + playerPosShape = Actor_GetWorldPosShapeRot(camera->focalActor); *waterY = playerPosShape.pos.y; if (!WaterBox_GetSurfaceImpl(camera->play, &camera->play->colCtx, playerPosShape.pos.x, playerPosShape.pos.z, @@ -1076,7 +1073,7 @@ f32 func_800CCCEC(Camera* camera, s16 reset) { /** * Calculates a new Up vector from the pitch, yaw, roll */ -Vec3f* Camera_CalcUpVec(Vec3f* viewUp, s16 pitch, s16 yaw, s16 roll) { +Vec3f Camera_CalcUpVec(s16 pitch, s16 yaw, s16 roll) { f32 sinP = Math_SinS(pitch); f32 cosP = Math_CosS(pitch); f32 sinY = Math_SinS(yaw); @@ -1119,9 +1116,7 @@ Vec3f* Camera_CalcUpVec(Vec3f* viewUp, s16 pitch, s16 yaw, s16 roll) { up.y = DOTXYZ(baseUp, rollMtxRow2); up.z = DOTXYZ(baseUp, rollMtxRow3); - *viewUp = up; - - return viewUp; + return up; } f32 Camera_ClampLerpScale(Camera* camera, f32 maxLerpScale) { @@ -1183,14 +1178,13 @@ void Camera_UpdateInterface(s32 interfaceFlags) { } } -Vec3f* Camera_BgCheckCorner(Vec3f* dst, Vec3f* linePointA, Vec3f* linePointB, CameraCollision* pointAColChk, - CameraCollision* pointBColChk) { +Vec3f Camera_BgCheckCorner(Vec3f* linePointA, Vec3f* linePointB, CameraCollision* pointAColChk, + CameraCollision* pointBColChk) { Vec3f closestPoint; func_800CAA14(pointAColChk->poly, pointBColChk->poly, linePointA, linePointB, &closestPoint); - *dst = closestPoint; - return dst; + return closestPoint; } /** @@ -1221,7 +1215,7 @@ s32 func_800CD44C(Camera* camera, VecGeo* diffGeo, CameraCollision* camEyeCollis // collision found between at->ey camAtCollision->pos = *at; - OLib_Vec3fToVecGeo(&camEyeCollision->geoNorm, &camEyeCollision->norm); + camEyeCollision->geoNorm = OLib_Vec3fToVecGeo(&camEyeCollision->norm); if (camEyeCollision->geoNorm.pitch > 0x2EE0) { // 65.9 degrees camEyeCollision->geoNorm.yaw = diffGeo->yaw; @@ -1247,7 +1241,7 @@ s32 func_800CD44C(Camera* camera, VecGeo* diffGeo, CameraCollision* camEyeCollis return 3; } - OLib_Vec3fToVecGeo(&camAtCollision->geoNorm, &camAtCollision->norm); + camAtCollision->geoNorm = OLib_Vec3fToVecGeo(&camAtCollision->norm); if (camAtCollision->geoNorm.pitch > 0x2EE0) { // 65.9 degrees camAtCollision->geoNorm.yaw = BINANG_ROT180(diffGeo->yaw); @@ -1277,7 +1271,7 @@ f32 Camera_CalcSlopeYAdj(Vec3f* floorNorm, s16 playerYRot, s16 eyeAtYaw, f32 adj f32 tmp; VecGeo floorNormGeo; - OLib_Vec3fToVecGeo(&floorNormGeo, floorNorm); + floorNormGeo = OLib_Vec3fToVecGeo(floorNorm); tmp = Math_CosS(floorNormGeo.pitch) * Math_CosS(playerYRot - floorNormGeo.yaw); @@ -1425,7 +1419,7 @@ s32 Camera_CalcAtForParallel(Camera* camera, VecGeo* arg1, f32 yOffset, f32 xzOf focalActorAtOffsetTargetGeo.r = func_800CCCEC(camera, flags & 0x10); focalActorAtOffsetTargetGeo.yaw = focalActorPosRot->rot.y + 0x4000; focalActorAtOffsetTargetGeo.pitch = 0; - OLib_VecGeoToVec3f(&focalActorAtOffsetTarget, &focalActorAtOffsetTargetGeo); + focalActorAtOffsetTarget = OLib_VecGeoToVec3f(&focalActorAtOffsetTargetGeo); } else { f32 xOffset = camera->focalActorAtOffset.x + camera->unk_0F0.x; f32 zOffset = camera->focalActorAtOffset.z + camera->unk_0F0.z; @@ -1512,9 +1506,9 @@ s32 Camera_CalcAtForFriendlyLockOn(Camera* camera, VecGeo* eyeAtDir, Vec3f* targ atTarget = focalActorPosRot->pos; atTarget.y += focalActorHeight; - OLib_Vec3fDiffToVecGeo(outPlayerToTargetDir, &atTarget, targetPos); - + *outPlayerToTargetDir = OLib_Vec3fDiffToVecGeo(&atTarget, targetPos); sp5C = *outPlayerToTargetDir; + sp5C.r = (distance < sp5C.r) ? (sp5C.r * 0.2f) : ((sp5C.r * 0.9f) - (sp5C.r * 0.7f * (sp5C.r / distance))); if (flags & FLG_OFFGROUND) { @@ -1522,7 +1516,7 @@ s32 Camera_CalcAtForFriendlyLockOn(Camera* camera, VecGeo* eyeAtDir, Vec3f* targ camera->yOffsetUpdateRate = camera->xzOffsetUpdateRate = 0.01f; } - OLib_VecGeoToVec3f(&sp68, &sp5C); + sp68 = OLib_VecGeoToVec3f(&sp5C); focalActorAtOffsetTarget.x += sp68.x; focalActorAtOffsetTarget.y += sp68.y; @@ -1604,7 +1598,7 @@ s32 Camera_CalcAtForEnemyLockOn(Camera* camera, VecGeo* arg1, Vec3f* arg2, f32 y camera->xzOffsetUpdateRate = 0.01f; } - OLib_VecGeoToVec3f(&sp60, &sp58); + sp60 = OLib_VecGeoToVec3f(&sp58); focalActorAtOffsetTarget.x += sp60.x; focalActorAtOffsetTarget.y += sp60.y; @@ -1672,7 +1666,7 @@ s32 Camera_CalcAtForHorse(Camera* camera, VecGeo* eyeAtDir, f32 yOffset, f32* yP Player* player = (Player*)camera->focalActor; PosRot horsePosRot; - Actor_GetWorld(&horsePosRot, player->rideActor); + horsePosRot = Actor_GetWorld(player->rideActor); if (EN_HORSE_CHECK_JUMPING((EnHorse*)player->rideActor)) { horsePosRot.pos.y -= 49.0f; @@ -1891,8 +1885,8 @@ void Camera_CalcDefaultSwing(Camera* camera, VecGeo* arg1, VecGeo* arg2, f32 arg switch (sp8C) { case 1: - Camera_BgCheckCorner(&swing->collisionClosePoint, &camera->at, &camera->eyeNext, &swing->atEyeColChk, - &swing->eyeAtColChk); + swing->collisionClosePoint = + Camera_BgCheckCorner(&camera->at, &camera->eyeNext, &swing->atEyeColChk, &swing->eyeAtColChk); // fallthrough case 2: peekAroundPoint.x = swing->collisionClosePoint.x + (swing->atEyeColChk.norm.x + swing->eyeAtColChk.norm.x); @@ -1900,11 +1894,11 @@ void Camera_CalcDefaultSwing(Camera* camera, VecGeo* arg1, VecGeo* arg2, f32 arg peekAroundPoint.z = swing->collisionClosePoint.z + (swing->atEyeColChk.norm.z + swing->eyeAtColChk.norm.z); sp30 = &camera->eyeNext; - OLib_Vec3fDiffToVecGeo(&sp50, at, &peekAroundPoint); + sp50 = OLib_Vec3fDiffToVecGeo(at, &peekAroundPoint); sp50.r = arg1->r; swing->unk_64 = 1; swing->swingUpdateRate = 1.5f; - OLib_AddVecGeoToVec3f(&sp58.pos, at, &sp50); + sp58.pos = OLib_AddVecGeoToVec3f(at, &sp50); if (func_800CBC84(camera, &swing->eyeAtColChk.pos, &sp58, 0) == 0) { sp50.yaw = @@ -1934,12 +1928,12 @@ void Camera_CalcDefaultSwing(Camera* camera, VecGeo* arg1, VecGeo* arg2, f32 arg sp50.pitch = Math_CosS(swing->atEyeColChk.geoNorm.pitch) * 0x3FFC; } sp50.r = 60.0f - sp88; - OLib_AddVecGeoToVec3f(&sp58.pos, sp30, &sp50); + sp58.pos = OLib_AddVecGeoToVec3f(sp30, &sp50); } else { sp50.yaw = Camera_AngleDiffAndScale(arg1->yaw, arg2->yaw, camera->speedRatio) + arg2->yaw; sp50.pitch = Camera_AngleDiffAndScale(arg1->pitch, arg2->pitch, camera->speedRatio) + arg2->pitch; sp50.r = arg1->r; - OLib_AddVecGeoToVec3f(&sp58.pos, at, &sp50); + sp58.pos = OLib_AddVecGeoToVec3f(at, &sp50); } func_800CBC84(camera, at, &sp58, 0); *eye = sp58.pos; @@ -2007,8 +2001,8 @@ s32 Camera_Normal1(Camera* camera) { sCameraInterfaceFlags = roData->interfaceFlags; - OLib_Vec3fDiffToVecGeo(&spA4, at, eye); - OLib_Vec3fDiffToVecGeo(&sp9C, at, eyeNext); + spA4 = OLib_Vec3fDiffToVecGeo(at, eye); + sp9C = OLib_Vec3fDiffToVecGeo(at, eyeNext); switch (camera->animState) { case 20: @@ -2168,7 +2162,7 @@ s32 Camera_Normal1(Camera* camera) { rwData->unk_10 = 120.0f; } - OLib_Vec3fDiffToVecGeo(&spB4, at, eyeNext); + spB4 = OLib_Vec3fDiffToVecGeo(at, eyeNext); if ((roData->interfaceFlags & NORMAL1_FLAG_7) && (rwData->unk_0A < 0)) { if (camera->focalActor == &GET_PLAYER(camera->play)->actor) { @@ -2225,7 +2219,7 @@ s32 Camera_Normal1(Camera* camera) { if (1) {} temp = &D_801ED920->world.pos; - OLib_Vec3fDiffToVecGeo(&sp74, &sp40->pos, temp); + sp74 = OLib_Vec3fDiffToVecGeo(&sp40->pos, temp); sp72 = sp40->rot.y - sp74.yaw; // Interface and shrink-window flags if ((roData->interfaceFlags & 0xFF00) == 0xFF00) { @@ -2252,7 +2246,7 @@ s32 Camera_Normal1(Camera* camera) { VecGeo sp64; if ((camera->speedRatio > 0.1f) || (rwData->unk_0A > 0x4B0)) { - OLib_Vec3fToVecGeo(&sp64, &camera->unk_0F0); + sp64 = OLib_Vec3fToVecGeo(&camera->unk_0F0); if (!(roData->interfaceFlags & NORMAL1_FLAG_3) || !func_800CB924(camera)) { spB4.yaw = Camera_CalcDefaultYaw(camera, sp9C.yaw, sp64.yaw, roData->unk_14, spC0); } @@ -2282,7 +2276,7 @@ s32 Camera_Normal1(Camera* camera) { spB4.pitch = -0x36B0; } - OLib_AddVecGeoToVec3f(eyeNext, at, &spB4); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB4); if ((camera->status == CAM_STATUS_ACTIVE) && !(roData->interfaceFlags & NORMAL1_FLAG_4) && (spC4 <= 0.9f)) { if (!func_800CBA7C(camera)) { @@ -2308,7 +2302,7 @@ s32 Camera_Normal1(Camera* camera) { } } - OLib_Vec3fDiffToVecGeo(&spAC, eye, at); + spAC = OLib_Vec3fDiffToVecGeo(eye, at); camera->inputDir.x = spAC.pitch; camera->inputDir.y = spAC.yaw; camera->inputDir.z = 0; @@ -2404,8 +2398,8 @@ s32 Camera_Normal3(Camera* camera) { roData->interfaceFlags = GET_NEXT_RO_DATA(values); } - OLib_Vec3fDiffToVecGeo(&sp70, at, eye); - OLib_Vec3fDiffToVecGeo(&sp68, at, eyeNext); + sp70 = OLib_Vec3fDiffToVecGeo(at, eye); + sp68 = OLib_Vec3fDiffToVecGeo(at, eyeNext); sUpdateCameraDirection = true; sCameraInterfaceFlags = roData->interfaceFlags; @@ -2470,7 +2464,7 @@ s32 Camera_Normal3(Camera* camera) { } sp88 = (roData->distMax + roData->distMin) * 0.5f; - OLib_Vec3fDiffToVecGeo(&sp80, at, eyeNext); + sp80 = OLib_Vec3fDiffToVecGeo(at, eyeNext); temp_f2 = Camera_ClampDist1(camera, sp80.r, roData->distMin, roData->distMax, rwData->distTimer); phi_f2 = sp88 - temp_f2; @@ -2495,7 +2489,7 @@ s32 Camera_Normal3(Camera* camera) { temp_f2 = 1.0f; } else { sp62 = BINANG_SUB(focalActorPosRot->rot.y, BINANG_ROT180(sp68.yaw)); - OLib_Vec3fToVecGeo(&sp78, &camera->unk_0F0); + sp78 = OLib_Vec3fToVecGeo(&camera->unk_0F0); phi_v1_2 = focalActorPosRot->rot.y - sp78.yaw; if (phi_v1_2 < 0) { phi_v1_2 *= -1; @@ -2521,7 +2515,7 @@ s32 Camera_Normal3(Camera* camera) { } } - OLib_AddVecGeoToVec3f(eyeNext, at, &sp80); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp80); if (camera->status == CAM_STATUS_ACTIVE) { *eye = *eyeNext; @@ -2610,7 +2604,7 @@ s32 Camera_Normal0(Camera* camera) { if (RELOAD_PARAMS(camera)) { bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamOrActorCsCamFuncData(camera, camera->bgCamIndex); - Camera_Vec3sToVec3f(&rwData->unk_00, &bgCamFuncData->pos); + rwData->unk_00 = Camera_Vec3sToVec3f(&bgCamFuncData->pos); rwData->unk_20 = bgCamFuncData->rot.x; rwData->unk_22 = bgCamFuncData->rot.y; rwData->unk_24 = focalActorPosRot->pos.y; @@ -2638,7 +2632,7 @@ s32 Camera_Normal0(Camera* camera) { sp88.pitch = rwData->unk_20; sp88.yaw = rwData->unk_22; sp88.r = 100.0f; - OLib_VecGeoToVec3f(&rwData->unk_0C, &sp88); + rwData->unk_0C = OLib_VecGeoToVec3f(&sp88); } camera->animState = 1; camera->yawUpdateRateInv = 50.0f; @@ -2650,8 +2644,8 @@ s32 Camera_Normal0(Camera* camera) { if (1) {} } - OLib_Vec3fDiffToVecGeo(&sp80, at, eye); - OLib_Vec3fDiffToVecGeo(&sp78, at, eyeNext); + sp80 = OLib_Vec3fDiffToVecGeo(at, eye); + sp78 = OLib_Vec3fDiffToVecGeo(at, eyeNext); camera->speedRatio *= 0.50f; spA4 = camera->speedRatio * 0.5f; @@ -2680,8 +2674,8 @@ s32 Camera_Normal0(Camera* camera) { } rwData->unk_00.y = focalActorPosRot->pos.y; - OLib_Vec3fDiffToVecGeo(&sp88, &rwData->unk_00, at); - OLib_Vec3fDiffToVecGeo(&sp90, at, eyeNext); + sp88 = OLib_Vec3fDiffToVecGeo(&rwData->unk_00, at); + sp90 = OLib_Vec3fDiffToVecGeo(at, eyeNext); if (rwData->unk_2C & 2) { phi_a1 = rwData->unk_22; @@ -2727,7 +2721,7 @@ s32 Camera_Normal0(Camera* camera) { sp98.pitch += ((s16)(-0x38E - sp98.pitch) >> 2); } } - OLib_AddVecGeoToVec3f(eyeNext, at, &sp98); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp98); *eye = *eyeNext; @@ -2736,7 +2730,7 @@ s32 Camera_Normal0(Camera* camera) { Camera_BgCheck(camera, at, eye); } else { func_800CBFA4(camera, at, eye, 3); - OLib_Vec3fDiffToVecGeo(&sp98, eye, at); + sp98 = OLib_Vec3fDiffToVecGeo(eye, at); camera->inputDir.x = sp98.pitch; camera->inputDir.y = sp98.yaw; camera->inputDir.z = 0; @@ -2800,9 +2794,9 @@ s32 Camera_Parallel1(Camera* camera) { rwData->unk_00 = roData->unk_04; } - OLib_Vec3fDiffToVecGeo(&sp80, at, eye); - OLib_Vec3fDiffToVecGeo(&sp78, at, eyeNext); - Camera_GetFocalActorPos(&spA4, camera); + sp80 = OLib_Vec3fDiffToVecGeo(at, eye); + sp78 = OLib_Vec3fDiffToVecGeo(at, eyeNext); + spA4 = Camera_GetFocalActorPos(camera); switch (camera->animState) { case 20: @@ -2831,7 +2825,7 @@ s32 Camera_Parallel1(Camera* camera) { camera->dist = 2.0f * roData->unk_04; sp78.r = camera->dist; sp80.r = sp78.r; - OLib_AddVecGeoToVec3f(eye, at, &sp80); + *eye = OLib_AddVecGeoToVec3f(at, &sp80); *eyeNext = *eye; } @@ -2895,7 +2889,7 @@ s32 Camera_Parallel1(Camera* camera) { case (PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1): if (rwData->timer3 == 1) { - OLib_Vec3fDiffToVecGeo(&sp88, &rwData->unk_10, &spA4); + sp88 = OLib_Vec3fDiffToVecGeo(&rwData->unk_10, &spA4); rwData->unk_1E = ((ABS(BINANG_SUB(sp88.yaw, sp80.yaw)) < 0x3A98) || Camera_IsClimbingLedge(camera)) ? sp80.yaw : sp80.yaw + (s16)((BINANG_SUB(sp88.yaw, sp80.yaw) >> 2) * 3); @@ -3025,7 +3019,7 @@ s32 Camera_Parallel1(Camera* camera) { sp90.r = camera->dist; } } else { - OLib_Vec3fDiffToVecGeo(&sp90, at, eyeNext); + sp90 = OLib_Vec3fDiffToVecGeo(at, eyeNext); sp90.r = camera->dist; if (roData->interfaceFlags & PARALLEL1_FLAG_1) { @@ -3061,7 +3055,7 @@ s32 Camera_Parallel1(Camera* camera) { rwData->timer3--; } - OLib_AddVecGeoToVec3f(eyeNext, at, &sp90); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp90); if (camera->status == CAM_STATUS_ACTIVE) { if ((camera->play->envCtx.skyboxDisabled == 0) || (roData->interfaceFlags & PARALLEL1_FLAG_4)) { @@ -3167,8 +3161,8 @@ s32 Camera_Jump2(Camera* camera) { roData->interfaceFlags = GET_NEXT_RO_DATA(values); } - OLib_Vec3fDiffToVecGeo(&sp9C, at, eye); - OLib_Vec3fDiffToVecGeo(&spA4, at, eyeNext); + sp9C = OLib_Vec3fDiffToVecGeo(at, eye); + spA4 = OLib_Vec3fDiffToVecGeo(at, eyeNext); sCameraInterfaceFlags = roData->interfaceFlags; @@ -3215,7 +3209,7 @@ s32 Camera_Jump2(Camera* camera) { camera->rUpdateRateInv = 1800.0f; Camera_CalcAtDefault(camera, &spA4, roData->unk_00, 0); - OLib_Vec3fDiffToVecGeo(&spB4, at, eye); + spB4 = OLib_Vec3fDiffToVecGeo(at, eye); //! FAKE: Unused yNormal = roData->unk_04; @@ -3271,7 +3265,7 @@ s32 Camera_Jump2(Camera* camera) { spB4.pitch = CLAMP_MAX(spB4.pitch, DEG_TO_BINANG(60.43f)); spB4.pitch = CLAMP_MIN(spB4.pitch, -DEG_TO_BINANG(60.43f)); - OLib_AddVecGeoToVec3f(eyeNext, at, &spB4); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB4); sp60.pos = *eyeNext; if (func_800CBC84(camera, at, &sp60, 0) != 0) { @@ -3279,12 +3273,12 @@ s32 Camera_Jump2(Camera* camera) { spAC.pitch = 0; spAC.r = spB4.r; spAC.yaw = spB4.yaw; - OLib_AddVecGeoToVec3f(&sp60.pos, at, &spAC); + sp60.pos = OLib_AddVecGeoToVec3f(at, &spAC); if (func_800CBC84(camera, at, &sp60, 0) != 0) { *eye = spC8; } else { spB4.pitch = Camera_ScaledStepToCeilS(0, spB4.pitch, 0.2f, 5); - OLib_AddVecGeoToVec3f(eye, at, &spB4); + *eye = OLib_AddVecGeoToVec3f(at, &spB4); func_800CBFA4(camera, at, eye, 0); } } else { @@ -3330,7 +3324,7 @@ s32 Camera_Jump3(Camera* camera) { s32 sp58; focalActorHeight = Camera_GetFocalActorHeight(camera); - Actor_GetFocus(&focalActorFocus, camera->focalActor); + focalActorFocus = Actor_GetFocus(camera->focalActor); sp60 = camera->waterYPos - sp48->y; sp58 = false; @@ -3367,8 +3361,8 @@ s32 Camera_Jump3(Camera* camera) { rwData->timer2--; } - OLib_Vec3fDiffToVecGeo(&sp9C, sp44, sp48); - OLib_Vec3fDiffToVecGeo(&sp94, sp44, sp40); + sp9C = OLib_Vec3fDiffToVecGeo(sp44, sp48); + sp94 = OLib_Vec3fDiffToVecGeo(sp44, sp40); if (!RELOAD_PARAMS(camera) && !sp58) { } else { @@ -3456,7 +3450,7 @@ s32 Camera_Jump3(Camera* camera) { Camera_CalcAtDefault(camera, &sp94, roData->unk_00, roData->interfaceFlags); } - OLib_Vec3fDiffToVecGeo(&spAC, sp44, sp40); + spAC = OLib_Vec3fDiffToVecGeo(sp44, sp40); spAC.r = Camera_ClampDist1(camera, spAC.r, roData->unk_04, roData->unk_08, rwData->timer1); camera->dist = spAC.r; @@ -3501,7 +3495,7 @@ s32 Camera_Jump3(Camera* camera) { spAC.pitch = -DEG_TO_BINANG(29.995f); } - OLib_AddVecGeoToVec3f(sp40, sp44, &spAC); + *sp40 = OLib_AddVecGeoToVec3f(sp44, &spAC); if ((camera->status == CAM_STATUS_ACTIVE) && !(roData->interfaceFlags & JUMP3_FLAG_6)) { if (func_800CBA7C(camera) == 0) { @@ -3514,7 +3508,7 @@ s32 Camera_Jump3(Camera* camera) { camera->inputDir.y = sp9C.yaw + 0x8000; camera->inputDir.z = 0; } else { - OLib_Vec3fDiffToVecGeo(&spAC, sp48, sp44); + spAC = OLib_Vec3fDiffToVecGeo(sp48, sp44); camera->inputDir.x = spAC.pitch; camera->inputDir.y = spAC.yaw; camera->inputDir.z = 0; @@ -3651,8 +3645,8 @@ s32 Camera_Battle1(Camera* camera) { focalActorHeight += roData->yOffset; - OLib_Vec3fDiffToVecGeo(&atToEyeDir, at, eye); - OLib_Vec3fDiffToVecGeo(&atToEyeNextDir, at, eyeNext); + atToEyeDir = OLib_Vec3fDiffToVecGeo(at, eye); + atToEyeNextDir = OLib_Vec3fDiffToVecGeo(at, eyeNext); if ((camera->target == NULL) || (camera->target->update == NULL)) { camera->target = NULL; @@ -3676,7 +3670,7 @@ s32 Camera_Battle1(Camera* camera) { camera->dist = 2.0f * roData->unk_04; atToEyeNextDir.r = camera->dist; atToEyeDir.r = atToEyeNextDir.r; - OLib_AddVecGeoToVec3f(eye, at, &atToEyeDir); + *eye = OLib_AddVecGeoToVec3f(at, &atToEyeDir); *eyeNext = *eye; } } @@ -3699,7 +3693,7 @@ s32 Camera_Battle1(Camera* camera) { camera->atLerpStepScale = Camera_ClampLerpScale(camera, isOffGround ? roData->unk_28 : roData->unk_24); } - Actor_GetFocus(&camera->targetPosRot, camera->target); + camera->targetPosRot = Actor_GetFocus(camera->target); if (rwData->unk_08 != camera->target) { camera->animState = 0; @@ -3708,7 +3702,7 @@ s32 Camera_Battle1(Camera* camera) { sp120 = camera->focalActorPosRot.pos; sp120.y += focalActorHeight; - OLib_Vec3fDiffToVecGeo(&spA4, &sp120, &camera->targetPosRot.pos); + spA4 = OLib_Vec3fDiffToVecGeo(&sp120, &camera->targetPosRot.pos); sp104 = func_800CD6CC(camera->target); if (sp104 > (PREG(86) + 800.0f)) { @@ -3729,12 +3723,12 @@ s32 Camera_Battle1(Camera* camera) { roData->interfaceFlags); sp88 = spA4.yaw; - OLib_Vec3fDiffToVecGeo(&spBC, at, eyeNext); + spBC = OLib_Vec3fDiffToVecGeo(at, eyeNext); spF4 = F32_LERPIMP(roData->unk_04, roData->unk_08, distRatio); camera->rUpdateRateInv = Camera_ScaledStepToCeilF(spF8, camera->rUpdateRateInv, 0.5f, 0.1f); spBC.r = camera->dist = Camera_ScaledStepToCeilF(spF4, camera->dist, 1.0f / camera->rUpdateRateInv, 0.1f); - OLib_Vec3fDiffToVecGeo(&atToTargetDir, at, &camera->targetPosRot.pos); + atToTargetDir = OLib_Vec3fDiffToVecGeo(at, &camera->targetPosRot.pos); atToTargetDir.r = spBC.r - (((spBC.r >= atToTargetDir.r) ? atToTargetDir.r : spBC.r) * 0.5f); @@ -3750,7 +3744,7 @@ s32 Camera_Battle1(Camera* camera) { if (rwData->unk_16 != 0) { if (rwData->unk_16 > 0) { sp86 = rwData->unk_16 - 1; - OLib_Vec3fDiffToVecGeo(&spB4, at, eye); + spB4 = OLib_Vec3fDiffToVecGeo(at, eye); spB4.yaw = sp88 + 0x8000; spF8 = (rwData->unk_00 - spB4.r) * (1.0f / 6.0f); sp8A = (s16)(rwData->unk_12 - spB4.yaw) * (1.0f / 6.0f); @@ -3795,7 +3789,7 @@ s32 Camera_Battle1(Camera* camera) { } spBC.pitch = Camera_ScaledStepToCeilS(sp8A, atToEyeNextDir.pitch, 1.0f / camera->pitchUpdateRateInv, 5); - OLib_AddVecGeoToVec3f(eyeNext, at, &spBC); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spBC); spC4.pos = *eyeNext; if (camera->status == CAM_STATUS_ACTIVE) { @@ -3809,7 +3803,7 @@ s32 Camera_Battle1(Camera* camera) { } else if (roData->interfaceFlags & BATTLE1_FLAG_1) { func_800CBC84(camera, at, &spC4, 3); } else { - OLib_Vec3fDistNormalize(&sp114, at, &spC4.pos); + sp114 = OLib_Vec3fDistNormalize(at, &spC4.pos); spC4.pos.x -= sp114.x; spC4.pos.y -= sp114.y; spC4.pos.z -= sp114.z; @@ -3839,7 +3833,7 @@ s32 Camera_Battle1(Camera* camera) { spB4.r = 40.0f; sp114 = sp8C->pos; sp114.y += 40.0f; - OLib_AddVecGeoToVec3f(&sp120, &sp114, &spB4); + sp120 = OLib_AddVecGeoToVec3f(&sp114, &spB4); Camera_ScaledStepToCeilVec3f(&sp120, eye, 0.15f, 0.15f, 0.2f); } else if (rwData->unk_1A & 0x10) { if (OLib_Vec3fDist(&spC4.pos, eye) < 20.0f) { @@ -3875,7 +3869,7 @@ s32 Camera_Battle1(Camera* camera) { } } else { rwData->unk_1A &= ~0x10; - OLib_Vec3fDistNormalize(&sp114, at, &spC4.pos); + sp114 = OLib_Vec3fDistNormalize(at, &spC4.pos); spC4.pos.x -= sp114.x; spC4.pos.y -= sp114.y; spC4.pos.z -= sp114.z; @@ -3993,8 +3987,8 @@ s32 Camera_KeepOn1(Camera* camera) { focalActorHeight += roData->yOffset; - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); - OLib_Vec3fDiffToVecGeo(&atToEyeNext, at, eyeNext); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); + atToEyeNext = OLib_Vec3fDiffToVecGeo(at, eyeNext); sCameraInterfaceFlags = roData->interfaceFlags; @@ -4013,7 +4007,7 @@ s32 Camera_KeepOn1(Camera* camera) { camera->dist = 2.0f * roData->unk_04; atToEyeNext.r = camera->dist; atToEye.r = atToEyeNext.r; - OLib_AddVecGeoToVec3f(eye, at, &atToEye); + *eye = OLib_AddVecGeoToVec3f(at, &atToEye); *eyeNext = *eye; } } @@ -4032,11 +4026,11 @@ s32 Camera_KeepOn1(Camera* camera) { sp114 = roData->unk_04; if (camera->target->id != ACTOR_EN_BOOM) { - Actor_GetWorldPosShapeRot(&camera->targetPosRot, camera->target); - Actor_GetFocus(&spA8, camera->target); + camera->targetPosRot = Actor_GetWorldPosShapeRot(camera->target); + spA8 = Actor_GetFocus(camera->target); camera->targetPosRot.pos.y = spA8.pos.y; } else { - Actor_GetFocus(&camera->targetPosRot, camera->target); + camera->targetPosRot = Actor_GetFocus(camera->target); } if (rwData->unk_0C != camera->target) { rwData->unk_0C = camera->target; @@ -4063,7 +4057,7 @@ s32 Camera_KeepOn1(Camera* camera) { sp124 = focalActorPosRot->pos; sp124.y += focalActorHeight; - OLib_Vec3fDiffToVecGeo(&spD0, &sp124, &camera->targetPosRot.pos); + spD0 = OLib_Vec3fDiffToVecGeo(&sp124, &camera->targetPosRot.pos); if (spD0.r > sp114) { sp74 = 1.0f; @@ -4071,7 +4065,7 @@ s32 Camera_KeepOn1(Camera* camera) { sp74 = spD0.r / sp114; } - OLib_Vec3fDiffToVecGeo(&spE8, at, eyeNext); + spE8 = OLib_Vec3fDiffToVecGeo(at, eyeNext); if (spE8.r < roData->unk_04) { sp114 = roData->unk_04; @@ -4088,7 +4082,7 @@ s32 Camera_KeepOn1(Camera* camera) { spE8.r = spF8 = camera->dist = Camera_ScaledStepToCeilF(sp114, camera->dist, 1.0f / camera->rUpdateRateInv, 0.1f); sp118 = camera->targetPosRot.pos; - OLib_Vec3fDiffToVecGeo(&spD8, at, &sp118); + spD8 = OLib_Vec3fDiffToVecGeo(at, &sp118); spD8.r = spF8 - (((spD8.r <= spF8) ? spD8.r : spF8) * 0.5f); spE8.r = camera->dist = Camera_ScaledStepToCeilF(spF8, camera->dist, 0.06f, 0.1f); @@ -4102,7 +4096,7 @@ s32 Camera_KeepOn1(Camera* camera) { if (rwData->unk_16 > 0) { sp72 = rwData->unk_16 - 1; spF2 = spD0.yaw; - OLib_Vec3fDiffToVecGeo(&spD0, at, eye); + spD0 = OLib_Vec3fDiffToVecGeo(at, eye); spD0.yaw = spF2 + 0x8000; @@ -4150,7 +4144,7 @@ s32 Camera_KeepOn1(Camera* camera) { } spE8.pitch = Camera_ScaledStepToCeilS(spF2, atToEyeNext.pitch, 1.0f / 9.0f, 5); - OLib_AddVecGeoToVec3f(eyeNext, at, &spE8); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spE8); sp7C.pos = *eyeNext; if (camera->status == CAM_STATUS_ACTIVE) { @@ -4164,7 +4158,7 @@ s32 Camera_KeepOn1(Camera* camera) { } else if (roData->interfaceFlags & KEEPON1_FLAG_1) { func_800CBC84(camera, at, &sp7C, 3); } else { - OLib_Vec3fDistNormalize(&sp130, at, &sp7C.pos); + sp130 = OLib_Vec3fDistNormalize(at, &sp7C.pos); sp7C.pos.x -= sp130.x; sp7C.pos.y -= sp130.y; sp7C.pos.z -= sp130.z; @@ -4191,7 +4185,7 @@ s32 Camera_KeepOn1(Camera* camera) { spE0.r = 40.0f; sp130 = spA4->pos; sp130.y += 40.0f; - OLib_AddVecGeoToVec3f(&sp124, &sp130, &spE0); + sp124 = OLib_AddVecGeoToVec3f(&sp130, &spE0); Camera_ScaledStepToCeilVec3f(&sp124, eye, 0.15f, 0.15f, 0.2f); } else if (rwData->unk_18 & 0x10) { if (OLib_Vec3fDist(&sp7C.pos, eye) < 20.0f) { @@ -4227,7 +4221,7 @@ s32 Camera_KeepOn1(Camera* camera) { } } else { rwData->unk_18 &= ~0x10; - OLib_Vec3fDistNormalize(&sp130, at, &sp7C.pos); + sp130 = OLib_Vec3fDistNormalize(at, &sp7C.pos); sp7C.pos.x -= sp130.x; sp7C.pos.y -= sp130.y; sp7C.pos.z -= sp130.z; @@ -4330,12 +4324,12 @@ s32 Camera_KeepOn3(Camera* camera) { } } - OLib_Vec3fDiffToVecGeo(&sp88, at, eye); - OLib_Vec3fDiffToVecGeo(&sp80, at, eyeNext); - Actor_GetFocus(&camera->targetPosRot, camera->target); + sp88 = OLib_Vec3fDiffToVecGeo(at, eye); + sp80 = OLib_Vec3fDiffToVecGeo(at, eyeNext); + camera->targetPosRot = Actor_GetFocus(camera->target); spD8 = focalActorPosRot->pos; spD8.y += focalActorHeight; - OLib_Vec3fDiffToVecGeo(&spA0, &spD8, &camera->targetPosRot.pos); + spA0 = OLib_Vec3fDiffToVecGeo(&spD8, &camera->targetPosRot.pos); if (RELOAD_PARAMS(camera)) { camera->animState++; @@ -4373,11 +4367,11 @@ s32 Camera_KeepOn3(Camera* camera) { sp90.pitch = -spA0.pitch; spCC = sp70->pos; spCC.y += 30.0f; - OLib_AddVecGeoToVec3f(&spC0, &spCC, &sp90); + spC0 = OLib_AddVecGeoToVec3f(&spCC, &sp90); spCC.x = (camera->targetPosRot.pos.x + spD8.x) * 0.5f; spCC.y = (camera->targetPosRot.pos.y + spD8.y) * 0.5f; spCC.z = (camera->targetPosRot.pos.z + spD8.z) * 0.5f; - OLib_Vec3fDiffToVecGeo(&sp98, &spCC, &spC0); + sp98 = OLib_Vec3fDiffToVecGeo(&spCC, &spC0); if (sp98.pitch < -0x2328) { // 49.4 degrees sp98.pitch = -0x2328; } @@ -4410,7 +4404,7 @@ s32 Camera_KeepOn3(Camera* camera) { spD8 = focalActorPosRot->pos; spD8.y += focalActorHeight; - OLib_AddVecGeoToVec3f(&rwData->unk_10, &spD8, &spA0); + rwData->unk_10 = OLib_AddVecGeoToVec3f(&spD8, &spA0); rwData->unk_10.y += roData->unk_00; spA0.r = spB4; @@ -4418,13 +4412,13 @@ s32 Camera_KeepOn3(Camera* camera) { sp98.r = ((roData->unk_04 + (spA0.r * 0.5f)) - sp80.r) + sp80.r; i = 0; sp78 = 14; - OLib_AddVecGeoToVec3f(&spCC, &rwData->unk_10, &sp98); + spCC = OLib_AddVecGeoToVec3f(&rwData->unk_10, &sp98); if (!(roData->interfaceFlags & KEEPON3_FLAG_7)) { if (CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &rwData->unk_10, &spCC, spA8, 2) || Camera_BgCheck(camera, &rwData->unk_10, &spCC)) { sp98.yaw = sp6A; - OLib_AddVecGeoToVec3f(&spCC, &rwData->unk_10, &sp98); + spCC = OLib_AddVecGeoToVec3f(&rwData->unk_10, &sp98); } while (i < sp78) { if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &rwData->unk_10, &spCC, @@ -4434,7 +4428,7 @@ s32 Camera_KeepOn3(Camera* camera) { } sp98.yaw = sp6C + D_801B9E18[i]; sp98.pitch = sp6E + D_801B9E34[i]; - OLib_AddVecGeoToVec3f(&spCC, &rwData->unk_10, &sp98); + spCC = OLib_AddVecGeoToVec3f(&rwData->unk_10, &sp98); i++; } } @@ -4462,7 +4456,7 @@ s32 Camera_KeepOn3(Camera* camera) { sp98.r = (rwData->unk_00 * timer) + sp80.r + 1.0f; sp98.yaw = sp80.yaw + (s16)(rwData->unk_04 * timer); sp98.pitch = sp80.pitch + (s16)(rwData->unk_08 * timer); - OLib_AddVecGeoToVec3f(eyeNext, at, &sp98); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp98); *eye = *eyeNext; camera->fov = Camera_ScaledStepToCeilF(roData->unk_20, camera->fov, 0.5f, 0.1f); camera->roll = Camera_ScaledStepToCeilS(0, camera->roll, 0.5f, 5); @@ -4605,9 +4599,9 @@ s32 Camera_KeepOn4(Camera* camera) { sUpdateCameraDirection = true; sCameraInterfaceFlags = roData->interfaceFlags; - OLib_Vec3fDiffToVecGeo(&spB0, at, eye); + spB0 = OLib_Vec3fDiffToVecGeo(at, eye); data = &D_801EDDD0; - OLib_Vec3fDiffToVecGeo(&spA8, at, eyeNext); + spA8 = OLib_Vec3fDiffToVecGeo(at, eyeNext); D_801EDDD0 = focalActorPosRot->pos; D_801EDDD0.y = data->y + focalActorHeight; temp_f0_2 = BgCheck_CameraRaycastFloor2(&camera->play->colCtx, &spC0, &bgId, &D_801EDDD0); @@ -4623,7 +4617,7 @@ s32 Camera_KeepOn4(Camera* camera) { spB8.r = roData->unk_10; spB8.pitch = 0; spB8.yaw = focalActorPosRot->rot.y; - OLib_AddVecGeoToVec3f(&D_801EDDD0, &D_801EDDD0, &spB8); + D_801EDDD0 = OLib_AddVecGeoToVec3f(&D_801EDDD0, &spB8); } sp9C = 0; @@ -4664,7 +4658,7 @@ s32 Camera_KeepOn4(Camera* camera) { case KEEPON4_FLAG_3: if (camera->target != NULL) { - Actor_GetWorldPosShapeRot(&sp60, camera->target); + sp60 = Actor_GetWorldPosShapeRot(camera->target); spA2 = CAM_DEG_TO_BINANG(roData->unk_08) - sp60.rot.x; spA0 = (BINANG_SUB(BINANG_ROT180(sp60.rot.y), spA8.yaw) > 0) ? BINANG_ROT180(sp60.rot.y) + CAM_DEG_TO_BINANG(roData->unk_0C) @@ -4677,7 +4671,7 @@ s32 Camera_KeepOn4(Camera* camera) { // fallthrough case (KEEPON4_FLAG_3 | KEEPON4_FLAG_1): if (camera->target != 0) { - Actor_GetWorld(&sp4C, camera->target); + sp4C = Actor_GetWorld(camera->target); spA2 = CAM_DEG_TO_BINANG(roData->unk_08); sp9E = Camera_CalcXZAngle(&sp4C.pos, &focalActorPosRot->pos); spA0 = (BINANG_SUB(sp9E, spA8.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C) @@ -4749,7 +4743,7 @@ s32 Camera_KeepOn4(Camera* camera) { spB8.yaw = Camera_ScaledStepToCeilS(rwData->unk_10, spA8.yaw, roData->unk_14, 5); spB8.pitch = Camera_ScaledStepToCeilS(rwData->unk_12, spA8.pitch, roData->unk_14, 5); - OLib_AddVecGeoToVec3f(eyeNext, at, &spB8); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB8); *eye = *eyeNext; func_800CBFA4(camera, at, eye, 3); @@ -4786,13 +4780,13 @@ s32 Camera_Fixed1(Camera* camera) { Fixed1ReadOnlyData* roData = &camera->paramData.fixd1.roData; Fixed1ReadWriteData* rwData = &camera->paramData.fixd1.rwData; - OLib_Vec3fDiffToVecGeo(&sp7C, at, eye); + sp7C = OLib_Vec3fDiffToVecGeo(at, eye); if (!RELOAD_PARAMS(camera)) { } else { values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamOrActorCsCamFuncData(camera, camera->bgCamIndex); - Camera_Vec3sToVec3f(&rwData->eyePosRotTarget.pos, &bgCamFuncData->pos); + rwData->eyePosRotTarget.pos = Camera_Vec3sToVec3f(&bgCamFuncData->pos); rwData->eyePosRotTarget.rot = bgCamFuncData->rot; rwData->fov = bgCamFuncData->fov; @@ -4811,9 +4805,9 @@ s32 Camera_Fixed1(Camera* camera) { targetHome = &camera->target->home; targetWorld = &camera->target->world; - OLib_Vec3fDiffToVecGeo(&sp44, &targetHome->pos, &rwData->eyePosRotTarget.pos); + sp44 = OLib_Vec3fDiffToVecGeo(&targetHome->pos, &rwData->eyePosRotTarget.pos); sp44.yaw = targetWorld->rot.y + (s16)(sp44.yaw - targetHome->rot.y); - OLib_AddVecGeoToVec3f(&rwData->eyePosRotTarget.pos, &targetWorld->pos, &sp44); + rwData->eyePosRotTarget.pos = OLib_AddVecGeoToVec3f(&targetWorld->pos, &sp44); yawDiff = (s16)(rwData->eyePosRotTarget.rot.y - targetHome->rot.y); rwData->eyePosRotTarget.rot.y = targetWorld->rot.y + yawDiff; } @@ -4845,7 +4839,7 @@ s32 Camera_Fixed1(Camera* camera) { } } - OLib_Vec3fDiffToVecGeo(&eyeAtOffset, eye, at); + eyeAtOffset = OLib_Vec3fDiffToVecGeo(eye, at); Camera_ScaledStepToCeilVec3f(&rwData->eyePosRotTarget.pos, eye, roData->unk_04, roData->unk_04, 0.2f); adjustedPos = focalActorPosRot->pos; adjustedPos.y += focalActorHeight; @@ -4854,7 +4848,7 @@ s32 Camera_Fixed1(Camera* camera) { eyeOffset.pitch = Camera_ScaledStepToCeilS(rwData->eyePosRotTarget.rot.x * -1, eyeAtOffset.pitch, roData->unk_04, 5); eyeOffset.yaw = Camera_ScaledStepToCeilS(rwData->eyePosRotTarget.rot.y, eyeAtOffset.yaw, roData->unk_04, 5); - OLib_AddVecGeoToVec3f(at, eye, &eyeOffset); + *at = OLib_AddVecGeoToVec3f(eye, &eyeOffset); camera->eyeNext = *eye; Camera_BgCheck(camera, eye, at); @@ -4913,11 +4907,11 @@ s32 Camera_Fixed2(Camera* camera) { bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamOrActorCsCamFuncData(camera, camera->bgCamIndex); if (bgCamFuncData != NULL) { if (!(roData->interfaceFlags & FIXED2_FLAG_1)) { - Camera_Vec3sToVec3f(&rwData->unk_00, &bgCamFuncData->pos); + rwData->unk_00 = Camera_Vec3sToVec3f(&bgCamFuncData->pos); } else { if (camera->focalActor != &GET_PLAYER(camera->play)->actor) { player = GET_PLAYER(camera->play); - OLib_Vec3fDiffToVecGeo(&sp70, &player->actor.focus.pos, eye); + sp70 = OLib_Vec3fDiffToVecGeo(&player->actor.focus.pos, eye); if (sp70.r < roData->unk_04) { sp70.r = roData->unk_04; if (sp70.pitch < 0xBB8) { // 16.5 degrees @@ -4926,7 +4920,7 @@ s32 Camera_Fixed2(Camera* camera) { new_var1 = &player->actor.focus.pos; - OLib_AddVecGeoToVec3f(&rwData->unk_00, new_var1, &sp70); + rwData->unk_00 = OLib_AddVecGeoToVec3f(new_var1, &sp70); } else { rwData->unk_00 = *eye; //! FAKE: @@ -4973,9 +4967,9 @@ s32 Camera_Fixed2(Camera* camera) { } sp7C = &camera->target->home; sp78 = &camera->target->world; - OLib_Vec3fDiffToVecGeo(&sp70, &sp7C->pos, &rwData->unk_00); + sp70 = OLib_Vec3fDiffToVecGeo(&sp7C->pos, &rwData->unk_00); sp70.yaw = sp78->rot.y + (s16)(sp70.yaw - sp7C->rot.y); - OLib_AddVecGeoToVec3f(&rwData->unk_00, &sp78->pos, &sp70); + rwData->unk_00 = OLib_AddVecGeoToVec3f(&sp78->pos, &sp70); } } else { rwData->unk_00 = camera->eye; @@ -5066,14 +5060,14 @@ s32 Camera_Fixed2(Camera* camera) { Camera_SetUpdateRatesSlow(camera); if (!(roData->interfaceFlags & FIXED2_FLAG_0)) { *at = spB0; - OLib_Vec3fDiffToVecGeo(&sp80, at, &rwData->unk_00); + sp80 = OLib_Vec3fDiffToVecGeo(at, &rwData->unk_00); if ((rwData->unk_0C < sp80.r) || (roData->interfaceFlags & FIXED2_FLAG_5)) { sp80.r = rwData->unk_0C; - OLib_AddVecGeoToVec3f(&spA4, at, &sp80); + spA4 = OLib_AddVecGeoToVec3f(at, &sp80); } else { if (sp80.r < roData->unk_04) { sp80.r = roData->unk_04; - OLib_AddVecGeoToVec3f(&spA4, at, &sp80); + spA4 = OLib_AddVecGeoToVec3f(at, &sp80); } else { spA4 = rwData->unk_00; } @@ -5086,13 +5080,13 @@ s32 Camera_Fixed2(Camera* camera) { } Camera_ScaledStepToCeilVec3f(&spB0, at, rwData->unk_14, rwData->unk_14, 1.0f); - OLib_Vec3fDiffToVecGeo(&sp80, at, &rwData->unk_00); + sp80 = OLib_Vec3fDiffToVecGeo(at, &rwData->unk_00); if ((rwData->unk_0C < sp80.r) || (roData->interfaceFlags & FIXED2_FLAG_5)) { sp80.r = rwData->unk_0C; - OLib_AddVecGeoToVec3f(&spA4, at, &sp80); + spA4 = OLib_AddVecGeoToVec3f(at, &sp80); } else if (sp80.r < roData->unk_04) { sp80.r = roData->unk_04; - OLib_AddVecGeoToVec3f(&spA4, at, &sp80); + spA4 = OLib_AddVecGeoToVec3f(at, &sp80); } else { spA4 = rwData->unk_00; } @@ -5149,7 +5143,7 @@ s32 Camera_Subject1(Camera* camera) { f32 temp_f0; f32 focalActorHeight; - Actor_GetFocus(&sp58, camera->focalActor); + sp58 = Actor_GetFocus(camera->focalActor); focalActorHeight = Camera_GetFocalActorHeight(camera); Camera_SetUpdateRatesFastPitch(camera); @@ -5170,8 +5164,8 @@ s32 Camera_Subject1(Camera* camera) { sp90 = sp58.pos; sp90.y += roData->unk_00; - OLib_AddVecGeoToVec3f(&sp84, &sp90, &sp7C); - OLib_Vec3fDiffToVecGeo(&sp74, &camera->at, eye); + sp84 = OLib_AddVecGeoToVec3f(&sp90, &sp7C); + sp74 = OLib_Vec3fDiffToVecGeo(&camera->at, eye); sCameraInterfaceFlags = roData->interfaceFlags; if (camera->play->view.unk164 == 0) { @@ -5213,7 +5207,7 @@ s32 Camera_Subject1(Camera* camera) { sp74.yaw = Camera_ScaledStepToCeilS(sp7C.yaw + (sp4E * rwData->timer), sp74.yaw, 0.5f, 5); sp74.pitch = Camera_ScaledStepToCeilS(sp7C.pitch + (sp4C * rwData->timer), sp74.pitch, 0.5f, 5); - OLib_AddVecGeoToVec3f(eyeNext, at, &sp74); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp74); *eye = *eyeNext; rwData->timer--; } else { @@ -5239,9 +5233,9 @@ s32 Camera_Subject1(Camera* camera) { sp74.yaw = BINANG_ROT180(sp58.rot.y); sp74.pitch = sp58.rot.x; - OLib_AddVecGeoToVec3f(&camera->eyeNext, at, &sp74); + camera->eyeNext = OLib_AddVecGeoToVec3f(at, &sp74); sp74.r = roData->unk_04; - OLib_AddVecGeoToVec3f(eye, at, &sp74); + *eye = OLib_AddVecGeoToVec3f(at, &sp74); } // TODO: is skyboxDisabled accurate here? @@ -5316,7 +5310,7 @@ s32 Camera_Unique2(Camera* camera) { Vec3f* eyeNext = &camera->eyeNext; CameraModeValue* values; - OLib_Vec3fDiffToVecGeo(&sp60, at, eye); + sp60 = OLib_Vec3fDiffToVecGeo(at, eye); if (RELOAD_PARAMS(camera)) { values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; @@ -5360,17 +5354,17 @@ s32 Camera_Unique2(Camera* camera) { rwData->unk_00 = rwData->unk_00 + ((2.0f - rwData->unk_00) * 0.05f); if (roData->interfaceFlags & UNIQUE2_FLAG_0) { - OLib_Vec3fDiffToVecGeo(&sp68, at, eyeNext); + sp68 = OLib_Vec3fDiffToVecGeo(at, eyeNext); sp68.r = roData->unk_04; - OLib_AddVecGeoToVec3f(&sp70, at, &sp68); + sp70 = OLib_AddVecGeoToVec3f(at, &sp68); Camera_ScaledStepToCeilVec3f(&sp70, eye, roData->unk_08, roData->unk_08, 0.2f); } else if (roData->interfaceFlags & UNIQUE2_FLAG_1) { if (OLib_Vec3fDistXZ(at, eyeNext) < roData->unk_04) { - OLib_Vec3fDiffToVecGeo(&sp68, at, eyeNext); + sp68 = OLib_Vec3fDiffToVecGeo(at, eyeNext); sp68.yaw = Camera_ScaledStepToCeilS(sp68.yaw, sp60.yaw, 0.1f, 5); sp68.r = roData->unk_04; sp68.pitch = 0; - OLib_AddVecGeoToVec3f(eye, at, &sp68); + *eye = OLib_AddVecGeoToVec3f(at, &sp68); eye->y = eyeNext->y; } else { Camera_ScaledStepToCeilVec3f(eyeNext, eye, roData->unk_08, roData->unk_08, 0.2f); @@ -5455,10 +5449,10 @@ s32 Camera_Unique0(Camera* camera) { roData->interfaceFlags = GET_NEXT_RO_DATA(values); } - OLib_Vec3fDiffToVecGeo(&sp7C, &camera->at, &camera->eye); + sp7C = OLib_Vec3fDiffToVecGeo(&camera->at, &camera->eye); if (player->rideActor != NULL) { - Actor_GetWorld(&sp9C, player->rideActor); + sp9C = Actor_GetWorld(player->rideActor); sp8C = sp9C.pos; sp8C.y += playerHeight + 20.0f; } else { @@ -5471,7 +5465,7 @@ s32 Camera_Unique0(Camera* camera) { switch (camera->animState) { case 0: bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamOrActorCsCamFuncData(camera, camera->bgCamIndex); - Camera_Vec3sToVec3f(&rwData->unk_1C, &bgCamFuncData->pos); + rwData->unk_1C = Camera_Vec3sToVec3f(&bgCamFuncData->pos); camera->eye = camera->eyeNext = rwData->unk_1C; rwData->unk_34 = bgCamFuncData->rot; @@ -5511,7 +5505,7 @@ s32 Camera_Unique0(Camera* camera) { sp84.r = OLib_Vec3fDist(&sp8C, &camera->eye); sp84.yaw = rwData->unk_34.y; sp84.pitch = -rwData->unk_34.x; - OLib_VecGeoToVec3f(&rwData->unk_28, &sp84); + rwData->unk_28 = OLib_VecGeoToVec3f(&sp84); func_80179A44(&rwData->unk_1C, focalActorPosRot, &rwData->unk_0C); camera->at = rwData->unk_0C; @@ -5592,7 +5586,7 @@ s32 Camera_Unique0(Camera* camera) { sp84.yaw = sp7C.yaw; sp84.r = Camera_ScaledStepToCeilF(100.0f, sp84.r, sp74, 1.0f); - OLib_AddVecGeoToVec3f(&sp8C, &camera->at, &sp84); + sp8C = OLib_AddVecGeoToVec3f(&camera->at, &sp84); sp74 = (QREG(64) * 0.01f) + 0.2f; @@ -5711,10 +5705,10 @@ s32 Camera_Demo1(Camera* camera) { if (camera->animState == 0) { rwData->unk_1C = 0; - OLib_Vec3fDiffToVecGeo(&rwData->unk_0C, &camera->targetPosRot.pos, eye); - OLib_Vec3fDiffToVecGeo(&rwData->unk_14, &camera->at, eye); - Actor_GetFocus(&targetHead, camera->target); - Actor_GetWorld(&sp74, camera->target); + rwData->unk_0C = OLib_Vec3fDiffToVecGeo(&camera->targetPosRot.pos, eye); + rwData->unk_14 = OLib_Vec3fDiffToVecGeo(&camera->at, eye); + targetHead = Actor_GetFocus(camera->target); + sp74 = Actor_GetWorld(camera->target); camera->targetPosRot.pos.x = (sp74.pos.x + targetHead.pos.x) * 0.5f; camera->targetPosRot.pos.y = (sp74.pos.y + targetHead.pos.y) * 0.5f; camera->targetPosRot.pos.z = (sp74.pos.z + targetHead.pos.z) * 0.5f; @@ -5760,9 +5754,9 @@ s32 Camera_Demo1(Camera* camera) { case 1: Camera_ScaledStepToCeilVec3f(&camera->targetPosRot.pos, at, 0.1f, 0.1f, 0.1f); - OLib_Vec3fDiffToVecGeo(&sp88, at, eye); + sp88 = OLib_Vec3fDiffToVecGeo(at, eye); sp88.r = rwData->unk_0C.r; - OLib_AddVecGeoToVec3f(eyeNext, at, &sp88); + *eyeNext = OLib_AddVecGeoToVec3f(at, &sp88); *eye = *eyeNext; Camera_BgCheck(camera, at, eye); break; @@ -5922,7 +5916,7 @@ s32 Camera_Demo2(Camera* camera) { roData->interfaceFlags = GET_NEXT_RO_DATA(values); } - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); sCameraInterfaceFlags = roData->interfaceFlags; @@ -5955,9 +5949,9 @@ s32 Camera_Demo2(Camera* camera) { rwData->yawDir = -rwData->yawDir; } - OLib_Vec3fToVecGeo(&atOffset, &sp48[0]); + atOffset = OLib_Vec3fToVecGeo(&sp48[0]); atOffset.yaw += focalActorPosRot->rot.y; - OLib_AddVecGeoToVec3f(at, &rwData->initialAt, &atOffset); + *at = OLib_AddVecGeoToVec3f(&rwData->initialAt, &atOffset); eyeOffset.r = sp4C[0].r; eyeOffset.pitch = sp4C[0].pitch; @@ -5972,9 +5966,9 @@ s32 Camera_Demo2(Camera* camera) { VEC3F_LERPIMPDST(&sp64, &sp48[0], &sp48[1], sp60); - OLib_Vec3fToVecGeo(&atOffset, &sp64); + atOffset = OLib_Vec3fToVecGeo(&sp64); atOffset.yaw = (atOffset.yaw * rwData->yawDir) + focalActorPosRot->rot.y; - OLib_AddVecGeoToVec3f(at, &rwData->initialAt, &atOffset); + *at = OLib_AddVecGeoToVec3f(&rwData->initialAt, &atOffset); atOffset.r = LERPIMP(sp4C[0].r, sp4C[1].r, sp60); atOffset.pitch = BINANG_LERPIMP(sp4C[0].pitch, sp4C[1].pitch, sp60); @@ -5995,9 +5989,9 @@ s32 Camera_Demo2(Camera* camera) { sp64.y += playerHeight; sp64.z = LERPIMP(sp48[1].z, sp48[2].z, sp60); - OLib_Vec3fToVecGeo(&atOffset, &sp64); + atOffset = OLib_Vec3fToVecGeo(&sp64); atOffset.yaw = (atOffset.yaw * rwData->yawDir) + focalActorPosRot->rot.y; - OLib_AddVecGeoToVec3f(at, &rwData->initialAt, &atOffset); + *at = OLib_AddVecGeoToVec3f(&rwData->initialAt, &atOffset); atOffset.r = LERPIMP(sp4C[1].r, sp4C[2].r, sp60); atOffset.pitch = BINANG_LERPIMP(sp4C[1].pitch, sp4C[2].pitch, sp60); @@ -6018,9 +6012,9 @@ s32 Camera_Demo2(Camera* camera) { sp64.y += playerHeight; sp64.z = LERPIMP(sp48[2].z, sp48[3].z, sp60); - OLib_Vec3fToVecGeo(&atOffset, &sp64); + atOffset = OLib_Vec3fToVecGeo(&sp64); atOffset.yaw = (atOffset.yaw * rwData->yawDir) + focalActorPosRot->rot.y; - OLib_AddVecGeoToVec3f(at, &rwData->initialAt, &atOffset); + *at = OLib_AddVecGeoToVec3f(&rwData->initialAt, &atOffset); atOffset.r = LERPIMP(sp4C[2].r, sp4C[3].r, sp60); atOffset.pitch = BINANG_LERPIMP(sp4C[2].pitch, sp4C[3].pitch, sp60); @@ -6105,7 +6099,7 @@ s32 Camera_Demo2(Camera* camera) { eyeOffset.r = Camera_ScaledStepToCeilF(eyeOffset.r, atToEye.r, rwData->unk_0C, 1.0f); eyeOffset.pitch = Camera_ScaledStepToCeilS(eyeOffset.pitch, atToEye.pitch, rwData->unk_0C, 5); eyeOffset.yaw = Camera_ScaledStepToCeilS(eyeOffset.yaw, atToEye.yaw, rwData->unk_0C, 5); - OLib_AddVecGeoToVec3f(eyeNext, at, &eyeOffset); + *eyeNext = OLib_AddVecGeoToVec3f(at, &eyeOffset); *eye = *eyeNext; } @@ -6131,8 +6125,8 @@ s32 Camera_Demo3(Camera* camera) { Demo3ReadOnlyData* roData = &camera->paramData.demo3.roData; Demo3ReadWriteData* rwData = &camera->paramData.demo3.rwData; - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); - Actor_GetFocus(&focalActorFocus, camera->focalActor); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); + focalActorFocus = Actor_GetFocus(camera->focalActor); focalActorFocus.pos.x = camera->focalActorPosRot.pos.x; focalActorFocus.pos.z = camera->focalActorPosRot.pos.z; focalActorFocus.pos.y -= (focalActorFocus.pos.y - camera->focalActorPosRot.pos.y) * 0.4f; @@ -6194,7 +6188,7 @@ s32 Camera_Demo3(Camera* camera) { break; } - OLib_AddVecGeoToVec3f(eyeNext, at, &atToEye); + *eyeNext = OLib_AddVecGeoToVec3f(at, &atToEye); *eye = *eyeNext; return true; } @@ -6216,7 +6210,7 @@ s32 Camera_Demo4(Camera* camera) { Demo4ReadWriteData* rwData = &camera->paramData.demo4.rwData; s32 pad[2]; - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); if (RELOAD_PARAMS(camera)) { values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; @@ -6227,7 +6221,7 @@ s32 Camera_Demo4(Camera* camera) { rwData->unk_14 = camera->fov; } - Actor_GetFocus(&focalActorFocus, camera->focalActor); + focalActorFocus = Actor_GetFocus(camera->focalActor); sCameraInterfaceFlags = roData->interfaceFlags; switch (camera->animState) { @@ -6336,7 +6330,7 @@ s32 Camera_Demo4(Camera* camera) { break; case 999: - Actor_GetFocus(&focalActorFocus, camera->focalActor); + focalActorFocus = Actor_GetFocus(camera->focalActor); Distortion_RemoveRequest(DISTORTION_TYPE_MASK_TRANSFORM_1); Distortion_RemoveRequest(DISTORTION_TYPE_MASK_TRANSFORM_2); camera->animState = 4; @@ -6352,7 +6346,7 @@ s32 Camera_Demo4(Camera* camera) { break; } - OLib_AddVecGeoToVec3f(&camera->eyeNext, at, &atToEye); + camera->eyeNext = OLib_AddVecGeoToVec3f(at, &atToEye); *eye = camera->eyeNext; return true; @@ -6376,7 +6370,7 @@ s32 Camera_Demo5(Camera* camera) { Demo5ReadWriteData* rwData = &camera->paramData.demo5.rwData; CameraModeValue* values; - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); if (RELOAD_PARAMS(camera)) { values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; @@ -6387,7 +6381,7 @@ s32 Camera_Demo5(Camera* camera) { rwData->unk_18 = camera->fov; } - Actor_GetFocus(&focalActorFocus, camera->focalActor); + focalActorFocus = Actor_GetFocus(camera->focalActor); sCameraInterfaceFlags = roData->interfaceFlags; @@ -6442,7 +6436,7 @@ s32 Camera_Demo5(Camera* camera) { break; case 999: - Actor_GetFocus(&focalActorFocus, camera->focalActor); + focalActorFocus = Actor_GetFocus(camera->focalActor); camera->animState = 3; Distortion_RemoveRequest(DISTORTION_TYPE_MASK_TRANSFORM_1); break; @@ -6457,7 +6451,7 @@ s32 Camera_Demo5(Camera* camera) { break; } - OLib_AddVecGeoToVec3f(eyeNext, at, &atToEye); + *eyeNext = OLib_AddVecGeoToVec3f(at, &atToEye); *eye = *eyeNext; return true; @@ -6503,8 +6497,8 @@ s32 Camera_Demo0(Camera* camera) { // Initialize if (camera->animState == 0) { - OLib_Vec3fDiffToVecGeo(&rwData->subAtToEye, &subCam->at, subEye); - OLib_Vec3fDiffToVecGeo(&rwData->atToEye, &camera->at, eye); + rwData->subAtToEye = OLib_Vec3fDiffToVecGeo(&subCam->at, subEye); + rwData->atToEye = OLib_Vec3fDiffToVecGeo(&camera->at, eye); if (rwData->subAtToEye.r < 50.0f) { rwData->subAtToEye.r = 50.0f; if (rwData->subAtToEye.pitch < 0x7D0) { // 11 degrees @@ -6585,7 +6579,7 @@ s32 Camera_Demo0(Camera* camera) { camera->roll += rwData->unk_18; // Update Eye - OLib_AddVecGeoToVec3f(eye, at, &rwData->atToEye); + *eye = OLib_AddVecGeoToVec3f(at, &rwData->atToEye); camera->eyeNext = *eye; rwData->timer--; @@ -6653,9 +6647,9 @@ s32 Camera_Special5(Camera* camera) { roData->interfaceFlags = GET_NEXT_RO_DATA(values); } - OLib_Vec3fDiffToVecGeo(&atToEye, at, eye); - OLib_Vec3fDiffToVecGeo(&atToEyeNext, at, eyeNext); - Actor_GetWorld(&spA8, camera->target); + atToEye = OLib_Vec3fDiffToVecGeo(at, eye); + atToEyeNext = OLib_Vec3fDiffToVecGeo(at, eyeNext); + spA8 = Actor_GetWorld(camera->target); sCameraInterfaceFlags = roData->interfaceFlags; @@ -6677,9 +6671,9 @@ s32 Camera_Special5(Camera* camera) { sp6C.yaw = focalActorPosRot->rot.y; sp6C.pitch = -focalActorPosRot->rot.x; sp6C.r = 20.0f; - OLib_AddVecGeoToVec3f(&sp7C.pos, &spA8.pos, &sp6C); + sp7C.pos = OLib_AddVecGeoToVec3f(&spA8.pos, &sp6C); func_800CBC84(camera, at, &sp7C, 0); - OLib_Vec3fToVecGeo(&sp6C, &sp7C.norm); + sp6C = OLib_Vec3fToVecGeo(&sp7C.norm); spA4 = BINANG_SUB(focalActorPosRot->rot.y, sp6C.yaw); sp74.r = roData->eyeDist; rand = Rand_ZeroOne(); @@ -6687,7 +6681,7 @@ s32 Camera_Special5(Camera* camera) { BINANG_ROT180(focalActorPosRot->rot.y) + (s16)((spA4 < 0) ? -(s16)(0x1553 + (s16)(rand * 2730.0f)) : (s16)(0x1553 + (s16)(rand * 2730.0f))); sp74.pitch = roData->pitch; - OLib_AddVecGeoToVec3f(eyeNext, &spA8.pos, &sp74); + *eyeNext = OLib_AddVecGeoToVec3f(&spA8.pos, &sp74); *eye = *eyeNext; Camera_BgCheck(camera, &spA8.pos, eye); } @@ -6850,14 +6844,14 @@ s32 Camera_Special9(Camera* camera) { } if (doorParams->doorActor != NULL) { - Actor_GetWorldPosShapeRot(&sp84, doorParams->doorActor); + sp84 = Actor_GetWorldPosShapeRot(doorParams->doorActor); } else { sp84 = *focalActorPosRot; sp84.pos.y += focalActorHeight + roData->yOffset; sp84.rot.x = 0; } - OLib_Vec3fDiffToVecGeo(&spA8, at, eye); + spA8 = OLib_Vec3fDiffToVecGeo(at, eye); sCameraInterfaceFlags = roData->interfaceFlags; @@ -6884,7 +6878,7 @@ s32 Camera_Special9(Camera* camera) { // Setup for the camera moving behind the door if (roData->interfaceFlags & SPECIAL9_FLAG_0) { bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamOrActorCsCamFuncData(camera, camera->bgCamIndex); - Camera_Vec3sToVec3f(eyeNext, &bgCamFuncData->pos); + *eyeNext = Camera_Vec3sToVec3f(&bgCamFuncData->pos); spB8 = *eye = *eyeNext; } else { s16 camEyeSide; @@ -6899,14 +6893,14 @@ s32 Camera_Special9(Camera* camera) { spB0.yaw = rwData->unk_00 + camEyeSide; spB0.r = 200.0f * yNormal; - OLib_AddVecGeoToVec3f(eyeNext, at, &spB0); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB0); spB8 = *eye = *eyeNext; // If the side chosen moves the camera out-of-bounds, move to the other side if (Camera_CheckOOB(camera, &spB8, &focalActorPosRot->pos)) { camEyeSide = (s16)-camEyeSide; spB0.yaw = rwData->unk_00 + camEyeSide; - OLib_AddVecGeoToVec3f(eyeNext, at, &spB0); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB0); *eye = *eyeNext; } } @@ -6935,7 +6929,7 @@ s32 Camera_Special9(Camera* camera) { spB0.pitch = Camera_ScaledStepToCeilS(0xAAA, spA8.pitch, 0.3f, 5); spB0.yaw = Camera_ScaledStepToCeilS(rwData->unk_00, spA8.yaw, 0.3f, 5); spB0.r = Camera_ScaledStepToCeilF(60.0f, spA8.r, 0.3f, 1.0f); - OLib_AddVecGeoToVec3f(eyeNext, at, &spB0); + *eyeNext = OLib_AddVecGeoToVec3f(at, &spB0); *eye = *eyeNext; @@ -7110,7 +7104,7 @@ void Camera_InitFocalActorSettings(Camera* camera, Actor* focalActor) { f32 focalActorHeight; Vec3f* eye = &camera->eye; - Actor_GetWorldPosShapeRot(&focalActorPosRot, focalActor); + focalActorPosRot = Actor_GetWorldPosShapeRot(focalActor); camera->focalActor = focalActor; focalActorHeight = Camera_GetFocalActorHeight(camera); @@ -7130,7 +7124,7 @@ void Camera_InitFocalActorSettings(Camera* camera, Actor* focalActor) { camera->focalActorAtOffset.y = focalActorHeight; camera->focalActorAtOffset.z = 0; - OLib_AddVecGeoToVec3f(&camera->eyeNext, &camera->at, &eyeNextAtOffset); + camera->eyeNext = OLib_AddVecGeoToVec3f(&camera->at, &eyeNextAtOffset); *eye = camera->eyeNext; camera->roll = 0; @@ -7403,9 +7397,9 @@ Vec3s Camera_Update(Camera* camera) { // Updates camera info on the actor it's tracking if (camera->focalActor == &GET_PLAYER(camera->play)->actor) { - Actor_GetWorldPosShapeRot(&focalActorPosRot, camera->focalActor); + focalActorPosRot = Actor_GetWorldPosShapeRot(camera->focalActor); } else { - Actor_GetWorld(&focalActorPosRot, camera->focalActor); + focalActorPosRot = Actor_GetWorld(camera->focalActor); } camera->unk_0F0.x = focalActorPosRot.pos.x - camera->focalActorPosRot.pos.x; camera->unk_0F0.y = focalActorPosRot.pos.y - camera->focalActorPosRot.pos.y; @@ -7584,21 +7578,21 @@ Vec3s Camera_Update(Camera* camera) { viewEye.x = camera->eye.x + camShake.eyeOffset.x; viewEye.y = camera->eye.y + camShake.eyeOffset.y; viewEye.z = camera->eye.z + camShake.eyeOffset.z; - OLib_Vec3fDiffToVecGeo(&sp3C, &viewEye, &viewAt); - Camera_CalcUpVec(&viewUp, sp3C.pitch, sp3C.yaw, camera->roll + camShake.upRollOffset); + sp3C = OLib_Vec3fDiffToVecGeo(&viewEye, &viewAt); + viewUp = Camera_CalcUpVec(sp3C.pitch, sp3C.yaw, camera->roll + camShake.upRollOffset); viewFov = camera->fov + CAM_BINANG_TO_DEG(camShake.fovOffset); } else if (sIsFalse) { //! condition is impossible to achieve viewAt = camera->at; viewEye = camera->eye; - OLib_Vec3fDiffToVecGeo(&sp3C, &viewEye, &viewAt); + sp3C = OLib_Vec3fDiffToVecGeo(&viewEye, &viewAt); viewUp = camera->up; viewFov = camera->fov; } else { viewAt = camera->at; viewEye = camera->eye; - OLib_Vec3fDiffToVecGeo(&sp3C, &viewEye, &viewAt); - Camera_CalcUpVec(&viewUp, sp3C.pitch, sp3C.yaw, camera->roll); + sp3C = OLib_Vec3fDiffToVecGeo(&viewEye, &viewAt); + viewUp = Camera_CalcUpVec(sp3C.pitch, sp3C.yaw, camera->roll); viewFov = camera->fov; } @@ -7918,41 +7912,35 @@ s32 Camera_ChangeActorCsCamIndex(Camera* camera, s32 bgCamIndex) { return bgCamIndex | 0x80000000; } -Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera) { - *dst = camera->inputDir; - return dst; +Vec3s Camera_GetInputDir(Camera* camera) { + return camera->inputDir; } s16 Camera_GetInputDirPitch(Camera* camera) { - Vec3s dir; + Vec3s dir = Camera_GetInputDir(camera); - Camera_GetInputDir(&dir, camera); return dir.x; } s16 Camera_GetInputDirYaw(Camera* camera) { - Vec3s dir; + Vec3s dir = Camera_GetInputDir(camera); - Camera_GetInputDir(&dir, camera); return dir.y; } -Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera) { - *dst = camera->camDir; - return dst; +Vec3s Camera_GetCamDir(Camera* camera) { + return camera->camDir; } s16 Camera_GetCamDirPitch(Camera* camera) { - Vec3s camDir; + Vec3s camDir = Camera_GetCamDir(camera); - Camera_GetCamDir(&camDir, camera); return camDir.x; } s16 Camera_GetCamDirYaw(Camera* camera) { - Vec3s camDir; + Vec3s camDir = Camera_GetCamDir(camera); - Camera_GetCamDir(&camDir, camera); return camDir.y; } @@ -8098,9 +8086,9 @@ s32 Camera_Copy(Camera* dstCam, Camera* srcCam) { if (dstCam->focalActor != NULL) { if (dstCam->focalActor == &GET_PLAYER(dstCam->play)->actor) { - Actor_GetWorldPosShapeRot(&dstCam->focalActorPosRot, dstCam->focalActor); + dstCam->focalActorPosRot = Actor_GetWorldPosShapeRot(dstCam->focalActor); } else { - Actor_GetWorld(&dstCam->focalActorPosRot, dstCam->focalActor); + dstCam->focalActorPosRot = Actor_GetWorld(dstCam->focalActor); } Camera_SetFocalActorAtOffset(dstCam, &dstCam->focalActorPosRot.pos); } @@ -8114,10 +8102,8 @@ s32 Camera_IsDbgCamEnabled(void) { return false; } -Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera) { - *quakeOffset = camera->quakeOffset; - - return quakeOffset; +Vec3f Camera_GetQuakeOffset(Camera* camera) { + return camera->quakeOffset; } void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3) { @@ -8155,9 +8141,9 @@ s16 func_800E0238(Camera* camera) { void Camera_SetFocalActor(Camera* camera, Actor* actor) { camera->focalActor = actor; if (actor == &GET_PLAYER(camera->play)->actor) { - Actor_GetWorldPosShapeRot(&camera->focalActorPosRot, actor); + camera->focalActorPosRot = Actor_GetWorldPosShapeRot(actor); } else { - Actor_GetWorld(&camera->focalActorPosRot, camera->focalActor); + camera->focalActorPosRot = Actor_GetWorld(camera->focalActor); } camera->animState = 0; diff --git a/src/code/z_olib.c b/src/code/z_olib.c index 848a48a72e..86fa656f9a 100644 --- a/src/code/z_olib.c +++ b/src/code/z_olib.c @@ -57,7 +57,7 @@ f32 OLib_ClampMaxDist(f32 val, f32 max) { /** * Takes the difference of points b and a, and creates a normal vector */ -Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b) { +Vec3f OLib_Vec3fDistNormalize(Vec3f* a, Vec3f* b) { Vec3f v1; Vec3f v2; f32 dist; @@ -72,15 +72,13 @@ Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b) { v2.y = v1.y / dist; v2.z = v1.z / dist; - *dest = v2; - - return dest; + return v2; } /** * Takes the spherical coordinate `sph`, and converts it into a x,y,z position */ -Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph) { +Vec3f OLib_VecSphToVec3f(VecSph* sph) { Vec3f v; f32 sinPitch; f32 cosPitch = Math_CosS(sph->pitch); @@ -94,28 +92,26 @@ Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph) { v.y = sph->r * cosPitch; v.z = sph->r * sinPitch * cosYaw; - *dest = v; - - return dest; + return v; } /** * Takes the geographic point `geo` and converts it into a x,y,z position */ -Vec3f* OLib_VecGeoToVec3f(Vec3f* dest, VecGeo* geo) { +Vec3f OLib_VecGeoToVec3f(VecGeo* geo) { VecSph sph; sph.r = geo->r; sph.pitch = 0x4000 - geo->pitch; sph.yaw = geo->yaw; - return OLib_VecSphToVec3f(dest, &sph); + return OLib_VecSphToVec3f(&sph); } /** * Takes the point `vec`, and converts it into a spherical coordinate */ -VecSph* OLib_Vec3fToVecSph(VecSph* dest, Vec3f* vec) { +VecSph OLib_Vec3fToVecSph(Vec3f* vec) { VecSph sph; f32 distXZSq = SQ(vec->x) + SQ(vec->z); f32 distXZ = sqrtf(distXZSq); @@ -133,118 +129,100 @@ VecSph* OLib_Vec3fToVecSph(VecSph* dest, Vec3f* vec) { sph.yaw = CAM_DEG_TO_BINANG(RAD_TO_DEG(Math_FAtan2F(vec->x, vec->z))); } - *dest = sph; - - return dest; + return sph; } /** * Takes the point `vec`, and converts it to a geographic coordinate */ -VecGeo* OLib_Vec3fToVecGeo(VecGeo* dest, Vec3f* vec) { - VecSph sph; +VecGeo OLib_Vec3fToVecGeo(Vec3f* vec) { + VecSph sph = OLib_Vec3fToVecSph(vec); - OLib_Vec3fToVecSph(&sph, vec); sph.pitch = 0x4000 - sph.pitch; - *dest = sph; - - return dest; + return sph; } /** * Takes the differences of positions `a` and `b`, and converts them to spherical coordinates */ -VecSph* OLib_Vec3fDiffToVecSph(VecSph* dest, Vec3f* a, Vec3f* b) { +VecSph OLib_Vec3fDiffToVecSph(Vec3f* a, Vec3f* b) { Vec3f diff; diff.x = b->x - a->x; diff.y = b->y - a->y; diff.z = b->z - a->z; - return OLib_Vec3fToVecSph(dest, &diff); + return OLib_Vec3fToVecSph(&diff); } /** * Takes the difference of positions `a` and `b`, and converts them to geographic coordinates */ -VecGeo* OLib_Vec3fDiffToVecGeo(VecGeo* dest, Vec3f* a, Vec3f* b) { +VecGeo OLib_Vec3fDiffToVecGeo(Vec3f* a, Vec3f* b) { Vec3f diff; diff.x = b->x - a->x; diff.y = b->y - a->y; diff.z = b->z - a->z; - return OLib_Vec3fToVecGeo(dest, &diff); + return OLib_Vec3fToVecGeo(&diff); } /** * Takes the sum of positions `a` (x,y,z coordinates) and `geo` (geographic coordinates), result is in x,y,z position * Identical to Quake_AddVec from OoT */ -Vec3f* OLib_AddVecGeoToVec3f(Vec3f* dest, Vec3f* a, VecGeo* geo) { +Vec3f OLib_AddVecGeoToVec3f(Vec3f* a, VecGeo* geo) { Vec3f sum; - Vec3f b; + Vec3f b = OLib_VecGeoToVec3f(geo); - OLib_VecGeoToVec3f(&b, geo); sum.x = a->x + b.x; sum.y = a->y + b.y; sum.z = a->z + b.z; - *dest = sum; - - return dest; + return sum; } /** * Gets the pitch/yaw of the vector formed from `b`-`a`, result is in radians */ -Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b) { +Vec3f OLib_Vec3fDiffRad(Vec3f* a, Vec3f* b) { Vec3f anglesRad; anglesRad.x = Math_FAtan2F(b->z - a->z, b->y - a->y); anglesRad.y = Math_FAtan2F(b->x - a->x, b->z - a->z); anglesRad.z = 0; - *dest = anglesRad; - - return dest; + return anglesRad; } /** * Gets the pitch/yaw of the vector formed from `b`-`a`, result is in degrees */ -Vec3f* OLib_Vec3fDiffDegF(Vec3f* dest, Vec3f* a, Vec3f* b) { - Vec3f anglesRad; +Vec3f OLib_Vec3fDiffDegF(Vec3f* a, Vec3f* b) { + Vec3f anglesRad = OLib_Vec3fDiffRad(a, b); Vec3f anglesDegrees; - OLib_Vec3fDiffRad(&anglesRad, a, b); - anglesDegrees.x = RAD_TO_DEG(anglesRad.x); anglesDegrees.y = RAD_TO_DEG(anglesRad.y); anglesDegrees.z = 0.0f; - *dest = anglesDegrees; - - return dest; + return anglesDegrees; } /** * Gets the pitch/yaw of the vector formed from `b`-`a`, result is in binary degrees */ -Vec3s* OLib_Vec3fDiffBinAng(Vec3s* dest, Vec3f* a, Vec3f* b) { - Vec3f anglesRad; +Vec3s OLib_Vec3fDiffBinAng(Vec3f* a, Vec3f* b) { + Vec3f anglesRad = OLib_Vec3fDiffRad(a, b); Vec3s anglesBinAng; - OLib_Vec3fDiffRad(&anglesRad, a, b); - anglesBinAng.x = CAM_DEG_TO_BINANG(RAD_TO_DEG(anglesRad.x)); anglesBinAng.y = CAM_DEG_TO_BINANG(RAD_TO_DEG(anglesRad.y)); anglesBinAng.z = 0.0f; - *dest = anglesBinAng; - - return dest; + return anglesBinAng; } /** @@ -255,9 +233,9 @@ void OLib_Vec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode) { switch (mode) { case OLIB_DIFF_OFFSET: - OLib_Vec3fDiffToVecGeo(&geo, &a->pos, b); + geo = OLib_Vec3fDiffToVecGeo(&a->pos, b); geo.yaw -= a->rot.y; - OLib_VecGeoToVec3f(dest, &geo); + *dest = OLib_VecGeoToVec3f(&geo); break; case OLIB_DIFF: @@ -280,9 +258,9 @@ void OLib_Vec3fAdd(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode) { switch (mode) { case OLIB_ADD_OFFSET: - OLib_Vec3fToVecGeo(&geo, b); + geo = OLib_Vec3fToVecGeo(b); geo.yaw += a->rot.y; - OLib_AddVecGeoToVec3f(dest, &a->pos, &geo); + *dest = OLib_AddVecGeoToVec3f(&a->pos, &geo); break; case OLIB_ADD: diff --git a/src/code/z_play.c b/src/code/z_play.c index 709b128ae5..d2110c1e22 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1129,10 +1129,10 @@ void Play_PostWorldDraw(PlayState* this) { void Play_DrawMain(PlayState* this) { GraphicsContext* gfxCtx = this->state.gfxCtx; - Lights* sp268; + Lights* lights; Vec3f temp; u8 sp25B = false; - f32 var_fv0; // zFar + f32 zFar; if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_UNK4) { PreRender_ApplyFiltersSlowlyDestroy(&this->pauseBgPreRender); @@ -1169,19 +1169,17 @@ void Play_DrawMain(PlayState* this) { gSPSegment(OVERLAY_DISP++, 0x02, this->sceneSegment); if (1) { - ShrinkWindow_Draw(gfxCtx); POLY_OPA_DISP = Play_SetFog(this, POLY_OPA_DISP); POLY_XLU_DISP = Play_SetFog(this, POLY_XLU_DISP); - // zFar - var_fv0 = this->lightCtx.zFar; - if (var_fv0 > 12800.0f) { - var_fv0 = 12800.0f; + zFar = this->lightCtx.zFar; + if (zFar > 12800.0f) { + zFar = 12800.0f; } - View_SetPerspective(&this->view, this->view.fovy, this->view.zNear, var_fv0); + View_SetPerspective(&this->view, this->view.fovy, this->view.zNear, zFar); View_Apply(&this->view, 0xF); @@ -1293,14 +1291,14 @@ void Play_DrawMain(PlayState* this) { Environment_Draw(this); } - sp268 = LightContext_NewLights(&this->lightCtx, gfxCtx); + lights = LightContext_NewLights(&this->lightCtx, gfxCtx); if (this->roomCtx.curRoom.enablePosLights || (MREG(93) != 0)) { - sp268->enablePosLights = true; + lights->enablePosLights = true; } - Lights_BindAll(sp268, this->lightCtx.listHead, NULL, this); - Lights_Draw(sp268, gfxCtx); + Lights_BindAll(lights, this->lightCtx.listHead, NULL, this); + Lights_Draw(lights, gfxCtx); if (1) { u32 roomDrawFlags = ((1) ? 1 : 0) | (((void)0, 1) ? 2 : 0); // FAKE: @@ -1313,12 +1311,12 @@ void Play_DrawMain(PlayState* this) { } if (this->skyboxCtx.skyboxShouldDraw) { - Vec3f sp78; + Vec3f quakeOffset; if (1) { - Camera_GetQuakeOffset(&sp78, GET_ACTIVE_CAM(this)); - Skybox_Draw(&this->skyboxCtx, gfxCtx, this->skyboxId, 0, this->view.eye.x + sp78.x, - this->view.eye.y + sp78.y, this->view.eye.z + sp78.z); + quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(this)); + Skybox_Draw(&this->skyboxCtx, gfxCtx, this->skyboxId, 0, this->view.eye.x + quakeOffset.x, + this->view.eye.y + quakeOffset.y, this->view.eye.z + quakeOffset.z); } } diff --git a/src/code/z_quake.c b/src/code/z_quake.c index 8225c6347f..19db37c63c 100644 --- a/src/code/z_quake.c +++ b/src/code/z_quake.c @@ -55,7 +55,7 @@ void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 yOffset, f32 atEyeOffset.x = 0; atEyeOffset.y = 0; atEyeOffset.z = 0; - OLib_Vec3fDiffToVecGeo(&eyeToAtGeo, eye, at); + eyeToAtGeo = OLib_Vec3fDiffToVecGeo(eye, at); // y shake geo.r = req->y * yOffset; @@ -63,7 +63,7 @@ void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 yOffset, f32 geo.pitch = eyeToAtGeo.pitch + req->orientation.x + 0x4000; geo.yaw = eyeToAtGeo.yaw + req->orientation.y; // apply y shake - OLib_AddVecGeoToVec3f(&atEyeOffset, &atEyeOffset, &geo); + atEyeOffset = OLib_AddVecGeoToVec3f(&atEyeOffset, &geo); // x shake geo.r = req->x * xOffset; @@ -71,7 +71,7 @@ void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 yOffset, f32 geo.pitch = eyeToAtGeo.pitch + req->orientation.x; geo.yaw = eyeToAtGeo.yaw + req->orientation.y + 0x4000; // apply x shake - OLib_AddVecGeoToVec3f(&atEyeOffset, &atEyeOffset, &geo); + atEyeOffset = OLib_AddVecGeoToVec3f(&atEyeOffset, &geo); } else { atEyeOffset.x = 0; atEyeOffset.y = req->y * yOffset; @@ -81,7 +81,7 @@ void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 yOffset, f32 geo.pitch = req->orientation.x; geo.yaw = req->orientation.y; - OLib_AddVecGeoToVec3f(&atEyeOffset, &atEyeOffset, &geo); + atEyeOffset = OLib_AddVecGeoToVec3f(&atEyeOffset, &geo); } shake->atOffset = shake->eyeOffset = atEyeOffset; @@ -752,7 +752,7 @@ void Distortion_Update(void) { player = GET_PLAYER(play); if (player != NULL) { - Actor_GetWorldPosShapeRot(&playerPosRot, &player->actor); + playerPosRot = Actor_GetWorldPosShapeRot(&player->actor); } depthPhaseStep = 359.2f; diff --git a/src/code/z_room.c b/src/code/z_room.c index 758bfaa385..5dc9c452fe 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -332,7 +332,7 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) { { Vec3f quakeOffset; - Camera_GetQuakeOffset(&quakeOffset, activeCam); + quakeOffset = Camera_GetQuakeOffset(activeCam); Prerender_DrawBackground2D( &gfx, roomShape->source, roomShape->tlut, roomShape->width, roomShape->height, roomShape->fmt, @@ -431,7 +431,8 @@ void Room_DrawImageMulti(PlayState* play, Room* room, u32 flags) { { Vec3f quakeOffset; - Camera_GetQuakeOffset(&quakeOffset, activeCam); + quakeOffset = Camera_GetQuakeOffset(activeCam); + Prerender_DrawBackground2D(&gfx, bgEntry->source, bgEntry->tlut, bgEntry->width, bgEntry->height, bgEntry->fmt, bgEntry->siz, bgEntry->tlutMode, bgEntry->tlutCount, (quakeOffset.x + quakeOffset.z) * 1.2f + quakeOffset.y * 0.6f, diff --git a/src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c b/src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c index e6e2694c3c..cf4e978e0a 100644 --- a/src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c +++ b/src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c @@ -83,7 +83,7 @@ void EffStk_Draw(Actor* thisx, PlayState* play) { Vec3f eye = activeCam->eye; Vec3f quakeOffset; - Camera_GetQuakeOffset(&quakeOffset, activeCam); + quakeOffset = Camera_GetQuakeOffset(activeCam); OPEN_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 4f11479db9..77414e0e45 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -144,7 +144,7 @@ void func_8091C178(EnButte* this, PlayState* play) { sp48 = Math_SinS(D_8091D3A0) * 250.0f; sp48 = CLAMP(sp48, 0, 255); - Camera_GetCamDir(&sp40, GET_ACTIVE_CAM(play)); + sp40 = Camera_GetCamDir(GET_ACTIVE_CAM(play)); Matrix_RotateYS(sp40.y, MTXMODE_NEW); Matrix_RotateXS(sp40.x, MTXMODE_APPLY); Matrix_RotateZS(sp40.z, MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index a1a7af60e0..e1be146e21 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -786,7 +786,7 @@ void EnHonotrap_DrawFlameGroup(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 200, 0, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0); - Camera_GetCamDir(&camDir, GET_ACTIVE_CAM(play)); + camDir = Camera_GetCamDir(GET_ACTIVE_CAM(play)); camDir.y += 0x8000; for (i = 0; i < ARRAY_COUNT(flameGroup->flameList); i++) { diff --git a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c index fa0bf78211..66d6505646 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c +++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c @@ -71,9 +71,7 @@ void OceffWipe_Draw(Actor* thisx, PlayState* play) { s32 i; Vec3f eye = GET_ACTIVE_CAM(play)->eye; Vtx* vtxPtr; - Vec3f quakeOffset; - - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); OPEN_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c index 59f9386a52..f87f4b8efd 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -65,9 +65,7 @@ void OceffWipe2_Draw(Actor* thisx, PlayState* play) { s32 pad[2]; Vec3f eye = GET_ACTIVE_CAM(play)->eye; Vtx* vtxPtr; - Vec3f quakeOffset; - - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); vtxPtr = sEponaSongFrustumVtx; diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c index 070fa9965f..d1564d7e12 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -66,9 +66,7 @@ void OceffWipe3_Draw(Actor* thisx, PlayState* play) { s32 pad[2]; Vec3f eye = GET_ACTIVE_CAM(play)->eye; Vtx* vtxPtr; - Vec3f quakeOffset; - - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); vtxPtr = sSariaSongFrustumVtx; diff --git a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c index cccb3e1699..7f5f43fee5 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c +++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c @@ -65,9 +65,7 @@ void OceffWipe4_Draw(Actor* thisx, PlayState* play) { s32 pad[2]; Vec3f eye = GET_ACTIVE_CAM(play)->eye; Vtx* vtxPtr; - Vec3f quakeOffset; - - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); if (this->counter < 16) { z = Math_SinS(this->counter * 0x400) * 1220.0f; diff --git a/src/overlays/actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c b/src/overlays/actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c index 3d98236b2a..43542180a4 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c +++ b/src/overlays/actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c @@ -88,7 +88,7 @@ void OceffWipe5_Draw(Actor* thisx, PlayState* play) { colorIndex = 0; } - Camera_GetQuakeOffset(&quakeOffset, activeCam); + quakeOffset = Camera_GetQuakeOffset(activeCam); if (this->counter < 32) { z = Math_SinS(this->counter << 9) * phi_fv1; diff --git a/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c b/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c index 601c62d5d3..0bf8d89d0d 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c +++ b/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c @@ -59,14 +59,11 @@ void OceffWipe6_Draw(Actor* thisx, PlayState* play) { u8 alpha; s32 i; s32 counter; - Vec3f activeCamEye; + Vec3f activeCamEye = GET_ACTIVE_CAM(play)->eye; s32 pad; - Vec3f quakeOffset; + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); s32 pad2; - activeCamEye = GET_ACTIVE_CAM(play)->eye; - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); - if (this->counter < 32) { counter = this->counter; z = Math_SinS(counter * 0x200) * 1220.0f; diff --git a/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c b/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c index 76946aa834..81c32a5e54 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c +++ b/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c @@ -65,11 +65,9 @@ void OceffWipe7_Draw(Actor* thisx, PlayState* play) { s32 counter; Vec3f activeCamEye = GET_ACTIVE_CAM(play)->eye; s32 pad; - Vec3f quakeOffset; + Vec3f quakeOffset = Camera_GetQuakeOffset(GET_ACTIVE_CAM(play)); s32 pad2; - Camera_GetQuakeOffset(&quakeOffset, GET_ACTIVE_CAM(play)); - if (this->counter < 32) { z = Math_SinS(this->counter * 0x200) * 1220.0f; } else {