anchor.diff:          if (ChildNodeInfo and $ff0000 = 0) then goto nextchild_continue;
   
           // child path
  -        Cell{TileWeights} := Store.Info.TileWeights[ParentBits and 1];
  +        Cell{TileWeights} := Store.CardinalsDiagonal;
  +        Inc(NativeInt(Cell{TileWeights}), (ParentBits and 1) shl 10);
           Path := PCardinalList(Cell{TileWeights})[NodeFlags shr 24] +
                   PCardinalList(Cell{TileWeights})[ParentBits shr 24];
           Path := (Path shr 1) + Store.Current.Path;
  
positive.code:           if (ChildNodeInfo and $ff00 = 0) then goto nextchild_continue;
  
            // child path
            TileWeights := Store.Info.TileWeights[ParentBits and 1];
            Path := TileWeights[NodeFlags shr 24];
            Inc(Path, TileWeights[ParentBits shr 24]);
            if (Path > PATHLESS_TILE_WEIGHT) then goto nextchild_continue;
  
negative.code:   Store.Flags := CalculatePathLoopFlags(NativeInt(FKind), Cardinal(StartNode.Coordinates), Cardinal(Self.FInfo.FinishPoint));
  
    // information copy
    Store.CardinalsDiagonal := @Self.FActualInfo.Weights.CardinalsDiagonal;
    Move(Self.FInfo, Store.Info,
      (SizeOf(Store.Info) - 32 * SizeOf(Pointer)) +
      (Self.FInfo.NodeAllocator.Count * SizeOf(Pointer)) );
  