anchor.diff:      // distance correction
       N := {$ifdef CPUX86}Store.{$endif}StartNode.NodeInfo;
       FActualInfo.FoundPath.Distance := FActualInfo.FoundPath.Distance -
  -      HALF * FActualInfo.Weights.SingleValues[(N and Ord(not FSameDiagonalWeight)), N shr 24];
  +      HALF * FActualInfo.Weights.SingleValues[(Store.SecondNodeInfo and Ord(not FSameDiagonalWeight)), N shr 24];
       N := Store.FinishNode.NodeInfo;
       FActualInfo.FoundPath.Distance := FActualInfo.FoundPath.Distance -
         HALF * FActualInfo.Weights.SingleValues[(N and Ord(not FSameDiagonalWeight)), N shr 24];
  
positive.code:     {7 --> 3} (y:  0; x: +1)
    );
  
    MIN_WEIGHT_VALUE = Cardinal($3DCCCCCD){0.1};
    MAX_WEIGHT_VALUE = Cardinal($42480000){50.0};
    DEFAULT_WEIGHT_VALUE = Cardinal($3F800000){1.0};
    ERROR_WEIGHT_VALUE = 'Invalid weight value. 0,0..0,1 - pathless, 0,1..50 - correct';
  
    CHILD_ARRAYS: array[0..11{4 diagonal + 4 clockwise optional}] of TChildList = (
  
negative.code:         UpdateId: Cardinal;
          Count: Cardinal;
  
          CardinalsDiagonal: array[0..255] of Cardinal;
          CardinalsLine: array[0..255] of Cardinal;
          case Boolean of
          False: (
                   {0,2,4,6 - Diagonal; 1,3,5,7 - Line}
                   SinglesDiagonal: array[0..255] of Single;
                   SinglesLine: array[0..255] of Single;
                  );
           True: (SingleValues: array[0..1, 0..255] of Single);
        end;
  