Fixed a crash on launch which occurred if the hotkeys are not defined and the default hotkeys are loaded.

This commit is contained in:
skidau 2015-03-07 14:41:08 +11:00
parent 8f0bc1cd3a
commit 3e12787cc8
1 changed files with 8 additions and 94 deletions

View File

@ -239,7 +239,7 @@ void HotkeyManager::GetInput(HotkeyStatus* const kb)
std::vector<u32> bitmasks; std::vector<u32> bitmasks;
for (int key = 0; key < 32; key++) for (int key = 0; key < 32; key++)
{ {
if (hotkey_labels[set * 32 + key].length() != 0) if ((set * 32 + key) < num_hotkeys && hotkey_labels[set * 32 + key].length() != 0)
bitmasks.push_back(1 << key); bitmasks.push_back(1 << key);
} }
@ -253,97 +253,11 @@ void HotkeyManager::GetInput(HotkeyStatus* const kb)
void HotkeyManager::LoadDefaults(const ControllerInterface& ciface) void HotkeyManager::LoadDefaults(const ControllerInterface& ciface)
{ {
#define set_control(group, num, str) (group)->controls[num]->control_ref->expression = (str) for (int set = 0; set < 3; set++)
{
ControllerEmu::LoadDefaults(ciface); for (unsigned int key = 0; key < (m_keys[set])->controls.size(); key++)
{
// Buttons (m_keys[set])->controls[key]->control_ref->expression = "";
set_control(m_keys[0], 0, ""); // Open }
set_control(m_keys[0], 1, ""); // ChangeDisc }
set_control(m_keys[0], 2, ""); // RefreshList
set_control(m_keys[0], 3, ""); // PlayPause
set_control(m_keys[0], 4, ""); // Stop
set_control(m_keys[0], 5, ""); // Reset
set_control(m_keys[0], 6, ""); // FrameAdvance
set_control(m_keys[0], 7, ""); // StartRecording
set_control(m_keys[0], 8, ""); // PlayRecording
set_control(m_keys[0], 9, ""); // ExportRecording
set_control(m_keys[0], 10, ""); // Readonlymode
set_control(m_keys[0], 11, ""); // ToggleFullscreen
set_control(m_keys[0], 12, ""); // Screenshot
set_control(m_keys[0], 13, ""); // Exit
set_control(m_keys[0], 14, ""); // Wiimote1Connect
set_control(m_keys[0], 15, ""); // Wiimote2Connect
set_control(m_keys[0], 16, ""); // Wiimote3Connect
set_control(m_keys[0], 17, ""); // Wiimote4Connect
set_control(m_keys[0], 18, ""); // BalanceBoardConnect
set_control(m_keys[0], 19, ""); // VolumeDown
set_control(m_keys[0], 20, ""); // VolumeUp
set_control(m_keys[0], 21, ""); // VolumeToggleMute
set_control(m_keys[0], 22, ""); // ToggleIR
set_control(m_keys[0], 23, ""); // ToggleAspectRatio
set_control(m_keys[0], 24, ""); // ToggleEFBCopies
set_control(m_keys[0], 25, ""); // ToggleFog
set_control(m_keys[0], 26, ""); // ToggleThrottle
set_control(m_keys[0], 27, ""); // DecreaseFrameLimit
set_control(m_keys[0], 28, ""); // IncreaseFrameLimit
set_control(m_keys[0], 29, ""); // FreelookDecreaseSpeed
set_control(m_keys[0], 30, ""); // FreelookIncreaseSpeed
set_control(m_keys[0], 31, ""); // FreelookResetSpeed
set_control(m_keys[1], 0, ""); // FreelookUp
set_control(m_keys[1], 1, ""); // FreelookDown
set_control(m_keys[1], 2, ""); // FreelookLeft
set_control(m_keys[1], 3, ""); // FreelookRight
set_control(m_keys[1], 4, ""); // FreelookZoomIn
set_control(m_keys[1], 5, ""); // FreelookZoomOut
set_control(m_keys[1], 6, ""); // FreelookReset
set_control(m_keys[1], 7, ""); // DecreaseDepth
set_control(m_keys[1], 8, ""); // IncreaseDepth
set_control(m_keys[1], 9, ""); // DecreaseConvergence
set_control(m_keys[1], 10, ""); // IncreaseConvergence
set_control(m_keys[1], 11, ""); // LoadStateSlot1
set_control(m_keys[1], 12, ""); // LoadStateSlot2
set_control(m_keys[1], 13, ""); // LoadStateSlot3
set_control(m_keys[1], 14, ""); // LoadStateSlot4
set_control(m_keys[1], 15, ""); // LoadStateSlot5
set_control(m_keys[1], 16, ""); // LoadStateSlot6
set_control(m_keys[1], 17, ""); // LoadStateSlot7
set_control(m_keys[1], 18, ""); // LoadStateSlot8
set_control(m_keys[1], 19, ""); // LoadStateSlot9
set_control(m_keys[1], 20, ""); // LoadStateSlot10
set_control(m_keys[1], 21, ""); // SaveStateSlot1
set_control(m_keys[1], 22, ""); // SaveStateSlot2
set_control(m_keys[1], 23, ""); // SaveStateSlot3
set_control(m_keys[1], 24, ""); // SaveStateSlot4
set_control(m_keys[1], 25, ""); // SaveStateSlot5
set_control(m_keys[1], 26, ""); // SaveStateSlot6
set_control(m_keys[1], 27, ""); // SaveStateSlot7
set_control(m_keys[1], 28, ""); // SaveStateSlot8
set_control(m_keys[1], 29, ""); // SaveStateSlot9
set_control(m_keys[1], 30, ""); // SaveStateSlot10
set_control(m_keys[1], 31, ""); // SelectStateSlot1
set_control(m_keys[2], 0, ""); // SelectStateSlot2
set_control(m_keys[2], 1, ""); // SelectStateSlot3
set_control(m_keys[2], 2, ""); // SelectStateSlot4
set_control(m_keys[2], 3, ""); // SelectStateSlot5
set_control(m_keys[2], 4, ""); // SelectStateSlot6
set_control(m_keys[2], 5, ""); // SelectStateSlot7
set_control(m_keys[2], 6, ""); // SelectStateSlot8
set_control(m_keys[2], 7, ""); // SelectStateSlot9
set_control(m_keys[2], 8, ""); // SelectStateSlot10
set_control(m_keys[2], 9, ""); // SaveSelectedSlot
set_control(m_keys[2], 10, ""); // LoadSelectedSlot
set_control(m_keys[2], 11, ""); // LoadLastState1
set_control(m_keys[2], 12, ""); // LoadLastState2
set_control(m_keys[2], 13, ""); // LoadLastState3
set_control(m_keys[2], 14, ""); // LoadLastState4
set_control(m_keys[2], 15, ""); // LoadLastState5
set_control(m_keys[2], 16, ""); // LoadLastState6
set_control(m_keys[2], 17, ""); // LoadLastState7
set_control(m_keys[2], 18, ""); // LoadLastState8
set_control(m_keys[2], 19, ""); // SaveFirstState
set_control(m_keys[2], 20, ""); // UndoLoadState
set_control(m_keys[2], 21, ""); // UndoSaveState
set_control(m_keys[2], 22, ""); // SaveStateFile
set_control(m_keys[2], 23, ""); // LoadStateFile
} }