mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-19 03:39:58 +00:00
Merge branch 'unbind_control' into 'master'
Ability to unbind controls in settings menu See merge request OpenMW/openmw!3393
This commit is contained in:
commit
30f4cd972d
@ -77,7 +77,12 @@ namespace MWInput
|
||||
// Disallow binding escape key
|
||||
if (key == SDL_SCANCODE_ESCAPE)
|
||||
{
|
||||
// Stop binding if esc pressed
|
||||
// Unbind if esc pressed
|
||||
if (mDetectingKeyboard)
|
||||
clearAllKeyBindings(mInputBinder, control);
|
||||
else
|
||||
clearAllControllerBindings(mInputBinder, control);
|
||||
control->setInitialValue(0.0f);
|
||||
mInputBinder->cancelDetectingBindingState();
|
||||
MWBase::Environment::get().getWindowManager()->notifyInputActionBound();
|
||||
return;
|
||||
@ -154,7 +159,14 @@ namespace MWInput
|
||||
return;
|
||||
clearAllControllerBindings(mInputBinder, control);
|
||||
control->setInitialValue(0.0f);
|
||||
ICS::DetectingBindingListener::joystickButtonBindingDetected(ICS, deviceID, control, button, direction);
|
||||
if (button == SDL_CONTROLLER_BUTTON_START)
|
||||
{
|
||||
// Disallow rebinding SDL_CONTROLLER_BUTTON_START - it is used to open main and without it is not
|
||||
// even possible to exit the game (or change the binding back).
|
||||
mInputBinder->cancelDetectingBindingState();
|
||||
}
|
||||
else
|
||||
ICS::DetectingBindingListener::joystickButtonBindingDetected(ICS, deviceID, control, button, direction);
|
||||
MWBase::Environment::get().getWindowManager()->notifyInputActionBound();
|
||||
}
|
||||
|
||||
@ -178,8 +190,11 @@ namespace MWInput
|
||||
mListener = std::make_unique<BindingsListener>(mInputBinder.get(), this);
|
||||
mInputBinder->setDetectingBindingListener(mListener.get());
|
||||
|
||||
loadKeyDefaults();
|
||||
loadControllerDefaults();
|
||||
if (!userFileExists)
|
||||
{
|
||||
loadKeyDefaults();
|
||||
loadControllerDefaults();
|
||||
}
|
||||
|
||||
for (int i = 0; i < A_Last; ++i)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user