anchor.diff:                  fDoExchange := true;
                   ChangeStepTo(tempPos);
                   //They both will exchange next tick
  -                Result := true; //Means exit DoUnitInteraction
  -                exit; //Once we've found a solution, do NOT check the other alternative dodge position (when for loop i=1)
  +                //Means exit DoUnitInteraction
  +                Exit(True); //Once we've found a solution, do NOT check the other alternative dodge position (when for loop i=1)
                 end;
           end;
       end;
  
positive.code: end;
  
  
  function TKMUnitActionWalkTo.IntCheckIfPushing(fOpponent: TKMUnit): Boolean;
  begin
    Result := False;
  
  
negative.code: 
  //If we were asked to move away then all we are allowed to do is push and exchanging,
  //no re-routing, dodging etc. so we must exit here before any more tests
  function TKMUnitActionWalkTo.IntCheckIfPushed(aHighestInteractionCount: Integer): Boolean;
  begin
    Result := False;
  
    if fInteractionStatus = kisPushed then
    begin
      //If we've been trying to get out of the way for a while but we haven't found a solution,
      //(i.e. other unit is stuck) try a different direction
      if aHighestInteractionCount >= PUSHED_TIMEOUT then
      begin
  
        fInteractionStatus := kisNone;
  