From ee3394f4e19ed595e1dfbc1f06ec1b35faae1a70 Mon Sep 17 00:00:00 2001 From: Hourier Date: Fri, 17 Jul 2020 23:34:23 +0900 Subject: [PATCH] [Refactor] #40233 Separated check_store_magic() from store_will_buy() --- src/store/service-checker.c | 61 +++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/store/service-checker.c b/src/store/service-checker.c index 447a7b3d8..4cc75f796 100644 --- a/src/store/service-checker.c +++ b/src/store/service-checker.c @@ -126,6 +126,35 @@ static bool check_store_alchemist(object_type *o_ptr) } } +static bool check_store_magic(object_type *o_ptr) +{ + switch (o_ptr->tval) { + case TV_SORCERY_BOOK: + case TV_NATURE_BOOK: + case TV_CHAOS_BOOK: + case TV_DEATH_BOOK: + case TV_TRUMP_BOOK: + case TV_ARCANE_BOOK: + case TV_CRAFT_BOOK: + case TV_DEMON_BOOK: + case TV_MUSIC_BOOK: + case TV_HEX_BOOK: + case TV_AMULET: + case TV_RING: + case TV_STAFF: + case TV_WAND: + case TV_ROD: + case TV_SCROLL: + case TV_POTION: + case TV_FIGURINE: + return TRUE; + case TV_HAFTED: + return o_ptr->sval == SV_WIZSTAFF; + default: + return FALSE; + } +} + /*! * @brief オブジェクトが所定の店舗で引き取れるかどうかを返す / * Determine if the current store will purchase the given item @@ -167,39 +196,11 @@ bool store_will_buy(player_type *player_ptr, object_type *o_ptr) return FALSE; break; - case STORE_MAGIC: { - switch (o_ptr->tval) { - case TV_SORCERY_BOOK: - case TV_NATURE_BOOK: - case TV_CHAOS_BOOK: - case TV_DEATH_BOOK: - case TV_TRUMP_BOOK: - case TV_ARCANE_BOOK: - case TV_CRAFT_BOOK: - case TV_DEMON_BOOK: - case TV_MUSIC_BOOK: - case TV_HEX_BOOK: - case TV_AMULET: - case TV_RING: - case TV_STAFF: - case TV_WAND: - case TV_ROD: - case TV_SCROLL: - case TV_POTION: - case TV_FIGURINE: - break; - case TV_HAFTED: { - if (o_ptr->sval == SV_WIZSTAFF) - break; - else - return FALSE; - } - default: + case STORE_MAGIC: + if (!check_store_magic(o_ptr)) return FALSE; - } break; - } case STORE_BOOK: { switch (o_ptr->tval) { case TV_SORCERY_BOOK: -- 2.11.0