X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fdefines.h;h=6a496bdbc492f4c24bd5b280de54181c6b47daaa;hb=0df8136af8bfb1ca6a75d988c0382ed62c3df789;hp=d365f06cf470dff6a5b5c5bc676c9d6070fdc03b;hpb=8046dcb5833b055c4cec0521599c7cca2a79bdb4;p=hengband%2Fhengband.git diff --git a/src/defines.h b/src/defines.h index d365f06cf..6a496bdbc 100644 --- a/src/defines.h +++ b/src/defines.h @@ -1,437 +1,407 @@ -/* File: defines.h */ - -/* - * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke - * - * This software may be copied and distributed for educational, research, - * and not for profit purposes provided that this copyright and statement - * are included in all such copies. Other copyrights may also apply. - */ - -/* Purpose: global constants and macro definitions */ - - -/* - * Do not edit this file unless you know *exactly* what you are doing. - * - * Some of the values in this file were chosen to preserve game balance, - * while others are hard-coded based on the format of old save-files, the - * definition of arrays in various places, mathematical properties, fast - * computation, storage limits, or the format of external text files. - * - * Changing some of these values will induce crashes or memory errors or - * savefile mis-reads. Most of the comments in this file are meant as - * reminders, not complete descriptions, and even a complete knowledge - * of the source may not be sufficient to fully understand the effects - * of changing certain definitions. - * - * Lastly, note that the code does not always use the symbolic constants - * below, and sometimes uses various hard-coded values that may not even - * be defined in this file, but which may be related to definitions here. - * This is of course bad programming practice, but nobody is perfect... - * - * For example, there are MANY things that depend on the screen being - * 80x24, with the top line used for messages, the bottom line being - * used for status, and exactly 22 lines used to show the dungeon. - * Just because your screen can hold 46 lines does not mean that the - * game will work if you try to use 44 lines to show the dungeon. - * - * You have been warned. - */ - - -/* - * Name of the version/variant - */ -#define VERSION_NAME "Hengband" - - -/* - * "Program Version Number" of the game - * +/*! + * @file defines.h + * @brief 主要なマクロ定義ヘッダ / Purpose: global constants and macro definitions + * @date 2014/01/02 + * @author + * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke\n + *\n + * This software may be copied and distributed for educational, research,\n + * and not for profit purposes provided that this copyright and statement\n + * are included in all such copies. Other copyrights may also apply.\n + * @details + * Do not edit this file unless you know *exactly* what you are doing.\n + *\n + * Some of the values in this file were chosen to preserve game balance,\n + * while others are hard-coded based on the format of old save-files, the\n + * definition of arrays in various places, mathematical properties, fast\n + * computation, storage limits, or the format of external text files.\n + *\n + * Changing some of these values will induce crashes or memory errors or\n + * savefile mis-reads. Most of the comments in this file are meant as\n + * reminders, not complete descriptions, and even a complete knowledge\n + * of the source may not be sufficient to fully understand the effects\n + * of changing certain definitions.\n + *\n + * Lastly, note that the code does not always use the symbolic constants\n + * below, and sometimes uses various hard-coded values that may not even\n + * be defined in this file, but which may be related to definitions here.\n + * This is of course bad programming practice, but nobody is perfect...\n + *\n + * For example, there are MANY things that depend on the screen being\n + * 80x24, with the top line used for messages, the bottom line being\n + * used for status, and exactly 22 lines used to show the dungeon.\n + * Just because your screen can hold 46 lines does not mean that the\n + * game will work if you try to use 44 lines to show the dungeon.\n + *\n + * You have been warned.\n + */ + +#define VERSION_NAME "Hengband" /*!< バリアント名称 / Name of the version/variant */ + +/*! + * @brief ゲームのバージョン番号定義 / "Program Version Number" of the game + * @details + * 本FAKE_VERSIONそのものは未使用である。Zangと整合性を合わせるための疑似的処理のためFAKE_VER_MAJORは実値-10が該当のバージョン番号となる。 + *
  * FAKE_VER_MAJOR=1,2 were reserved for ZAngband version 1.x.x/2.x.x .
- *
  * Program Version of Hengband version is
  *   "(FAKE_VER_MAJOR-10).(FAKE_VER_MINOR).(FAKE_VER_PATCH)".
+ * 
*/ #define FAKE_VERSION 0 -#define FAKE_VER_MAJOR 12 -#define FAKE_VER_MINOR 1 -#define FAKE_VER_PATCH 3 +#define FAKE_VER_MAJOR 12 /*!< ゲームのバージョン番号定義(メジャー番号 + 10) */ +#define FAKE_VER_MINOR 2 /*!< ゲームのバージョン番号定義(マイナー番号) */ +#define FAKE_VER_PATCH 0 /*!< ゲームのバージョン番号定義(パッチ番号) */ +#define FAKE_VER_EXTRA 15 /*!< ゲームのバージョン番号定義(エクストラ番号) */ -/* - * "Savefile Version Number" for Hengband 1.1.1 and later - * + + /*! + * @brief バージョンが開発版が安定版かを返す + */ +#define IS_STABLE_VERSION (FAKE_VER_MINOR % 2 == 0 && FAKE_VER_EXTRA == 0) + +/*! + * @brief セーブファイル上のバージョン定義(メジャー番号) / "Savefile Version Number" for Hengband 1.1.1 and later + * @details + * 当面FAKE_VER_*を参照しておく。 + *
  * First three digits may be same as the Program Version.  But not
  * always same.  It means that newer version may preserves lower
  * compatibility with the older version.
- *
  * For example, newer Hengband 1.4.4 creates savefiles marked with
  * Savefile Version 1.4.0.0 .  It means that Hengband 1.4.0 can load a
  * savefile of Hengband 1.4.4 (lower compatibility!).
- *
  * Upper compatibility is always guaranteed.
