summaryrefslogtreecommitdiff
path: root/input.c
blob: 5e26ea50359b1944ad3fa9f8ee39bc74852ae025 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "input.h"

struct input
init_input(void)
{
    struct input input = {0};
    input.mouse.first = 1;
    return input;
}

void
update_input(struct input *input)
{
    input->mouse.last = input->mouse.pos;
    input->mouse.offset = (v2){0.0f, 0.0f};
    input->mouse.left.last = input->mouse.left.now;
    input->mouse.right.last = input->mouse.right.now;
    input->right.last = input->right.now;
    input->left.last = input->left.now;
    input->up.last = input->up.now;
    input->down.last = input->down.now;
    input->forward.last = input->forward.now;
    input->backward.last = input->backward.now;
}

i32
key_down(struct key key)
{
    return key.now;
}

i32
key_first(struct key key)
{
    return (!key.last && key.now);
}