Hengband  2.2.1
monsterrace.h
[詳解]
1 #pragma once
2 #include "util.h"
3 
4 /*
5  * Monster blow structure
6  *
7  * - Method (RBM_*)
8  * - Effect (RBE_*)
9  * - Damage Dice
10  * - Damage Sides
11  */
12 
13 typedef struct monster_blow monster_blow;
14 
16 {
21 };
22 
23 extern MONRACE_IDX max_r_idx;
24 
25 /*
26  * Monster "race" information, including racial memories
27  *
28  * Note that "d_attr" and "d_char" are used for MORE than "visual" stuff.
29  *
30  * Note that "x_attr" and "x_char" are used ONLY for "visual" stuff.
31  *
32  * Note that "cur_num" (and "max_num") represent the number of monsters
33  * of the given race currently on (and allowed on) the current level.
34  * This information yields the "dead" flag for Unique monsters.
35  *
36  * Note that "max_num" is reset when a new player is created.
37  * Note that "cur_num" is reset when a new level is created.
38  *
39  * Note that several of these fields, related to "recall", can be
40  * scrapped if space becomes an issue, resulting in less "complete"
41  * monster recall (no knowledge of spells, etc). All of the "recall"
42  * fields have a special prefix to aid in searching for them.
43  */
44 
45 
46 typedef struct monster_race monster_race;
47 
49 {
50  STR_OFFSET name; /*!< 名前データのオフセット(日本語) / Name offset(Japanese) */
51 #ifdef JP
52  STR_OFFSET E_name; /*!< 名前データのオフセット(英語) / Name offset(English) */
53 #endif
54  STR_OFFSET text; /*!< 思い出テキストのオフセット / Lore text offset */
55 
56  DICE_NUMBER hdice; /*!< HPのダイス数 / Creatures hit dice count */
57  DICE_SID hside; /*!< HPのダイス面数 / Creatures hit dice sides */
58 
59  ARMOUR_CLASS ac; /*!< アーマークラス / Armour Class */
60 
61  SLEEP_DEGREE sleep; /*!< 睡眠値 / Inactive counter (base) */
62  POSITION aaf; /*!< 感知範囲(1-100スクエア) / Area affect radius (1-100) */
63  SPEED speed; /*!< 加速(110で+0) / Speed (normally 110) */
64 
65  EXP mexp; /*!< 殺害時基本経験値 / Exp value for kill */
66 
67  BIT_FLAGS16 extra; /*!< 未使用 / Unused (for now) */
68 
69  RARITY freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */
70 
71  BIT_FLAGS flags1; /* Flags 1 (general) */
72 #define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */
73 #define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */
74 #define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */
75 #define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */
76 #define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */
77 #define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */
78 #define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */
79 #define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
80 #define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
81 #define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
82 #define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
83 #define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */
84 #define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
85 #define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
86 #define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */
87 #define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */
88 #define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
89 #define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */
90 #define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
91 #define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
92 #define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */
93 #define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */
94 #define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */
95 #define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */
96 #define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */
97 #define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */
98 #define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */
99 #define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */
100 #define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */
101 #define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */
102 #define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */
103 #define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */
104 
105  BIT_FLAGS flags2; /* Flags 2 (abilities) */
106 #define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
107 #define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */
108 #define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */
109 #define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */
110 #define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */
111 #define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */
112 #define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */
113 #define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */
114 #define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */
115 #define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */
116 #define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */
117 #define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */
118 #define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */
119 #define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */
120 #define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */
121 #define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */
122 #define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
123 #define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
124 #define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
125 #define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
126 #define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
127 #define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
128 #define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
129 #define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
130 #define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */
131 #define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */
132 #define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */
133 #define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */
134 #define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */
135 #define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */
136 #define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */
137 #define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
138 
139  BIT_FLAGS flags3; /* Flags 3 (race/resist) */
140 #define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */
141 #define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */
142 #define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */
143 #define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */
144 #define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */
145 #define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */
146 #define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */
147 #define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */
148 #define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */
149 #define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */
150 #define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */
151 #define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */
152 #define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */
153 #define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */
154 #define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */
155 #define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */
156 #define RF3_ANGEL 0x00010000 /*!< モンスター特性: 天使 / ANGEL */
157 #define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */
158 #define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */
159 #define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */
160 #define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */
161 #define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */
162 #define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */
163 #define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */
164 #define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */
165 #define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */
166 #define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */
167 #define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */
168 #define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */
169 #define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */
170 #define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */
171 #define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */
172 
173  BIT_FLAGS flags4; /* Flags 4 (inate/breath) */
174 #define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */
175 #define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */
176 #define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */
177 #define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */
178 #define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */
179 #define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */
180 #define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */
181 #define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */
182 #define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */
183 #define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */
184 #define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */
185 #define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */
186 #define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */
187 #define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */
188 #define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */
189 #define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */
190 #define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */
191 #define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */
192 #define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */
193 #define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */
194 #define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */
195 #define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */
196 #define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */
197 #define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */
198 #define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */
199 #define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */
200 #define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */
201 #define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */
202 #define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */
203 #define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */
204 #define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */
205 #define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */
206 
207  BIT_FLAGS flags7; /* Flags 7 (movement related abilities) */
208 #define RF7_AQUATIC 0x00000001 /* Aquatic monster */
209 #define RF7_CAN_SWIM 0x00000002 /* Monster can swim */
210 #define RF7_CAN_FLY 0x00000004 /* Monster can fly */
211 #define RF7_FRIENDLY 0x00000008 /* Monster is friendly */
212 #define RF7_NAZGUL 0x00000010 /* Is a "Nazgul" unique */
213 #define RF7_UNIQUE2 0x00000020 /* Fake unique */
214 #define RF7_RIDING 0x00000040 /* Good for riding */
215 #define RF7_KAGE 0x00000080 /* Is kage */
216 #define RF7_HAS_LITE_1 0x00000100 /* Monster carries light */
217 #define RF7_SELF_LITE_1 0x00000200 /* Monster lights itself */
218 #define RF7_HAS_LITE_2 0x00000400 /* Monster carries light */
219 #define RF7_SELF_LITE_2 0x00000800 /* Monster lights itself */
220 #define RF7_GUARDIAN 0x00001000 /* Guardian of a dungeon */
221 #define RF7_CHAMELEON 0x00002000 /* Chameleon can change */
222 #define RF7_XXXX4XXX 0x00004000 /* Now Empty */
223 #define RF7_TANUKI 0x00008000 /* Tanuki disguise */
224 #define RF7_HAS_DARK_1 0x00010000 /* Monster carries darkness */
225 #define RF7_SELF_DARK_1 0x00020000 /* Monster darkens itself */
226 #define RF7_HAS_DARK_2 0x00040000 /* Monster carries darkness */
227 #define RF7_SELF_DARK_2 0x00080000 /* Monster darkens itself */
228 
229  BIT_FLAGS flags8; /* Flags 8 (wilderness info) */
230 #define RF8_WILD_ONLY 0x00000001
231 #define RF8_WILD_TOWN 0x00000002
232 #define RF8_XXX8X02 0x00000004
233 #define RF8_WILD_SHORE 0x00000008
234 #define RF8_WILD_OCEAN 0x00000010
235 #define RF8_WILD_WASTE 0x00000020
236 #define RF8_WILD_WOOD 0x00000040
237 #define RF8_WILD_VOLCANO 0x00000080
238 #define RF8_XXX8X08 0x00000100
239 #define RF8_WILD_MOUNTAIN 0x00000200
240 #define RF8_WILD_GRASS 0x00000400
241 #define RF8_WILD_ALL 0x80000000
242 
243  BIT_FLAGS flags9; /* Flags 9 (drops info) */
244 #define RF9_DROP_CORPSE 0x00000001
245 #define RF9_DROP_SKELETON 0x00000002
246 #define RF9_EAT_BLIND 0x00000004
247 #define RF9_EAT_CONF 0x00000008
248 #define RF9_EAT_MANA 0x00000010
249 #define RF9_EAT_NEXUS 0x00000020
250 #define RF9_EAT_SLEEP 0x00000040
251 #define RF9_EAT_BERSERKER 0x00000080
252 #define RF9_EAT_ACIDIC 0x00000100
253 #define RF9_EAT_SPEED 0x00000200
254 #define RF9_EAT_CURE 0x00000400
255 #define RF9_EAT_FIRE_RES 0x00000800
256 #define RF9_EAT_COLD_RES 0x00001000
257 #define RF9_EAT_ACID_RES 0x00002000
258 #define RF9_EAT_ELEC_RES 0x00004000
259 #define RF9_EAT_POIS_RES 0x00008000
260 #define RF9_EAT_INSANITY 0x00010000
261 #define RF9_EAT_DRAIN_EXP 0x00020000
262 #define RF9_EAT_POISONOUS 0x00040000
263 #define RF9_EAT_GIVE_STR 0x00080000
264 #define RF9_EAT_GIVE_INT 0x00100000
265 #define RF9_EAT_GIVE_WIS 0x00200000
266 #define RF9_EAT_GIVE_DEX 0x00400000
267 #define RF9_EAT_GIVE_CON 0x00800000
268 #define RF9_EAT_GIVE_CHR 0x01000000
269 #define RF9_EAT_LOSE_STR 0x02000000
270 #define RF9_EAT_LOSE_INT 0x04000000
271 #define RF9_EAT_LOSE_WIS 0x08000000
272 #define RF9_EAT_LOSE_DEX 0x10000000
273 #define RF9_EAT_LOSE_CON 0x20000000
274 #define RF9_EAT_LOSE_CHR 0x40000000
275 #define RF9_EAT_DRAIN_MANA 0x80000000
276 
277  BIT_FLAGS flagsr; /* Flags R (resistances info) */
278 #define RFR_IM_ACID 0x00000001 /* Immunity acid */
279 #define RFR_IM_ELEC 0x00000002 /* Immunity elec */
280 #define RFR_IM_FIRE 0x00000004 /* Immunity fire */
281 #define RFR_IM_COLD 0x00000008 /* Immunity cold */
282 #define RFR_IM_POIS 0x00000010 /* Immunity poison */
283 #define RFR_RES_LITE 0x00000020 /* Resist lite */
284 #define RFR_RES_DARK 0x00000040 /* Resist dark */
285 #define RFR_RES_NETH 0x00000080 /* Resist nether */
286 #define RFR_RES_WATE 0x00000100 /* Resist water */
287 #define RFR_RES_PLAS 0x00000200 /* Resist plasma */
288 #define RFR_RES_SHAR 0x00000400 /* Resist shards */
289 #define RFR_RES_SOUN 0x00000800 /* Resist sound */
290 #define RFR_RES_CHAO 0x00001000 /* Resist chaos */
291 #define RFR_RES_NEXU 0x00002000 /* Resist nexus */
292 #define RFR_RES_DISE 0x00004000 /* Resist disenchantment */
293 #define RFR_RES_WALL 0x00008000 /* Resist force */
294 #define RFR_RES_INER 0x00010000 /* Resist inertia */
295 #define RFR_RES_TIME 0x00020000 /* Resist time */
296 #define RFR_RES_GRAV 0x00040000 /* Resist gravity */
297 #define RFR_RES_ALL 0x00080000 /* Resist all */
298 #define RFR_RES_TELE 0x00100000 /* Resist teleportation */
299 #define RFR_XXX21 0x00200000
300 #define RFR_XXX22 0x00400000
301 #define RFR_XXX23 0x00800000
302 #define RFR_XXX24 0x01000000
303 #define RFR_XXX25 0x02000000
304 #define RFR_XXX26 0x04000000
305 #define RFR_XXX27 0x08000000
306 #define RFR_XXX28 0x10000000
307 #define RFR_XXX29 0x20000000
308 #define RFR_XXX30 0x40000000
309 #define RFR_XXX31 0x80000000
310 
311  BIT_FLAGS a_ability_flags1; /* Activate Ability Flags 5 (normal spells) */
312 #define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */
313 #define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */
314 #define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */
315 #define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */
316 #define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */
317 #define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */
318 #define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */
319 #define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */
320 #define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */
321 #define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */
322 #define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */
323 #define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */
324 #define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */
325 #define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */
326 #define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */
327 #define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */
328 #define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */
329 #define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */
330 #define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */
331 #define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */
332 #define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */
333 #define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */
334 #define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */
335 #define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */
336 #define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */
337 #define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */
338 #define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */
339 #define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */
340 #define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */
341 #define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */
342 #define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */
343 #define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */
344 
345  BIT_FLAGS a_ability_flags2; /* Activate Ability Flags 6 (special spells) */
346 #define RF6_HASTE 0x00000001 /* Speed self */
347 #define RF6_HAND_DOOM 0x00000002 /* Hand of Doom */
348 #define RF6_HEAL 0x00000004 /* Heal self */
349 #define RF6_INVULNER 0x00000008 /* INVULNERABILITY! */
350 #define RF6_BLINK 0x00000010 /* Teleport Short */
351 #define RF6_TPORT 0x00000020 /* Teleport Long */
352 #define RF6_WORLD 0x00000040 /* world */
353 #define RF6_SPECIAL 0x00000080 /* Special Attack */
354 #define RF6_TELE_TO 0x00000100 /* Move player to monster */
355 #define RF6_TELE_AWAY 0x00000200 /* Move player far away */
356 #define RF6_TELE_LEVEL 0x00000400 /* Move player vertically */
357 #define RF6_PSY_SPEAR 0x00000800 /* Psyco-spear */
358 #define RF6_DARKNESS 0x00001000 /* Create Darkness */
359 #define RF6_TRAPS 0x00002000 /* Create Traps */
360 #define RF6_FORGET 0x00004000 /* Cause amnesia */
361 #define RF6_RAISE_DEAD 0x00008000 /* Raise Dead */
362 #define RF6_S_KIN 0x00010000 /* Summon "kin" */
363 #define RF6_S_CYBER 0x00020000 /* Summon Cyberdemons! */
364 #define RF6_S_MONSTER 0x00040000 /* Summon Monster */
365 #define RF6_S_MONSTERS 0x00080000 /* Summon Monsters */
366 #define RF6_S_ANT 0x00100000 /* Summon Ants */
367 #define RF6_S_SPIDER 0x00200000 /* Summon Spiders */
368 #define RF6_S_HOUND 0x00400000 /* Summon Hounds */
369 #define RF6_S_HYDRA 0x00800000 /* Summon Hydras */
370 #define RF6_S_ANGEL 0x01000000 /* Summon Angel */
371 #define RF6_S_DEMON 0x02000000 /* Summon Demon */
372 #define RF6_S_UNDEAD 0x04000000 /* Summon Undead */
373 #define RF6_S_DRAGON 0x08000000 /* Summon Dragon */
374 #define RF6_S_HI_UNDEAD 0x10000000 /* Summon Greater Undead */
375 #define RF6_S_HI_DRAGON 0x20000000 /* Summon Ancient Dragon */
376 #define RF6_S_AMBERITES 0x40000000 /* Summon Amberites */
377 #define RF6_S_UNIQUE 0x80000000 /* Summon Unique Monster */
378 
379  BIT_FLAGS a_ability_flags3; /* Activate Ability Flags 7 (implementing) */
380  BIT_FLAGS a_ability_flags4; /* Activate Ability Flags 8 (implementing) */
381 
382  monster_blow blow[4]; /* Up to four blows per round */
386 
387  ARTIFACT_IDX artifact_id[4]; /* 特定アーティファクトドロップID */
388  RARITY artifact_rarity[4]; /* 特定アーティファクトレア度 */
389  PERCENTAGE artifact_percent[4]; /* 特定アーティファクトドロップ率 */
390 
391  PERCENTAGE arena_ratio; /* アリーナの評価修正値(%基準 / 0=100%) / Arena */
392 
395 
396  DEPTH level; /* Level of creature */
397  RARITY rarity; /* Rarity of creature */
398 
399  TERM_COLOR d_attr; /* Default monster attribute */
400  SYMBOL_CODE d_char; /* Default monster character */
401 
402  TERM_COLOR x_attr; /* Desired monster attribute */
403  SYMBOL_CODE x_char; /* Desired monster character */
404 
405 
406  MONSTER_NUMBER max_num; /* Maximum population allowed per level */
407  MONSTER_NUMBER cur_num; /* Monster population on current level */
408 
409  FLOOR_IDX floor_id; /* Location of unique monster */
410 
411 
412  MONSTER_NUMBER r_sights; /* Count sightings of this monster */
413  MONSTER_NUMBER r_deaths; /* Count deaths from this monster */
414 
415  MONSTER_NUMBER r_pkills; /* Count visible monsters killed in this life */
416  MONSTER_NUMBER r_akills; /* Count all monsters killed in this life */
417  MONSTER_NUMBER r_tkills; /* Count monsters killed in all lives */
418 
419  byte r_wake; /* Number of times woken up (?) */
420  byte r_ignore; /* Number of times ignored (?) */
421 
422  #define MR1_SINKA 0x01
423  byte r_xtra1; /* Something */
424 
425  byte r_xtra2; /* Something (unused) */
426 
427  ITEM_NUMBER r_drop_gold; /*!< これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once */
428  ITEM_NUMBER r_drop_item; /*!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once */
429 
430  byte r_cast_spell; /* Max number of other spells seen */
431 
432  byte r_blows[4]; /* Number of times each blow type was seen */
433 
434  u32b r_flags1; /* Observed racial flags */
435  u32b r_flags2; /* Observed racial flags */
436  u32b r_flags3; /* Observed racial flags */
437  u32b r_flags4; /* Observed racial flags */
438  u32b r_flags5; /* Observed racial flags */
439  u32b r_flags6; /* Observed racial flags */
440  /* u32b r_flags7; */ /* Observed racial flags */
441  u32b r_flagsr; /* Observed racial resistance flags */
442 };
443 
444 /*
445  * Hack -- "torch" masks
446  */
447 #define RF7_LITE_MASK (RF7_HAS_LITE_1 | RF7_SELF_LITE_1 | RF7_HAS_LITE_2 | RF7_SELF_LITE_2)
448 #define RF7_DARK_MASK (RF7_HAS_DARK_1 | RF7_SELF_DARK_1 | RF7_HAS_DARK_2 | RF7_SELF_DARK_2)
449 #define RF7_HAS_LD_MASK (RF7_HAS_LITE_1 | RF7_HAS_LITE_2 | RF7_HAS_DARK_1 | RF7_HAS_DARK_2)
450 #define RF7_SELF_LD_MASK (RF7_SELF_LITE_1 | RF7_SELF_LITE_2 | RF7_SELF_DARK_1 | RF7_SELF_DARK_2)
451 
452 /*
453  * Hack -- effective elemental and poison immunity mask
454  */
455 #define RFR_EFF_IM_ACID_MASK (RFR_IM_ACID | RFR_RES_ALL)
456 #define RFR_EFF_IM_ELEC_MASK (RFR_IM_ELEC | RFR_RES_ALL)
457 #define RFR_EFF_IM_FIRE_MASK (RFR_IM_FIRE | RFR_RES_ALL)
458 #define RFR_EFF_IM_COLD_MASK (RFR_IM_COLD | RFR_RES_ALL)
459 #define RFR_EFF_IM_POIS_MASK (RFR_IM_POIS | RFR_RES_ALL)
460 #define RFR_EFF_RES_SHAR_MASK (RFR_RES_SHAR | RFR_RES_ALL)
461 #define RFR_EFF_RES_CHAO_MASK (RFR_RES_CHAO | RFR_RES_ALL)
462 #define RFR_EFF_RES_NEXU_MASK (RFR_RES_NEXU | RFR_RES_ALL)
463 
464 /*
465  * The monster race arrays
466  */
468 char *r_name;
469 char *r_text;
470 
471 extern s16b alloc_race_size;
DICE_SID hside
HPのダイス面数 / Creatures hit dice sides
Definition: monsterrace.h:57
monster_blow blow[4]
Definition: monsterrace.h:382
Definition: monsterrace.h:48
byte BLOW_EFFECT
モンスターの打撃効果ID
Definition: h-type.h:250
ITEM_NUMBER r_drop_item
これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once
Definition: monsterrace.h:428
DEPTH level
Definition: monsterrace.h:396
s16b SLEEP_DEGREE
モンスターの睡眠度の型定義
Definition: h-type.h:195
SYMBOL_CODE d_char
Definition: monsterrace.h:400
FLOOR_IDX floor_id
Definition: monsterrace.h:409
char * r_text
Definition: monsterrace.h:469
byte r_ignore
Definition: monsterrace.h:420
byte BLOW_METHOD
モンスターの打撃手段ID
Definition: h-type.h:249
TERM_COLOR x_attr
Definition: monsterrace.h:402
u32b r_flags2
Definition: monsterrace.h:435
s16b SPEED
ゲーム中の加速値の型定義
Definition: h-type.h:184
byte r_xtra1
Definition: monsterrace.h:423
RARITY rarity
Definition: monsterrace.h:397
u32b r_flagsr
Definition: monsterrace.h:441
BIT_FLAGS flags2
Definition: monsterrace.h:105
byte r_xtra2
Definition: monsterrace.h:425
s32b EXP
ゲーム中の主経験値の型定義
Definition: h-type.h:199
s32b MONSTER_NUMBER
ゲーム中のモンスター数型を定義
Definition: h-type.h:177
SYMBOL_CODE x_char
Definition: monsterrace.h:403
ARTIFACT_IDX artifact_id[4]
Definition: monsterrace.h:387
MONRACE_IDX reinforce_id[6]
Definition: monsterrace.h:383
BIT_FLAGS a_ability_flags2
Definition: monsterrace.h:345
EXP next_exp
Definition: monsterrace.h:394
SLEEP_DEGREE sleep
睡眠値 / Inactive counter (base)
Definition: monsterrace.h:61
MONSTER_NUMBER r_akills
Definition: monsterrace.h:416
BIT_FLAGS flagsr
Definition: monsterrace.h:277
int DICE_NUMBER
ゲーム中のダイス数の型定義
Definition: h-type.h:207
BIT_FLAGS flags7
Definition: monsterrace.h:207
ARMOUR_CLASS ac
アーマークラス / Armour Class
Definition: monsterrace.h:59
MONRACE_IDX max_r_idx
Definition: monsterrace.c:22
s32b DEPTH
ゲーム中の階層レベルの型定義
Definition: h-type.h:216
MONSTER_NUMBER r_tkills
Definition: monsterrace.h:417
TERM_COLOR d_attr
Definition: monsterrace.h:399
BIT_FLAGS flags9
Definition: monsterrace.h:243
BIT_FLAGS a_ability_flags1
Definition: monsterrace.h:311
BLOW_METHOD method
Definition: monsterrace.h:17
s16b MONRACE_IDX
ゲーム中のモンスター種族ID型を定義
Definition: h-type.h:128
STR_OFFSET name
名前データのオフセット(日本語) / Name offset(Japanese)
Definition: monsterrace.h:50
s32b ITEM_NUMBER
ゲーム中のアイテム数型を定義
Definition: h-type.h:178
byte r_cast_spell
Definition: monsterrace.h:430
u32b BIT_FLAGS
32ビットのフラグ配列の型定義
Definition: h-type.h:225
s16b FLOOR_IDX
ゲーム中のフロアID型を定義
Definition: h-type.h:116
s32b POSITION
ゲーム中の座標型を定義
Definition: h-type.h:146
u32b r_flags4
Definition: monsterrace.h:437
Definition: util.h:110
PERCENTAGE artifact_percent[4]
Definition: monsterrace.h:389
u16b BIT_FLAGS16
16ビットのフラグ配列の型定義
Definition: h-type.h:226
char SYMBOL_CODE
キャラの文字の型定義
Definition: h-type.h:238
MONSTER_NUMBER r_sights
Definition: monsterrace.h:412
s16b alloc_race_size
Definition: monsterrace.c:12
BIT_FLAGS flags1
Definition: monsterrace.h:71
byte r_wake
Definition: monsterrace.h:419
STR_OFFSET text
思い出テキストのオフセット / Lore text offset
Definition: monsterrace.h:54
MONSTER_NUMBER r_deaths
Definition: monsterrace.h:413
char * r_name
Definition: monsterrace.h:468
u32b STR_OFFSET
テキストオフセットの型定義
Definition: h-type.h:212
s32b PERCENTAGE
ゲーム中のパーセント表記の型定義(/100倍)
Definition: h-type.h:222
MONRACE_IDX next_r_idx
Definition: monsterrace.h:393
u32b r_flags3
Definition: monsterrace.h:436
byte TERM_COLOR
テキスト表示色の型定義
Definition: h-type.h:237
MONSTER_NUMBER r_pkills
Definition: monsterrace.h:415
DICE_SID d_side
Definition: monsterrace.h:20
u32b r_flags6
Definition: monsterrace.h:439
byte r_blows[4]
Definition: monsterrace.h:432
alloc_entry * alloc_race_table
Definition: monsterrace.c:17
DICE_SID reinforce_ds[6]
Definition: monsterrace.h:385
unsigned long u32b
Definition: h-type.h:108
POSITION aaf
感知範囲(1-100スクエア) / Area affect radius (1-100)
Definition: monsterrace.h:62
BIT_FLAGS a_ability_flags3
Definition: monsterrace.h:379
DICE_NUMBER reinforce_dd[6]
Definition: monsterrace.h:384
s16b ARTIFACT_IDX
ゲーム中のアーティファクトID型を定義
Definition: h-type.h:132
BIT_FLAGS flags4
Definition: monsterrace.h:173
signed short s16b
Definition: h-type.h:98
EXP mexp
殺害時基本経験値 / Exp value for kill
Definition: monsterrace.h:65
MONSTER_NUMBER max_num
Definition: monsterrace.h:406
MONSTER_NUMBER cur_num
Definition: monsterrace.h:407
DICE_NUMBER hdice
HPのダイス数 / Creatures hit dice count
Definition: monsterrace.h:56
monster_race * r_info
Definition: monsterrace.h:467
int DICE_SID
ゲーム中のダイス面の型定義
Definition: h-type.h:208
u32b r_flags1
Definition: monsterrace.h:434
RARITY freq_spell
魔法&特殊能力仕様頻度(1/n) / Spell frequency
Definition: monsterrace.h:69
ITEM_NUMBER r_drop_gold
これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once
Definition: monsterrace.h:427
PERCENTAGE arena_ratio
Definition: monsterrace.h:391
BIT_FLAGS flags8
Definition: monsterrace.h:229
BIT_FLAGS16 extra
未使用 / Unused (for now)
Definition: monsterrace.h:67
DICE_NUMBER d_dice
Definition: monsterrace.h:19
BIT_FLAGS flags3
Definition: monsterrace.h:139
s16b ARMOUR_CLASS
ゲーム中の行動アーマークラス型を定義
Definition: h-type.h:181
RARITY artifact_rarity[4]
Definition: monsterrace.h:388
Definition: monsterrace.h:15
BIT_FLAGS a_ability_flags4
Definition: monsterrace.h:380
u32b r_flags5
Definition: monsterrace.h:438
SPEED speed
加速(110で+0) / Speed (normally 110)
Definition: monsterrace.h:63
BLOW_EFFECT effect
Definition: monsterrace.h:18
byte RARITY
ゲーム中の希少度の型定義
Definition: h-type.h:217