OSDN Git Service

[Refactor] #40460 Moved retouch_f_info() from dungeon-file.c/h to feature-reader.c/h
authorHourier <hourier@users.sourceforge.jp>
Sat, 6 Jun 2020 03:41:08 +0000 (12:41 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 6 Jun 2020 03:41:08 +0000 (12:41 +0900)
src/dungeon/dungeon-file.c
src/dungeon/dungeon-file.h
src/info-reader/feature-reader.c
src/info-reader/feature-reader.h

index ae8aa28..f05a664 100644 (file)
@@ -143,56 +143,6 @@ errr init_info_txt(FILE *fp, char *buf, angband_header *head, parse_info_txt_fun
 
 
 /*!
- * @brief 地形タグからIDを得る /
- * Search for real index corresponding to this fake tag
- * @param feat タグ文字列のオフセット
- * @return 地形ID。該当がないなら-1
- */
-static FEAT_IDX search_real_feat(STR_OFFSET feat)
-{
-       if (feat <= 0)
-       {
-               return -1;
-       }
-
-       for (FEAT_IDX i = 0; i < f_head.info_num; i++)
-       {
-               if (feat == f_info[i].tag)
-               {
-                       return i;
-               }
-       }
-
-       msg_format(_("未定義のタグ '%s'。", "%s is undefined."), f_tag + feat);
-       return -1;
-}
-
-
-/*!
- * @brief 地形情報の各種タグからIDへ変換して結果を収める /
- * Retouch fake tags of f_info
- * @param head ヘッダ構造体
- * @return なし
- */
-void retouch_f_info(angband_header *head)
-{
-       for (int i = 0; i < head->info_num; i++)
-       {
-               feature_type *f_ptr = &f_info[i];
-               FEAT_IDX k = search_real_feat(f_ptr->mimic_tag);
-               f_ptr->mimic = k < 0 ? f_ptr->mimic : k;
-               k = search_real_feat(f_ptr->destroyed_tag);
-               f_ptr->destroyed = k < 0 ? f_ptr->destroyed : k;
-               for (FEAT_IDX j = 0; j < MAX_FEAT_STATES; j++)
-               {
-                       k = search_real_feat(f_ptr->state[j].result_tag);
-                       f_ptr->state[j].result = k < 0 ? f_ptr->state[j].result : k;
-               }
-       }
-}
-
-
-/*!
  * @brief 地形情報の「F:」情報をパースする
  * Process "F:<letter>:<terrain>:<cave_info>:<monster>:<object>:<ego>:<artifact>:<trap>:<special>" -- info for dungeon grid
  * @param floor_ptr 現在フロアへの参照ポインタ
index 2d8e80d..f4a3904 100644 (file)
@@ -7,5 +7,4 @@
 extern concptr err_str[PARSE_ERROR_MAX];
 
 errr init_info_txt(FILE *fp, char *buf, angband_header *head, parse_info_txt_func parse_info_txt_line);
-void retouch_f_info(angband_header *head);
 errr process_dungeon_file(player_type *player_ptr, concptr name, int ymin, int xmin, int ymax, int xmax);
index c243ce4..a6a228c 100644 (file)
@@ -428,3 +428,46 @@ s16b f_tag_to_index_in_init(concptr str)
 
     return feat;
 }
+
+/*!
+ * @brief 地形タグからIDを得る /
+ * Search for real index corresponding to this fake tag
+ * @param feat タグ文字列のオフセット
+ * @return 地形ID。該当がないなら-1
+ */
+static FEAT_IDX search_real_feat(STR_OFFSET feat)
+{
+    if (feat <= 0) {
+        return -1;
+    }
+
+    for (FEAT_IDX i = 0; i < f_head.info_num; i++) {
+        if (feat == f_info[i].tag) {
+            return i;
+        }
+    }
+
+    msg_format(_("未定義のタグ '%s'。", "%s is undefined."), f_tag + feat);
+    return -1;
+}
+
+/*!
+ * @brief 地形情報の各種タグからIDへ変換して結果を収める /
+ * Retouch fake tags of f_info
+ * @param head ヘッダ構造体
+ * @return なし
+ */
+void retouch_f_info(angband_header *head)
+{
+    for (int i = 0; i < head->info_num; i++) {
+        feature_type *f_ptr = &f_info[i];
+        FEAT_IDX k = search_real_feat(f_ptr->mimic_tag);
+        f_ptr->mimic = k < 0 ? f_ptr->mimic : k;
+        k = search_real_feat(f_ptr->destroyed_tag);
+        f_ptr->destroyed = k < 0 ? f_ptr->destroyed : k;
+        for (FEAT_IDX j = 0; j < MAX_FEAT_STATES; j++) {
+            k = search_real_feat(f_ptr->state[j].result_tag);
+            f_ptr->state[j].result = k < 0 ? f_ptr->state[j].result : k;
+        }
+    }
+}
index 9bf2b68..02ac330 100644 (file)
@@ -9,3 +9,4 @@ errr parse_f_info(char *buf, angband_header *head);
 errr init_feat_variables(void);
 s16b f_tag_to_index(concptr str);
 s16b f_tag_to_index_in_init(concptr str);
+void retouch_f_info(angband_header *head);