anchor.diff:  end;
   
   
  -{Check if requested tile is snow}
  +// Check if requested tile is snow
   function TKMResTileset.TileIsSnow(aTile: Word): Boolean;
   const
     SNOW_TILES: array[0..46] of Word =
  
positive.code:   private
      fCRC: Cardinal;
      TileTable: array [1 .. 30, 1 .. 30] of packed record
        Tile1, Tile2, Tile3: byte;
        b1, b2, b3, b4, b5, b6, b7: boolean;
      end;
  
      function LoadPatternDAT(const FileName: string): Boolean;
  
negative.code: end;
  
  
  // Check if requested tile is water suitable for fish and/or sail. No waterfalls, but swamps/shallow water allowed
  function TKMResTileset.TileIsWater(aTile: Word): Boolean;
  begin
    Result := aTile in [48,114,115,119,192,193,194,196, 200, 208..211, 235,236, 240,244];
  end;
  
  
  // Check if requested tile has ice
  function TKMResTileset.TileIsIce(aTile: Word): Boolean;
  begin
    Result := aTile in [4, 10, 12, 22, 23, 44];
  end;
  
  
  // Check if requested tile has any water, including ground-water transitions
  function TKMResTileset.TileHasWater(aTile: Word): Boolean;
  begin
    Result := aTile in [48,105..107,114..127,142,143,192..194,196,198..200,208..211,230,232..244];
  end;
  
  
  // Check if requested tile is sand suitable for crabs
  function TKMResTileset.TileIsSand(aTile: Word): Boolean;
  const
    SAND_TILES: array[0..55] of Word =
  