OSDN Git Service

[Refactor] 本の領域が使用可能領域に合致するかの判定
authorHabu <habu1010+github@gmail.com>
Wed, 3 Jul 2024 14:14:36 +0000 (23:14 +0900)
committerHabu <habu1010+github@gmail.com>
Wed, 3 Jul 2024 14:24:45 +0000 (23:24 +0900)
ItemKindTypeからPlayerRealm::get_realm_of_bookを取得した結果がある
場合は、PlayerRealm::Realm::get_book の結果とItemKindTypeを比較する
のではなく、get_realm_of_bookを取得した結果をPlayerRealm::Realm::equals
でテストするようにする。
このほうがより直感的であり、処理速度もわずかに高速。

src/cmd-action/cmd-spell.cpp
src/object-hook/hook-magic.cpp
src/object/object-info.cpp

index c01df5d..a56d015 100644 (file)
@@ -773,9 +773,9 @@ void do_cmd_study(PlayerType *player_ptr)
     const auto tval = o_ptr->bi_key.tval();
     const auto sval = *o_ptr->bi_key.sval();
     const auto study_realm = PlayerRealm::get_realm_of_book(tval);
-    if (tval == pr.realm2().get_book()) {
+    if (pr.realm2().equals(study_realm)) {
         increment = 32;
-    } else if (tval != pr.realm1().get_book()) {
+    } else if (!pr.realm1().equals(study_realm)) {
         if (!input_check(_("本当に魔法の領域を変更しますか?", "Really, change magic realm? "))) {
             return;
         }
index f9b17f5..3f150e9 100644 (file)
@@ -81,5 +81,5 @@ bool item_tester_learn_spell(PlayerType *player_ptr, const ItemEntity *o_ptr)
         return false;
     }
 
-    return (pr.realm1().get_book() == tval) || (pr.realm2().get_book() == tval) || choices.has(realm);
+    return pr.realm1().equals(book_realm) || pr.realm2().equals(book_realm) || choices.has(book_realm);
 }
index 3509c17..767ae5e 100644 (file)
@@ -120,7 +120,7 @@ bool check_book_realm(PlayerType *player_ptr, const BaseitemKey &bi_key)
     }
 
     PlayerRealm pr(player_ptr);
-    return (pr.realm1().get_book() == tval) || (pr.realm2().get_book() == tval);
+    return pr.realm1().equals(book_realm) || pr.realm2().equals(book_realm);
 }
 
 ItemEntity *ref_item(PlayerType *player_ptr, INVENTORY_IDX i_idx)