This is an automated email from the git hooks/post-receive script. odyx pushed a commit to branch debian/master in repository colobot.
commit 5f01153c5fe0592fde7ea22f0ad9649ed928e05f Author: krzys-h <krzy...@interia.pl> Date: Sun Jan 24 20:48:07 2016 +0100 Fixed joystick switch crash; small bugfix to joystick UI --- src/app/app.cpp | 1 + src/ui/screen/screen_setup_controls.cpp | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/app/app.cpp b/src/app/app.cpp index 0b47cd3..10baa73 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -684,6 +684,7 @@ bool CApplication::OpenJoystick() if ( (m_joystick.index < 0) || (m_joystick.index >= SDL_NumJoysticks()) ) return false; + assert(m_private->joystick == nullptr); GetLogger()->Info("Opening joystick %d\n", m_joystick.index); m_private->joystick = SDL_JoystickOpen(m_joystick.index); diff --git a/src/ui/screen/screen_setup_controls.cpp b/src/ui/screen/screen_setup_controls.cpp index a9f413e..bd72556 100644 --- a/src/ui/screen/screen_setup_controls.cpp +++ b/src/ui/screen/screen_setup_controls.cpp @@ -244,7 +244,8 @@ void CScreenSetupControls::ChangeSetupButtons() { if (pli->GetSelect() > 0) { - m_app->ChangeJoystick(m_app->GetJoystickList()[pli->GetSelect()-1]); + m_app->SetJoystickEnabled(false); + m_app->ChangeJoystick(m_app->GetJoystickList().at(pli->GetSelect()-1)); m_app->SetJoystickEnabled(true); } else @@ -328,45 +329,45 @@ void CScreenSetupControls::UpdateSetupButtons() { pli->SetItemName(1 + i, joysticks[i].name.c_str()); } - pli->SetSelect(m_app->GetJoystick().index + 1); + pli->SetSelect(m_app->GetJoystickEnabled() ? m_app->GetJoystick().index + 1 : 0); } if (nullptr != (pev = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_X)))) { - pev->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pev->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pev->SetMaxValue(m_app->GetJoystick().axisCount-1); pev->SetValue(m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_X).axis); } if (nullptr != (pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_X_INVERT)))) { - pc->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pc->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pc->SetState(STATE_CHECK, m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_X).invert); } if (nullptr != (pev = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_Y)))) { - pev->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pev->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pev->SetMaxValue(m_app->GetJoystick().axisCount-1); pev->SetValue(m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_Y).axis); } if (nullptr != (pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_Y_INVERT)))) { - pc->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pc->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pc->SetState(STATE_CHECK, m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_Y).invert); } if (nullptr != (pev = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_Z)))) { - pev->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pev->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pev->SetMaxValue(m_app->GetJoystick().axisCount-1); pev->SetValue(m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_Z).axis); } if (nullptr != (pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_Z_INVERT)))) { - pc->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pc->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pc->SetState(STATE_CHECK, m_input->GetJoyAxisBinding(JOY_AXIS_SLOT_Z).invert); } if (nullptr != (pev = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_JOYSTICK_DEADZONE)))) { - pev->SetState(STATE_ENABLE, m_app->GetJoystick().index >= 0); + pev->SetState(STATE_ENABLE, m_app->GetJoystickEnabled()); pev->SetValue(m_input->GetJoystickDeadzone()); } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git _______________________________________________ Pkg-games-commits mailing list Pkg-games-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits