+ // Biome-defined dungeon nodes
+ if (biome->c_dungeon != CONTENT_IGNORE) {
+ dp.c_wall = biome->c_dungeon;
+ // If 'node_dungeon_alt' is not defined by biome, it and dp.c_alt_wall
+ // become CONTENT_IGNORE which skips the alt wall node placement loop in
+ // dungeongen.cpp.
+ dp.c_alt_wall = biome->c_dungeon_alt;
+ // Stairs fall back to 'c_dungeon' if not defined by biome
+ dp.c_stair = (biome->c_dungeon_stair != CONTENT_IGNORE) ?
+ biome->c_dungeon_stair : biome->c_dungeon;
+
+ dp.diagonal_dirs = false;
+ dp.holesize = v3s16(2, 2, 2);
+ dp.room_size_min = v3s16(6, 4, 6);
+ dp.room_size_max = v3s16(10, 6, 10);
+ dp.room_size_large_min = v3s16(10, 8, 10);
+ dp.room_size_large_max = v3s16(18, 16, 18);
+ dp.notifytype = GENNOTIFY_DUNGEON;
+
+ // Otherwise classic behaviour
+ } else if (biome->c_stone == c_stone) {