anchor.diff:      fRouteSuccessfullyBuilt:boolean;
       function CheckRouteCanExist():boolean;
       procedure InitRoute();
  +    function IsDestinationReached():boolean;
       function MakeRoute():boolean;
  -    function IsDestinationReached():boolean;
     public
       constructor Create(aLocA, aLocB, aAvoid:TKMPoint; aPass:TPassability; aWalkToSpot:boolean; aIsInteractionAvoid:boolean=false); overload;
       constructor Create(aLocA:TKMPoint; aTargetRoadNetworkID:byte; fPass:TPassability; aLocB:TKMPoint); overload;
  
positive.code:     end;
      ORef:array[1..MaxMapSize,1..MaxMapSize] of word; //Ref to OpenList
      OCount:word;
      OList:array[1..TEST_MAX_WALK_PATH]of record //List of checked cells
        Pos:TKMPoint;
        CostTo:word;
        Estim:word;
  
negative.code:         if ORef[y,x]=0 then begin //Cell is new
  
            inc(OCount);
            if (length(OList)-1)<OCount then setlength(OList, OCount+128); //Allocate slightly more space
            OList[OCount].Pos:=KMPoint(x,y);
  
            if (Pass in fTerrain.Land[y,x].Passability) then //If cell meets Passability then estimate it
  