summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <47598039+engineer124@users.noreply.github.com>2023-11-22 16:10:55 +1100
committerGitHub <noreply@github.com>2023-11-22 16:10:55 +1100
commit5ef277df2db5dd54c02c098ec88777f63680f6c3 (patch)
tree4116b487664fd329b91c1a5bb77b9ea545b2b40d /src/code
parent2b4610670fcd577d0684fdc912e8c81155845062 (diff)
Animation Cleanup: En_P* (#1507)
* anim P cleanup * PR Review * PR Review * Postbox Idle
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_actor.c15
-rw-r--r--src/code/z_camera.c47
-rw-r--r--src/code/z_message.c24
-rw-r--r--src/code/z_sub_s.c19
4 files changed, 55 insertions, 50 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 1277a7e1a..7d2df00da 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -2096,14 +2096,14 @@ s32 func_800B886C(Actor* actor, PlayState* play) {
return false;
}
-void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* x, s16* y) {
+void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* posX, s16* posY) {
Vec3f projectedPos;
f32 invW;
Actor_GetProjectedPos(play, &actor->focus.pos, &projectedPos, &invW);
- *x = PROJECTED_TO_SCREEN_X(projectedPos, invW);
- *y = PROJECTED_TO_SCREEN_Y(projectedPos, invW);
+ *posX = PROJECTED_TO_SCREEN_X(projectedPos, invW);
+ *posY = PROJECTED_TO_SCREEN_Y(projectedPos, invW);
}
bool Actor_OnScreen(PlayState* play, Actor* actor) {
@@ -3499,12 +3499,13 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) {
}
bool Target_InTargetableScreenRegion(PlayState* play, Actor* actor) {
- s16 x;
- s16 y;
+ s16 screenPosX;
+ s16 screenPosY;
- Actor_GetScreenPos(play, actor, &x, &y);
+ Actor_GetScreenPos(play, actor, &screenPosX, &screenPosY);
- return (x > -20) && (x < gScreenWidth + 20) && (y > -160) && (y < gScreenHeight + 160);
+ return (screenPosX > -20) && (screenPosX < gScreenWidth + 20) && (screenPosY > -160) &&
+ (screenPosY < gScreenHeight + 160);
}
/**
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 32c5b0c07..00d2978dd 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -1313,8 +1313,8 @@ s32 Camera_CalcAtForScreen(Camera* camera, VecGeo* eyeAtDir, f32 yOffset, f32* f
s32 pad;
f32 clampedDeltaY;
f32 clampedAbsScreenY;
- s16 absScreenY;
- s16 screenY;
+ s16 absScreenPosY;
+ s16 screenPosY;
PosRot* focalActorPosRot = &camera->focalActorPosRot;
f32 focalActorHeight = Camera_GetFocalActorHeight(camera);
@@ -1322,21 +1322,21 @@ s32 Camera_CalcAtForScreen(Camera* camera, VecGeo* eyeAtDir, f32 yOffset, f32* f
focalActorAtOffsetTarget.x = 0.0f;
focalActorAtOffsetTarget.z = 0.0f;
- Actor_GetScreenPos(camera->play, camera->focalActor, &absScreenY, &screenY);
- screenY -= SCREEN_HEIGHT / 2;
- absScreenY = ABS(screenY);
+ Actor_GetScreenPos(camera->play, camera->focalActor, &absScreenPosY, &screenPosY);
+ screenPosY -= SCREEN_HEIGHT / 2;
+ absScreenPosY = ABS(screenPosY);
// result unused
- clampedAbsScreenY = OLib_ClampMaxDist(absScreenY / (f32)(SCREEN_HEIGHT / 2), 1.0f);
+ clampedAbsScreenY = OLib_ClampMaxDist(absScreenPosY / (f32)(SCREEN_HEIGHT / 2), 1.0f);
deltaY = focalActorPosRot->pos.y - *focalActorPosY;
clampedDeltaY = OLib_ClampMaxDist(deltaY, deltaYMax);
- if (absScreenY > (SCREEN_HEIGHT / 4)) {
- absScreenY = SCREEN_HEIGHT / 4;
+ if (absScreenPosY > (SCREEN_HEIGHT / 4)) {
+ absScreenPosY = SCREEN_HEIGHT / 4;
}
- clampedAbsScreenY = OLib_ClampMaxDist(absScreenY / (f32)(SCREEN_HEIGHT / 4), 1.0f);
+ clampedAbsScreenY = OLib_ClampMaxDist(absScreenPosY / (f32)(SCREEN_HEIGHT / 4), 1.0f);
focalActorAtOffsetTarget.y -= clampedDeltaY * clampedAbsScreenY * clampedAbsScreenY;
Camera_ScaledStepToCeilVec3f(&focalActorAtOffsetTarget, &camera->focalActorAtOffset, camera->xzOffsetUpdateRate,
@@ -3785,8 +3785,8 @@ s32 Camera_Battle1(Camera* camera) {
rwData->unk_1A &= ~0x10;
} else if (!camera->play->envCtx.skyboxDisabled || (roData->interfaceFlags & BATTLE1_FLAG_0)) {
if (func_800CBC84(camera, at, &spC4, 0) != 0) {
- s16 screenX;
- s16 screenY;
+ s16 screenPosX;
+ s16 screenPosY;
rwData->unk_1A |= 0x1000;
spF8 = OLib_Vec3fDist(at, &focalActorFocus->pos);
@@ -3796,10 +3796,10 @@ s32 Camera_Battle1(Camera* camera) {
spF4 = OLib_Vec3fDist(at, &spC4.pos);
spF8 += (rwData->unk_1A & 0x10) ? 40.0f : 0.0f;
- Actor_GetScreenPos(camera->play, camera->focalActor, &screenX, &screenY);
+ Actor_GetScreenPos(camera->play, camera->focalActor, &screenPosX, &screenPosY);
- if ((spF4 < spF8) ||
- ((screenX >= 0) && (screenX <= SCREEN_WIDTH) && (screenY >= 0) && (screenY <= SCREEN_HEIGHT))) {
+ if ((spF4 < spF8) || ((screenPosX >= 0) && (screenPosX <= SCREEN_WIDTH) && (screenPosY >= 0) &&
+ (screenPosY <= SCREEN_HEIGHT))) {
rwData->unk_1A |= 0x10;
spB4.yaw = spA4.yaw + 0x8000;
spB4.pitch = -spA4.pitch;
@@ -4140,18 +4140,18 @@ s32 Camera_KeepOn1(Camera* camera) {
rwData->unk_18 &= ~0x10;
} else if (!camera->play->envCtx.skyboxDisabled || (roData->interfaceFlags & KEEPON1_FLAG_0)) {
if (func_800CBC84(camera, at, &sp7C, 0) != 0) {
- s16 screenX;
- s16 screenY;
+ s16 screenPosX;
+ s16 screenPosY;
rwData->unk_18 |= 0x1000;
spF8 = OLib_Vec3fDist(at, &focalActorFocus->pos);
spF4 = OLib_Vec3fDist(at, &sp7C.pos);
spF8 += (rwData->unk_18 & 0x10) ? 40 : 0.0f;
- Actor_GetScreenPos(camera->play, camera->focalActor, &screenX, &screenY);
+ Actor_GetScreenPos(camera->play, camera->focalActor, &screenPosX, &screenPosY);
- if ((spF4 < spF8) ||
- ((screenX >= 0) && (screenX <= SCREEN_WIDTH) && (screenY >= 0) && (screenY <= SCREEN_HEIGHT))) {
+ if ((spF4 < spF8) || ((screenPosX >= 0) && (screenPosX <= SCREEN_WIDTH) && (screenPosY >= 0) &&
+ (screenPosY <= SCREEN_HEIGHT))) {
rwData->unk_18 |= 0x10;
spE0.yaw = (s16)(spD0.yaw + 0x8000);
spE0.pitch = -spD0.pitch;
@@ -5642,8 +5642,8 @@ s32 Camera_Demo1(Camera* camera) {
PosRot* targetPosRot = &camera->targetPosRot;
f32 temp_f0;
Actor* sp98[1];
- s16 screenX;
- s16 screenY;
+ s16 screenPosX;
+ s16 screenPosY;
s32 phi_v0;
VecGeo sp88;
PosRot sp74;
@@ -5671,10 +5671,11 @@ s32 Camera_Demo1(Camera* camera) {
camera->animState++;
}
- Actor_GetScreenPos(camera->play, camera->target, &screenX, &screenY);
+ Actor_GetScreenPos(camera->play, camera->target, &screenPosX, &screenPosY);
temp_f0 = rwData->unk_0C.r;
- if ((screenX > 20) && (screenX < (SCREEN_WIDTH - 20)) && (screenY > 40) && (screenY < (SCREEN_HEIGHT - 40))) {
+ if ((screenPosX > 20) && (screenPosX < (SCREEN_WIDTH - 20)) && (screenPosY > 40) &&
+ (screenPosY < (SCREEN_HEIGHT - 40))) {
if (temp_f0 < 700.0f) {
phi_v0 = 0;
} else {
diff --git a/src/code/z_message.c b/src/code/z_message.c
index 4ebcda37f..63330e507 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -5208,11 +5208,11 @@ void Message_Update(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx;
InterfaceContext* interfaceCtx = &play->interfaceCtx;
Input* input = CONTROLLER1(&play->state);
- s16 averageY;
- s16 sp50;
+ s16 avgScreenPosY;
+ s16 screenPosX;
u16 temp_v1_2;
- s16 sp4C;
- s16 sp4A;
+ s16 playerScreenPosY;
+ s16 actorScreenPosY;
s16 sp48;
s32 sp44;
s32 sp40;
@@ -5223,7 +5223,7 @@ void Message_Update(PlayState* play) {
msgCtx->stickAdjX = input->rel.stick_x;
msgCtx->stickAdjY = input->rel.stick_y;
- averageY = 0;
+ avgScreenPosY = 0;
// If stickAdj is held, set a delay to allow the cursor to read the next input.
// The first delay is given a longer time than all subsequent delays.
@@ -5309,12 +5309,12 @@ void Message_Update(PlayState* play) {
}
if (temp) {
if (msgCtx->talkActor != NULL) {
- Actor_GetScreenPos(play, &GET_PLAYER(play)->actor, &sp50, &sp4C);
- Actor_GetScreenPos(play, msgCtx->talkActor, &sp50, &sp4A);
- if (sp4C >= sp4A) {
- averageY = ((sp4C - sp4A) / 2) + sp4A;
+ Actor_GetScreenPos(play, &GET_PLAYER(play)->actor, &screenPosX, &playerScreenPosY);
+ Actor_GetScreenPos(play, msgCtx->talkActor, &screenPosX, &actorScreenPosY);
+ if (playerScreenPosY >= actorScreenPosY) {
+ avgScreenPosY = ((playerScreenPosY - actorScreenPosY) / 2) + actorScreenPosY;
} else {
- averageY = ((sp4A - sp4C) / 2) + sp4C;
+ avgScreenPosY = ((actorScreenPosY - playerScreenPosY) / 2) + playerScreenPosY;
}
} else {
msgCtx->textboxX = msgCtx->textboxXTarget;
@@ -5326,13 +5326,13 @@ void Message_Update(PlayState* play) {
if ((u32)msgCtx->textBoxPos == 0) {
if ((play->sceneId == SCENE_UNSET_04) || (play->sceneId == SCENE_UNSET_05) ||
(play->sceneId == SCENE_UNSET_06)) {
- if (averageY < 0x64) {
+ if (avgScreenPosY < 100) {
msgCtx->textboxYTarget = sTextboxLowerYPositions[var_v1];
} else {
msgCtx->textboxYTarget = sTextboxUpperYPositions[var_v1];
}
} else {
- if (averageY < 0xA0) {
+ if (avgScreenPosY < 160) {
msgCtx->textboxYTarget = sTextboxLowerYPositions[var_v1];
} else {
msgCtx->textboxYTarget = sTextboxUpperYPositions[var_v1];
diff --git a/src/code/z_sub_s.c b/src/code/z_sub_s.c
index 3cc7ffb87..f5a233ede 100644
--- a/src/code/z_sub_s.c
+++ b/src/code/z_sub_s.c
@@ -826,11 +826,11 @@ s32 SubS_CopyPointFromPathCheckBounds(Path* path, s32 pointIndex, Vec3f* dst) {
*/
s32 SubS_Offer(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, s32 itemId, SubSOfferMode mode) {
s32 canAccept = false;
- s16 x;
- s16 y;
+ s16 screenPosX;
+ s16 screenPosY;
f32 xzDistToPlayerTemp;
- Actor_GetScreenPos(play, actor, &x, &y);
+ Actor_GetScreenPos(play, actor, &screenPosX, &screenPosY);
switch (mode) {
case SUBS_OFFER_MODE_GET_ITEM:
@@ -847,7 +847,8 @@ s32 SubS_Offer(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, s32 itemI
case SUBS_OFFER_MODE_ONSCREEN:
//! @bug: Both x and y conditionals are always true, || should be an &&
- if (((x >= 0) || (x < SCREEN_WIDTH)) && ((y >= 0) || (y < SCREEN_HEIGHT))) {
+ if (((screenPosX >= 0) || (screenPosX < SCREEN_WIDTH)) &&
+ ((screenPosY >= 0) || (screenPosY < SCREEN_HEIGHT))) {
canAccept = Actor_OfferTalkExchange(actor, play, xzRange, yRange, itemId);
}
break;
@@ -864,8 +865,9 @@ s32 SubS_Offer(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, s32 itemI
case SUBS_OFFER_MODE_AUTO_TARGETED:
//! @bug: Both x and y conditionals are always true, || should be an &&
- if (((x >= 0) || (x < SCREEN_WIDTH)) && ((y >= 0) || (y < SCREEN_HEIGHT)) &&
- (fabsf(actor->playerHeightRel) <= yRange) && (actor->xzDistToPlayer <= xzRange) && actor->isLockedOn) {
+ if (((screenPosX >= 0) || (screenPosX < SCREEN_WIDTH)) &&
+ ((screenPosY >= 0) || (screenPosY < SCREEN_HEIGHT)) && (fabsf(actor->playerHeightRel) <= yRange) &&
+ (actor->xzDistToPlayer <= xzRange) && actor->isLockedOn) {
actor->flags |= ACTOR_FLAG_10000;
canAccept = Actor_OfferTalkExchange(actor, play, xzRange, yRange, itemId);
}
@@ -873,8 +875,9 @@ s32 SubS_Offer(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, s32 itemI
case SUBS_OFFER_MODE_AUTO_NEARBY_ONSCREEN:
//! @bug: Both x and y conditionals are always true, || should be an &&
- if (((x >= 0) || (x < SCREEN_WIDTH)) && ((y >= 0) || (y < SCREEN_HEIGHT)) &&
- (fabsf(actor->playerHeightRel) <= yRange) && (actor->xzDistToPlayer <= xzRange)) {
+ if (((screenPosX >= 0) || (screenPosX < SCREEN_WIDTH)) &&
+ ((screenPosY >= 0) || (screenPosY < SCREEN_HEIGHT)) && (fabsf(actor->playerHeightRel) <= yRange) &&
+ (actor->xzDistToPlayer <= xzRange)) {
actor->flags |= ACTOR_FLAG_10000;
canAccept = Actor_OfferTalkExchange(actor, play, xzRange, yRange, itemId);
}