anchor.diff:  var
     DX,DY:shortint;
     WalkX,WalkY,Distance:single;
  -  PreviousAction:TUnitAction;
   begin
     Result := ActContinues;
  -  StepDone := false;
  -  fDoesWalking := false; //Set it to false at start of update
  +  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
  -  if KMSamePoint(fWalkFrom,fWalkTo) then begin
  +  if KMSamePoint(fWalkFrom, fWalkTo) then begin
       Result := ActDone;
  -    exit;
  +    Exit;
     end;
   
     //Route was not built
     if NodeList.Count = 0 then begin
       Result := ActAborted;
  -    exit;
  +    Exit;
     end;
   
     //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 then begin
  -    if KMStepIsDiag(fWalker.PrevPosition,fWalker.NextPosition) then DecVertex; //Unoccupy vertex
  -    fWalker.IsExchanging := false; //Disable sliding (in case it was set in previous step)
  +    if KMStepIsDiag(fWalker.PrevPosition, fWalker.NextPosition) then
  +      DecVertex; //Unoccupy vertex
  +    fWalker.IsExchanging := False; //Disable sliding (in case it was set in previous step)
       Result := ActDone;
  -    exit;
  +    Exit;
     end;
   
     //Execute the route in series of moves
  
positive.code:   inc(fWalker.AnimStep);
    StepDone := false; //We are not actually done because now we have just taken another step
    fDoesWalking:=true; //Now it's definitely true that unit did walked one step
  end;
  
  
  
negative.code:       function IntSolutionAvoid(fOpponent:TKMUnit; HighestInteractionCount:integer):boolean;
        function IntSolutionSideStep(aPosition:TKMPoint; HighestInteractionCount:integer):boolean;
  
      function SteppedOnNewTile(KMUnit: TKMUnit): TActionResult;
      procedure ChangeStepTo(aPos: TKMPoint);
      procedure PerformExchange(ForcedExchangePos:TKMPoint);
      procedure IncVertex;
  