+ * 
*/ -#define H_VER_MAJOR 2 -#define H_VER_MINOR 1 -#define H_VER_PATCH 2 -#define H_VER_EXTRA 3 +#define H_VER_MAJOR (FAKE_VER_MAJOR-10) /*!< セーブファイル上のバージョン定義(メジャー番号) */ +#define H_VER_MINOR FAKE_VER_MINOR /*!< セーブファイル上のバージョン定義(マイナー番号) */ +#define H_VER_PATCH FAKE_VER_PATCH /*!< セーブファイル上のバージョン定義(パッチ番号) */ +#define H_VER_EXTRA FAKE_VER_EXTRA /*!< セーブファイル上のバージョン定義(エクストラ番号) */ +#define ANGBAND_2_8_1 /*!< Angband 2.8.1以降から有効な処理分岐を定義 */ +#define ZANGBAND /*!< Zangband 以降から有効な処理分岐を定義 */ -#define ANGBAND_2_8_1 -#define ZANGBAND - -/* - * Number of grids in each block (vertically) - * Probably hard-coded to 11, see "generate.c" +/*! + * @brief generate.cで用いられる基本的なブロック数単位(垂直方向) + * Number of grids in each block (vertically) Probably hard-coded to 11, see "generate.c" */ -#define BLOCK_HGT 11 +#define BLOCK_HGT 11 -/* - * Number of grids in each block (horizontally) - * Probably hard-coded to 11, see "generate.c" +/*! + * @brief generate.cで用いられる基本的なブロック数単位(水平方向) + * Number of grids in each block (horizontally) Probably hard-coded to 11, see "generate.c" */ -#define BLOCK_WID 11 - +#define BLOCK_WID 11 -/* - * Number of grids in each panel (vertically) - * Must be a multiple of BLOCK_HGT +/*! + * @brief 表示上の基本的なパネル単位(垂直方向、BLOCK_HGTの倍数で設定すること) + * Number of grids in each panel (vertically) Must be a multiple of BLOCK_HGT */ -#define PANEL_HGT 11 +#define PANEL_HGT 11 -/* - * Number of grids in each panel (horizontally) - * Must be a multiple of BLOCK_WID +/*! + * @brief 表示上の基本的なパネル単位(水平方向、BLOCK_WIDの倍数で設定すること) + * Number of grids in each panel (horizontally) Must be a multiple of BLOCK_WID */ -#define PANEL_WID 33 - +#define PANEL_WID 33 -/* - * Number of grids used to display the dungeon (vertically). - * Must be a multiple of 11, probably hard-coded to 22. +/*! + * @brief 表示上の基本的なブロック単位(垂直方向、PANEL_HGTの倍数で設定すること) + * Number of grids used to display the dungeon (vertically). Must be a multiple of 11, probably hard-coded to 22. */ -#define SCREEN_HGT 22 +#define SCREEN_HGT 22 -/* - * Number of grids used to display the dungeon (horizontally). - * Must be a multiple of 33, probably hard-coded to 66. +/*! + * @brief 表示上の基本的なブロック単位(水平方向、PANEL_WIDの倍数で設定すること) + * Number of grids used to display the dungeon (horizontally). Must be a multiple of 33, probably hard-coded to 66. */ -#define SCREEN_WID 66 - +#define SCREEN_WID 66 -/* - * Maximum dungeon height in grids, must be a multiple of SCREEN_HGT, - * probably hard-coded to SCREEN_HGT * 3. +/*! + * @brief 表示上のダンジョンの最大垂直サイズ(SCREEN_HGTの3倍が望ましい) + * Maximum dungeon height in grids, must be a multiple of SCREEN_HGT, probably hard-coded to SCREEN_HGT * 3. */ -#define MAX_HGT 66 +#define MAX_HGT 66 -/* - * Maximum dungeon width in grids, must be a multiple of SCREEN_WID, - * probably hard-coded to SCREEN_WID * 3. +/*! + * @brief 表示上のダンジョンの最大水平サイズ(SCREEN_WIDの3倍が望ましい) + * Maximum dungeon width in grids, must be a multiple of SCREEN_WID, probably hard-coded to SCREEN_WID * 3. */ -#define MAX_WID 198 - +#define MAX_WID 198 /* * Quest constants */ -#define MIN_RANDOM_QUEST 40 -#define MAX_RANDOM_QUEST 49 +#define MIN_RANDOM_QUEST 40 /* MAX_RANDOM_QUEST)) -#define QUEST_TOWER1 5 -#define QUEST_TOWER2 6 -#define QUEST_TOWER3 7 -#define QUEST_OBERON 8 -#define QUEST_SERPENT 9 +#define QUEST_TOWER1 5 /* + * Was 512... 256 quarks added for random artifacts
*/ #define QUARK_MAX 768 -/* Was 512... 256 quarks added for random artifacts */ /* * OPTION: Maximum number of messages to remember (see "io.c") @@ -526,152 +488,140 @@ #define STORE_SHUFFLE 21 /* 1/Chance (per day) of an owner changing */ #define STORE_TICKS 1000 /* Number of ticks between turnovers */ - -/* - * Random energy - */ +/*! @brief 消費する行動エネルギー値を正規乱数で返す(中央100/分散25) / Random energy */ #define ENERGY_NEED() (randnor(100, 25)) - -/* - * Extract energy from speed (Assumes that SPEED is unsigned) - */ -#define SPEED_TO_ENERGY(SPEED) \ - (((SPEED) > 199) ? 49 : extract_energy[(SPEED)]) +/*! @brief 加速値に応じた基本行動エネルギー消費量を返す / Extract energy from speed (Assumes that SPEED is unsigned) */ +#define SPEED_TO_ENERGY(SPEED) (((SPEED) > 199) ? 49 : extract_energy[(SPEED)]) /* * Misc constants */ -#define TOWN_DAWN 10000 /* Number of ticks from dawn to dawn XXX */ -#define TURNS_PER_TICK 10L /* Number of energy-gain-turns per ticks */ -#define MAX_DAYS 20000 /* Maximum days */ -#define BREAK_GLYPH 550 /* Rune of protection resistance */ -#define BREAK_MINOR_GLYPH 299 /* For explosive runes */ -#define BTH_PLUS_ADJ 3 /* Adjust BTH per plus-to-hit */ -#define MON_MULT_ADJ 8 /* High value slows multiplication */ -#define MON_SUMMON_ADJ 2 /* Adjust level of summoned creatures */ -#define MON_DRAIN_LIFE 2 /* Percent of player exp drained per hit */ -#define USE_DEVICE 3 /* x> Harder devices x< Easier devices */ +#define TOWN_DAWN 10000 /*!< 1日分のターン / Number of ticks from dawn to dawn XXX */ +#define TURNS_PER_TICK 10L /*!< 時間経過処理を行うターン数の刻み / Number of energy-gain-turns per ticks */ +#define INN_DUNGEON_TURN_ADJ 10 /*!< 宿屋で時間をつぶした場合に増えるdungeon_turnの倍率 */ +#define MAX_DAYS 20000 /*!< 内部処理中で保持される最大日数 / Maximum days */ +#define BREAK_GLYPH 550 /*!< 守りのルーンの強靭度 / Rune of protection resistance */ +#define BREAK_MINOR_GLYPH 299 /*!< 爆発のルーンの発動しやすさ / For explosive runes */ +#define BTH_PLUS_ADJ 3 /*!< 武器経験値及びプレイヤーの打撃/射撃能力に応じた修正値倍率 / Adjust BTH per plus-to-hit */ +#define MON_MULT_ADJ 8 /*!< モンスターの増殖しにくさの基本倍率 / High value slows multiplication */ +#define MON_SUMMON_ADJ 2 /*!< 現在未使用 Adjust level of summoned creatures */ +#define MON_DRAIN_LIFE 2 /*!< モンスターの打撃によるプレイヤーの経験値吸収基本倍率(%) / Percent of player exp drained per hit */ +#define USE_DEVICE 3 /*!< 魔道具の最低失敗基準値 x> Harder devices x< Easier devices */ /* "Biases" for random artifact gen */ -#define BIAS_ELEC 1 -#define BIAS_POIS 2 -#define BIAS_FIRE 3 -#define BIAS_COLD 4 -#define BIAS_ACID 5 -#define BIAS_STR 6 -#define BIAS_INT 7 -#define BIAS_WIS 8 -#define BIAS_DEX 9 -#define BIAS_CON 10 -#define BIAS_CHR 11 -#define BIAS_CHAOS 12 -#define BIAS_PRIESTLY 13 -#define BIAS_NECROMANTIC 14 -#define BIAS_LAW 15 -#define BIAS_ROGUE 16 -#define BIAS_MAGE 17 -#define BIAS_WARRIOR 18 -#define BIAS_RANGER 19 - +#define BIAS_ELEC 1 /*!< ランダムアーティファクトバイアス:電撃 */ +#define BIAS_POIS 2 /*!< ランダムアーティファクトバイアス:毒 */ +#define BIAS_FIRE 3 /*!< ランダムアーティファクトバイアス:火炎 */ +#define BIAS_COLD 4 /*!< ランダムアーティファクトバイアス:冷気 */ +#define BIAS_ACID 5 /*!< ランダムアーティファクトバイアス:酸 */ +#define BIAS_STR 6 /*!< ランダムアーティファクトバイアス:腕力 */ +#define BIAS_INT 7 /*!< ランダムアーティファクトバイアス:知力 */ +#define BIAS_WIS 8 /*!< ランダムアーティファクトバイアス:賢さ */ +#define BIAS_DEX 9 /*!< ランダムアーティファクトバイアス:器用さ */ +#define BIAS_CON 10 /*!< ランダムアーティファクトバイアス:耐久 */ +#define BIAS_CHR 11 /*!< ランダムアーティファクトバイアス:魅力 */ +#define BIAS_CHAOS 12 /*!< ランダムアーティファクトバイアス:混沌 */ +#define BIAS_PRIESTLY 13 /*!< ランダムアーティファクトバイアス:プリースト系 */ +#define BIAS_NECROMANTIC 14 /*!< ランダムアーティファクトバイアス:死霊 */ +#define BIAS_LAW 15 /*!< ランダムアーティファクトバイアス:法 */ +#define BIAS_ROGUE 16 /*!< ランダムアーティファクトバイアス:盗賊系 */ +#define BIAS_MAGE 17 /*!< ランダムアーティファクトバイアス:メイジ系 */ +#define BIAS_WARRIOR 18 /*!< ランダムアーティファクトバイアス:戦士系 */ +#define BIAS_RANGER 19 /*!< ランダムアーティファクトバイアス:レンジャー系 */ +#define MAX_BIAS 20 /*!< ランダムアーティファクトバイアス:最大数 */ /*** Pet constants ***/ /* - * Commands + * ペットに関するコマンド群 / Pet Commands */ -#define PET_DISMISS 1 -#define PET_TARGET 2 -#define PET_STAY_CLOSE 3 -#define PET_FOLLOW_ME 4 -#define PET_SEEK_AND_DESTROY 5 -#define PET_ALLOW_SPACE 6 -#define PET_STAY_AWAY 7 -#define PET_OPEN_DOORS 8 -#define PET_TAKE_ITEMS 9 -#define PET_TELEPORT 10 -#define PET_ATTACK_SPELL 11 -#define PET_SUMMON_SPELL 12 -#define PET_BALL_SPELL 13 -#define PET_RIDING 14 -#define PET_NAME 15 -#define PET_RYOUTE 16 +#define PET_DISMISS 1 /*!< ペットに関するコマンド: ペットを離す */ +#define PET_TARGET 2 /*!< ペットに関するコマンド: ペットのターゲットを指定 */ +#define PET_STAY_CLOSE 3 /*!< ペットに関するコマンド: 近くにいろ */ +#define PET_FOLLOW_ME 4 /*!< ペットに関するコマンド: ついて来い */ +#define PET_SEEK_AND_DESTROY 5 /*!< ペットに関するコマンド: 敵を見つけて倒せ */ +#define PET_ALLOW_SPACE 6 /*!< ペットに関するコマンド: 少し離れていろ */ +#define PET_STAY_AWAY 7 /*!< ペットに関するコマンド: 離れていろ */ +#define PET_OPEN_DOORS 8 /*!< ペットに関するコマンド: ドア解放の許可 */ +#define PET_TAKE_ITEMS 9 /*!< ペットに関するコマンド: アイテム取得の許可 */ +#define PET_TELEPORT 10 /*!< ペットに関するコマンド: テレポートの許可 */ +#define PET_ATTACK_SPELL 11 /*!< ペットに関するコマンド: 攻撃魔法の許可 */ +#define PET_SUMMON_SPELL 12 /*!< ペットに関するコマンド: 召喚魔法の許可 */ +#define PET_BALL_SPELL 13 /*!< ペットに関するコマンド: プレイヤーを魔法に巻き込む許可 */ +#define PET_RIDING 14 /*!< ペットに関するコマンド: ペットに乗る */ +#define PET_NAME 15 /*!< ペットに関するコマンド: ペットに名前をつける */ +#define PET_RYOUTE 16 /*!< ペットに関するコマンド: 騎乗中に両手で武器を使うかどうか */ /* * Follow distances */ -#define PET_CLOSE_DIST 1 -#define PET_FOLLOW_DIST 6 -#define PET_SEEK_DIST 10 -#define PET_DESTROY_DIST 255 -#define PET_SPACE_DIST (-10) -#define PET_AWAY_DIST (-25) +#define PET_CLOSE_DIST 1 /*!<ペットの行動範囲…近くにいろ */ +#define PET_FOLLOW_DIST 6 /*!<ペットの行動範囲…ついて来い */ +#define PET_SEEK_DIST 10 /*!<ペットの行動範囲…特になし? */ +#define PET_DESTROY_DIST 255 /*!<ペットの行動範囲…敵を見つけて倒せ */ +#define PET_SPACE_DIST (-10) /*!<ペットの行動範囲…少し離れていろ */ +#define PET_AWAY_DIST (-25) /*!<ペットの行動範囲…離れていろ */ -#define PF_OPEN_DOORS 0x0001 -#define PF_PICKUP_ITEMS 0x0002 -#define PF_TELEPORT 0x0004 -#define PF_ATTACK_SPELL 0x0008 -#define PF_SUMMON_SPELL 0x0010 -#define PF_BALL_SPELL 0x0020 -#define PF_RYOUTE 0x0040 +#define PF_OPEN_DOORS 0x0001 /*!< ペットの行動許可…ドアを開けてよい */ +#define PF_PICKUP_ITEMS 0x0002 /*!< ペットの行動許可…アイテムを拾ってよい */ +#define PF_TELEPORT 0x0004 /*!< ペットの行動許可…テレポート魔法を使ってよい */ +#define PF_ATTACK_SPELL 0x0008 /*!< ペットの行動許可…攻撃魔法を使ってよい */ +#define PF_SUMMON_SPELL 0x0010 /*!< ペットの行動許可…召喚魔法を使ってよい */ +#define PF_BALL_SPELL 0x0020 /*!< ペットの行動許可…ボール魔法でプレイヤーを巻き込んでよい */ +#define PF_RYOUTE 0x0040 /*!< プレイヤーの騎乗フラグ…武器を片手で持つ */ #define CAN_TWO_HANDS_WIELDING() (!p_ptr->riding || (p_ptr->pet_extra_flags & PF_RYOUTE)) -/* - * There is a 1/20 (5%) chance of inflating the requested object_level +/*! + * @brief ベースアイテム生成階層が加算される確率 + * @details + * There is a 1/10 (10%) chance of inflating the requested object_level * during the creation of an object (see "get_obj_num()" in "object.c"). * Lower values yield better objects more often. */ #define GREAT_OBJ 10 -/* +/*! + * @brief 深層モンスターが生成される基本確率(1/x) + * @details * There is a 1/25 (4%) chance of inflating the requested monster_level * during the creation of a monsters (see "get_mon_num()" in "monster.c"). * Lower values yield harder monsters more often. */ #define NASTY_MON_BASE 25 -#define NASTY_MON_MAX 3 -#define NASTY_MON_PLUS_MAX 25 +#define NASTY_MON_MAX 3 /*! 深層モンスターが1フロアに生成される最大数 */ +#define NASTY_MON_PLUS_MAX 25 /*! 深層モンスターの階層加算最大量 */ -/* 1/x chance of hurting even if invulnerable! */ -#define PENETRATE_INVULNERABILITY 13 +#define PENETRATE_INVULNERABILITY 13 /*! 無敵化が破られる確率(1/x) / 1/x chance of hurting even if invulnerable! */ /* * Refueling constants */ -#define FUEL_TORCH 5000 /* Maximum amount of fuel in a torch */ -#define FUEL_LAMP 15000 /* Maximum amount of fuel in a lantern */ - +#define FUEL_TORCH 5000 /*! 松明の基本寿命値 / Maximum amount of fuel in a torch */ +#define FUEL_LAMP 15000 /*! ランタンの基本寿命値 / Maximum amount of fuel in a lantern */ /* * More maximum values */ -#define MAX_SIGHT 20 /* Maximum view distance */ -#define MAX_RANGE (p_ptr->inside_battle ? 36 : 18) /* Maximum range (spells, etc) */ -#define AAF_LIMIT 100 /* Limit of sensing radius */ - +#define MAX_SIGHT 20 /*!< プレイヤーの最大視界範囲(マス) / Maximum view distance */ +#define MAX_RANGE (p_ptr->inside_battle ? 36 : 18) /*!< プレイヤーの攻撃射程(マス) / Maximum range (spells, etc) */ +#define AAF_LIMIT 100 /*!< モンスターの限界感知範囲(マス) Limit of sensing radius */ +#define MIN_M_ALLOC_TD 4 /*!< 街(昼間)の最低住人配置数 / The town starts out with 4 residents during the day */ +#define MIN_M_ALLOC_TN 8 /*!< 街(夜間)の最低住人配置数 / The town starts out with 8 residents during the night */ -/* - * The town starts out with 4 residents during the day - */ -#define MIN_M_ALLOC_TD 4 - -/* - * The town starts out with 8 residents during the night - */ -#define MIN_M_ALLOC_TN 8 - - -/* +/*! + * @brief モンスター増殖の最大数 + * @details * A monster can only "multiply" (reproduce) if there are fewer than 100 * monsters on the level capable of such spontaneous reproduction. This * is a hack which prevents the "m_list[]" array from exploding due to @@ -679,7 +629,6 @@ */ #define MAX_REPRO 100 - /* * Player constants */ @@ -928,6 +877,8 @@ /*** Screen Locations ***/ +#define VER_INFO_ROW 3 //!< タイトル表記(行) + /* * Some screen locations for various display routines * Currently, row 8 and 15 are the only "blank" rows. @@ -1044,123 +995,120 @@ * Originally from UnAngband, and modified into TR-like style in Hengband */ +#define FF_LOS 0 /*!< 視界が通る地形である */ +#define FF_PROJECT 1 /*!< 飛び道具が通過できる地形である */ +#define FF_MOVE 2 /*!< 移動可能な地形である */ +#define FF_PLACE 3 /*!< モンスター配置をしても良い地形である(cave_empty_bold/cave_empty_gridで利用) */ +#define FF_DROP 4 /*!< アイテムを落としてよい地形である */ +#define FF_SECRET 5 /*!< 隠し扉やトラップが潜んでいる地形である */ +#define FF_NOTICE 6 /*!< 何か興味を引くものがある地形である(シフトキー+方向で走行中の時に止まる基準) */ +#define FF_REMEMBER 7 /*!< 常に記憶対象となる地形である(記憶喪失時に忘れたりしなくなる) */ +#define FF_OPEN 8 /*!< 開けるコマンドの対象となる地形である */ +#define FF_CLOSE 9 /*!< 閉じるコマンドの対象となる地形である */ +#define FF_BASH 10 /*!< 体当たりコマンドの対象となる地形である */ +#define FF_SPIKE 11 /*!< くさびを打つコマンドの対象となる地形である */ +#define FF_DISARM 12 /*!< 解除コマンドの対象となる地形である */ +#define FF_STORE 13 /*!< 店舗の入口となる地形である */ +#define FF_TUNNEL 14 /*!< 魔王変化などで掘り進められる地形である */ +#define FF_MAY_HAVE_GOLD 15 /*!< 何か財宝を隠した可能性のある地形である?(f_infoに使用している地形なし) */ +#define FF_HAS_GOLD 16 /*!< 財宝を含んだ地形である */ +#define FF_HAS_ITEM 17 /*!< アイテムを含んだ地形である */ +#define FF_DOOR 18 /*!< ドアのある地形である */ +#define FF_TRAP 19 /*!< トラップのある地形である */ +#define FF_STAIRS 20 /*!< 階段のある地形である */ +#define FF_GLYPH 21 /*!< 守りのルーンが張られた地形である */ +#define FF_LESS 22 /*!< 階上に通じる地形である */ +#define FF_MORE 23 /*!< 階下に通じる地形である */ +#define FF_AVOID_RUN 24 /*!< 自動移動機能時に障害として迂回すべき地形である */ +#define FF_FLOOR 25 /*!< 床のある地形である */ +#define FF_WALL 26 /*!< 壁のある地形である */ +#define FF_PERMANENT 27 /*!< 絶対に破壊できない永久地形である */ +/* #define FF_XXX00 28 未定義 */ +/* #define FF_XXX01 29 未定義 */ +/* #define FF_XXX02 30 未定義 */ +#define FF_HIT_TRAP 31 /*!< トラップのある地形である(TRAPと常に重複している?) */ +/* #define FF_BRIDGE 32 未使用 */ +/* #define FF_RIVER 33 未使用 */ +/* #define FF_LAKE 34 未使用 */ +/* #define FF_BRIDGED 35 未使用 */ +/* #define FF_COVERED 36 未使用 */ +#define FF_GLOW 37 /*!< 常に光っている地形である */ +#define FF_ENSECRET 38 /*!< 不明(f_info.txt上で利用している地形がない) */ +#define FF_WATER 39 /*!< 水のある地形である */ +#define FF_LAVA 40 /*!< 溶岩のある地形である */ +#define FF_SHALLOW 41 /*!< 浅い地形である */ +#define FF_DEEP 42 /*!< 深い地形である */ +/* #define FF_FILLED 43 */ /*!< 未使用 */ +#define FF_HURT_ROCK 44 /*!< 岩石溶解の対象となる地形である */ +/* #define FF_HURT_FIRE 45 */ /*!< 未使用 */ +/* #define FF_HURT_COLD 46 */ /*!< 未使用 */ +/* #define FF_HURT_ACID 47 */ /*!< 未使用 */ +/* #define FF_ICE 48 */ /*!< 未使用 */ +/* #define FF_ACID 49 */ /*!< 未使用 */ +/* #define FF_OIL 50 */ /*!< 未使用 */ +/* #define FF_XXX04 51 */ /*!< 未使用 */ +/* #define FF_CAN_CLIMB 52 */ /*!< 未使用 */ +#define FF_CAN_FLY 53 /*!< 飛行可能な地形である */ +#define FF_CAN_SWIM 54 /*!< 泳ぐことが可能な地形である */ +#define FF_CAN_PASS 55 /*!< 通過可能な地形である */ +/* #define FF_CAN_OOZE 56 */ /*!< 未使用 */ +#define FF_CAN_DIG 57 /*!< 掘削コマンドの対象となる地形である */ +/* #define FF_HIDE_ITEM 58 未使用 */ +/* #define FF_HIDE_SNEAK 59 未使用 */ +/* #define FF_HIDE_SWIM 60 未使用 */ +/* #define FF_HIDE_DIG 61 未使用 */ +/* #define FF_KILL_HUGE 62 未使用 */ +/* #define FF_KILL_MOVE 63 未使用 */ +/* #define FF_PICK_TRAP 64 未使用 */ +/* #define FF_PICK_DOOR 65 未使用 */ +/* #define FF_ALLOC 66 未使用 */ +/* #define FF_CHEST 67 未使用 */ +/* #define FF_DROP_1D2 68 未使用 */ +/* #define FF_DROP_2D2 69 未使用 */ +/* #define FF_DROP_GOOD 70 未使用 */ +/* #define FF_DROP_GREAT 71 未使用 */ +/* #define FF_HURT_POIS 72 未使用 */ +/* #define FF_HURT_ELEC 73 未使用 */ +/* #define FF_HURT_WATER 74 未使用 */ +/* #define FF_HURT_BWATER 75 未使用 */ +/* #define FF_USE_FEAT 76 未使用 */ +/* #define FF_GET_FEAT 77 未使用 */ +/* #define FF_GROUND 78 未使用 */ +/* #define FF_OUTSIDE 79 未使用 */ +/* #define FF_EASY_HIDE 80 未使用 */ +/* #define FF_EASY_CLIMB 81 未使用 */ +/* #define FF_MUST_CLIMB 82 未使用 */ +#define FF_TREE 83 /*!< 木の生えた地形である */ +/* #define FF_NEED_TREE 84 未使用 */ +/* #define FF_BLOOD 85 未使用 */ +/* #define FF_DUST 86 未使用 */ +/* #define FF_SLIME 87 未使用 */ +#define FF_PLANT 88 /*!< 植物の生えた地形である */ +/* #define FF_XXX2 89 未定義 */ +/* #define FF_INSTANT 90 未使用 */ +/* #define FF_EXPLODE 91 未使用 */ +/* #define FF_TIMED 92 未使用 */ +/* #define FF_ERUPT 93 未使用 */ +/* #define FF_STRIKE 94 未使用 */ +/* #define FF_SPREAD 95 未使用 */ +#define FF_SPECIAL 96 /*!< クエストやダンジョンに関わる特別な地形である */ +#define FF_HURT_DISI 97 /*!< 分解属性の対象となる地形である */ +#define FF_QUEST_ENTER 98 /*!< クエストの入り口である */ +#define FF_QUEST_EXIT 99 /*!< クエストの出口である */ +#define FF_QUEST 100 /*!< クエストに関する地形である */ +#define FF_SHAFT 101 /*!< 坑道である。(2階層移動する階段である) */ +#define FF_MOUNTAIN 102 /*!< ダンジョンの山地形である */ +#define FF_BLDG 103 /*!< 施設の入り口である */ +#define FF_MINOR_GLYPH 104 /*!< 爆発のルーンのある地形である */ +#define FF_PATTERN 105 /*!< パターンのある地形である */ +#define FF_TOWN 106 /*!< 広域マップ用の街がある地形である */ +#define FF_ENTRANCE 107 /*!< 広域マップ用のダンジョンがある地形である */ +#define FF_MIRROR 108 /*!< 鏡使いの鏡が張られた地形である */ +#define FF_UNPERM 109 /*!< 破壊不能な地形である(K:フラグ向け?) */ +#define FF_TELEPORTABLE 110 /*!< テレポート先の対象となる地形である */ +#define FF_CONVERT 111 /*!< 地形生成処理中の疑似フラグ */ +#define FF_GLASS 112 /*!< ガラス製の地形である */ -#define FF_LOS 0 -#define FF_PROJECT 1 -#define FF_MOVE 2 -#define FF_PLACE 3 -#define FF_DROP 4 -#define FF_SECRET 5 -#define FF_NOTICE 6 -#define FF_REMEMBER 7 -#define FF_OPEN 8 -#define FF_CLOSE 9 -#define FF_BASH 10 -#define FF_SPIKE 11 -#define FF_DISARM 12 -#define FF_STORE 13 -#define FF_TUNNEL 14 -#define FF_MAY_HAVE_GOLD 15 -#define FF_HAS_GOLD 16 -#define FF_HAS_ITEM 17 -#define FF_DOOR 18 -#define FF_TRAP 19 -#define FF_STAIRS 20 -#define FF_GLYPH 21 -#define FF_LESS 22 -#define FF_MORE 23 -#define FF_AVOID_RUN 24 -#define FF_FLOOR 25 -#define FF_WALL 26 -#define FF_PERMANENT 27 -/* #define FF_XXX00 28 */ -/* #define FF_XXX01 29 */ -/* #define FF_XXX02 30 */ -#define FF_HIT_TRAP 31 - -/* #define FF_BRIDGE 32 */ -/* #define FF_RIVER 33 */ -/* #define FF_LAKE 34 */ -/* #define FF_BRIDGED 35 */ -/* #define FF_COVERED 36 */ -#define FF_GLOW 37 -#define FF_ENSECRET 38 -#define FF_WATER 39 -#define FF_LAVA 40 -#define FF_SHALLOW 41 -#define FF_DEEP 42 -/* #define FF_FILLED 43 */ -#define FF_HURT_ROCK 44 -/* #define FF_HURT_FIRE 45 */ -/* #define FF_HURT_COLD 46 */ -/* #define FF_HURT_ACID 47 */ -/* #define FF_ICE 48 */ -/* #define FF_ACID 49 */ -/* #define FF_OIL 50 */ -/* #define FF_XXX04 51 */ -/* #define FF_CAN_CLIMB 52 */ -#define FF_CAN_FLY 53 -#define FF_CAN_SWIM 54 -#define FF_CAN_PASS 55 -/* #define FF_CAN_OOZE 56 */ -#define FF_CAN_DIG 57 -/* #define FF_HIDE_ITEM 58 */ -/* #define FF_HIDE_SNEAK 59 */ -/* #define FF_HIDE_SWIM 60 */ -/* #define FF_HIDE_DIG 61 */ -/* #define FF_KILL_HUGE 62 */ -/* #define FF_KILL_MOVE 63 */ - -/* #define FF_PICK_TRAP 64 */ -/* #define FF_PICK_DOOR 65 */ -/* #define FF_ALLOC 66 */ -/* #define FF_CHEST 67 */ -/* #define FF_DROP_1D2 68 */ -/* #define FF_DROP_2D2 69 */ -/* #define FF_DROP_GOOD 70 */ -/* #define FF_DROP_GREAT 71 */ -/* #define FF_HURT_POIS 72 */ -/* #define FF_HURT_ELEC 73 */ -/* #define FF_HURT_WATER 74 */ -/* #define FF_HURT_BWATER 75 */ -/* #define FF_USE_FEAT 76 */ -/* #define FF_GET_FEAT 77 */ -/* #define FF_GROUND 78 */ -/* #define FF_OUTSIDE 79 */ -/* #define FF_EASY_HIDE 80 */ -/* #define FF_EASY_CLIMB 81 */ -/* #define FF_MUST_CLIMB 82 */ -#define FF_TREE 83 -/* #define FF_NEED_TREE 84 */ -/* #define FF_BLOOD 85 */ -/* #define FF_DUST 86 */ -/* #define FF_SLIME 87 */ -#define FF_PLANT 88 -/* #define FF_XXX2 89 */ -/* #define FF_INSTANT 90 */ -/* #define FF_EXPLODE 91 */ -/* #define FF_TIMED 92 */ -/* #define FF_ERUPT 93 */ -/* #define FF_STRIKE 94 */ -/* #define FF_SPREAD 95 */ - -#define FF_SPECIAL 96 -#define FF_HURT_DISI 97 -#define FF_QUEST_ENTER 98 -#define FF_QUEST_EXIT 99 -#define FF_QUEST 100 -#define FF_SHAFT 101 -#define FF_MOUNTAIN 102 -#define FF_BLDG 103 -#define FF_MINOR_GLYPH 104 -#define FF_PATTERN 105 -#define FF_TOWN 106 -#define FF_ENTRANCE 107 -#define FF_MIRROR 108 -#define FF_UNPERM 109 -#define FF_TELEPORTABLE 110 -#define FF_CONVERT 111 -#define FF_GLASS 112 #define FF_FLAG_MAX 113 #define FF_FLAG_SIZE (1 + ((FF_FLAG_MAX - 1) / 32)) @@ -1464,6 +1412,7 @@ #define ART_GOURYU 207 #define ART_EOWYN 216 #define ART_NANACHO 248 +#define ART_ROBINTON 251 /* Polearms */ #define ART_THEODEN 93 @@ -1580,7 +1529,7 @@ #define EGO_DARK 23 #define EGO_BRILLIANCE 24 #define EGO_H_PROTECTION 25 -//#define EGO_BEAUTY 26 +#define EGO_H_DEMON 26 #define EGO_MAGI 27 #define EGO_MIGHT 28 #define EGO_LORDLINESS 29 @@ -1606,6 +1555,7 @@ #define EGO_AURA_ELEC 47 #define EGO_AURA_COLD 128 #define EGO_BAT 129 +#define EGO_NAZGUL 240 /* Gloves */ #define EGO_FREE_ACTION 48 @@ -1747,7 +1697,7 @@ #define EGO_AMU_SLOW_D 210 #define EGO_AMU_INFRA 211 #define EGO_AMU_SEE_INVIS 212 -#define EGO_AMU_HOLD_LIFE 213 +#define EGO_AMU_HOLD_EXP 213 #define EGO_AMU_DRAIN_EXP 214 #define EGO_AMU_FOOL 215 #define EGO_AMU_AGGRAVATE 216 @@ -1772,7 +1722,7 @@ #define EGO_AMU_GREAT 235 #define EGO_AMU_DETECTION 236 #define EGO_AMU_NAIVETY 237 -// MAX 239 +// MAX 240 /* Activation effects for random artifacts */ #define ACT_SUNLIGHT 1 @@ -1847,7 +1797,7 @@ #define ACT_CURE_LW 81 #define ACT_CURE_MW 82 #define ACT_CURE_POISON 83 -#define ACT_REST_LIFE 84 +#define ACT_REST_EXP 84 #define ACT_REST_ALL 85 #define ACT_CURE_700 86 #define ACT_CURE_1000 87 @@ -2030,6 +1980,7 @@ #define SV_LIGHT_XBOW 23 /* (x3) */ #define SV_HEAVY_XBOW 24 /* (x4) */ #define SV_CRIMSON 50 /* (x0) */ +#define SV_HARP 51 /* (x0) */ #define SV_NAMAKE_BOW 63 /* (x3) */ /* The "sval" codes for TV_DIGGING */ @@ -2591,21 +2542,10 @@ #define SV_FOOD_PINT_OF_WINE 39 -/* - * Special "sval" limit -- first "normal" food - */ -#define SV_FOOD_MIN_FOOD 32 - -/* - * Special "sval" limit -- first "aimed" rod - */ -#define SV_ROD_MIN_DIRECTION 12 +#define SV_ROD_MIN_DIRECTION 12 /*!< この値以降の小項目IDを持ったロッドは使用時にターゲットを要求する / Special "sval" limit -- first "aimed" rod */ -/* - * Special "sval" limit -- first "large" chest - */ -#define SV_CHEST_MIN_LARGE 4 -#define SV_CHEST_KANDUME 50 +#define SV_CHEST_MIN_LARGE 4 /*!< この値以降の小項目IDを持った箱は大型の箱としてドロップ数を増やす / Special "sval" limit -- first "large" chest */ +#define SV_CHEST_KANDUME 50 /*!< 箱アイテムの小項目ID: おもちゃのカンヅメ /* * Special "sval" limit -- first "good" magic/prayer book @@ -2635,7 +2575,7 @@ #define CAVE_MNDK 0x8000 /* Darken by monster */ /* Used only while cave generation */ -#define CAVE_FLOOR 0x0200 +#define CAVE_FLOOR 0x0200 /*!< フロア属性のあるマス */ #define CAVE_EXTRA 0x0400 #define CAVE_INNER 0x0800 #define CAVE_OUTER 0x1000 @@ -2656,35 +2596,29 @@ * Bit flags for the "project()" function * * JUMP: Jump directly to the target location (this is a hack) - * BEAM: Work as a beam weapon (affect every grid passed through) * THRU: Continue "through" the target (used for "bolts"/"beams") - * STOP: Stop as soon as we hit a monster (used for "bolts") - * GRID: Affect each grid in the "blast area" in some way - * ITEM: Affect each object in the "blast area" in some way - * KILL: Affect each monster in the "blast area" in some way * HIDE: Hack -- disable "visual" feedback from projection * DISI: Disintegrate non-permanent features * PLAYER: Main target is player (used for riding player) * AIMED: Target is only player or monster, so don't affect another. * Depend on PROJECT_PLAYER. * (used for minimum (rad == 0) balls on riding player) - * REFLECTABLE: Refrectable spell attacks (used for "bolts") * NO_HANGEKI: Avoid counter attacks of monsters * PATH: Only used for printing project path * FAST: Hide "visual" of flying bolts until blast */ #define PROJECT_JUMP 0x01 -#define PROJECT_BEAM 0x02 +#define PROJECT_BEAM 0x02 /*!< 遠隔攻撃特性: ビーム範囲を持つ / Work as a beam weapon (affect every grid passed through) */ #define PROJECT_THRU 0x04 #define PROJECT_STOP 0x08 -#define PROJECT_GRID 0x10 -#define PROJECT_ITEM 0x20 -#define PROJECT_KILL 0x40 +#define PROJECT_GRID 0x10 /*!< 遠隔攻撃特性: 射程内の地形に影響を及ぼす / Affect each grid in the "blast area" in some way */ +#define PROJECT_ITEM 0x20 /*!< 遠隔攻撃特性: 射程内のアイテムに影響を及ぼす / Affect each object in the "blast area" in some way */ +#define PROJECT_KILL 0x40 /*!< 遠隔攻撃特性: 射程内のモンスターに影響を及ぼす / Affect each monster in the "blast area" in some way */ #define PROJECT_HIDE 0x80 #define PROJECT_DISI 0x100 #define PROJECT_PLAYER 0x200 #define PROJECT_AIMED 0x400 -#define PROJECT_REFLECTABLE 0x800 +#define PROJECT_REFLECTABLE 0x800 /*!< 遠隔攻撃特性: 反射可能(ボルト系魔法に利用) / Refrectable spell attacks (used for "bolts") */ #define PROJECT_NO_HANGEKI 0x1000 #define PROJECT_PATH 0x2000 #define PROJECT_FAST 0x4000 @@ -2694,17 +2628,17 @@ /* * Special caster ID for project() */ -#define PROJECT_WHO_UNCTRL_POWER -1 -#define PROJECT_WHO_GLASS_SHARDS -2 +#define PROJECT_WHO_UNCTRL_POWER -1 /*!< 魔法効果の自然発生要因: 名状し難い力の解放 */ +#define PROJECT_WHO_GLASS_SHARDS -2 /*!< 魔法効果の自然発生要因: 破壊されたガラス地形の破片 */ /* * Bit flags for the "enchant()" function */ -#define ENCH_TOHIT 0x01 /* Enchant to hit */ -#define ENCH_TODAM 0x02 /* Enchant to damage */ -#define ENCH_TOAC 0x04 /* Enchant to AC */ -#define ENCH_FORCE 0x08 /* Force enchantment */ +#define ENCH_TOHIT 0x01 /*!< 装備強化処理: 命中強化 / Enchant to hit */ +#define ENCH_TODAM 0x02 /*!< 装備強化処理: ダメージ強化 / Enchant to damage */ +#define ENCH_TOAC 0x04 /*!< 装備強化処理: AC強化 / Enchant to AC */ +#define ENCH_FORCE 0x08 /*!< 装備強化処理: 無条件に成功させる / Force enchantment */ /* * Bit flags for the "target_set" function XXX XXX XXX @@ -2732,113 +2666,113 @@ /* * Some bit-flags for the "smart" field */ -#define SM_RES_ACID 0x00000001 -#define SM_RES_ELEC 0x00000002 -#define SM_RES_FIRE 0x00000004 -#define SM_RES_COLD 0x00000008 -#define SM_RES_POIS 0x00000010 -#define SM_RES_NETH 0x00000020 -#define SM_RES_LITE 0x00000040 -#define SM_RES_DARK 0x00000080 -#define SM_RES_FEAR 0x00000100 -#define SM_RES_CONF 0x00000200 -#define SM_RES_CHAOS 0x00000400 -#define SM_RES_DISEN 0x00000800 -#define SM_RES_BLIND 0x00001000 -#define SM_RES_NEXUS 0x00002000 -#define SM_RES_SOUND 0x00004000 -#define SM_RES_SHARD 0x00008000 -#define SM_OPP_ACID 0x00010000 -#define SM_OPP_ELEC 0x00020000 -#define SM_OPP_FIRE 0x00040000 -#define SM_OPP_COLD 0x00080000 -#define SM_OPP_POIS 0x00100000 -#define SM_OPP_XXX1 0x00200000 /* (unused) */ -#define SM_CLONED 0x00400000 /* XXX Cloned */ -#define SM_PET 0x00800000 /* XXX Pet */ -#define SM_IMM_ACID 0x01000000 -#define SM_IMM_ELEC 0x02000000 -#define SM_IMM_FIRE 0x04000000 -#define SM_IMM_COLD 0x08000000 -#define SM_FRIENDLY 0x10000000 /* XXX Friendly */ -#define SM_IMM_REFLECT 0x20000000 -#define SM_IMM_FREE 0x40000000 -#define SM_IMM_MANA 0x80000000 - - -/* - * Bit flags for the "get_item" function - */ -#define USE_EQUIP 0x01 /* Allow equip items */ -#define USE_INVEN 0x02 /* Allow inven items */ -#define USE_FLOOR 0x04 /* Allow floor items */ - - -/* - * Bit flags for the "p_ptr->notice" variable - */ -#define PN_COMBINE 0x00000001L /* Combine the pack */ -#define PN_REORDER 0x00000002L /* Reorder the pack */ -#define PN_AUTODESTROY 0x00000004L /* Auto-destroy marked item */ +#define SM_RES_ACID 0x00000001 /*!< モンスターの学習フラグ: プレイヤーに酸耐性あり */ +#define SM_RES_ELEC 0x00000002 /*!< モンスターの学習フラグ: プレイヤーに電撃耐性あり */ +#define SM_RES_FIRE 0x00000004 /*!< モンスターの学習フラグ: プレイヤーに火炎耐性あり */ +#define SM_RES_COLD 0x00000008 /*!< モンスターの学習フラグ: プレイヤーに冷気耐性あり */ +#define SM_RES_POIS 0x00000010 /*!< モンスターの学習フラグ: プレイヤーに毒耐性あり */ +#define SM_RES_NETH 0x00000020 /*!< モンスターの学習フラグ: プレイヤーに地獄耐性あり */ +#define SM_RES_LITE 0x00000040 /*!< モンスターの学習フラグ: プレイヤーに閃光耐性あり */ +#define SM_RES_DARK 0x00000080 /*!< モンスターの学習フラグ: プレイヤーに暗黒耐性あり */ +#define SM_RES_FEAR 0x00000100 /*!< モンスターの学習フラグ: プレイヤーに恐怖耐性あり */ +#define SM_RES_CONF 0x00000200 /*!< モンスターの学習フラグ: プレイヤーに混乱耐性あり */ +#define SM_RES_CHAOS 0x00000400 /*!< モンスターの学習フラグ: プレイヤーにカオス耐性あり */ +#define SM_RES_DISEN 0x00000800 /*!< モンスターの学習フラグ: プレイヤーに劣化耐性あり */ +#define SM_RES_BLIND 0x00001000 /*!< モンスターの学習フラグ: プレイヤーに盲目耐性あり */ +#define SM_RES_NEXUS 0x00002000 /*!< モンスターの学習フラグ: プレイヤーに因果混乱耐性あり */ +#define SM_RES_SOUND 0x00004000 /*!< モンスターの学習フラグ: プレイヤーに轟音耐性あり */ +#define SM_RES_SHARD 0x00008000 /*!< モンスターの学習フラグ: プレイヤーに破片耐性あり */ +#define SM_OPP_ACID 0x00010000 /*!< モンスターの学習フラグ: プレイヤーに二重酸耐性あり */ +#define SM_OPP_ELEC 0x00020000 /*!< モンスターの学習フラグ: プレイヤーに二重電撃耐性あり */ +#define SM_OPP_FIRE 0x00040000 /*!< モンスターの学習フラグ: プレイヤーに二重火炎耐性あり */ +#define SM_OPP_COLD 0x00080000 /*!< モンスターの学習フラグ: プレイヤーに二重冷気耐性あり */ +#define SM_OPP_POIS 0x00100000 /*!< モンスターの学習フラグ: プレイヤーに二重毒耐性あり */ +#define SM_OPP_XXX1 0x00200000 /*!< 未使用 / (unused) */ +#define SM_CLONED 0x00400000 /*!< モンスターの特殊耐性: クローン免疫 / XXX Cloned */ +#define SM_PET 0x00800000 /*!< モンスターの特殊耐性: ペット免疫 / XXX Pet */ +#define SM_IMM_ACID 0x01000000 /*!< モンスターの学習フラグ: プレイヤーに酸免疫あり */ +#define SM_IMM_ELEC 0x02000000 /*!< モンスターの学習フラグ: プレイヤーに電撃免疫あり */ +#define SM_IMM_FIRE 0x04000000 /*!< モンスターの学習フラグ: プレイヤーに火炎免疫あり */ +#define SM_IMM_COLD 0x08000000 /*!< モンスターの学習フラグ: プレイヤーに冷気免疫あり */ +#define SM_FRIENDLY 0x10000000 /*!< モンスターの特殊耐性: 友好化免疫 / XXX Friendly */ +#define SM_IMM_REFLECT 0x20000000 /*!< モンスターの学習フラグ: プレイヤーに反射あり */ +#define SM_IMM_FREE 0x40000000 /*!< モンスターの学習フラグ: プレイヤーに麻痺耐性あり */ +#define SM_IMM_MANA 0x80000000 /*!< モンスターの学習フラグ: プレイヤーにMPがない */ + + +/* + * get_item()関数でアイテムの選択を行うフラグ / Bit flags for the "get_item" function + */ +#define USE_EQUIP 0x01 /*!< アイテム選択範囲: 装備品からの選択を許可する / Allow equip items */ +#define USE_INVEN 0x02 /*!< アイテム選択範囲: 所持品からの選択を許可する / Allow inven items */ +#define USE_FLOOR 0x04 /*!< アイテム選択範囲: 床下のアイテムからの選択を許可する / Allow floor items */ + + +/* + * p_ptr->noticeに充てるアイテム更新処理要求 / Bit flags for the "p_ptr->notice" variable + */ +#define PN_COMBINE 0x00000001L /*!< アイテム処理フラグ: アイテムの結合を要する / Combine the pack */ +#define PN_REORDER 0x00000002L /*!< アイテム処理フラグ: アイテムの並び替えを要する / Reorder the pack */ +#define PN_AUTODESTROY 0x00000004L /*!< アイテム処理フラグ: アイテムの自動破壊を要する / Auto-destroy marked item */ /* xxx (many) */ /* - * Bit flags for the "p_ptr->update" variable + * p_ptr->updateに充てるプレイヤーステータス更新処理要求 / Bit flags for the "p_ptr->update" variable */ -#define PU_BONUS 0x00000001L /* Calculate bonuses */ -#define PU_TORCH 0x00000002L /* Calculate torch radius */ +#define PU_BONUS 0x00000001L /*!< ステータス更新フラグ: 能力値修正 / Calculate bonuses */ +#define PU_TORCH 0x00000002L /*!< ステータス更新フラグ: 光源半径 / Calculate torch radius */ /* xxx (many) */ -#define PU_HP 0x00000010L /* Calculate chp and mhp */ -#define PU_MANA 0x00000020L /* Calculate csp and msp */ -#define PU_SPELLS 0x00000040L /* Calculate spells */ +#define PU_HP 0x00000010L /*!< ステータス更新フラグ: HP / Calculate chp and mhp */ +#define PU_MANA 0x00000020L /*!< ステータス更新フラグ: MP / Calculate csp and msp */ +#define PU_SPELLS 0x00000040L /*!< ステータス更新フラグ: 魔法学習数 / Calculate spells */ /* xxx (many) */ /* xxx (many) */ -#define PU_UN_VIEW 0x00010000L /* Forget view */ -#define PU_UN_LITE 0x00020000L /* Forget lite */ +#define PU_UN_VIEW 0x00010000L /*!< ステータス更新フラグ: 地形の視界外化 / Forget view */ +#define PU_UN_LITE 0x00020000L /*!< ステータス更新フラグ: 明暗範囲の視界外化 / Forget lite */ /* xxx (many) */ -#define PU_VIEW 0x00100000L /* Update view */ -#define PU_LITE 0x00200000L /* Update lite */ -#define PU_MON_LITE 0x00400000L /* Monster illumination */ -#define PU_DELAY_VIS 0x00800000L /* Mega-Hack -- Delayed visual update */ -#define PU_MONSTERS 0x01000000L /* Update monsters */ -#define PU_DISTANCE 0x02000000L /* Update distances */ +#define PU_VIEW 0x00100000L /*!< ステータス更新フラグ: 視界 / Update view */ +#define PU_LITE 0x00200000L /*!< ステータス更新フラグ: 明暗範囲 / Update lite */ +#define PU_MON_LITE 0x00400000L /*!< ステータス更新フラグ: モンスターの光源範囲 / Monster illumination */ +#define PU_DELAY_VIS 0x00800000L /*!< ステータス更新フラグ: 視界の追加更新 / Mega-Hack -- Delayed visual update */ +#define PU_MONSTERS 0x01000000L /*!< ステータス更新フラグ: モンスターのステータス / Update monsters */ +#define PU_DISTANCE 0x02000000L /*!< ステータス更新フラグ: プレイヤーとモンスターの距離 / Update distances */ /* xxx */ -#define PU_FLOW 0x10000000L /* Update flow */ +#define PU_FLOW 0x10000000L /*!< ステータス更新フラグ: プレイヤーから各マスへの到達距離 / Update flow */ /* xxx (many) */ /* * Bit flags for the "p_ptr->redraw" variable */ -#define PR_MISC 0x00000001L /* Display Race/Class */ -#define PR_TITLE 0x00000002L /* Display Title */ -#define PR_LEV 0x00000004L /* Display Level */ -#define PR_EXP 0x00000008L /* Display Experience */ -#define PR_STATS 0x00000010L /* Display Stats */ -#define PR_ARMOR 0x00000020L /* Display Armor */ -#define PR_HP 0x00000040L /* Display Hitpoints */ -#define PR_MANA 0x00000080L /* Display Mana */ -#define PR_GOLD 0x00000100L /* Display Gold */ -#define PR_DEPTH 0x00000200L /* Display Depth */ -#define PR_EQUIPPY 0x00000400L /* Display equippy chars */ -#define PR_HEALTH 0x00000800L /* Display Health Bar */ -#define PR_CUT 0x00001000L /* Display Extra (Cut) */ -#define PR_STUN 0x00002000L /* Display Extra (Stun) */ -#define PR_HUNGER 0x00004000L /* Display Extra (Hunger) */ -#define PR_STATUS 0x00008000L /* Display Status Bar */ -#define PR_XXX0 0x00010000L /* (unused) */ -#define PR_UHEALTH 0x00020000L /* Display Uma Health Bar */ -#define PR_XXX1 0x00040000L /* (unused) */ -#define PR_XXX2 0x00080000L /* (unused) */ -#define PR_STATE 0x00100000L /* Display Extra (State) */ -#define PR_SPEED 0x00200000L /* Display Extra (Speed) */ -#define PR_STUDY 0x00400000L /* Display Extra (Study) */ -#define PR_IMITATION 0x00800000L /* Display Extra (Imitation) */ -#define PR_EXTRA 0x01000000L /* Display Extra Info */ -#define PR_BASIC 0x02000000L /* Display Basic Info */ -#define PR_MAP 0x04000000L /* Display Map */ -#define PR_WIPE 0x08000000L /* Hack -- Total Redraw */ +#define PR_MISC 0x00000001L /*!< 再描画フラグ: 種族と職業 / Display Race/Class */ +#define PR_TITLE 0x00000002L /*!< 再描画フラグ: 称号 / Display Title */ +#define PR_LEV 0x00000004L /*!< 再描画フラグ: レベル / Display Level */ +#define PR_EXP 0x00000008L /*!< 再描画フラグ: 経験値 / Display Experience */ +#define PR_STATS 0x00000010L /*!< 再描画フラグ: ステータス / Display Stats */ +#define PR_ARMOR 0x00000020L /*!< 再描画フラグ: AC / Display Armor */ +#define PR_HP 0x00000040L /*!< 再描画フラグ: HP / Display Hitpoints */ +#define PR_MANA 0x00000080L /*!< 再描画フラグ: MP / Display Mana */ +#define PR_GOLD 0x00000100L /*!< 再描画フラグ: 所持金 / Display Gold */ +#define PR_DEPTH 0x00000200L /*!< 再描画フラグ: ダンジョンの階 / Display Depth */ +#define PR_EQUIPPY 0x00000400L /*!< 再描画フラグ: 装備シンボル / Display equippy chars */ +#define PR_HEALTH 0x00000800L /*!< 再描画フラグ: モンスターのステータス / Display Health Bar */ +#define PR_CUT 0x00001000L /*!< 再描画フラグ: 負傷度 / Display Extra (Cut) */ +#define PR_STUN 0x00002000L /*!< 再描画フラグ: 朦朧度 / Display Extra (Stun) */ +#define PR_HUNGER 0x00004000L /*!< 再描画フラグ: 空腹度 / Display Extra (Hunger) */ +#define PR_STATUS 0x00008000L /*!< 再描画フラグ: プレイヤーの付与状態 / Display Status Bar */ +#define PR_XXX0 0x00010000L /*!< (unused) */ +#define PR_UHEALTH 0x00020000L /*!< 再描画フラグ: ペットのステータス / Display Uma Health Bar */ +#define PR_XXX1 0x00040000L /*!< (unused) */ +#define PR_XXX2 0x00080000L /*!< (unused) */ +#define PR_STATE 0x00100000L /*!< 再描画フラグ: プレイヤーの行動状態 / Display Extra (State) */ +#define PR_SPEED 0x00200000L /*!< 再描画フラグ: 加速 / Display Extra (Speed) */ +#define PR_STUDY 0x00400000L /*!< 再描画フラグ: 学習 / Display Extra (Study) */ +#define PR_IMITATION 0x00800000L /*!< 再描画フラグ: ものまね / Display Extra (Imitation) */ +#define PR_EXTRA 0x01000000L /*!< 再描画フラグ: 拡張ステータス全体 / Display Extra Info */ +#define PR_BASIC 0x02000000L /*!< 再描画フラグ: 基本ステータス全体 / Display Basic Info */ +#define PR_MAP 0x04000000L /*!< 再描画フラグ: ゲームマップ / Display Map */ +#define PR_WIPE 0x08000000L /*!< 再描画フラグ: 画面消去 / Hack -- Total Redraw */ /* xxx */ /* xxx */ /* xxx */ @@ -2847,23 +2781,23 @@ /* * Bit flags for the "p_ptr->window" variable (etc) */ -#define PW_INVEN 0x00000001L /* Display inven/equip */ -#define PW_EQUIP 0x00000002L /* Display equip/inven */ -#define PW_SPELL 0x00000004L /* Display spell list */ -#define PW_PLAYER 0x00000008L /* Display character */ -#define PW_MONSTER_LIST 0x00000010L /* Display monster list */ +#define PW_INVEN 0x00000001L /*!<サブウィンドウ描画フラグ: 所持品-装備品 / Display inven/equip */ +#define PW_EQUIP 0x00000002L /*!<サブウィンドウ描画フラグ: 装備品-所持品 / Display equip/inven */ +#define PW_SPELL 0x00000004L /*!<サブウィンドウ描画フラグ: 魔法一覧 / Display spell list */ +#define PW_PLAYER 0x00000008L /*!<サブウィンドウ描画フラグ: プレイヤーのステータス / Display character */ +#define PW_MONSTER_LIST 0x00000010L /*!<サブウィンドウ描画フラグ: 視界内モンスターの一覧 / Display monster list */ /* xxx */ /* xxx */ -#define PW_MESSAGE 0x00000040L /* Display messages */ -#define PW_OVERHEAD 0x00000080L /* Display overhead view */ -#define PW_MONSTER 0x00000100L /* Display monster recall */ -#define PW_OBJECT 0x00000200L /* Display object recall */ -#define PW_DUNGEON 0x00000400L /* Display dungeon view */ -#define PW_SNAPSHOT 0x00000800L /* Display snap-shot */ +#define PW_MESSAGE 0x00000040L /*!<サブウィンドウ描画フラグ: メッセージログ / Display messages */ +#define PW_OVERHEAD 0x00000080L /*!<サブウィンドウ描画フラグ: 周辺の光景 / Display overhead view */ +#define PW_MONSTER 0x00000100L /*!<サブウィンドウ描画フラグ: モンスターの思い出 / Display monster recall */ +#define PW_OBJECT 0x00000200L /*!<サブウィンドウ描画フラグ: アイテムの知識 / Display object recall */ +#define PW_DUNGEON 0x00000400L /*!<サブウィンドウ描画フラグ: ダンジョンの地形 / Display dungeon view */ +#define PW_SNAPSHOT 0x00000800L /*!<サブウィンドウ描画フラグ: 記念写真 / Display snap-shot */ /* xxx */ /* xxx */ -#define PW_BORG_1 0x00004000L /* Display borg messages */ -#define PW_BORG_2 0x00008000L /* Display borg status */ +#define PW_BORG_1 0x00004000L /*!<サブウィンドウ描画フラグ: ボーグメッセージ / Display borg messages */ +#define PW_BORG_2 0x00008000L /*!<サブウィンドウ描画フラグ: ボーグステータス / Display borg status */ /* * Bit flags for the place_monster_???() (etc) @@ -2908,58 +2842,60 @@ /* - * Bit flags for the "p_ptr->special_attack" variable. -LM- + * p_ptr->special_attackによるプレイヤーの攻撃状態の定義 / Bit flags for the "p_ptr->special_attack" variable. -LM- * * Note: The elemental and poison attacks should be managed using the * function "set_ele_attack", in spell2.c. This provides for timeouts and * prevents the player from getting more than one at a time. */ -#define ATTACK_CONFUSE 0x00000001 -#define ATTACK_XXX1 0x00000002 -#define ATTACK_XXX2 0x00000004 -#define ATTACK_XXX3 0x00000008 -#define ATTACK_ACID 0x00000010 -#define ATTACK_ELEC 0x00000020 -#define ATTACK_FIRE 0x00000040 -#define ATTACK_COLD 0x00000080 -#define ATTACK_POIS 0x00000100 -#define ATTACK_HOLY 0x00000200 -#define ATTACK_SUIKEN 0x00000400 - - -#define DEFENSE_ACID 0x00000001 -#define DEFENSE_ELEC 0x00000002 -#define DEFENSE_FIRE 0x00000004 -#define DEFENSE_COLD 0x00000008 -#define DEFENSE_POIS 0x00000010 -#define KAMAE_GENBU 0x00000020 -#define KAMAE_BYAKKO 0x00000040 -#define KAMAE_SEIRYU 0x00000080 -#define KAMAE_SUZAKU 0x00000100 -#define KATA_IAI 0x00000200 -#define KATA_FUUJIN 0x00000400 -#define KATA_KOUKIJIN 0x00000800 -#define KATA_MUSOU 0x00001000 -#define NINJA_KAWARIMI 0x00002000 -#define NINJA_S_STEALTH 0x00004000 - -#define MAX_KAMAE 4 -#define KAMAE_MASK (KAMAE_GENBU | KAMAE_BYAKKO | KAMAE_SEIRYU | KAMAE_SUZAKU) - -#define MAX_KATA 4 -#define KATA_MASK (KATA_IAI | KATA_FUUJIN | KATA_KOUKIJIN | KATA_MUSOU) - - -#define ACTION_NONE 0 -#define ACTION_SEARCH 1 -#define ACTION_REST 2 -#define ACTION_LEARN 3 -#define ACTION_FISH 4 -#define ACTION_KAMAE 5 -#define ACTION_KATA 6 -#define ACTION_SING 7 -#define ACTION_HAYAGAKE 8 -#define ACTION_SPELL 9 +#define ATTACK_CONFUSE 0x00000001 /*!< プレイヤーのステータス:混乱打撃 */ +#define ATTACK_XXX1 0x00000002 /*!< プレイヤーのステータス:未使用1 */ +#define ATTACK_XXX2 0x00000004 /*!< プレイヤーのステータス:未使用2 */ +#define ATTACK_XXX3 0x00000008 /*!< プレイヤーのステータス:未使用3 */ +#define ATTACK_ACID 0x00000010 /*!< プレイヤーのステータス:魔法剣/溶解 */ +#define ATTACK_ELEC 0x00000020 /*!< プレイヤーのステータス:魔法剣/電撃 */ +#define ATTACK_FIRE 0x00000040 /*!< プレイヤーのステータス:魔法剣/火炎 */ +#define ATTACK_COLD 0x00000080 /*!< プレイヤーのステータス:魔法剣/冷凍 */ +#define ATTACK_POIS 0x00000100 /*!< プレイヤーのステータス:魔法剣/毒殺 */ +#define ATTACK_HOLY 0x00000200 /*!< プレイヤーのステータス:対邪?(未使用) */ +#define ATTACK_SUIKEN 0x00000400 /*!< プレイヤーのステータス:酔拳 */ + +/* + * p_ptr->special_defenseによるプレイヤーの防御状態の定義 / Bit flags for the "p_ptr->special_defense" variable. -LM- + */ +#define DEFENSE_ACID 0x00000001 /*!< プレイヤーのステータス:酸免疫 */ +#define DEFENSE_ELEC 0x00000002 /*!< プレイヤーのステータス:電撃免疫 */ +#define DEFENSE_FIRE 0x00000004 /*!< プレイヤーのステータス:火炎免疫 */ +#define DEFENSE_COLD 0x00000008 /*!< プレイヤーのステータス:冷気免疫 */ +#define DEFENSE_POIS 0x00000010 /*!< プレイヤーのステータス:毒免疫 */ +#define KAMAE_GENBU 0x00000020 /*!< プレイヤーのステータス:玄武の構え */ +#define KAMAE_BYAKKO 0x00000040 /*!< プレイヤーのステータス:白虎の構え */ +#define KAMAE_SEIRYU 0x00000080 /*!< プレイヤーのステータス:青竜の構え */ +#define KAMAE_SUZAKU 0x00000100 /*!< プレイヤーのステータス:朱雀の構え */ +#define KATA_IAI 0x00000200 /*!< プレイヤーのステータス:居合 */ +#define KATA_FUUJIN 0x00000400 /*!< プレイヤーのステータス:風塵 */ +#define KATA_KOUKIJIN 0x00000800 /*!< プレイヤーのステータス:降鬼陣 */ +#define KATA_MUSOU 0x00001000 /*!< プレイヤーのステータス:無想 */ +#define NINJA_KAWARIMI 0x00002000 /*!< プレイヤーのステータス:変わり身 */ +#define NINJA_S_STEALTH 0x00004000 /*!< プレイヤーのステータス:超隠密 */ + +#define MAX_KAMAE 4 /*!< 修行僧の構え最大数 */ +#define KAMAE_MASK (KAMAE_GENBU | KAMAE_BYAKKO | KAMAE_SEIRYU | KAMAE_SUZAKU) /*!< 修行僧の構えビット配列 */ + +#define MAX_KATA 4 /*!< 修行僧の型最大数 */ +#define KATA_MASK (KATA_IAI | KATA_FUUJIN | KATA_KOUKIJIN | KATA_MUSOU) /*!< 修行僧の型ビット配列 */ + + +#define ACTION_NONE 0 /*!< 持続行動: なし */ +#define ACTION_SEARCH 1 /*!< 持続行動: 探索 */ +#define ACTION_REST 2 /*!< 持続行動: 休憩 */ +#define ACTION_LEARN 3 /*!< 持続行動: 青魔法ラーニング */ +#define ACTION_FISH 4 /*!< 持続行動: 釣り */ +#define ACTION_KAMAE 5 /*!< 持続行動: 修行僧の構え */ +#define ACTION_KATA 6 /*!< 持続行動: 剣術家の型 */ +#define ACTION_SING 7 /*!< 持続行動: 歌 */ +#define ACTION_HAYAGAKE 8 /*!< 持続行動: 早駆け */ +#define ACTION_SPELL 9 /*!< 持続行動: 呪術 */ /* Empty hand status */ @@ -2971,56 +2907,56 @@ /* - * Legal restrictions for "summon_specific()" - */ -#define SUMMON_ANT 11 -#define SUMMON_SPIDER 12 -#define SUMMON_HOUND 13 -#define SUMMON_HYDRA 14 -#define SUMMON_ANGEL 15 -#define SUMMON_DEMON 16 -#define SUMMON_UNDEAD 17 -#define SUMMON_DRAGON 18 -#define SUMMON_HI_UNDEAD 21 -#define SUMMON_HI_DRAGON 22 -#define SUMMON_HI_DEMON 23 -#define SUMMON_AMBERITES 31 -#define SUMMON_UNIQUE 32 -#define SUMMON_BIZARRE1 33 -#define SUMMON_BIZARRE2 34 -#define SUMMON_BIZARRE3 35 -#define SUMMON_BIZARRE4 36 -#define SUMMON_BIZARRE5 37 -#define SUMMON_BIZARRE6 38 -#define SUMMON_CYBER 39 -#define SUMMON_KIN 40 -#define SUMMON_DAWN 41 -#define SUMMON_ANIMAL 42 -#define SUMMON_ANIMAL_RANGER 43 + * summon_specificで取り扱われる、召喚の種別定義 / Legal restrictions for "summon_specific()" + */ +#define SUMMON_ANT 11 /*!< 召喚タイプ: アリ */ +#define SUMMON_SPIDER 12 /*!< 召喚タイプ: 蜘蛛 */ +#define SUMMON_HOUND 13 /*!< 召喚タイプ: ハウンド */ +#define SUMMON_HYDRA 14 /*!< 召喚タイプ: ヒドラ */ +#define SUMMON_ANGEL 15 /*!< 召喚タイプ: 天使 */ +#define SUMMON_DEMON 16 /*!< 召喚タイプ: 悪魔 */ +#define SUMMON_UNDEAD 17 /*!< 召喚タイプ: アンデッド */ +#define SUMMON_DRAGON 18 /*!< 召喚タイプ: ドラゴン */ +#define SUMMON_HI_UNDEAD 21 /*!< 召喚タイプ: 強力なアンデッド */ +#define SUMMON_HI_DRAGON 22 /*!< 召喚タイプ: 古代ドラゴン */ +#define SUMMON_HI_DEMON 23 /*!< 召喚タイプ: 上級デーモン */ +#define SUMMON_AMBERITES 31 /*!< 召喚タイプ: アンバーの王族 */ +#define SUMMON_UNIQUE 32 /*!< 召喚タイプ: ユニーク */ +#define SUMMON_MOLD 33 /*!< 召喚タイプ: カビ */ +#define SUMMON_BAT 34 /*!< 召喚タイプ: コウモリ */ +#define SUMMON_QUYLTHULG 35 /*!< 召喚タイプ: クイルスルグ */ +#define SUMMON_XXX1 36 /*!< 召喚タイプ: 未使用 */ +#define SUMMON_COIN_MIMIC 37 /*!< 召喚タイプ: クリーピング・コイン */ +#define SUMMON_MIMIC 38 /*!< 召喚タイプ: ミミック */ +#define SUMMON_CYBER 39 /*!< 召喚タイプ: サイバーデーモン */ +#define SUMMON_KIN 40 /*!< 召喚タイプ: 召喚者の同族 */ +#define SUMMON_DAWN 41 /*!< 召喚タイプ: 暁の戦士 */ +#define SUMMON_ANIMAL 42 /*!< 召喚タイプ: 自然界の動物 */ +#define SUMMON_ANIMAL_RANGER 43 /*!< 召喚タイプ: レンジャー向け自然界の動物 */ /*#define SUMMON_HI_UNDEAD_NO_UNIQUES 44*/ /*#define SUMMON_HI_DRAGON_NO_UNIQUES 45*/ /*#define SUMMON_NO_UNIQUES 46*/ -#define SUMMON_PHANTOM 47 +#define SUMMON_PHANTOM 47 /*!< 召喚タイプ: ゴースト */ /*#define SUMMON_ELEMENTAL_NO_UNIQUES 48*/ -#define SUMMON_BLUE_HORROR 49 -#define SUMMON_LIVING 50 -#define SUMMON_HI_DRAGON_LIVING 51 -#define SUMMON_GOLEM 52 -#define SUMMON_ELEMENTAL 53 -#define SUMMON_VORTEX 54 -#define SUMMON_HYBRID 55 -#define SUMMON_BIRD 56 +#define SUMMON_BLUE_HORROR 49 /*!< 召喚タイプ: ブルー・ホラー */ +#define SUMMON_LIVING 50 /*!< 召喚タイプ: 生命のあるモンスター */ +#define SUMMON_HI_DRAGON_LIVING 51 /*!< 召喚タイプ: 生命のある古代ドラゴン */ +#define SUMMON_GOLEM 52 /*!< 召喚タイプ: ゴーレム */ +#define SUMMON_ELEMENTAL 53 /*!< 召喚タイプ: エレメンタル */ +#define SUMMON_VORTEX 54 /*!< 召喚タイプ: ボルテックス */ +#define SUMMON_HYBRID 55 /*!< 召喚タイプ: 混合生物 */ +#define SUMMON_BIRD 56 /*!< 召喚タイプ: 鳥 */ /*#define SUMMON_AQUATIC_NO_UNIQUES 57*/ -#define SUMMON_KAMIKAZE 58 -#define SUMMON_KAMIKAZE_LIVING 59 -#define SUMMON_MANES 60 -#define SUMMON_LOUSE 61 -#define SUMMON_GUARDIANS 62 -#define SUMMON_KNIGHTS 63 -#define SUMMON_EAGLES 64 -#define SUMMON_PIRANHAS 65 -#define SUMMON_ARMAGE_GOOD 66 -#define SUMMON_ARMAGE_EVIL 67 +#define SUMMON_KAMIKAZE 58 /*!< 召喚タイプ: 自爆モンスター */ +#define SUMMON_KAMIKAZE_LIVING 59 /*!< 召喚タイプ: 生命のある自爆モンスター */ +#define SUMMON_MANES 60 /*!< 召喚タイプ: 古代の死霊 */ +#define SUMMON_LOUSE 61 /*!< 召喚タイプ: シラミ */ +#define SUMMON_GUARDIANS 62 /*!< 召喚タイプ: ダンジョンの主 */ +#define SUMMON_KNIGHTS 63 /*!< 召喚タイプ: 聖戦用騎士系モンスター */ +#define SUMMON_EAGLES 64 /*!< 召喚タイプ: 鷲系モンスター */ +#define SUMMON_PIRANHAS 65 /*!< 召喚タイプ: ピラニア・トラップ用 */ +#define SUMMON_ARMAGE_GOOD 66 /*!< 召喚タイプ: ハルマゲドン・トラップ用天使陣営 */ +#define SUMMON_ARMAGE_EVIL 67 /*!< 召喚タイプ: ハルマゲドン・トラップ用悪魔陣営 */ /* @@ -3046,7 +2982,7 @@ #define GF_SOUND 21 #define GF_CONFUSION 22 #define GF_FORCE 23 -#define GF_INERTIA 24 +#define GF_INERTIAL 24 #define GF_MANA 26 #define GF_METEOR 27 #define GF_ICE 28 @@ -3164,54 +3100,48 @@ /* - * Game generated inscription indices. These are stored in the object, + * アイテムの簡易鑑定定義 / Game generated inscription indices. These are stored in the object, * and are used to index the string array from tables.c. */ +#define FEEL_NONE 0 /*!< 簡易鑑定: 未鑑定 */ +#define FEEL_BROKEN 1 /*!< 簡易鑑定: 壊れている */ +#define FEEL_TERRIBLE 2 /*!< 簡易鑑定: 恐ろしい */ +#define FEEL_WORTHLESS 3 /*!< 簡易鑑定: 無価値 */ +#define FEEL_CURSED 4 /*!< 簡易鑑定: 呪われている */ +#define FEEL_UNCURSED 5 /*!< 簡易鑑定: 呪われていない */ +#define FEEL_AVERAGE 6 /*!< 簡易鑑定: 並 */ +#define FEEL_GOOD 7 /*!< 簡易鑑定: 上質 */ +#define FEEL_EXCELLENT 8 /*!< 簡易鑑定: 高級 */ +#define FEEL_SPECIAL 9 /*!< 簡易鑑定: 特別 */ -#define FEEL_NONE 0 -#define FEEL_BROKEN 1 -#define FEEL_TERRIBLE 2 -#define FEEL_WORTHLESS 3 -#define FEEL_CURSED 4 -#define FEEL_UNCURSED 5 -#define FEEL_AVERAGE 6 -#define FEEL_GOOD 7 -#define FEEL_EXCELLENT 8 -#define FEEL_SPECIAL 9 - -#define FEEL_MAX 9 +#define FEEL_MAX 9 /*!< 簡易鑑定の種別数 */ /* - * Hack -- special "xtra" object powers + * 変愚ver1.5.0以前に使われていたアイテムの追加特性フラグ / Hack -- special "xtra" object powers */ +#define EGO_XTRA_SUSTAIN 1 /*!< 旧版アイテムフラグ(非推奨): 追加維持能力 / Sustain one stat */ +#define EGO_XTRA_POWER 2 /*!< 旧版アイテムフラグ(非推奨): 追加上級耐性 / High resist */ +#define EGO_XTRA_ABILITY 3 /*!< 旧版アイテムフラグ(非推奨): 追加能力 / Special ability */ -/* Sustain one stat */ -#define EGO_XTRA_SUSTAIN 1 - -/* High resist */ -#define EGO_XTRA_POWER 2 - -/* Special ability */ -#define EGO_XTRA_ABILITY 3 /*** Object flag values ***/ -/* - * Chest trap flags (see "tables.c") +/*! + * 箱のトラップ定義 Chest trap flags (see "tables.c") */ -#define CHEST_LOSE_STR 0x0001 -#define CHEST_LOSE_CON 0x0002 -#define CHEST_POISON 0x0004 -#define CHEST_PARALYZE 0x0008 -#define CHEST_EXPLODE 0x0010 -#define CHEST_SUMMON 0x0020 -#define CHEST_SCATTER 0x0040 -#define CHEST_E_SUMMON 0x0080 -#define CHEST_BIRD_STORM 0x0100 -#define CHEST_H_SUMMON 0x0200 -#define CHEST_RUNES_OF_EVIL 0x0400 -#define CHEST_ALARM 0x0800 +#define CHEST_LOSE_STR 0x0001 /*!< 箱のトラップ: STR減少の毒針 */ +#define CHEST_LOSE_CON 0x0002 /*!< 箱のトラップ: CON減少の毒針 */ +#define CHEST_POISON 0x0004 /*!< 箱のトラップ: 毒針 */ +#define CHEST_PARALYZE 0x0008 /*!< 箱のトラップ: 麻痺ガス */ +#define CHEST_EXPLODE 0x0010 /*!< 箱のトラップ: 爆発 */ +#define CHEST_SUMMON 0x0020 /*!< 箱のトラップ: 召喚のルーン(モンスター) */ +#define CHEST_SCATTER 0x0040 /*!< 箱のトラップ: アイテム散乱 */ +#define CHEST_E_SUMMON 0x0080 /*!< 箱のトラップ: 召喚のルーン(エレメンタル) */ +#define CHEST_BIRD_STORM 0x0100 /*!< 箱のトラップ: 召喚のルーン(鳥) */ +#define CHEST_H_SUMMON 0x0200 /*!< 箱のトラップ: 召喚のルーン(強敵) */ +#define CHEST_RUNES_OF_EVIL 0x0400 /*!< 箱のトラップ: 邪悪なルーン */ +#define CHEST_ALARM 0x0800 /*!< 箱のトラップ: 警報装置 */ /* @@ -3342,7 +3272,7 @@ #define TR_THROW 44 /* Later */ #define TR_REFLECT 45 /* Reflect 'bolts' */ #define TR_FREE_ACT 46 /* Free Action */ -#define TR_HOLD_LIFE 47 /* Hold Life */ +#define TR_HOLD_EXP 47 /* Hold EXP */ #define TR_RES_ACID 48 #define TR_RES_ELEC 49 #define TR_RES_FIRE 50 @@ -3517,74 +3447,75 @@ /*** Monster blow constants ***/ -/* - * New monster blow methods - */ -#define RBM_HIT 1 -#define RBM_TOUCH 2 -#define RBM_PUNCH 3 -#define RBM_KICK 4 -#define RBM_CLAW 5 -#define RBM_BITE 6 -#define RBM_STING 7 -#define RBM_SLASH 8 -#define RBM_BUTT 9 -#define RBM_CRUSH 10 -#define RBM_ENGULF 11 -#define RBM_CHARGE 12 -#define RBM_CRAWL 13 -#define RBM_DROOL 14 -#define RBM_SPIT 15 -#define RBM_EXPLODE 16 -#define RBM_GAZE 17 -#define RBM_WAIL 18 -#define RBM_SPORE 19 -#define RBM_XXX4 20 -#define RBM_BEG 21 -#define RBM_INSULT 22 -#define RBM_MOAN 23 -#define RBM_SHOW 24 -#define RBM_SHOOT 25 - - -/* - * New monster blow effects - */ -#define RBE_HURT 1 -#define RBE_POISON 2 -#define RBE_UN_BONUS 3 -#define RBE_UN_POWER 4 -#define RBE_EAT_GOLD 5 -#define RBE_EAT_ITEM 6 -#define RBE_EAT_FOOD 7 -#define RBE_EAT_LITE 8 -#define RBE_ACID 9 -#define RBE_ELEC 10 -#define RBE_FIRE 11 -#define RBE_COLD 12 -#define RBE_BLIND 13 -#define RBE_CONFUSE 14 -#define RBE_TERRIFY 15 -#define RBE_PARALYZE 16 -#define RBE_LOSE_STR 17 -#define RBE_LOSE_INT 18 -#define RBE_LOSE_WIS 19 -#define RBE_LOSE_DEX 20 -#define RBE_LOSE_CON 21 -#define RBE_LOSE_CHR 22 -#define RBE_LOSE_ALL 23 -#define RBE_SHATTER 24 -#define RBE_EXP_10 25 -#define RBE_EXP_20 26 -#define RBE_EXP_40 27 -#define RBE_EXP_80 28 -#define RBE_DISEASE 29 -#define RBE_TIME 30 -#define RBE_EXP_VAMP 31 -#define RBE_DR_MANA 32 -#define RBE_SUPERHURT 33 -#define RBE_INERTIA 34 -#define RBE_STUN 35 +/*! + * @note モンスターの打撃方法 / New monster blow methods + * 打撃の種別に応じて傷と朦朧が発生するかがコメントの通りに決まる + */ +#define RBM_HIT 1 /*!< モンスターの攻撃種別:殴る(傷/朦朧が半々) */ +#define RBM_TOUCH 2 /*!< モンスターの攻撃種別:触る */ +#define RBM_PUNCH 3 /*!< モンスターの攻撃種別:パンチする(朦朧) */ +#define RBM_KICK 4 /*!< モンスターの攻撃種別:蹴る(朦朧) */ +#define RBM_CLAW 5 /*!< モンスターの攻撃種別:ひっかく(傷) */ +#define RBM_BITE 6 /*!< モンスターの攻撃種別:噛む(傷) */ +#define RBM_STING 7 /*!< モンスターの攻撃種別:刺す */ +#define RBM_SLASH 8 /*!< モンスターの攻撃種別:斬る(傷) */ +#define RBM_BUTT 9 /*!< モンスターの攻撃種別:角で突く(朦朧) */ +#define RBM_CRUSH 10 /*!< モンスターの攻撃種別:体当たりする(朦朧) */ +#define RBM_ENGULF 11 /*!< モンスターの攻撃種別:飲み込む */ +#define RBM_CHARGE 12 /*!< モンスターの攻撃種別:請求書を寄越す */ +#define RBM_CRAWL 13 /*!< モンスターの攻撃種別:体の上を這い回る */ +#define RBM_DROOL 14 /*!< モンスターの攻撃種別:よだれをたらす */ +#define RBM_SPIT 15 /*!< モンスターの攻撃種別:つばを吐く */ +#define RBM_EXPLODE 16 /*!< モンスターの攻撃種別:爆発する */ +#define RBM_GAZE 17 /*!< モンスターの攻撃種別:にらむ */ +#define RBM_WAIL 18 /*!< モンスターの攻撃種別:泣き叫ぶ */ +#define RBM_SPORE 19 /*!< モンスターの攻撃種別:胞子を飛ばす */ +#define RBM_XXX4 20 /*!< モンスターの攻撃種別:未定義 */ +#define RBM_BEG 21 /*!< モンスターの攻撃種別:金をせがむ */ +#define RBM_INSULT 22 /*!< モンスターの攻撃種別:侮辱する */ +#define RBM_MOAN 23 /*!< モンスターの攻撃種別:うめく */ +#define RBM_SHOW 24 /*!< モンスターの攻撃種別:歌う */ +#define RBM_SHOOT 25 /*!< モンスターの攻撃種別:射撃(非打撃) */ + + +/*! + * @note モンスターの攻撃効果 / New monster blow effects + */ +#define RBE_HURT 1 /*!< モンスターの攻撃効果: 攻撃する*/ +#define RBE_POISON 2 /*!< モンスターの攻撃効果: 毒をくらわす*/ +#define RBE_UN_BONUS 3 /*!< モンスターの攻撃効果: 劣化させる*/ +#define RBE_UN_POWER 4 /*!< モンスターの攻撃効果: 充填魔力を吸収する*/ +#define RBE_EAT_GOLD 5 /*!< モンスターの攻撃効果: 金を盗む*/ +#define RBE_EAT_ITEM 6 /*!< モンスターの攻撃効果: アイテムを盗む*/ +#define RBE_EAT_FOOD 7 /*!< モンスターの攻撃効果: あなたの食糧を食べる*/ +#define RBE_EAT_LITE 8 /*!< モンスターの攻撃効果: 明かりを吸収する*/ +#define RBE_ACID 9 /*!< モンスターの攻撃効果: 酸を飛ばす*/ +#define RBE_ELEC 10 /*!< モンスターの攻撃効果: 感電させる*/ +#define RBE_FIRE 11 /*!< モンスターの攻撃効果: 燃やす*/ +#define RBE_COLD 12 /*!< モンスターの攻撃効果: 凍らせる*/ +#define RBE_BLIND 13 /*!< モンスターの攻撃効果: 盲目にする*/ +#define RBE_CONFUSE 14 /*!< モンスターの攻撃効果: 混乱させる*/ +#define RBE_TERRIFY 15 /*!< モンスターの攻撃効果: 恐怖させる*/ +#define RBE_PARALYZE 16 /*!< モンスターの攻撃効果: 麻痺させる*/ +#define RBE_LOSE_STR 17 /*!< モンスターの攻撃効果: 腕力を減少させる*/ +#define RBE_LOSE_INT 18 /*!< モンスターの攻撃効果: 知能を減少させる*/ +#define RBE_LOSE_WIS 19 /*!< モンスターの攻撃効果: 賢さを減少させる*/ +#define RBE_LOSE_DEX 20 /*!< モンスターの攻撃効果: 器用さを減少させる*/ +#define RBE_LOSE_CON 21 /*!< モンスターの攻撃効果: 耐久力を減少させる*/ +#define RBE_LOSE_CHR 22 /*!< モンスターの攻撃効果: 魅力を減少させる*/ +#define RBE_LOSE_ALL 23 /*!< モンスターの攻撃効果: 全ステータスを減少させる*/ +#define RBE_SHATTER 24 /*!< モンスターの攻撃効果: 粉砕する*/ +#define RBE_EXP_10 25 /*!< モンスターの攻撃効果: 経験値を減少(10d6+)させる*/ +#define RBE_EXP_20 26 /*!< モンスターの攻撃効果: 経験値を減少(20d6+)させる*/ +#define RBE_EXP_40 27 /*!< モンスターの攻撃効果: 経験値を減少(40d6+)させる*/ +#define RBE_EXP_80 28 /*!< モンスターの攻撃効果: 経験値を減少(80d6+)させる*/ +#define RBE_DISEASE 29 /*!< モンスターの攻撃効果: 病気にする*/ +#define RBE_TIME 30 /*!< モンスターの攻撃効果: 時間を逆戻りさせる*/ +#define RBE_DR_LIFE 31 /*!< モンスターの攻撃効果: 生命力を吸収する*/ +#define RBE_DR_MANA 32 /*!< モンスターの攻撃効果: 魔力を奪う*/ +#define RBE_SUPERHURT 33 /*!< モンスターの攻撃効果: 強力に攻撃する*/ +#define RBE_INERTIA 34 /*!< モンスターの攻撃効果: 減速させる*/ +#define RBE_STUN 35 /*!< モンスターの攻撃効果: 朦朧とさせる*/ /*** Monster flag values (hard-coded) ***/ @@ -3593,182 +3524,182 @@ /* * New monster race bit flags */ -#define RF1_UNIQUE 0x00000001 /* Unique Monster */ -#define RF1_QUESTOR 0x00000002 /* Quest Monster */ -#define RF1_MALE 0x00000004 /* Male gender */ -#define RF1_FEMALE 0x00000008 /* Female gender */ -#define RF1_CHAR_CLEAR 0x00000010 /* Absorbs symbol */ -#define RF1_SHAPECHANGER 0x00000020 /* TY: shapechanger */ -#define RF1_ATTR_CLEAR 0x00000040 /* Absorbs color */ -#define RF1_ATTR_MULTI 0x00000080 /* Changes color */ -#define RF1_FORCE_DEPTH 0x00000100 /* Start at "correct" depth */ -#define RF1_FORCE_MAXHP 0x00000200 /* Start with max hitpoints */ -#define RF1_FORCE_SLEEP 0x00000400 /* Start out sleeping */ -#define RF1_FORCE_EXTRA 0x00000800 /* Start out something */ -#define RF1_ATTR_SEMIRAND 0x00001000 /* Color is determined semi-randomly */ -#define RF1_FRIENDS 0x00002000 /* Arrive with some friends */ -#define RF1_ESCORT 0x00004000 /* Arrive with an escort */ -#define RF1_ESCORTS 0x00008000 /* Arrive with some escorts */ -#define RF1_NEVER_BLOW 0x00010000 /* Never make physical blow */ -#define RF1_NEVER_MOVE 0x00020000 /* Never make physical move */ -#define RF1_RAND_25 0x00040000 /* Moves randomly (25%) */ -#define RF1_RAND_50 0x00080000 /* Moves randomly (50%) */ -#define RF1_ONLY_GOLD 0x00100000 /* Drop only gold */ -#define RF1_ONLY_ITEM 0x00200000 /* Drop only items */ -#define RF1_DROP_60 0x00400000 /* Drop an item/gold (60%) */ -#define RF1_DROP_90 0x00800000 /* Drop an item/gold (90%) */ -#define RF1_DROP_1D2 0x01000000 /* Drop 1d2 items/gold */ -#define RF1_DROP_2D2 0x02000000 /* Drop 2d2 items/gold */ -#define RF1_DROP_3D2 0x04000000 /* Drop 3d2 items/gold */ -#define RF1_DROP_4D2 0x08000000 /* Drop 4d2 items/gold */ -#define RF1_DROP_GOOD 0x10000000 /* Drop good items */ -#define RF1_DROP_GREAT 0x20000000 /* Drop great items */ -#define RF1_XXX2 0x40000000 /* XXX */ -#define RF1_XXX3 0x80000000 /* XXX */ +#define RF1_UNIQUE 0x00000001 /*!< モンスター特性: ユニーク / Unique Monster */ +#define RF1_QUESTOR 0x00000002 /*!< モンスター特性: クエストモンスター / Quest Monster */ +#define RF1_MALE 0x00000004 /*!< モンスター特性: 男性 / Male gender */ +#define RF1_FEMALE 0x00000008 /*!< モンスター特性: 女性 / Female gender */ +#define RF1_CHAR_CLEAR 0x00000010 /*!< モンスター特性: シンボルが完全に透明 / Absorbs symbol */ +#define RF1_SHAPECHANGER 0x00000020 /*!< モンスター特性: シンボルアルファベットがランダムになる / TY: shapechanger */ +#define RF1_ATTR_CLEAR 0x00000040 /*!< モンスター特性: シンボルカラーが透明色になる(地形と同じ色になる) / Absorbs color */ +#define RF1_ATTR_MULTI 0x00000080 /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */ +#define RF1_FORCE_DEPTH 0x00000100 /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */ +#define RF1_FORCE_MAXHP 0x00000200 /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */ +#define RF1_FORCE_SLEEP 0x00000400 /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */ +#define RF1_FORCE_EXTRA 0x00000800 /*!< モンスター特性: (未使用) / Start out something */ +#define RF1_ATTR_SEMIRAND 0x00001000 /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */ +#define RF1_FRIENDS 0x00002000 /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */ +#define RF1_ESCORT 0x00004000 /*!< モンスター特性: 護衛を用意している/ Arrive with an escort */ +#define RF1_ESCORTS 0x00008000 /*!< モンスター特性: さらに大量の護衛を用意している / Arrive with some escorts */ +#define RF1_NEVER_BLOW 0x00010000 /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */ +#define RF1_NEVER_MOVE 0x00020000 /*!< モンスター特性: 移動を一切行わない / Never make physical move */ +#define RF1_RAND_25 0x00040000 /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */ +#define RF1_RAND_50 0x00080000 /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */ +#define RF1_ONLY_GOLD 0x00100000 /*!< モンスター特性: 財宝しか落とさない / Drop only gold */ +#define RF1_ONLY_ITEM 0x00200000 /*!< モンスター特性: アイテムしか落とさない / Drop only items */ +#define RF1_DROP_60 0x00400000 /*!< モンスター特性: 落とすアイテム数60%で+1/ Drop an item/gold (60%) */ +#define RF1_DROP_90 0x00800000 /*!< モンスター特性: 落とすアイテム数90%で+1 / Drop an item/gold (90%) */ +#define RF1_DROP_1D2 0x01000000 /*!< モンスター特性: 落とすアイテム数+1d2 / Drop 1d2 items/gold */ +#define RF1_DROP_2D2 0x02000000 /*!< モンスター特性: 落とすアイテム数+2d2 / Drop 2d2 items/gold */ +#define RF1_DROP_3D2 0x04000000 /*!< モンスター特性: 落とすアイテム数+3d2 / Drop 3d2 items/gold */ +#define RF1_DROP_4D2 0x08000000 /*!< モンスター特性: 落とすアイテム数+4d2 / Drop 4d2 items/gold */ +#define RF1_DROP_GOOD 0x10000000 /*!< モンスター特性: 必ず上質品をドロップする / Drop good items */ +#define RF1_DROP_GREAT 0x20000000 /*!< モンスター特性: 必ず高級品をドロップする / Drop great items */ +#define RF1_XXX2 0x40000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF1_XXX3 0x80000000 /*!< モンスター特性: 未使用 / XXX */ /* * New monster race bit flags */ -#define RF2_STUPID 0x00000001 /* Monster is stupid */ -#define RF2_SMART 0x00000002 /* Monster is smart */ -#define RF2_CAN_SPEAK 0x00000004 /* TY: can speak */ -#define RF2_REFLECTING 0x00000008 /* Reflects bolts */ -#define RF2_INVISIBLE 0x00000010 /* Monster avoids vision */ -#define RF2_COLD_BLOOD 0x00000020 /* Monster avoids infra */ -#define RF2_EMPTY_MIND 0x00000040 /* Monster avoids telepathy */ -#define RF2_WEIRD_MIND 0x00000080 /* Monster avoids telepathy? */ -#define RF2_MULTIPLY 0x00000100 /* Monster reproduces */ -#define RF2_REGENERATE 0x00000200 /* Monster regenerates */ -#define RF2_CHAR_MULTI 0x00000400 /* (Not implemented) */ -#define RF2_ATTR_ANY 0x00000800 /* TY: Attr_any */ -#define RF2_POWERFUL 0x00001000 /* Monster has strong breath */ -#define RF2_ELDRITCH_HORROR 0x00002000 /* Sanity-blasting horror */ -#define RF2_AURA_FIRE 0x00004000 /* Burns in melee */ -#define RF2_AURA_ELEC 0x00008000 /* Shocks in melee */ -#define RF2_OPEN_DOOR 0x00010000 /* Monster can open doors */ -#define RF2_BASH_DOOR 0x00020000 /* Monster can bash doors */ -#define RF2_PASS_WALL 0x00040000 /* Monster can pass walls */ -#define RF2_KILL_WALL 0x00080000 /* Monster can destroy walls */ -#define RF2_MOVE_BODY 0x00100000 /* Monster can move monsters */ -#define RF2_KILL_BODY 0x00200000 /* Monster can kill monsters */ -#define RF2_TAKE_ITEM 0x00400000 /* Monster can pick up items */ -#define RF2_KILL_ITEM 0x00800000 /* Monster can crush items */ -#define RF2_XXX1 0x01000000 -#define RF2_XXX2 0x02000000 -#define RF2_XXX3 0x04000000 -#define RF2_XXX4 0x08000000 -#define RF2_XXX5 0x10000000 -#define RF2_XXX6 0x20000000 -#define RF2_HUMAN 0x40000000 /* Human */ -#define RF2_QUANTUM 0x80000000 /* Monster has quantum behavior */ +#define RF2_STUPID 0x00000001 /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */ +#define RF2_SMART 0x00000002 /*!< モンスター特性: 賢い行動を取る / Monster is smart */ +#define RF2_CAN_SPEAK 0x00000004 /*!< モンスター特性: 台詞をしゃべる / TY: can speak */ +#define RF2_REFLECTING 0x00000008 /*!< モンスター特性: 矢やボルト魔法を反射する / Reflects bolts */ +#define RF2_INVISIBLE 0x00000010 /*!< モンスター特性: 透明視力がないと見えない / Monster avoids vision */ +#define RF2_COLD_BLOOD 0x00000020 /*!< モンスター特性: 冷血動物である / Monster avoids infra */ +#define RF2_EMPTY_MIND 0x00000040 /*!< モンスター特性: 知性を持たない(テレパシー回避) / Monster avoids telepathy */ +#define RF2_WEIRD_MIND 0x00000080 /*!< モンスター特性: 異質な知性(テレパシーで感知づらい) / Monster avoids telepathy? */ +#define RF2_MULTIPLY 0x00000100 /*!< モンスター特性: 増殖する / Monster reproduces */ +#define RF2_REGENERATE 0x00000200 /*!< モンスター特性: 急激に回復する / Monster regenerates */ +#define RF2_CHAR_MULTI 0x00000400 /*!< モンスター特性: 未使用 / (Not implemented) */ +#define RF2_ATTR_ANY 0x00000800 /*!< モンスター特性: ATTR_MULTIの色数が増える / TY: Attr_any */ +#define RF2_POWERFUL 0x00001000 /*!< モンスター特性: 強力に魔法をあやつる / Monster has strong breath */ +#define RF2_ELDRITCH_HORROR 0x00002000 /*!< モンスター特性: 狂気を呼び起こす / Sanity-blasting horror */ +#define RF2_AURA_FIRE 0x00004000 /*!< モンスター特性: 火炎のオーラを持つ / Burns in melee */ +#define RF2_AURA_ELEC 0x00008000 /*!< モンスター特性: 電撃のオーラを持つ / Shocks in melee */ +#define RF2_OPEN_DOOR 0x00010000 /*!< モンスター特性: ドアを開けることができる / Monster can open doors */ +#define RF2_BASH_DOOR 0x00020000 /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */ +#define RF2_PASS_WALL 0x00040000 /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */ +#define RF2_KILL_WALL 0x00080000 /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */ +#define RF2_MOVE_BODY 0x00100000 /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */ +#define RF2_KILL_BODY 0x00200000 /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */ +#define RF2_TAKE_ITEM 0x00400000 /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */ +#define RF2_KILL_ITEM 0x00800000 /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */ +#define RF2_XXX1 0x01000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_XXX2 0x02000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_XXX3 0x04000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_XXX4 0x08000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_XXX5 0x10000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_XXX6 0x20000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF2_HUMAN 0x40000000 /*!< モンスター特性: 人間 / Human */ +#define RF2_QUANTUM 0x80000000 /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */ /* * New monster race bit flags */ -#define RF3_ORC 0x00000001 /* Orc */ -#define RF3_TROLL 0x00000002 /* Troll */ -#define RF3_GIANT 0x00000004 /* Giant */ -#define RF3_DRAGON 0x00000008 /* Dragon */ -#define RF3_DEMON 0x00000010 /* Demon */ -#define RF3_UNDEAD 0x00000020 /* Undead */ -#define RF3_EVIL 0x00000040 /* Evil */ -#define RF3_ANIMAL 0x00000080 /* Animal */ -#define RF3_AMBERITE 0x00000100 /* TY: Amberite */ -#define RF3_GOOD 0x00000200 /* Good */ -#define RF3_AURA_COLD 0x00000400 /* Freezes in melee */ -#define RF3_NONLIVING 0x00000800 /* TY: Non-Living (?) */ -#define RF3_HURT_LITE 0x00001000 /* Hurt by lite */ -#define RF3_HURT_ROCK 0x00002000 /* Hurt by rock remover */ -#define RF3_HURT_FIRE 0x00004000 /* Hurt badly by fire */ -#define RF3_HURT_COLD 0x00008000 /* Hurt badly by cold */ -#define RF3_XXX16 0x00010000 -#define RF3_XXX17 0x00020000 -#define RF3_XXX18 0x00040000 -#define RF3_XXX19 0x00080000 -#define RF3_XXX20 0x00100000 -#define RF3_XXX21 0x00200000 -#define RF3_XXX22 0x00400000 -#define RF3_XXX23 0x00800000 -#define RF3_XXX24 0x01000000 -#define RF3_XXX25 0x02000000 -#define RF3_XXX26 0x04000000 -#define RF3_XXX27 0x08000000 -#define RF3_NO_FEAR 0x10000000 /* Cannot be scared */ -#define RF3_NO_STUN 0x20000000 /* Cannot be stunned */ -#define RF3_NO_CONF 0x40000000 /* Cannot be confused and resist confusion */ -#define RF3_NO_SLEEP 0x80000000 /* Cannot be slept */ +#define RF3_ORC 0x00000001 /*!< モンスター特性: オーク / Orc */ +#define RF3_TROLL 0x00000002 /*!< モンスター特性: トロル / Troll */ +#define RF3_GIANT 0x00000004 /*!< モンスター特性: 巨人 / Giant */ +#define RF3_DRAGON 0x00000008 /*!< モンスター特性: ドラゴン / Dragon */ +#define RF3_DEMON 0x00000010 /*!< モンスター特性: 悪魔 / Demon */ +#define RF3_UNDEAD 0x00000020 /*!< モンスター特性: アンデッド / Undead */ +#define RF3_EVIL 0x00000040 /*!< モンスター特性: 邪悪 / Evil */ +#define RF3_ANIMAL 0x00000080 /*!< モンスター特性: 動物 / Animal */ +#define RF3_AMBERITE 0x00000100 /*!< モンスター特性: アンバーの血族 / TY: Amberite */ +#define RF3_GOOD 0x00000200 /*!< モンスター特性: 善良 / Good */ +#define RF3_AURA_COLD 0x00000400 /*!< モンスター特性: 冷気オーラ / Freezes in melee */ +#define RF3_NONLIVING 0x00000800 /*!< モンスター特性: 無生物 / TY: Non-Living (?) */ +#define RF3_HURT_LITE 0x00001000 /*!< モンスター特性: 通常の光(GF_WEAK_LITE)でダメージを受ける / Hurt by lite */ +#define RF3_HURT_ROCK 0x00002000 /*!< モンスター特性: 岩石溶解(GF_KILL_WALL)でダメージを受ける / Hurt by rock remover */ +#define RF3_HURT_FIRE 0x00004000 /*!< モンスター特性: 火炎が弱点 / Hurt badly by fire */ +#define RF3_HURT_COLD 0x00008000 /*!< モンスター特性: 冷気が弱点 / Hurt badly by cold */ +#define RF3_XXX16 0x00010000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX17 0x00020000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX18 0x00040000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX19 0x00080000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX20 0x00100000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX21 0x00200000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX22 0x00400000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX23 0x00800000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX24 0x01000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX25 0x02000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX26 0x04000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_XXX27 0x08000000 /*!< モンスター特性: 未使用 / XXX */ +#define RF3_NO_FEAR 0x10000000 /*!< モンスター特性: 恐怖しない / Cannot be scared */ +#define RF3_NO_STUN 0x20000000 /*!< モンスター特性: 朦朧としない / Cannot be stunned */ +#define RF3_NO_CONF 0x40000000 /*!< モンスター特性: 混乱しない / Cannot be confused and resist confusion */ +#define RF3_NO_SLEEP 0x80000000 /*!< モンスター特性: 眠らない / Cannot be slept */ /* * New monster race bit flags */ -#define RF4_SHRIEK 0x00000001 /* Shriek for help */ -#define RF4_XXX1 0x00000002 /* XXX */ -#define RF4_DISPEL 0x00000004 /* Dispel magic */ -#define RF4_ROCKET 0x00000008 /* TY: Rocket */ -#define RF4_SHOOT 0x00000010 /* Fire missiles */ -#define RF4_XXX2 0x00000020 -#define RF4_XXX3 0x00000040 -#define RF4_XXX4 0x00000080 -#define RF4_BR_ACID 0x00000100 /* Breathe Acid */ -#define RF4_BR_ELEC 0x00000200 /* Breathe Elec */ -#define RF4_BR_FIRE 0x00000400 /* Breathe Fire */ -#define RF4_BR_COLD 0x00000800 /* Breathe Cold */ -#define RF4_BR_POIS 0x00001000 /* Breathe Poison */ -#define RF4_BR_NETH 0x00002000 /* Breathe Nether */ -#define RF4_BR_LITE 0x00004000 /* Breathe Lite */ -#define RF4_BR_DARK 0x00008000 /* Breathe Dark */ -#define RF4_BR_CONF 0x00010000 /* Breathe Confusion */ -#define RF4_BR_SOUN 0x00020000 /* Breathe Sound */ -#define RF4_BR_CHAO 0x00040000 /* Breathe Chaos */ -#define RF4_BR_DISE 0x00080000 /* Breathe Disenchant */ -#define RF4_BR_NEXU 0x00100000 /* Breathe Nexus */ -#define RF4_BR_TIME 0x00200000 /* Breathe Time */ -#define RF4_BR_INER 0x00400000 /* Breathe Inertia */ -#define RF4_BR_GRAV 0x00800000 /* Breathe Gravity */ -#define RF4_BR_SHAR 0x01000000 /* Breathe Shards */ -#define RF4_BR_PLAS 0x02000000 /* Breathe Plasma */ -#define RF4_BR_WALL 0x04000000 /* Breathe Force */ -#define RF4_BR_MANA 0x08000000 /* Breathe Mana */ -#define RF4_BA_NUKE 0x10000000 /* TY: Nuke Ball */ -#define RF4_BR_NUKE 0x20000000 /* TY: Toxic Breath */ -#define RF4_BA_CHAO 0x40000000 /* TY: Logrus Ball */ -#define RF4_BR_DISI 0x80000000 /* Breathe Disintegration */ +#define RF4_SHRIEK 0x00000001 /*!< モンスター能力: 叫ぶ / Shriek for help */ +#define RF4_XXX1 0x00000002 /*!< モンスター能力: 未使用 / XXX */ +#define RF4_DISPEL 0x00000004 /*!< モンスター能力: 魔力消去 / Dispel magic */ +#define RF4_ROCKET 0x00000008 /*!< モンスター能力: ロケット / TY: Rocket */ +#define RF4_SHOOT 0x00000010 /*!< モンスター能力: 射撃/ Fire missiles */ +#define RF4_XXX2 0x00000020 /*!< モンスター能力: 未使用 / XXX */ +#define RF4_XXX3 0x00000040 /*!< モンスター能力: 未使用 / XXX */ +#define RF4_XXX4 0x00000080 /*!< モンスター能力: 未使用 / XXX */ +#define RF4_BR_ACID 0x00000100 /*!< モンスター能力: 酸のブレス / Breathe Acid */ +#define RF4_BR_ELEC 0x00000200 /*!< モンスター能力: 電撃のブレス / Breathe Elec */ +#define RF4_BR_FIRE 0x00000400 /*!< モンスター能力: 火炎のブレス / Breathe Fire */ +#define RF4_BR_COLD 0x00000800 /*!< モンスター能力: 冷気のブレス / Breathe Cold */ +#define RF4_BR_POIS 0x00001000 /*!< モンスター能力: 毒のブレス / Breathe Poison */ +#define RF4_BR_NETH 0x00002000 /*!< モンスター能力: 地獄のブレス / Breathe Nether */ +#define RF4_BR_LITE 0x00004000 /*!< モンスター能力: 閃光のブレス / Breathe Lite */ +#define RF4_BR_DARK 0x00008000 /*!< モンスター能力: 暗黒のブレス / Breathe Dark */ +#define RF4_BR_CONF 0x00010000 /*!< モンスター能力: 混乱のブレス / Breathe Confusion */ +#define RF4_BR_SOUN 0x00020000 /*!< モンスター能力: 轟音のブレス / Breathe Sound */ +#define RF4_BR_CHAO 0x00040000 /*!< モンスター能力: カオスのブレス / Breathe Chaos */ +#define RF4_BR_DISE 0x00080000 /*!< モンスター能力: 劣化のブレス / Breathe Disenchant */ +#define RF4_BR_NEXU 0x00100000 /*!< モンスター能力: 因果混乱のブレス / Breathe Nexus */ +#define RF4_BR_TIME 0x00200000 /*!< モンスター能力: 時間逆転のブレス / Breathe Time */ +#define RF4_BR_INER 0x00400000 /*!< モンスター能力: 遅鈍のブレス / Breathe Inertia */ +#define RF4_BR_GRAV 0x00800000 /*!< モンスター能力: 重力のブレス / Breathe Gravity */ +#define RF4_BR_SHAR 0x01000000 /*!< モンスター能力: 破片のブレス / Breathe Shards */ +#define RF4_BR_PLAS 0x02000000 /*!< モンスター能力: プラズマのブレス / Breathe Plasma */ +#define RF4_BR_WALL 0x04000000 /*!< モンスター能力: フォースのブレス / Breathe Force */ +#define RF4_BR_MANA 0x08000000 /*!< モンスター能力: 魔力のブレス / Breathe Mana */ +#define RF4_BA_NUKE 0x10000000 /*!< モンスター能力: 放射能球 / TY: Nuke Ball */ +#define RF4_BR_NUKE 0x20000000 /*!< モンスター能力: 放射性廃棄物のブレス / TY: Toxic Breath */ +#define RF4_BA_CHAO 0x40000000 /*!< モンスター能力: ログルス球 / TY: Logrus Ball */ +#define RF4_BR_DISI 0x80000000 /*!< モンスター能力: 分解のブレス / Breathe Disintegration */ /* * New monster race bit flags */ -#define RF5_BA_ACID 0x00000001 /* Acid Ball */ -#define RF5_BA_ELEC 0x00000002 /* Elec Ball */ -#define RF5_BA_FIRE 0x00000004 /* Fire Ball */ -#define RF5_BA_COLD 0x00000008 /* Cold Ball */ -#define RF5_BA_POIS 0x00000010 /* Poison Ball */ -#define RF5_BA_NETH 0x00000020 /* Nether Ball */ -#define RF5_BA_WATE 0x00000040 /* Water Ball */ -#define RF5_BA_MANA 0x00000080 /* Mana Storm */ -#define RF5_BA_DARK 0x00000100 /* Darkness Storm */ -#define RF5_DRAIN_MANA 0x00000200 /* Drain Mana */ -#define RF5_MIND_BLAST 0x00000400 /* Blast Mind */ -#define RF5_BRAIN_SMASH 0x00000800 /* Smash Brain */ -#define RF5_CAUSE_1 0x00001000 /* Cause Light Wound */ -#define RF5_CAUSE_2 0x00002000 /* Cause Serious Wound */ -#define RF5_CAUSE_3 0x00004000 /* Cause Critical Wound */ -#define RF5_CAUSE_4 0x00008000 /* Cause Mortal Wound */ -#define RF5_BO_ACID 0x00010000 /* Acid Bolt */ -#define RF5_BO_ELEC 0x00020000 /* Elec Bolt (unused) */ -#define RF5_BO_FIRE 0x00040000 /* Fire Bolt */ -#define RF5_BO_COLD 0x00080000 /* Cold Bolt */ -#define RF5_BA_LITE 0x00100000 /* StarBurst */ -#define RF5_BO_NETH 0x00200000 /* Nether Bolt */ -#define RF5_BO_WATE 0x00400000 /* Water Bolt */ -#define RF5_BO_MANA 0x00800000 /* Mana Bolt */ -#define RF5_BO_PLAS 0x01000000 /* Plasma Bolt */ -#define RF5_BO_ICEE 0x02000000 /* Ice Bolt */ -#define RF5_MISSILE 0x04000000 /* Magic Missile */ -#define RF5_SCARE 0x08000000 /* Frighten Player */ -#define RF5_BLIND 0x10000000 /* Blind Player */ -#define RF5_CONF 0x20000000 /* Confuse Player */ -#define RF5_SLOW 0x40000000 /* Slow Player */ -#define RF5_HOLD 0x80000000 /* Paralyze Player */ +#define RF5_BA_ACID 0x00000001 /*!< モンスター能力: アシッド・ボール / Acid Ball */ +#define RF5_BA_ELEC 0x00000002 /*!< モンスター能力: サンダー・ボール / Elec Ball */ +#define RF5_BA_FIRE 0x00000004 /*!< モンスター能力: ファイア・ボール / Fire Ball */ +#define RF5_BA_COLD 0x00000008 /*!< モンスター能力: アイス・ボール / Cold Ball */ +#define RF5_BA_POIS 0x00000010 /*!< モンスター能力: 悪臭雲 / Poison Ball */ +#define RF5_BA_NETH 0x00000020 /*!< モンスター能力: 地獄球 / Nether Ball */ +#define RF5_BA_WATE 0x00000040 /*!< モンスター能力: ウォーター・ボール / Water Ball */ +#define RF5_BA_MANA 0x00000080 /*!< モンスター能力: 魔力の嵐 / Mana Storm */ +#define RF5_BA_DARK 0x00000100 /*!< モンスター能力: 暗黒の嵐 / Darkness Storm */ +#define RF5_DRAIN_MANA 0x00000200 /*!< モンスター能力: 魔力吸収 / Drain Mana */ +#define RF5_MIND_BLAST 0x00000400 /*!< モンスター能力: 精神攻撃 / Blast Mind */ +#define RF5_BRAIN_SMASH 0x00000800 /*!< モンスター能力: 脳攻撃 / Smash Brain */ +#define RF5_CAUSE_1 0x00001000 /*!< モンスター能力: 軽傷の呪い / Cause Light Wound */ +#define RF5_CAUSE_2 0x00002000 /*!< モンスター能力: 重症の頃い / Cause Serious Wound */ +#define RF5_CAUSE_3 0x00004000 /*!< モンスター能力: 致命傷の呪い / Cause Critical Wound */ +#define RF5_CAUSE_4 0x00008000 /*!< モンスター能力: 秘孔を突く / Cause Mortal Wound */ +#define RF5_BO_ACID 0x00010000 /*!< モンスター能力: アシッド・ボルト / Acid Bolt */ +#define RF5_BO_ELEC 0x00020000 /*!< モンスター能力: サンダー・ボルト / Elec Bolt */ +#define RF5_BO_FIRE 0x00040000 /*!< モンスター能力: ファイア・ボルト / Fire Bolt */ +#define RF5_BO_COLD 0x00080000 /*!< モンスター能力: アイス・ボルト / Cold Bolt */ +#define RF5_BA_LITE 0x00100000 /*!< モンスター能力: スター・バースト / StarBurst */ +#define RF5_BO_NETH 0x00200000 /*!< モンスター能力: 地獄の矢 / Nether Bolt */ +#define RF5_BO_WATE 0x00400000 /*!< モンスター能力: ウォーター・ボルト / Water Bolt */ +#define RF5_BO_MANA 0x00800000 /*!< モンスター能力: 魔力の矢 / Mana Bolt */ +#define RF5_BO_PLAS 0x01000000 /*!< モンスター能力: プラズマ・ボルト / Plasma Bolt */ +#define RF5_BO_ICEE 0x02000000 /*!< モンスター能力: 極寒の矢 / Ice Bolt */ +#define RF5_MISSILE 0x04000000 /*!< モンスター能力: マジック・ミサイルt / Magic Missile */ +#define RF5_SCARE 0x08000000 /*!< モンスター能力: 恐慌 / Frighten Player */ +#define RF5_BLIND 0x10000000 /*!< モンスター能力: 盲目 / Blind Player */ +#define RF5_CONF 0x20000000 /*!< モンスター能力: 混乱 / Confuse Player */ +#define RF5_SLOW 0x40000000 /*!< モンスター能力: 減速 / Slow Player */ +#define RF5_HOLD 0x80000000 /*!< モンスター能力: 麻痺 / Paralyze Player */ /* * New monster race bit flags @@ -3877,7 +3808,7 @@ #define RF9_EAT_LOSE_STR 0x02000000 #define RF9_EAT_LOSE_INT 0x04000000 #define RF9_EAT_LOSE_WIS 0x08000000 -#define RF9_EAT_LOSE_DEX 0x01000000 +#define RF9_EAT_LOSE_DEX 0x10000000 #define RF9_EAT_LOSE_CON 0x20000000 #define RF9_EAT_LOSE_CHR 0x40000000 #define RF9_EAT_DRAIN_MANA 0x80000000 @@ -4131,7 +4062,7 @@ */ #define is_seen(A) \ ((bool)((A)->ml && (!ignore_unview || p_ptr->inside_battle || \ - (player_can_see_bold((A)->fy, (A)->fx) && projectable(py, px, (A)->fy, (A)->fx))))) + (player_can_see_bold((A)->fy, (A)->fx) && projectable(p_ptr->y, p_ptr->x, (A)->fy, (A)->fx))))) /*** Option Definitions ***/ @@ -4300,14 +4231,14 @@ * Determine if player is on this grid */ #define player_bold(Y,X) \ - (((Y) == py) && ((X) == px)) + (((Y) == p_ptr->y) && ((X) == p_ptr->x)) /* * Grid based version of "player_bold()" */ #define player_grid(C) \ - ((C) == &cave[py][px]) + ((C) == &cave[p_ptr->y][p_ptr->x]) #define cave_have_flag_bold(Y,X,INDEX) \ @@ -4486,22 +4417,22 @@ extern int PlayerUID; * The "(R,G,B)" codes are given in "fourths" of the "maximal" value, * and should "gamma corrected" on most (non-Macintosh) machines. */ -#define TERM_DARK 0 /* 'd' */ /* 0,0,0 */ -#define TERM_WHITE 1 /* 'w' */ /* 4,4,4 */ -#define TERM_SLATE 2 /* 's' */ /* 2,2,2 */ -#define TERM_ORANGE 3 /* 'o' */ /* 4,2,0 */ -#define TERM_RED 4 /* 'r' */ /* 3,0,0 */ -#define TERM_GREEN 5 /* 'g' */ /* 0,2,1 */ -#define TERM_BLUE 6 /* 'b' */ /* 0,0,4 */ -#define TERM_UMBER 7 /* 'u' */ /* 2,1,0 */ -#define TERM_L_DARK 8 /* 'D' */ /* 1,1,1 */ -#define TERM_L_WHITE 9 /* 'W' */ /* 3,3,3 */ -#define TERM_VIOLET 10 /* 'v' */ /* 4,0,4 */ -#define TERM_YELLOW 11 /* 'y' */ /* 4,4,0 */ -#define TERM_L_RED 12 /* 'R' */ /* 4,0,0 */ -#define TERM_L_GREEN 13 /* 'G' */ /* 0,4,0 */ -#define TERM_L_BLUE 14 /* 'B' */ /* 0,4,4 */ -#define TERM_L_UMBER 15 /* 'U' */ /* 3,2,1 */ +#define TERM_DARK 0 /*!< 'd' - 黒 0,0,0 */ +#define TERM_WHITE 1 /*!< 'w' - 白 4,4,4 */ +#define TERM_SLATE 2 /*!< 's' - 灰 2,2,2 */ +#define TERM_ORANGE 3 /*!< 'o' - 橙 4,2,0 */ +#define TERM_RED 4 /*!< 'r' - 赤 3,0,0 */ +#define TERM_GREEN 5 /*!< 'g' - 緑 0,2,1 */ +#define TERM_BLUE 6 /*!< 'b' - 青 0,0,4 */ +#define TERM_UMBER 7 /*!< 'u' - 琥珀 2,1,0 */ +#define TERM_L_DARK 8 /*!< 'D' - 暗い灰 1,1,1 */ +#define TERM_L_WHITE 9 /*!< 'W' - 明るい灰 3,3,3 */ +#define TERM_VIOLET 10 /*!< 'v' - 紫 4,0,4 */ +#define TERM_YELLOW 11 /*!< 'y' - 黄 4,4,0 */ +#define TERM_L_RED 12 /*!< 'R' - 明るい赤 4,0,0 */ +#define TERM_L_GREEN 13 /*!< 'G' - 明るい緑 0,4,0 */ +#define TERM_L_BLUE 14 /*!< 'B' - 明るい青 0,4,4 */ +#define TERM_L_UMBER 15 /*!< 'U' - 明るい琥珀 3,2,1 */ /* @@ -4509,10 +4440,33 @@ extern int PlayerUID; */ #define is_ascii_graphics(A) (!((A) & 0x80)) +/*** Music constants ***/ + +#define MUSIC_BASIC_DEFAULT 0 +#define MUSIC_BASIC_GAMEOVER 1 +#define MUSIC_BASIC_EXIT 2 +#define MUSIC_BASIC_TOWN 3 +#define MUSIC_BASIC_FIELD1 4 +#define MUSIC_BASIC_FIELD2 5 +#define MUSIC_BASIC_FIELD3 6 +#define MUSIC_BASIC_DUN_LOW 7 +#define MUSIC_BASIC_DUN_MED 8 +#define MUSIC_BASIC_DUN_HIGH 9 +#define MUSIC_BASIC_DUN_FEEL1 10 +#define MUSIC_BASIC_DUN_FEEL2 11 +#define MUSIC_BASIC_WINNER 12 +#define MUSIC_BASIC_BUILD 13 +#define MUSIC_BASIC_WILD 14 +#define MUSIC_BASIC_QUEST 15 +#define MUSIC_BASIC_ARENA 16 +#define MUSIC_BASIC_BATTLE 17 +#define MUSIC_BASIC_QUEST_CLEAR 18 +#define MUSIC_BASIC_FINAL_QUEST_CLEAR 19 +#define MUSIC_BASIC_AMBUSH 20 +#define MUSIC_BASIC_MAX 21 /*!< BGM定義の最大数 */ /*** Sound constants ***/ - /* * Mega-Hack -- some primitive sound support (see "main-win.c") * @@ -4546,52 +4500,52 @@ extern int PlayerUID; #define SOUND_BUY 26 #define SOUND_SELL 27 #define SOUND_WARN 28 -#define SOUND_ROCKET 29 /* Somebody's shooting rockets */ -#define SOUND_N_KILL 30 /* The player kills a non-living/undead monster */ -#define SOUND_U_KILL 31 /* The player kills a unique */ -#define SOUND_QUEST 32 /* The player has just completed a quest */ -#define SOUND_HEAL 33 /* The player was healed a little bit */ -#define SOUND_X_HEAL 34 /* The player was healed full health */ -#define SOUND_BITE 35 /* A monster bites you */ -#define SOUND_CLAW 36 /* A monster claws you */ -#define SOUND_M_SPELL 37 /* A monster casts a miscellaneous spell */ -#define SOUND_SUMMON 38 /* A monster casts a summoning spell */ -#define SOUND_BREATH 39 /* A monster breathes */ -#define SOUND_BALL 40 /* A monster casts a ball / bolt spell */ -#define SOUND_M_HEAL 41 /* A monster heals itself somehow */ -#define SOUND_ATK_SPELL 42 /* A monster casts a misc. offensive spell */ -#define SOUND_EVIL 43 /* Something nasty has just happened! */ -#define SOUND_TOUCH 44 /* A monster touches you */ -#define SOUND_STING 45 /* A monster stings you */ -#define SOUND_CRUSH 46 /* A monster crushes / envelopes you */ -#define SOUND_SLIME 47 /* A monster drools/spits/etc on you */ -#define SOUND_WAIL 48 /* A monster wails */ -#define SOUND_WINNER 49 /* Just won the game! */ -#define SOUND_FIRE 50 /* An item was burned */ -#define SOUND_ACID 51 /* An item was destroyed by acid */ -#define SOUND_ELEC 52 /* An item was destroyed by electricity */ -#define SOUND_COLD 53 /* An item was shattered */ -#define SOUND_ILLEGAL 54 /* Illegal command attempted */ -#define SOUND_FAIL 55 /* Fail to get a spell off / activate an item */ -#define SOUND_WAKEUP 56 /* A monster wakes up */ -#define SOUND_INVULN 57 /* Invulnerability! */ -#define SOUND_FALL 58 /* Falling through a trapdoor... */ -#define SOUND_PAIN 59 /* A monster is in pain! */ -#define SOUND_DESTITEM 60 /* An item was destroyed by misc. means */ -#define SOUND_MOAN 61 /* A monster makes a moan/beg/insult attack */ -#define SOUND_SHOW 62 /* A monster makes a "show" attack */ -#define SOUND_UNUSED 63 /* (no sound for gaze attacks) */ -#define SOUND_EXPLODE 64 /* Something (or somebody) explodes */ -#define SOUND_GLASS 65 /* A glass feature was crashed */ +#define SOUND_ROCKET 29 /*!< Somebody's shooting rockets */ +#define SOUND_N_KILL 30 /*!< The player kills a non-living/undead monster */ +#define SOUND_U_KILL 31 /*!< The player kills a unique */ +#define SOUND_QUEST 32 /*!< The player has just completed a quest */ +#define SOUND_HEAL 33 /*!< The player was healed a little bit */ +#define SOUND_X_HEAL 34 /*!< The player was healed full health */ +#define SOUND_BITE 35 /*!< A monster bites you */ +#define SOUND_CLAW 36 /*!< A monster claws you */ +#define SOUND_M_SPELL 37 /*!< A monster casts a miscellaneous spell */ +#define SOUND_SUMMON 38 /*!< A monster casts a summoning spell */ +#define SOUND_BREATH 39 /*!< A monster breathes */ +#define SOUND_BALL 40 /*!< A monster casts a ball / bolt spell */ +#define SOUND_M_HEAL 41 /*!< A monster heals itself somehow */ +#define SOUND_ATK_SPELL 42 /*!< A monster casts a misc. offensive spell */ +#define SOUND_EVIL 43 /*!< Something nasty has just happened! */ +#define SOUND_TOUCH 44 /*!< A monster touches you */ +#define SOUND_STING 45 /*!< A monster stings you */ +#define SOUND_CRUSH 46 /*!< A monster crushes / envelopes you */ +#define SOUND_SLIME 47 /*!< A monster drools/spits/etc on you */ +#define SOUND_WAIL 48 /*!< A monster wails */ +#define SOUND_WINNER 49 /*!< Just won the game! */ +#define SOUND_FIRE 50 /*!< An item was burned */ +#define SOUND_ACID 51 /*!< An item was destroyed by acid */ +#define SOUND_ELEC 52 /*!< An item was destroyed by electricity */ +#define SOUND_COLD 53 /*!< An item was shattered */ +#define SOUND_ILLEGAL 54 /*!< Illegal command attempted */ +#define SOUND_FAIL 55 /*!< Fail to get a spell off / activate an item */ +#define SOUND_WAKEUP 56 /*!< A monster wakes up */ +#define SOUND_INVULN 57 /*!< Invulnerability! */ +#define SOUND_FALL 58 /*!< Falling through a trapdoor... */ +#define SOUND_PAIN 59 /*!< A monster is in pain! */ +#define SOUND_DESTITEM 60 /*!< An item was destroyed by misc. means */ +#define SOUND_MOAN 61 /*!< A monster makes a moan/beg/insult attack */ +#define SOUND_SHOW 62 /*!< A monster makes a "show" attack */ +#define SOUND_UNUSED 63 /*!< (no sound for gaze attacks) */ +#define SOUND_EXPLODE 64 /*!< Something (or somebody) explodes */ +#define SOUND_GLASS 65 /*!< A glass feature was crashed */ /* * Mega-Hack -- maximum known sounds */ -#define SOUND_MAX 66 +#define SOUND_MAX 66 /*!< 効果音定義の最大数 */ -#define MAX_VIRTUE 18 +#define MAX_VIRTUE 18 /*!< 徳定義の最大数 */ -#define V_COMPASSION 1 +#define V_COMPASSION 1 #define V_HONOUR 2 #define V_JUSTICE 3 #define V_SACRIFICE 4 @@ -4685,26 +4639,26 @@ extern int PlayerUID; /* * Quest status */ -#define QUEST_STATUS_UNTAKEN 0 -#define QUEST_STATUS_TAKEN 1 -#define QUEST_STATUS_COMPLETED 2 -#define QUEST_STATUS_REWARDED 3 -#define QUEST_STATUS_FINISHED 4 -#define QUEST_STATUS_FAILED 5 -#define QUEST_STATUS_FAILED_DONE 6 -#define QUEST_STATUS_STAGE_COMPLETED 7 +#define QUEST_STATUS_UNTAKEN 0 /*!< クエストステータス状態:未発生*/ +#define QUEST_STATUS_TAKEN 1 /*!< クエストステータス状態:発生中*/ +#define QUEST_STATUS_COMPLETED 2 /*!< クエストステータス状態:達成*/ +#define QUEST_STATUS_REWARDED 3 /*!< クエストステータス状態:報酬受け取り前*/ +#define QUEST_STATUS_FINISHED 4 /*!< クエストステータス状態:完了*/ +#define QUEST_STATUS_FAILED 5 /*!< クエストステータス状態:失敗*/ +#define QUEST_STATUS_FAILED_DONE 6 /*!< クエストステータス状態:失敗完了*/ +#define QUEST_STATUS_STAGE_COMPLETED 7 /*!< クエストステータス状態:ステージ毎達成*/ /* * Quest type */ -#define QUEST_TYPE_KILL_LEVEL 1 -#define QUEST_TYPE_KILL_ANY_LEVEL 2 -#define QUEST_TYPE_FIND_ARTIFACT 3 -#define QUEST_TYPE_FIND_EXIT 4 -#define QUEST_TYPE_KILL_NUMBER 5 -#define QUEST_TYPE_KILL_ALL 6 -#define QUEST_TYPE_RANDOM 7 -#define QUEST_TYPE_TOWER 8 +#define QUEST_TYPE_KILL_LEVEL 1 /*!< クエスト目的: 特定のユニークモンスターを倒す */ +#define QUEST_TYPE_KILL_ANY_LEVEL 2 /*!< クエスト目的: イベント受託時点でランダムで選ばれた特定のユニークモンスターを倒す */ +#define QUEST_TYPE_FIND_ARTIFACT 3 /*!< クエスト目的: 特定のアーティファクトを発見する */ +#define QUEST_TYPE_FIND_EXIT 4 /*!< クエスト目的: 脱出する */ +#define QUEST_TYPE_KILL_NUMBER 5 /*!< クエスト目的: モンスターを無差別に特定数倒す */ +#define QUEST_TYPE_KILL_ALL 6 /*!< クエスト目的: エリア中のすべてのモンスターを全て倒す */ +#define QUEST_TYPE_RANDOM 7 /*!< クエスト目的: ランダムクエストとして選ばれたユニーク1体を倒す */ +#define QUEST_TYPE_TOWER 8 /*!< クエスト目的: 複数のエリアの全てのモンスターを倒す */ /* * Initialization flags @@ -4719,10 +4673,10 @@ extern int PlayerUID; /* * Quest flags */ -#define QUEST_FLAG_SILENT 0x01 /* no messages fro completion */ -#define QUEST_FLAG_PRESET 0x02 /* quest is outside the main dungeon */ -#define QUEST_FLAG_ONCE 0x04 /* quest is marked finished after leaving */ -#define QUEST_FLAG_TOWER 0x08 /* Tower quest is special */ +#define QUEST_FLAG_SILENT 0x01 /*!< クエストフラグ: クエスト進行に関する情報表示を抑止する / no messages from completion */ +#define QUEST_FLAG_PRESET 0x02 /*!< クエストフラグ: クエストがダンジョン外で発生する / quest is outside the main dungeon */ +#define QUEST_FLAG_ONCE 0x04 /*!< クエストフラグ: クエストがフロアを出た時点で完了する / quest is marked finished after leaving */ +#define QUEST_FLAG_TOWER 0x08 /*!< クエストフラグ: クエスト:塔の形式で進行する / Tower quest is special */ /* * Available graphic modes @@ -4730,6 +4684,7 @@ extern int PlayerUID; #define GRAPHICS_NONE 0 #define GRAPHICS_ORIGINAL 1 #define GRAPHICS_ADAM_BOLT 2 +#define GRAPHICS_HENGBAND 3 /* * Modes for the random name generator @@ -5530,7 +5485,7 @@ extern int PlayerUID; * Max numbers of macro trigger names */ #define MAX_MACRO_MOD 12 -#define MAX_MACRO_TRIG 200 +#define MAX_MACRO_TRIG 200 /*!< 登録を許すマクロ(トリガー)の最大数 */ /* Max size of screen dump buffer */ #define SCREEN_BUF_SIZE 65536 @@ -5666,3 +5621,37 @@ extern int PlayerUID; #else #define _(JAPANESE,ENGLISH) (ENGLISH) #endif + +/* Lite flag macro */ +#define have_lite_flag(ARRAY) \ + (have_flag(ARRAY, TR_LITE_1) || have_flag(ARRAY, TR_LITE_2) || have_flag(ARRAY, TR_LITE_3)) + +#define have_dark_flag(ARRAY) \ + (have_flag(ARRAY, TR_LITE_M1) || have_flag(ARRAY, TR_LITE_M2) || have_flag(ARRAY, TR_LITE_M3)) + +/* Spell Type flag */ +#define MONSTER_TO_PLAYER 0x01 +#define MONSTER_TO_MONSTER 0x02 + +/* summoning number */ +#define S_NUM_6 (easy_band ? 2 : 6) +#define S_NUM_4 (easy_band ? 1 : 4) + +/* monster spell number */ +#define RF4_SPELL_START 32 * 3 +#define RF5_SPELL_START 32 * 4 +#define RF6_SPELL_START 32 * 5 + +#define RF4_SPELL_SIZE 32 +#define RF5_SPELL_SIZE 32 +#define RF6_SPELL_SIZE 32 + +/* Spell Damage Calc Flag*/ +#define DAM_ROLL 1 +#define DAM_MAX 2 +#define DAM_MIN 3 +#define DICE_NUM 4 +#define DICE_SIDE 5 +#define DICE_MULT 6 +#define DICE_DIV 7 +#define BASE_DAM 8