Some minor code cleanup resulting from a user running code through cppcheck, mostly...
[supertux.git] / src / control / joystickkeyboardcontroller.cpp
index de414fa..aa05152 100644 (file)
@@ -239,8 +239,10 @@ JoystickKeyboardController::read(const Reader& lisp)
           continue;
         }
 
+       bool js_available = joysticks.size() > 0;
+
         if (map->get("button", button)) {
-          if(button < 0 || button >= max_joybuttons) {
+          if(js_available && (button < 0 || button >= max_joybuttons)) {
             log_info << "Invalid button '" << button << "' in buttonmap" << std::endl;
             continue;
           }
@@ -248,7 +250,7 @@ JoystickKeyboardController::read(const Reader& lisp)
         }
 
         if (map->get("axis",   axis)) {
-          if (axis == 0 || abs(axis) > max_joyaxis) {
+          if (js_available && (axis == 0 || abs(axis) > max_joyaxis)) {
             log_info << "Invalid axis '" << axis << "' in axismap" << std::endl;
             continue;
           }
@@ -256,7 +258,8 @@ JoystickKeyboardController::read(const Reader& lisp)
         }
 
         if (map->get("hat",   hat)) {
-          if (hat != SDL_HAT_UP   &&
+          if (js_available        &&
+              hat != SDL_HAT_UP   &&
               hat != SDL_HAT_DOWN &&
               hat != SDL_HAT_LEFT &&
               hat != SDL_HAT_RIGHT) {
@@ -414,8 +417,6 @@ JoystickKeyboardController::process_axis_event(const SDL_JoyAxisEvent& jaxis)
     } else {
       if (jaxis.value < -dead_zone)
         set_joy_controls(left->second,  true);
-      else if (jaxis.value > dead_zone)
-        set_joy_controls(left->second, false);
       else
         set_joy_controls(left->second, false);
     }
@@ -423,9 +424,7 @@ JoystickKeyboardController::process_axis_event(const SDL_JoyAxisEvent& jaxis)
     if(right == joy_axis_map.end()) {
       // std::cout << "Unmapped joyaxis " << (int)jaxis.axis << " moved" << std::endl;
     } else {
-      if (jaxis.value < -dead_zone)
-        set_joy_controls(right->second, false);
-      else if (jaxis.value > dead_zone)
+      if (jaxis.value > dead_zone)
         set_joy_controls(right->second, true);
       else
         set_joy_controls(right->second, false);