• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

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


Commit MetaInfo

Revision054051c17153e80a755807f8da9a944307ff9735 (tree)
Time2019-05-01 13:47:03
Authordeskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #37353 monster_type 構造体を monster.h へ移動.

Change Summary

Incremental Difference

--- a/src/artifact.c
+++ b/src/artifact.c
@@ -26,6 +26,7 @@
2626 #include "spells-object.h"
2727 #include "files.h"
2828 #include "grid.h"
29+#include "monster.h"
2930
3031 /*
3132 * The artifact arrays
--- 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 "monster.h"
3031 #include "monsterrace.h"
3132
3233 #define MAX_LINELEN 1024
--- a/src/cmd-basic.c
+++ b/src/cmd-basic.c
@@ -22,6 +22,7 @@
2222 #include "spells.h"
2323 #include "spells-summon.h"
2424 #include "spells-status.h"
25+#include "monster.h"
2526 #include "monster-status.h"
2627 #include "quest.h"
2728 #include "artifact.h"
--- 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 "monster.h"
1819 #include "monsterrace.h"
1920
2021 /*
--- a/src/monster.h
+++ b/src/monster.h
@@ -1,6 +1,102 @@
11 #pragma once
22 #include "monsterrace.h"
33
4+/*
5+ * Monster information, for a specific monster.
6+ * Note: fy, fx constrain dungeon size to 256x256
7+ * The "hold_o_idx" field points to the first object of a stack
8+ * of objects (if any) being carried by the monster (see above).
9+ */
10+
11+typedef struct monster_type monster_type;
12+
13+struct monster_type
14+{
15+ MONRACE_IDX r_idx; /* Monster race index 0 = dead. */
16+ MONRACE_IDX ap_r_idx; /* Monster race appearance index */
17+ byte sub_align; /* Sub-alignment for a neutral monster */
18+
19+ POSITION fy; /* Y location on map */
20+ POSITION fx; /* X location on map */
21+
22+ HIT_POINT hp; /* Current Hit points */
23+ HIT_POINT maxhp; /* Max Hit points */
24+ HIT_POINT max_maxhp; /* Max Max Hit points */
25+ HIT_POINT dealt_damage; /* Sum of damages dealt by player */
26+
27+ TIME_EFFECT mtimed[MAX_MTIMED]; /* Timed status counter */
28+
29+ SPEED mspeed; /* Monster "speed" */
30+ ACTION_ENERGY energy_need; /* Monster "energy" */
31+
32+ POSITION cdis; /* Current dis from player */
33+
34+ BIT_FLAGS8 mflag; /* Extra monster flags */
35+#define MFLAG_VIEW 0x01 /* Monster is in line of sight */
36+#define MFLAG_LOS 0x02 /* Monster is marked for project_all_los() */
37+#define MFLAG_XXX2 0x04 /* (unused) */
38+#define MFLAG_ETF 0x08 /* Monster is entering the field. */
39+#define MFLAG_BORN 0x10 /* Monster is still being born */
40+#define MFLAG_NICE 0x20 /* Monster is still being nice */
41+
42+ BIT_FLAGS8 mflag2; /* Extra monster flags */
43+#define MFLAG2_KAGE 0x01 /* Monster is kage */
44+#define MFLAG2_NOPET 0x02 /* Cannot make monster pet */
45+#define MFLAG2_NOGENO 0x04 /* Cannot genocide */
46+#define MFLAG2_CHAMELEON 0x08 /* Monster is chameleon */
47+#define MFLAG2_NOFLOW 0x10 /* Monster is in no_flow_by_smell mode */
48+#define MFLAG2_SHOW 0x20 /* Monster is recently memorized */
49+#define MFLAG2_MARK 0x40 /* Monster is currently memorized */
50+
51+ bool ml; /* Monster is "visible" */
52+
53+ OBJECT_IDX hold_o_idx; /* Object being held (if any) */
54+
55+ POSITION target_y; /* Can attack !los player */
56+ POSITION target_x; /* Can attack !los player */
57+
58+ STR_OFFSET nickname; /* Monster's Nickname */
59+
60+ EXP exp;
61+
62+ /* TODO: クローン、ペット、有効化は意義が異なるので別変数に切り離すこと。save/loadのバージョン更新が面倒そうだけど */
63+ BIT_FLAGS smart; /*!< Field for "smart_learn" - Some bit-flags for the "smart" field */
64+#define SM_RES_ACID 0x00000001 /*!< モンスターの学習フラグ: プレイヤーに酸耐性あり */
65+#define SM_RES_ELEC 0x00000002 /*!< モンスターの学習フラグ: プレイヤーに電撃耐性あり */
66+#define SM_RES_FIRE 0x00000004 /*!< モンスターの学習フラグ: プレイヤーに火炎耐性あり */
67+#define SM_RES_COLD 0x00000008 /*!< モンスターの学習フラグ: プレイヤーに冷気耐性あり */
68+#define SM_RES_POIS 0x00000010 /*!< モンスターの学習フラグ: プレイヤーに毒耐性あり */
69+#define SM_RES_NETH 0x00000020 /*!< モンスターの学習フラグ: プレイヤーに地獄耐性あり */
70+#define SM_RES_LITE 0x00000040 /*!< モンスターの学習フラグ: プレイヤーに閃光耐性あり */
71+#define SM_RES_DARK 0x00000080 /*!< モンスターの学習フラグ: プレイヤーに暗黒耐性あり */
72+#define SM_RES_FEAR 0x00000100 /*!< モンスターの学習フラグ: プレイヤーに恐怖耐性あり */
73+#define SM_RES_CONF 0x00000200 /*!< モンスターの学習フラグ: プレイヤーに混乱耐性あり */
74+#define SM_RES_CHAOS 0x00000400 /*!< モンスターの学習フラグ: プレイヤーにカオス耐性あり */
75+#define SM_RES_DISEN 0x00000800 /*!< モンスターの学習フラグ: プレイヤーに劣化耐性あり */
76+#define SM_RES_BLIND 0x00001000 /*!< モンスターの学習フラグ: プレイヤーに盲目耐性あり */
77+#define SM_RES_NEXUS 0x00002000 /*!< モンスターの学習フラグ: プレイヤーに因果混乱耐性あり */
78+#define SM_RES_SOUND 0x00004000 /*!< モンスターの学習フラグ: プレイヤーに轟音耐性あり */
79+#define SM_RES_SHARD 0x00008000 /*!< モンスターの学習フラグ: プレイヤーに破片耐性あり */
80+#define SM_OPP_ACID 0x00010000 /*!< モンスターの学習フラグ: プレイヤーに二重酸耐性あり */
81+#define SM_OPP_ELEC 0x00020000 /*!< モンスターの学習フラグ: プレイヤーに二重電撃耐性あり */
82+#define SM_OPP_FIRE 0x00040000 /*!< モンスターの学習フラグ: プレイヤーに二重火炎耐性あり */
83+#define SM_OPP_COLD 0x00080000 /*!< モンスターの学習フラグ: プレイヤーに二重冷気耐性あり */
84+#define SM_OPP_POIS 0x00100000 /*!< モンスターの学習フラグ: プレイヤーに二重毒耐性あり */
85+#define SM_OPP_XXX1 0x00200000 /*!< 未使用 / (unused) */
86+#define SM_CLONED 0x00400000 /*!< クローンである / Cloned */
87+#define SM_PET 0x00800000 /*!< ペットである / Pet */
88+#define SM_IMM_ACID 0x01000000 /*!< モンスターの学習フラグ: プレイヤーに酸免疫あり */
89+#define SM_IMM_ELEC 0x02000000 /*!< モンスターの学習フラグ: プレイヤーに電撃免疫あり */
90+#define SM_IMM_FIRE 0x04000000 /*!< モンスターの学習フラグ: プレイヤーに火炎免疫あり */
91+#define SM_IMM_COLD 0x08000000 /*!< モンスターの学習フラグ: プレイヤーに冷気免疫あり */
92+#define SM_FRIENDLY 0x10000000 /*!< 友好的である / Friendly */
93+#define SM_IMM_REFLECT 0x20000000 /*!< モンスターの学習フラグ: プレイヤーに反射あり */
94+#define SM_IMM_FREE 0x40000000 /*!< モンスターの学習フラグ: プレイヤーに麻痺耐性あり */
95+#define SM_IMM_MANA 0x80000000 /*!< モンスターの学習フラグ: プレイヤーにMPがない */
96+
97+ MONSTER_IDX parent_m_idx;
98+};
99+
4100 #define MON_BEGGAR 12
5101 #define MON_LEPER 13
6102 #define MON_BLACK_MARKET 14
--- a/src/types.h
+++ b/src/types.h
@@ -201,105 +201,6 @@ struct object_type
201201
202202
203203 /*
204- * Monster information, for a specific monster.
205- * Note: fy, fx constrain dungeon size to 256x256
206- * The "hold_o_idx" field points to the first object of a stack
207- * of objects (if any) being carried by the monster (see above).
208- */
209-
210-typedef struct monster_type monster_type;
211-
212-struct monster_type
213-{
214- MONRACE_IDX r_idx; /* Monster race index 0 = dead. */
215- MONRACE_IDX ap_r_idx; /* Monster race appearance index */
216- byte sub_align; /* Sub-alignment for a neutral monster */
217-
218- POSITION fy; /* Y location on map */
219- POSITION fx; /* X location on map */
220-
221- HIT_POINT hp; /* Current Hit points */
222- HIT_POINT maxhp; /* Max Hit points */
223- HIT_POINT max_maxhp; /* Max Max Hit points */
224- HIT_POINT dealt_damage; /* Sum of damages dealt by player */
225-
226- TIME_EFFECT mtimed[MAX_MTIMED]; /* Timed status counter */
227-
228- SPEED mspeed; /* Monster "speed" */
229- ACTION_ENERGY energy_need; /* Monster "energy" */
230-
231- POSITION cdis; /* Current dis from player */
232-
233- BIT_FLAGS8 mflag; /* Extra monster flags */
234- #define MFLAG_VIEW 0x01 /* Monster is in line of sight */
235- #define MFLAG_LOS 0x02 /* Monster is marked for project_all_los() */
236- #define MFLAG_XXX2 0x04 /* (unused) */
237- #define MFLAG_ETF 0x08 /* Monster is entering the field. */
238- #define MFLAG_BORN 0x10 /* Monster is still being born */
239- #define MFLAG_NICE 0x20 /* Monster is still being nice */
240-
241- BIT_FLAGS8 mflag2; /* Extra monster flags */
242- #define MFLAG2_KAGE 0x01 /* Monster is kage */
243- #define MFLAG2_NOPET 0x02 /* Cannot make monster pet */
244- #define MFLAG2_NOGENO 0x04 /* Cannot genocide */
245- #define MFLAG2_CHAMELEON 0x08 /* Monster is chameleon */
246- #define MFLAG2_NOFLOW 0x10 /* Monster is in no_flow_by_smell mode */
247- #define MFLAG2_SHOW 0x20 /* Monster is recently memorized */
248- #define MFLAG2_MARK 0x40 /* Monster is currently memorized */
249-
250- bool ml; /* Monster is "visible" */
251-
252- OBJECT_IDX hold_o_idx; /* Object being held (if any) */
253-
254- POSITION target_y; /* Can attack !los player */
255- POSITION target_x; /* Can attack !los player */
256-
257- STR_OFFSET nickname; /* Monster's Nickname */
258-
259- EXP exp;
260-
261- /* TODO: クローン、ペット、有効化は意義が異なるので別変数に切り離すこと。save/loadのバージョン更新が面倒そうだけど */
262- BIT_FLAGS smart; /*!< Field for "smart_learn" - Some bit-flags for the "smart" field */
263- #define SM_RES_ACID 0x00000001 /*!< モンスターの学習フラグ: プレイヤーに酸耐性あり */
264- #define SM_RES_ELEC 0x00000002 /*!< モンスターの学習フラグ: プレイヤーに電撃耐性あり */
265- #define SM_RES_FIRE 0x00000004 /*!< モンスターの学習フラグ: プレイヤーに火炎耐性あり */
266- #define SM_RES_COLD 0x00000008 /*!< モンスターの学習フラグ: プレイヤーに冷気耐性あり */
267- #define SM_RES_POIS 0x00000010 /*!< モンスターの学習フラグ: プレイヤーに毒耐性あり */
268- #define SM_RES_NETH 0x00000020 /*!< モンスターの学習フラグ: プレイヤーに地獄耐性あり */
269- #define SM_RES_LITE 0x00000040 /*!< モンスターの学習フラグ: プレイヤーに閃光耐性あり */
270- #define SM_RES_DARK 0x00000080 /*!< モンスターの学習フラグ: プレイヤーに暗黒耐性あり */
271- #define SM_RES_FEAR 0x00000100 /*!< モンスターの学習フラグ: プレイヤーに恐怖耐性あり */
272- #define SM_RES_CONF 0x00000200 /*!< モンスターの学習フラグ: プレイヤーに混乱耐性あり */
273- #define SM_RES_CHAOS 0x00000400 /*!< モンスターの学習フラグ: プレイヤーにカオス耐性あり */
274- #define SM_RES_DISEN 0x00000800 /*!< モンスターの学習フラグ: プレイヤーに劣化耐性あり */
275- #define SM_RES_BLIND 0x00001000 /*!< モンスターの学習フラグ: プレイヤーに盲目耐性あり */
276- #define SM_RES_NEXUS 0x00002000 /*!< モンスターの学習フラグ: プレイヤーに因果混乱耐性あり */
277- #define SM_RES_SOUND 0x00004000 /*!< モンスターの学習フラグ: プレイヤーに轟音耐性あり */
278- #define SM_RES_SHARD 0x00008000 /*!< モンスターの学習フラグ: プレイヤーに破片耐性あり */
279- #define SM_OPP_ACID 0x00010000 /*!< モンスターの学習フラグ: プレイヤーに二重酸耐性あり */
280- #define SM_OPP_ELEC 0x00020000 /*!< モンスターの学習フラグ: プレイヤーに二重電撃耐性あり */
281- #define SM_OPP_FIRE 0x00040000 /*!< モンスターの学習フラグ: プレイヤーに二重火炎耐性あり */
282- #define SM_OPP_COLD 0x00080000 /*!< モンスターの学習フラグ: プレイヤーに二重冷気耐性あり */
283- #define SM_OPP_POIS 0x00100000 /*!< モンスターの学習フラグ: プレイヤーに二重毒耐性あり */
284- #define SM_OPP_XXX1 0x00200000 /*!< 未使用 / (unused) */
285- #define SM_CLONED 0x00400000 /*!< クローンである / Cloned */
286- #define SM_PET 0x00800000 /*!< ペットである / Pet */
287- #define SM_IMM_ACID 0x01000000 /*!< モンスターの学習フラグ: プレイヤーに酸免疫あり */
288- #define SM_IMM_ELEC 0x02000000 /*!< モンスターの学習フラグ: プレイヤーに電撃免疫あり */
289- #define SM_IMM_FIRE 0x04000000 /*!< モンスターの学習フラグ: プレイヤーに火炎免疫あり */
290- #define SM_IMM_COLD 0x08000000 /*!< モンスターの学習フラグ: プレイヤーに冷気免疫あり */
291- #define SM_FRIENDLY 0x10000000 /*!< 友好的である / Friendly */
292- #define SM_IMM_REFLECT 0x20000000 /*!< モンスターの学習フラグ: プレイヤーに反射あり */
293- #define SM_IMM_FREE 0x40000000 /*!< モンスターの学習フラグ: プレイヤーに麻痺耐性あり */
294- #define SM_IMM_MANA 0x80000000 /*!< モンスターの学習フラグ: プレイヤーにMPがない */
295-
296- MONSTER_IDX parent_m_idx;
297-};
298-
299-
300-
301-
302-/*
303204 * An entry for the object/monster allocation functions
304205 *
305206 * Pass 1 is determined from allocation information
Show on old repository browser