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