diff --git a/dat/bigrm-12.lua b/dat/bigrm-12.lua
new file mode 100644
index 000000000..0e41bd9e4
--- /dev/null
+++ b/dat/bigrm-12.lua
@@ -0,0 +1,85 @@
+-- NetHack bigroom bigrm-12.lua $NHDT-Date: $ $NHDT-Branch: NetHack-3.7 $
+-- Copyright (c) 2024 by Pasi Kallinen
+-- NetHack may be freely redistributed. See license for details.
+--
+-- Two hexagons
+
+des.level_flags("mazelevel", "noflipy");
+des.level_init({ style = "solidfill", fg = " " });
+
+des.map([[
+
+ ....................... .......................
+ ......................... .........................
+ ........................... ...........................
+ ............................. .............................
+ ........PPPPPPPPPPPPPPP........ ........LLLLLLLLLLLLLLL........
+ ........PPPPPPPPPPPPPPPPP........ ........LLLLLLLLLLLLLLLLL........
+ ........PPPWWWWWWWWWWWWWPPP...............LLLZZZZZZZZZZZZZLLL........
+ ........PPPWWWWWWWWWWWWWWWPPP.............LLLZZZZZZZZZZZZZZZLLL........
+ ........PPPWWWWWWWWWWWWWWWWWPPP...........LLLZZZZZZZZZZZZZZZZZLLL........
+ ........PPPWWWWWWWWWWWWWWWPPP.............LLLZZZZZZZZZZZZZZZLLL........
+ ........PPPWWWWWWWWWWWWWPPP...............LLLZZZZZZZZZZZZZLLL........
+ ........PPPPPPPPPPPPPPPPP........ ........LLLLLLLLLLLLLLLLL........
+ ........PPPPPPPPPPPPPPP........ ........LLLLLLLLLLLLLLL........
+ ............................. .............................
+ ........................... ...........................
+ ......................... .........................
+ ....................... .......................
+
+]]);
+
+-- maybe replace lavawalls/waterwalls with stone walls
+if percent(20) then
+ if percent(50) then
+ des.replace_terrain({ fromterrain = "W", toterrain = "-" });
+ end
+ if percent(50) then
+ des.replace_terrain({ fromterrain = "Z", toterrain = "-" });
+ end
+end
+
+-- maybe replace pools with floor and then possibly walls with pools
+if percent(25) then
+ des.replace_terrain({ fromterrain = "P", toterrain = "." });
+ if percent(75) then
+ des.replace_terrain({ fromterrain = "W", toterrain = "P" });
+ end
+end
+if percent(25) then
+ des.replace_terrain({ fromterrain = "L", toterrain = "." });
+ if percent(75) then
+ des.replace_terrain({ fromterrain = "Z", toterrain = "L" });
+ end
+end
+
+-- maybe make both sides have the same terrain
+if percent(20) then
+ if percent(50) then
+ -- both are lava
+ des.replace_terrain({ fromterrain = "P", toterrain = "L" });
+ des.replace_terrain({ fromterrain = "W", toterrain = "Z" });
+ else
+ -- both are water
+ des.replace_terrain({ fromterrain = "L", toterrain = "P" });
+ des.replace_terrain({ fromterrain = "Z", toterrain = "W" });
+ end
+end
+
+des.region(selection.area(00,00,75,19), "lit")
+des.non_diggable();
+
+des.wallify();
+
+des.stair("up");
+des.stair("down");
+
+for i = 1,15 do
+ des.object();
+end
+for i = 1,6 do
+ des.trap();
+end
+for i = 1,28 do
+ des.monster();
+end
diff --git a/dat/dungeon.lua b/dat/dungeon.lua
index ff9e9130a..eb6223d66 100644
--- a/dat/dungeon.lua
+++ b/dat/dungeon.lua
@@ -70,7 +70,7 @@ dungeon = {
base = 10,
range = 3,
chance = 40,
- nlevels = 11
+ nlevels = 12
},
{
name = "medusa",
diff --git a/sys/unix/NetHack.xcodeproj/project.pbxproj b/sys/unix/NetHack.xcodeproj/project.pbxproj
index 8e8caa1a5..55f36fd7f 100644
--- a/sys/unix/NetHack.xcodeproj/project.pbxproj
+++ b/sys/unix/NetHack.xcodeproj/project.pbxproj
@@ -1423,6 +1423,8 @@
"$(NH_DAT_DIR)/Bar-strt.lua",
"$(NH_DAT_DIR)/bigrm-1.lua",
"$(NH_DAT_DIR)/bigrm-10.lua",
+ "$(NH_DAT_DIR)/bigrm-11.lua",
+ "$(NH_DAT_DIR)/bigrm-12.lua",
"$(NH_DAT_DIR)/bigrm-2.lua",
"$(NH_DAT_DIR)/bigrm-3.lua",
"$(NH_DAT_DIR)/bigrm-4.lua",
diff --git a/sys/windows/GNUmakefile b/sys/windows/GNUmakefile
index 4e6ee45e5..29085431c 100644
--- a/sys/windows/GNUmakefile
+++ b/sys/windows/GNUmakefile
@@ -449,6 +449,7 @@ CLEAN_FILE += $(NHLUAH)
LUALIST = air Arc-fila Arc-filb Arc-goal Arc-loca Arc-strt \
asmodeus astral baalz Bar-fila Bar-filb Bar-goal \
Bar-loca Bar-strt bigrm-1 bigrm-10 bigrm-11 bigrm-2 \
+ bigrm-12 \
bigrm-3 bigrm-4 bigrm-5 bigrm-6 bigrm-7 bigrm-8 \
bigrm-9 castle Cav-fila Cav-filb Cav-goal Cav-loca \
Cav-strt dungeon earth fakewiz1 fakewiz2 fire \
diff --git a/sys/windows/Makefile.nmake b/sys/windows/Makefile.nmake
index 5da031bec..7d72c27eb 100644
--- a/sys/windows/Makefile.nmake
+++ b/sys/windows/Makefile.nmake
@@ -554,6 +554,7 @@ LUA_FILES = $(DAT)\air.lua $(DAT)\Arc-fila.lua $(DAT)\Arc-filb.lua \
$(DAT)\Bar-fila.lua $(DAT)\Bar-filb.lua $(DAT)\Bar-goal.lua \
$(DAT)\Bar-loca.lua $(DAT)\Bar-strt.lua $(DAT)\bigrm-1.lua \
$(DAT)\bigrm-10.lua $(DAT)\bigrm-11.lua $(DAT)\bigrm-2.lua \
+ $(DAT)\bigrm-12.lua \
$(DAT)\bigrm-3.lua $(DAT)\bigrm-4.lua $(DAT)\bigrm-5.lua \
$(DAT)\bigrm-6.lua $(DAT)\bigrm-7.lua $(DAT)\bigrm-8.lua \
$(DAT)\bigrm-9.lua $(DAT)\castle.lua $(DAT)\Cav-fila.lua \
diff --git a/sys/windows/vs/files.props b/sys/windows/vs/files.props
index 9dd50ca4c..16a62721e 100644
--- a/sys/windows/vs/files.props
+++ b/sys/windows/vs/files.props
@@ -32,6 +32,7 @@
+