3 #include "system/angband.h"
4 #include "grid/feature.h"
6 #define DUNGEON_FEAT_PROB_NUM 3
8 #define DUNGEON_ANGBAND 1
9 #define DUNGEON_GALGALS 2
11 #define DUNGEON_MAZE 4
12 #define DUNGEON_DRAGON 5
13 #define DUNGEON_GRAVE 6
14 #define DUNGEON_WOOD 7
15 #define DUNGEON_VOLCANO 8
16 #define DUNGEON_HELL 9
17 #define DUNGEON_HEAVEN 10
18 #define DUNGEON_OCEAN 11
19 #define DUNGEON_CASTLE 12
20 #define DUNGEON_CTH 13
21 #define DUNGEON_MOUNTAIN 14
22 #define DUNGEON_GOLD 15
23 #define DUNGEON_NO_MAGIC 16
24 #define DUNGEON_NO_MELEE 17
25 #define DUNGEON_CHAMELEON 18
26 #define DUNGEON_DARKNESS 19
28 /* A structure for the != dungeon types */
29 typedef struct dungeon_type dungeon_type;
32 STR_OFFSET name; /* Name */
33 STR_OFFSET text; /* Description */
38 feat_prob floor[DUNGEON_FEAT_PROB_NUM]; /* Floor probability */
39 feat_prob fill[DUNGEON_FEAT_PROB_NUM]; /* Cave wall probability */
40 FEAT_IDX outer_wall; /* Outer wall tile */
41 FEAT_IDX inner_wall; /* Inner wall tile */
42 FEAT_IDX stream1; /* stream tile */
43 FEAT_IDX stream2; /* stream tile */
45 DEPTH mindepth; /* Minimal depth */
46 DEPTH maxdepth; /* Maximal depth */
47 PLAYER_LEVEL min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */
50 BIT_FLAGS8 mode; /* Mode of combinaison of the monster flags */
52 int min_m_alloc_level; /* Minimal number of monsters per level */
53 int max_m_alloc_chance; /* There is a 1/max_m_alloc_chance chance per round of creating a new monster */
55 BIT_FLAGS flags1; /* Flags 1 */
57 BIT_FLAGS mflags1; /* The monster flags that are allowed */
66 BIT_FLAGS m_a_ability_flags1;
67 BIT_FLAGS m_a_ability_flags2;
68 BIT_FLAGS m_a_ability_flags3;
69 BIT_FLAGS m_a_ability_flags4;
71 char r_char[5]; /* Monster race allowed */
72 KIND_OBJECT_IDX final_object; /* The object you'll find at the bottom */
73 ARTIFACT_IDX final_artifact; /* The artifact you'll find at the bottom */
74 MONRACE_IDX final_guardian; /* The artifact's guardian. If an artifact is specified, then it's NEEDED */
76 PROB special_div; /* % of monsters affected by the flags/races allowed, to add some variety */
82 extern DEPTH *max_dlv;
83 extern dungeon_type *d_info;
87 extern DUNGEON_IDX choose_dungeon(concptr note, POSITION y, POSITION x);