OSDN Git Service

[Refactor] curse_flags の FlagGroup化
authorHabu <habu1010+github@gmail.com>
Fri, 7 May 2021 14:48:17 +0000 (23:48 +0900)
committerHabu <habu1010+github@gmail.com>
Sat, 8 May 2021 15:49:45 +0000 (00:49 +0900)
commitd298ab557fc8777deae96ca601673c509abb8e77
treec683dc78ba19ebcc33c9e736c958618ab4874e3a
parent66e2ed76dce76b461cbcdbfb78bb3cda6ca989c5
[Refactor] curse_flags の FlagGroup化

TRC_* を enum class TRC にし、object_type の curse_flags と
player_type の cursed を FlagGroup化 する。
trc_special_type の TRC_TELEPORT_SELF と TRC_CHAINSWOD は
trc_curse_type の下位 bit を共有して使うという Hacky な事を
しているので、素直に player_type に cursed_special を新設し
enum class TRCS とした上でそちらで扱うようにする。

なお、FlagGroup化により以下のバグが発見、修正された。

- flag_cost() で curse_flags と TRC_ ではなく TR_ との論理演算を
  行っているため、アイテムの価値の算出が誤った値になる事が
  ある
- get_curse() で狂戦士かの発作の呪いが選ばれることがない
37 files changed:
src/artifact/fixed-art-generator.cpp
src/artifact/random-art-characteristics.cpp
src/cmd-item/cmd-equipment.cpp
src/cmd-item/cmd-smith.cpp
src/hpmp/hp-mp-processor.cpp
src/inventory/inventory-curse.cpp
src/load/item-loader.cpp
src/load/load-v1-5-0.cpp
src/mind/mind-priest.cpp
src/object-enchant/apply-magic-amulet.cpp
src/object-enchant/apply-magic-armor.cpp
src/object-enchant/apply-magic-others.cpp
src/object-enchant/apply-magic-ring.cpp
src/object-enchant/apply-magic-weapon.cpp
src/object-enchant/apply-magic.cpp
src/object-enchant/object-curse.cpp
src/object-enchant/object-curse.h
src/object-enchant/object-ego.cpp
src/object-enchant/trc-types.h
src/object-hook/hook-checker.cpp
src/object/object-value-calc.cpp
src/perception/identification.cpp
src/player-info/self-info.cpp
src/player/digestion-processor.cpp
src/player/player-status-flags.cpp
src/player/player-status.cpp
src/racial/racial-android.cpp
src/realm/realm-hex.cpp
src/save/item-writer.cpp
src/spell-kind/spells-curse-removal.cpp
src/spell/spells-object.cpp
src/system/angband-version.h
src/system/object-type-definition.cpp
src/system/object-type-definition.h
src/system/player-type-definition.h
src/view/display-characteristic.cpp
src/wizard/artifact-analyzer.cpp