diff options
Diffstat (limited to 'src/camera')
| -rw-r--r-- | src/camera/inc/camera.h | 4 | ||||
| -rw-r--r-- | src/camera/src/camera.c | 6 |
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) |
