OSDN Git Service

Replaced "spelling" with "spell casting" in English name for high mage innate ability.
[hengbandforosx/hengbandosx.git] / src / rooms.h
index a44acba..e803c7b 100644 (file)
@@ -31,7 +31,7 @@
 #define ROOM_T_PIT            5         /*!<部屋型ID:モンスターPIT / Monster pit (33x11) */
 #define ROOM_T_LESSER_VAULT   6         /*!<部屋型ID:小型VAULT / Lesser vault (33x22) */
 #define ROOM_T_GREATER_VAULT  7         /*!<部屋型ID:大型VAULT / Greater vault (66x44) */
-#define ROOM_T_FRACAVE        8         /*!<部屋型ID:フラクタル地形 / Fractal cave (42x24) */
+#define ROOM_T_FRACAVE        8         /*!<部屋型ID:フラクタル地形 / Fractal current_floor_ptr->grid_array (42x24) */
 #define ROOM_T_RANDOM_VAULT   9         /*!<部屋型ID:ランダムVAULT / Random vault (44x22) */
 #define ROOM_T_OVAL          10         /*!<部屋型ID:円形部屋 / Circular rooms (22x22) */
 #define ROOM_T_CRYPT         11         /*!<部屋型ID:聖堂 / Crypts (22x22) */
@@ -39,8 +39,9 @@
 #define ROOM_T_TRAP          13         /*!<部屋型ID:トラップ部屋 / Piranha/Armageddon trap room */
 #define ROOM_T_GLASS         14         /*!<部屋型ID:ガラス部屋 / Glass room */
 #define ROOM_T_ARCADE        15  /*!<部屋型ID:商店 / Arcade */
+#define ROOM_T_FIXED         16  /*!<部屋型ID:固定部屋 / Fixed room */
 
-#define ROOM_T_MAX 16 /*!<部屋型ID最大数 */
+#define ROOM_T_MAX 17 /*!<部屋型ID最大数 */
 
 
 /*
@@ -57,36 +58,43 @@ struct room_info_type
         byte min_level;
 };
 
-
-/*!
-* vaultに配置可能なモンスターの条件を指定するマクロ / Monster validation macro
-*
-* Line 1 -- forbid town monsters
-* Line 2 -- forbid uniques
-* Line 3 -- forbid aquatic monsters
-*/
-#define vault_monster_okay(I) \
-       (mon_hook_dungeon(I) && \
-        !(r_info[I].flags1 & RF1_UNIQUE) && \
-        !(r_info[I].flags7 & RF7_UNIQUE2) && \
-        !(r_info[I].flagsr & RFR_RES_ALL) && \
-        !(r_info[I].flags7 & RF7_AQUATIC))
-
-
 /* Externs */
 #ifdef ALLOW_CAVERNS_AND_LAKES
 extern void build_lake(int type);
 extern void build_cavern(void);
 #endif /* ALLOW_CAVERNS_AND_LAKES */
 
+/* Maximum locked/jammed doors */
+#define MAX_LJ_DOORS 8
+
+/*
+ * A structure type for doors
+ */
+typedef struct
+{
+       FEAT_IDX open;
+       FEAT_IDX broken;
+       FEAT_IDX closed;
+       FEAT_IDX locked[MAX_LJ_DOORS];
+       FEAT_IDX num_locked;
+       FEAT_IDX jammed[MAX_LJ_DOORS];
+       FEAT_IDX num_jammed;
+} door_type;
+
+door_type feat_door[MAX_DOOR_TYPES];
+
 extern bool generate_rooms(void);
-extern void build_maze_vault(int x0, int y0, int xsize, int ysize, bool is_vault);
-extern void place_secret_door(int y, int x, int type);
-extern void place_locked_door(int y, int x);
+extern void build_maze_vault(POSITION x0, POSITION y0, POSITION xsize, POSITION ysize, bool is_vault);
 extern bool find_space(POSITION *y, POSITION *x, POSITION height, POSITION width);
-extern void build_small_room(int x0, int y0);
-extern void add_outer_wall(int x, int y, int light, int x1, int y1, int x2, int y2);
-extern int dist2(int x1, int y1, int x2, int y2, int h1, int h2, int h3, int h4);
-extern void generate_room_floor(int y1, int x1, int y2, int x2, int light);
-extern void generate_fill_perm_bold(int y1, int x1, int y2, int x2);
-
+extern void build_small_room(POSITION x0, POSITION y0);
+extern void add_outer_wall(POSITION x, POSITION y, int light, POSITION x1, POSITION y1, POSITION x2, POSITION y2);
+extern POSITION dist2(POSITION x1, POSITION y1, POSITION x2, POSITION y2, POSITION h1, POSITION h2, POSITION h3, POSITION h4);
+extern void generate_room_floor(POSITION y1, POSITION x1, POSITION y2, POSITION x2, int light);
+extern void generate_fill_perm_bold(POSITION y1, POSITION x1, POSITION y2, POSITION x2);
+extern void generate_hmap(POSITION y0, POSITION x0, POSITION xsiz, POSITION ysiz, int grd, int roug, int cutoff);
+extern bool generate_fracave(POSITION y0, POSITION x0, POSITION xsize, POSITION ysize, int cutoff, bool light, bool room);
+extern void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int difficulty);
+extern bool generate_lake(POSITION y0, POSITION x0, POSITION xsize, POSITION ysize, int c1, int c2, int c3, int type);
+extern void build_recursive_room(POSITION x1, POSITION y1, POSITION x2, POSITION y2, int power);
+extern void build_room(POSITION x1, POSITION x2, POSITION y1, POSITION y2);
+extern void r_visit(POSITION y1, POSITION x1, POSITION y2, POSITION x2, int node, DIRECTION dir, int *visited);