mirror of
https://github.com/mlaux/gb6.git
synced 2026-03-13 01:42:21 +00:00
39 lines
892 B
C
39 lines
892 B
C
#ifndef UNITY_BUILD
|
|
#include "../src/dmg.h"
|
|
#endif
|
|
|
|
extern struct dmg dmg;
|
|
|
|
// key input mapping for game controls
|
|
// using ASCII character codes (case-insensitive handled in code)
|
|
struct key_input {
|
|
char key;
|
|
int button;
|
|
int field;
|
|
};
|
|
|
|
static struct key_input key_inputs[] = {
|
|
{ 'd', BUTTON_RIGHT, FIELD_JOY },
|
|
{ 'a', BUTTON_LEFT, FIELD_JOY },
|
|
{ 'w', BUTTON_UP, FIELD_JOY },
|
|
{ 's', BUTTON_DOWN, FIELD_JOY },
|
|
{ 'l', BUTTON_A, FIELD_ACTION },
|
|
{ 'k', BUTTON_B, FIELD_ACTION },
|
|
{ 'n', BUTTON_SELECT, FIELD_ACTION },
|
|
{ 'm', BUTTON_START, FIELD_ACTION },
|
|
{ 0, 0, 0 }
|
|
};
|
|
|
|
static void HandleKeyEvent(int ch, int down)
|
|
{
|
|
if (ch >= 'A' && ch <= 'Z') ch += 32; // tolower
|
|
struct key_input *key = key_inputs;
|
|
while (key->key) {
|
|
if (key->key == ch) {
|
|
dmg_set_button(&dmg, key->field, key->button, down);
|
|
break;
|
|
}
|
|
key++;
|
|
}
|
|
}
|