Mark Sibly 8 роки тому
батько
коміт
3ebb643dab
1 змінених файлів з 12 додано та 4 видалено
  1. 12 4
      modules/mojo/input/joystick.monkey2

+ 12 - 4
modules/mojo/input/joystick.monkey2

@@ -216,10 +216,12 @@ Class JoystickDevice
 			
 			Local sdlindex:=jevent->which
 			
-			For Local i:=MaxJoysticks-1 Until jevent->which Step -1
+'			Print "JOYDEVICEADDED:"+sdlindex
+			
+			For Local i:=MaxJoysticks-1 Until sdlindex Step -1
 				_opened[i]=_opened[i-1]
 			Next
-			_opened[jevent->which]=-1
+			_opened[sdlindex]=-1
 			
 		Case SDL_JOYDEVICEREMOVED
 			
@@ -228,11 +230,17 @@ Class JoystickDevice
 			Local sdljoystick:=SDL_JoystickFromInstanceID( jevent->which )
 			If Not sdljoystick Return
 			
-			For Local joystick:=Eachin _joysticks
+			For Local sdlindex:=0 Until MaxJoysticks
+				
+				Local index:=_opened[sdlindex]
+				If index=-1 Continue
 				
+				Local joystick:=_joysticks[index]
 				If Not joystick Or joystick._joystick<>sdljoystick Continue
 				
-				For Local i:=joystick._index Until MaxJoysticks-1
+'				Print "JOYDEVICEREMOVED:"+sdlindex
+				
+				For Local i:=sdlindex Until MaxJoysticks-1
 					_opened[i]=_opened[i+1]
 				Next
 				_opened[MaxJoysticks-1]=-1