X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsupertux%2Fmenu%2Fjoystick_menu.cpp;h=adde0c5c81a8e04c19215c4a13a5f557687a64d7;hb=313702b84f43dc98bbeea32a2261e408533dbf58;hp=7a8f7ccf437b1b234003c1713b1c4b425d22b36f;hpb=fb7ec3e0b1fefa5d88bd1a4c8b81a3b71a72c1fd;p=supertux.git diff --git a/src/supertux/menu/joystick_menu.cpp b/src/supertux/menu/joystick_menu.cpp index 7a8f7ccf4..adde0c5c8 100644 --- a/src/supertux/menu/joystick_menu.cpp +++ b/src/supertux/menu/joystick_menu.cpp @@ -1,6 +1,6 @@ // SuperTux // Copyright (C) 2006 Matthias Braun , -// 2007 Ingo Ruhnke +// 2007,2014 Ingo Ruhnke // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #include #include "control/joystick_manager.hpp" +#include "supertux/gameconfig.hpp" #include "util/gettext.hpp" namespace { @@ -32,7 +33,7 @@ enum { } // namespace -JoystickMenu::JoystickMenu(InputManager* input_manager) : +JoystickMenu::JoystickMenu(InputManager& input_manager) : m_input_manager(input_manager), m_joysticks_available(false) { @@ -49,16 +50,17 @@ JoystickMenu::recreate_menu() add_label(_("Setup Joystick")); add_hl(); - add_toggle(MNID_AUTO_JOYSTICK_CFG, _("Manual Joystick Configuration"), - !m_input_manager->use_game_controller()); + add_toggle(MNID_AUTO_JOYSTICK_CFG, _("Manual Configuration"), + !m_input_manager.use_game_controller()) + ->set_help(_("Use manual configuration instead of SDL2's automatic GameController support")); - if (m_input_manager->use_game_controller()) + if (m_input_manager.use_game_controller()) { m_joysticks_available = false; } else { - if (m_input_manager->joystick_manager->joysticks.size() > 0) + if (m_input_manager.joystick_manager->get_num_joysticks() > 0) { m_joysticks_available = true; @@ -68,13 +70,18 @@ JoystickMenu::recreate_menu() add_controlfield(Controller::RIGHT, _("Right")); add_controlfield(Controller::JUMP, _("Jump")); add_controlfield(Controller::ACTION, _("Action")); - add_controlfield(Controller::PAUSE_MENU, _("Pause/Menu")); + add_controlfield(Controller::START, _("Pause/Menu")); add_controlfield(Controller::PEEK_LEFT, _("Peek Left")); add_controlfield(Controller::PEEK_RIGHT, _("Peek Right")); add_controlfield(Controller::PEEK_UP, _("Peek Up")); add_controlfield(Controller::PEEK_DOWN, _("Peek Down")); - - add_toggle(MNID_JUMP_WITH_UP, _("Jump with Up"), m_input_manager->joystick_manager->jump_with_up_joy); + if (g_config->developer_mode || g_config->console_enabled) { + add_controlfield(Controller::CONSOLE, _("Console")); + } + if (g_config->developer_mode) { + add_controlfield(Controller::CHEAT_MENU, _("Cheat Menu")); + } + add_toggle(MNID_JUMP_WITH_UP, _("Jump with Up"), g_config->joystick_config.jump_with_up_joy); } else { @@ -111,21 +118,21 @@ JoystickMenu::menu_action(MenuItem* item) if (0 <= item->id && item->id < Controller::CONTROLCOUNT) { item->change_input(_("Press Button")); - m_input_manager->joystick_manager->wait_for_joystick = item->id; + m_input_manager.joystick_manager->bind_next_event_to(static_cast(item->id)); } else if (item->id == MNID_JUMP_WITH_UP) { - m_input_manager->joystick_manager->jump_with_up_joy = item->toggled; + g_config->joystick_config.jump_with_up_joy = item->toggled; } else if (item->id == MNID_AUTO_JOYSTICK_CFG) { - m_input_manager->use_game_controller(!item->toggled); - m_input_manager->reset(); + m_input_manager.use_game_controller(!item->toggled); + m_input_manager.reset(); recreate_menu(); } else if(item->id == MNID_SCAN_JOYSTICKS) { - m_input_manager->reset(); + m_input_manager.reset(); recreate_menu(); } } @@ -133,9 +140,9 @@ JoystickMenu::menu_action(MenuItem* item) void JoystickMenu::refresh_menu_item(Controller::Control id) { - int button = m_input_manager->joystick_manager->reversemap_joybutton(id); - int axis = m_input_manager->joystick_manager->reversemap_joyaxis(id); - int hat_dir = m_input_manager->joystick_manager->reversemap_joyhat(id); + int button = g_config->joystick_config.reversemap_joybutton(id); + int axis = g_config->joystick_config.reversemap_joyaxis(id); + int hat_dir = g_config->joystick_config.reversemap_joyhat(id); if (button != -1) { @@ -156,9 +163,9 @@ JoystickMenu::refresh_menu_item(Controller::Control id) name << "X"; else if (abs(axis) == 2) name << "Y"; - else if (abs(axis) == 2) - name << "X2"; else if (abs(axis) == 3) + name << "X2"; + else if (abs(axis) == 4) name << "Y2"; else name << abs(axis); @@ -212,11 +219,18 @@ JoystickMenu::refresh() refresh_menu_item(Controller::JUMP); refresh_menu_item(Controller::ACTION); - refresh_menu_item(Controller::PAUSE_MENU); + refresh_menu_item(Controller::START); refresh_menu_item(Controller::PEEK_LEFT); refresh_menu_item(Controller::PEEK_RIGHT); refresh_menu_item(Controller::PEEK_UP); refresh_menu_item(Controller::PEEK_DOWN); + + if (g_config->developer_mode || g_config->console_enabled) { + refresh_menu_item(Controller::CONSOLE); + } + if (g_config->developer_mode) { + refresh_menu_item(Controller::CHEAT_MENU); + } } }