diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a66808..0fa3419 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ - Options menu - Marker Selection - Fix screen filter not resizing properly + - Controller mapping ## Misc - Handling Resolution changes diff --git a/TODO.md b/TODO.md index 7479123..34c0557 100644 --- a/TODO.md +++ b/TODO.md @@ -2,8 +2,6 @@ ## Misc ## Music Select Screen -- Options menu - - Controller mapping - Visible controls - Start Button diff --git a/meson.build b/meson.build index 0bfe78b..c4950e7 100644 --- a/meson.build +++ b/meson.build @@ -53,8 +53,10 @@ sources = [ 'src/Screens/MusicSelect/MusicPreview.cpp', 'src/Screens/MusicSelect/MusicSelect.hpp', 'src/Screens/MusicSelect/MusicSelect.cpp', - 'src/Screens/MusicSelect/OptionPage.hpp', - 'src/Screens/MusicSelect/OptionPage.cpp', + 'src/Screens/MusicSelect/Options/OptionPage.hpp', + 'src/Screens/MusicSelect/Options/OptionPage.cpp', + 'src/Screens/MusicSelect/Options/InputRemap.hpp', + 'src/Screens/MusicSelect/Options/InputRemap.cpp', 'src/Screens/MusicSelect/Panels/MarkerPanel.hpp', 'src/Screens/MusicSelect/Panels/MarkerPanel.cpp', 'src/Screens/MusicSelect/Panels/Panel.hpp', diff --git a/src/Data/KeyMapping.cpp b/src/Data/KeyMapping.cpp index 4a623e9..af12377 100644 --- a/src/Data/KeyMapping.cpp +++ b/src/Data/KeyMapping.cpp @@ -30,7 +30,14 @@ namespace Data { for (auto &&[button, key] : m_button_to_key) { m_key_to_button[key] = button; } - + assert((m_button_to_key.size() == m_key_to_button.size())); + } + + KeyMapping::KeyMapping(std::unordered_map key_to_button) : m_key_to_button(key_to_button) { + for (auto &&[key, button] : m_key_to_button) { + m_button_to_key[button] = key; + } + assert((m_button_to_key.size() == m_key_to_button.size())); } void KeyMapping::set_button_to_key(const Button& button, const sf::Keyboard::Key& key) { diff --git a/src/Data/KeyMapping.hpp b/src/Data/KeyMapping.hpp index f9d2e39..288a11e 100644 --- a/src/Data/KeyMapping.hpp +++ b/src/Data/KeyMapping.hpp @@ -16,6 +16,7 @@ namespace Data { public: KeyMapping(); explicit KeyMapping(std::unordered_map button_to_key); + explicit KeyMapping(std::unordered_map button_to_key); void set_button_to_key(const Button& button, const sf::Keyboard::Key& key); std::optional