X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Ftypes.h;h=550076dabcb2869823b00eeb0b1fb00b2c9ee7d0;hb=32838e337dd387e48039b85154bcb5b4e38ab98c;hp=9bc3fd40dfedcba27ef4e4e2cbf77a4761f7da5f;hpb=aa587d8e7d61dc7ab75b8f794bd8fbe3a94ade3c;p=hengband%2Fhengband.git diff --git a/src/types.h b/src/types.h index 9bc3fd40d..550076dab 100644 --- a/src/types.h +++ b/src/types.h @@ -1,21 +1,19 @@ -/* File: types.h */ - -/* +/*! + * @file types.h + * @brief グローバルな構造体の定義 / global type declarations + * @date 2014/08/10 + * @author + *
  * 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 type declarations */
-
-
-/*
+ * 
+ * @details + *
+ * このファイルはangband.hでのみインクルードすること。
  * This file should ONLY be included by "angband.h"
- */
-
-/*
+ *
  * Note that "char" may or may not be signed, and that "signed char"
  * may or may not work on all machines.  So always use "s16b" or "s32b"
  * for signed values.  Also, note that unsigned values cause math problems
@@ -42,41 +40,61 @@
  * in "header_type", and the "m_idx" and "o_idx" fields in "cave_type".  All
  * of these could be removed, but this would, in general, slow down the game
  * and increase the complexity of the code.
+ * 
*/ +/*! + * @struct feature_state + * @brief 地形状態変化指定構造体 / Feature state structure + */ +typedef struct feature_state feature_state; +struct feature_state +{ + byte action; /*!< 変化条件をFF_*のIDで指定 / Action (FF_*) */ + s16b result; /*!< 変化先ID / Result (f_info ID) */ +}; -/* - * Information about terrain "features" +/*! + * @struct feature_type + * @brief 地形情報の構造体 / Information about terrain "features" */ typedef struct feature_type feature_type; struct feature_type { - u32b name; /* Name (offset) */ - u32b text; /* Text (offset) */ + u32b name; /*!< 地形名参照のためのネームバッファオフセット値 / Name (offset) */ + u32b text; /*!< 地形説明参照のためのネームバッファオフセット値 / Text (offset) */ + s16b tag; /*!< 地形特性タグ参照のためのネームバッファオフセット値 / Tag (offset) */ - byte mimic; /* Feature to mimic */ + s16b mimic; /*!< 未確定時の外形地形ID / Feature to mimic */ - byte extra; /* Extra byte (unused) */ + u32b flags[FF_FLAG_SIZE]; /*!< 地形の基本特性ビット配列 / Flags */ - s16b unused; /* Extra bytes (unused) */ + u16b priority; /*!< 縮小表示で省略する際の表示優先度 / Map priority */ + s16b destroyed; /*!< *破壊*に巻き込まれた時の地形移行先(未実装?) / Default destroyed state */ - byte d_attr; /* Default feature attribute */ - byte d_char; /* Default feature character */ + feature_state state[MAX_FEAT_STATES]; /*!< feature_state テーブル */ + byte subtype; /*!< 副特性値 */ + byte power; /*!< 地形強度 */ - byte x_attr; /* Desired feature attribute */ - byte x_char; /* Desired feature character */ + byte d_attr[F_LIT_MAX]; /*!< デフォルトの地形シンボルカラー / Default feature attribute */ + byte d_char[F_LIT_MAX]; /*!< デフォルトの地形シンボルアルファベット / Default feature character */ + + byte x_attr[F_LIT_MAX]; /*!< 設定変更後の地形シンボルカラー / Desired feature attribute */ + byte x_char[F_LIT_MAX]; /*!< 設定変更後の地形シンボルアルファベット / Desired feature character */ }; -/* - * Information about object "kinds", including player knowledge. - * +/*! + * @struct object_kind + * @brief ベースアイテム情報の構造体 / Information about object "kinds", including player knowledge. + * @details + * ゲーム進行用のセーブファイル上では aware と tried のみ保存対象とすること。と英文ではあるが実際はもっとある様子である。 / * Only "aware" and "tried" are saved in the savefile */ @@ -84,100 +102,101 @@ typedef struct object_kind object_kind; struct object_kind { - u32b name; /* Name (offset) */ - u32b text; /* Text (offset) */ + u32b name; /*!< ベースアイテム名参照のためのネームバッファオフセット値 / Name (offset) */ + u32b text; /*!< 解説テキスト参照のためのネームバッファオフセット値 / Text (offset) */ + u32b flavor_name; /*!< 未確定名参照のためのネームバッファオフセット値 / Flavor name (offset) */ - byte tval; /* Object type */ - byte sval; /* Object sub type */ + byte tval; /*!< ベースアイテム種別の大項目値 Object type */ + byte sval; /*!< ベースアイテム種別の小項目値 Object sub type */ - s16b pval; /* Object extra info */ + s16b pval; /*!< ベースアイテムのpval(能力修正共通値) Object extra info */ - s16b to_h; /* Bonus to hit */ - s16b to_d; /* Bonus to damage */ - s16b to_a; /* Bonus to armor */ + s16b to_h; /*!< ベースアイテムの命中修正値 / Bonus to hit */ + s16b to_d; /*!< ベースアイテムのダメージ修正値 / Bonus to damage */ + s16b to_a; /*!< ベースアイテムのAC修正値 / Bonus to armor */ - s16b ac; /* Base armor */ + s16b ac; /*!< ベースアイテムのAC基本値 / Base armor */ - byte dd, ds; /* Damage dice/sides */ - - s16b weight; /* Weight */ - - s32b cost; /* Object "base cost" */ + byte dd, ds; /*!< ダメージダイスの数と大きさ / Damage dice/sides */ - u32b flags[TR_FLAG_SIZE]; /* Flags */ + s16b weight; /*!< ベースアイテムの重量 / Weight */ - u32b gen_flags; /* flags for generate */ - - byte locale[4]; /* Allocation level(s) */ - byte chance[4]; /* Allocation chance(s) */ + s32b cost; /*!< ベースアイテムの基本価値 / Object "base cost" */ - byte level; /* Level */ - byte extra; /* Something */ + u32b flags[TR_FLAG_SIZE]; /*!< ベースアイテムの基本特性ビット配列 / Flags */ + u32b gen_flags; /*!< ベースアイテムの生成特性ビット配列 / flags for generate */ - byte d_attr; /* Default object attribute */ - byte d_char; /* Default object character */ + byte locale[4]; /*!< ベースアイテムの生成階テーブル / Allocation level(s) */ + byte chance[4]; /*!< ベースアイテムの生成確率テーブル / Allocation chance(s) */ + byte level; /*!< ベースアイテムの基本生成階 / Level */ + byte extra; /*!< その他色々のビットフラグ配列 / Something */ - byte x_attr; /* Desired object attribute */ - byte x_char; /* Desired object character */ + byte d_attr; /*!< デフォルトのアイテムシンボルカラー / Default object attribute */ + byte d_char; /*!< デフォルトのアイテムシンボルアルファベット / Default object character */ + byte x_attr; /*!< 設定変更後のアイテムシンボルカラー / Desired object attribute */ + byte x_char; /*!< 設定変更後のアイテムシンボルアルファベット / Desired object character */ - byte flavor; /* Special object flavor (or zero) */ + s16b flavor; /*!< 調査中(TODO) / Special object flavor (or zero) */ - bool easy_know; /* This object is always known (if aware) */ + bool easy_know; /*!< ベースアイテムが初期からベース名を判断可能かどうか / This object is always known (if aware) */ + bool aware; /*!< ベースアイテムが鑑定済かどうか / The player is "aware" of the item's effects */ - bool aware; /* The player is "aware" of the item's effects */ + bool tried; /*!< ベースアイテムを未鑑定のまま試したことがあるか / The player has "tried" one of the items */ - bool tried; /* The player has "tried" one of the items */ + byte act_idx; /*!< 発動能力のID / Activative ability index */ }; -/* - * Information about "artifacts". - * - * Note that the save-file only writes "cur_num" to the savefile. - * - * Note that "max_num" is always "1" (if that artifact "exists") - */ - typedef struct artifact_type artifact_type; +/*! + * @struct artifact_type + * @brief 固定アーティファクト情報の構造体 / Artifact structure. + * @details + * @note + * the save-file only writes "cur_num" to the savefile. + * "max_num" is always "1" (if that artifact "exists") + */ struct artifact_type { - u32b name; /* Name (offset) */ - u32b text; /* Text (offset) */ + u32b name; /*!< アーティファクト名(headerオフセット参照) / Name (offset) */ + u32b text; /*!< アーティファクト解説(headerオフセット参照) / Text (offset) */ - byte tval; /* Artifact type */ - byte sval; /* Artifact sub type */ + byte tval; /*!< ベースアイテム大項目ID / Artifact type */ + byte sval; /*!< ベースアイテム小項目ID / Artifact sub type */ - s16b pval; /* Artifact extra info */ + s16b pval; /*!< pval修正値 / Artifact extra info */ - s16b to_h; /* Bonus to hit */ - s16b to_d; /* Bonus to damage */ - s16b to_a; /* Bonus to armor */ + s16b to_h; /*!< 命中ボーナス値 / Bonus to hit */ + s16b to_d; /*!< ダメージボーナス値 / Bonus to damage */ + s16b to_a; /*!< ACボーナス値 / Bonus to armor */ - s16b ac; /* Base armor */ + s16b ac; /*!< 上書きベースAC値 / Base armor */ - byte dd, ds; /* Damage when hits */ + byte dd, ds; /*!< ダイス値 / Damage when hits */ - s16b weight; /* Weight */ + s16b weight; /*!< 重量 / Weight */ - s32b cost; /* Artifact "cost" */ + s32b cost; /*!< 基本価格 / Artifact "cost" */ - u32b flags[TR_FLAG_SIZE]; /* Artifact Flags */ + u32b flags[TR_FLAG_SIZE]; /*! アイテムフラグ / Artifact Flags */ - u32b gen_flags; /* flags for generate */ + u32b gen_flags; /*! アイテム生成フラグ / flags for generate */ - byte level; /* Artifact level */ - byte rarity; /* Artifact rarity */ + byte level; /*! 基本生成階 / Artifact level */ + byte rarity; /*! レアリティ / Artifact rarity */ - byte cur_num; /* Number created (0 or 1) */ - byte max_num; /* Unused (should be "1") */ + byte cur_num; /*! 現在の生成数 / Number created (0 or 1) */ + byte max_num; /*! (未使用)最大生成数 / Unused (should be "1") */ - s16b floor_id; /* Leaved on this location last time */ + s16b floor_id; /*! アイテムを落としたフロアのID / Leaved on this location last time */ + + byte act_idx; /*! 発動能力ID / Activative ability index */ }; @@ -209,6 +228,8 @@ struct ego_item_type u32b flags[TR_FLAG_SIZE]; /* Ego-Item Flags */ u32b gen_flags; /* flags for generate */ + + byte act_idx; /* Activative ability index */ }; @@ -268,39 +289,51 @@ typedef struct monster_race monster_race; struct monster_race { - u32b name; /* Name (offset) */ + u32b name; /*!< 名前データのオフセット(日本語) / Name offset(Japanese) */ #ifdef JP - u32b E_name; /* ±Ñ¸ì̾ (offset) */ + u32b E_name; /*!< 名前データのオフセット(英語) / Name offset(English) */ #endif - u32b text; /* Text (offset) */ + u32b text; /*!< 思い出テキストのオフセット / Lore text offset */ - byte hdice; /* Creatures hit dice count */ - byte hside; /* Creatures hit dice sides */ + byte hdice; /*!< HPのダイス数 / Creatures hit dice count */ + byte hside; /*!< HPのダイス面数 / Creatures hit dice sides */ - s16b ac; /* Armour Class */ + s16b ac; /*!< アーマークラス / Armour Class */ - s16b sleep; /* Inactive counter (base) */ - byte aaf; /* Area affect radius (1-100) */ - byte speed; /* Speed (normally 110) */ + s16b sleep; /*!< 睡眠値 / Inactive counter (base) */ + byte aaf; /*!< 感知範囲(1-100スクエア) / Area affect radius (1-100) */ + byte speed; /*!< 加速(110で+0) / Speed (normally 110) */ - s32b mexp; /* Exp value for kill */ + s32b mexp; /*!< 殺害時基本経験値 / Exp value for kill */ - s16b extra; /* Unused (for now) */ + s16b extra; /*!< 未使用 / Unused (for now) */ - byte freq_spell; /* Spell frequency */ + byte freq_spell; /*!< 魔法&特殊能力仕様頻度(1/n) / Spell frequency */ u32b flags1; /* Flags 1 (general) */ u32b flags2; /* Flags 2 (abilities) */ u32b flags3; /* Flags 3 (race/resist) */ u32b flags4; /* Flags 4 (inate/breath) */ - u32b flags5; /* Flags 5 (normal spells) */ - u32b flags6; /* Flags 6 (special spells) */ u32b flags7; /* Flags 7 (movement related abilities) */ u32b flags8; /* Flags 8 (wilderness info) */ u32b flags9; /* Flags 9 (drops info) */ u32b flagsr; /* Flags R (resistances info) */ + u32b a_ability_flags1; /* Activate Ability Flags 5 (normal spells) */ + u32b a_ability_flags2; /* Activate Ability Flags 6 (special spells) */ + u32b a_ability_flags3; /* Activate Ability Flags 7 (implementing) */ + u32b a_ability_flags4; /* Activate Ability Flags 8 (implementing) */ + monster_blow blow[4]; /* Up to four blows per round */ + u16b reinforce_id[6]; + u16b reinforce_dd[6]; + u16b reinforce_ds[6]; + + u16b artifact_id[4]; /* 特定アーティファクトドロップID */ + u16b artifact_rarity[4]; /* 特定アーティファクトレア度 */ + u16b artifact_percent[4]; /* 特定アーティファクトドロップ率 */ + + u32b arena_ratio; /* アリーナの評価修正値(%基準 / 0=100%) / Arena */ s16b next_r_idx; u32b next_exp; @@ -321,13 +354,14 @@ struct monster_race byte cur_num; /* Monster population on current level */ - s16b floor_id; /* Location of unique monster */ + s16b floor_id; /* Location of unique monster */ s16b r_sights; /* Count sightings of this monster */ s16b r_deaths; /* Count deaths from this monster */ - s16b r_pkills; /* Count monsters killed in this life */ + s16b r_pkills; /* Count visible monsters killed in this life */ + s16b r_akills; /* Count all monsters killed in this life */ s16b r_tkills; /* Count monsters killed in all lives */ byte r_wake; /* Number of times woken up (?) */ @@ -349,7 +383,7 @@ struct monster_race u32b r_flags4; /* Observed racial flags */ u32b r_flags5; /* Observed racial flags */ u32b r_flags6; /* Observed racial flags */ - /* u32b r_flags7; */ /* Observed racial flags */ + /* u32b r_flags7; */ /* Observed racial flags */ u32b r_flagsr; /* Observed racial resistance flags */ }; @@ -422,7 +456,7 @@ struct cave_type { u16b info; /* Hack -- cave flags */ - byte feat; /* Hack -- feature type */ + s16b feat; /* Hack -- feature type */ s16b o_idx; /* Object in this grid */ @@ -430,7 +464,7 @@ struct cave_type s16b special; /* Special cave info */ - byte mimic; /* Feature to mimic */ + s16b mimic; /* Feature to mimic */ byte cost; /* Hack -- cost of flowing */ byte dist; /* Hack -- distance from player */ @@ -504,10 +538,10 @@ struct object_type byte name2; /* Ego-Item type, if any */ byte xtra1; /* Extra info type (now unused) */ - byte xtra2; /* Extra info index */ - byte xtra3; /* Extra info */ - s16b xtra4; /* Extra info */ - s16b xtra5; /* Extra info */ + byte xtra2; /* Extra info activation index */ + byte xtra3; /* Extra info for weaponsmith */ + s16b xtra4; /* Extra info fuel or captured monster's current HP */ + s16b xtra5; /* Extra info captured monster's max HP */ s16b to_h; /* Plusses to hit */ s16b to_d; /* Plusses to damage */ @@ -535,27 +569,6 @@ struct object_type s16b next_o_idx; /* Next object in stack (if any) */ s16b held_m_idx; /* Monster holding us (if any) */ - -#ifdef SCRIPT_OBJ_KIND - char *name; - - byte d_attr; /* Default object attribute */ - byte d_char; /* Default object character */ - - - byte x_attr; /* Desired object attribute */ - byte x_char; /* Desired object character */ - - - byte flavor; /* Special object flavor (or zero) */ - - bool easy_know; /* This object is always known (if aware) */ - - - bool aware; /* The player is "aware" of the item's effects */ - - bool tried; /* The player has "tried" one of the items */ -#endif /* SCRIPT_OBJ_KIND */ }; @@ -583,19 +596,13 @@ struct monster_type s16b hp; /* Current Hit points */ s16b maxhp; /* Max Hit points */ s16b max_maxhp; /* Max Max Hit points */ + u32b dealt_damage; /* Sum of damages dealt by player */ - s16b csleep; /* Inactive counter */ + s16b mtimed[MAX_MTIMED]; /* Timed status counter */ byte mspeed; /* Monster "speed" */ s16b energy_need; /* Monster "energy" */ - byte fast; /* Monster is stunned */ - byte slow; /* Monster is stunned */ - byte stunned; /* Monster is stunned */ - byte confused; /* Monster is confused */ - byte monfear; /* Monster is afraid */ - byte invulner; /* Monster is temporarily invulnerable */ - byte cdis; /* Current dis from player */ byte mflag; /* Extra monster flags */ @@ -678,31 +685,34 @@ struct option_type }; -/* - * Structure for the "quests" - */ typedef struct quest_type quest_type; +/*! + * @struct quest_type + * @brief クエスト情報の構造体 / Structure for the "quests". + */ + struct quest_type { - s16b status; /* Is the quest taken, completed, finished? */ + s16b status; /*!< クエストの進行ステータス / Is the quest taken, completed, finished? */ - s16b type; /* The quest type */ + s16b type; /*!< クエストの種別 / The quest type */ - char name[60]; /* Quest name */ - s16b level; /* Dungeon level */ - s16b r_idx; /* Monster race */ + char name[60]; /*!< クエスト名 / Quest name */ + s16b level; /*!< 処理階層 / Dungeon level */ + s16b r_idx; /*!< クエスト対象のモンスターID / Monster race */ - s16b cur_num; /* Number killed */ - s16b max_num; /* Number required */ + s16b cur_num; /*!< 撃破したモンスターの数 / Number killed */ + s16b max_num; /*!< 求められるモンスターの撃破数 / Number required */ - s16b k_idx; /* object index */ - s16b num_mon; /* number of monsters on level */ + s16b k_idx; /*!< クエスト対象のアイテムID / object index */ + s16b num_mon; /*!< QUEST_TYPE_KILL_NUMBER時の目標撃破数 number of monsters on level */ - byte flags; /* quest flags */ - byte dungeon; /* quest dungeon */ + byte flags; /*!< クエストに関するフラグビット / quest flags */ + byte dungeon; /*!< クエスト対象のダンジョンID / quest dungeon */ - byte complev; /* player level (complete) */ + byte complev; /*!< クリア時プレイヤーレベル / player level (complete) */ + u32b comptime; /*!< クリア時ゲーム時間 / quest clear time*/ }; @@ -715,7 +725,7 @@ struct owner_type { cptr owner_name; /* Name */ - s16b max_cost; /* Purse limit */ + s32b max_cost; /* Purse limit */ byte max_inflate; /* Inflation (max) */ byte min_inflate; /* Inflation (min) */ @@ -812,8 +822,8 @@ struct player_sex cptr title; /* Type of sex */ cptr winner; /* Name of winner */ #ifdef JP - cptr E_title; /* ±Ñ¸ìÀ­ÊÌ */ - cptr E_winner; /* ±Ñ¸ìÀ­ÊÌ */ + cptr E_title; /* 英語性別 */ + cptr E_winner; /* 英語性別 */ #endif }; @@ -829,7 +839,7 @@ struct player_race cptr title; /* Type of race */ #ifdef JP - cptr E_title; /* ±Ñ¸ì¼ï² */ + cptr E_title; /* 英語種族 */ #endif s16b r_adj[6]; /* Racial stat bonuses */ @@ -876,7 +886,7 @@ struct player_class cptr title; /* Type of class */ #ifdef JP - cptr E_title; /* ±Ñ¸ì¿¦¶È */ + cptr E_title; /* 英語職業 */ #endif s16b c_adj[6]; /* Class stat modifier */ @@ -911,7 +921,7 @@ struct player_seikaku cptr title; /* Type of seikaku */ #ifdef JP - cptr E_title; /* ±Ñ¸ìÀ­³Ê */ + cptr E_title; /* 英語性格 */ #endif s16b a_adj[6]; /* seikaku stat bonuses */ @@ -927,7 +937,7 @@ struct player_seikaku s16b a_mhp; /* Race hit-dice modifier */ - byte no; /* ¤Î */ + byte no; /* の */ byte sex; /* seibetu seigen */ }; @@ -979,7 +989,7 @@ struct player_type s32b max_max_exp; /* Max max experience (only to calculate score) */ s32b max_exp; /* Max experience */ s32b exp; /* Cur experience */ - u16b exp_frac; /* Cur exp frac (times 2^16) */ + u32b exp_frac; /* Cur exp frac (times 2^16) */ s16b lev; /* Level */ @@ -989,19 +999,17 @@ struct player_type s16b inside_quest; /* Inside quest level */ bool inside_battle; /* Is character inside tougijou? */ - s16b rewards[MAX_BACT]; /* Status of rewards in town */ - s32b wilderness_x; /* Coordinates in the wilderness */ s32b wilderness_y; bool wild_mode; - s16b mhp; /* Max hit pts */ - s16b chp; /* Cur hit pts */ - u16b chp_frac; /* Cur hit frac (times 2^16) */ + s32b mhp; /* Max hit pts */ + s32b chp; /* Cur hit pts */ + u32b chp_frac; /* Cur hit frac (times 2^16) */ - s16b msp; /* Max mana pts */ - s16b csp; /* Cur mana pts */ - u16b csp_frac; /* Cur mana frac (times 2^16) */ + s32b msp; /* Max mana pts */ + s32b csp; /* Cur mana pts */ + u32b csp_frac; /* Cur mana frac (times 2^16) */ s16b max_plv; /* Max Player Level */ @@ -1052,7 +1060,7 @@ struct player_type s16b tim_regen; s16b kabenuke; s16b tim_stealth; - s16b tim_ffall; + s16b tim_levitation; s16b tim_sh_touki; s16b lightspeed; s16b tsubureru; @@ -1083,6 +1091,7 @@ struct player_type byte recall_dungeon; /* Dungeon set to be recalled */ s16b energy_need; /* Energy needed for next move */ + s16b enchant_energy_need; /* Energy needed for next upkeep effect */ s16b food; /* Current nutrition */ @@ -1100,7 +1109,7 @@ struct player_type s16b spell_exp[64]; /* Proficiency of spells */ s16b weapon_exp[5][64]; /* Proficiency of weapons */ - s16b skill_exp[10]; /* Proficiency of misc. skill */ + s16b skill_exp[GINOU_MAX]; /* Proficiency of misc. skill */ s32b magic_num1[108]; /* Array for non-spellbook type magic */ byte magic_num2[108]; /* Flags for non-spellbook type magics */ @@ -1109,8 +1118,11 @@ struct player_type s16b mane_dam[MAX_MANE]; s16b mane_num; + s16b concent; /* Sniper's concentration level */ + s16b player_hp[PY_MAX_LEVEL]; char died_from[80]; /* What killed the player */ + cptr last_message; /* Last message on death or retirement */ char history[4][60]; /* Textual "history" for the Player */ u16b total_winner; /* Total winner */ @@ -1140,6 +1152,12 @@ struct player_type bool dtrap; /* Whether you are on trap-safe grids */ s16b floor_id; /* Current floor location */ + bool autopick_autoregister; /* auto register is in-use or not */ + + byte feeling; /* Most recent dungeon feeling */ + s32b feeling_turn; /* The turn of the last dungeon feeling */ + + /*** Temporary fields ***/ bool playing; /* True if player is playing */ @@ -1250,12 +1268,12 @@ struct player_type u32b cursed; /* Player is cursed */ bool can_swim; /* No damage falling */ - bool ffall; /* No damage falling */ + bool levitation; /* No damage falling */ bool lite; /* Permanent light */ bool free_act; /* Never paralyzed */ bool see_inv; /* Can see invisible */ bool regenerate; /* Regenerate hit pts */ - bool hold_life; /* Resist life draining */ + bool hold_exp; /* Resist exp draining */ bool telepathy; /* Telepathy */ bool esp_animal; @@ -1331,6 +1349,12 @@ struct player_type byte tval_ammo; /* Correct ammo tval */ byte pspeed; /* Current speed */ + + s16b energy_use; /* Energy use this turn */ + + int y; /* Player location in dungeon */ + int x; /* Player location in dungeon */ + char name[32]; /* Current player's character name */ }; @@ -1365,7 +1389,6 @@ struct birther char history[4][60]; - byte quests; bool quick_ok; }; @@ -1453,14 +1476,14 @@ struct building_type typedef struct border_type border_type; struct border_type { - byte north[MAX_WID]; - byte south[MAX_WID]; - byte east[MAX_HGT]; - byte west[MAX_HGT]; - byte north_west; - byte north_east; - byte south_west; - byte south_east; + s16b north[MAX_WID]; + s16b south[MAX_WID]; + s16b east[MAX_HGT]; + s16b west[MAX_HGT]; + s16b north_west; + s16b north_east; + s16b south_west; + s16b south_east; }; @@ -1511,7 +1534,7 @@ typedef struct tag_type tag_type; struct tag_type { int tag; - void *pointer; + int index; }; typedef bool (*monster_hook_type)(int r_idx); @@ -1565,6 +1588,15 @@ struct high_score char how[40]; /* Method of death (string) */ }; + +typedef struct +{ + s16b feat; /* Feature tile */ + byte percent; /* Chance of type */ +} +feat_prob; + + /* A structure for the != dungeon types */ typedef struct dungeon_info_type dungeon_info_type; struct dungeon_info_type { @@ -1574,25 +1606,16 @@ struct dungeon_info_type { byte dy; byte dx; - byte floor1; /* Floor tile 1 */ - byte floor_percent1; /* Chance of type 1 */ - byte floor2; /* Floor tile 2 */ - byte floor_percent2; /* Chance of type 2 */ - byte floor3; /* Floor tile 3 */ - byte floor_percent3; /* Chance of type 3 */ - byte outer_wall; /* Outer wall tile */ - byte inner_wall; /* Inner wall tile */ - s16b stream1; /* stream tile */ - s16b stream2; /* stream tile */ - byte fill_type1; /* Cave tile 1 */ - byte fill_percent1; /* Chance of type 1 */ - byte fill_type2; /* Cave tile 2 */ - byte fill_percent2; /* Chance of type 2 */ - byte fill_type3; /* Cave tile 3 */ - byte fill_percent3; /* Chance of type 3 */ - s16b mindepth; /* Minimal depth */ - s16b maxdepth; /* Maximal depth */ - byte min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */ + feat_prob floor[DUNGEON_FEAT_PROB_NUM]; /* Floor probability */ + feat_prob fill[DUNGEON_FEAT_PROB_NUM]; /* Cave wall probability */ + s16b outer_wall; /* Outer wall tile */ + s16b inner_wall; /* Inner wall tile */ + s16b stream1; /* stream tile */ + s16b stream2; /* stream tile */ + + s16b mindepth; /* Minimal depth */ + s16b maxdepth; /* Maximal depth */ + byte min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */ s16b pit; s16b nest; byte mode; /* Mode of combinaison of the monster flags */ @@ -1606,13 +1629,16 @@ struct dungeon_info_type { u32b mflags2; u32b mflags3; u32b mflags4; - u32b mflags5; - u32b mflags6; u32b mflags7; u32b mflags8; u32b mflags9; u32b mflagsr; + u32b m_a_ability_flags1; + u32b m_a_ability_flags2; + u32b m_a_ability_flags3; + u32b m_a_ability_flags4; + char r_char[5]; /* Monster race allowed */ int final_object; /* The object you'll find at the bottom */ int final_artifact; /* The artifact you'll find at the bottom */ @@ -1625,16 +1651,17 @@ struct dungeon_info_type { }; -/* - * A structure type for entry of auto-picker/destroyer +/*! + * @struct autopick_type + * @brief 自動拾い/破壊設定データの構造体 / A structure type for entry of auto-picker/destroyer */ typedef struct { - cptr name; /* Items which have 'name' as part of its name match */ - cptr insc; /* Items will be auto-inscribed as 'insc' */ - u32b flag[2]; /* Misc. keyword to be matched */ - byte action; /* Auto-pickup or Destroy or Leave items */ - byte dice; /* Weapons which have more than 'dice' dice match */ - byte bonus; /* Items which have more than 'bonus' magical bonus match */ + cptr name; /*!< 自動拾い/破壊定義の名称一致基準 / Items which have 'name' as part of its name match */ + cptr insc; /*!< 対象となったアイテムに自動で刻む内容 / Items will be auto-inscribed as 'insc' */ + u32b flag[2]; /*!< キーワードに関する汎用的な条件フラグ / Misc. keyword to be matched */ + byte action; /*!< 対象のアイテムを拾う/破壊/放置するかの指定フラグ / Auto-pickup or Destroy or Leave items */ + byte dice; /*!< 武器のダイス値基準値 / Weapons which have more than 'dice' dice match */ + byte bonus; /*!< アイテムのボーナス基準値 / Items which have more than 'bonus' magical bonus match */ } autopick_type; @@ -1659,19 +1686,67 @@ typedef struct typedef struct { u16b info; - byte feat; - byte mimic; + s16b feat; + s16b mimic; s16b special; u16b occurrence; } cave_template_type; -/* - * A structure type for arena entry +/*! + * @struct arena_type + * @brief 闘技場のモンスターエントリー構造体 / A structure type for arena entry */ typedef struct { - s16b r_idx; /* Monster (0 means victory prizing) */ - byte tval; /* tval of prize (0 means no prize) */ - byte sval; /* sval of prize */ + s16b r_idx; /*!< 闘技場のモンスター種族ID(0ならば表彰式) / Monster (0 means victory prizing) */ + byte tval; /*!< モンスター打倒後に得られるアイテムの大カテゴリID / tval of prize (0 means no prize) */ + byte sval; /*!< モンスター打倒後に得られるアイテムの小カテゴリID / sval of prize */ } arena_type; + + +/* + * A structure type for doors + */ +typedef struct +{ + s16b open; + s16b broken; + s16b closed; + s16b locked[MAX_LJ_DOORS]; + s16b num_locked; + s16b jammed[MAX_LJ_DOORS]; + s16b num_jammed; +} door_type; + + +#ifdef TRAVEL +/* + * A structure type for travel command + */ +typedef struct { + int run; /* Remaining grid number */ + int cost[MAX_HGT][MAX_WID]; + int x; /* Target X */ + int y; /* Target Y */ + int dir; /* Running direction */ +} travel_type; +#endif + +typedef struct { + cptr flag; + byte index; + byte level; + s32b value; + struct { + int constant; + int dice; + } timeout; + cptr desc; +} activation_type; + +typedef struct { + int flag; + int type; + cptr name; +} dragonbreath_type;