• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

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


Commit MetaInfo

Revision85dfbad613131b9415e73a05a64847438fc36a8b (tree)
Time2019-04-11 07:56:47
Authordeskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #37353 ATTACK_* を player_type 構造体に移動。

Change Summary

Incremental Difference

--- a/src/defines.h
+++ b/src/defines.h
@@ -375,6 +375,25 @@
375375 #define PY_MAX_LEVEL 50 /*!< プレイヤーレベルの最大値 / Maximum level */
376376
377377 /*
378+ * Player "food" crucial values
379+ */
380+#define PY_FOOD_MAX 15000 /*!< 食べ過ぎ~満腹の閾値 / Food value (Bloated) */
381+#define PY_FOOD_FULL 10000 /*!< 満腹~平常の閾値 / Food value (Normal) */
382+#define PY_FOOD_ALERT 2000 /*!< 平常~空腹の閾値 / Food value (Hungry) */
383+#define PY_FOOD_WEAK 1000 /*!< 空腹~衰弱の閾値 / Food value (Weak) */
384+#define PY_FOOD_FAINT 500 /*!< 衰弱~衰弱(赤表示/麻痺)の閾値 / Food value (Fainting) */
385+#define PY_FOOD_STARVE 100 /*!< 衰弱(赤表示/麻痺)~飢餓ダメージの閾値 / Food value (Starving) */
386+
387+/*
388+ * Player regeneration constants
389+ */
390+#define PY_REGEN_NORMAL 197 /* Regen factor*2^16 when full */
391+#define PY_REGEN_WEAK 98 /* Regen factor*2^16 when weak */
392+#define PY_REGEN_FAINT 33 /* Regen factor*2^16 when fainting */
393+#define PY_REGEN_HPBASE 1442 /* Min amount hp regen*2^16 */
394+#define PY_REGEN_MNBASE 524 /* Min amount mana regen*2^16 */
395+
396+/*
378397 * 職業ごとの選択可能な魔法領域現在の所 bitrh.cとtables.cでのみ使用。
379398 * Possible realms that can be chosen currently used only by birth.c and tables.c
380399 */
@@ -797,6 +816,21 @@
797816 feat_door[(DOOR_TYPE)].jammed[randint0(feat_door[(DOOR_TYPE)].num_jammed)] : feat_none)
798817
799818
819+
820+
821+/* Types of pattern tiles */
822+#define NOT_PATTERN_TILE -1
823+#define PATTERN_TILE_START 0
824+#define PATTERN_TILE_1 1
825+#define PATTERN_TILE_2 2
826+#define PATTERN_TILE_3 3
827+#define PATTERN_TILE_4 4
828+#define PATTERN_TILE_END 5
829+#define PATTERN_TILE_OLD 6
830+#define PATTERN_TILE_TELEPORT 7
831+#define PATTERN_TILE_WRECKED 8
832+
833+
800834 /* Types of conversions */
801835 #define CONVERT_TYPE_FLOOR 0
802836 #define CONVERT_TYPE_WALL 1
@@ -1915,25 +1949,6 @@
19151949
19161950
19171951 /*
1918- * p_ptr->special_attackによるプレイヤーの攻撃状態の定義 / Bit flags for the "p_ptr->special_attack" variable. -LM-
1919- *
1920- * Note: The elemental and poison attacks should be managed using the
1921- * function "set_ele_attack", in spell2.c. This provides for timeouts and
1922- * prevents the player from getting more than one at a time.
1923- */
1924-#define ATTACK_CONFUSE 0x00000001 /*!< プレイヤーのステータス:混乱打撃 */
1925-#define ATTACK_XXX1 0x00000002 /*!< プレイヤーのステータス:未使用1 */
1926-#define ATTACK_XXX2 0x00000004 /*!< プレイヤーのステータス:未使用2 */
1927-#define ATTACK_XXX3 0x00000008 /*!< プレイヤーのステータス:未使用3 */
1928-#define ATTACK_ACID 0x00000010 /*!< プレイヤーのステータス:魔法剣/溶解 */
1929-#define ATTACK_ELEC 0x00000020 /*!< プレイヤーのステータス:魔法剣/電撃 */
1930-#define ATTACK_FIRE 0x00000040 /*!< プレイヤーのステータス:魔法剣/火炎 */
1931-#define ATTACK_COLD 0x00000080 /*!< プレイヤーのステータス:魔法剣/冷凍 */
1932-#define ATTACK_POIS 0x00000100 /*!< プレイヤーのステータス:魔法剣/毒殺 */
1933-#define ATTACK_HOLY 0x00000200 /*!< プレイヤーのステータス:対邪?(未使用) */
1934-#define ATTACK_SUIKEN 0x00000400 /*!< プレイヤーのステータス:酔拳 */
1935-
1936-/*
19371952 * p_ptr->special_defenseによるプレイヤーの防御状態の定義 / Bit flags for the "p_ptr->special_defense" variable. -LM-
19381953 */
19391954 #define DEFENSE_ACID 0x00000001 /*!< プレイヤーのステータス:酸免疫 */
@@ -2499,11 +2514,412 @@
24992514 #define AM_CURSED 0x00000010 /* Generate cursed/worthless items */
25002515
25012516
2517+/*** Monster blow constants ***/
2518+
2519+
2520+/*!
2521+ * @note モンスターの打撃方法 / New monster blow methods
2522+ * 打撃の種別に応じて傷と朦朧が発生するかがコメントの通りに決まる
2523+ */
2524+#define RBM_HIT 1 /*!< モンスターの攻撃種別:殴る(傷/朦朧が半々) */
2525+#define RBM_TOUCH 2 /*!< モンスターの攻撃種別:触る */
2526+#define RBM_PUNCH 3 /*!< モンスターの攻撃種別:パンチする(朦朧) */
2527+#define RBM_KICK 4 /*!< モンスターの攻撃種別:蹴る(朦朧) */
2528+#define RBM_CLAW 5 /*!< モンスターの攻撃種別:ひっかく(傷) */
2529+#define RBM_BITE 6 /*!< モンスターの攻撃種別:噛む(傷) */
2530+#define RBM_STING 7 /*!< モンスターの攻撃種別:刺す */
2531+#define RBM_SLASH 8 /*!< モンスターの攻撃種別:斬る(傷) */
2532+#define RBM_BUTT 9 /*!< モンスターの攻撃種別:角で突く(朦朧) */
2533+#define RBM_CRUSH 10 /*!< モンスターの攻撃種別:体当たりする(朦朧) */
2534+#define RBM_ENGULF 11 /*!< モンスターの攻撃種別:飲み込む */
2535+#define RBM_CHARGE 12 /*!< モンスターの攻撃種別:請求書を寄越す */
2536+#define RBM_CRAWL 13 /*!< モンスターの攻撃種別:体の上を這い回る */
2537+#define RBM_DROOL 14 /*!< モンスターの攻撃種別:よだれをたらす */
2538+#define RBM_SPIT 15 /*!< モンスターの攻撃種別:つばを吐く */
2539+#define RBM_EXPLODE 16 /*!< モンスターの攻撃種別:爆発する */
2540+#define RBM_GAZE 17 /*!< モンスターの攻撃種別:にらむ */
2541+#define RBM_WAIL 18 /*!< モンスターの攻撃種別:泣き叫ぶ */
2542+#define RBM_SPORE 19 /*!< モンスターの攻撃種別:胞子を飛ばす */
2543+#define RBM_XXX4 20 /*!< モンスターの攻撃種別:未定義 */
2544+#define RBM_BEG 21 /*!< モンスターの攻撃種別:金をせがむ */
2545+#define RBM_INSULT 22 /*!< モンスターの攻撃種別:侮辱する */
2546+#define RBM_MOAN 23 /*!< モンスターの攻撃種別:うめく */
2547+#define RBM_SHOW 24 /*!< モンスターの攻撃種別:歌う */
2548+#define RBM_SHOOT 25 /*!< モンスターの攻撃種別:射撃(非打撃) */
2549+
2550+
2551+/*!
2552+ * @note モンスターの攻撃効果 / New monster blow effects
2553+ */
2554+#define RBE_HURT 1 /*!< モンスターの攻撃効果: 攻撃する*/
2555+#define RBE_POISON 2 /*!< モンスターの攻撃効果: 毒をくらわす*/
2556+#define RBE_UN_BONUS 3 /*!< モンスターの攻撃効果: 劣化させる*/
2557+#define RBE_UN_POWER 4 /*!< モンスターの攻撃効果: 充填魔力を吸収する*/
2558+#define RBE_EAT_GOLD 5 /*!< モンスターの攻撃効果: 金を盗む*/
2559+#define RBE_EAT_ITEM 6 /*!< モンスターの攻撃効果: アイテムを盗む*/
2560+#define RBE_EAT_FOOD 7 /*!< モンスターの攻撃効果: あなたの食糧を食べる*/
2561+#define RBE_EAT_LITE 8 /*!< モンスターの攻撃効果: 明かりを吸収する*/
2562+#define RBE_ACID 9 /*!< モンスターの攻撃効果: 酸を飛ばす*/
2563+#define RBE_ELEC 10 /*!< モンスターの攻撃効果: 感電させる*/
2564+#define RBE_FIRE 11 /*!< モンスターの攻撃効果: 燃やす*/
2565+#define RBE_COLD 12 /*!< モンスターの攻撃効果: 凍らせる*/
2566+#define RBE_BLIND 13 /*!< モンスターの攻撃効果: 盲目にする*/
2567+#define RBE_CONFUSE 14 /*!< モンスターの攻撃効果: 混乱させる*/
2568+#define RBE_TERRIFY 15 /*!< モンスターの攻撃効果: 恐怖させる*/
2569+#define RBE_PARALYZE 16 /*!< モンスターの攻撃効果: 麻痺させる*/
2570+#define RBE_LOSE_STR 17 /*!< モンスターの攻撃効果: 腕力を減少させる*/
2571+#define RBE_LOSE_INT 18 /*!< モンスターの攻撃効果: 知能を減少させる*/
2572+#define RBE_LOSE_WIS 19 /*!< モンスターの攻撃効果: 賢さを減少させる*/
2573+#define RBE_LOSE_DEX 20 /*!< モンスターの攻撃効果: 器用さを減少させる*/
2574+#define RBE_LOSE_CON 21 /*!< モンスターの攻撃効果: 耐久力を減少させる*/
2575+#define RBE_LOSE_CHR 22 /*!< モンスターの攻撃効果: 魅力を減少させる*/
2576+#define RBE_LOSE_ALL 23 /*!< モンスターの攻撃効果: 全ステータスを減少させる*/
2577+#define RBE_SHATTER 24 /*!< モンスターの攻撃効果: 粉砕する*/
2578+#define RBE_EXP_10 25 /*!< モンスターの攻撃効果: 経験値を減少(10d6+)させる*/
2579+#define RBE_EXP_20 26 /*!< モンスターの攻撃効果: 経験値を減少(20d6+)させる*/
2580+#define RBE_EXP_40 27 /*!< モンスターの攻撃効果: 経験値を減少(40d6+)させる*/
2581+#define RBE_EXP_80 28 /*!< モンスターの攻撃効果: 経験値を減少(80d6+)させる*/
2582+#define RBE_DISEASE 29 /*!< モンスターの攻撃効果: 病気にする*/
2583+#define RBE_TIME 30 /*!< モンスターの攻撃効果: 時間を逆戻りさせる*/
2584+#define RBE_DR_LIFE 31 /*!< モンスターの攻撃効果: 生命力を吸収する*/
2585+#define RBE_DR_MANA 32 /*!< モンスターの攻撃効果: 魔力を奪う*/
2586+#define RBE_SUPERHURT 33 /*!< モンスターの攻撃効果: 強力に攻撃する*/
2587+#define RBE_INERTIA 34 /*!< モンスターの攻撃効果: 減速させる*/
2588+#define RBE_STUN 35 /*!< モンスターの攻撃効果: 朦朧とさせる*/
25022589
25032590
25042591 /*** Monster flag values (hard-coded) ***/
25052592
25062593
2594+/*
2595+ * New monster race bit flags
2596+ */
2597+#define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */
2598+#define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */
2599+#define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */
2600+#define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */
2601+#define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */
2602+#define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */
2603+#define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */
2604+#define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
2605+#define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
2606+#define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
2607+#define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
2608+#define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */
2609+#define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
2610+#define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
2611+#define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */
2612+#define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */
2613+#define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
2614+#define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */
2615+#define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
2616+#define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
2617+#define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */
2618+#define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */
2619+#define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */
2620+#define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */
2621+#define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */
2622+#define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */
2623+#define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */
2624+#define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */
2625+#define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */
2626+#define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */
2627+#define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */
2628+#define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */
2629+
2630+/*
2631+ * New monster race bit flags
2632+ */
2633+#define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
2634+#define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */
2635+#define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */
2636+#define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */
2637+#define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */
2638+#define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */
2639+#define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */
2640+#define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */
2641+#define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */
2642+#define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */
2643+#define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */
2644+#define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */
2645+#define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */
2646+#define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */
2647+#define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */
2648+#define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */
2649+#define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
2650+#define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
2651+#define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
2652+#define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
2653+#define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
2654+#define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
2655+#define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
2656+#define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
2657+#define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */
2658+#define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */
2659+#define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */
2660+#define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */
2661+#define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */
2662+#define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */
2663+#define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */
2664+#define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
2665+
2666+/*
2667+ * New monster race bit flags
2668+ */
2669+#define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */
2670+#define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */
2671+#define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */
2672+#define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */
2673+#define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */
2674+#define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */
2675+#define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */
2676+#define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */
2677+#define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */
2678+#define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */
2679+#define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */
2680+#define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */
2681+#define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */
2682+#define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */
2683+#define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */
2684+#define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */
2685+#define RF3_ANGEL 0x00010000 /*!< モンスター特性: 天使 / ANGEL */
2686+#define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */
2687+#define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */
2688+#define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */
2689+#define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */
2690+#define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */
2691+#define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */
2692+#define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */
2693+#define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */
2694+#define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */
2695+#define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */
2696+#define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */
2697+#define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */
2698+#define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */
2699+#define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */
2700+#define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */
2701+
2702+/*
2703+ * New monster race bit flags
2704+ */
2705+#define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */
2706+#define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */
2707+#define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */
2708+#define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */
2709+#define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */
2710+#define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */
2711+#define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */
2712+#define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */
2713+#define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */
2714+#define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */
2715+#define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */
2716+#define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */
2717+#define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */
2718+#define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */
2719+#define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */
2720+#define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */
2721+#define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */
2722+#define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */
2723+#define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */
2724+#define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */
2725+#define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */
2726+#define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */
2727+#define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */
2728+#define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */
2729+#define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */
2730+#define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */
2731+#define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */
2732+#define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */
2733+#define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */
2734+#define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */
2735+#define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */
2736+#define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */
2737+
2738+/*
2739+ * New monster race bit flags
2740+ */
2741+#define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */
2742+#define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */
2743+#define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */
2744+#define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */
2745+#define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */
2746+#define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */
2747+#define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */
2748+#define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */
2749+#define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */
2750+#define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */
2751+#define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */
2752+#define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */
2753+#define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */
2754+#define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */
2755+#define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */
2756+#define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */
2757+#define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */
2758+#define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */
2759+#define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */
2760+#define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */
2761+#define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */
2762+#define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */
2763+#define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */
2764+#define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */
2765+#define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */
2766+#define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */
2767+#define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */
2768+#define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */
2769+#define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */
2770+#define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */
2771+#define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */
2772+#define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */
2773+
2774+/*
2775+ * New monster race bit flags
2776+ */
2777+#define RF6_HASTE 0x00000001 /* Speed self */
2778+#define RF6_HAND_DOOM 0x00000002 /* Hand of Doom */
2779+#define RF6_HEAL 0x00000004 /* Heal self */
2780+#define RF6_INVULNER 0x00000008 /* INVULNERABILITY! */
2781+#define RF6_BLINK 0x00000010 /* Teleport Short */
2782+#define RF6_TPORT 0x00000020 /* Teleport Long */
2783+#define RF6_WORLD 0x00000040 /* world */
2784+#define RF6_SPECIAL 0x00000080 /* Special Attack */
2785+#define RF6_TELE_TO 0x00000100 /* Move player to monster */
2786+#define RF6_TELE_AWAY 0x00000200 /* Move player far away */
2787+#define RF6_TELE_LEVEL 0x00000400 /* Move player vertically */
2788+#define RF6_PSY_SPEAR 0x00000800 /* Psyco-spear */
2789+#define RF6_DARKNESS 0x00001000 /* Create Darkness */
2790+#define RF6_TRAPS 0x00002000 /* Create Traps */
2791+#define RF6_FORGET 0x00004000 /* Cause amnesia */
2792+#define RF6_RAISE_DEAD 0x00008000 /* Raise Dead */
2793+#define RF6_S_KIN 0x00010000 /* Summon "kin" */
2794+#define RF6_S_CYBER 0x00020000 /* Summon Cyberdemons! */
2795+#define RF6_S_MONSTER 0x00040000 /* Summon Monster */
2796+#define RF6_S_MONSTERS 0x00080000 /* Summon Monsters */
2797+#define RF6_S_ANT 0x00100000 /* Summon Ants */
2798+#define RF6_S_SPIDER 0x00200000 /* Summon Spiders */
2799+#define RF6_S_HOUND 0x00400000 /* Summon Hounds */
2800+#define RF6_S_HYDRA 0x00800000 /* Summon Hydras */
2801+#define RF6_S_ANGEL 0x01000000 /* Summon Angel */
2802+#define RF6_S_DEMON 0x02000000 /* Summon Demon */
2803+#define RF6_S_UNDEAD 0x04000000 /* Summon Undead */
2804+#define RF6_S_DRAGON 0x08000000 /* Summon Dragon */
2805+#define RF6_S_HI_UNDEAD 0x10000000 /* Summon Greater Undead */
2806+#define RF6_S_HI_DRAGON 0x20000000 /* Summon Ancient Dragon */
2807+#define RF6_S_AMBERITES 0x40000000 /* Summon Amberites */
2808+#define RF6_S_UNIQUE 0x80000000 /* Summon Unique Monster */
2809+
2810+/*
2811+ * New monster race bit flags
2812+ */
2813+#define RF7_AQUATIC 0x00000001 /* Aquatic monster */
2814+#define RF7_CAN_SWIM 0x00000002 /* Monster can swim */
2815+#define RF7_CAN_FLY 0x00000004 /* Monster can fly */
2816+#define RF7_FRIENDLY 0x00000008 /* Monster is friendly */
2817+#define RF7_NAZGUL 0x00000010 /* Is a "Nazgul" unique */
2818+#define RF7_UNIQUE2 0x00000020 /* Fake unique */
2819+#define RF7_RIDING 0x00000040 /* Good for riding */
2820+#define RF7_KAGE 0x00000080 /* Is kage */
2821+#define RF7_HAS_LITE_1 0x00000100 /* Monster carries light */
2822+#define RF7_SELF_LITE_1 0x00000200 /* Monster lights itself */
2823+#define RF7_HAS_LITE_2 0x00000400 /* Monster carries light */
2824+#define RF7_SELF_LITE_2 0x00000800 /* Monster lights itself */
2825+#define RF7_GUARDIAN 0x00001000 /* Guardian of a dungeon */
2826+#define RF7_CHAMELEON 0x00002000 /* Chameleon can change */
2827+#define RF7_XXXX4XXX 0x00004000 /* Now Empty */
2828+#define RF7_TANUKI 0x00008000 /* Tanuki disguise */
2829+#define RF7_HAS_DARK_1 0x00010000 /* Monster carries darkness */
2830+#define RF7_SELF_DARK_1 0x00020000 /* Monster darkens itself */
2831+#define RF7_HAS_DARK_2 0x00040000 /* Monster carries darkness */
2832+#define RF7_SELF_DARK_2 0x00080000 /* Monster darkens itself */
2833+
2834+/*
2835+ * Monster race flags
2836+ */
2837+#define RF8_WILD_ONLY 0x00000001
2838+#define RF8_WILD_TOWN 0x00000002
2839+#define RF8_XXX8X02 0x00000004
2840+#define RF8_WILD_SHORE 0x00000008
2841+#define RF8_WILD_OCEAN 0x00000010
2842+#define RF8_WILD_WASTE 0x00000020
2843+#define RF8_WILD_WOOD 0x00000040
2844+#define RF8_WILD_VOLCANO 0x00000080
2845+#define RF8_XXX8X08 0x00000100
2846+#define RF8_WILD_MOUNTAIN 0x00000200
2847+#define RF8_WILD_GRASS 0x00000400
2848+#define RF8_WILD_ALL 0x80000000
2849+
2850+/*
2851+ * Monster drop info
2852+ */
2853+#define RF9_DROP_CORPSE 0x00000001
2854+#define RF9_DROP_SKELETON 0x00000002
2855+#define RF9_EAT_BLIND 0x00000004
2856+#define RF9_EAT_CONF 0x00000008
2857+#define RF9_EAT_MANA 0x00000010
2858+#define RF9_EAT_NEXUS 0x00000020
2859+#define RF9_EAT_SLEEP 0x00000040
2860+#define RF9_EAT_BERSERKER 0x00000080
2861+#define RF9_EAT_ACIDIC 0x00000100
2862+#define RF9_EAT_SPEED 0x00000200
2863+#define RF9_EAT_CURE 0x00000400
2864+#define RF9_EAT_FIRE_RES 0x00000800
2865+#define RF9_EAT_COLD_RES 0x00001000
2866+#define RF9_EAT_ACID_RES 0x00002000
2867+#define RF9_EAT_ELEC_RES 0x00004000
2868+#define RF9_EAT_POIS_RES 0x00008000
2869+#define RF9_EAT_INSANITY 0x00010000
2870+#define RF9_EAT_DRAIN_EXP 0x00020000
2871+#define RF9_EAT_POISONOUS 0x00040000
2872+#define RF9_EAT_GIVE_STR 0x00080000
2873+#define RF9_EAT_GIVE_INT 0x00100000
2874+#define RF9_EAT_GIVE_WIS 0x00200000
2875+#define RF9_EAT_GIVE_DEX 0x00400000
2876+#define RF9_EAT_GIVE_CON 0x00800000
2877+#define RF9_EAT_GIVE_CHR 0x01000000
2878+#define RF9_EAT_LOSE_STR 0x02000000
2879+#define RF9_EAT_LOSE_INT 0x04000000
2880+#define RF9_EAT_LOSE_WIS 0x08000000
2881+#define RF9_EAT_LOSE_DEX 0x10000000
2882+#define RF9_EAT_LOSE_CON 0x20000000
2883+#define RF9_EAT_LOSE_CHR 0x40000000
2884+#define RF9_EAT_DRAIN_MANA 0x80000000
2885+
2886+/*
2887+ * Monster bit flags of racial resistances
2888+ * Note: Resist confusion was merged to RFR_NO_CONF
2889+ */
2890+#define RFR_IM_ACID 0x00000001 /* Immunity acid */
2891+#define RFR_IM_ELEC 0x00000002 /* Immunity elec */
2892+#define RFR_IM_FIRE 0x00000004 /* Immunity fire */
2893+#define RFR_IM_COLD 0x00000008 /* Immunity cold */
2894+#define RFR_IM_POIS 0x00000010 /* Immunity poison */
2895+#define RFR_RES_LITE 0x00000020 /* Resist lite */
2896+#define RFR_RES_DARK 0x00000040 /* Resist dark */
2897+#define RFR_RES_NETH 0x00000080 /* Resist nether */
2898+#define RFR_RES_WATE 0x00000100 /* Resist water */
2899+#define RFR_RES_PLAS 0x00000200 /* Resist plasma */
2900+#define RFR_RES_SHAR 0x00000400 /* Resist shards */
2901+#define RFR_RES_SOUN 0x00000800 /* Resist sound */
2902+#define RFR_RES_CHAO 0x00001000 /* Resist chaos */
2903+#define RFR_RES_NEXU 0x00002000 /* Resist nexus */
2904+#define RFR_RES_DISE 0x00004000 /* Resist disenchantment */
2905+#define RFR_RES_WALL 0x00008000 /* Resist force */
2906+#define RFR_RES_INER 0x00010000 /* Resist inertia */
2907+#define RFR_RES_TIME 0x00020000 /* Resist time */
2908+#define RFR_RES_GRAV 0x00040000 /* Resist gravity */
2909+#define RFR_RES_ALL 0x00080000 /* Resist all */
2910+#define RFR_RES_TELE 0x00100000 /* Resist teleportation */
2911+#define RFR_XXX21 0x00200000
2912+#define RFR_XXX22 0x00400000
2913+#define RFR_XXX23 0x00800000
2914+#define RFR_XXX24 0x01000000
2915+#define RFR_XXX25 0x02000000
2916+#define RFR_XXX26 0x04000000
2917+#define RFR_XXX27 0x08000000
2918+#define RFR_XXX28 0x10000000
2919+#define RFR_XXX29 0x20000000
2920+#define RFR_XXX30 0x40000000
2921+#define RFR_XXX31 0x80000000
2922+
25072923
25082924 /*
25092925 * Hack -- "torch" masks
@@ -2536,6 +2952,18 @@
25362952 #define MR1_SINKA 0x01
25372953
25382954
2955+#define is_friendly(A) \
2956+ (bool)(((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
2957+
2958+#define is_friendly_idx(IDX) \
2959+ (bool)((IDX) > 0 && is_friendly(&current_floor_ptr->m_list[(IDX)]))
2960+
2961+#define is_pet(A) \
2962+ (bool)(((A)->smart & SM_PET) ? TRUE : FALSE)
2963+
2964+#define is_hostile(A) \
2965+ (bool)((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
2966+
25392967 /* Hack -- Determine monster race appearance index is same as race index */
25402968 #define is_original_ap(A) \
25412969 (bool)(((A)->ap_r_idx == (A)->r_idx) ? TRUE : FALSE)
@@ -2551,6 +2979,20 @@
25512979 (player_can_see_bold((A)->fy, (A)->fx) && projectable(p_ptr->y, p_ptr->x, (A)->fy, (A)->fx)))))
25522980
25532981
2982+/*** Option Definitions ***/
2983+
2984+
2985+#define OPT_PAGE_INPUT 1
2986+#define OPT_PAGE_MAPSCREEN 2
2987+#define OPT_PAGE_TEXT 3
2988+#define OPT_PAGE_GAMEPLAY 4
2989+#define OPT_PAGE_DISTURBANCE 5
2990+#define OPT_PAGE_BIRTH 6
2991+#define OPT_PAGE_AUTODESTROY 7
2992+#define OPT_PAGE_PLAYRECORD 10
2993+
2994+#define OPT_PAGE_JAPANESE_ONLY 99
2995+
25542996
25552997 /*** Macro Definitions ***/
25562998
@@ -2561,6 +3003,28 @@
25613003 #define term_screen (angband_term[0])
25623004
25633005
3006+/*
3007+ * Determine if a given inventory item is "aware"
3008+ */
3009+#define object_is_aware(T) \
3010+ (k_info[(T)->k_idx].aware)
3011+
3012+/*
3013+ * Determine if a given inventory item is "tried"
3014+ */
3015+#define object_is_tried(T) \
3016+ (k_info[(T)->k_idx].tried)
3017+
3018+
3019+/*
3020+ * Determine if a given inventory item is "known"
3021+ * Test One -- Check for special "known" tag
3022+ * Test Two -- Check for "Easy Know" + "Aware"
3023+ */
3024+#define object_is_known(T) \
3025+ (((T)->ident & (IDENT_KNOWN)) || \
3026+ (k_info[(T)->k_idx].easy_know && k_info[(T)->k_idx].aware))
3027+
25643028
25653029 /*
25663030 * Return the "attr" for a given item.
@@ -2571,7 +3035,7 @@
25713035 ((k_info[(T)->k_idx].flavor) ? \
25723036 (k_info[k_info[(T)->k_idx].flavor].x_attr) : \
25733037 ((!(T)->k_idx || ((T)->tval != TV_CORPSE) || ((T)->sval != SV_CORPSE) || \
2574- (k_info[(T)->k_idx].x_attr != TERM_DARK)) ? \
3038+ (k_info[(T)->k_idx].x_attr != TERM_DARK)) ? \
25753039 (k_info[(T)->k_idx].x_attr) : (r_info[(T)->pval].x_attr)))
25763040
25773041 /*
@@ -2586,6 +3050,32 @@
25863050
25873051
25883052 /*
3053+ * Artifacts use the "name1" field
3054+ */
3055+#define object_is_fixed_artifact(T) \
3056+ ((T)->name1 ? TRUE : FALSE)
3057+
3058+/*
3059+ * Ego-Items use the "name2" field
3060+ */
3061+#define object_is_ego(T) \
3062+ ((T)->name2 ? TRUE : FALSE)
3063+
3064+
3065+/*
3066+ * Broken items.
3067+ */
3068+#define object_is_broken(T) \
3069+ ((T)->ident & (IDENT_BROKEN))
3070+
3071+/*
3072+ * Cursed items.
3073+ */
3074+#define object_is_cursed(T) \
3075+ ((T)->curse_flags)
3076+
3077+
3078+/*
25893079 * Convert an "attr"/"char" pair into a "pict" (P)
25903080 */
25913081 #define PICT(A,C) \
@@ -2623,6 +3113,24 @@
26233113 ((int)((G) % 256U))
26243114
26253115
3116+/*
3117+ * Determines if a map location is fully inside the outer walls
3118+ */
3119+#define in_bounds(Y,X) \
3120+ (((Y) > 0) && ((X) > 0) && ((Y) < current_floor_ptr->height-1) && ((X) < current_floor_ptr->width-1))
3121+
3122+/*
3123+ * Determines if a map location is on or inside the outer walls
3124+ */
3125+#define in_bounds2(Y,X) \
3126+ (((Y) >= 0) && ((X) >= 0) && ((Y) < current_floor_ptr->height) && ((X) < current_floor_ptr->width))
3127+
3128+/*
3129+ * Determines if a map location is on or inside the outer walls
3130+ * (unsigned version)
3131+ */
3132+#define in_bounds2u(Y,X) \
3133+ (((Y) < current_floor_ptr->height) && ((X) < current_floor_ptr->width))
26263134
26273135 /*
26283136 * Determines if a map location is currently "on screen" -RAK-
@@ -2634,6 +3142,176 @@
26343142
26353143
26363144 /*
3145+ * Determine if player is on this grid
3146+ */
3147+#define player_bold(Y,X) \
3148+ (((Y) == p_ptr->y) && ((X) == p_ptr->x))
3149+
3150+
3151+/*
3152+ * Grid based version of "player_bold()"
3153+ */
3154+#define player_grid(C) \
3155+ ((C) == &current_floor_ptr->grid_array[p_ptr->y][p_ptr->x])
3156+
3157+
3158+#define cave_have_flag_bold(Y,X,INDEX) \
3159+ (have_flag(f_info[current_floor_ptr->grid_array[(Y)][(X)].feat].flags, (INDEX)))
3160+
3161+
3162+#define cave_have_flag_grid(C,INDEX) \
3163+ (have_flag(f_info[(C)->feat].flags, (INDEX)))
3164+
3165+
3166+/*
3167+ * Determine if a "feature" supports "los"
3168+ */
3169+#define feat_supports_los(F) \
3170+ (have_flag(f_info[(F)].flags, FF_LOS))
3171+
3172+
3173+/*
3174+ * Determine if a "legal" grid supports "los"
3175+ */
3176+#define cave_los_bold(Y,X) \
3177+ (feat_supports_los(current_floor_ptr->grid_array[(Y)][(X)].feat))
3178+
3179+#define cave_los_grid(C) \
3180+ (feat_supports_los((C)->feat))
3181+
3182+
3183+/*
3184+ * Determine if a "legal" grid is a "clean" floor grid
3185+ * Determine if terrain-change spells are allowed in a grid.
3186+ *
3187+ * Line 1 -- forbid non-floors
3188+ * Line 2 -- forbid object terrains
3189+ * Line 3 -- forbid normal objects
3190+ */
3191+#define cave_clean_bold(Y,X) \
3192+ (cave_have_flag_bold((Y), (X), FF_FLOOR) && \
3193+ !(current_floor_ptr->grid_array[Y][X].info & CAVE_OBJECT) && \
3194+ (current_floor_ptr->grid_array[Y][X].o_idx == 0))
3195+
3196+
3197+/*
3198+ * Determine if an object can be dropped on a "legal" grid
3199+ *
3200+ * Line 1 -- forbid non-drops
3201+ * Line 2 -- forbid object terrains
3202+ */
3203+#define cave_drop_bold(Y,X) \
3204+ (cave_have_flag_bold((Y), (X), FF_DROP) && \
3205+ !(current_floor_ptr->grid_array[Y][X].info & CAVE_OBJECT))
3206+
3207+
3208+/*
3209+ * Determine if a "legal" grid is an "empty" floor grid
3210+ * Determine if monsters are allowed to move into a grid
3211+ *
3212+ * Line 1 -- forbid non-placement grids
3213+ * Line 2 -- forbid normal monsters
3214+ * Line 3 -- forbid the player
3215+ */
3216+#define cave_empty_bold(Y,X) \
3217+ (cave_have_flag_bold((Y), (X), FF_PLACE) && \
3218+ !(current_floor_ptr->grid_array[Y][X].m_idx) && \
3219+ !player_bold(Y,X))
3220+
3221+
3222+/*
3223+ * Determine if a "legal" grid is an "empty" floor grid
3224+ * Determine if monster generation is allowed in a grid
3225+ *
3226+ * Line 1 -- forbid non-empty grids
3227+ * Line 2 -- forbid trees while dungeon generation
3228+ */
3229+#define cave_empty_bold2(Y,X) \
3230+ (cave_empty_bold(Y,X) && \
3231+ (character_dungeon || !cave_have_flag_bold((Y), (X), FF_TREE)))
3232+
3233+
3234+/*
3235+ * Determine if a "legal" grid is an "naked" floor grid
3236+ *
3237+ * Line 1 -- forbid non-clean gird
3238+ * Line 2 -- forbid monsters
3239+ * Line 3 -- forbid the player
3240+ */
3241+#define cave_naked_bold(Y,X) \
3242+ (cave_clean_bold(Y,X) && \
3243+ !(current_floor_ptr->grid_array[Y][X].m_idx) && \
3244+ !player_bold(Y,X))
3245+
3246+
3247+/*
3248+ * Determine if a "legal" grid is "permanent"
3249+ *
3250+ * Line 1 -- permanent flag
3251+ */
3252+#define cave_perma_bold(Y,X) \
3253+ (cave_have_flag_bold((Y), (X), FF_PERMANENT))
3254+
3255+
3256+/*
3257+ * Grid based version of "cave_empty_bold()"
3258+ */
3259+#define cave_empty_grid(C) \
3260+ (cave_have_flag_grid((C), FF_PLACE) && \
3261+ !((C)->m_idx) && \
3262+ !player_grid(C))
3263+
3264+
3265+/*
3266+ * Grid based version of "cave_perma_bold()"
3267+ */
3268+#define cave_perma_grid(C) \
3269+ (cave_have_flag_grid((C), FF_PERMANENT))
3270+
3271+
3272+#define pattern_tile(Y,X) \
3273+ (cave_have_flag_bold((Y), (X), FF_PATTERN))
3274+
3275+/*
3276+ * Does the grid stop disintegration?
3277+ */
3278+#define cave_stop_disintegration(Y,X) \
3279+ (!cave_have_flag_bold((Y), (X), FF_PROJECT) && \
3280+ (!cave_have_flag_bold((Y), (X), FF_HURT_DISI) || \
3281+ cave_have_flag_bold((Y), (X), FF_PERMANENT)))
3282+
3283+
3284+/*
3285+ * Determine if a "legal" grid is within "los" of the player
3286+ *
3287+ * Note the use of comparison to zero to force a "boolean" result
3288+ */
3289+#define player_has_los_grid(C) \
3290+ (((C)->info & (CAVE_VIEW)) != 0)
3291+
3292+/*
3293+ * Determine if a "legal" grid is within "los" of the player
3294+ *
3295+ * Note the use of comparison to zero to force a "boolean" result
3296+ */
3297+#define player_has_los_bold(Y,X) \
3298+ (((current_floor_ptr->grid_array[Y][X].info & (CAVE_VIEW)) != 0) || p_ptr->inside_battle)
3299+
3300+
3301+/*
3302+ * Determine if a "feature" is "permanent wall"
3303+ */
3304+#define permanent_wall(F) \
3305+ (have_flag((F)->flags, FF_WALL) && \
3306+ have_flag((F)->flags, FF_PERMANENT))
3307+
3308+/*
3309+ * Get feature mimic from f_info[] (applying "mimic" field)
3310+ */
3311+#define get_feat_mimic(C) \
3312+ (f_info[(C)->mimic ? (C)->mimic : (C)->feat].mimic)
3313+
3314+/*
26373315 * Hack -- Prepare to use the "Secure" routines
26383316 */
26393317 #if defined(SET_UID) && defined(SECURE)
@@ -2874,6 +3552,30 @@ extern int PlayerUID;
28743552 #define MAX_BACT 48
28753553
28763554 /*
3555+ * Quest status
3556+ */
3557+#define QUEST_STATUS_UNTAKEN 0 /*!< クエストステータス状態:未発生*/
3558+#define QUEST_STATUS_TAKEN 1 /*!< クエストステータス状態:発生中*/
3559+#define QUEST_STATUS_COMPLETED 2 /*!< クエストステータス状態:達成*/
3560+#define QUEST_STATUS_REWARDED 3 /*!< クエストステータス状態:報酬受け取り前*/
3561+#define QUEST_STATUS_FINISHED 4 /*!< クエストステータス状態:完了*/
3562+#define QUEST_STATUS_FAILED 5 /*!< クエストステータス状態:失敗*/
3563+#define QUEST_STATUS_FAILED_DONE 6 /*!< クエストステータス状態:失敗完了*/
3564+#define QUEST_STATUS_STAGE_COMPLETED 7 /*!< クエストステータス状態:ステージ毎達成*/
3565+
3566+/*
3567+ * Quest type
3568+ */
3569+#define QUEST_TYPE_KILL_LEVEL 1 /*!< クエスト目的: 特定のユニークモンスターを倒す */
3570+#define QUEST_TYPE_KILL_ANY_LEVEL 2 /*!< クエスト目的: イベント受託時点でランダムで選ばれた特定のユニークモンスターを倒す */
3571+#define QUEST_TYPE_FIND_ARTIFACT 3 /*!< クエスト目的: 特定のアーティファクトを発見する */
3572+#define QUEST_TYPE_FIND_EXIT 4 /*!< クエスト目的: 脱出する */
3573+#define QUEST_TYPE_KILL_NUMBER 5 /*!< クエスト目的: モンスターを無差別に特定数倒す */
3574+#define QUEST_TYPE_KILL_ALL 6 /*!< クエスト目的: エリア中のすべてのモンスターを全て倒す */
3575+#define QUEST_TYPE_RANDOM 7 /*!< クエスト目的: ランダムクエストとして選ばれたユニーク1体を倒す */
3576+#define QUEST_TYPE_TOWER 8 /*!< クエスト目的: 複数のエリアの全てのモンスターを倒す */
3577+
3578+/*
28773579 * Initialization flags
28783580 */
28793581 #define INIT_NAME_ONLY 0x01
@@ -2884,6 +3586,14 @@ extern int PlayerUID;
28843586 #define INIT_ONLY_BUILDINGS 0x20
28853587
28863588 /*
3589+ * Quest flags
3590+ */
3591+#define QUEST_FLAG_SILENT 0x01 /*!< クエストフラグ: クエスト進行に関する情報表示を抑止する / no messages from completion */
3592+#define QUEST_FLAG_PRESET 0x02 /*!< クエストフラグ: クエストがダンジョン外で発生する / quest is outside the main dungeon */
3593+#define QUEST_FLAG_ONCE 0x04 /*!< クエストフラグ: クエストがフロアを出た時点で完了する / quest is marked finished after leaving */
3594+#define QUEST_FLAG_TOWER 0x08 /*!< クエストフラグ: クエスト:塔の形式で進行する / Tower quest is special */
3595+
3596+/*
28873597 * Available graphic modes
28883598 */
28893599 #define GRAPHICS_NONE 0
@@ -3126,6 +3836,273 @@ extern int PlayerUID;
31263836 #define MS_S_UNIQUE 95
31273837
31283838
3839+#define MON_BEGGAR 12
3840+#define MON_LEPER 13
3841+#define MON_BLACK_MARKET 14
3842+#define MON_LION_HEART 19
3843+#define MON_GHB 39
3844+#define MON_NOV_PRIEST 45
3845+#define MON_GRIP 53
3846+#define MON_WOLF 54
3847+#define MON_FANG 55
3848+#define MON_LOUSE 69
3849+#define MON_PIRANHA 70
3850+#define MON_COPPER_COINS 85
3851+#define MON_NOV_PALADIN 97
3852+#define MON_GREEN_G 100
3853+#define MON_NOV_PRIEST_G 109
3854+#define MON_SILVER_COINS 117
3855+#define MON_D_ELF 122
3856+#define MON_MANES 128
3857+#define MON_LOST_SOUL 133
3858+#define MON_ROBIN_HOOD 138
3859+#define MON_NOV_PALADIN_G 147
3860+#define MON_PHANTOM_W 152
3861+#define MON_WOUNDED_BEAR 159
3862+#define MON_D_ELF_MAGE 178
3863+#define MON_D_ELF_WARRIOR 182
3864+#define MON_BLUE_HORROR 189
3865+#define MON_GOLD_COINS 195
3866+#define MON_VORPAL_BUNNY 205
3867+#define MON_MASTER_YEEK 224
3868+#define MON_PRIEST 225
3869+#define MON_D_ELF_PRIEST 226
3870+#define MON_TIGER 230
3871+#define MON_MITHRIL_COINS 239
3872+#define MON_DRUID 241
3873+#define MON_PINK_HORROR 242
3874+#define MON_HILL_GIANT 255
3875+#define MON_WERERAT 270
3876+#define MON_UMBER_HULK 283
3877+#define MON_ORC_CAPTAIN 285
3878+#define MON_BERSERKER 293
3879+#define MON_IMP 296
3880+#define MON_SHAGRAT 314
3881+#define MON_GORBAG 315
3882+#define MON_STONE_GIANT 321
3883+#define MON_LIZARD_KING 332
3884+#define MON_WYVERN 334
3885+#define MON_SABRE_TIGER 339
3886+#define MON_D_ELF_LORD 348
3887+#define MON_FIRE_VOR 354
3888+#define MON_WATER_VOR 355
3889+#define MON_ARCH_VILE 357
3890+#define MON_COLD_VOR 358
3891+#define MON_ENERGY_VOR 359
3892+#define MON_IRON_GOLEM 367
3893+#define MON_JADE_MONK 370
3894+#define MON_D_ELF_WARLOCK 375
3895+#define MON_HAGEN 383
3896+#define MON_MENELDOR 384
3897+#define MON_PHANTOM_B 385
3898+#define MON_C_CRAWLER 395
3899+#define MON_XICLOTLAN 396
3900+#define MON_D_ELF_DRUID 400
3901+#define MON_TROLL_PRIEST 403
3902+#define MON_GWAIHIR 410
3903+#define MON_ANGEL 417
3904+#define MON_ADAMANT_COINS 423
3905+#define MON_COLBRAN 435
3906+#define MON_SPIRIT_NAGA 436
3907+#define MON_GACHAPIN 441
3908+#define MON_BASILISK 453
3909+#define MON_ARCHANGEL 456
3910+#define MON_MITHRIL_GOLEM 464
3911+#define MON_THORONDOR 468
3912+#define MON_SHADOW_DRAKE 471
3913+#define MON_GHOST 477
3914+#define MON_OGRE_SHAMAN 479
3915+#define MON_GHOUL_KING 483
3916+#define MON_NINJA 485
3917+#define MON_BICLOPS 490
3918+#define MON_IVORY_MONK 492
3919+#define MON_LOG_MASTER 498
3920+#define MON_ETHER_DRAKE 504
3921+#define MON_GOEMON 505
3922+#define MON_CHERUB 511
3923+#define MON_WATER_ELEM 512
3924+#define MON_JURT 517
3925+#define MON_LICH 518
3926+#define MON_BLOODLETTER 523
3927+#define MON_HALFLING_S 539
3928+#define MON_GRAV_HOUND 540
3929+#define MON_REVENANT 555
3930+#define MON_RAAL 557
3931+#define MON_COLOSSUS 558
3932+#define MON_NIGHTBLADE 564
3933+#define MON_ELDER_THING 569
3934+#define MON_CRYPT_THING 577
3935+#define MON_NEXUS_VOR 587
3936+#define MON_PLASMA_VOR 588
3937+#define MON_TIME_VOR 589
3938+#define MON_M_MH_DRAGON 593
3939+#define MON_MANDOR 598
3940+#define MON_SHIM_VOR 600
3941+#define MON_SERAPH 605
3942+#define MON_BARON_HELL 609
3943+#define MON_KAVLAX 616
3944+#define MON_ETTIN 621
3945+#define MON_VAMPIRE_LORD 623
3946+#define MON_JUBJUB 640
3947+#define MON_G_C_DRAKE 646
3948+#define MON_CLUB_DEMON 648
3949+#define MON_F_ANGEL 652
3950+#define MON_D_ELF_SORC 657
3951+#define MON_MASTER_LICH 658
3952+#define MON_RINALDO 660
3953+#define MON_ARCHON 661
3954+#define MON_UND_BEHOLDER 664
3955+#define MON_IRON_LICH 666
3956+#define MON_JACK_SHADOWS 670
3957+#define MON_LLOIGOR 682
3958+#define MON_DREADMASTER 690
3959+#define MON_DROLEM 691
3960+#define MON_DAWN 693
3961+#define MON_NAZGUL 696
3962+#define MON_SMAUG 697
3963+#define MON_STORMBRINGER 698
3964+#define MON_ULTRA_PALADIN 699
3965+#define MON_G_TITAN 702
3966+#define MON_S_TYRANNO 705
3967+#define MON_FAFNER 712
3968+#define MON_G_BALROG 720
3969+#define MON_TIME_HOUND 725
3970+#define MON_PLASMA_HOUND 726
3971+#define MON_BULLGATES 732
3972+#define MON_SANTACLAUS 733
3973+#define MON_LORD_CHAOS 737
3974+#define MON_TINDALOS 739
3975+#define MON_DEMILICH 742
3976+#define MON_NIGHTCRAWLER 744
3977+#define MON_CHAOS_VOR 751
3978+#define MON_AETHER_VOR 752
3979+#define MON_FUNDIN 762
3980+#define MON_DWORKIN 763
3981+#define MON_NIGHTWALKER 768
3982+#define MON_RAPHAEL 769
3983+#define MON_SARUMAN 771
3984+#define MON_GANDALF 772
3985+#define MON_BRAND 773
3986+#define MON_SHADOWLORD 774
3987+#define MON_ARCHLICH 776
3988+#define MON_JABBERWOCK 778
3989+#define MON_CHAOS_HOUND 779
3990+#define MON_ULT_BEHOLDER 781
3991+#define MON_SHAMBLER 786
3992+#define MON_BLEYS 789
3993+#define MON_FIONA 791
3994+#define MON_SKY_DRAKE 793
3995+#define MON_JULIAN 794
3996+#define MON_BLACK_REAVER 798
3997+#define MON_CAINE 799
3998+#define MON_GERARD 807
3999+#define MON_UNGOLIANT 808
4000+#define MON_ATLACH_NACHA 809
4001+#define MON_Y_GOLONAC 810
4002+#define MON_AETHER_HOUND 811
4003+#define MON_WARP_DEMON 812
4004+#define MON_ERIC 813
4005+#define MON_UNMAKER 815
4006+#define MON_CYBER 816
4007+#define MON_KLING 819
4008+#define MON_CORWIN 820
4009+#define MON_ANGMAR 825
4010+#define MON_CANTORAS 830
4011+#define MON_GODZILLA 832
4012+#define MON_SPAWN_CTH 836
4013+#define MON_SURTUR 837
4014+#define MON_TARRASQUE 838
4015+#define MON_LUNGORTHIN 839
4016+#define MON_CYBER_KING 843
4017+#define MON_WYRM_POWER 847
4018+#define MON_NODENS 849
4019+#define MON_JORMUNGAND 854
4020+#define MON_DESTROYER 855
4021+#define MON_GOTHMOG 856
4022+#define MON_G_CTHULHU 857
4023+#define MON_SAURON 858
4024+#define MON_UNICORN_ORD 859
4025+#define MON_OBERON 860
4026+#define MON_MORGOTH 861
4027+#define MON_SERPENT 862
4028+#define MON_ONE_RING 864
4029+#define MON_CAAWS 866
4030+#define MON_CULVERIN 867
4031+#define MON_EBONY_MONK 870
4032+#define MON_HAGURE 871
4033+#define MON_OROCHI 872
4034+#define MON_ECHIZEN 873
4035+#define MON_SPECT_WYRM 874
4036+#define MON_DIO 878
4037+#define MON_OHMU 879
4038+#define MON_WONG 880
4039+#define MON_ZOMBI_SERPENT 883
4040+#define MON_D_ELF_SHADE 886
4041+#define MON_MANA_HOUND 887
4042+#define MON_VENOM_WYRM 890
4043+#define MON_TROLL_KING 894
4044+#define MON_BAZOOKER 896
4045+#define MON_SHARD_VOR 897
4046+#define MON_ELF_LORD 900
4047+#define MON_MASTER_MYS 916
4048+#define MON_G_MASTER_MYS 917
4049+#define MON_IE 921
4050+#define MON_TSUCHINOKO 926
4051+#define MON_GCWADL 929
4052+#define MON_LOCKE_CLONE 930
4053+#define MON_CALDARM 931
4054+#define MON_BANORLUPART 932
4055+#define MON_BANOR 933
4056+#define MON_LUPART 934
4057+#define MON_KENSHIROU 936
4058+#define MON_W_KNIGHT 938
4059+#define MON_PLANETAR 942
4060+#define MON_SOLAR 943
4061+#define MON_BIKETAL 945
4062+#define MON_RICH 948
4063+#define MON_IKETA 949
4064+#define MON_B_DEATH_SWORD 953
4065+#define MON_YASE_HORSE 955
4066+#define MON_HORSE 956
4067+#define MON_BOTEI 963
4068+#define MON_KAGE 964
4069+#define MON_JAIAN 967
4070+#define MON_BELD 973
4071+#define MON_THAT_BAT 975
4072+#define MON_SHUTEN 979
4073+#define MON_FENGHUANG 988
4074+#define MON_KIRIN 989
4075+#define MON_BAHAMUT 1000
4076+#define MON_SUKE 1001
4077+#define MON_KAKU 1002
4078+#define MON_GHOST_Q 1003
4079+#define MON_PIP 1004
4080+#define MON_A_GOLD 1010
4081+#define MON_A_SILVER 1011
4082+#define MON_ROLENTO 1013
4083+#define MON_RAOU 1018
4084+#define MON_SHURYUUDAN 1023
4085+#define MON_WAHHA 1031
4086+#define MON_DEBBY 1032
4087+#define MON_KNI_TEMPLAR 1037
4088+#define MON_PALADIN 1038
4089+#define MON_CHAMELEON 1040
4090+#define MON_CHAMELEON_K 1041
4091+#define MON_TOPAZ_MONK 1047
4092+#define MON_M_MINDCRAFTER 1056
4093+#define MON_ELDER_VAMPIRE 1058
4094+#define MON_NOBORTA 1059
4095+#define MON_MORI_TROLL 1060
4096+#define MON_BARNEY 1061
4097+#define MON_GROO 1062
4098+#define MON_LOUSY 1063
4099+#define MON_WYRM_SPACE 1064
4100+#define MON_JIZOTAKO 1065
4101+#define MON_TANUKI 1067
4102+#define MON_ALIEN_JURAL 1082
4103+#define MON_HATOPOPPO 1083
4104+#define MON_KOGAN 1096
4105+
31294106 /* Maximum "Nazguls" number */
31304107 #define MAX_NAZGUL_NUM 5
31314108
--- a/src/types.h
+++ b/src/types.h
@@ -253,77 +253,8 @@ typedef struct monster_blow monster_blow;
253253
254254 struct monster_blow
255255 {
256- /*!
257- * @note モンスターの打撃方法 / New monster blow methods
258- * 打撃の種別に応じて傷と朦朧が発生するかがコメントの通りに決まる
259- */
260256 BLOW_METHOD method;
261- #define RBM_HIT 1 /*!< モンスターの攻撃種別:殴る(傷/朦朧が半々) */
262- #define RBM_TOUCH 2 /*!< モンスターの攻撃種別:触る */
263- #define RBM_PUNCH 3 /*!< モンスターの攻撃種別:パンチする(朦朧) */
264- #define RBM_KICK 4 /*!< モンスターの攻撃種別:蹴る(朦朧) */
265- #define RBM_CLAW 5 /*!< モンスターの攻撃種別:ひっかく(傷) */
266- #define RBM_BITE 6 /*!< モンスターの攻撃種別:噛む(傷) */
267- #define RBM_STING 7 /*!< モンスターの攻撃種別:刺す */
268- #define RBM_SLASH 8 /*!< モンスターの攻撃種別:斬る(傷) */
269- #define RBM_BUTT 9 /*!< モンスターの攻撃種別:角で突く(朦朧) */
270- #define RBM_CRUSH 10 /*!< モンスターの攻撃種別:体当たりする(朦朧) */
271- #define RBM_ENGULF 11 /*!< モンスターの攻撃種別:飲み込む */
272- #define RBM_CHARGE 12 /*!< モンスターの攻撃種別:請求書を寄越す */
273- #define RBM_CRAWL 13 /*!< モンスターの攻撃種別:体の上を這い回る */
274- #define RBM_DROOL 14 /*!< モンスターの攻撃種別:よだれをたらす */
275- #define RBM_SPIT 15 /*!< モンスターの攻撃種別:つばを吐く */
276- #define RBM_EXPLODE 16 /*!< モンスターの攻撃種別:爆発する */
277- #define RBM_GAZE 17 /*!< モンスターの攻撃種別:にらむ */
278- #define RBM_WAIL 18 /*!< モンスターの攻撃種別:泣き叫ぶ */
279- #define RBM_SPORE 19 /*!< モンスターの攻撃種別:胞子を飛ばす */
280- #define RBM_XXX4 20 /*!< モンスターの攻撃種別:未定義 */
281- #define RBM_BEG 21 /*!< モンスターの攻撃種別:金をせがむ */
282- #define RBM_INSULT 22 /*!< モンスターの攻撃種別:侮辱する */
283- #define RBM_MOAN 23 /*!< モンスターの攻撃種別:うめく */
284- #define RBM_SHOW 24 /*!< モンスターの攻撃種別:歌う */
285- #define RBM_SHOOT 25 /*!< モンスターの攻撃種別:射撃(非打撃) */
286-
287- /*!
288- * @note モンスターの攻撃効果 / New monster blow effects
289- */
290257 BLOW_EFFECT effect;
291- #define RBE_HURT 1 /*!< モンスターの攻撃効果: 攻撃する*/
292- #define RBE_POISON 2 /*!< モンスターの攻撃効果: 毒をくらわす*/
293- #define RBE_UN_BONUS 3 /*!< モンスターの攻撃効果: 劣化させる*/
294- #define RBE_UN_POWER 4 /*!< モンスターの攻撃効果: 充填魔力を吸収する*/
295- #define RBE_EAT_GOLD 5 /*!< モンスターの攻撃効果: 金を盗む*/
296- #define RBE_EAT_ITEM 6 /*!< モンスターの攻撃効果: アイテムを盗む*/
297- #define RBE_EAT_FOOD 7 /*!< モンスターの攻撃効果: あなたの食糧を食べる*/
298- #define RBE_EAT_LITE 8 /*!< モンスターの攻撃効果: 明かりを吸収する*/
299- #define RBE_ACID 9 /*!< モンスターの攻撃効果: 酸を飛ばす*/
300- #define RBE_ELEC 10 /*!< モンスターの攻撃効果: 感電させる*/
301- #define RBE_FIRE 11 /*!< モンスターの攻撃効果: 燃やす*/
302- #define RBE_COLD 12 /*!< モンスターの攻撃効果: 凍らせる*/
303- #define RBE_BLIND 13 /*!< モンスターの攻撃効果: 盲目にする*/
304- #define RBE_CONFUSE 14 /*!< モンスターの攻撃効果: 混乱させる*/
305- #define RBE_TERRIFY 15 /*!< モンスターの攻撃効果: 恐怖させる*/
306- #define RBE_PARALYZE 16 /*!< モンスターの攻撃効果: 麻痺させる*/
307- #define RBE_LOSE_STR 17 /*!< モンスターの攻撃効果: 腕力を減少させる*/
308- #define RBE_LOSE_INT 18 /*!< モンスターの攻撃効果: 知能を減少させる*/
309- #define RBE_LOSE_WIS 19 /*!< モンスターの攻撃効果: 賢さを減少させる*/
310- #define RBE_LOSE_DEX 20 /*!< モンスターの攻撃効果: 器用さを減少させる*/
311- #define RBE_LOSE_CON 21 /*!< モンスターの攻撃効果: 耐久力を減少させる*/
312- #define RBE_LOSE_CHR 22 /*!< モンスターの攻撃効果: 魅力を減少させる*/
313- #define RBE_LOSE_ALL 23 /*!< モンスターの攻撃効果: 全ステータスを減少させる*/
314- #define RBE_SHATTER 24 /*!< モンスターの攻撃効果: 粉砕する*/
315- #define RBE_EXP_10 25 /*!< モンスターの攻撃効果: 経験値を減少(10d6+)させる*/
316- #define RBE_EXP_20 26 /*!< モンスターの攻撃効果: 経験値を減少(20d6+)させる*/
317- #define RBE_EXP_40 27 /*!< モンスターの攻撃効果: 経験値を減少(40d6+)させる*/
318- #define RBE_EXP_80 28 /*!< モンスターの攻撃効果: 経験値を減少(80d6+)させる*/
319- #define RBE_DISEASE 29 /*!< モンスターの攻撃効果: 病気にする*/
320- #define RBE_TIME 30 /*!< モンスターの攻撃効果: 時間を逆戻りさせる*/
321- #define RBE_DR_LIFE 31 /*!< モンスターの攻撃効果: 生命力を吸収する*/
322- #define RBE_DR_MANA 32 /*!< モンスターの攻撃効果: 魔力を奪う*/
323- #define RBE_SUPERHURT 33 /*!< モンスターの攻撃効果: 強力に攻撃する*/
324- #define RBE_INERTIA 34 /*!< モンスターの攻撃効果: 減速させる*/
325- #define RBE_STUN 35 /*!< モンスターの攻撃効果: 朦朧とさせる*/
326-
327258 DICE_NUMBER d_dice;
328259 DICE_SID d_side;
329260 };
@@ -384,320 +315,21 @@ struct monster_race
384315
385316 RARITY freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */
386317
387- BIT_FLAGS flags1; /*!< Flags 1 (general) race bit flags */
388- #define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */
389- #define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */
390- #define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */
391- #define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */
392- #define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */
393- #define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */
394- #define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */
395- #define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
396- #define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
397- #define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
398- #define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
399- #define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */
400- #define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
401- #define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
402- #define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */
403- #define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */
404- #define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
405- #define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */
406- #define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
407- #define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
408- #define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */
409- #define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */
410- #define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */
411- #define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */
412- #define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */
413- #define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */
414- #define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */
415- #define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */
416- #define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */
417- #define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */
418- #define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */
419- #define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */
420-
421- BIT_FLAGS flags2; /* Flags 2 (abilities) New monster race bit flags */
422- #define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
423- #define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */
424- #define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */
425- #define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */
426- #define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */
427- #define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */
428- #define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */
429- #define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */
430- #define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */
431- #define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */
432- #define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */
433- #define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */
434- #define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */
435- #define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */
436- #define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */
437- #define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */
438- #define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
439- #define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
440- #define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
441- #define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
442- #define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
443- #define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
444- #define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
445- #define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
446- #define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */
447- #define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */
448- #define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */
449- #define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */
450- #define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */
451- #define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */
452- #define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */
453- #define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
454-
455- BIT_FLAGS flags3; /*!< Flags 3 (race/resist) New monster race bit flags */
456- #define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */
457- #define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */
458- #define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */
459- #define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */
460- #define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */
461- #define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */
462- #define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */
463- #define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */
464- #define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */
465- #define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */
466- #define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */
467- #define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */
468- #define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */
469- #define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */
470- #define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */
471- #define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */
472- #define RF3_ANGEL 0x00010000 /*!< モンスター特性: 天使 / ANGEL */
473- #define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */
474- #define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */
475- #define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */
476- #define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */
477- #define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */
478- #define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */
479- #define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */
480- #define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */
481- #define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */
482- #define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */
483- #define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */
484- #define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */
485- #define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */
486- #define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */
487- #define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */
488-
489- BIT_FLAGS flags4; /*!< Flags 4 (inate/breath) New monster race bit flags */
490- #define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */
491- #define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */
492- #define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */
493- #define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */
494- #define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */
495- #define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */
496- #define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */
497- #define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */
498- #define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */
499- #define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */
500- #define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */
501- #define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */
502- #define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */
503- #define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */
504- #define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */
505- #define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */
506- #define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */
507- #define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */
508- #define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */
509- #define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */
510- #define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */
511- #define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */
512- #define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */
513- #define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */
514- #define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */
515- #define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */
516- #define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */
517- #define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */
518- #define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */
519- #define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */
520- #define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */
521- #define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */
522-
318+ BIT_FLAGS flags1; /* Flags 1 (general) */
319+ BIT_FLAGS flags2; /* Flags 2 (abilities) */
320+ BIT_FLAGS flags3; /* Flags 3 (race/resist) */
321+ BIT_FLAGS flags4; /* Flags 4 (inate/breath) */
523322 BIT_FLAGS flags7; /* Flags 7 (movement related abilities) */
524- #define RF7_AQUATIC 0x00000001 /* Aquatic monster */
525- #define RF7_CAN_SWIM 0x00000002 /* Monster can swim */
526- #define RF7_CAN_FLY 0x00000004 /* Monster can fly */
527- #define RF7_FRIENDLY 0x00000008 /* Monster is friendly */
528- #define RF7_NAZGUL 0x00000010 /* Is a "Nazgul" unique */
529- #define RF7_UNIQUE2 0x00000020 /* Fake unique */
530- #define RF7_RIDING 0x00000040 /* Good for riding */
531- #define RF7_KAGE 0x00000080 /* Is kage */
532- #define RF7_HAS_LITE_1 0x00000100 /* Monster carries light */
533- #define RF7_SELF_LITE_1 0x00000200 /* Monster lights itself */
534- #define RF7_HAS_LITE_2 0x00000400 /* Monster carries light */
535- #define RF7_SELF_LITE_2 0x00000800 /* Monster lights itself */
536- #define RF7_GUARDIAN 0x00001000 /* Guardian of a dungeon */
537- #define RF7_CHAMELEON 0x00002000 /* Chameleon can change */
538- #define RF7_XXXX4XXX 0x00004000 /* Now Empty */
539- #define RF7_TANUKI 0x00008000 /* Tanuki disguise */
540- #define RF7_HAS_DARK_1 0x00010000 /* Monster carries darkness */
541- #define RF7_SELF_DARK_1 0x00020000 /* Monster darkens itself */
542- #define RF7_HAS_DARK_2 0x00040000 /* Monster carries darkness */
543- #define RF7_SELF_DARK_2 0x00080000 /* Monster darkens itself */
544-
545323 BIT_FLAGS flags8; /* Flags 8 (wilderness info) */
546- #define RF8_WILD_ONLY 0x00000001
547- #define RF8_WILD_TOWN 0x00000002
548- #define RF8_XXX8X02 0x00000004
549- #define RF8_WILD_SHORE 0x00000008
550- #define RF8_WILD_OCEAN 0x00000010
551- #define RF8_WILD_WASTE 0x00000020
552- #define RF8_WILD_WOOD 0x00000040
553- #define RF8_WILD_VOLCANO 0x00000080
554- #define RF8_XXX8X08 0x00000100
555- #define RF8_WILD_MOUNTAIN 0x00000200
556- #define RF8_WILD_GRASS 0x00000400
557- #define RF8_WILD_ALL 0x80000000
558-
559324 BIT_FLAGS flags9; /* Flags 9 (drops info) */
560- #define RF9_DROP_CORPSE 0x00000001
561- #define RF9_DROP_SKELETON 0x00000002
562- #define RF9_EAT_BLIND 0x00000004
563- #define RF9_EAT_CONF 0x00000008
564- #define RF9_EAT_MANA 0x00000010
565- #define RF9_EAT_NEXUS 0x00000020
566- #define RF9_EAT_SLEEP 0x00000040
567- #define RF9_EAT_BERSERKER 0x00000080
568- #define RF9_EAT_ACIDIC 0x00000100
569- #define RF9_EAT_SPEED 0x00000200
570- #define RF9_EAT_CURE 0x00000400
571- #define RF9_EAT_FIRE_RES 0x00000800
572- #define RF9_EAT_COLD_RES 0x00001000
573- #define RF9_EAT_ACID_RES 0x00002000
574- #define RF9_EAT_ELEC_RES 0x00004000
575- #define RF9_EAT_POIS_RES 0x00008000
576- #define RF9_EAT_INSANITY 0x00010000
577- #define RF9_EAT_DRAIN_EXP 0x00020000
578- #define RF9_EAT_POISONOUS 0x00040000
579- #define RF9_EAT_GIVE_STR 0x00080000
580- #define RF9_EAT_GIVE_INT 0x00100000
581- #define RF9_EAT_GIVE_WIS 0x00200000
582- #define RF9_EAT_GIVE_DEX 0x00400000
583- #define RF9_EAT_GIVE_CON 0x00800000
584- #define RF9_EAT_GIVE_CHR 0x01000000
585- #define RF9_EAT_LOSE_STR 0x02000000
586- #define RF9_EAT_LOSE_INT 0x04000000
587- #define RF9_EAT_LOSE_WIS 0x08000000
588- #define RF9_EAT_LOSE_DEX 0x10000000
589- #define RF9_EAT_LOSE_CON 0x20000000
590- #define RF9_EAT_LOSE_CHR 0x40000000
591- #define RF9_EAT_DRAIN_MANA 0x80000000
592-
593- BIT_FLAGS flagsr; /*!< Flags R (resistances info) Monster bit flags of racial resistances Note: Resist confusion was merged to RFR_NO_CONF */
594- #define RFR_IM_ACID 0x00000001 /* Immunity acid */
595- #define RFR_IM_ELEC 0x00000002 /* Immunity elec */
596- #define RFR_IM_FIRE 0x00000004 /* Immunity fire */
597- #define RFR_IM_COLD 0x00000008 /* Immunity cold */
598- #define RFR_IM_POIS 0x00000010 /* Immunity poison */
599- #define RFR_RES_LITE 0x00000020 /* Resist lite */
600- #define RFR_RES_DARK 0x00000040 /* Resist dark */
601- #define RFR_RES_NETH 0x00000080 /* Resist nether */
602- #define RFR_RES_WATE 0x00000100 /* Resist water */
603- #define RFR_RES_PLAS 0x00000200 /* Resist plasma */
604- #define RFR_RES_SHAR 0x00000400 /* Resist shards */
605- #define RFR_RES_SOUN 0x00000800 /* Resist sound */
606- #define RFR_RES_CHAO 0x00001000 /* Resist chaos */
607- #define RFR_RES_NEXU 0x00002000 /* Resist nexus */
608- #define RFR_RES_DISE 0x00004000 /* Resist disenchantment */
609- #define RFR_RES_WALL 0x00008000 /* Resist force */
610- #define RFR_RES_INER 0x00010000 /* Resist inertia */
611- #define RFR_RES_TIME 0x00020000 /* Resist time */
612- #define RFR_RES_GRAV 0x00040000 /* Resist gravity */
613- #define RFR_RES_ALL 0x00080000 /* Resist all */
614- #define RFR_RES_TELE 0x00100000 /* Resist teleportation */
615- #define RFR_XXX21 0x00200000
616- #define RFR_XXX22 0x00400000
617- #define RFR_XXX23 0x00800000
618- #define RFR_XXX24 0x01000000
619- #define RFR_XXX25 0x02000000
620- #define RFR_XXX26 0x04000000
621- #define RFR_XXX27 0x08000000
622- #define RFR_XXX28 0x10000000
623- #define RFR_XXX29 0x20000000
624- #define RFR_XXX30 0x40000000
625- #define RFR_XXX31 0x80000000
626-
627- BIT_FLAGS a_ability_flags1; /*!< Activate Ability Flags 5 (normal spells) */
628- #define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */
629- #define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */
630- #define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */
631- #define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */
632- #define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */
633- #define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */
634- #define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */
635- #define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */
636- #define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */
637- #define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */
638- #define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */
639- #define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */
640- #define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */
641- #define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */
642- #define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */
643- #define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */
644- #define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */
645- #define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */
646- #define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */
647- #define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */
648- #define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */
649- #define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */
650- #define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */
651- #define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */
652- #define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */
653- #define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */
654- #define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */
655- #define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */
656- #define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */
657- #define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */
658- #define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */
659- #define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */
325+ BIT_FLAGS flagsr; /* Flags R (resistances info) */
660326
327+ BIT_FLAGS a_ability_flags1; /* Activate Ability Flags 5 (normal spells) */
661328 BIT_FLAGS a_ability_flags2; /* Activate Ability Flags 6 (special spells) */
662- #define RF6_HASTE 0x00000001 /* Speed self */
663- #define RF6_HAND_DOOM 0x00000002 /* Hand of Doom */
664- #define RF6_HEAL 0x00000004 /* Heal self */
665- #define RF6_INVULNER 0x00000008 /* INVULNERABILITY! */
666- #define RF6_BLINK 0x00000010 /* Teleport Short */
667- #define RF6_TPORT 0x00000020 /* Teleport Long */
668- #define RF6_WORLD 0x00000040 /* world */
669- #define RF6_SPECIAL 0x00000080 /* Special Attack */
670- #define RF6_TELE_TO 0x00000100 /* Move player to monster */
671- #define RF6_TELE_AWAY 0x00000200 /* Move player far away */
672- #define RF6_TELE_LEVEL 0x00000400 /* Move player vertically */
673- #define RF6_PSY_SPEAR 0x00000800 /* Psyco-spear */
674- #define RF6_DARKNESS 0x00001000 /* Create Darkness */
675- #define RF6_TRAPS 0x00002000 /* Create Traps */
676- #define RF6_FORGET 0x00004000 /* Cause amnesia */
677- #define RF6_RAISE_DEAD 0x00008000 /* Raise Dead */
678- #define RF6_S_KIN 0x00010000 /* Summon "kin" */
679- #define RF6_S_CYBER 0x00020000 /* Summon Cyberdemons! */
680- #define RF6_S_MONSTER 0x00040000 /* Summon Monster */
681- #define RF6_S_MONSTERS 0x00080000 /* Summon Monsters */
682- #define RF6_S_ANT 0x00100000 /* Summon Ants */
683- #define RF6_S_SPIDER 0x00200000 /* Summon Spiders */
684- #define RF6_S_HOUND 0x00400000 /* Summon Hounds */
685- #define RF6_S_HYDRA 0x00800000 /* Summon Hydras */
686- #define RF6_S_ANGEL 0x01000000 /* Summon Angel */
687- #define RF6_S_DEMON 0x02000000 /* Summon Demon */
688- #define RF6_S_UNDEAD 0x04000000 /* Summon Undead */
689- #define RF6_S_DRAGON 0x08000000 /* Summon Dragon */
690- #define RF6_S_HI_UNDEAD 0x10000000 /* Summon Greater Undead */
691- #define RF6_S_HI_DRAGON 0x20000000 /* Summon Ancient Dragon */
692- #define RF6_S_AMBERITES 0x40000000 /* Summon Amberites */
693- #define RF6_S_UNIQUE 0x80000000 /* Summon Unique Monster */
694-
695329 BIT_FLAGS a_ability_flags3; /* Activate Ability Flags 7 (implementing) */
696-
697330 BIT_FLAGS a_ability_flags4; /* Activate Ability Flags 8 (implementing) */
698331
699332 monster_blow blow[4]; /* Up to four blows per round */
700-
701333 MONRACE_IDX reinforce_id[6];
702334 DICE_NUMBER reinforce_dd[6];
703335 DICE_SID reinforce_ds[6];
@@ -1607,7 +1239,26 @@ struct player_type
16071239
16081240 FEED food; /* Current nutrition */
16091241
1610- BIT_FLAGS special_attack; /* Special attack capacity -LM- */
1242+ /*
1243+ * p_ptr->special_attackによるプレイヤーの攻撃状態の定義 / Bit flags for the "p_ptr->special_attack" variable. -LM-
1244+ *
1245+ * Note: The elemental and poison attacks should be managed using the
1246+ * function "set_ele_attack", in spell2.c. This provides for timeouts and
1247+ * prevents the player from getting more than one at a time.
1248+ */
1249+ BIT_FLAGS special_attack;
1250+ #define ATTACK_CONFUSE 0x00000001 /*!< プレイヤーのステータス:混乱打撃 */
1251+ #define ATTACK_XXX1 0x00000002 /*!< プレイヤーのステータス:未使用1 */
1252+ #define ATTACK_XXX2 0x00000004 /*!< プレイヤーのステータス:未使用2 */
1253+ #define ATTACK_XXX3 0x00000008 /*!< プレイヤーのステータス:未使用3 */
1254+ #define ATTACK_ACID 0x00000010 /*!< プレイヤーのステータス:魔法剣/溶解 */
1255+ #define ATTACK_ELEC 0x00000020 /*!< プレイヤーのステータス:魔法剣/電撃 */
1256+ #define ATTACK_FIRE 0x00000040 /*!< プレイヤーのステータス:魔法剣/火炎 */
1257+ #define ATTACK_COLD 0x00000080 /*!< プレイヤーのステータス:魔法剣/冷凍 */
1258+ #define ATTACK_POIS 0x00000100 /*!< プレイヤーのステータス:魔法剣/毒殺 */
1259+ #define ATTACK_HOLY 0x00000200 /*!< プレイヤーのステータス:対邪?(未使用) */
1260+ #define ATTACK_SUIKEN 0x00000400 /*!< プレイヤーのステータス:酔拳 */
1261+
16111262 BIT_FLAGS special_defense; /* Special block capacity -LM- */
16121263 ACTION_IDX action; /* Currently action */
16131264
Show on old repository browser