OSDN Git Service

Merge pull request #936 from shimitei/feature/#916_fix_sound_on_off
[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 #define NOT_TRAP        -1
23 #define TRAP_TRAPDOOR    0
24 #define TRAP_PIT         1
25 #define TRAP_SPIKED_PIT  2
26 #define TRAP_POISON_PIT  3
27 #define TRAP_TY_CURSE    4
28 #define TRAP_TELEPORT    5
29 #define TRAP_FIRE        6
30 #define TRAP_ACID        7
31 #define TRAP_SLOW        8
32
33 #define TRAP_LOSE_STR    9
34 #define TRAP_LOSE_DEX   10
35 #define TRAP_LOSE_CON   11
36 #define TRAP_BLIND      12
37 #define TRAP_CONFUSE    13
38 #define TRAP_POISON     14
39 #define TRAP_SLEEP      15
40 #define TRAP_TRAPS      16
41 #define TRAP_ALARM      17
42
43 #define MAX_NORMAL_TRAPS 18
44
45 /* Types of special traps */
46 #define TRAP_OPEN       18
47 #define TRAP_ARMAGEDDON 19
48 #define TRAP_PIRANHA    20
49
50 extern const int chest_traps[64];
51
52 typedef struct player_type player_type;
53 void init_normal_traps(void);
54 FEAT_IDX choose_random_trap(player_type *trapped_ptr);
55 void disclose_grid(player_type *trapped_ptr, POSITION y, POSITION x);
56 void place_trap(player_type *trapped_ptr, POSITION y, POSITION x);
57 void hit_trap(player_type *trapped_ptr, bool break_trap);