OSDN Git Service

[Refactor] #38997 calc_android_exp() に player_type * 引数を追加.
[hengband/hengband.git] / src / dungeon.h
1 #pragma once
2 #include "feature.h"
3
4 #define DUNGEON_FEAT_PROB_NUM 3
5
6 #define DUNGEON_ANGBAND  1
7 #define DUNGEON_GALGALS  2
8 #define DUNGEON_ORC      3
9 #define DUNGEON_MAZE     4
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
25
26 /* A structure for the != dungeon types */
27 typedef struct dungeon_type dungeon_type;
28 struct dungeon_type {
29
30         STR_OFFSET name; /* Name */
31         STR_OFFSET text; /* Description */
32
33         POSITION dy;
34         POSITION dx;
35
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 */
42
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 */
46         BIT_FLAGS16 pit;
47         BIT_FLAGS16 nest;
48         BIT_FLAGS8 mode; /* Mode of combinaison of the monster flags */
49
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 */
52
53         BIT_FLAGS flags1;               /* Flags 1 */
54
55         BIT_FLAGS mflags1;              /* The monster flags that are allowed */
56         BIT_FLAGS mflags2;
57         BIT_FLAGS mflags3;
58         BIT_FLAGS mflags4;
59         BIT_FLAGS mflags7;
60         BIT_FLAGS mflags8;
61         BIT_FLAGS mflags9;
62         BIT_FLAGS mflagsr;
63
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;
68
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 */
73
74         PROB special_div;       /* % of monsters affected by the flags/races allowed, to add some variety */
75         int tunnel_percent;
76         int obj_great;
77         int obj_good;
78 };
79
80 extern DEPTH *max_dlv;
81 extern DUNGEON_IDX max_d_idx;
82 extern dungeon_type *d_info;
83 extern char *d_name;
84 extern char *d_text;
85
86 extern DUNGEON_IDX choose_dungeon(concptr note, POSITION y, POSITION x);