summaryrefslogtreecommitdiffstats
path: root/src/citra
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2016-06-11 04:28:58 +0200
committerGitHub <noreply@github.com>2016-06-11 04:28:58 +0200
commitf99961581ee129c44625dbd8890fab349253271a (patch)
tree9a2610d391d795b533054a91c22763e869bdd62b /src/citra
parentMerge pull request #1896 from citra-emu/revert-1893-interpreter-split (diff)
parentfixup! fixup! Refactor input system (diff)
downloadyuzu-f99961581ee129c44625dbd8890fab349253271a.tar
yuzu-f99961581ee129c44625dbd8890fab349253271a.tar.gz
yuzu-f99961581ee129c44625dbd8890fab349253271a.tar.bz2
yuzu-f99961581ee129c44625dbd8890fab349253271a.tar.lz
yuzu-f99961581ee129c44625dbd8890fab349253271a.tar.xz
yuzu-f99961581ee129c44625dbd8890fab349253271a.tar.zst
yuzu-f99961581ee129c44625dbd8890fab349253271a.zip
Diffstat (limited to 'src/citra')
-rw-r--r--src/citra/config.cpp7
-rw-r--r--src/citra/default_ini.h13
-rw-r--r--src/citra/emu_window/emu_window_sdl2.cpp7
3 files changed, 19 insertions, 8 deletions
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index c64de8e22..22cb51ea8 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -44,12 +44,16 @@ bool Config::LoadINI(const std::string& default_contents, bool retry) {
}
static const std::array<int, Settings::NativeInput::NUM_INPUTS> defaults = {
+ // directly mapped keys
SDL_SCANCODE_A, SDL_SCANCODE_S, SDL_SCANCODE_Z, SDL_SCANCODE_X,
SDL_SCANCODE_Q, SDL_SCANCODE_W, SDL_SCANCODE_1, SDL_SCANCODE_2,
SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_B,
SDL_SCANCODE_T, SDL_SCANCODE_G, SDL_SCANCODE_F, SDL_SCANCODE_H,
+ SDL_SCANCODE_I, SDL_SCANCODE_K, SDL_SCANCODE_J, SDL_SCANCODE_L,
+
+ // indirectly mapped keys
SDL_SCANCODE_UP, SDL_SCANCODE_DOWN, SDL_SCANCODE_LEFT, SDL_SCANCODE_RIGHT,
- SDL_SCANCODE_I, SDL_SCANCODE_K, SDL_SCANCODE_J, SDL_SCANCODE_L
+ SDL_SCANCODE_D,
};
void Config::ReadValues() {
@@ -58,6 +62,7 @@ void Config::ReadValues() {
Settings::values.input_mappings[Settings::NativeInput::All[i]] =
sdl2_config->GetInteger("Controls", Settings::NativeInput::Mapping[i], defaults[i]);
}
+ Settings::values.pad_circle_modifier_scale = (float)sdl2_config->GetReal("Controls", "pad_circle_modifier_scale", 0.5);
// Core
Settings::values.frame_skip = sdl2_config->GetInteger("Core", "frame_skip", 0);
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h
index 49126356f..a9017dcb3 100644
--- a/src/citra/default_ini.h
+++ b/src/citra/default_ini.h
@@ -23,14 +23,19 @@ pad_l =
pad_r =
pad_zl =
pad_zr =
-pad_sup =
-pad_sdown =
-pad_sleft =
-pad_sright =
pad_cup =
pad_cdown =
pad_cleft =
pad_cright =
+pad_circle_up =
+pad_circle_down =
+pad_circle_left =
+pad_circle_right =
+pad_circle_modifier =
+
+# The applied modifier scale to circle pad.
+# Must be in range of 0.0-1.0. Defaults to 0.5
+pad_circle_modifier_scale =
[Core]
# The applied frameskip amount. Must be a power of two.
diff --git a/src/citra/emu_window/emu_window_sdl2.cpp b/src/citra/emu_window/emu_window_sdl2.cpp
index 12cdd9d95..591f68aa4 100644
--- a/src/citra/emu_window/emu_window_sdl2.cpp
+++ b/src/citra/emu_window/emu_window_sdl2.cpp
@@ -40,9 +40,9 @@ void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) {
void EmuWindow_SDL2::OnKeyEvent(int key, u8 state) {
if (state == SDL_PRESSED) {
- KeyPressed({ key, keyboard_id });
+ KeyMap::PressKey(*this, { key, keyboard_id });
} else if (state == SDL_RELEASED) {
- KeyReleased({ key, keyboard_id });
+ KeyMap::ReleaseKey(*this, { key, keyboard_id });
}
}
@@ -168,8 +168,9 @@ void EmuWindow_SDL2::DoneCurrent() {
}
void EmuWindow_SDL2::ReloadSetKeymaps() {
+ KeyMap::ClearKeyMapping(keyboard_id);
for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) {
- KeyMap::SetKeyMapping({ Settings::values.input_mappings[Settings::NativeInput::All[i]], keyboard_id }, Service::HID::pad_mapping[i]);
+ KeyMap::SetKeyMapping({ Settings::values.input_mappings[Settings::NativeInput::All[i]], keyboard_id }, KeyMap::mapping_targets[i]);
}
}