#pragma once #include "../Core/Action.h" #include #include #include using sfKey = sf::Keyboard::Key; static const int NUMBER_OF_KEYBINDS = 5; static const int CUSTOMIZABLE_KEYBINDS = NUMBER_OF_KEYBINDS - 1; class Keybinds { private: std::map> keybinds; int layoutNumber; bool modifiable; public: Keybinds(int layoutNumber); void loadKeybindsFromFile(); void saveKeybindsToFile() const; void addKey(Action action, sfKey key); void clearKeys(Action action); bool isModifiable() const; const std::set getActions(sfKey key) const; const std::set& getKeybinds(Action action) const; };