summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/functions.h34
-rw-r--r--src/code/cutscene_camera.c4
-rw-r--r--src/code/z_actor.c17
-rw-r--r--src/code/z_camera.c444
-rw-r--r--src/code/z_olib.c82
-rw-r--r--src/code/z_play.c30
-rw-r--r--src/code/z_quake.c10
-rw-r--r--src/code/z_room.c5
-rw-r--r--src/overlays/actors/ovl_Eff_Stk/z_eff_stk.c2
-rw-r--r--src/overlays/actors/ovl_En_Butte/z_en_butte.c2
-rw-r--r--src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c2
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c4
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c4
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c4
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c4
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe5/z_oceff_wipe5.c2
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c7
-rw-r--r--src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c4
18 files changed, 303 insertions, 358 deletions
diff --git a/include/functions.h b/include/functions.h
index 84c6c0615..0e0e3dcbb 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 24f6fcc18..d5f3ef4a3 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 aacee620b..887e08dcd 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 a64793632..b0721592a 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 848a48a72..86fa656f9 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 709b128ae..d2110c1e2 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 8225c6347..19db37c63 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 758bfaa38..5dc9c452f 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 e6e2694c3..cf4e978e0 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 4f11479db..77414e0e4 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 a1a7af60e..e1be146e2 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 fa0bf7821..66d650564 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 59f9386a5..f87f4b8ef 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 070fa9965..d1564d7e1 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 cccb3e169..7f5f43fee 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 3d98236b2..43542180a 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 601c62d5d..0bf8d89d0 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 76946aa83..81c32a5e5 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 {