aboutsummaryrefslogtreecommitdiff
path: root/smelt/sdl/inp_sdl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'smelt/sdl/inp_sdl.cpp')
-rw-r--r--smelt/sdl/inp_sdl.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/smelt/sdl/inp_sdl.cpp b/smelt/sdl/inp_sdl.cpp
index b9f99db..a18baa9 100644
--- a/smelt/sdl/inp_sdl.cpp
+++ b/smelt/sdl/inp_sdl.cpp
@@ -2,7 +2,6 @@
/*
* Simple MultimEdia LiTerator(SMELT)
* by Chris Xiong 2015
- * api level 1
* Input manager implementation
*
* WARNING: This library is in development and interfaces would be very
@@ -25,6 +24,7 @@ void SMELT_IMPL::smGetMouse2f(float *x,float *y){*x=posx,*y=posy;}
void SMELT_IMPL::smSetMouse2f(float x,float y){SDL_WarpMouseInWindow((SDL_Window*)hwnd,x,y);}
int SMELT_IMPL::smGetWheel(){return posz;}
bool SMELT_IMPL::smIsMouseOver(){return mouseOver;}
+int SMELT_IMPL::smGetKey(){return lkey;}
int SMELT_IMPL::smGetKeyState(int key)
{
if(!(keyz[key]&4)&&keylst[key])return SMKST_RELEASE;
@@ -79,6 +79,8 @@ void SMELT_IMPL::buildEvent(int type,int k,int scan,int flags,int x,int y)
while(last->next)last=last->next;
last->next=eptr;
}
+ if(eptr->e.type==INPUT_KEYDOWN||eptr->e.type==INPUT_MBUTTONDOWN)
+ lkey=eptr->e.sccode;
if(eptr->e.type==INPUT_MOUSEMOVE)posx=eptr->e.x,posy=eptr->e.y;
if(eptr->e.type==INPUT_MOUSEWHEEL)posz=eptr->e.wheel;
}
@@ -88,7 +90,7 @@ void SMELT_IMPL::clearQueue()
TInputEventList *nxt,*eptr=inpQueue;
for(unsigned i=0;i<sizeof(keyz)/sizeof(keyz[0]);++i)keyz[i]&=~3;
while(eptr){nxt=eptr->next;delete eptr;eptr=nxt;}
- inpQueue=NULL;posz=0;
+ inpQueue=NULL;posz=0;lkey=0;
}
int SMELT_IMPL::SDLKeyToSMKey(int sdlkey)
{