More work on keyhandling
~g2k
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user