Hengband  2.2.1
マクロ定義 | 関数 | 変数
trap.h ファイル
被依存関係図:

[ソースコード]

マクロ定義

#define CHEST_LOSE_STR   0x0001
 箱のトラップ定義 Chest trap flags [詳解]
 
#define CHEST_LOSE_CON   0x0002
 箱のトラップ: CON減少の毒針 [詳解]
 
#define CHEST_POISON   0x0004
 箱のトラップ: 毒針 [詳解]
 
#define CHEST_PARALYZE   0x0008
 箱のトラップ: 麻痺ガス [詳解]
 
#define CHEST_EXPLODE   0x0010
 箱のトラップ: 爆発 [詳解]
 
#define CHEST_SUMMON   0x0020
 箱のトラップ: 召喚のルーン(モンスター) [詳解]
 
#define CHEST_SCATTER   0x0040
 箱のトラップ: アイテム散乱 [詳解]
 
#define CHEST_E_SUMMON   0x0080
 箱のトラップ: 召喚のルーン(エレメンタル) [詳解]
 
#define CHEST_BIRD_STORM   0x0100
 箱のトラップ: 召喚のルーン(鳥) [詳解]
 
#define CHEST_H_SUMMON   0x0200
 箱のトラップ: 召喚のルーン(強敵) [詳解]
 
#define CHEST_RUNES_OF_EVIL   0x0400
 箱のトラップ: 邪悪なルーン [詳解]
 
#define CHEST_ALARM   0x0800
 箱のトラップ: 警報装置 [詳解]
 
#define NOT_TRAP   -1
 
#define TRAP_TRAPDOOR   0
 
#define TRAP_PIT   1
 
#define TRAP_SPIKED_PIT   2
 
#define TRAP_POISON_PIT   3
 
#define TRAP_TY_CURSE   4
 
#define TRAP_TELEPORT   5
 
#define TRAP_FIRE   6
 
#define TRAP_ACID   7
 
#define TRAP_SLOW   8
 
#define TRAP_LOSE_STR   9
 
#define TRAP_LOSE_DEX   10
 
#define TRAP_LOSE_CON   11
 
#define TRAP_BLIND   12
 
#define TRAP_CONFUSE   13
 
#define TRAP_POISON   14
 
#define TRAP_SLEEP   15
 
#define TRAP_TRAPS   16
 
#define TRAP_ALARM   17
 
#define MAX_NORMAL_TRAPS   18
 
#define TRAP_OPEN   18
 
#define TRAP_ARMAGEDDON   19
 
#define TRAP_PIRANHA   20
 

関数

void init_normal_traps (void)
 タグに従って、基本トラップテーブルを初期化する / Initialize arrays for normal traps [詳解]
 
FEAT_IDX choose_random_trap (void)
 基本トラップをランダムに選択する / Get random trap [詳解]
 
void disclose_grid (POSITION y, POSITION x)
 マスに存在する隠しトラップを公開する / Disclose an invisible trap [詳解]
 
void place_trap (floor_type *floor_ptr, POSITION y, POSITION x)
 マスをトラップを配置する / The location must be a legal, naked, floor grid. [詳解]
 
void hit_trap (player_type *trapped_ptr, bool break_trap)
 プレイヤーへのトラップ作動処理メインルーチン / Handle player hitting a real trap [詳解]
 

変数

const int chest_traps [64]
 箱のトラップテーブル [詳解]
 

マクロ定義詳解

◆ CHEST_ALARM

#define CHEST_ALARM   0x0800

箱のトラップ: 警報装置

◆ CHEST_BIRD_STORM

#define CHEST_BIRD_STORM   0x0100

箱のトラップ: 召喚のルーン(鳥)

◆ CHEST_E_SUMMON

#define CHEST_E_SUMMON   0x0080

箱のトラップ: 召喚のルーン(エレメンタル)

◆ CHEST_EXPLODE

#define CHEST_EXPLODE   0x0010

箱のトラップ: 爆発

◆ CHEST_H_SUMMON

#define CHEST_H_SUMMON   0x0200

箱のトラップ: 召喚のルーン(強敵)

◆ CHEST_LOSE_CON

#define CHEST_LOSE_CON   0x0002

箱のトラップ: CON減少の毒針

◆ CHEST_LOSE_STR

#define CHEST_LOSE_STR   0x0001

箱のトラップ定義 Chest trap flags

箱のトラップ: STR減少の毒針

