45 lines
943 B
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;
|
|
} |