- keymap.insert(std::make_pair(SDLK_LEFT, LEFT));
- keymap.insert(std::make_pair(SDLK_RIGHT, RIGHT));
- keymap.insert(std::make_pair(SDLK_UP, UP));
- keymap.insert(std::make_pair(SDLK_DOWN, DOWN));
- keymap.insert(std::make_pair(SDLK_SPACE, JUMP));
- keymap.insert(std::make_pair(SDLK_LCTRL, ACTION));
- keymap.insert(std::make_pair(SDLK_LALT, ACTION));
- keymap.insert(std::make_pair(SDLK_ESCAPE, PAUSE_MENU));
- keymap.insert(std::make_pair(SDLK_p, PAUSE_MENU));
- keymap.insert(std::make_pair(SDLK_PAUSE, PAUSE_MENU));
- keymap.insert(std::make_pair(SDLK_RETURN, MENU_SELECT));
- keymap.insert(std::make_pair(SDLK_KP_ENTER, MENU_SELECT));
- keymap.insert(std::make_pair(SDLK_CARET, CONSOLE));
- keymap.insert(std::make_pair(SDLK_DELETE, PEEK_LEFT));
- keymap.insert(std::make_pair(SDLK_END, PEEK_RIGHT));
-
- int joystick_count = SDL_NumJoysticks();
- min_joybuttons = -1;
- max_joybuttons = -1;
- for(int i = 0; i < joystick_count; ++i) {
- SDL_Joystick* joystick = SDL_JoystickOpen(i);
- bool good = true;
- if(SDL_JoystickNumButtons(joystick) < 2) {
- log_warning << "Joystick " << i << " has less than 2 buttons" << std::endl;
- good = false;
- }
- if(SDL_JoystickNumAxes(joystick) < 2
- && SDL_JoystickNumHats(joystick) == 0) {
- log_warning << "Joystick " << i << " has less than 2 axes and no hat" << std::endl;
- good = false;
- }
- if(!good) {
- SDL_JoystickClose(joystick);
- continue;
- }
-
- if(min_joybuttons < 0 || SDL_JoystickNumButtons(joystick) < min_joybuttons)
- min_joybuttons = SDL_JoystickNumButtons(joystick);
- if(SDL_JoystickNumButtons(joystick) > max_joybuttons) {
- max_joybuttons = SDL_JoystickNumButtons(joystick);
- }
-
- joysticks.push_back(joystick);
- }
-
- use_hat = true;
- joyaxis_x = 0;
- joyaxis_y = 1;
- dead_zone_x = 1000;
- dead_zone_y = 1000;
-
- joy_button_map.insert(std::make_pair(0, JUMP));
- joy_button_map.insert(std::make_pair(1, ACTION));
+ keymap[SDLK_LEFT] = LEFT;
+ keymap[SDLK_RIGHT] = RIGHT;
+ keymap[SDLK_UP] = UP;
+ keymap[SDLK_DOWN] = DOWN;
+ keymap[SDLK_SPACE] = JUMP;
+ keymap[SDLK_LCTRL] = ACTION;
+ keymap[SDLK_LALT] = ACTION;
+ keymap[SDLK_ESCAPE] = PAUSE_MENU;
+ keymap[SDLK_p] = PAUSE_MENU;
+ keymap[SDLK_PAUSE] = PAUSE_MENU;
+ keymap[SDLK_RETURN] = MENU_SELECT;
+ keymap[SDLK_KP_ENTER] = MENU_SELECT;
+ keymap[SDLK_CARET] = CONSOLE;
+ keymap[SDLK_DELETE] = PEEK_LEFT;
+ keymap[SDLK_PAGEDOWN] = PEEK_RIGHT;
+ keymap[SDLK_HOME] = PEEK_UP;
+ keymap[SDLK_END] = PEEK_DOWN;
+
+ jump_with_up_joy = false;
+ jump_with_up_kbd = false;
+
+ updateAvailableJoysticks();
+
+ dead_zone = 1000;
+
+ // Default joystick button configuration
+ joy_button_map[0] = JUMP;
+ joy_button_map[1] = ACTION;