• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision87aec79e4f15e998ad9fba057169a2a5cc42bb05 (tree)
Time2019-05-01 13:46:58
Authordeskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #37353 monsterrace.c/h を作成して関連構造体と変数を移動.

Change Summary

Incremental Difference

--- a/Hengband_vcs2017/Hengband/Hengband.vcxproj
+++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj
@@ -164,6 +164,7 @@
164164 <ClCompile Include="..\..\src\monster-process.c" />
165165 <ClCompile Include="..\..\src\monster-status.c" />
166166 <ClCompile Include="..\..\src\monsterrace-hook.c" />
167+ <ClCompile Include="..\..\src\monsterrace.c" />
167168 <ClCompile Include="..\..\src\object-boost.c" />
168169 <ClCompile Include="..\..\src\object-curse.c" />
169170 <ClCompile Include="..\..\src\object-flavor.c" />
@@ -319,6 +320,7 @@
319320 <ClInclude Include="..\..\src\monster-status.h" />
320321 <ClInclude Include="..\..\src\monster.h" />
321322 <ClInclude Include="..\..\src\monsterrace-hook.h" />
323+ <ClInclude Include="..\..\src\monsterrace.h" />
322324 <ClInclude Include="..\..\src\mutation.h" />
323325 <ClInclude Include="..\..\src\object-boost.h" />
324326 <ClInclude Include="..\..\src\object-curse.h" />
--- a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters
+++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters
@@ -327,6 +327,9 @@
327327 <ClCompile Include="..\..\src\objectkind.c">
328328 <Filter>object</Filter>
329329 </ClCompile>
330+ <ClCompile Include="..\..\src\monsterrace.c">
331+ <Filter>monster</Filter>
332+ </ClCompile>
330333 </ItemGroup>
331334 <ItemGroup>
332335 <ClInclude Include="..\..\src\angband.h" />
@@ -617,6 +620,9 @@
617620 <ClInclude Include="..\..\src\objectkind.h">
618621 <Filter>object</Filter>
619622 </ClInclude>
623+ <ClInclude Include="..\..\src\monsterrace.h">
624+ <Filter>monster</Filter>
625+ </ClInclude>
620626 </ItemGroup>
621627 <ItemGroup>
622628 <ResourceCompile Include="..\..\src\angband.rc" />
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -37,7 +37,7 @@ hengband_SOURCES = \
3737 main.c main-x11.c main-gcu.c \
3838 melee.h melee1.c mind.c mind.h \
3939 \
40- monster.h \
40+ monster.h monsterrace.c monsterrace.h \
4141 monsterrace-hook.c monsterrace-hook.h monster-process.c \
4242 monster-process.h monster-status.c monster-status.h monster1.c \
4343 monster2.c mspells1.c mspells2.c mspells3.c mspells4.c monster-spell.h \
--- a/src/autopick.c
+++ b/src/autopick.c
@@ -27,6 +27,7 @@
2727 #include "files.h"
2828 #include "floor.h"
2929 #include "world.h"
30+#include "monsterrace.h"
3031
3132 #define MAX_LINELEN 1024
3233
--- a/src/birth.c
+++ b/src/birth.c
@@ -35,6 +35,7 @@
3535 #include "player-skill.h"
3636 #include "world.h"
3737 #include "objectkind.h"
38+#include "monsterrace.h"
3839
3940 /*!
4041 * オートローラーの内容を描画する間隔 /
--- a/src/bldg.c
+++ b/src/bldg.c
@@ -48,6 +48,7 @@
4848 #include "scores.h"
4949 #include "shoot.h"
5050 #include "view-mainwindow.h"
51+#include "monsterrace.h"
5152
5253
5354 /*
--- a/src/dungeon-file.c
+++ b/src/dungeon-file.c
@@ -15,6 +15,7 @@
1515 #include "world.h"
1616 #include "rooms-vault.h"
1717 #include "objectkind.h"
18+#include "monsterrace.h"
1819
1920 dungeon_grid letter[255];
2021
--- a/src/externs.h
+++ b/src/externs.h
@@ -15,6 +15,7 @@
1515 #include "geometry.h"
1616 #include "grid.h"
1717 #include "floor-save.h"
18+#include "monsterrace.h"
1819
1920 /*
2021 * Automatically generated "variable" declarations
@@ -232,13 +233,9 @@ extern birther previous_char;
232233 extern char *f_name;
233234 extern char *f_tag;
234235
235-
236236 extern ego_item_type *e_info;
237237 extern char *e_name;
238238 extern char *e_text;
239-extern monster_race *r_info;
240-extern char *r_name;
241-extern char *r_text;
242239
243240 extern concptr ANGBAND_SYS;
244241 extern concptr ANGBAND_KEYBOARD;
--- a/src/monster.h
+++ b/src/monster.h
@@ -1,4 +1,6 @@
1-
1+#pragma once
2+#include "monsterrace.h"
3+
24 #define MON_BEGGAR 12
35 #define MON_LEPER 13
46 #define MON_BLACK_MARKET 14
--- a/src/monster2.c
+++ b/src/monster2.c
@@ -32,6 +32,7 @@
3232 #include "files.h"
3333 #include "view-mainwindow.h"
3434 #include "world.h"
35+#include "monsterrace.h"
3536
3637 #define HORDE_NOGOOD 0x01 /*!< (未実装フラグ)HORDE生成でGOODなモンスターの生成を禁止する? */
3738 #define HORDE_NOEVIL 0x02 /*!< (未実装フラグ)HORDE生成でEVILなモンスターの生成を禁止する? */
--- a/src/monsterrace-hook.c
+++ b/src/monsterrace-hook.c
@@ -6,6 +6,7 @@
66 #include "monster-spell.h"
77 #include "floor.h"
88 #include "dungeon.h"
9+#include "monsterrace.h"
910
1011 /*! 通常pit生成時のモンスターの構成条件ID / Race index for "monster pit (clone)" */
1112 int vault_aux_race;
--- /dev/null
+++ b/src/monsterrace.c
@@ -0,0 +1,6 @@
1+#include "angband.h"
2+#include "monsterrace.h"
3+
4+extern monster_race *r_info;
5+extern char *r_name;
6+extern char *r_text;
--- /dev/null
+++ b/src/monsterrace.h
@@ -0,0 +1,426 @@
1+#pragma once
2+
3+/*
4+ * Monster "race" information, including racial memories
5+ *
6+ * Note that "d_attr" and "d_char" are used for MORE than "visual" stuff.
7+ *
8+ * Note that "x_attr" and "x_char" are used ONLY for "visual" stuff.
9+ *
10+ * Note that "cur_num" (and "max_num") represent the number of monsters
11+ * of the given race currently on (and allowed on) the current level.
12+ * This information yields the "dead" flag for Unique monsters.
13+ *
14+ * Note that "max_num" is reset when a new player is created.
15+ * Note that "cur_num" is reset when a new level is created.
16+ *
17+ * Note that several of these fields, related to "recall", can be
18+ * scrapped if space becomes an issue, resulting in less "complete"
19+ * monster recall (no knowledge of spells, etc). All of the "recall"
20+ * fields have a special prefix to aid in searching for them.
21+ */
22+
23+
24+typedef struct monster_race monster_race;
25+
26+struct monster_race
27+{
28+ STR_OFFSET name; /*!< 名前データのオフセット(日本語) / Name offset(Japanese) */
29+#ifdef JP
30+ STR_OFFSET E_name; /*!< 名前データのオフセット(英語) / Name offset(English) */
31+#endif
32+ STR_OFFSET text; /*!< 思い出テキストのオフセット / Lore text offset */
33+
34+ DICE_NUMBER hdice; /*!< HPのダイス数 / Creatures hit dice count */
35+ DICE_SID hside; /*!< HPのダイス面数 / Creatures hit dice sides */
36+
37+ ARMOUR_CLASS ac; /*!< アーマークラス / Armour Class */
38+
39+ SLEEP_DEGREE sleep; /*!< 睡眠値 / Inactive counter (base) */
40+ POSITION aaf; /*!< 感知範囲(1-100スクエア) / Area affect radius (1-100) */
41+ SPEED speed; /*!< 加速(110で+0) / Speed (normally 110) */
42+
43+ EXP mexp; /*!< 殺害時基本経験値 / Exp value for kill */
44+
45+ BIT_FLAGS16 extra; /*!< 未使用 / Unused (for now) */
46+
47+ RARITY freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */
48+
49+ BIT_FLAGS flags1; /* Flags 1 (general) */
50+#define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */
51+#define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */
52+#define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */
53+#define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */
54+#define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */
55+#define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */
56+#define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */
57+#define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
58+#define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
59+#define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
60+#define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
61+#define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */
62+#define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
63+#define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
64+#define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */
65+#define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */
66+#define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
67+#define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */
68+#define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
69+#define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
70+#define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */
71+#define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */
72+#define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */
73+#define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */
74+#define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */
75+#define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */
76+#define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */
77+#define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */
78+#define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */
79+#define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */
80+#define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */
81+#define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */
82+
83+ BIT_FLAGS flags2; /* Flags 2 (abilities) */
84+#define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
85+#define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */
86+#define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */
87+#define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */
88+#define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */
89+#define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */
90+#define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */
91+#define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */
92+#define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */
93+#define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */
94+#define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */
95+#define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */
96+#define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */
97+#define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */
98+#define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */
99+#define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */
100+#define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
101+#define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
102+#define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
103+#define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
104+#define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
105+#define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
106+#define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
107+#define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
108+#define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */
109+#define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */
110+#define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */
111+#define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */
112+#define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */
113+#define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */
114+#define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */
115+#define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
116+
117+ BIT_FLAGS flags3; /* Flags 3 (race/resist) */
118+#define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */
119+#define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */
120+#define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */
121+#define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */
122+#define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */
123+#define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */
124+#define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */
125+#define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */
126+#define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */
127+#define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */
128+#define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */
129+#define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */
130+#define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */
131+#define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */
132+#define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */
133+#define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */
134+#define RF3_ANGEL 0x00010000 /*!< モンスター特性: 天使 / ANGEL */
135+#define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */
136+#define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */
137+#define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */
138+#define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */
139+#define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */
140+#define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */
141+#define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */
142+#define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */
143+#define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */
144+#define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */
145+#define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */
146+#define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */
147+#define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */
148+#define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */
149+#define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */
150+
151+ BIT_FLAGS flags4; /* Flags 4 (inate/breath) */
152+#define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */
153+#define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */
154+#define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */
155+#define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */
156+#define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */
157+#define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */
158+#define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */
159+#define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */
160+#define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */
161+#define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */
162+#define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */
163+#define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */
164+#define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */
165+#define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */
166+#define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */
167+#define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */
168+#define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */
169+#define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */
170+#define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */
171+#define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */
172+#define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */
173+#define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */
174+#define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */
175+#define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */
176+#define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */
177+#define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */
178+#define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */
179+#define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */
180+#define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */
181+#define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */
182+#define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */
183+#define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */
184+
185+ BIT_FLAGS flags7; /* Flags 7 (movement related abilities) */
186+#define RF7_AQUATIC 0x00000001 /* Aquatic monster */
187+#define RF7_CAN_SWIM 0x00000002 /* Monster can swim */
188+#define RF7_CAN_FLY 0x00000004 /* Monster can fly */
189+#define RF7_FRIENDLY 0x00000008 /* Monster is friendly */
190+#define RF7_NAZGUL 0x00000010 /* Is a "Nazgul" unique */
191+#define RF7_UNIQUE2 0x00000020 /* Fake unique */
192+#define RF7_RIDING 0x00000040 /* Good for riding */
193+#define RF7_KAGE 0x00000080 /* Is kage */
194+#define RF7_HAS_LITE_1 0x00000100 /* Monster carries light */
195+#define RF7_SELF_LITE_1 0x00000200 /* Monster lights itself */
196+#define RF7_HAS_LITE_2 0x00000400 /* Monster carries light */
197+#define RF7_SELF_LITE_2 0x00000800 /* Monster lights itself */
198+#define RF7_GUARDIAN 0x00001000 /* Guardian of a dungeon */
199+#define RF7_CHAMELEON 0x00002000 /* Chameleon can change */
200+#define RF7_XXXX4XXX 0x00004000 /* Now Empty */
201+#define RF7_TANUKI 0x00008000 /* Tanuki disguise */
202+#define RF7_HAS_DARK_1 0x00010000 /* Monster carries darkness */
203+#define RF7_SELF_DARK_1 0x00020000 /* Monster darkens itself */
204+#define RF7_HAS_DARK_2 0x00040000 /* Monster carries darkness */
205+#define RF7_SELF_DARK_2 0x00080000 /* Monster darkens itself */
206+
207+ BIT_FLAGS flags8; /* Flags 8 (wilderness info) */
208+#define RF8_WILD_ONLY 0x00000001
209+#define RF8_WILD_TOWN 0x00000002
210+#define RF8_XXX8X02 0x00000004
211+#define RF8_WILD_SHORE 0x00000008
212+#define RF8_WILD_OCEAN 0x00000010
213+#define RF8_WILD_WASTE 0x00000020
214+#define RF8_WILD_WOOD 0x00000040
215+#define RF8_WILD_VOLCANO 0x00000080
216+#define RF8_XXX8X08 0x00000100
217+#define RF8_WILD_MOUNTAIN 0x00000200
218+#define RF8_WILD_GRASS 0x00000400
219+#define RF8_WILD_ALL 0x80000000
220+
221+ BIT_FLAGS flags9; /* Flags 9 (drops info) */
222+#define RF9_DROP_CORPSE 0x00000001
223+#define RF9_DROP_SKELETON 0x00000002
224+#define RF9_EAT_BLIND 0x00000004
225+#define RF9_EAT_CONF 0x00000008
226+#define RF9_EAT_MANA 0x00000010
227+#define RF9_EAT_NEXUS 0x00000020
228+#define RF9_EAT_SLEEP 0x00000040
229+#define RF9_EAT_BERSERKER 0x00000080
230+#define RF9_EAT_ACIDIC 0x00000100
231+#define RF9_EAT_SPEED 0x00000200
232+#define RF9_EAT_CURE 0x00000400
233+#define RF9_EAT_FIRE_RES 0x00000800
234+#define RF9_EAT_COLD_RES 0x00001000
235+#define RF9_EAT_ACID_RES 0x00002000
236+#define RF9_EAT_ELEC_RES 0x00004000
237+#define RF9_EAT_POIS_RES 0x00008000
238+#define RF9_EAT_INSANITY 0x00010000
239+#define RF9_EAT_DRAIN_EXP 0x00020000
240+#define RF9_EAT_POISONOUS 0x00040000
241+#define RF9_EAT_GIVE_STR 0x00080000
242+#define RF9_EAT_GIVE_INT 0x00100000
243+#define RF9_EAT_GIVE_WIS 0x00200000
244+#define RF9_EAT_GIVE_DEX 0x00400000
245+#define RF9_EAT_GIVE_CON 0x00800000
246+#define RF9_EAT_GIVE_CHR 0x01000000
247+#define RF9_EAT_LOSE_STR 0x02000000
248+#define RF9_EAT_LOSE_INT 0x04000000
249+#define RF9_EAT_LOSE_WIS 0x08000000
250+#define RF9_EAT_LOSE_DEX 0x10000000
251+#define RF9_EAT_LOSE_CON 0x20000000
252+#define RF9_EAT_LOSE_CHR 0x40000000
253+#define RF9_EAT_DRAIN_MANA 0x80000000
254+
255+ BIT_FLAGS flagsr; /* Flags R (resistances info) */
256+#define RFR_IM_ACID 0x00000001 /* Immunity acid */
257+#define RFR_IM_ELEC 0x00000002 /* Immunity elec */
258+#define RFR_IM_FIRE 0x00000004 /* Immunity fire */
259+#define RFR_IM_COLD 0x00000008 /* Immunity cold */
260+#define RFR_IM_POIS 0x00000010 /* Immunity poison */
261+#define RFR_RES_LITE 0x00000020 /* Resist lite */
262+#define RFR_RES_DARK 0x00000040 /* Resist dark */
263+#define RFR_RES_NETH 0x00000080 /* Resist nether */
264+#define RFR_RES_WATE 0x00000100 /* Resist water */
265+#define RFR_RES_PLAS 0x00000200 /* Resist plasma */
266+#define RFR_RES_SHAR 0x00000400 /* Resist shards */
267+#define RFR_RES_SOUN 0x00000800 /* Resist sound */
268+#define RFR_RES_CHAO 0x00001000 /* Resist chaos */
269+#define RFR_RES_NEXU 0x00002000 /* Resist nexus */
270+#define RFR_RES_DISE 0x00004000 /* Resist disenchantment */
271+#define RFR_RES_WALL 0x00008000 /* Resist force */
272+#define RFR_RES_INER 0x00010000 /* Resist inertia */
273+#define RFR_RES_TIME 0x00020000 /* Resist time */
274+#define RFR_RES_GRAV 0x00040000 /* Resist gravity */
275+#define RFR_RES_ALL 0x00080000 /* Resist all */
276+#define RFR_RES_TELE 0x00100000 /* Resist teleportation */
277+#define RFR_XXX21 0x00200000
278+#define RFR_XXX22 0x00400000
279+#define RFR_XXX23 0x00800000
280+#define RFR_XXX24 0x01000000
281+#define RFR_XXX25 0x02000000
282+#define RFR_XXX26 0x04000000
283+#define RFR_XXX27 0x08000000
284+#define RFR_XXX28 0x10000000
285+#define RFR_XXX29 0x20000000
286+#define RFR_XXX30 0x40000000
287+#define RFR_XXX31 0x80000000
288+
289+ BIT_FLAGS a_ability_flags1; /* Activate Ability Flags 5 (normal spells) */
290+#define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */
291+#define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */
292+#define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */
293+#define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */
294+#define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */
295+#define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */
296+#define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */
297+#define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */
298+#define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */
299+#define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */
300+#define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */
301+#define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */
302+#define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */
303+#define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */
304+#define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */
305+#define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */
306+#define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */
307+#define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */
308+#define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */
309+#define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */
310+#define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */
311+#define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */
312+#define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */
313+#define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */
314+#define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */
315+#define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */
316+#define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */
317+#define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */
318+#define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */
319+#define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */
320+#define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */
321+#define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */
322+
323+ BIT_FLAGS a_ability_flags2; /* Activate Ability Flags 6 (special spells) */
324+#define RF6_HASTE 0x00000001 /* Speed self */
325+#define RF6_HAND_DOOM 0x00000002 /* Hand of Doom */
326+#define RF6_HEAL 0x00000004 /* Heal self */
327+#define RF6_INVULNER 0x00000008 /* INVULNERABILITY! */
328+#define RF6_BLINK 0x00000010 /* Teleport Short */
329+#define RF6_TPORT 0x00000020 /* Teleport Long */
330+#define RF6_WORLD 0x00000040 /* world */
331+#define RF6_SPECIAL 0x00000080 /* Special Attack */
332+#define RF6_TELE_TO 0x00000100 /* Move player to monster */
333+#define RF6_TELE_AWAY 0x00000200 /* Move player far away */
334+#define RF6_TELE_LEVEL 0x00000400 /* Move player vertically */
335+#define RF6_PSY_SPEAR 0x00000800 /* Psyco-spear */
336+#define RF6_DARKNESS 0x00001000 /* Create Darkness */
337+#define RF6_TRAPS 0x00002000 /* Create Traps */
338+#define RF6_FORGET 0x00004000 /* Cause amnesia */
339+#define RF6_RAISE_DEAD 0x00008000 /* Raise Dead */
340+#define RF6_S_KIN 0x00010000 /* Summon "kin" */
341+#define RF6_S_CYBER 0x00020000 /* Summon Cyberdemons! */
342+#define RF6_S_MONSTER 0x00040000 /* Summon Monster */
343+#define RF6_S_MONSTERS 0x00080000 /* Summon Monsters */
344+#define RF6_S_ANT 0x00100000 /* Summon Ants */
345+#define RF6_S_SPIDER 0x00200000 /* Summon Spiders */
346+#define RF6_S_HOUND 0x00400000 /* Summon Hounds */
347+#define RF6_S_HYDRA 0x00800000 /* Summon Hydras */
348+#define RF6_S_ANGEL 0x01000000 /* Summon Angel */
349+#define RF6_S_DEMON 0x02000000 /* Summon Demon */
350+#define RF6_S_UNDEAD 0x04000000 /* Summon Undead */
351+#define RF6_S_DRAGON 0x08000000 /* Summon Dragon */
352+#define RF6_S_HI_UNDEAD 0x10000000 /* Summon Greater Undead */
353+#define RF6_S_HI_DRAGON 0x20000000 /* Summon Ancient Dragon */
354+#define RF6_S_AMBERITES 0x40000000 /* Summon Amberites */
355+#define RF6_S_UNIQUE 0x80000000 /* Summon Unique Monster */
356+
357+ BIT_FLAGS a_ability_flags3; /* Activate Ability Flags 7 (implementing) */
358+ BIT_FLAGS a_ability_flags4; /* Activate Ability Flags 8 (implementing) */
359+
360+ monster_blow blow[4]; /* Up to four blows per round */
361+ MONRACE_IDX reinforce_id[6];
362+ DICE_NUMBER reinforce_dd[6];
363+ DICE_SID reinforce_ds[6];
364+
365+ ARTIFACT_IDX artifact_id[4]; /* 特定アーティファクトドロップID */
366+ RARITY artifact_rarity[4]; /* 特定アーティファクトレア度 */
367+ PERCENTAGE artifact_percent[4]; /* 特定アーティファクトドロップ率 */
368+
369+ PERCENTAGE arena_ratio; /* アリーナの評価修正値(%基準 / 0=100%) / Arena */
370+
371+ MONRACE_IDX next_r_idx;
372+ EXP next_exp;
373+
374+ DEPTH level; /* Level of creature */
375+ RARITY rarity; /* Rarity of creature */
376+
377+ TERM_COLOR d_attr; /* Default monster attribute */
378+ SYMBOL_CODE d_char; /* Default monster character */
379+
380+ TERM_COLOR x_attr; /* Desired monster attribute */
381+ SYMBOL_CODE x_char; /* Desired monster character */
382+
383+
384+ MONSTER_NUMBER max_num; /* Maximum population allowed per level */
385+ MONSTER_NUMBER cur_num; /* Monster population on current level */
386+
387+ FLOOR_IDX floor_id; /* Location of unique monster */
388+
389+
390+ MONSTER_NUMBER r_sights; /* Count sightings of this monster */
391+ MONSTER_NUMBER r_deaths; /* Count deaths from this monster */
392+
393+ MONSTER_NUMBER r_pkills; /* Count visible monsters killed in this life */
394+ MONSTER_NUMBER r_akills; /* Count all monsters killed in this life */
395+ MONSTER_NUMBER r_tkills; /* Count monsters killed in all lives */
396+
397+ byte r_wake; /* Number of times woken up (?) */
398+ byte r_ignore; /* Number of times ignored (?) */
399+
400+ byte r_xtra1; /* Something (unused) */
401+ byte r_xtra2; /* Something (unused) */
402+
403+ ITEM_NUMBER r_drop_gold; /*!< これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once */
404+ ITEM_NUMBER r_drop_item; /*!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once */
405+
406+ byte r_cast_spell; /* Max number of other spells seen */
407+
408+ byte r_blows[4]; /* Number of times each blow type was seen */
409+
410+ u32b r_flags1; /* Observed racial flags */
411+ u32b r_flags2; /* Observed racial flags */
412+ u32b r_flags3; /* Observed racial flags */
413+ u32b r_flags4; /* Observed racial flags */
414+ u32b r_flags5; /* Observed racial flags */
415+ u32b r_flags6; /* Observed racial flags */
416+ /* u32b r_flags7; */ /* Observed racial flags */
417+ u32b r_flagsr; /* Observed racial resistance flags */
418+};
419+
420+
421+/*
422+ * The monster race arrays
423+ */
424+monster_race *r_info;
425+char *r_name;
426+char *r_text;
\ No newline at end of file
--- a/src/object-flavor.c
+++ b/src/object-flavor.c
@@ -23,6 +23,7 @@
2323 #include "snipe.h"
2424 #include "files.h"
2525 #include "world.h"
26+#include "monsterrace.h"
2627
2728 /*!
2829 * @brief 最初から簡易な名称が明らかになるベースアイテムの判定。 / Certain items, if aware, are known instantly
--- a/src/player-status.c
+++ b/src/player-status.c
@@ -25,6 +25,7 @@
2525 #include "dungeon.h"
2626 #include "player-class.h"
2727 #include "objectkind.h"
28+#include "monsterrace.h"
2829
2930 /*!
3031 * @var horror_desc
--- a/src/realm-hex.c
+++ b/src/realm-hex.c
@@ -31,6 +31,7 @@
3131 #include "player-skill.h"
3232 #include "realm-hex.h"
3333 #include "grid.h"
34+#include "monsterrace.h"
3435
3536 #define MAX_KEEP 4 /*!<呪術の最大詠唱数 */
3637
--- a/src/rumor.c
+++ b/src/rumor.c
@@ -5,6 +5,7 @@
55 #include "object-flavor.h"
66 #include "artifact.h"
77 #include "dungeon.h"
8+#include "monsterrace.h"
89
910 /*
1011 * Display a rumor and apply its effects
--- a/src/save.c
+++ b/src/save.c
@@ -25,6 +25,7 @@
2525 #include "files.h"
2626 #include "world.h"
2727 #include "objectkind.h"
28+#include "monsterrace.h"
2829
2930
3031 /*
--- a/src/snipe.c
+++ b/src/snipe.c
@@ -12,6 +12,7 @@
1212 #include "player-status.h"
1313 #include "cmd-basic.h"
1414 #include "snipe.h"
15+#include "monsterrace.h"
1516
1617 #define MAX_SNIPE_POWERS 16
1718
--- a/src/sort.c
+++ b/src/sort.c
@@ -3,6 +3,7 @@
33 #include "floor.h"
44 #include "quest.h"
55 #include "artifact.h"
6+#include "monsterrace.h"
67
78 /*
89 * Angband sorting algorithm -- quick sort in place
--- a/src/spells2.c
+++ b/src/spells2.c
@@ -44,6 +44,7 @@
4444 #include "feature.h"
4545 #include "view-mainwindow.h"
4646 #include "objectkind.h"
47+#include "monsterrace.h"
4748
4849 /*!
4950 * @brief プレイヤー周辺の地形を感知する
--- a/src/types.h
+++ b/src/types.h
@@ -114,423 +114,6 @@ struct mbe_info_type
114114
115115
116116 /*
117- * Monster "race" information, including racial memories
118- *
119- * Note that "d_attr" and "d_char" are used for MORE than "visual" stuff.
120- *
121- * Note that "x_attr" and "x_char" are used ONLY for "visual" stuff.
122- *
123- * Note that "cur_num" (and "max_num") represent the number of monsters
124- * of the given race currently on (and allowed on) the current level.
125- * This information yields the "dead" flag for Unique monsters.
126- *
127- * Note that "max_num" is reset when a new player is created.
128- * Note that "cur_num" is reset when a new level is created.
129- *
130- * Note that several of these fields, related to "recall", can be
131- * scrapped if space becomes an issue, resulting in less "complete"
132- * monster recall (no knowledge of spells, etc). All of the "recall"
133- * fields have a special prefix to aid in searching for them.
134- */
135-
136-
137-typedef struct monster_race monster_race;
138-
139-struct monster_race
140-{
141- STR_OFFSET name; /*!< 名前データのオフセット(日本語) / Name offset(Japanese) */
142-#ifdef JP
143- STR_OFFSET E_name; /*!< 名前データのオフセット(英語) / Name offset(English) */
144-#endif
145- STR_OFFSET text; /*!< 思い出テキストのオフセット / Lore text offset */
146-
147- DICE_NUMBER hdice; /*!< HPのダイス数 / Creatures hit dice count */
148- DICE_SID hside; /*!< HPのダイス面数 / Creatures hit dice sides */
149-
150- ARMOUR_CLASS ac; /*!< アーマークラス / Armour Class */
151-
152- SLEEP_DEGREE sleep; /*!< 睡眠値 / Inactive counter (base) */
153- POSITION aaf; /*!< 感知範囲(1-100スクエア) / Area affect radius (1-100) */
154- SPEED speed; /*!< 加速(110で+0) / Speed (normally 110) */
155-
156- EXP mexp; /*!< 殺害時基本経験値 / Exp value for kill */
157-
158- BIT_FLAGS16 extra; /*!< 未使用 / Unused (for now) */
159-
160- RARITY freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */
161-
162- BIT_FLAGS flags1; /* Flags 1 (general) */
163- #define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */
164- #define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */
165- #define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */
166- #define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */
167- #define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */
168- #define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */
169- #define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */
170- #define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
171- #define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
172- #define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
173- #define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
174- #define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */
175- #define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
176- #define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
177- #define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */
178- #define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */
179- #define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
180- #define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */
181- #define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
182- #define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
183- #define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */
184- #define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */
185- #define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */
186- #define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */
187- #define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */
188- #define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */
189- #define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */
190- #define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */
191- #define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */
192- #define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */
193- #define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */
194- #define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */
195-
196- BIT_FLAGS flags2; /* Flags 2 (abilities) */
197- #define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
198- #define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */
199- #define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */
200- #define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */
201- #define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */
202- #define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */
203- #define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */
204- #define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */
205- #define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */
206- #define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */
207- #define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */
208- #define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */
209- #define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */
210- #define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */
211- #define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */
212- #define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */
213- #define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
214- #define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
215- #define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
216- #define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
217- #define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
218- #define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
219- #define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
220- #define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
221- #define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */
222- #define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */
223- #define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */
224- #define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */
225- #define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */
226- #define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */
227- #define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */
228- #define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
229-
230- BIT_FLAGS flags3; /* Flags 3 (race/resist) */
231- #define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */
232- #define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */
233- #define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */
234- #define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */
235- #define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */
236- #define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */
237- #define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */
238- #define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */
239- #define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */
240- #define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */
241- #define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */
242- #define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */
243- #define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */
244- #define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */
245- #define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */
246- #define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */
247- #define RF3_ANGEL 0x00010000 /*!< モンスター特性: 天使 / ANGEL */
248- #define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */
249- #define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */
250- #define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */
251- #define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */
252- #define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */
253- #define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */
254- #define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */
255- #define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */
256- #define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */
257- #define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */
258- #define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */
259- #define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */
260- #define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */
261- #define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */
262- #define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */
263-
264- BIT_FLAGS flags4; /* Flags 4 (inate/breath) */
265- #define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */
266- #define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */
267- #define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */
268- #define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */
269- #define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */
270- #define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */
271- #define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */
272- #define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */
273- #define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */
274- #define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */
275- #define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */
276- #define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */
277- #define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */
278- #define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */
279- #define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */
280- #define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */
281- #define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */
282- #define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */
283- #define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */
284- #define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */
285- #define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */
286- #define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */
287- #define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */
288- #define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */
289- #define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */
290- #define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */
291- #define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */
292- #define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */
293- #define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */
294- #define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */
295- #define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */
296- #define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */
297-
298- BIT_FLAGS flags7; /* Flags 7 (movement related abilities) */
299- #define RF7_AQUATIC 0x00000001 /* Aquatic monster */
300- #define RF7_CAN_SWIM 0x00000002 /* Monster can swim */
301- #define RF7_CAN_FLY 0x00000004 /* Monster can fly */
302- #define RF7_FRIENDLY 0x00000008 /* Monster is friendly */
303- #define RF7_NAZGUL 0x00000010 /* Is a "Nazgul" unique */
304- #define RF7_UNIQUE2 0x00000020 /* Fake unique */
305- #define RF7_RIDING 0x00000040 /* Good for riding */
306- #define RF7_KAGE 0x00000080 /* Is kage */
307- #define RF7_HAS_LITE_1 0x00000100 /* Monster carries light */
308- #define RF7_SELF_LITE_1 0x00000200 /* Monster lights itself */
309- #define RF7_HAS_LITE_2 0x00000400 /* Monster carries light */
310- #define RF7_SELF_LITE_2 0x00000800 /* Monster lights itself */
311- #define RF7_GUARDIAN 0x00001000 /* Guardian of a dungeon */
312- #define RF7_CHAMELEON 0x00002000 /* Chameleon can change */
313- #define RF7_XXXX4XXX 0x00004000 /* Now Empty */
314- #define RF7_TANUKI 0x00008000 /* Tanuki disguise */
315- #define RF7_HAS_DARK_1 0x00010000 /* Monster carries darkness */
316- #define RF7_SELF_DARK_1 0x00020000 /* Monster darkens itself */
317- #define RF7_HAS_DARK_2 0x00040000 /* Monster carries darkness */
318- #define RF7_SELF_DARK_2 0x00080000 /* Monster darkens itself */
319-
320- BIT_FLAGS flags8; /* Flags 8 (wilderness info) */
321- #define RF8_WILD_ONLY 0x00000001
322- #define RF8_WILD_TOWN 0x00000002
323- #define RF8_XXX8X02 0x00000004
324- #define RF8_WILD_SHORE 0x00000008
325- #define RF8_WILD_OCEAN 0x00000010
326- #define RF8_WILD_WASTE 0x00000020
327- #define RF8_WILD_WOOD 0x00000040
328- #define RF8_WILD_VOLCANO 0x00000080
329- #define RF8_XXX8X08 0x00000100
330- #define RF8_WILD_MOUNTAIN 0x00000200
331- #define RF8_WILD_GRASS 0x00000400
332- #define RF8_WILD_ALL 0x80000000
333-
334- BIT_FLAGS flags9; /* Flags 9 (drops info) */
335- #define RF9_DROP_CORPSE 0x00000001
336- #define RF9_DROP_SKELETON 0x00000002
337- #define RF9_EAT_BLIND 0x00000004
338- #define RF9_EAT_CONF 0x00000008
339- #define RF9_EAT_MANA 0x00000010
340- #define RF9_EAT_NEXUS 0x00000020
341- #define RF9_EAT_SLEEP 0x00000040
342- #define RF9_EAT_BERSERKER 0x00000080
343- #define RF9_EAT_ACIDIC 0x00000100
344- #define RF9_EAT_SPEED 0x00000200
345- #define RF9_EAT_CURE 0x00000400
346- #define RF9_EAT_FIRE_RES 0x00000800
347- #define RF9_EAT_COLD_RES 0x00001000
348- #define RF9_EAT_ACID_RES 0x00002000
349- #define RF9_EAT_ELEC_RES 0x00004000
350- #define RF9_EAT_POIS_RES 0x00008000
351- #define RF9_EAT_INSANITY 0x00010000
352- #define RF9_EAT_DRAIN_EXP 0x00020000
353- #define RF9_EAT_POISONOUS 0x00040000
354- #define RF9_EAT_GIVE_STR 0x00080000
355- #define RF9_EAT_GIVE_INT 0x00100000
356- #define RF9_EAT_GIVE_WIS 0x00200000
357- #define RF9_EAT_GIVE_DEX 0x00400000
358- #define RF9_EAT_GIVE_CON 0x00800000
359- #define RF9_EAT_GIVE_CHR 0x01000000
360- #define RF9_EAT_LOSE_STR 0x02000000
361- #define RF9_EAT_LOSE_INT 0x04000000
362- #define RF9_EAT_LOSE_WIS 0x08000000
363- #define RF9_EAT_LOSE_DEX 0x10000000
364- #define RF9_EAT_LOSE_CON 0x20000000
365- #define RF9_EAT_LOSE_CHR 0x40000000
366- #define RF9_EAT_DRAIN_MANA 0x80000000
367-
368- BIT_FLAGS flagsr; /* Flags R (resistances info) */
369- #define RFR_IM_ACID 0x00000001 /* Immunity acid */
370- #define RFR_IM_ELEC 0x00000002 /* Immunity elec */
371- #define RFR_IM_FIRE 0x00000004 /* Immunity fire */
372- #define RFR_IM_COLD 0x00000008 /* Immunity cold */
373- #define RFR_IM_POIS 0x00000010 /* Immunity poison */
374- #define RFR_RES_LITE 0x00000020 /* Resist lite */
375- #define RFR_RES_DARK 0x00000040 /* Resist dark */
376- #define RFR_RES_NETH 0x00000080 /* Resist nether */
377- #define RFR_RES_WATE 0x00000100 /* Resist water */
378- #define RFR_RES_PLAS 0x00000200 /* Resist plasma */
379- #define RFR_RES_SHAR 0x00000400 /* Resist shards */
380- #define RFR_RES_SOUN 0x00000800 /* Resist sound */
381- #define RFR_RES_CHAO 0x00001000 /* Resist chaos */
382- #define RFR_RES_NEXU 0x00002000 /* Resist nexus */
383- #define RFR_RES_DISE 0x00004000 /* Resist disenchantment */
384- #define RFR_RES_WALL 0x00008000 /* Resist force */
385- #define RFR_RES_INER 0x00010000 /* Resist inertia */
386- #define RFR_RES_TIME 0x00020000 /* Resist time */
387- #define RFR_RES_GRAV 0x00040000 /* Resist gravity */
388- #define RFR_RES_ALL 0x00080000 /* Resist all */
389- #define RFR_RES_TELE 0x00100000 /* Resist teleportation */
390- #define RFR_XXX21 0x00200000
391- #define RFR_XXX22 0x00400000
392- #define RFR_XXX23 0x00800000
393- #define RFR_XXX24 0x01000000
394- #define RFR_XXX25 0x02000000
395- #define RFR_XXX26 0x04000000
396- #define RFR_XXX27 0x08000000
397- #define RFR_XXX28 0x10000000
398- #define RFR_XXX29 0x20000000
399- #define RFR_XXX30 0x40000000
400- #define RFR_XXX31 0x80000000
401-
402- BIT_FLAGS a_ability_flags1; /* Activate Ability Flags 5 (normal spells) */
403- #define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */
404- #define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */
405- #define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */
406- #define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */
407- #define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */
408- #define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */
409- #define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */
410- #define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */
411- #define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */
412- #define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */
413- #define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */
414- #define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */
415- #define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */
416- #define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */
417- #define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */
418- #define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */
419- #define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */
420- #define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */
421- #define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */
422- #define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */
423- #define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */
424- #define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */
425- #define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */
426- #define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */
427- #define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */
428- #define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */
429- #define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */
430- #define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */
431- #define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */
432- #define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */
433- #define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */
434- #define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */
435-
436- BIT_FLAGS a_ability_flags2; /* Activate Ability Flags 6 (special spells) */
437- #define RF6_HASTE 0x00000001 /* Speed self */
438- #define RF6_HAND_DOOM 0x00000002 /* Hand of Doom */
439- #define RF6_HEAL 0x00000004 /* Heal self */
440- #define RF6_INVULNER 0x00000008 /* INVULNERABILITY! */
441- #define RF6_BLINK 0x00000010 /* Teleport Short */
442- #define RF6_TPORT 0x00000020 /* Teleport Long */
443- #define RF6_WORLD 0x00000040 /* world */
444- #define RF6_SPECIAL 0x00000080 /* Special Attack */
445- #define RF6_TELE_TO 0x00000100 /* Move player to monster */
446- #define RF6_TELE_AWAY 0x00000200 /* Move player far away */
447- #define RF6_TELE_LEVEL 0x00000400 /* Move player vertically */
448- #define RF6_PSY_SPEAR 0x00000800 /* Psyco-spear */
449- #define RF6_DARKNESS 0x00001000 /* Create Darkness */
450- #define RF6_TRAPS 0x00002000 /* Create Traps */
451- #define RF6_FORGET 0x00004000 /* Cause amnesia */
452- #define RF6_RAISE_DEAD 0x00008000 /* Raise Dead */
453- #define RF6_S_KIN 0x00010000 /* Summon "kin" */
454- #define RF6_S_CYBER 0x00020000 /* Summon Cyberdemons! */
455- #define RF6_S_MONSTER 0x00040000 /* Summon Monster */
456- #define RF6_S_MONSTERS 0x00080000 /* Summon Monsters */
457- #define RF6_S_ANT 0x00100000 /* Summon Ants */
458- #define RF6_S_SPIDER 0x00200000 /* Summon Spiders */
459- #define RF6_S_HOUND 0x00400000 /* Summon Hounds */
460- #define RF6_S_HYDRA 0x00800000 /* Summon Hydras */
461- #define RF6_S_ANGEL 0x01000000 /* Summon Angel */
462- #define RF6_S_DEMON 0x02000000 /* Summon Demon */
463- #define RF6_S_UNDEAD 0x04000000 /* Summon Undead */
464- #define RF6_S_DRAGON 0x08000000 /* Summon Dragon */
465- #define RF6_S_HI_UNDEAD 0x10000000 /* Summon Greater Undead */
466- #define RF6_S_HI_DRAGON 0x20000000 /* Summon Ancient Dragon */
467- #define RF6_S_AMBERITES 0x40000000 /* Summon Amberites */
468- #define RF6_S_UNIQUE 0x80000000 /* Summon Unique Monster */
469-
470- BIT_FLAGS a_ability_flags3; /* Activate Ability Flags 7 (implementing) */
471- BIT_FLAGS a_ability_flags4; /* Activate Ability Flags 8 (implementing) */
472-
473- monster_blow blow[4]; /* Up to four blows per round */
474- MONRACE_IDX reinforce_id[6];
475- DICE_NUMBER reinforce_dd[6];
476- DICE_SID reinforce_ds[6];
477-
478- ARTIFACT_IDX artifact_id[4]; /* 特定アーティファクトドロップID */
479- RARITY artifact_rarity[4]; /* 特定アーティファクトレア度 */
480- PERCENTAGE artifact_percent[4]; /* 特定アーティファクトドロップ率 */
481-
482- PERCENTAGE arena_ratio; /* アリーナの評価修正値(%基準 / 0=100%) / Arena */
483-
484- MONRACE_IDX next_r_idx;
485- EXP next_exp;
486-
487- DEPTH level; /* Level of creature */
488- RARITY rarity; /* Rarity of creature */
489-
490- TERM_COLOR d_attr; /* Default monster attribute */
491- SYMBOL_CODE d_char; /* Default monster character */
492-
493- TERM_COLOR x_attr; /* Desired monster attribute */
494- SYMBOL_CODE x_char; /* Desired monster character */
495-
496-
497- MONSTER_NUMBER max_num; /* Maximum population allowed per level */
498- MONSTER_NUMBER cur_num; /* Monster population on current level */
499-
500- FLOOR_IDX floor_id; /* Location of unique monster */
501-
502-
503- MONSTER_NUMBER r_sights; /* Count sightings of this monster */
504- MONSTER_NUMBER r_deaths; /* Count deaths from this monster */
505-
506- MONSTER_NUMBER r_pkills; /* Count visible monsters killed in this life */
507- MONSTER_NUMBER r_akills; /* Count all monsters killed in this life */
508- MONSTER_NUMBER r_tkills; /* Count monsters killed in all lives */
509-
510- byte r_wake; /* Number of times woken up (?) */
511- byte r_ignore; /* Number of times ignored (?) */
512-
513- byte r_xtra1; /* Something (unused) */
514- byte r_xtra2; /* Something (unused) */
515-
516- ITEM_NUMBER r_drop_gold; /*!< これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once */
517- ITEM_NUMBER r_drop_item; /*!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once */
518-
519- byte r_cast_spell; /* Max number of other spells seen */
520-
521- byte r_blows[4]; /* Number of times each blow type was seen */
522-
523- u32b r_flags1; /* Observed racial flags */
524- u32b r_flags2; /* Observed racial flags */
525- u32b r_flags3; /* Observed racial flags */
526- u32b r_flags4; /* Observed racial flags */
527- u32b r_flags5; /* Observed racial flags */
528- u32b r_flags6; /* Observed racial flags */
529- /* u32b r_flags7; */ /* Observed racial flags */
530- u32b r_flagsr; /* Observed racial resistance flags */
531-};
532-
533-/*
534117 * Object information, for a specific object.
535118 *
536119 * Note that a "discount" on an item is permanent and never goes away.
--- a/src/variable.c
+++ b/src/variable.c
@@ -508,14 +508,6 @@ ego_item_type *e_info;
508508 char *e_name;
509509 char *e_text;
510510
511-
512-/*
513- * The monster race arrays
514- */
515-monster_race *r_info;
516-char *r_name;
517-char *r_text;
518-
519511 concptr ANGBAND_SYS = "xxx"; //!< Hack -- The special Angband "System Suffix" This variable is used to choose an appropriate "pref-xxx" file
520512
521513
Show on old repository browser