anchor.diff:    end;
   end;
   
  -function TTileMap.DoFindPath(const Params: TTileMapParams): TTileMapPath;
  +function TTileMap.DoFindPath(const {$ifdef CPUX86}_{$else}Params{$endif}: TTileMapParams): TTileMapPath;
   label
     path_found, path_not_found, fill_result;
   var
     i: NativeUInt;
     MapWidth, MapHeight: Cardinal;
  +  Cell: PCPFCell;
  +  CellInfo, NodeInfo: NativeUInt;
     FinishX, FinishY: Integer;
     S: PPoint;
     Actual, R, ActualFinish, ActualStarts: Boolean;
  
positive.code:       Inc(Length);
        NodePtrs := NodePtrs or N;
      {$endif}
    until (StartNode = Node);
  
    // path points buffer allocate
    {$ifdef CPUX86}
  
negative.code:     end;
  
      // 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];
      N := Store.FinishNode.NodeInfo;
  