Added simple cheat menu to grow/fire/ice/shrink/... Tux
[supertux.git] / src / control / keyboard_manager.cpp
index c6b3b1b..0fe55b6 100644 (file)
@@ -1,6 +1,6 @@
 //  SuperTux
 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>,
-//                2007-2014 Ingo Ruhnke <grumbel@gmx.de>
+//                2007-2014 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
@@ -51,6 +51,7 @@ KeyboardManager::KeyboardManager(InputManager* parent) :
   keymap[SDLK_PAGEDOWN] = Controller::PEEK_RIGHT;
   keymap[SDLK_HOME]     = Controller::PEEK_UP;
   keymap[SDLK_END]      = Controller::PEEK_DOWN;
+  keymap[SDLK_TAB]      = Controller::CHEAT_MENU;
 }
 
 KeyboardManager::~KeyboardManager()
@@ -63,15 +64,15 @@ KeyboardManager::process_key_event(const SDL_KeyboardEvent& event)
   KeyMap::iterator key_mapping = keymap.find(event.keysym.sym);
 
   // if console key was pressed: toggle console
-  if (key_mapping != keymap.end() && 
+  if (key_mapping != keymap.end() &&
       key_mapping->second == Controller::CONSOLE)
   {
     if (event.type == SDL_KEYDOWN)
     {
       Console::instance->toggle();
     }
-  } 
-  else if (Console::instance->hasFocus()) 
+  }
+  else if (Console::instance->hasFocus())
   {
     // if console is open: send key there
     process_console_key_event(event);
@@ -81,12 +82,12 @@ KeyboardManager::process_key_event(const SDL_KeyboardEvent& event)
     // if menu mode: send key there
     process_menu_key_event(event);
   }
-  else if (key_mapping == keymap.end()) 
+  else if (key_mapping == keymap.end())
   {
     // default action: update controls
     //log_debug << "Key " << event.key.SDL_Keycode.sym << " is unbound" << std::endl;
   }
-  else 
+  else
   {
     auto control = key_mapping->second;
     bool value = (event.type == SDL_KEYDOWN);
@@ -157,28 +158,28 @@ void
 KeyboardManager::process_menu_key_event(const SDL_KeyboardEvent& event)
 {
   // wait for key mode?
-  if (wait_for_key >= 0) 
+  if (wait_for_key >= 0)
   {
     if (event.type == SDL_KEYUP)
       return;
 
-    if (event.keysym.sym != SDLK_ESCAPE && 
-        event.keysym.sym != SDLK_PAUSE) 
+    if (event.keysym.sym != SDLK_ESCAPE &&
+        event.keysym.sym != SDLK_PAUSE)
     {
       bind_key(event.keysym.sym, static_cast<Controller::Control>(wait_for_key));
     }
     m_parent->reset();
-    MenuStorage::instance().get_key_options_menu()->update();
+    MenuManager::instance().refresh();
     wait_for_key = -1;
     return;
   }
-  
-  if (m_parent->joystick_manager->wait_for_joystick >= 0) 
+
+  if (m_parent->joystick_manager->wait_for_joystick >= 0)
   {
-    if (event.keysym.sym == SDLK_ESCAPE) 
+    if (event.keysym.sym == SDLK_ESCAPE)
     {
       m_parent->reset();
-      MenuStorage::instance().get_joystick_options_menu()->update();
+      MenuManager::instance().refresh();
       m_parent->joystick_manager->wait_for_joystick = -1;
     }
     return;
@@ -244,7 +245,7 @@ KeyboardManager::bind_key(SDL_Keycode key, Controller::Control control)
 SDL_Keycode
 KeyboardManager::reversemap_key(Controller::Control c)
 {
-  for(KeyMap::iterator i = keymap.begin(); i != keymap.end(); ++i) 
+  for(KeyMap::iterator i = keymap.begin(); i != keymap.end(); ++i)
   {
     if (i->second == c)
     {