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

Reply via email to