Calculate foremost layer correctly (previous implementation didn't work at all)
[supertux.git] / src / control / input_manager.cpp
index 10b8ba2..ce612d4 100644 (file)
@@ -1,6 +1,6 @@
 //  SuperTux
 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>,
-//                2007 Ingo Ruhnke <grumbel@gmail.com>
+//           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
 
 #include <iostream>
 
-#include "control/keyboard_manager.hpp"
-#include "control/joystick_manager.hpp"
 #include "control/game_controller_manager.hpp"
+#include "control/joystick_manager.hpp"
+#include "control/keyboard_manager.hpp"
 #include "gui/menu_manager.hpp"
 #include "lisp/list_iterator.hpp"
 #include "supertux/gameconfig.hpp"
 #include "util/gettext.hpp"
+#include "util/log.hpp"
 #include "util/writer.hpp"
 
-InputManager::InputManager() :
+InputManager::InputManager(KeyboardConfig& keyboard_config,
+                           JoystickConfig& joystick_config) :
   controller(new Controller),
   m_use_game_controller(true),
-  keyboard_manager(new KeyboardManager(this)),
-  joystick_manager(new JoystickManager(this)),
+  keyboard_manager(new KeyboardManager(this, keyboard_config)),
+  joystick_manager(new JoystickManager(this, joystick_config)),
   game_controller_manager(new GameControllerManager(this))
 {
 }
@@ -54,34 +56,6 @@ InputManager::use_game_controller(bool v)
 }
 
 void
-InputManager::read(const Reader& lisp)
-{
-  const lisp::Lisp* keymap_lisp = lisp.get_lisp("keymap");
-  if (keymap_lisp) 
-  {
-    keyboard_manager->read(keymap_lisp);
-  }
-
-  const lisp::Lisp* joystick_lisp = lisp.get_lisp(_("joystick"));
-  if (joystick_lisp) 
-  {
-    joystick_manager->read(joystick_lisp);
-  }
-}
-
-void
-InputManager::write(Writer& writer)
-{
-  writer.start_list("keymap");
-  keyboard_manager->write(writer);
-  writer.end_list("keymap");
-
-  writer.start_list("joystick");
-  joystick_manager->write(writer);
-  writer.end_list("joystick");
-}
-
-void
 InputManager::update()
 {
   controller->update();
@@ -140,17 +114,17 @@ InputManager::process_event(const SDL_Event& event)
       break;
 
     case SDL_CONTROLLERDEVICEADDED:
-      std::cout << "SDL_CONTROLLERDEVICEADDED" << std::endl;
+      log_debug << "SDL_CONTROLLERDEVICEADDED" << std::endl;
       game_controller_manager->on_controller_added(event.cdevice.which);
       break;
 
     case SDL_CONTROLLERDEVICEREMOVED:
-      std::cout << "SDL_CONTROLLERDEVICEREMOVED" << std::endl;
+      log_debug << "SDL_CONTROLLERDEVICEREMOVED" << std::endl;
       game_controller_manager->on_controller_removed(event.cdevice.which);
       break;
 
     case SDL_CONTROLLERDEVICEREMAPPED:
-      std::cout << "SDL_CONTROLLERDEVICEREMAPPED" << std::endl;
+      log_debug << "SDL_CONTROLLERDEVICEREMAPPED" << std::endl;
       break;
 
     default: