summaryrefslogtreecommitdiff
path: root/input.h
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-06-15 16:07:54 +0500
committerpryazha <pryadeiniv@mail.ru>2025-06-15 16:07:54 +0500
commitf30a4eba44c77d5c743fe9308dc697a3225e8dd8 (patch)
treec171da2e8d1127409e2ffe9e56e2e027bac48e28 /input.h
parent92a8eb610f40c9770569ca63ca1bd705a6d3497d (diff)
i don't even know
Diffstat (limited to 'input.h')
-rw-r--r--input.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/input.h b/input.h
new file mode 100644
index 0000000..28090e9
--- /dev/null
+++ b/input.h
@@ -0,0 +1,46 @@
+input_t init_input()
+{
+ input_t input = {0};
+ input.mouse.first = 1;
+ return input;
+}
+
+void update_input(input_t *input)
+{
+ input->mouse.last = input->mouse.pos;
+ input->mouse.offset = V2_ZERO;
+ input->mouse.left.last = input->mouse.left.state;
+ input->mouse.right.last = input->mouse.right.state;
+
+ input->move_right.last = input->move_right.state;
+ input->move_forward.last = input->move_forward.state;
+ input->move_left.last = input->move_left.state;
+ input->move_backward.last = input->move_backward.state;
+ input->move_up.last = input->move_up.state;
+ input->move_down.last = input->move_down.state;
+
+ input->jump.last = input->jump.state;
+ input->action_right.last = input->action_right.state;
+ input->action_up.last = input->action_up.state;
+ input->action_left.last = input->action_left.state;
+ input->action_down.last = input->action_down.state;
+ input->exit.last = input->exit.state;
+}
+
+i32 is_key_down(prge_key_t key)
+{
+ i32 result = (key.state == key_state_press);
+ return result;
+}
+
+i32 is_key_pressed(prge_key_t key)
+{
+ i32 result = ((key.last == key_state_release) && (key.state == key_state_press));
+ return result;
+}
+
+i32 was_key_pressed(prge_key_t key)
+{
+ i32 result = ((key.last == key_state_press) && (key.state == key_state_release));
+ return result;
+}