#include #include #include #include enum CBUTTONS { DPAD_UP = SDL_CONTROLLER_BUTTON_DPAD_UP, DPAD_DOWN = SDL_CONTROLLER_BUTTON_DPAD_DOWN, DPAD_LEFT = SDL_CONTROLLER_BUTTON_DPAD_LEFT, DPAD_RIGHT = SDL_CONTROLLER_BUTTON_DPAD_RIGHT, A = SDL_CONTROLLER_BUTTON_A, B = SDL_CONTROLLER_BUTTON_B, X = SDL_CONTROLLER_BUTTON_X, Y = SDL_CONTROLLER_BUTTON_Y, BACK = SDL_CONTROLLER_BUTTON_BACK, GUIDE = SDL_CONTROLLER_BUTTON_GUIDE, START = SDL_CONTROLLER_BUTTON_START, LEFTSTICK = SDL_CONTROLLER_BUTTON_LEFTSTICK, RIGHTSTICK = SDL_CONTROLLER_BUTTON_RIGHTSTICK, LEFTSHOULDER = SDL_CONTROLLER_BUTTON_LEFTSHOULDER, RIGHTSHOULDER = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER }; struct Controller { SDL_GameController* controller; std::string name; std::map buttons; Sint16 leftStickX = 0; Sint16 leftStickY = 0; Sint16 rightStickX = 0; Sint16 rightStickY = 0; Sint16 leftTrigger = 0; Sint16 rightTrigger = 0; }; struct Mouse { int x; int y; int wheel; std::map buttons; }; class Input { private: SDL_Event event; public: bool exit; std::map controllers; std::map activeKeys; Mouse mouse; Input(); void update(); bool keysPressed(std::vector keys); bool controllerPressed(std::vector buttons, int controller = 0); };