OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[hengbandforosx/hengbandosx.git] / src / room / rooms-pit-nest.h
1 #pragma once
2
3 #include "system/angband.h"
4
5 #define NUM_NEST_MON_TYPE 64 /*!<nestの種別数 */
6 #define TRAPPED_PIT_MONSTER_PLACE_MAX 69
7
8 enum class MonsterRaceId : int16_t;
9
10 /*! nestのID定義 /  Nest types code */
11 enum nest_type : int {
12     NEST_TYPE_CLONE = 0,
13     NEST_TYPE_JELLY = 1,
14     NEST_TYPE_SYMBOL_GOOD = 2,
15     NEST_TYPE_SYMBOL_EVIL = 3,
16     NEST_TYPE_MIMIC = 4,
17     NEST_TYPE_LOVECRAFTIAN = 5,
18     NEST_TYPE_KENNEL = 6,
19     NEST_TYPE_ANIMAL = 7,
20     NEST_TYPE_CHAPEL = 8,
21     NEST_TYPE_UNDEAD = 9,
22 };
23
24 /*! pitのID定義 / Pit types code */
25 enum pit_type : int {
26     PIT_TYPE_ORC = 0,
27     PIT_TYPE_TROLL = 1,
28     PIT_TYPE_GIANT = 2,
29     PIT_TYPE_LOVECRAFTIAN = 3,
30     PIT_TYPE_SYMBOL_GOOD = 4,
31     PIT_TYPE_SYMBOL_EVIL = 5,
32     PIT_TYPE_CHAPEL = 6,
33     PIT_TYPE_DRAGON = 7,
34     PIT_TYPE_DEMON = 8,
35     PIT_TYPE_DARK_ELF = 9,
36 };
37
38 /*! pit/nest型情報の構造体定義 */
39 class PlayerType;
40 struct nest_pit_type {
41     concptr name; //<! 部屋名
42     bool (*hook_func)(PlayerType *player_ptr, MonsterRaceId r_idx); //<! モンスターフィルタ関数
43     void (*prep_func)(PlayerType *player_ptr); //<! 能力フィルタ関数
44     DEPTH level; //<! 相当階
45     int chance; //!< 生成確率
46 };
47
48 /*! デバッグ時にnestのモンスター情報を確認するための構造体 / A struct for nest monster information with cheat_hear */
49 struct nest_mon_info_type {
50     MonsterRaceId r_idx; //!< モンスター種族ID
51     bool used; //!< 既に選んだかどうか
52 };
53
54 struct dun_data_type;
55 bool build_type5(PlayerType *player_ptr, dun_data_type *dd_ptr);
56 bool build_type6(PlayerType *player_ptr, dun_data_type *dd_ptr);
57 bool build_type13(PlayerType *player_ptr, dun_data_type *dd_ptr);