From b9e49cdca6a6b8fb65f3cc7679911c7fff41cf57 Mon Sep 17 00:00:00 2001 From: Ian McFarlane <70479099+the-argus@users.noreply.github.com> Date: Fri, 3 Feb 2023 13:52:15 +0000 Subject: [PATCH] rcamera: move y clamp to before 3d projection (#2905) --- src/rcamera.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/rcamera.h b/src/rcamera.h index 1b77e19a..70221b34 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -405,6 +405,9 @@ void UpdateCamera(Camera *camera) } break; case CAMERA_FIRST_PERSON: // Camera moves as in a first-person game, controls are configurable { + // NOTE: On CAMERA_FIRST_PERSON player Y-movement is limited to player 'eyes position' + camera->position.y = CAMERA.playerEyesPosition; + camera->position.x += (sinf(CAMERA.angle.x)*direction[MOVE_BACK] - sinf(CAMERA.angle.x)*direction[MOVE_FRONT] - cosf(CAMERA.angle.x)*direction[MOVE_LEFT] + @@ -479,10 +482,6 @@ void UpdateCamera(Camera *camera) camera->target.y = camera->position.y - matTransform.m13; camera->target.z = camera->position.z - matTransform.m14; - // Camera position update - // NOTE: On CAMERA_FIRST_PERSON player Y-movement is limited to player 'eyes position' - camera->position.y = CAMERA.playerEyesPosition; - // Camera swinging (y-movement), only when walking (some key pressed) for (int i = 0; i < 6; i++) if (direction[i]) { swingCounter += GetFrameTime(); break; } camera->position.y -= sinf(2*PI*CAMERA_FIRST_PERSON_STEP_FREQUENCY*swingCounter)*CAMERA_FIRST_PERSON_SWINGING_DELTA;