Added cheat menu keyboard and joystick bindings, only visible in developer mode
[supertux.git] / src / supertux / menu / keyboard_menu.cpp
index 2b90ae8..9babe7a 100644 (file)
@@ -1,6 +1,6 @@
 //  SuperTux
 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>,
-//                2007 Ingo Ruhnke <grumbel@gmx.de>
+//                2007 Ingo Ruhnke <grumbel@gmail.com>
 //
 //  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
@@ -22,8 +22,8 @@
 #include "supertux/globals.hpp"
 #include "util/gettext.hpp"
 
-KeyboardMenu::KeyboardMenu(InputManager* _controller) :
-  controller(_controller)
+KeyboardMenu::KeyboardMenu(InputManager& input_manager) :
+  m_input_manager(input_manager)
 {
   add_label(_("Setup Keyboard"));
   add_hl();
@@ -37,13 +37,16 @@ KeyboardMenu::KeyboardMenu(InputManager* _controller) :
   add_controlfield(Controller::PEEK_RIGHT, _("Peek Right"));
   add_controlfield(Controller::PEEK_UP,    _("Peek Up"));
   add_controlfield(Controller::PEEK_DOWN,  _("Peek Down"));
-  if (g_config->console_enabled) {
+  if (g_config->developer_mode || g_config->console_enabled) {
     add_controlfield(Controller::CONSOLE, _("Console"));
   }
-  add_toggle(Controller::CONTROLCOUNT, _("Jump with Up"), controller->keyboard_manager->jump_with_up_kbd);
+  if (g_config->developer_mode) {
+    add_controlfield(Controller::CHEAT_MENU, _("Cheat Menu"));
+  }
+  add_toggle(Controller::CONTROLCOUNT, _("Jump with Up"), g_config->keyboard_config.jump_with_up_kbd);
   add_hl();
   add_back(_("Back"));
-  update();
+  refresh();
 }
 
 KeyboardMenu::~KeyboardMenu()
@@ -79,8 +82,12 @@ KeyboardMenu::get_key_name(SDL_Keycode key)
       return _("Right Alt");
     case SDLK_LALT:
       return _("Left Alt");
+    case SDLK_RGUI:
+      return _("Right Command");
+    case SDLK_LGUI:
+      return _("Left Command");
     default:
-      return SDL_GetKeyName((SDL_Keycode) key);
+      return SDL_GetKeyName(static_cast<SDL_Keycode>(key));
   }
 }
 
@@ -89,44 +96,46 @@ KeyboardMenu::menu_action(MenuItem* item)
 {
   if(item->id >= 0 && item->id < Controller::CONTROLCOUNT){
     item->change_input(_("Press Key"));
-    controller->keyboard_manager->wait_for_key = item->id;
+    m_input_manager.keyboard_manager->wait_for_key = item->id;
   } else if( item->id == Controller::CONTROLCOUNT) {
-    controller->keyboard_manager->jump_with_up_kbd = item->toggled;
-  } 
+    g_config->keyboard_config.jump_with_up_kbd = item->toggled;
+  }
 }
 
 void
-KeyboardMenu::update()
+KeyboardMenu::refresh()
 {
-  // update menu
+  KeyboardConfig& kbd_cfg = g_config->keyboard_config;
 
-  auto& kbd_mgr = controller->keyboard_manager;
+  get_item_by_id((int) Controller::UP)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::UP)));
+  get_item_by_id((int) Controller::DOWN)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::DOWN)));
+  get_item_by_id((int) Controller::LEFT)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::LEFT)));
+  get_item_by_id((int) Controller::RIGHT)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::RIGHT)));
+  get_item_by_id((int) Controller::JUMP)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::JUMP)));
+  get_item_by_id((int) Controller::ACTION)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::ACTION)));
+  get_item_by_id((int) Controller::PEEK_LEFT)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_LEFT)));
+  get_item_by_id((int) Controller::PEEK_RIGHT)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_RIGHT)));
+  get_item_by_id((int) Controller::PEEK_UP)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_UP)));
+  get_item_by_id((int) Controller::PEEK_DOWN)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_DOWN)));
+  get_item_by_id((int) Controller::CHEAT_MENU)
+    .change_input(get_key_name(kbd_cfg.reversemap_key(Controller::CHEAT_MENU)));
 
-  get_item_by_id((int) Controller::UP).change_input(get_key_name(
-                                                      kbd_mgr->reversemap_key(Controller::UP)));
-  get_item_by_id((int) Controller::DOWN).change_input(get_key_name(
-                                                        kbd_mgr->reversemap_key(Controller::DOWN)));
-  get_item_by_id((int) Controller::LEFT).change_input(get_key_name(
-                                                        kbd_mgr->reversemap_key(Controller::LEFT)));
-  get_item_by_id((int) Controller::RIGHT).change_input(get_key_name(
-                                                         kbd_mgr->reversemap_key(Controller::RIGHT)));
-  get_item_by_id((int) Controller::JUMP).change_input(get_key_name(
-                                                        kbd_mgr->reversemap_key(Controller::JUMP)));
-  get_item_by_id((int) Controller::ACTION).change_input(get_key_name(
-                                                          kbd_mgr->reversemap_key(Controller::ACTION)));
-  get_item_by_id((int) Controller::PEEK_LEFT).change_input(get_key_name(
-                                                             kbd_mgr->reversemap_key(Controller::PEEK_LEFT)));
-  get_item_by_id((int) Controller::PEEK_RIGHT).change_input(get_key_name(
-                                                              kbd_mgr->reversemap_key(Controller::PEEK_RIGHT)));
-  get_item_by_id((int) Controller::PEEK_UP).change_input(get_key_name(
-                                                           kbd_mgr->reversemap_key(Controller::PEEK_UP)));
-  get_item_by_id((int) Controller::PEEK_DOWN).change_input(get_key_name(
-                                                             kbd_mgr->reversemap_key(Controller::PEEK_DOWN)));
-  if (g_config->console_enabled) {
+  if (g_config->console_enabled)
+  {
     get_item_by_id((int) Controller::CONSOLE).change_input(get_key_name(
-                                                             kbd_mgr->reversemap_key(Controller::CONSOLE)));
+                                                             kbd_cfg.reversemap_key(Controller::CONSOLE)));
   }
-  get_item_by_id(Controller::CONTROLCOUNT).toggled = kbd_mgr->jump_with_up_kbd;
+  get_item_by_id(Controller::CONTROLCOUNT).toggled = kbd_cfg.jump_with_up_kbd;
 }
 
 /* EOF */