mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-21 18:39:40 +00:00
Fix mControlsDisabled flag usage
This commit is contained in:
parent
a6351dd887
commit
e3df170a53
9 changed files with 24 additions and 27 deletions
|
@ -76,6 +76,8 @@ namespace MWBase
|
||||||
virtual void resetIdleTime() = 0;
|
virtual void resetIdleTime() = 0;
|
||||||
|
|
||||||
virtual void executeAction(int action) = 0;
|
virtual void executeAction(int action) = 0;
|
||||||
|
|
||||||
|
virtual bool controlsDisabled() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,6 @@ namespace MWInput
|
||||||
, mSneakToggleShortcutTimer(0.f)
|
, mSneakToggleShortcutTimer(0.f)
|
||||||
, mGamepadZoom(0)
|
, mGamepadZoom(0)
|
||||||
, mGamepadGuiCursorEnabled(true)
|
, mGamepadGuiCursorEnabled(true)
|
||||||
, mControlsDisabled(false)
|
|
||||||
, mJoystickLastUsed(false)
|
, mJoystickLastUsed(false)
|
||||||
, mSneakGamepadShortcut(false)
|
, mSneakGamepadShortcut(false)
|
||||||
, mGamepadPreviewMode(false)
|
, mGamepadPreviewMode(false)
|
||||||
|
@ -83,9 +82,8 @@ namespace MWInput
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ControllerManager::update(float dt, bool disableControls)
|
bool ControllerManager::update(float dt)
|
||||||
{
|
{
|
||||||
mControlsDisabled = disableControls;
|
|
||||||
mGamepadPreviewMode = mActionManager->getPreviewDelay() == 1.f;
|
mGamepadPreviewMode = mActionManager->getPreviewDelay() == 1.f;
|
||||||
|
|
||||||
if (mGuiCursorEnabled && !(mJoystickLastUsed && !mGamepadGuiCursorEnabled))
|
if (mGuiCursorEnabled && !(mJoystickLastUsed && !mGamepadGuiCursorEnabled))
|
||||||
|
@ -232,7 +230,7 @@ namespace MWInput
|
||||||
auto kc = sdlKeyToMyGUI(SDLK_ESCAPE);
|
auto kc = sdlKeyToMyGUI(SDLK_ESCAPE);
|
||||||
mBindingsManager->setPlayerControlsEnabled(!MyGUI::InputManager::getInstance().injectKeyPress(kc, 0));
|
mBindingsManager->setPlayerControlsEnabled(!MyGUI::InputManager::getInstance().injectKeyPress(kc, 0));
|
||||||
|
|
||||||
if (!mControlsDisabled)
|
if (!MWBase::Environment::get().getInputManager()->controlsDisabled())
|
||||||
mBindingsManager->controllerButtonPressed(deviceID, arg);
|
mBindingsManager->controllerButtonPressed(deviceID, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,7 +242,7 @@ namespace MWInput
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mJoystickEnabled || mControlsDisabled)
|
if (!mJoystickEnabled || MWBase::Environment::get().getInputManager()->controlsDisabled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mJoystickLastUsed = true;
|
mJoystickLastUsed = true;
|
||||||
|
@ -275,7 +273,7 @@ namespace MWInput
|
||||||
|
|
||||||
void ControllerManager::axisMoved(int deviceID, const SDL_ControllerAxisEvent &arg)
|
void ControllerManager::axisMoved(int deviceID, const SDL_ControllerAxisEvent &arg)
|
||||||
{
|
{
|
||||||
if (!mJoystickEnabled || mControlsDisabled)
|
if (!mJoystickEnabled || MWBase::Environment::get().getInputManager()->controlsDisabled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mJoystickLastUsed = true;
|
mJoystickLastUsed = true;
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace MWInput
|
||||||
|
|
||||||
virtual ~ControllerManager() = default;
|
virtual ~ControllerManager() = default;
|
||||||
|
|
||||||
bool update(float dt, bool disableControls);
|
bool update(float dt);
|
||||||
|
|
||||||
virtual void buttonPressed(int deviceID, const SDL_ControllerButtonEvent &arg);
|
virtual void buttonPressed(int deviceID, const SDL_ControllerButtonEvent &arg);
|
||||||
virtual void buttonReleased(int deviceID, const SDL_ControllerButtonEvent &arg);
|
virtual void buttonReleased(int deviceID, const SDL_ControllerButtonEvent &arg);
|
||||||
|
@ -56,7 +56,6 @@ namespace MWInput
|
||||||
float mSneakToggleShortcutTimer;
|
float mSneakToggleShortcutTimer;
|
||||||
float mGamepadZoom;
|
float mGamepadZoom;
|
||||||
bool mGamepadGuiCursorEnabled;
|
bool mGamepadGuiCursorEnabled;
|
||||||
bool mControlsDisabled;
|
|
||||||
bool mJoystickLastUsed;
|
bool mJoystickLastUsed;
|
||||||
bool mGuiCursorEnabled;
|
bool mGuiCursorEnabled;
|
||||||
bool mSneakGamepadShortcut;
|
bool mSneakGamepadShortcut;
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace MWInput
|
||||||
const std::string& userFile, bool userFileExists, const std::string& userControllerBindingsFile,
|
const std::string& userFile, bool userFileExists, const std::string& userControllerBindingsFile,
|
||||||
const std::string& controllerBindingsFile, bool grab)
|
const std::string& controllerBindingsFile, bool grab)
|
||||||
: mGrabCursor(Settings::Manager::getBool("grab cursor", "Input"))
|
: mGrabCursor(Settings::Manager::getBool("grab cursor", "Input"))
|
||||||
|
, mControlsDisabled(false)
|
||||||
{
|
{
|
||||||
mInputWrapper = new SDLUtil::InputWrapper(window, viewer, grab);
|
mInputWrapper = new SDLUtil::InputWrapper(window, viewer, grab);
|
||||||
mInputWrapper->setWindowEventCallback(MWBase::Environment::get().getWindowManager());
|
mInputWrapper->setWindowEventCallback(MWBase::Environment::get().getWindowManager());
|
||||||
|
@ -105,10 +106,11 @@ namespace MWInput
|
||||||
|
|
||||||
void InputManager::update(float dt, bool disableControls, bool disableEvents)
|
void InputManager::update(float dt, bool disableControls, bool disableEvents)
|
||||||
{
|
{
|
||||||
|
mControlsDisabled = disableControls;
|
||||||
|
|
||||||
mInputWrapper->setMouseVisible(MWBase::Environment::get().getWindowManager()->getCursorVisible());
|
mInputWrapper->setMouseVisible(MWBase::Environment::get().getWindowManager()->getCursorVisible());
|
||||||
mInputWrapper->capture(disableEvents);
|
mInputWrapper->capture(disableEvents);
|
||||||
|
|
||||||
mKeyboardManager->setControlsDisabled(disableControls);
|
|
||||||
if (disableControls)
|
if (disableControls)
|
||||||
{
|
{
|
||||||
updateCursorMode();
|
updateCursorMode();
|
||||||
|
@ -119,8 +121,8 @@ namespace MWInput
|
||||||
|
|
||||||
updateCursorMode();
|
updateCursorMode();
|
||||||
|
|
||||||
bool controllerMove = mControllerManager->update(dt, disableControls);
|
bool controllerMove = mControllerManager->update(dt);
|
||||||
mMouseManager->update(dt, disableControls);
|
mMouseManager->update(dt);
|
||||||
mSensorManager->update(dt);
|
mSensorManager->update(dt);
|
||||||
mActionManager->update(dt, controllerMove);
|
mActionManager->update(dt, controllerMove);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,8 @@ namespace MWInput
|
||||||
|
|
||||||
virtual void executeAction(int action);
|
virtual void executeAction(int action);
|
||||||
|
|
||||||
|
virtual bool controlsDisabled() { return mControlsDisabled; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void convertMousePosForMyGUI(int& x, int& y);
|
void convertMousePosForMyGUI(int& x, int& y);
|
||||||
|
|
||||||
|
@ -110,6 +112,7 @@ namespace MWInput
|
||||||
SDLUtil::InputWrapper* mInputWrapper;
|
SDLUtil::InputWrapper* mInputWrapper;
|
||||||
|
|
||||||
bool mGrabCursor;
|
bool mGrabCursor;
|
||||||
|
bool mControlsDisabled;
|
||||||
|
|
||||||
ControlSwitch* mControlSwitch;
|
ControlSwitch* mControlSwitch;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ namespace MWInput
|
||||||
{
|
{
|
||||||
KeyboardManager::KeyboardManager(BindingsManager* bindingsManager)
|
KeyboardManager::KeyboardManager(BindingsManager* bindingsManager)
|
||||||
: mBindingsManager(bindingsManager)
|
: mBindingsManager(bindingsManager)
|
||||||
, mControlsDisabled(false)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,10 +52,11 @@ namespace MWInput
|
||||||
if (arg.repeat)
|
if (arg.repeat)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!mControlsDisabled && !consumed)
|
MWBase::InputManager* input = MWBase::Environment::get().getInputManager();
|
||||||
|
if (!input->controlsDisabled() && !consumed)
|
||||||
mBindingsManager->keyPressed(arg);
|
mBindingsManager->keyPressed(arg);
|
||||||
|
|
||||||
MWBase::Environment::get().getInputManager()->setJoystickLastUsed(false);
|
input->setJoystickLastUsed(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeyboardManager::keyReleased(const SDL_KeyboardEvent &arg)
|
void KeyboardManager::keyReleased(const SDL_KeyboardEvent &arg)
|
||||||
|
|
|
@ -19,12 +19,8 @@ namespace MWInput
|
||||||
virtual void keyPressed(const SDL_KeyboardEvent &arg);
|
virtual void keyPressed(const SDL_KeyboardEvent &arg);
|
||||||
virtual void keyReleased(const SDL_KeyboardEvent &arg);
|
virtual void keyReleased(const SDL_KeyboardEvent &arg);
|
||||||
|
|
||||||
void setControlsDisabled(bool disabled) { mControlsDisabled = disabled; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BindingsManager* mBindingsManager;
|
BindingsManager* mBindingsManager;
|
||||||
|
|
||||||
bool mControlsDisabled;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,7 +33,6 @@ namespace MWInput
|
||||||
, mGuiCursorY(0)
|
, mGuiCursorY(0)
|
||||||
, mMouseWheel(0)
|
, mMouseWheel(0)
|
||||||
, mMouseLookEnabled(false)
|
, mMouseLookEnabled(false)
|
||||||
, mControlsDisabled(false)
|
|
||||||
, mGuiCursorEnabled(true)
|
, mGuiCursorEnabled(true)
|
||||||
{
|
{
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
|
@ -88,7 +87,7 @@ namespace MWInput
|
||||||
MWBase::Environment::get().getWindowManager()->setCursorActive(true);
|
MWBase::Environment::get().getWindowManager()->setCursorActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mMouseLookEnabled && !mControlsDisabled)
|
if (mMouseLookEnabled && !input->controlsDisabled())
|
||||||
{
|
{
|
||||||
float x = arg.xrel * mCameraSensitivity * (mInvertX ? -1 : 1) / 256.f;
|
float x = arg.xrel * mCameraSensitivity * (mInvertX ? -1 : 1) / 256.f;
|
||||||
float y = arg.yrel * mCameraSensitivity * (mInvertY ? -1 : 1) * mCameraYMultiplier / 256.f;
|
float y = arg.yrel * mCameraSensitivity * (mInvertY ? -1 : 1) * mCameraYMultiplier / 256.f;
|
||||||
|
@ -136,10 +135,11 @@ namespace MWInput
|
||||||
|
|
||||||
void MouseManager::mouseWheelMoved(const SDL_MouseWheelEvent &arg)
|
void MouseManager::mouseWheelMoved(const SDL_MouseWheelEvent &arg)
|
||||||
{
|
{
|
||||||
if (mBindingsManager->isDetectingBindingState() || !mControlsDisabled)
|
MWBase::InputManager* input = MWBase::Environment::get().getInputManager();
|
||||||
|
if (mBindingsManager->isDetectingBindingState() || !input->controlsDisabled())
|
||||||
mBindingsManager->mouseWheelMoved(arg);
|
mBindingsManager->mouseWheelMoved(arg);
|
||||||
|
|
||||||
MWBase::Environment::get().getInputManager()->setJoystickLastUsed(false);
|
input->setJoystickLastUsed(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MouseManager::mousePressed(const SDL_MouseButtonEvent &arg, Uint8 id)
|
void MouseManager::mousePressed(const SDL_MouseButtonEvent &arg, Uint8 id)
|
||||||
|
@ -169,10 +169,8 @@ namespace MWInput
|
||||||
mBindingsManager->mousePressed(arg, id);
|
mBindingsManager->mousePressed(arg, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MouseManager::update(float dt, bool disableControls)
|
void MouseManager::update(float dt)
|
||||||
{
|
{
|
||||||
mControlsDisabled = disableControls;
|
|
||||||
|
|
||||||
if (!mMouseLookEnabled)
|
if (!mMouseLookEnabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace MWInput
|
||||||
|
|
||||||
virtual ~MouseManager() = default;
|
virtual ~MouseManager() = default;
|
||||||
|
|
||||||
void update(float dt, bool disableControls);
|
void update(float dt);
|
||||||
|
|
||||||
virtual void mouseMoved(const SDLUtil::MouseMotionEvent &arg);
|
virtual void mouseMoved(const SDLUtil::MouseMotionEvent &arg);
|
||||||
virtual void mousePressed(const SDL_MouseButtonEvent &arg, Uint8 id);
|
virtual void mousePressed(const SDL_MouseButtonEvent &arg, Uint8 id);
|
||||||
|
@ -51,7 +51,6 @@ namespace MWInput
|
||||||
float mGuiCursorY;
|
float mGuiCursorY;
|
||||||
int mMouseWheel;
|
int mMouseWheel;
|
||||||
bool mMouseLookEnabled;
|
bool mMouseLookEnabled;
|
||||||
bool mControlsDisabled;
|
|
||||||
bool mGuiCursorEnabled;
|
bool mGuiCursorEnabled;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue