#include	"compiler.h"
#include	"inputmng.h"
typedef struct {
	short	key;
	UINT	bit;
} KEYBIND;
typedef struct {
	UINT	kbs;
	KEYBIND	kb[32];
} INPMNG;
static	INPMNG	inpmng;
static const KEYBIND keybind[] = {
					{VK_UP,			KEY_UP},
					{VK_DOWN,		KEY_DOWN},
					{VK_LEFT,		KEY_LEFT},
					{VK_RIGHT,		KEY_RIGHT},
					{VK_RETURN,		KEY_ENTER},
					{VK_ESCAPE,		KEY_MENU},
					{VK_CONTROL,	KEY_SKIP}};
// ----
void inputmng_initialize(void) {
	INPMNG	*im;
	im = &inpmng;
	ZeroMemory(im, sizeof(INPMNG));
	im->kbs = sizeof(keybind) / sizeof(KEYBIND);
	CopyMemory(im->kb, keybind, sizeof(keybind));
}
void inputmng_keybind(short key, UINT bit) {
	INPMNG	*im;
	UINT	i;
	im = &inpmng;
	for (i=0; i<im->kbs; i++) {
		if (im->kb[i].key == key) {
			im->kb[i].bit = bit;
			return;
		}
	}
	if (im->kbs < (sizeof(im->kb) / sizeof(KEYBIND))) {
		im->kb[im->kbs].key = key;
		im->kb[im->kbs].bit = bit;
		im->kbs++;
	}
}
UINT inputmng_getkey(short key) {
	INPMNG	*im;
	KEYBIND	*kb;
	int		kbs;
	im = &inpmng;
	kb = im->kb;
	kbs = im->kbs;
	while(kbs--) {
		if (kb->key == key) {
			return(kb->bit);
		}
		kb++;
	}
	return(0);
}
RetroPC.NET-CVS <cvs@retropc.net>