summaryrefslogtreecommitdiff
path: root/input.h
blob: 28090e980143bdcb0aa545a8257232d3de7ea9ba (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
37
38
39
40
41
42
43
44
45
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;
}