File:
[RetroPC.NET] /
np2 /
sdl /
inputmng.c
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Fri Nov 21 15:51:12 2003 JST (21 years, 11 months ago) by
yui
Branches:
MAIN
CVS tags:
VER_0_82_x64,
VER_0_82,
VER_0_81A,
VER_0_81,
VER_0_80,
VER_0_79,
VER_0_78,
VER_0_77,
VER_0_76,
VER_0_75,
VER_0_74,
VER_0_73,
VER_0_72,
HEAD
debuneko- (T.Yui)
#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[] = {
{SDLK_UP, KEY_UP},
{SDLK_DOWN, KEY_DOWN},
{SDLK_LEFT, KEY_LEFT},
{SDLK_RIGHT, KEY_RIGHT},
{SDLK_RETURN, KEY_ENTER},
{SDLK_ESCAPE, KEY_MENU},
{SDLK_TAB, KEY_SKIP}}; /* とりあえずね… */
// ----
void inputmng_init(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;
UINT 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>