aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/app.cpp
diff options
context:
space:
mode:
authorEmil A. Overbeck <emil.a.overbeck@gmail.com>2026-07-19 03:17:57 +0200
committerEmil A. Overbeck <emil.a.overbeck@gmail.com>2026-07-19 03:17:57 +0200
commit37b5f7c8bd0b4c0e297614577edb7b634c13d700 (patch)
tree7ded250547e3ffe712095dd2348674361141b434 /src/engine/app.cpp
parentc217861ab62987b798835194786dc99424e1804e (diff)
downloadforts_clone-37b5f7c8bd0b4c0e297614577edb7b634c13d700.tar.gz
forts_clone-37b5f7c8bd0b4c0e297614577edb7b634c13d700.zip
WASD bindings
Diffstat (limited to 'src/engine/app.cpp')
-rw-r--r--src/engine/app.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/engine/app.cpp b/src/engine/app.cpp
index 2108316..fa1155c 100644
--- a/src/engine/app.cpp
+++ b/src/engine/app.cpp
@@ -32,10 +32,13 @@ App::~App() {
}
static void update_camera(Camera& cam, const Input& input, float dt) {
- if (input.key_down(SDLK_LEFT)) cam.pan({-cam.pan_speed * dt / cam.zoom(), 0.0f});
- if (input.key_down(SDLK_RIGHT)) cam.pan({ cam.pan_speed * dt / cam.zoom(), 0.0f});
- if (input.key_down(SDLK_UP)) cam.pan({0.0f, cam.pan_speed * dt / cam.zoom()});
- if (input.key_down(SDLK_DOWN)) cam.pan({0.0f, -cam.pan_speed * dt / cam.zoom()});
+ // WASD mirrors the arrow keys. Build modes are on the number row, so the
+ // letters are free.
+ const float step = cam.pan_speed * dt / cam.zoom();
+ if (input.key_down(SDLK_LEFT) || input.key_down(SDLK_A)) cam.pan({-step, 0.0f});
+ if (input.key_down(SDLK_RIGHT) || input.key_down(SDLK_D)) cam.pan({ step, 0.0f});
+ if (input.key_down(SDLK_UP) || input.key_down(SDLK_W)) cam.pan({0.0f, step});
+ if (input.key_down(SDLK_DOWN) || input.key_down(SDLK_S)) cam.pan({0.0f, -step});
if (input.mouse_down(SDL_BUTTON_MIDDLE)) {
auto d = input.mouse_delta();
cam.pan({-d.x / cam.zoom(), d.y / cam.zoom()});