Files
dusk/src/duskraylib/input.c

45 lines
943 B
C

/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "duskraylib.h"
#include "input.h"
typedef struct {
int32_t key;
uint8_t bind;
} inputmap_t;
inputmap_t INPUT_MAP[] = {
{ KEY_UP, INPUT_BIND_UP },
{ KEY_W, INPUT_BIND_UP },
{ KEY_DOWN, INPUT_BIND_DOWN },
{ KEY_S, INPUT_BIND_DOWN },
{ KEY_LEFT, INPUT_BIND_LEFT },
{ KEY_A, INPUT_BIND_LEFT },
{ KEY_RIGHT, INPUT_BIND_RIGHT },
{ KEY_D, INPUT_BIND_RIGHT },
{ KEY_SPACE, INPUT_BIND_ACTION },
{ KEY_E, INPUT_BIND_ACTION },
{ KEY_ENTER, INPUT_BIND_ACTION },
{ KEY_ESCAPE, INPUT_BIND_CANCEL },
{ KEY_Q, INPUT_BIND_CANCEL },
{ KEY_BACKSPACE, INPUT_BIND_CANCEL },
{ 0, 0 }
};
uint8_t inputStateGet() {
uint8_t state = 0;
inputmap_t *map = INPUT_MAP;
do {
if(IsKeyDown(map->key)) state |= map->bind;
map++;
} while(map->key != 0);
return state;
}