Split default input mappings by device, disabled input while menu is open, made config menu open with escape/select, made config menu close with escape

This commit is contained in:
Mr-Wiseguy
2024-01-08 03:38:05 -05:00
parent 0609c82417
commit 5ee7eaed1f
6 changed files with 174 additions and 47 deletions
+14
View File
@@ -1,5 +1,6 @@
#include "recomp_ui.h"
#include "../../ultramodern/config.hpp"
#include "../../ultramodern/ultramodern.hpp"
#include "RmlUi/Core.h"
ultramodern::GraphicsConfig cur_options;
@@ -67,6 +68,19 @@ public:
options_handle.DirtyVariable("options_changed");
update_graphics_config(new_options);
});
recomp::register_event(listener, "config_keydown",
[](const std::string& param, Rml::Event& event) {
if (event.GetId() == Rml::EventId::Keydown) {
if (event.GetParameter<Rml::Input::KeyIdentifier>("key_identifier", Rml::Input::KeyIdentifier::KI_UNKNOWN) == Rml::Input::KeyIdentifier::KI_ESCAPE) {
if (ultramodern::is_game_started()) {
recomp::set_current_menu(recomp::Menu::None);
}
else {
recomp::set_current_menu(recomp::Menu::Launcher);
}
}
}
});
}
void make_bindings(Rml::Context* context) override {
Rml::DataModelConstructor constructor = context->CreateDataModel("graphics_model");