hedgewars/uKeys.pas
changeset 2671 7e0f88013fe8
parent 2630 079ef82eac75
child 2674 2fce032f2f95
equal deleted inserted replaced
2670:1b327b7515ed 2671:7e0f88013fe8
   103           and (CurrentHedgehog^.BotLevel = 0);
   103           and (CurrentHedgehog^.BotLevel = 0);
   104 
   104 
   105 // move cursor/camera
   105 // move cursor/camera
   106 // TODO: Scale on screen dimensions and/or axis value (game controller)?
   106 // TODO: Scale on screen dimensions and/or axis value (game controller)?
   107 movecursor(5 * CursorMovementX, 5 * CursorMovementY);
   107 movecursor(5 * CursorMovementX, 5 * CursorMovementY);
   108 		  
   108 
       
   109 k:= SDL_GetMouseState(nil, nil);
   109 {$IFDEF SDL13}
   110 {$IFDEF SDL13}
   110 pkbd := SDL_GetKeyboardState(@j);
   111 pkbd:= SDL_GetKeyboardState(@j);
   111 k    := SDL_GetMouseState(0, nil, nil);
       
   112 {$ELSE}
   112 {$ELSE}
   113 pkbd := SDL_GetKeyState(@j);
   113 pkbd:= SDL_GetKeyState(@j);
   114 k    := SDL_GetMouseState(nil, nil);
       
   115 {$ENDIF}
   114 {$ENDIF}
   116 
   115 
   117 {$IFNDEF IPHONEOS}
   116 {$IFNDEF IPHONEOS}
   118 for i:= 6 to pred(j) do // first 6 will be overwritten
   117 for i:= 6 to pred(j) do // first 6 will be overwritten
   119 	tkbdn[i]:= pkbd^[i];
   118 	tkbdn[i]:= pkbd^[i];
   210 procedure ResetKbd;
   209 procedure ResetKbd;
   211 var i, j, k, t: LongInt;
   210 var i, j, k, t: LongInt;
   212     pkbd: PByteArray;
   211     pkbd: PByteArray;
   213 begin
   212 begin
   214 
   213 
       
   214 k:= SDL_GetMouseState(nil, nil);
   215 {$IFDEF SDL13}
   215 {$IFDEF SDL13}
   216 pkbd:= SDL_GetKeyboardState(@j);
   216 pkbd:= SDL_GetKeyboardState(@j);
   217 k:= SDL_GetMouseState(0, nil, nil);
       
   218 {$ELSE}
   217 {$ELSE}
   219 pkbd:= SDL_GetKeyState(@j);
   218 pkbd:= SDL_GetKeyState(@j);
   220 k:= SDL_GetMouseState(nil, nil);
       
   221 {$ENDIF}
   219 {$ENDIF}
   222 TryDo(j < cKeyMaxIndex, 'SDL keys number is more than expected (' + inttostr(j) + ')', true);
   220 TryDo(j < cKeyMaxIndex, 'SDL keys number is more than expected (' + inttostr(j) + ')', true);
   223 
   221 
   224 {$IFNDEF IPHONEOS}
   222 {$IFNDEF IPHONEOS}
   225 for i:= 1 to pred(j) do
   223 for i:= 1 to pred(j) do
   239 // mouse wheels (see event loop in project file)
   237 // mouse wheels (see event loop in project file)
   240 tkbdn[4]:= ord(wheelDown);
   238 tkbdn[4]:= ord(wheelDown);
   241 tkbdn[5]:= ord(wheelUp);
   239 tkbdn[5]:= ord(wheelUp);
   242 wheelUp:= false;
   240 wheelUp:= false;
   243 wheelDown:= false;
   241 wheelDown:= false;
       
   242 
   244 {$IFDEF IPHONEOS}
   243 {$IFDEF IPHONEOS}
   245 tkbdn[1]:= ord(leftClick);
   244 tkbdn[1]:= ord(leftClick);
   246 tkbdn[2]:= ord(middleClick);
   245 tkbdn[2]:= ord(middleClick);
   247 tkbdn[3]:= ord(rightClick);
   246 tkbdn[3]:= ord(rightClick);
   248 leftClick:= false;
   247 leftClick:= false;
   321        	end;
   320        	end;
   322 end;
   321 end;
   323 
   322 
   324 //for i:= 0 to cKeyMaxIndex do writeln(stdout,inttostr(i) + ': ' + KeyNames[i]);
   323 //for i:= 0 to cKeyMaxIndex do writeln(stdout,inttostr(i) + ': ' + KeyNames[i]);
   325 
   324 
       
   325 // get the size of keyboard array
   326 {$IFDEF SDL13}
   326 {$IFDEF SDL13}
   327 PByteArray(SDL_GetKeyboardState(@i));
   327 SDL_GetKeyboardState(@k);
   328 {$ELSE}
   328 {$ELSE}
   329 SDL_GetKeyState(@i);
   329 SDL_GetKeyState(@k);
   330 {$ENDIF}
   330 {$ENDIF}
   331 
   331 
   332 // Controller(s)
   332 // Controller(s)
   333 k:= i;
       
   334 for j:= 0 to Pred(ControllerNumControllers) do
   333 for j:= 0 to Pred(ControllerNumControllers) do
   335 	begin
   334 	begin
   336 	for i:= 0 to Pred(ControllerNumAxes[j]) do
   335 	for i:= 0 to Pred(ControllerNumAxes[j]) do
   337 		begin
   336 		begin
   338 		keynames[k + 0]:= 'j' + inttostr(j) + 'a' + inttostr(i) + 'u';
   337 		keynames[k + 0]:= 'j' + inttostr(j) + 'a' + inttostr(i) + 'u';