aboutsummaryrefslogtreecommitdiff
path: root/src/mouse
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-03-30 08:36:16 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-03-31 06:50:33 +0200
commit45337576dff70a3b5991b79d0fe13420110b3594 (patch)
treed3f18d3d92a9da8c7d2dd9e596b44eb579cf368c /src/mouse
parent82c61e3d1d97c6e829bfbe0e35539abfe75d1380 (diff)
downloadrts-45337576dff70a3b5991b79d0fe13420110b3594.tar.gz
Implement touch controls
Diffstat (limited to 'src/mouse')
-rw-r--r--src/mouse/inc/mouse.h3
-rw-r--r--src/mouse/sdl-1.2/src/mouse.c4
-rw-r--r--src/mouse/src/mouse.c5
3 files changed, 11 insertions, 1 deletions
diff --git a/src/mouse/inc/mouse.h b/src/mouse/inc/mouse.h
index a4b4044..60b63d3 100644
--- a/src/mouse/inc/mouse.h
+++ b/src/mouse/inc/mouse.h
@@ -16,12 +16,13 @@ enum mouse_button
struct mouse
{
- short x, y;
+ short x, y, dx, dy;
int mask, oldmask;
};
void mouse_init(struct mouse *m);
void mouse_update(struct mouse *m);
+bool mouse_pressed(const struct mouse *m, enum mouse_button b);
bool mouse_justpressed(const struct mouse *m, enum mouse_button b);
bool mouse_justreleased(const struct mouse *m, enum mouse_button b);
diff --git a/src/mouse/sdl-1.2/src/mouse.c b/src/mouse/sdl-1.2/src/mouse.c
index a0a6d90..cee4549 100644
--- a/src/mouse/sdl-1.2/src/mouse.c
+++ b/src/mouse/sdl-1.2/src/mouse.c
@@ -39,6 +39,7 @@ static void mouse_event(const SDL_MouseMotionEvent *const ev,
void mouse_update(struct mouse *const m)
{
+ const short x = m->x, y = m->y;
SDL_Event ev;
int n;
@@ -71,6 +72,9 @@ void mouse_update(struct mouse *const m)
}
}
+ m->dx = m->x - x;
+ m->dy = m->y - y;
+
end:
if (n < 0)
diff --git a/src/mouse/src/mouse.c b/src/mouse/src/mouse.c
index 5f5c059..bec978d 100644
--- a/src/mouse/src/mouse.c
+++ b/src/mouse/src/mouse.c
@@ -1,6 +1,11 @@
#include <mouse.h>
#include <stdbool.h>
+bool mouse_pressed(const struct mouse *const m, const enum mouse_button b)
+{
+ return m->mask & (1 << b);
+}
+
bool mouse_justpressed(const struct mouse *const m,
const enum mouse_button b)
{