+#include "angband.h"\r
+#include "grid.h"\r
+#include "generate.h"\r
+#include "rooms.h"\r
+\r
+\r
+/*!\r
+* @brief \83^\83C\83v14\82Ì\95\94\89®\81c\93Á\8eê\83g\83\89\83b\83v\95\94\89®\82Ì\90¶\90¬ / Type 14 -- trapped rooms\r
+* @return \82È\82µ\r
+* @details\r
+* A special trap is placed at center of the room\r
+*/\r
+bool build_type14(void)\r
+{\r
+ POSITION y, x, y2, x2, yval, xval;\r
+ POSITION y1, x1, xsize, ysize;\r
+\r
+ bool light;\r
+\r
+ cave_type *c_ptr;\r
+ s16b trap;\r
+\r
+ /* Pick a room size */\r
+ y1 = randint1(4);\r
+ x1 = randint1(11);\r
+ y2 = randint1(3);\r
+ x2 = randint1(11);\r
+\r
+ xsize = x1 + x2 + 1;\r
+ ysize = y1 + y2 + 1;\r
+\r
+ /* Find and reserve some space in the dungeon. Get center of room. */\r
+ if (!find_space(&yval, &xval, ysize + 2, xsize + 2)) return FALSE;\r
+\r
+ /* Choose lite or dark */\r
+ light = ((dun_level <= randint1(25)) && !(d_info[dungeon_type].flags1 & DF1_DARKNESS));\r
+\r
+\r
+ /* Get corner values */\r
+ y1 = yval - ysize / 2;\r
+ x1 = xval - xsize / 2;\r
+ y2 = yval + (ysize - 1) / 2;\r
+ x2 = xval + (xsize - 1) / 2;\r
+\r
+\r
+ /* Place a full floor under the room */\r
+ for (y = y1 - 1; y <= y2 + 1; y++)\r
+ {\r
+ for (x = x1 - 1; x <= x2 + 1; x++)\r
+ {\r
+ c_ptr = &cave[y][x];\r
+ place_floor_grid(c_ptr);\r
+ c_ptr->info |= (CAVE_ROOM);\r
+ if (light) c_ptr->info |= (CAVE_GLOW);\r
+ }\r
+ }\r
+\r
+ /* Walls around the room */\r
+ for (y = y1 - 1; y <= y2 + 1; y++)\r
+ {\r
+ c_ptr = &cave[y][x1 - 1];\r
+ place_outer_grid(c_ptr);\r
+ c_ptr = &cave[y][x2 + 1];\r
+ place_outer_grid(c_ptr);\r
+ }\r
+ for (x = x1 - 1; x <= x2 + 1; x++)\r
+ {\r
+ c_ptr = &cave[y1 - 1][x];\r
+ place_outer_grid(c_ptr);\r
+ c_ptr = &cave[y2 + 1][x];\r
+ place_outer_grid(c_ptr);\r
+ }\r
+\r
+ if (dun_level < 30 + randint1(30))\r
+ trap = feat_trap_piranha;\r
+ else\r
+ trap = feat_trap_armageddon;\r
+\r
+ /* Place a special trap */\r
+ c_ptr = &cave[rand_spread(yval, ysize / 4)][rand_spread(xval, xsize / 4)];\r
+ c_ptr->mimic = c_ptr->feat;\r
+ c_ptr->feat = trap;\r
+\r
+ msg_format_wizard(CHEAT_DUNGEON, _("%s\82Ì\95\94\89®\82ª\90¶\90¬\82³\82ê\82Ü\82µ\82½\81B", "Room of %s was generated."), f_name + f_info[trap].name);\r
+\r
+ return TRUE;\r
+}\r
+\r