OSDN Git Service

[Refactor] #38844 level_up を level_up_message に改名して, player_type 構造体へ移動.
[hengband/hengband.git] / src / objectkind.h
1 #pragma once
2 #include "util.h"
3
4 /*!
5  * @struct object_kind
6  * @brief ベースアイテム情報の構造体 / Information about object "kinds", including player knowledge.
7  * @details
8  * ゲーム進行用のセーブファイル上では aware と tried のみ保存対象とすること。と英文ではあるが実際はもっとある様子である。 /
9  * Only "aware" and "tried" are saved in the savefile
10  */
11
12 typedef struct object_kind object_kind;
13
14 struct object_kind
15 {
16         STR_OFFSET name;                        /*!< ベースアイテム名参照のためのネームバッファオフセット値 / Name (offset) */
17         STR_OFFSET text;                        /*!< 解説テキスト参照のためのネームバッファオフセット値 / Text (offset) */
18         STR_OFFSET flavor_name; /*!< 未確定名参照のためのネームバッファオフセット値 / Flavor name (offset) */
19
20         OBJECT_TYPE_VALUE tval;                 /*!< ベースアイテム種別の大項目値 Object type */
21         OBJECT_SUBTYPE_VALUE sval;                      /*!< ベースアイテム種別の小項目値 Object sub type */
22
23         PARAMETER_VALUE pval;   /*!< ベースアイテムのpval(能力修正共通値) Object extra info */
24
25         HIT_PROB to_h;                  /*!< ベースアイテムの命中修正値 / Bonus to hit */
26         HIT_POINT to_d;                 /*!< ベースアイテムのダメージ修正値 / Bonus to damage */
27         ARMOUR_CLASS to_a;                      /*!< ベースアイテムのAC修正値 / Bonus to armor */
28
29         ARMOUR_CLASS ac;                        /*!< ベースアイテムのAC基本値 /  Base armor */
30
31         DICE_NUMBER dd;
32         DICE_SID ds;            /*!< ダメージダイスの数と大きさ / Damage dice/sides */
33
34         WEIGHT weight;          /*!< ベースアイテムの重量 / Weight */
35
36         PRICE cost;                     /*!< ベースアイテムの基本価値 / Object "base cost" */
37
38         BIT_FLAGS flags[TR_FLAG_SIZE];  /*!< ベースアイテムの基本特性ビット配列 / Flags */
39
40         BIT_FLAGS gen_flags;            /*!< ベースアイテムの生成特性ビット配列 / flags for generate */
41
42         DEPTH locale[4];                /*!< ベースアイテムの生成階テーブル / Allocation level(s) */
43         PROB chance[4];         /*!< ベースアイテムの生成確率テーブル / Allocation chance(s) */
44
45         DEPTH level;                    /*!< ベースアイテムの基本生成階 / Level */
46         BIT_FLAGS8 extra;                       /*!< その他色々のビットフラグ配列 / Something */
47
48         TERM_COLOR d_attr;              /*!< デフォルトのアイテムシンボルカラー / Default object attribute */
49         SYMBOL_CODE d_char;             /*!< デフォルトのアイテムシンボルアルファベット / Default object character */
50
51         TERM_COLOR x_attr;              /*!< 設定変更後のアイテムシンボルカラー /  Desired object attribute */
52         SYMBOL_CODE x_char;             /*!< 設定変更後のアイテムシンボルアルファベット /  Desired object character */
53
54         IDX flavor;             /*!< 調査中(TODO) / Special object flavor (or zero) */
55
56         bool easy_know;         /*!< ベースアイテムが初期からベース名を判断可能かどうか / This object is always known (if aware) */
57
58         bool aware;                     /*!< ベースアイテムが鑑定済かどうか /  The player is "aware" of the item's effects */
59
60         bool tried;                     /*!< ベースアイテムを未鑑定のまま試したことがあるか /  The player has "tried" one of the items */
61
62         ACTIVATION_IDX act_idx;         /*!< 発動能力のID /  Activative ability index */
63 };
64
65 extern object_kind *k_info;
66 extern char *k_name;
67 extern char *k_text;
68 extern KIND_OBJECT_IDX max_k_idx;
69
70 extern s16b alloc_kind_size;
71 extern alloc_entry *alloc_kind_table;