OSDN Git Service

Merge pull request #676 from iks3/feature-keep-savefile
[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 /*! nestのID定義 /  Nest types code */
9 enum nest_type : int {
10     NEST_TYPE_CLONE = 0,
11     NEST_TYPE_JELLY = 1,
12     NEST_TYPE_SYMBOL_GOOD = 2,
13     NEST_TYPE_SYMBOL_EVIL = 3,
14     NEST_TYPE_MIMIC = 4,
15     NEST_TYPE_LOVECRAFTIAN = 5,
16     NEST_TYPE_KENNEL = 6,
17     NEST_TYPE_ANIMAL = 7,
18     NEST_TYPE_CHAPEL = 8,
19     NEST_TYPE_UNDEAD = 9,
20 };
21
22 /*! pitのID定義 / Pit types code */
23 enum pit_type : int {
24     PIT_TYPE_ORC = 0,
25     PIT_TYPE_TROLL = 1,
26     PIT_TYPE_GIANT = 2,
27     PIT_TYPE_LOVECRAFTIAN = 3,
28     PIT_TYPE_SYMBOL_GOOD = 4,
29     PIT_TYPE_SYMBOL_EVIL = 5,
30     PIT_TYPE_CHAPEL = 6,
31     PIT_TYPE_DRAGON = 7,
32     PIT_TYPE_DEMON = 8,
33     PIT_TYPE_DARK_ELF = 9,
34 };
35
36 /*! pit/nest型情報の構造体定義 */
37 struct nest_pit_type {
38     concptr name; //<! 部屋名
39     bool (*hook_func)(player_type *player_ptr, MONRACE_IDX r_idx); //<! モンスターフィルタ関数
40     void (*prep_func)(player_type *player_ptr); //<! 能力フィルタ関数
41     DEPTH level; //<! 相当階
42     int chance; //!< 生成確率
43 };
44
45 /*! デバッグ時にnestのモンスター情報を確認するための構造体 / A struct for nest monster information with cheat_hear */
46 struct nest_mon_info_type {
47     MONRACE_IDX r_idx; //!< モンスター種族ID
48     bool used; //!< 既に選んだかどうか
49 };
50
51 typedef struct dun_data_type dun_data_type;
52 bool build_type5(player_type *player_ptr, dun_data_type *dd_ptr);
53 bool build_type6(player_type *player_ptr, dun_data_type *dd_ptr);
54 bool build_type13(player_type *player_ptr, dun_data_type *dd_ptr);