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