hedgewars/uTouch.pas
changeset 6919 bf7433e62b9c
parent 6808 e9c45f3c5b9c
child 6949 615cc50903c8
equal deleted inserted replaced
6918:13d6cce2056c 6919:bf7433e62b9c
    99     exit;
    99     exit;
   100 end;
   100 end;
   101 
   101 
   102 if isOnWidget(fireButton, finger^) then
   102 if isOnWidget(fireButton, finger^) then
   103     begin
   103     begin
   104     spaceKey:= true;
   104     ParseTeamCommand('+attack');
   105     moveCursor:= false;
   105     moveCursor:= false;
   106     finger^.pressedWidget:= @fireButton;
   106     finger^.pressedWidget:= @fireButton;
   107     exit;
   107     exit;
   108     end;
   108     end;
   109 if isOnWidget(arrowLeft, finger^) then
   109 if isOnWidget(arrowLeft, finger^) then
   110     begin
   110     begin
   111     leftKey:= true;
   111     ParseTeamCommand('+left');
   112     moveCursor:= false;
   112     moveCursor:= false;
   113     finger^.pressedWidget:= @arrowLeft;
   113     finger^.pressedWidget:= @arrowLeft;
   114     exit;
   114     exit;
   115     end;
   115     end;
   116 if isOnWidget(arrowRight, finger^) then
   116 if isOnWidget(arrowRight, finger^) then
   117     begin
   117     begin
   118     rightKey:= true;
   118     ParseTeamCommand('+right');
   119     moveCursor:= false;
   119     moveCursor:= false;
   120     finger^.pressedWidget:= @arrowRight;
   120     finger^.pressedWidget:= @arrowRight;
   121     exit;
   121     exit;
   122     end;
   122     end;
   123 if isOnWidget(arrowUp, finger^) then
   123 if isOnWidget(arrowUp, finger^) then
   124     begin
   124     begin
   125     upKey:= true;
   125     ParseTeamCommand('+up');
       
   126     aimingUp:= true;
   126     moveCursor:= false;
   127     moveCursor:= false;
   127     finger^.pressedWidget:= @arrowUp;
   128     finger^.pressedWidget:= @arrowUp;
   128     exit;
   129     exit;
   129     end;
   130     end;
   130 if isOnWidget(arrowDown, finger^) then
   131 if isOnWidget(arrowDown, finger^) then
   131     begin
   132     begin
   132     downKey:= true;
   133     ParseTeamCommand('+down');
       
   134     aimingDown:= true;
   133     moveCursor:= false;
   135     moveCursor:= false;
   134     finger^.pressedWidget:= @arrowDown;
   136     finger^.pressedWidget:= @arrowDown;
   135     exit;
   137     exit;
   136     end;
   138     end;
   137 
   139 
   259 
   261 
   260 procedure onTouchLongClick(finger: TTouch_Data);
   262 procedure onTouchLongClick(finger: TTouch_Data);
   261 begin
   263 begin
   262 {$IFDEF USE_TOUCH_INTERFACE}
   264 {$IFDEF USE_TOUCH_INTERFACE}
   263 if isOnWidget(jumpWidget, finger) then
   265 if isOnWidget(jumpWidget, finger) then
   264     begin
   266     ParseTeamCommand('ljump');
   265     ParseCommand('ljump', (CurrentTeam <> nil) and not(CurrentTeam^.ExtDriven) and (CurrentHedgehog^.BotLevel=0));
       
   266     if (CurrentTeam <> nil) and (not CurrentTeam^.ExtDriven) and (ReadyTimeLeft > 1) then
       
   267         ParseCommand('gencmd R', true);
       
   268     exit;
       
   269     end;
       
   270 {$ENDIF}
   267 {$ENDIF}
   271 end;
   268 end;
   272 
   269 
   273 procedure onTouchClick(finger: TTouch_Data);
   270 procedure onTouchClick(finger: TTouch_Data);
   274 begin
   271 begin
   303     exit;
   300     exit;
   304     end;
   301     end;
   305 
   302 
   306 if isOnWidget(jumpWidget, finger) then
   303 if isOnWidget(jumpWidget, finger) then
   307     begin
   304     begin
   308     ParseCommand('hjump', (CurrentTeam <> nil) and not(CurrentTeam^.ExtDriven) and (CurrentHedgehog^.BotLevel=0));
   305     ParseTeamCommand('hjump');    
   309     if (CurrentTeam <> nil) and (not CurrentTeam^.ExtDriven) and (ReadyTimeLeft > 1) then
       
   310         ParseCommand('gencmd R', true);
       
   311     exit;
   306     exit;
   312     end;
   307     end;
   313 {$ENDIF}
   308 {$ENDIF}
   314 end;
   309 end;
   315 
   310 
   395     if CurrentHedgehog^.Gear <> nil then
   390     if CurrentHedgehog^.Gear <> nil then
   396         begin
   391         begin
   397         deltaAngle:= CurrentHedgehog^.Gear^.Angle - targetAngle;
   392         deltaAngle:= CurrentHedgehog^.Gear^.Angle - targetAngle;
   398         if (deltaAngle > -5) and (deltaAngle < 5) then 
   393         if (deltaAngle > -5) and (deltaAngle < 5) then 
   399             begin
   394             begin
   400                 upKey:= false;
   395                 if(aimingUp)then
   401                 aimingUp:= false;
   396                     begin
   402                 downKey:= false;
   397                     aimingUp:= false;
   403                 aimingDown:= false;
   398                     ParseTeamCommand('-up');
       
   399                     end;
       
   400                 if(aimingDown)then
       
   401                     begin
       
   402                     aimingDown:= false;
       
   403                     ParseTeamCommand('-down');
       
   404                     end
   404             end
   405             end
   405         else
   406         else
   406             begin
   407             begin
   407             if (deltaAngle < 0) then
   408             if (deltaAngle < 0) then
   408                 begin
   409                 begin
   409                 if aimingUp then
   410                 if aimingUp then
   410                     begin
   411                     begin
   411                     upKey:= false;
       
   412                     aimingUp:= false;
   412                     aimingUp:= false;
       
   413                     ParseTeamCommand('-up');
   413                     end;
   414                     end;
   414                 downKey:= true;
   415                 if(aimingDown)then
   415                 aimingDown:= true;
   416                     begin
       
   417                     aimingDown:= true;
       
   418                     ParseTeamCommand('-down');
       
   419                     end
   416                 end
   420                 end
   417             else
   421             else
   418                 begin
   422                 begin
   419                 if aimingDown then
   423                 if aimingDown then
   420                     begin
   424                     begin
   421                     downKey:= false;
   425                     ParseTeamCommand('-down');
   422                     aimingDown:= false;
   426                     aimingDown:= false;
   423                     end;
   427                     end;
   424                 upKey:= true;
   428                 if aimingUp then
   425                 aimingUp:= true;
   429                     begin
       
   430                     aimingUp:= true;
       
   431                     ParseTeamCommand('+up');
       
   432                     end;
   426                 end; 
   433                 end; 
   427             end;
   434             end;
   428         end
   435         end
   429     else  
   436     else  
   430         begin
   437         begin
   431         if aimingUp then
   438         if aimingUp then
   432             begin
   439             begin
   433             upKey:= false;
   440             ParseTeamCommand('-up');
   434             aimingUp:= false;
   441             aimingUp:= false;
   435             end;
   442             end;
   436         if aimingDown then
   443         if aimingDown then
   437             begin
   444             begin
   438             upKey:= false;
   445             ParseTeamCommand('-down');
   439             aimingDown:= false;
   446             aimingDown:= false;
   440             end;
   447             end;
   441         end;
   448         end;
   442 end;
   449 end;
   443 
   450