From 13218f8cfab6bc02fc57a2eef582ab93056fb59c Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 1 Nov 2025 21:08:41 -0700 Subject: Slow down camera movement when pressing shift --- src/plugins/viewer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/viewer.c b/src/plugins/viewer.c index ba699cc..08e4d57 100644 --- a/src/plugins/viewer.c +++ b/src/plugins/viewer.c @@ -57,6 +57,7 @@ typedef struct CameraCommand { bool CameraMoveRight : 1; bool CameraMoveForward : 1; bool CameraMoveBackward : 1; + bool CameraSlow : 1; // When true, move more slowly. bool CameraIsRotating : 1; // When true, subsequent mouse movements cause the // camera to rotate. } CameraCommand; @@ -203,6 +204,7 @@ static CameraCommand make_camera_command_from_input(GfxApp* app) { .CameraMoveRight = gfx_app_is_key_pressed(app, KeyD), .CameraMoveForward = gfx_app_is_key_pressed(app, KeyW), .CameraMoveBackward = gfx_app_is_key_pressed(app, KeyS), + .CameraSlow = gfx_app_is_key_pressed(app, KeyLShift), .CameraIsRotating = gfx_app_is_mouse_button_pressed(app, LMB), }; } @@ -218,8 +220,10 @@ static void update_camera( (R)(command.CameraMoveRight ? 1 : 0); const R move_y = (R)(command.CameraMoveForward ? 1 : 0) + (R)(command.CameraMoveBackward ? -1 : 0); - const vec2 translation = vec2_scale( - vec2_normalize(vec2_make(move_x, move_y)), controller->camera_speed * dt); + const R speed_factor = command.CameraSlow ? 0.3 : 1.0; + const vec2 translation = vec2_scale( + vec2_normalize(vec2_make(move_x, move_y)), + controller->camera_speed * speed_factor * dt); spatial3_move_right(camera, translation.x); spatial3_move_forwards(camera, translation.y); -- cgit v1.2.3