anchor.diff:      FCaching: Boolean;
       FSameDiagonalWeight: Boolean;
       FSectorOffsets: TCPFOffsets;
  -    FTileWeightScale: Double;
  +    FTileWeightScaleLine: Double;
       FTileWeightScaleDiagonal: Double;
  -    FTileWeightLimit: Cardinal;
  +    FTileWeightLimitLine: Cardinal;
       FTileWeightLimitDiagonal: Cardinal;
  -    FTileWeightMinimum: Cardinal;
  +    FTileWeightMinimumLine: Cardinal;
       FTileWeightMinimumDiagonal: Cardinal;
  -    DEFAULT_WEIGHT_VALUE_DIAGONAL: Cardinal;
  -    FTileDefaultWeight: Cardinal;
  -    FTileDefaultWeightDiagonal: Cardinal;
  +    DEFAULT_DIAGONAL_WEIGHT_VALUE: Cardinal;
   
       procedure RaiseCoordinates(const X, Y: Integer; const Id: TCPFExceptionString);
       procedure UpdateCellMasks(const ChangedArea: TRect);
  
positive.code:   begin
      V := LastCount - Count;
  
      FillCardinal(Pointer(@FActualInfo.Weights.Singles[Count + 1]), V, DEFAULT_WEIGHT_VALUE);
      FillCardinal(Pointer(@FActualInfo.Weights.SinglesDiagonal[Count + 1]), V, {instance variable}DEFAULT_WEIGHT_VALUE_DIAGONAL);
  
      FillCardinal(@FActualInfo.Weights.Cardinals[Count + 1], V, FTileDefaultWeight);
      FillCardinal(@FActualInfo.Weights.CardinalsDiagonal[Count + 1], V, FTileDefaultWeightDiagonal);
    end;
  
    // copy and calculate weights
    if (Count <> 0) then
    begin
      Move(Weights.Singles[1], FActualInfo.Weights.Singles[1], SizeOf(Single) * Count);
  
      for i := Count downto 1 do      
      begin
        PWeight := @FActualInfo.Weights.Singles[i];
        if (PCardinal(PWeight)^ = 0) then
        begin
          FActualInfo.Weights.Cardinals[i] := PATHLESS_TILE_WEIGHT;
          FActualInfo.Weights.CardinalsDiagonal[i] := PATHLESS_TILE_WEIGHT;
          Continue;
        end;
  
        V := CPFRound(PWeight^ * FTileWeightScale);
        if (V > FTileWeightLimit) then V := FTileWeightLimit
        else
        if (V < FTileWeightMinimum) then V := FTileWeightMinimum;
        FActualInfo.Weights.Cardinals[i] := V;
  
        if (FSameDiagonalWeight) then
        begin
  
negative.code: 
  procedure GenerateLookups;
  const
    MIN_WEIGHT_VALUE_LINE: Single = 0.1;
    MAX_WEIGHT_VALUE_LINE: Single = 50;
    DEFAULT_WEIGHT_VALUE_LINE: Single = 1;
  var
    Way, WayX, WayY: Integer;
    Child: Integer;
  