Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/keyboard.cc')
-rw-r--r--src/client/keyboard.cc381
1 files changed, 183 insertions, 198 deletions
diff --git a/src/client/keyboard.cc b/src/client/keyboard.cc
index 86fb2d4..e21fc91 100644
--- a/src/client/keyboard.cc
+++ b/src/client/keyboard.cc
@@ -66,188 +66,173 @@ Keyboard::Keyboard()
// ------------------ KEYS
Key *key = 0;
- add_key("backspace", SDLK_BACKSPACE);
- add_key("tab", SDLK_TAB, 0, "impulse");
- add_key("clear", SDLK_CLEAR);
- key = add_key("enter", SDLK_RETURN, 0, "ui_chat");
+ add_key(SDL_SCANCODE_BACKSPACE, "backspace");
+ add_key(SDL_SCANCODE_TAB, "tab", 0, "impulse");
+ add_key(SDL_SCANCODE_CLEAR, "clear");
+ key = add_key( SDL_SCANCODE_RETURN, "enter", 0, "ui_chat");
key->assign(Key::Alt, "toggle r_fullscreen");
- add_key("pause", SDLK_PAUSE);
- add_key("esc", SDLK_ESCAPE);
- add_key("space", SDLK_SPACE, ' ', "ui_control");
- add_key("!", SDLK_EXCLAIM, '!');
- add_key("\"", SDLK_QUOTEDBL, '"');
- add_key("#", SDLK_HASH, '#');
- add_key("$", SDLK_DOLLAR, '$');
- add_key("&", SDLK_AMPERSAND, '&');
- add_key("'", SDLK_QUOTE, '\'');
- add_key("(", SDLK_LEFTPAREN, '(');
- add_key(")", SDLK_RIGHTPAREN, ')');
- add_key("*", SDLK_ASTERISK, '*');
- add_key("+", SDLK_PLUS, '+');
- add_key(",", SDLK_COMMA, ',');
- add_key("-", SDLK_MINUS, '-');
- add_key(".", SDLK_PERIOD, '.');
- add_key("/", SDLK_SLASH, '/');
-
- add_key("0", SDLK_0, '0');
- add_key("1", SDLK_1, '1');
- add_key("2", SDLK_2, '2');
- add_key("3", SDLK_3, '3');
- add_key("4", SDLK_4, '4');
- add_key("5", SDLK_5, '5');
- add_key("6", SDLK_6, '6');
- add_key("7", SDLK_7, '7');
- add_key("8", SDLK_8, '8');
- add_key("9", SDLK_9, '9');
-
- add_key(":", SDLK_COLON, ':');
- add_key(";", SDLK_SEMICOLON, ';');
- add_key("<", SDLK_LESS, '<');
- add_key("=", SDLK_EQUALS, '=');
- add_key(">", SDLK_GREATER, '>');
- add_key("?", SDLK_QUESTION, '?');
- add_key("@", SDLK_AT, '@');
- add_key("[", SDLK_LEFTBRACKET, '[');
- add_key("\\", SDLK_BACKSLASH, '\\');
- add_key("]", SDLK_RIGHTBRACKET, ']');
- add_key("^", SDLK_CARET, '^');
- add_key("_", SDLK_UNDERSCORE, '_');
- add_key("`", SDLK_BACKQUOTE, '`', "+console");
-
- add_key("a", SDLK_a, 'a', "+strafeleft");
- add_key("b", SDLK_b, 'b', "beam");
- add_key("c", SDLK_c, 'c');
- add_key("d", SDLK_d, 'd', "+straferight");
- add_key("e", SDLK_e, 'e', "+rollright");
- add_key("f", SDLK_f, 'f', "+strafedown");
- add_key("g", SDLK_g, 'g');
- add_key("h", SDLK_h, 'h');
- add_key("i", SDLK_i, 'i', "ui_inventory");
- add_key("j", SDLK_j, 'j');
- add_key("k", SDLK_k, 'k');
- add_key("l", SDLK_l, 'l');
- add_key("m", SDLK_m, 'm', "ui_map");
- key = add_key("n", SDLK_n, 'n', "target_next");
+ add_key(SDL_SCANCODE_PAUSE, "pause");
+ add_key(SDL_SCANCODE_ESCAPE, "esc");
+ add_key(SDL_SCANCODE_SPACE, "space", ' ', "ui_control");
+
+ add_key(SDL_SCANCODE_0, "0", '0');
+ add_key(SDL_SCANCODE_1, "1", '1');
+ add_key(SDL_SCANCODE_2, "2", '2');
+ add_key(SDL_SCANCODE_3, "3", '3');
+ add_key(SDL_SCANCODE_4, "4", '4');
+ add_key(SDL_SCANCODE_5, "5", '5');
+ add_key(SDL_SCANCODE_6, "6", '6');
+ add_key(SDL_SCANCODE_7, "7", '7');
+ add_key(SDL_SCANCODE_8, "8", '8');
+ add_key(SDL_SCANCODE_9, "9", '9');
+
+ add_key(SDL_SCANCODE_MINUS, "-", '-');
+ add_key(SDL_SCANCODE_EQUALS, "=", '=');
+ add_key(SDL_SCANCODE_LEFTBRACKET, "[", '[');
+ add_key(SDL_SCANCODE_RIGHTBRACKET, "]", ']');
+ add_key(SDL_SCANCODE_SEMICOLON, ";", ';');
+ add_key(SDL_SCANCODE_APOSTROPHE,"'", '\'');
+ add_key(SDL_SCANCODE_BACKSLASH, "\\", '\\');
+
+
+ add_key(SDL_SCANCODE_COMMA, ",", ',');
+ add_key(SDL_SCANCODE_PERIOD, ".", '.');
+ add_key(SDL_SCANCODE_SLASH, "/", '/');
+ add_key(SDL_SCANCODE_GRAVE,"`", '`', "+console");
+
+ add_key(SDL_SCANCODE_A, "a", 'a', "+strafeleft");
+ add_key(SDL_SCANCODE_B, "b", 'b', "beam");
+ add_key(SDL_SCANCODE_C, "c", 'c');
+ add_key(SDL_SCANCODE_D, "d", 'd', "+straferight");
+ add_key(SDL_SCANCODE_E, "e", 'e', "+rollright");
+ add_key(SDL_SCANCODE_F, "f", 'f', "+strafedown");
+ add_key(SDL_SCANCODE_G, "g", 'g');
+ add_key(SDL_SCANCODE_H, "h", 'h');
+ add_key(SDL_SCANCODE_I, "i", 'i', "ui_inventory");
+ add_key(SDL_SCANCODE_J, "j", 'j');
+ add_key(SDL_SCANCODE_K, "k", 'k');
+ add_key(SDL_SCANCODE_L, "l", 'l');
+ add_key(SDL_SCANCODE_M, "m", 'm', "ui_map");
+ key = add_key(SDL_SCANCODE_N, "n", 'n', "target_next");
key->assign(Key::Shift, "target_prev");
key->assign(Key::Ctrl, "target_none");
- add_key("o", SDLK_o, 'o');
- add_key("p", SDLK_p, 'p');
- add_key("q", SDLK_q, 'q', "+rollleft");
- add_key("r", SDLK_r, 'r', "+strafeup");
- add_key("s", SDLK_s, 's', "+reverse");
- add_key("t", SDLK_t, 't', "ui_chatbar");
- add_key("u", SDLK_u, 'u');
- key = add_key("v", SDLK_v, 'v', "view_next");
+ add_key(SDL_SCANCODE_O, "o", 'o');
+ add_key(SDL_SCANCODE_P, "p", 'p');
+ add_key(SDL_SCANCODE_Q, "q", 'q', "+rollleft");
+ add_key(SDL_SCANCODE_R, "r", 'r', "+strafeup");
+ add_key(SDL_SCANCODE_S, "s", 's', "+reverse");
+ add_key(SDL_SCANCODE_T, "t", 't', "ui_chatbar");
+ add_key(SDL_SCANCODE_U, "u", 'u');
+ key = add_key(SDL_SCANCODE_V, "v", 'v', "view_next");
key->assign(Key::Shift, "view_prev");
- add_key("w", SDLK_w, 'w', "+afterburner");
- key = add_key("x", SDLK_x, 'x', "target_controlable_next");
+ add_key(SDL_SCANCODE_W, "w", 'w', "+afterburner");
+ key = add_key(SDL_SCANCODE_X, "x", 'x', "target_controlable_next");
key->assign(Key::Shift, "target_controlable_prev");
key->assign(Key::Ctrl, "target_center");
- add_key("y", SDLK_y, 'y');
- add_key("z", SDLK_z, 'z');
-
- add_key("del", SDLK_DELETE);
- add_key("kp0", SDLK_KP0);
- add_key("kp1", SDLK_KP1);
- add_key("kp2", SDLK_KP2, 0, "+up");
- add_key("kp3", SDLK_KP3);
- add_key("kp4", SDLK_KP4, 0, "+left");
- add_key("kp5", SDLK_KP5);
- add_key("kp6", SDLK_KP6, 0, "+right");
- add_key("kp7", SDLK_KP7, 0, "+rollleft");
- add_key("kp8", SDLK_KP8, 0, "+down");
- add_key("kp9", SDLK_KP9, 0, "+rollright");
-
- add_key("kpperiod", SDLK_KP_PERIOD, '.');
- add_key("kpdiv", SDLK_KP_DIVIDE, '/', "+zoomin");
- add_key("kpmul", SDLK_KP_MULTIPLY, '*', "+zoomout");
- add_key("kpmin", SDLK_KP_MINUS, '-', "+thrustdown");
- add_key("kpplus", SDLK_KP_PLUS, '+', "+thrustup");
- add_key("kpenter", SDLK_KP_ENTER, '\n', "ui_chat");
- add_key("kpequal", SDLK_KP_EQUALS, '=');
-
- add_key("up", SDLK_UP, 0, "+camup");
- add_key("down", SDLK_DOWN, 0, "+camdown");
- add_key("right", SDLK_RIGHT, 0, "+camright");
- add_key("left", SDLK_LEFT, 0, "+camleft");
-
- add_key("insert", SDLK_INSERT);
- add_key("home", SDLK_HOME);
- add_key("end", SDLK_END);
- add_key("pageup", SDLK_PAGEUP);
- add_key("pagedown", SDLK_PAGEDOWN);
-
- add_key("f1", SDLK_F1, 0, "freeflight");
- add_key("f2", SDLK_F2, 0, "@goto");
- add_key("f3", SDLK_F3, 0, "@dock");
- key = add_key("f4", SDLK_F4, 0, "@formation");
+ add_key(SDL_SCANCODE_Y, "y", 'y');
+ add_key(SDL_SCANCODE_Z, "z", 'z');
+
+ add_key(SDL_SCANCODE_DELETE, "del");
+ add_key(SDL_SCANCODE_KP_0, "kp0");
+ add_key(SDL_SCANCODE_KP_1, "kp1");
+ add_key(SDL_SCANCODE_KP_2, "kp2", 0, "+up");
+ add_key(SDL_SCANCODE_KP_3, "kp3");
+ add_key(SDL_SCANCODE_KP_4, "kp4", 0, "+left");
+ add_key(SDL_SCANCODE_KP_5, "kp5");
+ add_key(SDL_SCANCODE_KP_6, "kp6", 0, "+right");
+ add_key(SDL_SCANCODE_KP_7, "kp7", 0, "+rollleft");
+ add_key(SDL_SCANCODE_KP_8, "kp8", 0, "+down");
+ add_key(SDL_SCANCODE_KP_9, "kp9", 0, "+rollright");
+
+ add_key(SDL_SCANCODE_KP_PERIOD, "kpperiod", '.');
+ add_key(SDL_SCANCODE_KP_DIVIDE, "kpdiv", '/', "+zoomin");
+ add_key(SDL_SCANCODE_KP_MULTIPLY, "kpmul", '*', "+zoomout");
+ add_key(SDL_SCANCODE_KP_MINUS, "kpmin", '-', "+thrustdown");
+ add_key(SDL_SCANCODE_KP_PLUS, "kpplus", '+', "+thrustup");
+ add_key(SDL_SCANCODE_KP_ENTER, "kpenter", '\n', "ui_chat");
+ add_key(SDL_SCANCODE_KP_EQUALS, "kpequal", '=');
+
+ add_key(SDL_SCANCODE_UP, "up", 0, "+camup");
+ add_key(SDL_SCANCODE_DOWN, "down", 0, "+camdown");
+ add_key(SDL_SCANCODE_RIGHT, "right", 0, "+camright");
+ add_key(SDL_SCANCODE_LEFT, "left", 0, "+camleft");
+
+ add_key(SDL_SCANCODE_INSERT, "insert");
+ add_key(SDL_SCANCODE_HOME, "home");
+ add_key(SDL_SCANCODE_END, "end");
+ add_key(SDL_SCANCODE_PAGEUP, "pageup");
+ add_key(SDL_SCANCODE_PAGEDOWN, "pagedown");
+
+ add_key(SDL_SCANCODE_F1, "f1", 0, "freeflight");
+ add_key(SDL_SCANCODE_F2, "f2", 0, "@goto");
+ add_key(SDL_SCANCODE_F3, "f3", 0, "@dock");
+ key = add_key(SDL_SCANCODE_F4, "f4", 0, "@formation");
#ifdef _WIN32
key->assign(Key::Alt, "quit");
#endif
- add_key("f5", SDLK_F5, 0, "savegame");
- add_key("f6", SDLK_F6);
- add_key("f7", SDLK_F7);
- add_key("f8", SDLK_F8);
- add_key("f9", SDLK_F9, 0, "loadgame");
- add_key("f10", SDLK_F10);
- add_key("f11", SDLK_F11);
- add_key("f12", SDLK_F12);
- add_key("f13", SDLK_F13);
- add_key("f14", SDLK_F14);
- add_key("f15", SDLK_F15);
-
- add_key("numlock", SDLK_NUMLOCK);
- add_key("capslock", SDLK_CAPSLOCK);
- add_key("scrollock", SDLK_SCROLLOCK);
-
- add_key("rshift", SDLK_RSHIFT);
- add_key("lshift", SDLK_LSHIFT);
-
- add_key("rctrl", SDLK_RCTRL);
- add_key("lctrl", SDLK_LCTRL);
-
- add_key("ralt", SDLK_RALT);
- add_key("lalt", SDLK_LALT);
-
- add_key("rmeta", SDLK_RMETA);
- add_key("lmeta", SDLK_LMETA);
- add_key("lwin", SDLK_LSUPER);
- add_key("rwin", SDLK_RSUPER);
- add_key("mode", SDLK_MODE);
-
- add_key("help", SDLK_HELP);
- add_key("print", SDLK_PRINT, 0, "screenshot");
- add_key("sysrq", SDLK_SYSREQ);
- add_key("break", SDLK_BREAK);
- add_key("menu", SDLK_MENU);
- add_key("power", SDLK_POWER);
- add_key("euro", SDLK_EURO);
+ add_key(SDL_SCANCODE_F5, "f5", 0, "savegame");
+ add_key(SDL_SCANCODE_F6, "f6");
+ add_key(SDL_SCANCODE_F7, "f7");
+ add_key(SDL_SCANCODE_F8, "f8");
+ add_key(SDL_SCANCODE_F9, "f9", 0, "loadgame");
+ add_key(SDL_SCANCODE_F10, "f10");
+ add_key(SDL_SCANCODE_F11, "f11");
+ add_key(SDL_SCANCODE_F12, "f12");
+ add_key(SDL_SCANCODE_F13, "f13");
+ add_key(SDL_SCANCODE_F14, "f14");
+ add_key(SDL_SCANCODE_F15, "F15");
+
+ add_key(SDL_SCANCODE_NUMLOCKCLEAR, "numlock");
+ add_key(SDL_SCANCODE_CAPSLOCK, "capslock");
+ add_key(SDL_SCANCODE_SCROLLLOCK, "scrollock");
+
+ add_key(SDL_SCANCODE_RSHIFT, "rshift");
+ add_key(SDL_SCANCODE_LSHIFT, "lshift");
+
+ add_key(SDL_SCANCODE_RCTRL, "rctrl");
+ add_key(SDL_SCANCODE_LCTRL, "lctrl");
+
+ add_key(SDL_SCANCODE_RALT, "ralt");
+ add_key(SDL_SCANCODE_LALT, "lalt");
+
+ add_key(SDL_SCANCODE_RGUI, "rgui");
+ add_key(SDL_SCANCODE_LGUI, "lgui");
+ add_key(SDL_SCANCODE_MODE, "mode");
+
+ add_key(SDL_SCANCODE_HELP, "help");
+ add_key(SDL_SCANCODE_PRINTSCREEN, "print", 0, "screenshot");
+ add_key(SDL_SCANCODE_SYSREQ, "sysrq");
+ add_key(SDL_SCANCODE_PAUSE, "pause");
+ add_key(SDL_SCANCODE_MENU, "menu");
+ add_key(SDL_SCANCODE_POWER, "power");
- // mouse button aliases
- add_key("mouse1", 512 + SDL_BUTTON_LEFT, 0, "+freelook");
- add_key("mouse2", 512 + SDL_BUTTON_RIGHT, 0, "+fire");
- add_key("mouse3", 512 + SDL_BUTTON_MIDDLE);
- add_key("mouse4", 512 + SDL_BUTTON_WHEELUP, 0, "+thrustup");
- add_key("mouse5", 512 + SDL_BUTTON_WHEELDOWN, 0, "+thrustdown");
+ // mouse button aliases
+ add_key(512 + SDL_BUTTON_LEFT, "mouse1", 0, "+control");
+ add_key(512 + SDL_BUTTON_RIGHT, "mouse2", 0, "+fire");
+ add_key(512 + SDL_BUTTON_MIDDLE, "mouse3");
+
+ // mouse wheel aliases
+ add_key(600, "mwheelup", 0, "+thrustup");
+ add_key(601, "mwheeldown", 0, "+thrustdown");
// joystick button aliases
- add_key("joy0", 564);
- add_key("joy1", 565, 0, "target_center");
- add_key("joy2", 566);
- add_key("joy3", 567);
- add_key("joy4", 568);
- add_key("joy5", 569);
- add_key("joy6", 570);
- add_key("joy7", 571);
- add_key("joy8", 572);
- add_key("joy9", 573);
- add_key("joy10", 574);
- add_key("joy11", 575);
- add_key("joy12", 576);
- add_key("joy13", 577);
- add_key("joy14", 578);
- add_key("joy15", 579);
+ add_key(1024, "joy0");
+ add_key(1025, "joy1", 0, "target_center");
+ add_key(1026, "joy2");
+ add_key(1027, "joy3");
+ add_key(1028, "joy4");
+ add_key(1029, "joy5");
+ add_key(1030, "joy6");
+ add_key(1031, "joy7");
+ add_key(1032, "joy8");
+ add_key(1033, "joy9");
+ add_key(1034, "joy10");
+ add_key(1035, "joy11");
+ add_key(1036, "joy12");
+ add_key(1037, "joy13");
+ add_key(1038, "joy14");
+ add_key(1039, "joy15");
}
Keyboard::~Keyboard()
@@ -342,9 +327,9 @@ void Keyboard::reset()
}
}
-Key * Keyboard::release(unsigned int sym)
+Key * Keyboard::release(const unsigned int scancode)
{
- Key *key = find(sym);
+ Key *key = find(scancode);
if (!key) {
return 0;
}
@@ -356,9 +341,9 @@ Key * Keyboard::release(unsigned int sym)
return key;
}
-Key * Keyboard::press(unsigned int sym)
+Key * Keyboard::press(const unsigned int scancode)
{
- Key *key = find(sym);
+ Key *key = find(scancode);
if (!key) {
return 0;
}
@@ -389,9 +374,9 @@ Key *Keyboard::find(std::string const & name)
return key;
}
-Key *Keyboard::find(unsigned int keysym)
+Key *Keyboard::find(const unsigned int scancode)
{
- Keys::iterator it = _keys.find(keysym);
+ Keys::iterator it = _keys.find(scancode);
if (it == _keys.end())
{
return 0;
@@ -511,10 +496,10 @@ void Keyboard::unbindall()
}
}
-Key * Keyboard::add_key(const char *name, const unsigned int keysym, const char ascii, const char *bind)
+Key * Keyboard::add_key(const unsigned int scancode, const char *name, const char ascii, const char *bind)
{
- Key *key = new Key(name, keysym, ascii);
- _keys[keysym] = key;
+ Key *key = new Key(scancode, name, ascii);
+ _keys[scancode] = key;
if (bind)
{
std::string bindstr(bind);
@@ -579,7 +564,7 @@ void Keyboard::list_binds() const
con_print << n << " registered binds" << std::endl;
}
-unsigned int Keyboard::translate_keysym(const int keysym, const int modifiers)
+unsigned int Keyboard::translate_keysym(const unsigned int keysym, const int modifiers)
{
bool shift = false;
@@ -588,34 +573,34 @@ unsigned int Keyboard::translate_keysym(const int keysym, const int modifiers)
{
switch (keysym)
{
- case SDLK_KP0:
+ case SDLK_KP_0:
return '0';
break;
- case SDLK_KP1:
+ case SDLK_KP_1:
return '1';
break;
- case SDLK_KP2:
+ case SDLK_KP_2:
return '2';
break;
- case SDLK_KP3:
+ case SDLK_KP_3:
return '3';
break;
- case SDLK_KP4:
+ case SDLK_KP_4:
return '4';
break;
- case SDLK_KP5:
+ case SDLK_KP_5:
return '5';
break;
- case SDLK_KP6:
+ case SDLK_KP_6:
return '6';
break;
- case SDLK_KP7:
+ case SDLK_KP_7:
return '7';
break;
- case SDLK_KP8:
+ case SDLK_KP_8:
return '8';
break;
- case SDLK_KP9:
+ case SDLK_KP_9:
return '9';
break;
case SDLK_KP_PERIOD:
@@ -627,31 +612,31 @@ unsigned int Keyboard::translate_keysym(const int keysym, const int modifiers)
{
switch (keysym)
{
- case SDLK_KP0:
+ case SDLK_KP_0:
return SDLK_INSERT;
break;
- case SDLK_KP1:
+ case SDLK_KP_1:
return SDLK_END;
break;
- case SDLK_KP2:
+ case SDLK_KP_2:
return SDLK_DOWN;
break;
- case SDLK_KP3:
+ case SDLK_KP_3:
return SDLK_PAGEDOWN;
break;
- case SDLK_KP4:
+ case SDLK_KP_4:
return SDLK_LEFT;
break;
- case SDLK_KP6:
+ case SDLK_KP_6:
return SDLK_RIGHT;
break;
- case SDLK_KP7:
+ case SDLK_KP_7:
return SDLK_HOME;
break;
- case SDLK_KP8:
+ case SDLK_KP_8:
return SDLK_UP;
break;
- case SDLK_KP9:
+ case SDLK_KP_9:
return SDLK_PAGEUP;
break;
case SDLK_KP_PERIOD: