More work on keyhandling

~g2k
This commit is contained in:
2005-06-29 12:05:21 -04:00
parent b1395f66f5
commit 4055e36027

View File

@@ -36,6 +36,7 @@ using namespace std;
void InitControls(); void InitControls();
unsigned char TranslateKey(int keyCode); unsigned char TranslateKey(int keyCode);
unsigned char TranslateButton(int keyCode);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Function Definitions // Function Definitions
@@ -168,21 +169,18 @@ int main(int argc, char** argv)
} }
break; break;
case ButtonPress: case ButtonPress:
done = true; keys[TranslateButton(event.xbutton.button)] = true;
break;
case ButtonRelease:
keys[TranslateButton(event.xbutton.button)] = false;
keys2[TranslateButton(event.xbutton.button)] = false;
break; break;
case KeyPress: case KeyPress:
keys[TranslateKey(XLookupKeysym(&event.xkey, 0))] = true; keys[TranslateKey(XLookupKeysym(&event.xkey, 0))] = true;
//Remove this later it shouldn't be needed break;
if(XLookupKeysym(&event.xkey, 0) == XK_Escape) case KeyRelease:
{ keys[TranslateKey(XLookupKeysym(&event.xkey, 0))] = false;
done = true; keys2[TranslateKey(XLookupKeysym(&event.xkey, 0))] = false;
}
if(XLookupKeysym(&event.xkey, 0) == XK_F1)
{
g_Screen.Close();
g_Screen.fullscreen = !g_Screen.fullscreen;
g_Screen.Open("Blah Blah Blah", 640, 480, 24, g_Screen.fullscreen);
}
break; break;
case ClientMessage: case ClientMessage:
if(*XGetAtomName(g_Screen.GetDisplay(), event.xclient.message_type) == *"WM_PROTOCOLS") if(*XGetAtomName(g_Screen.GetDisplay(), event.xclient.message_type) == *"WM_PROTOCOLS")
@@ -201,6 +199,12 @@ int main(int argc, char** argv)
{ {
done = true; done = true;
} }
else if(keys[OpenArena::KEY_F1])
{
g_Screen.Close();
g_Screen.fullscreen = !g_Screen.fullscreen;
g_Screen.Open();
}
else else
{ {
level.defaultPlayer[0].camera.Update(); level.defaultPlayer[0].camera.Update();
@@ -735,4 +739,20 @@ unsigned char TranslateKey(int keyCode)
} }
} }
unsigned char TranslateButton(int keyCode)
{
switch(keyCode)
{
case Button1:
return OpenArena::KEY_BUTTON0;
case Button2:
return OpenArena::KEY_BUTTON1;
case Button3:
return OpenArena::KEY_BUTTON2;
case Button4:
return OpenArena::KEY_BUTTON3;
case Button5:
return OpenArena::KEY_BUTTON4;
}
}
#endif #endif