From d0848d2bfeb15478753483036cbf952331e9e80f Mon Sep 17 00:00:00 2001 From: Habu Date: Mon, 9 Jan 2023 12:42:37 +0900 Subject: [PATCH] =?utf8?q?[Fix]=20=E3=82=B9=E3=83=9D=E3=82=A4=E3=83=A9?= =?utf8?q?=E3=83=BC=E3=81=AE=E5=87=BA=E5=8A=9B=E3=81=AB=E3=83=89=E3=83=AD?= =?utf8?q?=E3=83=83=E3=83=97=E3=82=A2=E3=82=A4=E3=83=86=E3=83=A0=E3=81=AE?= =?utf8?q?=E8=B3=AA=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA?= =?utf8?q?=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit モンスターの完全な情報が分かるとき(cheat_knowがONのとき・スポイラー出力時など)に、 ドロップ情報のフラグを思い出の状態を考慮しない状態に更新していないのが原因。 ドロップ情報のフラグを正しく更新するようにする。 また、この処理を行っている set_drop_flags() は名称が関数の処理の実態に全く合ってい ないので、set_flags_for_full_knowledge() に変更する。 --- src/lore/lore-calculator.cpp | 3 ++- src/lore/lore-calculator.h | 2 +- src/lore/monster-lore.cpp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lore/lore-calculator.cpp b/src/lore/lore-calculator.cpp index 93511331e..4ae205023 100644 --- a/src/lore/lore-calculator.cpp +++ b/src/lore/lore-calculator.cpp @@ -141,7 +141,7 @@ void set_damage(PlayerType *player_ptr, lore_type *lore_ptr, MonsterAbilityType strnfmt(tmp, tmpsz, msg, std::string("(").append(dice_to_string(base_damage, dice_num, dice_side, dice_mult, dice_div)).append(")").data()); } -void set_drop_flags(lore_type *lore_ptr) +void set_flags_for_full_knowledge(lore_type *lore_ptr) { if (!lore_ptr->know_everything) { return; @@ -165,4 +165,5 @@ void set_drop_flags(lore_type *lore_ptr) lore_ptr->behavior_flags = lore_ptr->r_ptr->behavior_flags; lore_ptr->resistance_flags = lore_ptr->r_ptr->resistance_flags; lore_ptr->feature_flags = lore_ptr->r_ptr->feature_flags; + lore_ptr->drop_flags = lore_ptr->r_ptr->drop_flags; } diff --git a/src/lore/lore-calculator.h b/src/lore/lore-calculator.h index dc2040f42..9eb30824a 100644 --- a/src/lore/lore-calculator.h +++ b/src/lore/lore-calculator.h @@ -12,4 +12,4 @@ std::string dice_to_string(int base_damage, int dice_num, int dice_side, int dic bool know_armour(MonsterRaceId r_idx, const bool know_everything); bool know_damage(MonsterRaceId r_idx, int i); void set_damage(PlayerType *player_ptr, lore_type *lore_ptr, MonsterAbilityType ms_type, concptr msg); -void set_drop_flags(lore_type *lore_ptr); +void set_flags_for_full_knowledge(lore_type *lore_ptr); diff --git a/src/lore/monster-lore.cpp b/src/lore/monster-lore.cpp index 3dfd9f68d..a704139d3 100644 --- a/src/lore/monster-lore.cpp +++ b/src/lore/monster-lore.cpp @@ -164,7 +164,7 @@ void process_monster_lore(PlayerType *player_ptr, MonsterRaceId r_idx, monster_l lore_ptr->know_everything = true; } - set_drop_flags(lore_ptr); + set_flags_for_full_knowledge(lore_ptr); set_msex_flags(lore_ptr); set_flags1(lore_ptr); set_race_flags(lore_ptr); -- 2.11.0