anchor.diff:  
   function TKMUnitActionWalkTo.Execute: TKMActionResult;
   var
  -  DX,DY: Shortint;
  -  WalkX,WalkY,Distance: Single;
  -  OldDir: TKMDirection;
  +  dx, dy: Shortint;
  +  walkX, walkY, distance: Single;
  +  oldDir: TKMDirection;
   begin
     Result := arActContinues;
     StepDone := False;
  -  fDoesWalking := False; //Set it to false at start of update
  -
  -  //Happens whe e.g. Serf stays in front of Store and gets Deliver task
  +  fDoesWalking := False; // Set it to false at start of update
  +
  +  // Happens whe e.g. Serf stays in front of Store and gets Deliver task
     if KMSamePoint(fWalkFrom, fWalkTo) then
     begin
       Result := arActDone;
       Exit;
     end;
   
  -  //Route was not built
  +  // Route was not built
     if NodeList.Count = 0 then
     begin
       Result := arActAborted;
       Exit;
     end;
   
  -  //Walk complete - NodePos cannot be greater than NodeCount (this should not happen, cause is unknown but for now this check stops crashes)
  +  // Walk complete - NodePos cannot be greater than NodeCount (this should not happen, cause is unknown but for now this check stops crashes)
     if NodePos > NodeList.Count - 1 then
     begin
       if KMStepIsDiag(fUnit.PrevPosition, fUnit.NextPosition) then
  -      DecVertex; //Unoccupy vertex
  -    fUnit.IsExchanging := False; //Disable sliding (in case it was set in previous step)
  -    Result := arActDone;
  -    Exit;
  -  end;
  -
  -  //Execute the route in series of moves
  -  Distance := gRes.Units[fUnit.UnitType].Speed;
  +      DecVertex; // Unoccupy vertex
  +    fUnit.IsExchanging := False; // Disable sliding (in case it was set in previous step)
  +    Exit(arActDone);
  +  end;
  +
  +  // Execute the route in series of moves
  +  distance := gRes.Units[fUnit.UnitType].Speed;
   
     //Check if unit has arrived on tile
  -  if KMSamePointF(fUnit.PositionF, KMPointF(NodeList[NodePos]), Distance/2) then
  +  if KMSamePointF(fUnit.PositionF, KMPointF(NodeList[NodePos]), distance/2) then
     begin
   
       //Set precise position to avoid rounding errors
  
positive.code: 
  
  // Check if our path is through viewport, to show debug unit route
  function TKMUnitActionWalkTo.NeedToPaint(aRect: TKMRect): Boolean;
  var
    I: Integer;
  begin
  
negative.code:     if not fDoExchange and CheckWalkComplete then
      begin
        if (fDistance > 0) and ((fUnit.Task = nil) or (not fUnit.Task.WalkShouldAbandon))
        and not KMSamePoint(NodeList[NodePos], fWalkTo) then //Happens rarely when we asked to sidestep towards our not locked target (Warrior)
          fUnit.Direction := KMGetDirection(NodeList[NodePos], fWalkTo); //Face tile (e.g. worker)
        Exit(arActDone);
      end;
  
      //Check if target unit (warrior) has died and if so abandon our walk and so delivery task can exit itself
      if CanAbandonInternal then
        if CheckTargetHasDied then
          Exit(arActAborted);
  
      //This is sometimes caused by unit interaction changing the route so simply ignore it
      if KMSamePoint(NodeList[NodePos], NodeList[NodePos+1]) then
  