OSDN Git Service

Merge pull request #1416 from Hourier/feature/Remove-Unused-Preprocessor
[hengbandforosx/hengbandosx.git] / src / grid / trap.h
1 #pragma once
2
3 #include "system/angband.h"
4
5 /*!
6  * 箱のトラップ定義 Chest trap flags
7  */
8 #define CHEST_LOSE_STR          0x0001 /*!< 箱のトラップ: STR減少の毒針 */
9 #define CHEST_LOSE_CON          0x0002 /*!< 箱のトラップ: CON減少の毒針 */
10 #define CHEST_POISON            0x0004 /*!< 箱のトラップ: 毒針 */
11 #define CHEST_PARALYZE          0x0008 /*!< 箱のトラップ: 麻痺ガス */
12 #define CHEST_EXPLODE           0x0010 /*!< 箱のトラップ: 爆発 */
13 #define CHEST_SUMMON            0x0020 /*!< 箱のトラップ: 召喚のルーン(モンスター) */
14 #define CHEST_SCATTER           0x0040 /*!< 箱のトラップ: アイテム散乱 */
15 #define CHEST_E_SUMMON          0x0080 /*!< 箱のトラップ: 召喚のルーン(エレメンタル) */
16 #define CHEST_BIRD_STORM        0x0100 /*!< 箱のトラップ: 召喚のルーン(鳥) */
17 #define CHEST_H_SUMMON          0x0200 /*!< 箱のトラップ: 召喚のルーン(強敵)  */
18 #define CHEST_RUNES_OF_EVIL     0x0400 /*!< 箱のトラップ: 邪悪なルーン */
19 #define CHEST_ALARM             0x0800 /*!< 箱のトラップ: 警報装置 */
20
21 /* Types of normal traps */
22 enum trap_type {
23     NOT_TRAP = -1,
24     TRAP_TRAPDOOR = 0,
25     TRAP_PIT = 1,
26     TRAP_SPIKED_PIT = 2,
27     TRAP_POISON_PIT = 3,
28     TRAP_TY_CURSE = 4,
29     TRAP_TELEPORT = 5,
30     TRAP_FIRE = 6,
31     TRAP_ACID = 7,
32     TRAP_SLOW = 8,
33
34     TRAP_LOSE_STR = 9,
35     TRAP_LOSE_DEX = 10,
36     TRAP_LOSE_CON = 11,
37     TRAP_BLIND = 12,
38     TRAP_CONFUSE = 13,
39     TRAP_POISON = 14,
40     TRAP_SLEEP = 15,
41     TRAP_TRAPS = 16,
42     TRAP_ALARM = 17,
43
44     /* Types of special traps */
45     TRAP_OPEN = 18,
46     TRAP_ARMAGEDDON = 19,
47     TRAP_PIRANHA = 20,
48
49 };
50 const int MAX_NORMAL_TRAPS = TRAP_ALARM + 1;
51
52 extern const int chest_traps[64];
53
54 struct player_type;
55 void init_normal_traps(void);
56 FEAT_IDX choose_random_trap(player_type *trapped_ptr);
57 void disclose_grid(player_type *trapped_ptr, POSITION y, POSITION x);
58 void place_trap(player_type *trapped_ptr, POSITION y, POSITION x);
59 void hit_trap(player_type *trapped_ptr, bool break_trap);