#ifndef Input_h_ #define Input_h_ #include #include #include #include #include "SDL.h" #include "Node.hpp" struct KeyCombination { std::string command; int key; bool ctrl; bool shift; bool alt; }; struct Input : Node { std::map key_ids { {"up", SDLK_UP}, {"right", SDLK_RIGHT}, {"down", SDLK_DOWN}, {"left", SDLK_LEFT}, {"f1", SDLK_F1}, {"f2", SDLK_F2}, {"f3", SDLK_F3}, {"f4", SDLK_F4}, {"f5", SDLK_F5}, {"f6", SDLK_F6}, {"f7", SDLK_F7}, {"f8", SDLK_F8}, {"f9", SDLK_F9}, {"f10", SDLK_F10}, {"f11", SDLK_F11}, {"f12", SDLK_F11}, {"enter", SDLK_RETURN}, {"space", SDLK_SPACE} }; std::vector key_map; Input(Node*); void respond(SDL_Event&); void load_key_map(); SDL_Keycode get_key_code(std::string); void add_to_key_map( std::string, SDL_Keycode, bool = false, bool = false, bool = false); void print_key_combination(KeyCombination&); std::string get_class_name() { return "Input"; } }; #endif