summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorRachel Bryk <RachelBryk@gmail.com>2014-11-16 21:58:37 -0500
committerRachel Bryk <RachelBryk@gmail.com>2014-11-16 22:00:56 -0500
commitea11c446c2a93de8fc8c77f97d344e7584dccba7 (patch)
tree679ae918ea09e21004f554627854da3f9d22c14a /Source/Core
parent5143adac0ebe30c862b18db000b7e6dccd770aaf (diff)
Make freelook hotkeys configurable.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/ConfigManager.cpp12
-rw-r--r--Source/Core/Core/CoreParameter.h11
-rw-r--r--Source/Core/DolphinWX/Frame.cpp61
-rw-r--r--Source/Core/DolphinWX/FrameTools.cpp3
-rw-r--r--Source/Core/DolphinWX/Globals.h11
-rw-r--r--Source/Core/DolphinWX/HotkeyDlg.cpp11
6 files changed, 76 insertions, 33 deletions
diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp
index a18af93913..f9e8c170a0 100644
--- a/Source/Core/Core/ConfigManager.cpp
+++ b/Source/Core/Core/ConfigManager.cpp
@@ -69,6 +69,18 @@ static const struct
{ "ToggleThrottle", 9 /* '\t' */, 0 /* wxMOD_NONE */ },
{ "IncreaseFrameLimit", 0, 0 /* wxMOD_NONE */ },
{ "DecreaseFrameLimit", 0, 0 /* wxMOD_NONE */ },
+
+ { "FreelookIncreaseSpeed",49 /* '1' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookDecreaseSpeed",50 /* '2' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookResetSpeed", 70 /* 'F' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookUp", 69 /* 'E' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookDown", 81 /* 'Q' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookLeft", 65 /* 'A' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookRight", 68 /* 'D' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookZoomIn", 87 /* 'W' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookZoomOut", 83 /* 'S' */, 4 /* wxMOD_SHIFT */ },
+ { "FreelookReset", 82 /* 'R' */, 4 /* wxMOD_SHIFT */ },
+
{ "LoadStateSlot1", 340 /* WXK_F1 */, 0 /* wxMOD_NONE */ },
{ "LoadStateSlot2", 341 /* WXK_F2 */, 0 /* wxMOD_NONE */ },
{ "LoadStateSlot3", 342 /* WXK_F3 */, 0 /* wxMOD_NONE */ },
diff --git a/Source/Core/Core/CoreParameter.h b/Source/Core/Core/CoreParameter.h
index 44b1458444..28686a55bc 100644
--- a/Source/Core/Core/CoreParameter.h
+++ b/Source/Core/Core/CoreParameter.h
@@ -43,6 +43,17 @@ enum Hotkey
HK_INCREASE_FRAME_LIMIT,
HK_DECREASE_FRAME_LIMIT,
+ HK_FREELOOK_INCREASE_SPEED,
+ HK_FREELOOK_DECREASE_SPEED,
+ HK_FREELOOK_RESET_SPEED,
+ HK_FREELOOK_UP,
+ HK_FREELOOK_DOWN,
+ HK_FREELOOK_LEFT,
+ HK_FREELOOK_RIGHT,
+ HK_FREELOOK_ZOOM_IN,
+ HK_FREELOOK_ZOOM_OUT,
+ HK_FREELOOK_RESET,
+
HK_LOAD_STATE_SLOT_1,
HK_LOAD_STATE_SLOT_2,
HK_LOAD_STATE_SLOT_3,
diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp
index 0a00ea0b71..7aafcd62c8 100644
--- a/Source/Core/DolphinWX/Frame.cpp
+++ b/Source/Core/DolphinWX/Frame.cpp
@@ -972,6 +972,17 @@ int GetCmdForHotkey(unsigned int key)
case HK_SELECT_STATE_SLOT_10: return IDM_SELECTSLOT10;
case HK_SAVE_STATE_SLOT_SELECTED: return IDM_SAVESELECTEDSLOT;
case HK_LOAD_STATE_SLOT_SELECTED: return IDM_LOADSELECTEDSLOT;
+
+ case HK_FREELOOK_INCREASE_SPEED: return IDM_FREELOOK_INCREASE_SPEED;
+ case HK_FREELOOK_DECREASE_SPEED: return IDM_FREELOOK_DECREASE_SPEED;
+ case HK_FREELOOK_RESET_SPEED: return IDM_FREELOOK_RESET_SPEED;
+ case HK_FREELOOK_LEFT: return IDM_FREELOOK_LEFT;
+ case HK_FREELOOK_RIGHT: return IDM_FREELOOK_RIGHT;
+ case HK_FREELOOK_UP: return IDM_FREELOOK_UP;
+ case HK_FREELOOK_DOWN: return IDM_FREELOOK_DOWN;
+ case HK_FREELOOK_ZOOM_IN: return IDM_FREELOOK_ZOOM_IN;
+ case HK_FREELOOK_ZOOM_OUT: return IDM_FREELOOK_ZOOM_OUT;
+ case HK_FREELOOK_RESET: return IDM_FREELOOK_RESET;
}
return -1;
@@ -1165,44 +1176,30 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
ConnectWiimote(WiimoteId, connect);
}
- if (g_Config.bFreeLook && event.GetModifiers() == wxMOD_SHIFT)
+ if (g_Config.bFreeLook)
{
static float debugSpeed = 1.0f;
- switch (event.GetKeyCode())
- {
- case '1':
- debugSpeed /= 2.0f;
- break;
- case '2':
+
+ if (IsHotkey(event, HK_FREELOOK_INCREASE_SPEED))
debugSpeed *= 2.0f;
- break;
- case 'W':
- VertexShaderManager::TranslateView(0.0f, debugSpeed);
- break;
- case 'S':
- VertexShaderManager::TranslateView(0.0f, -debugSpeed);
- break;
- case 'A':
+ else if (IsHotkey(event, HK_FREELOOK_DECREASE_SPEED))
+ debugSpeed /= 2.0f;
+ else if (IsHotkey(event, HK_FREELOOK_RESET_SPEED))
+ debugSpeed = 1.0f;
+ else if (IsHotkey(event, HK_FREELOOK_UP))
+ VertexShaderManager::TranslateView(0.0f, 0.0f, -debugSpeed);
+ else if (IsHotkey(event, HK_FREELOOK_DOWN))
+ VertexShaderManager::TranslateView(0.0f, 0.0f, debugSpeed);
+ else if (IsHotkey(event, HK_FREELOOK_LEFT))
VertexShaderManager::TranslateView(debugSpeed, 0.0f);
- break;
- case 'D':
+ else if (IsHotkey(event, HK_FREELOOK_RIGHT))
VertexShaderManager::TranslateView(-debugSpeed, 0.0f);
- break;
- case 'Q':
- VertexShaderManager::TranslateView(0.0f, 0.0f, debugSpeed);
- break;
- case 'E':
- VertexShaderManager::TranslateView(0.0f, 0.0f, -debugSpeed);
- break;
- case 'R':
+ else if (IsHotkey(event, HK_FREELOOK_ZOOM_IN))
+ VertexShaderManager::TranslateView(0.0f, debugSpeed);
+ else if (IsHotkey(event, HK_FREELOOK_ZOOM_OUT))
+ VertexShaderManager::TranslateView(0.0f, -debugSpeed);
+ else if (IsHotkey(event, HK_FREELOOK_RESET))
VertexShaderManager::ResetView();
- break;
- case 'F':
- debugSpeed = 1.0f;
- break;
- default:
- break;
- }
}
}
else
diff --git a/Source/Core/DolphinWX/FrameTools.cpp b/Source/Core/DolphinWX/FrameTools.cpp
index dc129c693e..22dbdc0e6d 100644
--- a/Source/Core/DolphinWX/FrameTools.cpp
+++ b/Source/Core/DolphinWX/FrameTools.cpp
@@ -1771,7 +1771,8 @@ void CFrame::UpdateGUI()
{
if (GetCmdForHotkey(i) == -1)
continue;
- GetMenuBar()->FindItem(GetCmdForHotkey(i))->SetItemLabel(GetMenuLabel(i));
+ if (GetMenuBar()->FindItem(GetCmdForHotkey(i)))
+ GetMenuBar()->FindItem(GetCmdForHotkey(i))->SetItemLabel(GetMenuLabel(i));
}
GetMenuBar()->FindItem(IDM_LOADSTATE)->Enable(Initialized);
diff --git a/Source/Core/DolphinWX/Globals.h b/Source/Core/DolphinWX/Globals.h
index 26a8157098..6e6554462a 100644
--- a/Source/Core/DolphinWX/Globals.h
+++ b/Source/Core/DolphinWX/Globals.h
@@ -280,6 +280,17 @@ enum
IDM_MPANEL, ID_STATUSBAR,
+ IDM_FREELOOK_INCREASE_SPEED,
+ IDM_FREELOOK_DECREASE_SPEED,
+ IDM_FREELOOK_RESET_SPEED,
+ IDM_FREELOOK_UP,
+ IDM_FREELOOK_DOWN,
+ IDM_FREELOOK_LEFT,
+ IDM_FREELOOK_RIGHT,
+ IDM_FREELOOK_ZOOM_IN,
+ IDM_FREELOOK_ZOOM_OUT,
+ IDM_FREELOOK_RESET,
+
ID_TOOLBAR = 500,
};
diff --git a/Source/Core/DolphinWX/HotkeyDlg.cpp b/Source/Core/DolphinWX/HotkeyDlg.cpp
index 790503299b..2be49b904d 100644
--- a/Source/Core/DolphinWX/HotkeyDlg.cpp
+++ b/Source/Core/DolphinWX/HotkeyDlg.cpp
@@ -227,6 +227,17 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls()
_("Increase Frame limit"),
_("Decrease Frame limit"),
+ _("Freelook Increase Speed"),
+ _("Freelook Decrease Speed"),
+ _("Freelook Reset Speed"),
+ _("Freelook Move Up"),
+ _("Freelook Move Down"),
+ _("Freelook Move Left"),
+ _("Freelook Move Right"),
+ _("Freelook Zoom In"),
+ _("Freelook Zoom Out"),
+ _("Freelook Reset"),
+
_("Load State Slot 1"),
_("Load State Slot 2"),
_("Load State Slot 3"),