X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsupertux%2Fmenu%2Fjoystick_menu.cpp;h=adde0c5c81a8e04c19215c4a13a5f557687a64d7;hb=313702b84f43dc98bbeea32a2261e408533dbf58;hp=ecb0de133897381999c0b3f841b65f3818a2e446;hpb=1da433ffd19f98acd8475c4e449de761440d99f8;p=supertux.git diff --git a/src/supertux/menu/joystick_menu.cpp b/src/supertux/menu/joystick_menu.cpp index ecb0de133..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 { @@ -87,7 +94,7 @@ JoystickMenu::recreate_menu() add_hl(); add_back(_("Back")); - update(); + refresh(); } std::string @@ -111,31 +118,31 @@ 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(); } } void -JoystickMenu::update_menu_item(Controller::Control id) +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::update_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); @@ -201,22 +208,29 @@ JoystickMenu::update_menu_item(Controller::Control id) } void -JoystickMenu::update() +JoystickMenu::refresh() { if (m_joysticks_available) { - update_menu_item(Controller::UP); - update_menu_item(Controller::DOWN); - update_menu_item(Controller::LEFT); - update_menu_item(Controller::RIGHT); - - update_menu_item(Controller::JUMP); - update_menu_item(Controller::ACTION); - update_menu_item(Controller::PAUSE_MENU); - update_menu_item(Controller::PEEK_LEFT); - update_menu_item(Controller::PEEK_RIGHT); - update_menu_item(Controller::PEEK_UP); - update_menu_item(Controller::PEEK_DOWN); + refresh_menu_item(Controller::UP); + refresh_menu_item(Controller::DOWN); + refresh_menu_item(Controller::LEFT); + refresh_menu_item(Controller::RIGHT); + + refresh_menu_item(Controller::JUMP); + refresh_menu_item(Controller::ACTION); + 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); + } } }