static void PlaceAll(ref Dungeon d, SubArea a0) { if (a0.childsSubArea.Count == 0) { Place(ref d, a0); } else { for (int i = 0; i < a0.childsSubArea.Count; i++) { PlaceAll(ref d, a0.childsSubArea[i]); } } }
static void Place(ref Dungeon d, SubArea a0) { for (int dy = -1; dy < a0.size.y + 1; dy++) { for (int dx = -1; dx < a0.size.x + 1; dx++) { if (a0.isTooSmall) { d.cells[a0.anchor.x + dx, a0.anchor.y + dy].genID = 1; } else { if ((dx == -1) || (dy == -1) || (dx == a0.size.x) || (dy == a0.size.y)) { d.cells[a0.anchor.x + dx, a0.anchor.y + dy].genID = -1; } else { d.cells[a0.anchor.x + dx, a0.anchor.y + dy].genID = 1; } } } } }