anchor.diff:      end;
   
       // unattainable pool (+ hot)
  -    if (Flags and (FLAG_CACHING or FLAG_FINISH or FLAG_TILES or FLAG_EXCLUDES) <> 0) then
  +    if (Flags and FLAGS_UNATTAINABLE_POOL <> 0) then
       begin
         if (FNodes.UnattainablePool.First.Next <> @FNodes.UnattainablePool.Last) then
           ReleasePoolNodes(FNodes.UnattainablePool.First, FNodes.UnattainablePool.Last);
  
positive.code:   FLAG_CACHING = (1 shl 0);
    FLAG_FINISH = (1 shl 1);
    FLAG_CLEAN = (1 shl 2);
    FLAG_TILES = (1 shl 3);
    FLAG_EXCLUDES = (1 shl 4);
    FLAG_WEIGHTS = (1 shl 5);
    FLAG_HEURISTICS = (1 shl 6);
    FLAG_STARTS = (1 shl 7);
  
    CHANGED_FINISH_INTERVAL = 8;
  label
  
negative.code:   ResultPath.Distance := FActualInfo.FoundPath.Distance;
    if (ResultPath.Count = 0) then
      ResultPath.Points := nil;
  {$ifNdef CPUX86}
  end;
  {$endif}
  end;
  
  function TTileMap.FindPath(const Params: TTileMapParams; const FullPath: Boolean): TTileMapPath;
  