32 u_int8 * input::keystate=NULL;
33 u_int8 * input::p_keystate=NULL;
37 u_int16 input::mouse_posx, input::mouse_posy;
38 bool input::mouse_button[3];
40 int input::filterevents(
const SDL_Event *
event)
42 if(event->type==SDL_KEYDOWN) p_keystate[
event->key.keysym.sym]++;
49 keystate=SDL_GetKeyState(&keystatelength);
51 p_keystate=
new u_int8[keystatelength];
52 memset(p_keystate, 0, keystatelength);
54 SDL_SetEventFilter(filterevents);
72 if((ret)&&(p_keystate[key])) p_keystate[key]--;
80 if((ret)&&(!(--p_keystate[key]))) keystate[key]=0;
86 SDL_EnableKeyRepeat(delay, interval);
91 static SDL_Event event;
94 if(SDL_PeepEvents(&event,1,SDL_GETEVENT,SDL_KEYDOWNMASK)==1)
97 if(p_keystate[event.key.keysym.sym]) p_keystate[
event.key.keysym.sym]--;
98 keystate[
event.key.keysym.sym]=0;
102 (&event,1,SDL_GETEVENT,SDL_ALLEVENTS-SDL_KEYDOWNMASK)==1);
103 if (b)
return(event.key.keysym.sym);
109 static SDL_Event event;
112 if(SDL_PeepEvents(&event,1,SDL_GETEVENT,SDL_KEYDOWNMASK)==1)
115 if(event.key.keysym.unicode)
117 if(p_keystate[event.key.keysym.sym]) p_keystate[
event.key.keysym.sym]--;
118 keystate[
event.key.keysym.sym]=0;
123 (&event,1,SDL_GETEVENT,SDL_ALLEVENTS-SDL_KEYDOWNMASK)==1);
124 if (b)
return(event.key.keysym.unicode);
131 memset(p_keystate, 0, keystatelength);
#define s_int32
32 bits long signed integer
#define u_int16
16 bits long unsigned integer
#define u_int8
8 bits long unsigned integer