#ifndef BUTTONS_H #define BUTTONS_H #include "input/Button.h" #include "utils/Array.h" #include "utils/List.h" #include "wrapper/Window.h" typedef List ButtonList; class Buttons final { typedef Array DownArray; const Window& window; Button dummy; int activeController; ButtonList buttons; struct Axis { float less; float greater; int lessIndex; int greaterIndex; Axis(); }; Array gamepadToButton; Array gamepadAxisToButton; public: Buttons(const Window& window); Button& add(int key, const char* name); void mapGamepadButton(const Button& button, int mapping); void mapGamepadAxis(const Button& button, float value, int index); void tick(); const ButtonList& get() const; private: bool searchForGamepad(); void checkGamepad(DownArray& down); int searchButton(const Button& button) const; }; #endif