OSDN Git Service

[Refactor] #40534 Separated check_object_known_aware() from describe_flavor()
authorHourier <hourier@users.sourceforge.jp>
Tue, 7 Jul 2020 11:50:34 +0000 (20:50 +0900)
committerHourier <hourier@users.sourceforge.jp>
Tue, 7 Jul 2020 11:50:34 +0000 (20:50 +0900)
src/flavor/flavor-describer.c
src/perception/object-perception.c

index 7d81d15..88a15c4 100644 (file)
 #include "player/player-class.h"
 #endif
 
-/*!
- * @brief オブジェクトの各表記を返すメイン関数 / Creates a description of the item "o_ptr", and stores it in "out_val".
- * @param player_ptr プレーヤーへの参照ポインタ
- * @param buf 表記を返すための文字列参照ポインタ
- * @param o_ptr 特性短縮表記を得たいオブジェクト構造体の参照ポインタ
- * @param mode 表記に関するオプション指定
- * @return 現在クエスト達成目的のアイテムならばTRUEを返す
- */
-void describe_flavor(player_type *player_ptr, char *buf, object_type *o_ptr, BIT_FLAGS mode)
+static void check_object_known_aware(player_type *player_ptr, flavor_type *flavor_ptr)
 {
-    flavor_type tmp_flavor;
-    flavor_type *flavor_ptr = initialize_flavor_type(&tmp_flavor, buf, o_ptr, mode);
     object_flags(player_ptr, flavor_ptr->o_ptr, flavor_ptr->flags);
     if (object_is_aware(flavor_ptr->o_ptr))
         flavor_ptr->aware = TRUE;
@@ -72,7 +62,21 @@ void describe_flavor(player_type *player_ptr, char *buf, object_type *o_ptr, BIT
         flavor_ptr->known = FALSE;
         flavor_ptr->flavor_k_ptr = flavor_ptr->k_ptr;
     }
+}
 
+/*!
+ * @brief オブジェクトの各表記を返すメイン関数 / Creates a description of the item "o_ptr", and stores it in "out_val".
+ * @param player_ptr プレーヤーへの参照ポインタ
+ * @param buf 表記を返すための文字列参照ポインタ
+ * @param o_ptr 特性短縮表記を得たいオブジェクト構造体の参照ポインタ
+ * @param mode 表記に関するオプション指定
+ * @return 現在クエスト達成目的のアイテムならばTRUEを返す
+ */
+void describe_flavor(player_type *player_ptr, char *buf, object_type *o_ptr, BIT_FLAGS mode)
+{
+    flavor_type tmp_flavor;
+    flavor_type *flavor_ptr = initialize_flavor_type(&tmp_flavor, buf, o_ptr, mode);
+    check_object_known_aware(player_ptr, flavor_ptr);
     switch (flavor_ptr->o_ptr->tval) {
     case TV_SKELETON:
     case TV_BOTTLE:
index 04a7db4..2fcfe95 100644 (file)
@@ -75,7 +75,9 @@ void object_aware(player_type *owner_ptr, object_type *o_ptr)
 void object_tried(object_type *o_ptr) { k_info[o_ptr->k_idx].tried = TRUE; }
 
 /*
- * Determine if a given inventory item is "aware"
+ * @brief 与えられたオブジェクトのベースアイテムが鑑定済かを返す / Determine if a given inventory item is "aware"
+ * @param o_ptr オブジェクトへの参照ポインタ
+ * @return 鑑定済ならTRUE
  */
 bool object_is_aware(object_type *o_ptr) { return k_info[(o_ptr)->k_idx].aware; }