OSDN Git Service

[Refactor] #38862 Separated pit-nest-kinds-table.c/h from rooms-pitnest.c
authorHourier <hourier@users.sourceforge.jp>
Sat, 25 Apr 2020 07:32:28 +0000 (16:32 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 25 Apr 2020 07:32:28 +0000 (16:32 +0900)
Hengband_vcs2017/Hengband/Hengband.vcxproj
Hengband_vcs2017/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/room/pit-nest-kinds-table.c [new file with mode: 0644]
src/room/pit-nest-kinds-table.h [new file with mode: 0644]
src/rooms-pitnest.c

index 71317bf..00c4bcc 100644 (file)
     <ClCompile Include="..\..\src\rooms-trap.c" />\r
     <ClCompile Include="..\..\src\rooms-vault.c" />\r
     <ClCompile Include="..\..\src\rooms.c" />\r
+    <ClCompile Include="..\..\src\room\pit-nest-kinds-table.c" />\r
     <ClCompile Include="..\..\src\rumor.c" />\r
     <ClCompile Include="..\..\src\save.c" />\r
     <ClCompile Include="..\..\src\scores.c" />\r
     <ClInclude Include="..\..\src\player\race-info-table.h" />\r
     <ClInclude Include="..\..\src\player\race-resistances.h" />\r
     <ClInclude Include="..\..\src\player\temporary-resistances.h" />\r
+    <ClInclude Include="..\..\src\room\pit-nest-kinds-table.h" />\r
     <ClInclude Include="..\..\src\signal-handlers.h" />\r
     <ClInclude Include="..\..\src\uid-checker.h" />\r
     <ClInclude Include="..\..\src\view\display-characteristic.h" />\r
index db057da..c0f50ba 100644 (file)
     <ClCompile Include="..\..\src\autopick\autopick-describer.c">
       <Filter>autopick</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\room\pit-nest-kinds-table.c">
+      <Filter>rooms</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\gamevalue.h" />
     <ClInclude Include="..\..\src\autopick\autopick-describer.h">
       <Filter>autopick</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\room\pit-nest-kinds-table.h">
+      <Filter>rooms</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
     <Filter Include="autopick">
       <UniqueIdentifier>{7f5cb078-a335-428e-a2db-27ee6263155b}</UniqueIdentifier>
     </Filter>
+    <Filter Include="rooms">
+      <UniqueIdentifier>{318835ed-a803-4459-921e-f6afc5411baa}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\..\src\angband.rc" />
index 2341642..a40378b 100644 (file)
@@ -135,11 +135,12 @@ hengband_SOURCES = \
        realm-hex.c realm-hex.h realm-hissatsu.c realm-hissatsu.h \
        realm-life.c realm-life.h realm-nature.c realm-nature.h realm-song.c \
        realm-song.h realm-sorcery.c realm-sorcery.h realm-trump.c realm-trump.h \
-       report.c report.h rooms.c rooms-city.c rooms-city.h \
-       rooms-fractal.c rooms-fractal.h \
+       report.c report.h \
+       rooms.c rooms-city.c rooms-city.h rooms-fractal.c rooms-fractal.h \
        rooms.h rooms-normal.c rooms-normal.h rooms-pitnest.c rooms-pitnest.h \
        rooms-special.c rooms-special.h rooms-trap.c rooms-trap.h \
        rooms-vault.c rooms-vault.h \
+       room/pit-nest-kinds-table.c room/pit-nest-kinds-table.h \
        save.c save.h scores.c scores.h selfinfo.c selfinfo.h \
        snipe.c snipe.h \
        \
@@ -208,7 +209,7 @@ LIBS += $(XFT_LIBS)
 COMPILE = $(srcdir)/gcc-wrap $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
        -Iautopick -Icmd -Icombat -Icore -Iio -Iknowledge -Imarket -Imonster \
-       -Iobject -Iplayer -Iview
+       -Iobject -Iplayer -Iroom -Iview
 
 install-exec-hook:
 if SET_GID
diff --git a/src/room/pit-nest-kinds-table.c b/src/room/pit-nest-kinds-table.c
new file mode 100644 (file)
index 0000000..3ebfba4
--- /dev/null
@@ -0,0 +1,64 @@
+#include "angband.h"
+#include "room/pit-nest-kinds-table.h"
+#include "monsterrace-hook.h"
+
+/*!nest情報テーブル*/
+vault_aux_type nest_types[MAX_PIT_NEST_KINDS] =
+{
+       { _("クローン", "clone"),      vault_aux_clone,    vault_prep_clone,   5, 3 },
+       { _("ゼリー", "jelly"),        vault_aux_jelly,    NULL,               5, 6 },
+       { _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 25, 2 },
+       { _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 25, 2 },
+       { _("ミミック", "mimic"),      vault_aux_mimic,    NULL,              30, 4 },
+       { _("狂気", "lovecraftian"),   vault_aux_cthulhu,  NULL,              70, 2 },
+       { _("犬小屋", "kennel"),       vault_aux_kennel,   NULL,              45, 4 },
+       { _("動物園", "animal"),       vault_aux_animal,   NULL,              35, 5 },
+       { _("教会", "chapel"),         vault_aux_chapel_g, NULL,              75, 4 },
+       { _("アンデッド", "undead"),   vault_aux_undead,   NULL,              75, 5 },
+       { NULL,           NULL,               NULL,               0, 0 },
+};
+
+/*!pit情報テーブル*/
+vault_aux_type pit_types[MAX_PIT_NEST_KINDS] =
+{
+       { _("オーク", "orc"),            vault_aux_orc,      NULL,               5, 6 },
+       { _("トロル", "troll"),          vault_aux_troll,    NULL,              20, 6 },
+       { _("巨人", "giant"),    vault_aux_giant,    NULL,              50, 6 },
+       { _("狂気", "lovecraftian"),     vault_aux_cthulhu,  NULL,              80, 2 },
+       { _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 70, 1 },
+       { _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 70, 1 },
+       { _("教会", "chapel"),           vault_aux_chapel_g, NULL,              65, 2 },
+       { _("ドラゴン", "dragon"),       vault_aux_dragon,   vault_prep_dragon, 70, 6 },
+       { _("デーモン", "demon"),        vault_aux_demon,    NULL,              80, 6 },
+       { _("ダークエルフ", "dark elf"), vault_aux_dark_elf, NULL,              45, 4 },
+       { NULL,           NULL,               NULL,               0, 0 },
+};
+
+const int placing[MAX_MONSTER_PLACE][3] = {
+       { -2, -9, 0 },{ -2, -8, 0 },{ -3, -7, 0 },{ -3, -6, 0 },
+       { +2, -9, 0 },{ +2, -8, 0 },{ +3, -7, 0 },{ +3, -6, 0 },
+       { -2, +9, 0 },{ -2, +8, 0 },{ -3, +7, 0 },{ -3, +6, 0 },
+       { +2, +9, 0 },{ +2, +8, 0 },{ +3, +7, 0 },{ +3, +6, 0 },
+       { -2, -7, 1 },{ -3, -5, 1 },{ -3, -4, 1 },
+       { +2, -7, 1 },{ +3, -5, 1 },{ +3, -4, 1 },
+       { -2, +7, 1 },{ -3, +5, 1 },{ -3, +4, 1 },
+       { +2, +7, 1 },{ +3, +5, 1 },{ +3, +4, 1 },
+       { -2, -6, 2 },{ -2, -5, 2 },{ -3, -3, 2 },
+       { +2, -6, 2 },{ +2, -5, 2 },{ +3, -3, 2 },
+       { -2, +6, 2 },{ -2, +5, 2 },{ -3, +3, 2 },
+       { +2, +6, 2 },{ +2, +5, 2 },{ +3, +3, 2 },
+       { -2, -4, 3 },{ -3, -2, 3 },
+       { +2, -4, 3 },{ +3, -2, 3 },
+       { -2, +4, 3 },{ -3, +2, 3 },
+       { +2, +4, 3 },{ +3, +2, 3 },
+       { -2, -3, 4 },{ -3, -1, 4 },
+       { +2, -3, 4 },{ +3, -1, 4 },
+       { -2, +3, 4 },{ -3, +1, 4 },
+       { +2, +3, 4 },{ +3, +1, 4 },
+       { -2, -2, 5 },{ -3, 0, 5 },{ -2, +2, 5 },
+       { +2, -2, 5 },{ +3, 0, 5 },{ +2, +2, 5 },
+       { -2, -1, 6 },{ -2, +1, 6 },
+       { +2, -1, 6 },{ +2, +1, 6 },
+       { -2, 0, 7 },{ +2, 0, 7 },
+       { 0, 0, -1 }
+};
diff --git a/src/room/pit-nest-kinds-table.h b/src/room/pit-nest-kinds-table.h
new file mode 100644 (file)
index 0000000..17c0d01
--- /dev/null
@@ -0,0 +1,45 @@
+#pragma once
+
+#define NUM_NEST_MON_TYPE 64 /*!<nestの種別数 */
+
+/*! nestのID定義 /  Nest types code */
+#define NEST_TYPE_CLONE        0
+#define NEST_TYPE_JELLY        1
+#define NEST_TYPE_SYMBOL_GOOD  2
+#define NEST_TYPE_SYMBOL_EVIL  3
+#define NEST_TYPE_MIMIC        4
+#define NEST_TYPE_LOVECRAFTIAN 5
+#define NEST_TYPE_KENNEL       6
+#define NEST_TYPE_ANIMAL       7
+#define NEST_TYPE_CHAPEL       8
+#define NEST_TYPE_UNDEAD       9
+
+/*! pitのID定義 / Pit types code */
+#define PIT_TYPE_ORC           0
+#define PIT_TYPE_TROLL         1
+#define PIT_TYPE_GIANT         2
+#define PIT_TYPE_LOVECRAFTIAN  3
+#define PIT_TYPE_SYMBOL_GOOD   4
+#define PIT_TYPE_SYMBOL_EVIL   5
+#define PIT_TYPE_CHAPEL        6
+#define PIT_TYPE_DRAGON        7
+#define PIT_TYPE_DEMON         8
+#define PIT_TYPE_DARK_ELF      9
+
+#define MAX_PIT_NEST_KINDS 11
+#define MAX_MONSTER_PLACE 69
+
+/*! pit/nest型情報の構造体定義 */
+typedef struct vault_aux_type
+{
+       concptr name;
+       bool(*hook_func)(MONRACE_IDX r_idx);
+       void(*prep_func)(player_type *player_ptr);
+       DEPTH level;
+       int chance;
+} vault_aux_type;
+
+extern vault_aux_type nest_types[MAX_PIT_NEST_KINDS];
+extern vault_aux_type pit_types[MAX_PIT_NEST_KINDS];
+
+extern const int placing[MAX_MONSTER_PLACE][3];
index d8b99e9..3f5fdc8 100644 (file)
 #include "floor.h"
 #include "feature.h"
 #include "dungeon.h"
-
-
-
-#define NUM_NEST_MON_TYPE 64 /*!<nestの種別数 */
-
-/*! pit/nest型情報のtypedef */
-typedef struct vault_aux_type vault_aux_type;
-
-/*! pit/nest型情報の構造体定義 */
-struct vault_aux_type
-{
-       concptr name;
-       bool(*hook_func)(MONRACE_IDX r_idx);
-       void(*prep_func)(player_type *player_ptr);
-       DEPTH level;
-       int chance;
-};
-
-/*! nestのID定義 /  Nest types code */
-#define NEST_TYPE_CLONE        0
-#define NEST_TYPE_JELLY        1
-#define NEST_TYPE_SYMBOL_GOOD  2
-#define NEST_TYPE_SYMBOL_EVIL  3
-#define NEST_TYPE_MIMIC        4
-#define NEST_TYPE_LOVECRAFTIAN 5
-#define NEST_TYPE_KENNEL       6
-#define NEST_TYPE_ANIMAL       7
-#define NEST_TYPE_CHAPEL       8
-#define NEST_TYPE_UNDEAD       9
-
-/*! pitのID定義 / Pit types code */
-#define PIT_TYPE_ORC           0
-#define PIT_TYPE_TROLL         1
-#define PIT_TYPE_GIANT         2
-#define PIT_TYPE_LOVECRAFTIAN  3
-#define PIT_TYPE_SYMBOL_GOOD   4
-#define PIT_TYPE_SYMBOL_EVIL   5
-#define PIT_TYPE_CHAPEL        6
-#define PIT_TYPE_DRAGON        7
-#define PIT_TYPE_DEMON         8
-#define PIT_TYPE_DARK_ELF      9
-
+#include "room/pit-nest-kinds-table.h"
 
 /*!
 * @brief ダンジョン毎に指定されたピット配列を基準にランダムなpit/nestタイプを決める
@@ -107,6 +66,7 @@ static int pick_vault_type(floor_type *floor_ptr, vault_aux_type *l_ptr, BIT_FLA
        return n_ptr->name ? count : -1;
 }
 
+
 /*!
 * @brief デバッグ時に生成されたpit/nestの型を出力する処理
 * @param type pit/nestの型ID
@@ -162,6 +122,7 @@ static concptr pit_subtype_string(int type, bool nest)
        return inner_buf;
 }
 
+
 /*
 *! @brief nestのモンスターリストをソートするための関数 /
 *  Comp function for sorting nest monster information
@@ -203,6 +164,7 @@ static bool ang_sort_comp_nest_mon_info(vptr u, vptr v, int a, int b)
        return w1 <= w2;
 }
 
+
 /*!
 * @brief nestのモンスターリストをスワップするための関数 /
 * Swap function for sorting nest monster information
@@ -227,42 +189,6 @@ static void ang_sort_swap_nest_mon_info(vptr u, vptr v, int a, int b)
 }
 
 
-
-/*!nest情報テーブル*/
-static vault_aux_type nest_types[] =
-{
-       { _("クローン", "clone"),      vault_aux_clone,    vault_prep_clone,   5, 3 },
-       { _("ゼリー", "jelly"),        vault_aux_jelly,    NULL,               5, 6 },
-       { _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 25, 2 },
-       { _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 25, 2 },
-       { _("ミミック", "mimic"),      vault_aux_mimic,    NULL,              30, 4 },
-       { _("狂気", "lovecraftian"),   vault_aux_cthulhu,  NULL,              70, 2 },
-       { _("犬小屋", "kennel"),       vault_aux_kennel,   NULL,              45, 4 },
-       { _("動物園", "animal"),       vault_aux_animal,   NULL,              35, 5 },
-       { _("教会", "chapel"),         vault_aux_chapel_g, NULL,              75, 4 },
-       { _("アンデッド", "undead"),   vault_aux_undead,   NULL,              75, 5 },
-       { NULL,           NULL,               NULL,               0, 0 },
-};
-
-/*!pit情報テーブル*/
-static vault_aux_type pit_types[] =
-{
-       { _("オーク", "orc"),            vault_aux_orc,      NULL,               5, 6 },
-       { _("トロル", "troll"),          vault_aux_troll,    NULL,              20, 6 },
-       { _("巨人", "giant"),    vault_aux_giant,    NULL,              50, 6 },
-       { _("狂気", "lovecraftian"),     vault_aux_cthulhu,  NULL,              80, 2 },
-       { _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 70, 1 },
-       { _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 70, 1 },
-       { _("教会", "chapel"),           vault_aux_chapel_g, NULL,              65, 2 },
-       { _("ドラゴン", "dragon"),       vault_aux_dragon,   vault_prep_dragon, 70, 6 },
-       { _("デーモン", "demon"),        vault_aux_demon,    NULL,              80, 6 },
-       { _("ダークエルフ", "dark elf"), vault_aux_dark_elf, NULL,              45, 4 },
-       { NULL,           NULL,               NULL,               0, 0 },
-};
-
-
-
-
 /*!
 * @brief タイプ5の部屋…nestを生成する / Type 5 -- Monster nests
 * @param player_ptr プレーヤーへの参照ポインタ
@@ -708,7 +634,6 @@ bool build_type6(player_type *player_ptr)
 }
 
 
-
 /*
 * todo vault_monster_okay() をmonsterrace-hook以外から呼んでいるのはここだけなので、何とかしたい
 * Helper function for "trapped monster pit"
@@ -773,35 +698,6 @@ static bool vault_aux_trapped_pit(MONRACE_IDX r_idx)
 */
 bool build_type13(player_type *player_ptr)
 {
-       static int placing[][3] = {
-               { -2, -9, 0 },{ -2, -8, 0 },{ -3, -7, 0 },{ -3, -6, 0 },
-               { +2, -9, 0 },{ +2, -8, 0 },{ +3, -7, 0 },{ +3, -6, 0 },
-               { -2, +9, 0 },{ -2, +8, 0 },{ -3, +7, 0 },{ -3, +6, 0 },
-               { +2, +9, 0 },{ +2, +8, 0 },{ +3, +7, 0 },{ +3, +6, 0 },
-               { -2, -7, 1 },{ -3, -5, 1 },{ -3, -4, 1 },
-               { +2, -7, 1 },{ +3, -5, 1 },{ +3, -4, 1 },
-               { -2, +7, 1 },{ -3, +5, 1 },{ -3, +4, 1 },
-               { +2, +7, 1 },{ +3, +5, 1 },{ +3, +4, 1 },
-               { -2, -6, 2 },{ -2, -5, 2 },{ -3, -3, 2 },
-               { +2, -6, 2 },{ +2, -5, 2 },{ +3, -3, 2 },
-               { -2, +6, 2 },{ -2, +5, 2 },{ -3, +3, 2 },
-               { +2, +6, 2 },{ +2, +5, 2 },{ +3, +3, 2 },
-               { -2, -4, 3 },{ -3, -2, 3 },
-               { +2, -4, 3 },{ +3, -2, 3 },
-               { -2, +4, 3 },{ -3, +2, 3 },
-               { +2, +4, 3 },{ +3, +2, 3 },
-               { -2, -3, 4 },{ -3, -1, 4 },
-               { +2, -3, 4 },{ +3, -1, 4 },
-               { -2, +3, 4 },{ -3, +1, 4 },
-               { +2, +3, 4 },{ +3, +1, 4 },
-               { -2, -2, 5 },{ -3, 0, 5 },{ -2, +2, 5 },
-               { +2, -2, 5 },{ +3, 0, 5 },{ +2, +2, 5 },
-               { -2, -1, 6 },{ -2, +1, 6 },
-               { +2, -1, 6 },{ +2, +1, 6 },
-               { -2, 0, 7 },{ +2, 0, 7 },
-               { 0, 0, -1 }
-       };
-
        POSITION y, x, y1, x1, y2, x2, xval, yval;
        int i, j;
 
@@ -1008,4 +904,3 @@ bool build_type13(player_type *player_ptr)
 
        return TRUE;
 }
-