hedgewars/uWorld.pas
changeset 308 806c3b55500d
parent 298 112e61bd2cc2
child 351 29bc9c36ad5f
equal deleted inserted replaced
307:96b428ac11f2 308:806c3b55500d
   400    if CursorPoint.X < AMxCurr + 35 then CursorPoint.X:= AMxCurr + 35;
   400    if CursorPoint.X < AMxCurr + 35 then CursorPoint.X:= AMxCurr + 35;
   401    if CursorPoint.X > AMxCurr + 200 then CursorPoint.X:= AMxCurr + 200;
   401    if CursorPoint.X > AMxCurr + 200 then CursorPoint.X:= AMxCurr + 200;
   402    if CursorPoint.Y < cScreenHeight - 75 - SlotsNum * 33 then CursorPoint.Y:= cScreenHeight - 75 - SlotsNum * 33;
   402    if CursorPoint.Y < cScreenHeight - 75 - SlotsNum * 33 then CursorPoint.Y:= cScreenHeight - 75 - SlotsNum * 33;
   403    if CursorPoint.Y > cScreenHeight - 76 then CursorPoint.Y:= cScreenHeight - 76;
   403    if CursorPoint.Y > cScreenHeight - 76 then CursorPoint.Y:= cScreenHeight - 76;
   404    prevPoint:= CursorPoint;
   404    prevPoint:= CursorPoint;
   405    SDL_WarpMouse(CursorPoint.X, CursorPoint.Y);
   405    if cHasFocus then SDL_WarpMouse(CursorPoint.X, CursorPoint.Y);
   406    exit
   406    exit
   407    end;
   407    end;
   408 
   408 
   409 if isCursorVisible then
   409 if isCursorVisible then
   410    begin
   410    begin
   438          begin
   438          begin
   439          WorldDy:= WorldDy - CursorPoint.Y + cScreenHeight - EdgesDist;
   439          WorldDy:= WorldDy - CursorPoint.Y + cScreenHeight - EdgesDist;
   440          CursorPoint.Y:= cScreenHeight - EdgesDist
   440          CursorPoint.Y:= cScreenHeight - EdgesDist
   441          end;
   441          end;
   442    end else
   442    end else
   443    begin
   443    if cHasFocus then
       
   444       begin
   444       WorldDx:= WorldDx - CursorPoint.X + prevPoint.X;
   445       WorldDx:= WorldDx - CursorPoint.X + prevPoint.X;
   445       WorldDy:= WorldDy - CursorPoint.Y + prevPoint.Y;
   446       WorldDy:= WorldDy - CursorPoint.Y + prevPoint.Y;
   446       CursorPoint.X:= (cScreenWidth  shr 1);
   447       CursorPoint.X:= (cScreenWidth  shr 1);
   447       CursorPoint.Y:= (cScreenHeight shr 1);
   448       CursorPoint.Y:= (cScreenHeight shr 1);
   448    end;
   449       end;
   449 SDL_WarpMouse(CursorPoint.X, CursorPoint.Y);
   450       
       
   451 if cHasFocus then SDL_WarpMouse(CursorPoint.X, CursorPoint.Y);
   450 prevPoint:= CursorPoint;
   452 prevPoint:= CursorPoint;
   451 if WorldDy < cScreenHeight - cWaterLine - cVisibleWater then WorldDy:= cScreenHeight - cWaterLine - cVisibleWater;
   453 if WorldDy < cScreenHeight - cWaterLine - cVisibleWater then WorldDy:= cScreenHeight - cWaterLine - cVisibleWater;
   452 if WorldDy >  2048 then WorldDy:=  2048;
   454 if WorldDy >  2048 then WorldDy:=  2048;
   453 if WorldDx < -2048 then WorldDx:= -2048;
   455 if WorldDx < -2048 then WorldDx:= -2048;
   454 if WorldDx > cScreenWidth then WorldDx:=  cScreenWidth;
   456 if WorldDx > cScreenWidth then WorldDx:=  cScreenWidth;