/* SPDX-License-Identifier: MIT * Copyright (c) 2021 KikooDX * This file is part of * [Painfull Success CG](https://git.sr.ht/~kikoodx/painfull-success-cg), * which is MIT licensed. The MIT license requires this copyright notice to be * included in all copies and substantial portions of the software. */ #pragma once #include "lazyint.h" #include #define KEYS_COUNT 8 enum { K_LEFT, K_RIGHT, K_DOWN, K_JUMP, K_RESTART, K_CAM_UP, K_CAM_DOWN, K_EXIT }; #define S_PRESSED 0 #define S_DOWN 1 #define S_RELEASED 2 #define S_UP 3 typedef struct Input { u8 keys[KEYS_COUNT]; u8 states[KEYS_COUNT]; } Input; /* Check for new key inputs and update accordingly. */ void input_update(Input *input); /* Initialize values. */ void input_init(Input *input); /* Get state of keys. */ bool input_is_pressed(Input input, u8 key); bool input_is_down(Input input, u8 key); bool input_is_released(Input input, u8 key); bool input_is_up(Input input, u8 key);