aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-06-06 00:39:18 +0200
committerkdx <kikoodx@paranoici.org>2023-06-06 00:39:18 +0200
commit9d111b8b3a03513bfb15349036c9a9e3465bc865 (patch)
treef6d68ab1b76483e7094238d4c2a03dc940a09b98
parent70b965771d71876d63c3e760aadf23188a3942e3 (diff)
downloadtzr-9d111b8b3a03513bfb15349036c9a9e3465bc865.tar.gz
complete mouse API
-rw-r--r--headers/TZR_mouse.h8
-rw-r--r--sources/TZR_MouseDown.c8
-rw-r--r--sources/TZR_MouseGetState.c7
-rw-r--r--sources/TZR_MousePressed.c7
-rw-r--r--sources/TZR_MouseReleased.c7
-rw-r--r--sources/TZR_MouseUp.c8
6 files changed, 45 insertions, 0 deletions
diff --git a/headers/TZR_mouse.h b/headers/TZR_mouse.h
index bca21a3..517c34f 100644
--- a/headers/TZR_mouse.h
+++ b/headers/TZR_mouse.h
@@ -1,3 +1,11 @@
#pragma once
+#include "TZR_types.h"
+/* `x` and `y` are out values and nullable. */
void TZR_MouseGetPosition(int *x, int *y);
+
+TZR_KeyState TZR_MouseGetState(uint8_t button);
+bool TZR_MouseDown(uint8_t button);
+bool TZR_MouseUp(uint8_t button);
+bool TZR_MouseReleased(uint8_t button);
+bool TZR_MousePressed(uint8_t button);
diff --git a/sources/TZR_MouseDown.c b/sources/TZR_MouseDown.c
new file mode 100644
index 0000000..a36f46c
--- /dev/null
+++ b/sources/TZR_MouseDown.c
@@ -0,0 +1,8 @@
+#include "TZR_mouse.h"
+
+bool
+TZR_MouseDown(uint8_t button)
+{
+ const TZR_KeyState state = TZR_MouseGetState(button);
+ return (state == TZR_KEYSTATE_DOWN || state == TZR_KEYSTATE_PRESS);
+}
diff --git a/sources/TZR_MouseGetState.c b/sources/TZR_MouseGetState.c
new file mode 100644
index 0000000..dad4be2
--- /dev/null
+++ b/sources/TZR_MouseGetState.c
@@ -0,0 +1,7 @@
+#include "TZR_globals.h"
+
+TZR_KeyState
+TZR_MouseGetState(uint8_t button)
+{
+ return ___tzr_mousestates[button];
+}
diff --git a/sources/TZR_MousePressed.c b/sources/TZR_MousePressed.c
new file mode 100644
index 0000000..d59c066
--- /dev/null
+++ b/sources/TZR_MousePressed.c
@@ -0,0 +1,7 @@
+#include "TZR_mouse.h"
+
+bool
+TZR_MousePressed(uint8_t button)
+{
+ return (TZR_MouseGetState(button) == TZR_KEYSTATE_PRESS);
+}
diff --git a/sources/TZR_MouseReleased.c b/sources/TZR_MouseReleased.c
new file mode 100644
index 0000000..2bd8311
--- /dev/null
+++ b/sources/TZR_MouseReleased.c
@@ -0,0 +1,7 @@
+#include "TZR_mouse.h"
+
+bool
+TZR_MouseReleased(uint8_t button)
+{
+ return (TZR_MouseGetState(button) == TZR_KEYSTATE_RELEASE);
+}
diff --git a/sources/TZR_MouseUp.c b/sources/TZR_MouseUp.c
new file mode 100644
index 0000000..645f323
--- /dev/null
+++ b/sources/TZR_MouseUp.c
@@ -0,0 +1,8 @@
+#include "TZR_mouse.h"
+
+bool
+TZR_MouseUp(uint8_t button)
+{
+ const TZR_KeyState state = TZR_MouseGetState(button);
+ return (state == TZR_KEYSTATE_UP || state == TZR_KEYSTATE_RELEASE);
+}