プレイヤーのフラグについて耐性処理と表示処理を一致させる
flag_cause構造体を定義
enum flag_cause { FLAG_CAUSE_INVEN_RARM = 0, /*!< アイテムスロット…右手 */ FLAG_CAUSE_INVEN_LARM = 1, /*!< アイテムスロット…左手 */ FLAG_CAUSE_INVEN_BOW = 2, /*!< アイテムスロット…射撃 */ FLAG_CAUSE_INVEN_RIGHT = 3, /*!< アイテムスロット…右手指 */ FLAG_CAUSE_INVEN_LEFT = 4, /*!< アイテムスロット…左手指 */ FLAG_CAUSE_INVEN_NECK = 5, /*!< アイテムスロット…首 */ FLAG_CAUSE_INVEN_LITE = 6, /*!< アイテムスロット…光源 */ FLAG_CAUSE_INVEN_BODY = 7, /*!< アイテムスロット…体 */ FLAG_CAUSE_INVEN_OUTER = 8, /*!< アイテムスロット…体の上 */ FLAG_CAUSE_INVEN_HEAD = 9, /*!< アイテムスロット…頭部 */ FLAG_CAUSE_INVEN_HANDS = 10, /*!< アイテムスロット…腕部 */ FLAG_CAUSE_INVEN_FEET = 11, /*!< アイテムスロット…脚部 */ FLAG_CAUSE_RACE = 12, /*!< 種族上の体得 */ FLAG_CAUSE_CLASS = 13, /*!< 職業上の体得 */ FLAG_CAUSE_PERSONALITY = 14, /*!< 性格上の体得 */ FLAG_CAUSE_MAGIC_TIME_EFFECT = 15 /*!< 魔法による時限効果 */ };
player-status-flags.c/h 中でダンプに出力しているものの返り値をBIT_FLAGS(32bit)にして、フラグを得られた起因を確保し、そのままダンプに応用できるようにする予定。後々の拡張の基礎にもできると判断。
依然3.0.0正式版までの対応をキープ。
3.0.0Alpha系のバグで弊害をいくつも起こしている。やはり、早期に対応しておくべきだったか。 #41185 にてHabus氏にplayer-status-flags.cの関数命名についても突っ込み入れられているので検討しておく。
命名規則はさておき、(言語ではなく設計として)C++への変換を進めていてかなり低減されてきた
このチケットで対応する意味はもはやないとみなしてクローズ
現状ダンプで表示される各耐性と特性と実際の分岐処理が別個になっているため、今後の追加などに色々障ることが多いと判断、面倒だがどうにか今回の内に統合する。