aboutsummaryrefslogtreecommitdiff
path: root/src/camera/inc
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-06-12 22:34:23 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-06-12 23:18:57 +0200
commit5226dc466354cd15dd50b3c11660db7cb38eabed (patch)
treea885b4af03b88cb08709f87a1bb643241c505616 /src/camera/inc
parentb2af4c6bccc4263e5c7aa96efd0f94e1b7a38231 (diff)
downloadjancity-5226dc466354cd15dd50b3c11660db7cb38eabed.tar.gz
Split peripheral-related logic into its own component
This has several advantages: - `camera` no longer needs to define public functions for each peripheral type. - Peripheral-related is now no longer tighly coupled to human_player, so peripheral logic can be reused elsewhere e.g.: on menus. - Makes camera_update_touch consistent compared to equivalent functions, since now `pan` has now been moved to `camera` (as it should be).
Diffstat (limited to 'src/camera/inc')
-rw-r--r--src/camera/inc/camera.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/camera/inc/camera.h b/src/camera/inc/camera.h
index 93ad740..8356bd8 100644
--- a/src/camera/inc/camera.h
+++ b/src/camera/inc/camera.h
@@ -3,6 +3,7 @@
#include <mouse.h>
#include <pad.h>
+#include <peripheral.h>
#include <util.h>
#include <stdbool.h>
@@ -15,6 +16,7 @@ struct camera
{
int x, y, x_speed, y_speed;
unsigned int xt, yt;
+ bool pan;
struct cursor
{
@@ -33,9 +35,7 @@ struct camera
extern struct sprite cursor_sprite;
-void camera_update_pad(struct camera *cam, const struct pad *p);
-void camera_update_mouse(struct camera *cam, const struct mouse *m);
-bool camera_update_touch(struct camera *cam, const struct mouse *m);
+void camera_update(struct camera *cam, const union peripheral *p);
bool camera_translate(const struct camera *cam, const struct util_rect *dim, short *x, short *y);
void cursor_init(struct cursor *c);
bool cursor_collision(const struct camera *cam, const struct util_rect *d);