OSDN Git Service

Merge pull request #3212 from Hourier/Change-Signature-PathBuild-1
[hengbandforosx/hengbandosx.git] / src / perception / object-perception.cpp
index f51d528..436cc98 100644 (file)
@@ -46,7 +46,7 @@ void object_aware(PlayerType *player_ptr, const ItemEntity *o_ptr)
 {
     const bool is_already_awared = o_ptr->is_aware();
 
-    baseitems_info[o_ptr->k_idx].aware = true;
+    baseitems_info[o_ptr->bi_id].aware = true;
 
     // 以下、playrecordに記録しない場合はreturnする
     if (!record_ident) {
@@ -58,27 +58,22 @@ void object_aware(PlayerType *player_ptr, const ItemEntity *o_ptr)
     }
 
     // アーティファクト専用ベースアイテムは記録しない
-    if (baseitems_info[o_ptr->k_idx].gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
+    if (baseitems_info[o_ptr->bi_id].gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
         return;
     }
 
-    // 未鑑定名の無いアイテムは記録しない
-    if (!((o_ptr->tval >= ItemKindType::AMULET && o_ptr->tval <= ItemKindType::POTION) || o_ptr->tval == ItemKindType::FOOD)) {
+    if (!o_ptr->has_unidentified_name()) {
         return;
     }
 
     // playrecordに識別したアイテムを記録
     ItemEntity forge;
     ItemEntity *q_ptr;
-    GAME_TEXT o_name[MAX_NLEN];
-
     q_ptr = &forge;
     q_ptr->copy_from(o_ptr);
-
     q_ptr->number = 1;
-    describe_flavor(player_ptr, o_name, q_ptr, OD_NAME_ONLY);
-
-    exe_write_diary(player_ptr, DIARY_FOUND, 0, o_name);
+    const auto item_name = describe_flavor(player_ptr, q_ptr, OD_NAME_ONLY);
+    exe_write_diary(player_ptr, DIARY_FOUND, 0, item_name.data());
 }
 
 /*!
@@ -88,5 +83,5 @@ void object_aware(PlayerType *player_ptr, const ItemEntity *o_ptr)
  */
 void object_tried(const ItemEntity *o_ptr)
 {
-    baseitems_info[o_ptr->k_idx].tried = true;
+    baseitems_info[o_ptr->bi_id].tried = true;
 }