aboutsummaryrefslogtreecommitdiff
path: root/src/camera
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-02-08 15:16:57 +0100
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-03-30 08:20:20 +0200
commit9f9c0226d03c060c3c5b12b7a8d37d2e8b372a74 (patch)
tree4fbc9523da206df65b9b68896f48bfd7c2243ac4 /src/camera
parent6fe03359d8ec1b558f50a75fbf52c496a85939a0 (diff)
downloadjancity-9f9c0226d03c060c3c5b12b7a8d37d2e8b372a74.tar.gz
Refresh camera and terrain rendering on screen resize
Diffstat (limited to 'src/camera')
-rw-r--r--src/camera/inc/camera.h4
-rw-r--r--src/camera/src/camera.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/camera/inc/camera.h b/src/camera/inc/camera.h
index 1daebd2..151ea74 100644
--- a/src/camera/inc/camera.h
+++ b/src/camera/inc/camera.h
@@ -23,6 +23,10 @@ struct camera
CURSOR_STATE_IDLE,
CURSOR_STATE_PRESSED
} state;
+ struct
+ {
+ int last_w, last_h;
+ } screen;
} cursor;
};
diff --git a/src/camera/src/camera.c b/src/camera/src/camera.c
index 4b046e1..5146108 100644
--- a/src/camera/src/camera.c
+++ b/src/camera/src/camera.c
@@ -45,6 +45,10 @@ static void cursor_update(struct camera *const cam, const struct pad *const p)
struct cursor *const c = &cam->cursor;
enum {STEP = 4};
+ if (c->screen.last_w != screen_w
+ || c->screen.last_h != screen_h)
+ cursor_init(c);
+
if (pad_pressed(p, PAD_KEY_LEFT)
&& (c->x - STEP)
&& (!cam->x || c->x != c->x_init))
@@ -97,6 +101,8 @@ void cursor_init(struct cursor *const c)
{
c->x = c->x_init = (screen_w / 2) - CURSOR_WIDTH;
c->y = c->y_init = (screen_h / 2) - CURSOR_HEIGHT;
+ c->screen.last_w = screen_w;
+ c->screen.last_h = screen_h;
}
static void update_speed(struct camera *const cam, const struct pad *const p)