5 * Monster blow structure
13 typedef struct monster_blow monster_blow;
23 extern MONRACE_IDX max_r_idx;
26 * Monster "race" information, including racial memories
28 * Note that "d_attr" and "d_char" are used for MORE than "visual" stuff.
30 * Note that "x_attr" and "x_char" are used ONLY for "visual" stuff.
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.
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.
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.
46 typedef struct monster_race monster_race;
50 STR_OFFSET name; /*!< 名前データのオフセット(日本語) / Name offset(Japanese) */
52 STR_OFFSET E_name; /*!< 名前データのオフセット(英語) / Name offset(English) */
54 STR_OFFSET text; /*!< 思い出テキストのオフセット / Lore text offset */
56 DICE_NUMBER hdice; /*!< HPのダイス数 / Creatures hit dice count */
57 DICE_SID hside; /*!< HPのダイス面数 / Creatures hit dice sides */
59 ARMOUR_CLASS ac; /*!< アーマークラス / Armour Class */
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) */
65 EXP mexp; /*!< 殺害時基本経験値 / Exp value for kill */
67 BIT_FLAGS16 extra; /*!< 未使用 / Unused (for now) */
69 RARITY freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */
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 */
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 */
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 */
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 */
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 */
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
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
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
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 */
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 */
379 BIT_FLAGS a_ability_flags3; /* Activate Ability Flags 7 (implementing) */
380 BIT_FLAGS a_ability_flags4; /* Activate Ability Flags 8 (implementing) */
382 monster_blow blow[4]; /* Up to four blows per round */
383 MONRACE_IDX reinforce_id[6];
384 DICE_NUMBER reinforce_dd[6];
385 DICE_SID reinforce_ds[6];
387 ARTIFACT_IDX artifact_id[4]; /* 特定アーティファクトドロップID */
388 RARITY artifact_rarity[4]; /* 特定アーティファクトレア度 */
389 PERCENTAGE artifact_percent[4]; /* 特定アーティファクトドロップ率 */
391 PERCENTAGE arena_ratio; /* アリーナの評価修正値(%基準 / 0=100%) / Arena */
393 MONRACE_IDX next_r_idx;
396 DEPTH level; /* Level of creature */
397 RARITY rarity; /* Rarity of creature */
399 TERM_COLOR d_attr; /* Default monster attribute */
400 SYMBOL_CODE d_char; /* Default monster character */
402 TERM_COLOR x_attr; /* Desired monster attribute */
403 SYMBOL_CODE x_char; /* Desired monster character */
406 MONSTER_NUMBER max_num; /* Maximum population allowed per level */
407 MONSTER_NUMBER cur_num; /* Monster population on current level */
409 FLOOR_IDX floor_id; /* Location of unique monster */
412 MONSTER_NUMBER r_sights; /* Count sightings of this monster */
413 MONSTER_NUMBER r_deaths; /* Count deaths from this monster */
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 */
419 byte r_wake; /* Number of times woken up (?) */
420 byte r_ignore; /* Number of times ignored (?) */
422 byte r_xtra1; /* Something (unused) */
423 byte r_xtra2; /* Something (unused) */
425 ITEM_NUMBER r_drop_gold; /*!< これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once */
426 ITEM_NUMBER r_drop_item; /*!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once */
428 byte r_cast_spell; /* Max number of other spells seen */
430 byte r_blows[4]; /* Number of times each blow type was seen */
432 u32b r_flags1; /* Observed racial flags */
433 u32b r_flags2; /* Observed racial flags */
434 u32b r_flags3; /* Observed racial flags */
435 u32b r_flags4; /* Observed racial flags */
436 u32b r_flags5; /* Observed racial flags */
437 u32b r_flags6; /* Observed racial flags */
438 /* u32b r_flags7; */ /* Observed racial flags */
439 u32b r_flagsr; /* Observed racial resistance flags */
444 * The monster race arrays
446 monster_race *r_info;
450 extern s16b alloc_race_size;
451 extern alloc_entry *alloc_race_table;