From 05ca30481c0857c673a4341a1550b8216028fd83 Mon Sep 17 00:00:00 2001 From: rodri Date: Thu, 11 Apr 2024 12:21:30 +0000 Subject: add a way to control zoom with the keyboard. --- dat.h | 2 ++ main.c | 32 ++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/dat.h b/dat.h index 38a7179..5c9b45b 100644 --- a/dat.h +++ b/dat.h @@ -11,6 +11,8 @@ enum { KR→, KR↺, KR↻, + Kzoomin, + Kzoomout, Kcam0, Kcam1, Kcam2, diff --git a/main.c b/main.c index 1145ed8..da0b71c 100644 --- a/main.c +++ b/main.c @@ -32,6 +32,8 @@ Rune keys[Ke] = { [KR→] = 'd', [KR↺] = 'q', [KR↻] = 'e', + [Kzoomin] = 'z', + [Kzoomout] = 'x', [Kcam0] = KF|1, [Kcam1] = KF|2, [Kcam2] = KF|3, @@ -434,6 +436,20 @@ getshader(char *name) return nil; } +void +zoomin(void) +{ + maincam->fov = fclamp(maincam->fov - 1*DEG, 1*DEG, 359*DEG); + reloadcamera(maincam); +} + +void +zoomout(void) +{ + maincam->fov = fclamp(maincam->fov + 1*DEG, 1*DEG, 359*DEG); + reloadcamera(maincam); +} + void drawstats(void) { @@ -576,14 +592,10 @@ mouse(void) mmb(); if((mctl->buttons & 4) != 0) rmb(); - if((mctl->buttons & 8) != 0){ - maincam->fov = fclamp(maincam->fov - 1*DEG, 1*DEG, 359*DEG); - reloadcamera(maincam); - } - if((mctl->buttons & 16) != 0){ - maincam->fov = fclamp(maincam->fov + 1*DEG, 1*DEG, 359*DEG); - reloadcamera(maincam); - } + if((mctl->buttons & 8) != 0) + zoomin(); + if((mctl->buttons & 16) != 0) + zoomout(); } void @@ -673,6 +685,10 @@ handlekeys(void) placecamera(maincam, maincam->p, maincam->bz, qrotate(maincam->by, maincam->bz, 1*DEG)); if(kdown & 1<p, maincam->bz, qrotate(maincam->by, maincam->bz, -1*DEG)); + if(kdown & 1<