◆ CHEST_PARALYZE

#define CHEST_PARALYZE   0x0008

箱のトラップ: 麻痺ガス

◆ CHEST_POISON

#define CHEST_POISON   0x0004

箱のトラップ: 毒針

◆ CHEST_RUNES_OF_EVIL

#define CHEST_RUNES_OF_EVIL   0x0400

箱のトラップ: 邪悪なルーン

◆ CHEST_SCATTER

#define CHEST_SCATTER   0x0040

箱のトラップ: アイテム散乱

◆ CHEST_SUMMON

#define CHEST_SUMMON   0x0020

箱のトラップ: 召喚のルーン(モンスター)

◆ MAX_NORMAL_TRAPS

#define MAX_NORMAL_TRAPS   18

◆ NOT_TRAP

#define NOT_TRAP   -1

◆ TRAP_ACID

#define TRAP_ACID   7

◆ TRAP_ALARM

#define TRAP_ALARM   17

◆ TRAP_ARMAGEDDON

#define TRAP_ARMAGEDDON   19

◆ TRAP_BLIND

#define TRAP_BLIND   12

◆ TRAP_CONFUSE

#define TRAP_CONFUSE   13

◆ TRAP_FIRE

#define TRAP_FIRE   6

◆ TRAP_LOSE_CON

#define TRAP_LOSE_CON   11

◆ TRAP_LOSE_DEX

#define TRAP_LOSE_DEX   10

◆ TRAP_LOSE_STR

#define TRAP_LOSE_STR   9

◆ TRAP_OPEN

#define TRAP_OPEN   18

◆ TRAP_PIRANHA

#define TRAP_PIRANHA   20

◆ TRAP_PIT

#define TRAP_PIT   1

◆ TRAP_POISON

#define TRAP_POISON   14

◆ TRAP_POISON_PIT

#define TRAP_POISON_PIT   3

◆ TRAP_SLEEP

#define TRAP_SLEEP   15

◆ TRAP_SLOW

#define TRAP_SLOW   8

◆ TRAP_SPIKED_PIT

#define TRAP_SPIKED_PIT   2

◆ TRAP_TELEPORT

#define TRAP_TELEPORT   5

◆ TRAP_TRAPDOOR

#define TRAP_TRAPDOOR   0

◆ TRAP_TRAPS

#define TRAP_TRAPS   16

◆ TRAP_TY_CURSE

#define TRAP_TY_CURSE   4

関数詳解

◆ choose_random_trap()

FEAT_IDX choose_random_trap ( void  )

基本トラップをランダムに選択する / Get random trap

戻り値
選択したトラップのID

This routine should be redone to reflect trap "level".
That is, it does not make sense to have spiked pits at 50 feet.
Actually, it is not this routine, but the "trap instantiation"
code, which should also check for "trap doors" on quest levels.

呼び出し関係図:

◆ disclose_grid()

void disclose_grid ( POSITION  y,
POSITION  x 
)

マスに存在する隠しトラップを公開する / Disclose an invisible trap

引数
y秘匿したいマスのY座標
x秘匿したいマスのX座標
戻り値
なし
呼び出し関係図:

◆ hit_trap()

void hit_trap ( player_type trapped_ptr,
bool  break_trap 
)

プレイヤーへのトラップ作動処理メインルーチン / Handle player hitting a real trap

引数
break_trap作動後のトラップ破壊が確定しているならばTRUE
戻り値
なし
呼び出し関係図:

◆ init_normal_traps()

void init_normal_traps ( void  )

タグに従って、基本トラップテーブルを初期化する / Initialize arrays for normal traps

戻り値
なし
呼び出し関係図:

◆ place_trap()

void place_trap ( floor_type floor_ptr,
POSITION  y,
POSITION  x 
)

マスをトラップを配置する / The location must be a legal, naked, floor grid.

引数
y配置したいマスのY座標
x配置したいマスのX座標
戻り値
Note that all traps start out as "invisible" and "untyped", and then
when they are "discovered" (by detecting them or setting them off),
the trap is "instantiated" as a visible, "typed", trap.
呼び出し関係図:

変数詳解

◆ chest_traps

const int chest_traps[64]

箱のトラップテーブル

Each chest has a certain set of traps, determined by pval
Each chest has a "pval" from 1 to the chest level (max 55)
If the "pval" is negative then the trap has been disarmed
The "pval" of a chest determines the quality of its treasure
Note that disarming a trap on a chest also removes the lock.