diff --git a/src/maze/mz_square_cells.scad b/src/maze/mz_square_cells.scad index ec984412..12b4741b 100644 --- a/src/maze/mz_square_cells.scad +++ b/src/maze/mz_square_cells.scad @@ -12,8 +12,17 @@ use <_impl/_mz_square_cells_impl.scad>; use ; function mz_square_cells(rows, columns, start = [0, 0], init_cells, x_wrapping = false, y_wrapping = false, seed) = + let( + init_undef = is_undef(init_cells), + mz = init_undef ? mz_square_initialize(rows, columns) : init_cells, + rc = init_undef ? [rows, columns] : [len([for(cell = mz) if(cell.y == 0) undef]), len([for(cell = mz) if(cell.x == 0) undef])] + ) go_maze( - start.x, start.y, - is_undef(init_cells) ? mz_square_initialize(rows, columns) : init_cells, - rows, columns, x_wrapping, y_wrapping, seed + start.x, + start.y, + mz, + rc[0], rc[1], + x_wrapping, + y_wrapping, + seed );