Fixed a Segmentation Fault when mr_iceblock was kicked into a brick containing coins...
[supertux.git] / src / control / input_manager.hpp
index 7e5e377..d047e53 100644 (file)
@@ -25,6 +25,7 @@
 #include <vector>
 #include <memory>
 
+#include "util/currenton.hpp"
 #include "util/reader_fwd.hpp"
 #include "util/writer_fwd.hpp"
 
@@ -35,8 +36,10 @@ class JoystickMenu;
 class KeyboardManager;
 class KeyboardMenu;
 class Menu;
+class KeyboardConfig;
+class JoystickConfig;
 
-class InputManager final
+class InputManager final : public Currenton<InputManager>
 {
 private:
   friend class KeyboardMenu;
@@ -45,16 +48,18 @@ private:
   typedef Controller::Control Control;
 
 public:
-  InputManager();
+  InputManager(KeyboardConfig& keyboard_config,
+               JoystickConfig& joystick_config);
   virtual ~InputManager();
 
   void process_event(const SDL_Event& event);
 
-  void write(Writer& writer);
-  void read(const Reader& lisp);
   void update();
   void reset();
 
+  void use_game_controller(bool v);
+  bool use_game_controller() const { return m_use_game_controller; }
+
   Controller* get_controller();
 
 private:
@@ -63,7 +68,7 @@ private:
 public:
   bool m_use_game_controller;
   std::unique_ptr<KeyboardManager> keyboard_manager;
-  std::unique_ptr<JoystickManager> joystick_manager; 
+  std::unique_ptr<JoystickManager> joystick_manager;
   std::unique_ptr<GameControllerManager> game_controller_manager;
 
 private: