OSDN Git Service

[Refactor] #3677 grid_type 構造体をGrid クラスへ改名した
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 21 Oct 2023 12:20:40 +0000 (21:20 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Tue, 31 Oct 2023 11:37:07 +0000 (20:37 +0900)
74 files changed:
src/action/movement-execution.cpp
src/action/run-execution.cpp
src/action/travel-execution.cpp
src/action/tunnel-execution.cpp
src/autopick/autopick.cpp
src/autopick/autopick.h
src/cmd-action/cmd-open-close.cpp
src/cmd-action/cmd-others.cpp
src/cmd-action/cmd-pet.cpp
src/cmd-action/cmd-tunnel.cpp
src/combat/shoot.cpp
src/dungeon/quest-monster-placer.cpp
src/effect/effect-monster-util.h
src/floor/cave-generator.cpp
src/floor/cave.h
src/floor/floor-events.cpp
src/floor/floor-leaver.cpp
src/floor/floor-object.cpp
src/floor/floor-streams.cpp
src/floor/object-allocator.cpp
src/floor/tunnel-generator.cpp
src/floor/wild.cpp
src/grid/feature-generator.cpp
src/grid/grid.cpp
src/grid/grid.h
src/hpmp/hp-mp-processor.cpp
src/load/floor-loader.cpp
src/load/old/load-v1-5-0.cpp
src/main/game-data-initializer.cpp
src/mind/mind-warrior.cpp
src/monster-attack/monster-attack-processor.cpp
src/monster-attack/monster-attack-processor.h
src/monster-floor/monster-lite.cpp
src/monster-floor/monster-move.cpp
src/monster-floor/monster-remover.cpp
src/monster-floor/monster-safety-hiding.cpp
src/monster/monster-compaction.cpp
src/mspell/mspell-checker.cpp
src/mspell/mspell-lite.cpp
src/mutation/mutation-techniques.cpp
src/object-use/throw-execution.h
src/pet/pet-fall-off.cpp
src/pet/pet-util.cpp
src/pet/pet-util.h
src/player-attack/player-attack.cpp
src/player-attack/player-attack.h
src/player/player-move.cpp
src/player/player-status.cpp
src/player/player-view.cpp
src/realm/realm-hissatsu.cpp
src/room/rooms-builder.cpp
src/room/rooms-city.cpp
src/room/rooms-maze-vault.cpp
src/room/rooms-normal.cpp
src/room/rooms-pit-nest.cpp
src/room/rooms-special.cpp
src/room/rooms-trap.cpp
src/room/rooms-vault.cpp
src/room/vault-builder.cpp
src/spell-kind/earthquake.cpp
src/spell-kind/spells-fetcher.cpp
src/spell-kind/spells-floor.cpp
src/spell-kind/spells-lite.cpp
src/spell-kind/spells-teleport.cpp
src/system/floor-type-definition.cpp
src/system/floor-type-definition.h
src/system/grid-type-definition.cpp
src/system/grid-type-definition.h
src/target/grid-selector.cpp
src/target/target-describer.cpp
src/target/target-preparation.cpp
src/target/target-setter.cpp
src/util/sort.cpp
src/window/display-sub-windows.cpp

index 6be3ba2..1cb2011 100644 (file)
 
 /*!
  * Determine if a "boundary" grid is "floor mimic"
- * @param grid_type *g_ptr
- * @param TerrainType *f_ptr
- * @param TerrainType  *mimic_f_ptr
+ * @param g_ptr グリッドへの参照ポインタ
+ * @param t_ptr 地形特性への参照ポインタ
+ * @param mimic_t_ptr ミミック地形特性への参照ポインタ
  * @return 移動不能であればTRUE
  * @todo 負論理なので反転させたい
  */
-static bool boundary_floor(grid_type *g_ptr, TerrainType *f_ptr, TerrainType *mimic_f_ptr)
+static bool boundary_floor(Grid *g_ptr, TerrainType *t_ptr, TerrainType *mimic_t_ptr)
 {
     auto is_boundary_floor = g_ptr->mimic > 0;
-    is_boundary_floor &= f_ptr->is_permanent_wall();
-    is_boundary_floor &= mimic_f_ptr->flags.has_any_of({ TerrainCharacteristics::MOVE, TerrainCharacteristics::CAN_FLY });
-    is_boundary_floor &= mimic_f_ptr->flags.has(TerrainCharacteristics::PROJECT);
-    is_boundary_floor &= mimic_f_ptr->flags.has_not(TerrainCharacteristics::OPEN);
+    is_boundary_floor &= t_ptr->is_permanent_wall();
+    is_boundary_floor &= mimic_t_ptr->flags.has_any_of({ TerrainCharacteristics::MOVE, TerrainCharacteristics::CAN_FLY });
+    is_boundary_floor &= mimic_t_ptr->flags.has(TerrainCharacteristics::PROJECT);
+    is_boundary_floor &= mimic_t_ptr->flags.has_not(TerrainCharacteristics::OPEN);
     return is_boundary_floor;
 }
 
index 7918e0d..251204a 100644 (file)
@@ -64,7 +64,7 @@ static bool see_wall(PlayerType *player_ptr, DIRECTION dir, POSITION y, POSITION
         return false;
     }
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     if (!g_ptr->is_mark()) {
         return false;
@@ -225,7 +225,7 @@ static bool run_test(PlayerType *player_ptr)
         DIRECTION new_dir = cycle[chome[prev_dir] + i];
         int row = player_ptr->y + ddy[new_dir];
         int col = player_ptr->x + ddx[new_dir];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[row][col];
         FEAT_IDX feat = g_ptr->get_feat_mimic();
         TerrainType *f_ptr;
index bb655cd..c785ff6 100644 (file)
@@ -55,7 +55,7 @@ static DIRECTION travel_test(PlayerType *player_ptr, DIRECTION prev_dir)
     }
 
     int max = (prev_dir & 0x01) + 1;
-    const grid_type *g_ptr;
+    const Grid *g_ptr;
     for (int i = -max; i <= max; i++) {
         DIRECTION dir = cycle[chome[prev_dir] + i];
         POSITION row = player_ptr->y + ddy[dir];
index af0ed14..cc98c01 100644 (file)
@@ -55,7 +55,7 @@ static bool do_cmd_tunnel_test(FloorType *floor_ptr, POSITION y, POSITION x)
  */
 bool exe_tunnel(PlayerType *player_ptr, POSITION y, POSITION x)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     TerrainType *f_ptr, *mimic_f_ptr;
     int power;
     concptr name;
index 272c1f6..ff56c22 100644 (file)
@@ -98,7 +98,7 @@ void autopick_alter_item(PlayerType *player_ptr, INVENTORY_IDX i_idx, bool destr
 /*!
  * @brief Automatically pickup/destroy items in this grid.
  */
-void autopick_pickup_items(PlayerType *player_ptr, grid_type *g_ptr)
+void autopick_pickup_items(PlayerType *player_ptr, Grid *g_ptr)
 {
     for (auto it = g_ptr->o_idx_list.begin(); it != g_ptr->o_idx_list.end();) {
         OBJECT_IDX this_o_idx = *it++;
index 8bf2cc3..eea3641 100644 (file)
@@ -2,9 +2,8 @@
 
 #include "system/angband.h"
 
-struct grid_type;
-;
+class Grid;
 class PlayerType;
 void autopick_alter_item(PlayerType *player_ptr, INVENTORY_IDX i_idx, bool destroy);
 void autopick_delayed_alter(PlayerType *player_ptr);
-void autopick_pickup_items(PlayerType *player_ptr, grid_type *g_ptr);
+void autopick_pickup_items(PlayerType *player_ptr, Grid *g_ptr);
index 3273747..5012a0d 100644 (file)
@@ -128,7 +128,7 @@ void do_cmd_open(PlayerType *player_ptr)
 
     if (get_rep_dir(player_ptr, &dir, true)) {
         FEAT_IDX feat;
-        grid_type *g_ptr;
+        Grid *g_ptr;
         y = player_ptr->y + ddy[dir];
         x = player_ptr->x + ddx[dir];
         g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
@@ -180,7 +180,7 @@ void do_cmd_close(PlayerType *player_ptr)
     }
 
     if (get_rep_dir(player_ptr, &dir)) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         FEAT_IDX feat;
         y = player_ptr->y + ddy[dir];
         x = player_ptr->x + ddx[dir];
@@ -236,7 +236,7 @@ void do_cmd_disarm(PlayerType *player_ptr)
     }
 
     if (get_rep_dir(player_ptr, &dir, true)) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         FEAT_IDX feat;
         y = player_ptr->y + ddy[dir];
         x = player_ptr->x + ddx[dir];
@@ -281,7 +281,7 @@ void do_cmd_bash(PlayerType *player_ptr)
 {
     POSITION y, x;
     DIRECTION dir;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     bool more = false;
     if (player_ptr->wild_mode) {
         return;
@@ -368,7 +368,7 @@ void do_cmd_spike(PlayerType *player_ptr)
 
     POSITION y = player_ptr->y + ddy[dir];
     POSITION x = player_ptr->x + ddx[dir];
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     FEAT_IDX feat = g_ptr->get_feat_mimic();
     INVENTORY_IDX i_idx;
index 877f53f..f9c8d7f 100644 (file)
@@ -69,7 +69,7 @@ static bool exe_alter(PlayerType *player_ptr)
 
     POSITION y = player_ptr->y + ddy[dir];
     POSITION x = player_ptr->x + ddx[dir];
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     FEAT_IDX feat = g_ptr->get_feat_mimic();
     TerrainType *f_ptr;
index 7d6259c..3940812 100644 (file)
@@ -201,7 +201,7 @@ bool do_cmd_riding(PlayerType *player_ptr, bool force)
 {
     POSITION x, y;
     DIRECTION dir = 0;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     MonsterEntity *m_ptr;
 
     if (!get_direction(player_ptr, &dir)) {
index 053c6a2..1d9a995 100644 (file)
@@ -54,7 +54,7 @@ void do_cmd_tunnel(PlayerType *player_ptr)
 
     POSITION y = player_ptr->y + ddy[dir];
     POSITION x = player_ptr->x + ddx[dir];
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     FEAT_IDX feat = g_ptr->get_feat_mimic();
     if (terrains_info[feat].flags.has(TerrainCharacteristics::DOOR)) {
index 5ff02d4..0ee31ed 100644 (file)
@@ -620,7 +620,7 @@ void exe_fire(PlayerType *player_ptr, INVENTORY_IDX i_idx, ItemEntity *j_ptr, SP
 
         /* Travel until stopped */
         for (auto cur_dis = 0; cur_dis <= tdis;) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
 
             /* Hack -- Stop at the target */
             if ((y == ty) && (x == tx)) {
@@ -720,7 +720,7 @@ void exe_fire(PlayerType *player_ptr, INVENTORY_IDX i_idx, ItemEntity *j_ptr, SP
             /* Monster here, Try to hit it */
             if (floor_ptr->grid_array[y][x].m_idx) {
                 sound(SOUND_SHOOT_HIT);
-                grid_type *c_mon_ptr = &floor_ptr->grid_array[y][x];
+                Grid *c_mon_ptr = &floor_ptr->grid_array[y][x];
 
                 auto *m_ptr = &floor_ptr->m_list[c_mon_ptr->m_idx];
                 auto *r_ptr = &m_ptr->get_monrace();
index 3d4161e..60e908f 100644 (file)
@@ -54,7 +54,7 @@ bool place_quest_monsters(PlayerType *player_ptr)
                 POSITION y = 0;
                 int l;
                 for (l = SAFE_MAX_ATTEMPTS; l > 0; l--) {
-                    grid_type *g_ptr;
+                    Grid *g_ptr;
                     TerrainType *f_ptr;
                     y = randint0(floor_ptr->height);
                     x = randint0(floor_ptr->width);
index 7f0f898..738f021 100644 (file)
@@ -4,7 +4,7 @@
 #include <string>
 
 enum class AttributeType;
-struct grid_type;
+class Grid;
 class MonsterEntity;
 class MonsterRaceInfo;
 class PlayerType;
@@ -38,7 +38,7 @@ public:
     BIT_FLAGS flag;
     bool see_s_msg;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     MonsterEntity *m_ptr;
     MonsterEntity *m_caster_ptr;
     MonsterRaceInfo *r_ptr;
index b74636e..20dbe84 100644 (file)
@@ -130,7 +130,7 @@ static bool decide_tunnel_planned_site(PlayerType *player_ptr, dun_data_type *dd
 static void make_tunnels(PlayerType *player_ptr, dun_data_type *dd_ptr)
 {
     for (int j = 0; j < dd_ptr->tunn_n; j++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         TerrainType *f_ptr;
         dd_ptr->tunnel_y = dd_ptr->tunn[j].y;
         dd_ptr->tunnel_x = dd_ptr->tunn[j].x;
@@ -146,7 +146,7 @@ static void make_tunnels(PlayerType *player_ptr, dun_data_type *dd_ptr)
 static void make_walls(PlayerType *player_ptr, dun_data_type *dd_ptr, dungeon_type *d_ptr, dt_type *dt_ptr)
 {
     for (int j = 0; j < dd_ptr->wall_n; j++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         dd_ptr->tunnel_y = dd_ptr->wall[j].y;
         dd_ptr->tunnel_x = dd_ptr->wall[j].x;
         g_ptr = &player_ptr->current_floor_ptr->grid_array[dd_ptr->tunnel_y][dd_ptr->tunnel_x];
@@ -286,7 +286,7 @@ static void make_aqua_streams(PlayerType *player_ptr, dun_data_type *dd_ptr, dun
  * @brief マスにフロア端用の永久壁を配置する / Set boundary mimic and add "solid" perma-wall
  * @param g_ptr 永久壁を配置したいマス構造体の参照ポインタ
  */
-static void place_bound_perm_wall(PlayerType *player_ptr, grid_type *g_ptr)
+static void place_bound_perm_wall(PlayerType *player_ptr, Grid *g_ptr)
 {
     if (bound_walls_perm) {
         g_ptr->mimic = 0;
index 9bff235..e049eaf 100644 (file)
@@ -1,7 +1,6 @@
 #pragma once
 
 class FloorType;
-struct grid_type;
 class PlayerType;
 enum class TerrainCharacteristics;
 bool in_bounds(FloorType *floor_ptr, int y, int x);
index aa6701a..f71f09c 100644 (file)
@@ -335,7 +335,7 @@ void glow_deep_lava_and_bldg(PlayerType *player_ptr)
 
     for (POSITION y = 0; y < floor_ptr->height; y++) {
         for (POSITION x = 0; x < floor_ptr->width; x++) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             if (terrains_info[g_ptr->get_feat_mimic()].flags.has_not(TerrainCharacteristics::GLOW)) {
                 continue;
@@ -393,7 +393,7 @@ void forget_view(FloorType *floor_ptr)
     for (int i = 0; i < floor_ptr->view_n; i++) {
         POSITION y = floor_ptr->view_y[i];
         POSITION x = floor_ptr->view_x[i];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[y][x];
         g_ptr->info &= ~(CAVE_VIEW);
     }
index 494c212..fe2115b 100644 (file)
@@ -292,7 +292,7 @@ static void preserve_info(PlayerType *player_ptr)
     }
 }
 
-static void set_grid_by_leaving_floor(PlayerType *player_ptr, grid_type **g_ptr)
+static void set_grid_by_leaving_floor(PlayerType *player_ptr, Grid **g_ptr)
 {
     if ((player_ptr->change_floor_mode & CFM_SAVE_FLOORS) == 0) {
         return;
@@ -377,7 +377,7 @@ static void kill_saved_floors(PlayerType *player_ptr, saved_floor_type *sf_ptr)
     }
 }
 
-static void refresh_new_floor_id(PlayerType *player_ptr, grid_type *g_ptr)
+static void refresh_new_floor_id(PlayerType *player_ptr, Grid *g_ptr)
 {
     if (new_floor_id != 0) {
         return;
@@ -404,7 +404,7 @@ static void update_upper_lower_or_floor_id(PlayerType *player_ptr, saved_floor_t
 
 static void exe_leave_floor(PlayerType *player_ptr, saved_floor_type *sf_ptr)
 {
-    grid_type *g_ptr = nullptr;
+    Grid *g_ptr = nullptr;
     set_grid_by_leaving_floor(player_ptr, &g_ptr);
     jump_floors(player_ptr);
     exit_to_wilderness(player_ptr);
index 1ed69fa..f4dfad2 100644 (file)
@@ -192,7 +192,7 @@ bool make_gold(PlayerType *player_ptr, ItemEntity *j_ptr)
  */
 void delete_all_items_from_floor(PlayerType *player_ptr, POSITION y, POSITION x)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     if (!in_bounds(floor_ptr, y, x)) {
         return;
@@ -349,7 +349,7 @@ OBJECT_IDX drop_near(PlayerType *player_ptr, ItemEntity *j_ptr, PERCENTAGE chanc
     POSITION dy, dx;
     POSITION ty, tx = 0;
     OBJECT_IDX o_idx = 0;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     bool flag = false;
     bool done = false;
 #ifdef JP
index 9fb5037..67e1fb1 100644 (file)
@@ -61,7 +61,7 @@ static void recursive_river(FloorType *floor_ptr, POSITION x1, POSITION y1, POSI
     POSITION changex, changey;
     POSITION ty, tx;
     bool done;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     length = distance(x1, y1, x2, y2);
 
@@ -293,7 +293,7 @@ void build_streamer(PlayerType *player_ptr, FEAT_IDX feat, int chance)
     DIRECTION dir;
     int dummy = 0;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     TerrainType *f_ptr;
 
     const auto &streamer = TerrainList::get_instance()[feat];
@@ -434,7 +434,7 @@ void build_streamer(PlayerType *player_ptr, FEAT_IDX feat, int chance)
 void place_trees(PlayerType *player_ptr, POSITION x, POSITION y)
 {
     int i, j;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* place trees/ rubble in ovalish distribution */
     auto *floor_ptr = player_ptr->current_floor_ptr;
index f624c11..809f821 100644 (file)
@@ -115,7 +115,7 @@ bool alloc_stairs(PlayerType *player_ptr, FEAT_IDX feat, int num, int walls)
 
     for (int i = 0; i < num; i++) {
         while (true) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             int candidates = 0;
             const POSITION max_x = floor.width - 1;
             for (POSITION y = 1; y < floor.height - 1; y++) {
@@ -186,7 +186,7 @@ void alloc_object(PlayerType *player_ptr, dap_type set, dungeon_allocation_type
     POSITION y = 0;
     POSITION x = 0;
     int dummy = 0;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     num = num * floor_ptr->height * floor_ptr->width / (MAX_HGT * MAX_WID) + 1;
     for (int k = 0; k < num; k++) {
index f37c081..23ca8e9 100644 (file)
@@ -376,7 +376,7 @@ bool build_tunnel2(PlayerType *player_ptr, dun_data_type *dd_ptr, POSITION x1, P
     POSITION x3, y3, dx, dy;
     POSITION changex, changey;
     bool retval, firstsuccede;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     int length = distance(x1, y1, x2, y2);
     auto *floor_ptr = player_ptr->current_floor_ptr;
index 70bec41..292ac91 100644 (file)
@@ -501,7 +501,7 @@ void wilderness_gen(PlayerType *player_ptr)
     floor_ptr->grid_array[MAX_HGT - 1][MAX_WID - 1].mimic = border.south_east;
     for (y = 0; y < floor_ptr->height; y++) {
         for (x = 0; x < floor_ptr->width; x++) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             if (is_daytime()) {
                 g_ptr->info |= CAVE_GLOW;
@@ -539,7 +539,7 @@ void wilderness_gen(PlayerType *player_ptr)
     if (player_ptr->teleport_town) {
         for (y = 0; y < floor_ptr->height; y++) {
             for (x = 0; x < floor_ptr->width; x++) {
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 g_ptr = &floor_ptr->grid_array[y][x];
                 TerrainType *f_ptr;
                 f_ptr = &terrains_info[g_ptr->feat];
@@ -564,7 +564,7 @@ void wilderness_gen(PlayerType *player_ptr)
     } else if (player_ptr->leaving_dungeon) {
         for (y = 0; y < floor_ptr->height; y++) {
             for (x = 0; x < floor_ptr->width; x++) {
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 g_ptr = &floor_ptr->grid_array[y][x];
                 if (!g_ptr->cave_has_flag(TerrainCharacteristics::ENTRANCE)) {
                     continue;
index 0080795..3bbda49 100644 (file)
@@ -150,7 +150,7 @@ static int next_to_corr(FloorType *floor_ptr, POSITION y1, POSITION x1)
     for (int i = 0; i < 4; i++) {
         POSITION y = y1 + ddy_ddd[i];
         POSITION x = x1 + ddx_ddd[i];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[y][x];
         if (g_ptr->cave_has_flag(TerrainCharacteristics::WALL) || !g_ptr->is_floor() || g_ptr->is_room()) {
             continue;
index 8d90702..2da18a6 100644 (file)
@@ -77,7 +77,7 @@ bool new_player_spot(PlayerType *player_ptr)
     POSITION y = 0, x = 0;
     int max_attempts = 10000;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     TerrainType *f_ptr;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
@@ -147,7 +147,7 @@ bool new_player_spot(PlayerType *player_ptr)
  * @param g_ptr マス構造体の参照ポインタ
  * @return 隠されたドアがあるならTRUEを返す。
  */
-bool is_hidden_door(PlayerType *player_ptr, grid_type *g_ptr)
+bool is_hidden_door(PlayerType *player_ptr, Grid *g_ptr)
 {
     if ((g_ptr->mimic || g_ptr->cave_has_flag(TerrainCharacteristics::SECRET)) && is_closed_door(player_ptr, g_ptr->feat)) {
         return true;
@@ -996,7 +996,7 @@ bool player_can_enter(PlayerType *player_ptr, FEAT_IDX feature, BIT_FLAGS16 mode
     return true;
 }
 
-void place_grid(PlayerType *player_ptr, grid_type *g_ptr, grid_bold_type gb_type)
+void place_grid(PlayerType *player_ptr, Grid *g_ptr, grid_bold_type gb_type)
 {
     switch (gb_type) {
     case GB_FLOOR: {
@@ -1086,14 +1086,14 @@ void place_grid(PlayerType *player_ptr, grid_type *g_ptr, grid_bold_type gb_type
  * @param g_ptr グリッドへの参照ポインタ
  * @return 照明が消されている地形ならばTRUE
  */
-bool darkened_grid(PlayerType *player_ptr, grid_type *g_ptr)
+bool darkened_grid(PlayerType *player_ptr, Grid *g_ptr)
 {
     return ((g_ptr->info & (CAVE_VIEW | CAVE_LITE | CAVE_MNLT | CAVE_MNDK)) == (CAVE_VIEW | CAVE_MNDK)) && !player_ptr->see_nocto;
 }
 
 void place_bold(PlayerType *player_ptr, POSITION y, POSITION x, grid_bold_type gb_type)
 {
-    grid_type *const g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
+    Grid *const g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     place_grid(player_ptr, g_ptr, gb_type);
 }
 
@@ -1117,7 +1117,7 @@ int count_dt(PlayerType *player_ptr, POSITION *y, POSITION *x, bool (*test)(Play
 {
     int count = 0;
     for (DIRECTION d = 0; d < 9; d++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         FEAT_IDX feat;
         if ((d == 8) && !under) {
             continue;
index da561a1..8220a9e 100644 (file)
@@ -43,12 +43,12 @@ enum grid_bold_type {
 };
 
 class FloorType;
-struct grid_type;
+class Grid;
 class PlayerType;
 class MonsterRaceInfo;
 enum class TerrainCharacteristics;
 bool new_player_spot(PlayerType *player_ptr);
-bool is_hidden_door(PlayerType *player_ptr, grid_type *g_ptr);
+bool is_hidden_door(PlayerType *player_ptr, Grid *g_ptr);
 bool player_can_enter(PlayerType *player_ptr, FEAT_IDX feature, BIT_FLAGS16 mode);
 bool feat_uses_special(FEAT_IDX f_idx);
 void update_local_illumination(PlayerType *player_ptr, POSITION y, POSITION x);
@@ -64,8 +64,8 @@ bool is_open(PlayerType *player_ptr, FEAT_IDX feat);
 bool check_local_illumination(PlayerType *player_ptr, POSITION y, POSITION x);
 bool cave_monster_teleportable_bold(PlayerType *player_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, teleport_flags mode);
 bool cave_player_teleportable_bold(PlayerType *player_ptr, POSITION y, POSITION x, teleport_flags mode);
-void place_grid(PlayerType *player_ptr, grid_type *g_ptr, grid_bold_type pg_type);
-bool darkened_grid(PlayerType *player_ptr, grid_type *g_ptr);
+void place_grid(PlayerType *player_ptr, Grid *g_ptr, grid_bold_type pg_type);
+bool darkened_grid(PlayerType *player_ptr, Grid *g_ptr);
 void delete_monster(PlayerType *player_ptr, POSITION y, POSITION x);
 void place_bold(PlayerType *player_ptr, POSITION y, POSITION x, grid_bold_type gh_type);
 void set_cave_feat(FloorType *floor_ptr, POSITION y, POSITION x, FEAT_IDX feature_idx);
index b09cfe4..ef635f4 100644 (file)
@@ -63,7 +63,7 @@
  * @details
  * ダメージを受けた場合、自然回復できない。
  */
-static bool deal_damege_by_feat(PlayerType *player_ptr, grid_type *g_ptr, concptr msg_levitation, concptr msg_normal,
+static bool deal_damege_by_feat(PlayerType *player_ptr, Grid *g_ptr, concptr msg_levitation, concptr msg_normal,
     std::function<PERCENTAGE(PlayerType *)> damage_rate, std::function<void(PlayerType *, int)> additional_effect)
 {
     auto *f_ptr = &terrains_info[g_ptr->feat];
index 26c4e37..21498ba 100644 (file)
@@ -39,7 +39,7 @@
  * この関数は、セーブデータの互換性を保つために多くのデータ改変処理を備えている。
  * 現在確認している処理は以下の通り、
  * <ul>
- * <li>1.7.0.2で8bitだったgrid_typeのfeat,mimicのID値を16bitに拡張する処理。</li>
+ * <li>1.7.0.2で8bitだったGridのfeat,mimicのID値を16bitに拡張する処理。</li>
  * <li>1.7.0.8までに廃止、IDなどを差し替えたクエスト番号を置換する処理。</li>
  * </ul>
  * The monsters/objects must be loaded in the same order
index b7683d5..cd4033b 100644 (file)
@@ -590,7 +590,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
         }
 
         for (int i = count; i > 0; i--) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             g_ptr->info = info;
             if (++x >= xmax) {
@@ -606,7 +606,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
         auto count = rd_byte();
         auto tmp8u = rd_byte();
         for (int i = count; i > 0; i--) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             g_ptr->feat = (int16_t)tmp8u;
             if (++x >= xmax) {
@@ -622,7 +622,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
         auto count = rd_byte();
         auto tmp8u = rd_byte();
         for (int i = count; i > 0; i--) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             g_ptr->mimic = (int16_t)tmp8u;
             if (++x >= xmax) {
@@ -638,7 +638,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
         auto count = rd_byte();
         auto tmp16s = rd_s16b();
         for (int i = count; i > 0; i--) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             g_ptr->special = tmp16s;
             if (++x >= xmax) {
@@ -661,7 +661,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
     if (h_older_than(1, 1, 1, 0)) {
         for (int y = 0; y < ymax; y++) {
             for (int x = 0; x < xmax; x++) {
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 g_ptr = &floor_ptr->grid_array[y][x];
 
                 /* Very old */
@@ -682,7 +682,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
     if (h_older_than(1, 3, 1, 0)) {
         for (int y = 0; y < ymax; y++) {
             for (int x = 0; x < xmax; x++) {
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 g_ptr = &floor_ptr->grid_array[y][x];
 
                 /* Old CAVE_IN_MIRROR flag */
@@ -708,7 +708,7 @@ errr rd_dungeon_old(PlayerType *player_ptr)
     if (!vanilla_town) {
         for (int y = 0; y < ymax; y++) {
             for (int x = 0; x < xmax; x++) {
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 g_ptr = &floor_ptr->grid_array[y][x];
 
                 if ((g_ptr->special == OLD_QUEST_WATER_CAVE) && !floor_ptr->dun_level) {
index 3778a73..3b5b712 100644 (file)
@@ -56,7 +56,7 @@ void init_other(PlayerType *player_ptr)
     }
 
     max_dlv.assign(dungeons_info.size(), {});
-    floor_ptr->grid_array.assign(MAX_HGT, std::vector<grid_type>(MAX_WID));
+    floor_ptr->grid_array.assign(MAX_HGT, std::vector<Grid>(MAX_WID));
     init_gf_colors();
 
     macro_patterns.assign(MACRO_MAX, {});
index 5675b09..a8ef612 100644 (file)
@@ -45,7 +45,7 @@ bool sword_dancing(PlayerType *player_ptr)
 {
     DIRECTION dir;
     POSITION y = 0, x = 0;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     for (int i = 0; i < 6; i++) {
         dir = randint0(8);
         y = player_ptr->y + ddy_ddd[dir];
index 8b91f3b..c7ca454 100644 (file)
@@ -76,7 +76,7 @@ void exe_monster_attack_to_player(PlayerType *player_ptr, turn_flags *turn_flags
  * @param m_idx モンスターID
  * @param g_ptr グリッドへの参照ポインタ
  */
-static bool exe_monster_attack_to_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, grid_type *g_ptr)
+static bool exe_monster_attack_to_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, Grid *g_ptr)
 {
     auto &floor = *player_ptr->current_floor_ptr;
     auto *m_ptr = &floor.m_list[m_idx];
@@ -123,7 +123,7 @@ static bool exe_monster_attack_to_monster(PlayerType *player_ptr, MONSTER_IDX m_
  * @param can_cross モンスターが地形を踏破できるならばTRUE
  * @return ターン消費が発生したらTRUE
  */
-bool process_monster_attack_to_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, grid_type *g_ptr, bool can_cross)
+bool process_monster_attack_to_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, Grid *g_ptr, bool can_cross)
 {
     if (!turn_flags_ptr->do_move || (g_ptr->m_idx == 0)) {
         return false;
index 2de07c8..0ab1ee4 100644 (file)
@@ -2,9 +2,8 @@
 
 #include "system/angband.h"
 
-struct grid_type;
-;
+class Grid;
 class PlayerType;
 struct turn_flags;
 void exe_monster_attack_to_player(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, POSITION ny, POSITION nx);
-bool process_monster_attack_to_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, grid_type *g_ptr, bool can_cross);
+bool process_monster_attack_to_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, Grid *g_ptr, bool can_cross);
index da01458..d0bae18 100644 (file)
@@ -34,7 +34,7 @@
 static void update_monster_lite(
     PlayerType *const player_ptr, std::vector<Pos2D> &points, const POSITION y, const POSITION x, const monster_lite_type *const ml_ptr)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     int dpf, d;
     POSITION midpoint;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
@@ -93,7 +93,7 @@ static void update_monster_lite(
 static void update_monster_dark(
     PlayerType *const player_ptr, std::vector<Pos2D> &points, const POSITION y, const POSITION x, const monster_lite_type *const ml_ptr)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     int midpoint, dpf, d;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     if ((g_ptr->info & (CAVE_LITE | CAVE_MNLT | CAVE_MNDK | CAVE_VIEW)) != CAVE_VIEW) {
@@ -157,7 +157,7 @@ void update_mon_lite(PlayerType *player_ptr)
     const auto &dungeon = floor_ptr->get_dungeon_definition();
     auto dis_lim = (dungeon.flags.has(DungeonFeatureType::DARKNESS) && !player_ptr->see_nocto) ? (MAX_PLAYER_SIGHT / 2 + 1) : (MAX_PLAYER_SIGHT + 3);
     for (int i = 0; i < floor_ptr->mon_lite_n; i++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[floor_ptr->mon_lite_y[i]][floor_ptr->mon_lite_x[i]];
         g_ptr->info |= (g_ptr->info & CAVE_MNLT) ? CAVE_TEMP : CAVE_XTRA;
         g_ptr->info &= ~(CAVE_MNLT | CAVE_MNDK);
@@ -233,7 +233,7 @@ void update_mon_lite(PlayerType *player_ptr)
                 continue;
             }
 
-            grid_type *g_ptr;
+            Grid *g_ptr;
             if (cave_has_flag_bold(player_ptr->current_floor_ptr, ml_ptr->mon_fy + 1, ml_ptr->mon_fx, f_flag)) {
                 add_mon_lite(player_ptr, points, ml_ptr->mon_fy + 2, ml_ptr->mon_fx + 1, ml_ptr);
                 add_mon_lite(player_ptr, points, ml_ptr->mon_fy + 2, ml_ptr->mon_fx, ml_ptr);
@@ -308,7 +308,7 @@ void update_mon_lite(PlayerType *player_ptr)
     for (int i = 0; i < floor_ptr->mon_lite_n; i++) {
         POSITION fx = floor_ptr->mon_lite_x[i];
         POSITION fy = floor_ptr->mon_lite_y[i];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[fy][fx];
         if (g_ptr->info & CAVE_TEMP) {
             if ((g_ptr->info & (CAVE_VIEW | CAVE_MNLT)) == CAVE_VIEW) {
@@ -325,7 +325,7 @@ void update_mon_lite(PlayerType *player_ptr)
     for (size_t i = 0; i < end_temp; i++) {
         const auto &[fy, fx] = points[i];
 
-        grid_type *const g_ptr = &floor_ptr->grid_array[fy][fx];
+        Grid *const g_ptr = &floor_ptr->grid_array[fy][fx];
         if (g_ptr->info & CAVE_MNLT) {
             if ((g_ptr->info & (CAVE_VIEW | CAVE_TEMP)) == CAVE_VIEW) {
                 cave_note_and_redraw_later(floor_ptr, fy, fx);
@@ -373,7 +373,7 @@ void update_mon_lite(PlayerType *player_ptr)
 void clear_mon_lite(FloorType *floor_ptr)
 {
     for (int i = 0; i < floor_ptr->mon_lite_n; i++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[floor_ptr->mon_lite_y[i]][floor_ptr->mon_lite_x[i]];
         g_ptr->info &= ~(CAVE_MNLT | CAVE_MNDK);
     }
index c3b846b..f740870 100644 (file)
@@ -330,7 +330,7 @@ static bool process_explosive_rune(PlayerType *player_ptr, turn_flags *turn_flag
 static bool process_post_dig_wall(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MonsterEntity *m_ptr, POSITION ny, POSITION nx)
 {
     auto *r_ptr = &m_ptr->get_monrace();
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
     TerrainType *f_ptr;
     f_ptr = &terrains_info[g_ptr->feat];
@@ -396,7 +396,7 @@ bool process_monster_movement(PlayerType *player_ptr, turn_flags *turn_flags_ptr
             continue;
         }
 
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
         auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
         auto *r_ptr = &m_ptr->get_monrace();
index 4e06986..9c5b03d 100644 (file)
@@ -153,7 +153,7 @@ void wipe_monsters_list(PlayerType *player_ptr)
  */
 void delete_monster(PlayerType *player_ptr, POSITION y, POSITION x)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     if (!in_bounds(floor_ptr, y, x)) {
         return;
index 50d169f..07bf514 100644 (file)
@@ -43,7 +43,7 @@ static coordinate_candidate sweep_safe_coordinate(PlayerType *player_ptr, MONSTE
         }
 
         auto *r_ptr = &m_ptr->get_monrace();
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[y][x];
 
         BIT_FLAGS16 riding_mode = (m_idx == player_ptr->riding) ? CEM_RIDING : 0;
index 6da7060..857ba56 100644 (file)
@@ -36,7 +36,7 @@ static void compact_monsters_aux(PlayerType *player_ptr, MONSTER_IDX i1, MONSTER
 
     POSITION y = m_ptr->fy;
     POSITION x = m_ptr->fx;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     g_ptr->m_idx = i2;
 
index d09628e..807def1 100644 (file)
@@ -105,7 +105,7 @@ bool raise_possible(PlayerType *player_ptr, MonsterEntity *m_ptr)
     POSITION x = m_ptr->fx;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     for (POSITION xx = x - 5; xx <= x + 5; xx++) {
-        grid_type *g_ptr;
+        Grid *g_ptr;
         for (POSITION yy = y - 5; yy <= y + 5; yy++) {
             if (distance(y, x, yy, xx) > 5) {
                 continue;
index 03251f0..6411f13 100644 (file)
@@ -59,7 +59,7 @@ bool adjacent_grid_check(PlayerType *player_ptr, MonsterEntity *m_ptr, POSITION
     for (int i = 0; i < 8; i++) {
         int next_x = *xp + tonari_x[next][i];
         int next_y = *yp + tonari_y[next][i];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &player_ptr->current_floor_ptr->grid_array[next_y][next_x];
         if (!g_ptr->cave_has_flag(f_flag)) {
             continue;
index 21f69e8..c7c2a8c 100644 (file)
@@ -35,7 +35,7 @@ bool eat_rock(PlayerType *player_ptr)
 
     POSITION y = player_ptr->y + ddy[dir];
     POSITION x = player_ptr->x + ddx[dir];
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
     TerrainType *f_ptr, *mimic_f_ptr;
     f_ptr = &terrains_info[g_ptr->feat];
index ab88a0a..6cdc092 100644 (file)
@@ -10,7 +10,7 @@
 #include "util/flag-group.h"
 #include <string>
 
-struct grid_type;
+class Grid;
 class MonsterEntity;
 class ItemEntity;
 class PlayerType;
@@ -66,7 +66,7 @@ private:
     TrFlags obj_flags{};
     bool come_back = false;
     bool do_drop = true;
-    grid_type *g_ptr{};
+    Grid *g_ptr{};
     MonsterEntity *m_ptr{};
     std::string m_name{};
     int back_chance{};
index f2e12d3..ce0be87 100644 (file)
@@ -108,7 +108,7 @@ bool process_fall_off_horse(PlayerType *player_ptr, int dam, bool force)
             POSITION y = player_ptr->y + ddy_ddd[i];
             POSITION x = player_ptr->x + ddx_ddd[i];
 
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
 
             if (g_ptr->m_idx) {
index 23e3cd6..0e215cf 100644 (file)
@@ -24,7 +24,7 @@ int total_friends = 0;
  * @param now_riding trueなら下馬処理、falseならば騎乗処理
  * @return 可能ならばtrueを返す
  */
-bool can_player_ride_pet(PlayerType *player_ptr, grid_type *g_ptr, bool now_riding)
+bool can_player_ride_pet(PlayerType *player_ptr, Grid *g_ptr, bool now_riding)
 {
     bool old_character_xtra = w_ptr->character_xtra;
     MONSTER_IDX old_riding = player_ptr->riding;
index 0404f0c..c9a2d8d 100644 (file)
@@ -42,8 +42,7 @@ enum pet_permission {
 
 extern int total_friends;
 
-struct grid_type;
-;
+class Grid;
 class PlayerType;
-bool can_player_ride_pet(PlayerType *player_ptr, grid_type *g_ptr, bool now_riding);
+bool can_player_ride_pet(PlayerType *player_ptr, Grid *g_ptr, bool now_riding);
 PERCENTAGE calculate_upkeep(PlayerType *player_ptr);
index 315e69c..7b6338b 100644 (file)
@@ -606,7 +606,7 @@ void exe_player_attack_to_monster(PlayerType *player_ptr, POSITION y, POSITION x
  */
 void massacre(PlayerType *player_ptr)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     MonsterEntity *m_ptr;
     for (DIRECTION dir = 0; dir < 8; dir++) {
         POSITION y = player_ptr->y + ddy_ddd[dir];
index 35020a4..6ea2581 100644 (file)
@@ -35,7 +35,7 @@ enum class MagicalBrandEffectType { NONE = 0,
  * @todo fear とmdeath はポインタである必要はないはず
  */
 enum class MonsterRaceId : short;
-struct grid_type;
+class Grid;
 class FloorType;
 class MonsterRaceInfo;
 class MonsterEntity;
@@ -60,7 +60,7 @@ struct player_attack_type {
     bool *fear; //!< 恐怖したかどうか
     bool *mdeath; //!< 死んだかどうか
     int drain_left; //!< 吸血できる残量(最大MAX_VAMPIRIC_DRAIN)
-    grid_type *g_ptr; //!< ターゲットのいる地形情報
+    Grid *g_ptr; //!< ターゲットのいる地形情報
     chaotic_effect chaos_effect; //!< カオス効果
     MagicalBrandEffectType magical_effect; //!< 魔術効果
 
index e350147..d5f889b 100644 (file)
@@ -68,7 +68,7 @@ POSITION temp2_y[MAX_SHORT];
  */
 static void discover_hidden_things(PlayerType *player_ptr, POSITION y, POSITION x)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     if (g_ptr->mimic && is_trap(player_ptr, g_ptr->feat)) {
@@ -139,7 +139,7 @@ bool move_player_effect(PlayerType *player_ptr, POSITION ny, POSITION nx, BIT_FL
     POSITION ox = player_ptr->x;
     auto *floor_ptr = player_ptr->current_floor_ptr;
     auto *g_ptr = &floor_ptr->grid_array[ny][nx];
-    grid_type *oc_ptr = &floor_ptr->grid_array[oy][ox];
+    Grid *oc_ptr = &floor_ptr->grid_array[oy][ox];
     auto *f_ptr = &terrains_info[g_ptr->feat];
     TerrainType *of_ptr = &terrains_info[oc_ptr->feat];
 
index 08b1646..b4aa1a3 100644 (file)
@@ -165,7 +165,7 @@ static void delayed_visual_update(PlayerType *player_ptr)
     for (int i = 0; i < floor_ptr->redraw_n; i++) {
         POSITION y = floor_ptr->redraw_y[i];
         POSITION x = floor_ptr->redraw_x[i];
-        grid_type *g_ptr;
+        Grid *g_ptr;
         g_ptr = &floor_ptr->grid_array[y][x];
         if (none_bits(g_ptr->info, CAVE_REDRAW)) {
             continue;
index 81319dd..3f5659b 100644 (file)
@@ -30,8 +30,8 @@
 static bool update_view_aux(PlayerType *player_ptr, POSITION y, POSITION x, POSITION y1, POSITION x1, POSITION y2, POSITION x2)
 {
     auto *floor_ptr = player_ptr->current_floor_ptr;
-    grid_type *g1_c_ptr;
-    grid_type *g2_c_ptr;
+    Grid *g1_c_ptr;
+    Grid *g2_c_ptr;
     g1_c_ptr = &floor_ptr->grid_array[y1][x1];
     g2_c_ptr = &floor_ptr->grid_array[y2][x2];
     bool f1 = (feat_supports_los(g1_c_ptr->feat));
@@ -46,7 +46,7 @@ static bool update_view_aux(PlayerType *player_ptr, POSITION y, POSITION x, POSI
         return true;
     }
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     bool wall = (!feat_supports_los(g_ptr->feat));
     bool z1 = (v1 && (g1_c_ptr->info & CAVE_XTRA));
@@ -114,7 +114,7 @@ void update_view(PlayerType *player_ptr)
     POSITION y_max = floor_ptr->height - 1;
     POSITION x_max = floor_ptr->width - 1;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     if (view_reduce_view && !floor_ptr->dun_level) {
         full = MAX_PLAYER_SIGHT / 2;
         over = MAX_PLAYER_SIGHT * 3 / 4;
index 741c747..f8860b4 100644 (file)
@@ -808,7 +808,7 @@ std::optional<std::string> do_hissatsu_spell(PlayerType *player_ptr, SPELL_IDX s
                 POSITION y, x;
                 POSITION ny, nx;
                 MONSTER_IDX m_idx;
-                grid_type *g_ptr;
+                Grid *g_ptr;
                 MonsterEntity *m_ptr;
 
                 y = player_ptr->y + ddy[dir];
index e3e421d..631c239 100644 (file)
@@ -350,7 +350,7 @@ void add_outer_wall(PlayerType *player_ptr, POSITION x, POSITION y, int light, P
         return;
     }
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     if (g_ptr->is_room()) {
         return;
index 8485243..fc17a46 100644 (file)
@@ -71,7 +71,7 @@ static bool precalc_ugarcade(int town_hgt, int town_wid, int n, std::vector<ugbl
 /* Create a new floor room with optional light */
 static void generate_room_floor(PlayerType *player_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int light)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     for (POSITION y = y1; y <= y2; y++) {
         for (POSITION x = x1; x <= x2; x++) {
             g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
index c5dada9..bc08b74 100644 (file)
@@ -110,7 +110,7 @@ void build_maze_vault(PlayerType *player_ptr, POSITION x0, POSITION y0, POSITION
     POSITION x2 = x0 + dx;
     for (POSITION y = y1 - 1; y <= y2 + 1; y++) {
         for (POSITION x = x1 - 1; x <= x2 + 1; x++) {
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
             g_ptr->info |= CAVE_ROOM;
             if (is_vault) {
index db3bc95..9266232 100644 (file)
@@ -26,7 +26,7 @@ bool build_type1(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
     bool light;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
     const auto &dungeon = floor_ptr->get_dungeon_definition();
@@ -204,7 +204,7 @@ bool build_type2(PlayerType *player_ptr, dun_data_type *dd_ptr)
     POSITION y1a, x1a, y2a, x2a;
     POSITION y1b, x1b, y2b, x2b;
     bool light;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* Find and reserve some space in the dungeon.  Get center of room. */
     auto *floor_ptr = player_ptr->current_floor_ptr;
@@ -318,7 +318,7 @@ bool build_type3(PlayerType *player_ptr, dun_data_type *dd_ptr)
     POSITION y1b, x1b, y2b, x2b;
     POSITION yval, xval;
     bool light;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* Find and reserve some space in the dungeon.  Get center of room. */
     auto *floor_ptr = player_ptr->current_floor_ptr;
@@ -558,7 +558,7 @@ bool build_type4(PlayerType *player_ptr, dun_data_type *dd_ptr)
     POSITION y, x, y1, x1;
     POSITION y2, x2, tmp, yval, xval;
     bool light;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* Find and reserve some space in the dungeon.  Get center of room. */
     auto *floor_ptr = player_ptr->current_floor_ptr;
index 263123f..16dd986 100644 (file)
@@ -196,7 +196,7 @@ std::vector<nest_pit_type> nest_types = {
 /*!
  * @todo intをenumに変更する
  */
-static void add_cave_info(grid_type *g_ptr, int cave_mask)
+static void add_cave_info(Grid *g_ptr, int cave_mask)
 {
     g_ptr->info |= cave_mask;
 }
@@ -229,7 +229,7 @@ bool build_type5(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
     MonsterEntity align;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
     int cur_nest_type = pick_vault_type(floor_ptr, nest_types, floor_ptr->get_dungeon_definition().nest);
@@ -473,7 +473,7 @@ bool build_type6(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
     MonsterEntity align;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
     int cur_pit_type = pick_vault_type(floor_ptr, pit_types, floor_ptr->get_dungeon_definition().pit);
@@ -783,7 +783,7 @@ bool build_type13(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
     MonsterEntity align;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
     int cur_pit_type = pick_vault_type(floor_ptr, pit_types, floor_ptr->get_dungeon_definition().pit);
index 391f022..0431b0e 100644 (file)
@@ -34,7 +34,7 @@ bool build_type15(PlayerType *player_ptr, dun_data_type *dd_ptr)
     POSITION y1, x1, xsize, ysize;
     bool light;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* Pick a room size */
     xsize = rand_range(9, 13);
index a09ccd3..41d9251 100644 (file)
@@ -26,7 +26,7 @@ bool build_type14(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
     bool light;
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     int16_t trap;
 
     /* Pick a room size */
index 4ba3282..3137295 100644 (file)
@@ -319,7 +319,7 @@ static void build_vault(
 {
     POSITION dx, dy, x, y, i, j;
     concptr t;
-    grid_type *g_ptr;
+    Grid *g_ptr;
 
     /* Place dungeon features and objects */
     auto *floor_ptr = player_ptr->current_floor_ptr;
index d95018d..546b081 100644 (file)
@@ -16,7 +16,7 @@
 /*
  * Grid based version of "creature_bold()"
  */
-static bool player_grid(PlayerType *player_ptr, grid_type *g_ptr)
+static bool player_grid(PlayerType *player_ptr, Grid *g_ptr)
 {
     return g_ptr == &player_ptr->current_floor_ptr->grid_array[player_ptr->y][player_ptr->x];
 }
@@ -24,7 +24,7 @@ static bool player_grid(PlayerType *player_ptr, grid_type *g_ptr)
 /*
  * Grid based version of "cave_empty_bold()"
  */
-static bool is_cave_empty_grid(PlayerType *player_ptr, grid_type *g_ptr)
+static bool is_cave_empty_grid(PlayerType *player_ptr, Grid *g_ptr)
 {
     bool is_empty_grid = g_ptr->cave_has_flag(TerrainCharacteristics::PLACE);
     is_empty_grid &= g_ptr->m_idx == 0;
@@ -49,7 +49,7 @@ void vault_monsters(PlayerType *player_ptr, POSITION y1, POSITION x1, int num)
             int d = 1;
             POSITION y, x;
             scatter(player_ptr, &y, &x, y1, x1, d, 0);
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
             if (!is_cave_empty_grid(player_ptr, g_ptr)) {
                 continue;
@@ -92,7 +92,7 @@ void vault_objects(PlayerType *player_ptr, POSITION y, POSITION x, int num)
                 msg_print(_("警告!地下室のアイテムを配置できません!", "Warning! Could not place vault object!"));
             }
 
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[j][k];
             if (!g_ptr->is_floor() || !g_ptr->o_idx_list.empty()) {
                 continue;
@@ -120,7 +120,7 @@ void vault_objects(PlayerType *player_ptr, POSITION y, POSITION x, int num)
  */
 static void vault_trap_aux(FloorType *floor_ptr, POSITION y, POSITION x, POSITION yd, POSITION xd)
 {
-    grid_type *g_ptr;
+    Grid *g_ptr;
     int y1 = y, x1 = x;
     int dummy = 0;
     for (int count = 0; count <= 5; count++) {
index f724a39..ca7deb6 100644 (file)
@@ -82,7 +82,7 @@ bool earthquake(PlayerType *player_ptr, POSITION cy, POSITION cx, POSITION r, MO
                 continue;
             }
 
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[yy][xx];
             g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY | CAVE_UNSAFE);
             g_ptr->info &= ~(CAVE_GLOW | CAVE_MARK | CAVE_KNOWN);
@@ -180,7 +180,7 @@ bool earthquake(PlayerType *player_ptr, POSITION cy, POSITION cx, POSITION r, MO
                 continue;
             }
 
-            grid_type *gg_ptr;
+            Grid *gg_ptr;
             gg_ptr = &floor_ptr->grid_array[yy][xx];
             if (gg_ptr->m_idx == player_ptr->riding) {
                 continue;
@@ -342,7 +342,7 @@ bool earthquake(PlayerType *player_ptr, POSITION cy, POSITION cx, POSITION r, MO
                 continue;
             }
 
-            grid_type *cc_ptr;
+            Grid *cc_ptr;
             for (DIRECTION ii = 0; ii < 9; ii++) {
                 POSITION yyy = yy + ddy_ddd[ii];
                 POSITION xxx = xx + ddx_ddd[ii];
index 45a9739..ceafbef 100644 (file)
@@ -47,7 +47,7 @@ void fetch_item(PlayerType *player_ptr, DIRECTION dir, WEIGHT wgt, bool require_
     }
 
     POSITION ty, tx;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     const auto &system = AngbandSystem::get_instance();
     if (dir == 5 && target_okay(player_ptr)) {
         tx = target_col;
index 02af773..67be0dd 100644 (file)
@@ -219,7 +219,7 @@ void map_area(PlayerType *player_ptr, POSITION range)
                 continue;
             }
 
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor.grid_array[y][x];
 
             /* Memorize terrain of the grid */
@@ -304,7 +304,7 @@ bool destroy_area(PlayerType *player_ptr, POSITION y1, POSITION x1, POSITION r,
             if (k > r) {
                 continue;
             }
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
 
             /* Lose room and vault */
@@ -448,7 +448,7 @@ bool destroy_area(PlayerType *player_ptr, POSITION y1, POSITION x1, POSITION r,
             if (k > r) {
                 continue;
             }
-            grid_type *g_ptr;
+            Grid *g_ptr;
             g_ptr = &floor_ptr->grid_array[y][x];
 
             if (g_ptr->is_mirror()) {
@@ -462,7 +462,7 @@ bool destroy_area(PlayerType *player_ptr, POSITION y1, POSITION x1, POSITION r,
 
             DIRECTION i;
             POSITION yy, xx;
-            grid_type *cc_ptr;
+            Grid *cc_ptr;
 
             for (i = 0; i < 9; i++) {
                 yy = y + ddy_ddd[i];
index 1468cb7..957f8cd 100644 (file)
@@ -123,7 +123,7 @@ static void cave_temp_room_unlite(PlayerType *player_ptr, const std::vector<Pos2
                 POSITION bx = x + ddx_ddd[j];
 
                 if (in_bounds2(player_ptr->current_floor_ptr, by, bx)) {
-                    grid_type *cc_ptr = &player_ptr->current_floor_ptr->grid_array[by][bx];
+                    Grid *cc_ptr = &player_ptr->current_floor_ptr->grid_array[by][bx];
 
                     if (terrains_info[cc_ptr->get_feat_mimic()].flags.has(TerrainCharacteristics::GLOW)) {
                         do_dark = false;
index 17cb7e7..d56ee4d 100644 (file)
@@ -70,7 +70,7 @@ bool teleport_swap(PlayerType *player_ptr, DIRECTION dir)
         return false;
     }
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &player_ptr->current_floor_ptr->grid_array[ty][tx];
     if (!g_ptr->m_idx || (g_ptr->m_idx == player_ptr->riding)) {
         msg_print(_("それとは場所を交換できません。", "You can't trade places with that!"));
index 4506b99..fa12e21 100644 (file)
@@ -14,12 +14,12 @@ FloorType::FloorType()
 {
 }
 
-grid_type &FloorType::get_grid(const Pos2D pos)
+Grid &FloorType::get_grid(const Pos2D pos)
 {
     return this->grid_array[pos.y][pos.x];
 }
 
-const grid_type &FloorType::get_grid(const Pos2D pos) const
+const Grid &FloorType::get_grid(const Pos2D pos) const
 {
     return this->grid_array[pos.y][pos.x];
 }
index d1deea5..1f9182a 100644 (file)
@@ -36,14 +36,14 @@ constexpr auto REDRAW_MAX = 2298;
 
 enum class QuestId : short;
 struct dungeon_type;
-struct grid_type;
+class Grid;
 class MonsterEntity;
 class ItemEntity;
 class FloorType {
 public:
     FloorType();
     short dungeon_idx = 0;
-    std::vector<std::vector<grid_type>> grid_array;
+    std::vector<std::vector<Grid>> grid_array;
     DEPTH dun_level = 0; /*!< 現在の実ダンジョン階層 base_level の参照元となる / Current dungeon level */
     DEPTH base_level = 0; /*!< 基本生成レベル、後述のobject_level, monster_levelの参照元となる / Base dungeon level */
     DEPTH object_level = 0; /*!< アイテムの生成レベル、 base_level を起点に一時変更する時に参照 / Current object creation level */
@@ -85,8 +85,8 @@ public:
     QuestId quest_number;
     bool inside_arena = false; /* Is character inside on_defeat_arena_monster? */
 
-    grid_type &get_grid(const Pos2D pos);
-    const grid_type &get_grid(const Pos2D pos) const;
+    Grid &get_grid(const Pos2D pos);
+    const Grid &get_grid(const Pos2D pos) const;
     bool is_in_dungeon() const;
     bool is_in_quest() const;
     void set_dungeon_index(short dungeon_idx_); /*!< @todo 後でenum class にする */
index a91fc5c..6882824 100644 (file)
  * @param X 指定X座標
  * @return FLOOR属性を持っているならばTRUE
  */
-bool grid_type::is_floor() const
+bool Grid::is_floor() const
 {
     return any_bits(this->info, CAVE_FLOOR);
 }
 
-bool grid_type::is_room() const
+bool Grid::is_room() const
 {
     return any_bits(this->info, CAVE_ROOM);
 }
 
-bool grid_type::is_extra() const
+bool Grid::is_extra() const
 {
     return any_bits(this->info, CAVE_EXTRA);
 }
 
-bool grid_type::is_inner() const
+bool Grid::is_inner() const
 {
     return any_bits(this->info, CAVE_INNER);
 }
 
-bool grid_type::is_outer() const
+bool Grid::is_outer() const
 {
     return any_bits(this->info, CAVE_OUTER);
 }
 
-bool grid_type::is_solid() const
+bool Grid::is_solid() const
 {
     return any_bits(this->info, CAVE_SOLID);
 }
 
-bool grid_type::is_icky() const
+bool Grid::is_icky() const
 {
     return any_bits(this->info, CAVE_ICKY);
 }
 
-bool grid_type::is_lite() const
+bool Grid::is_lite() const
 {
     return any_bits(this->info, CAVE_LITE);
 }
 
-bool grid_type::is_redraw() const
+bool Grid::is_redraw() const
 {
     return any_bits(this->info, CAVE_REDRAW);
 }
 
-bool grid_type::is_view() const
+bool Grid::is_view() const
 {
     return any_bits(this->info, CAVE_VIEW);
 }
 
-bool grid_type::is_object() const
+bool Grid::is_object() const
 {
     return any_bits(this->info, CAVE_OBJECT);
 }
 
-bool grid_type::is_mark() const
+bool Grid::is_mark() const
 {
     return any_bits(this->info, CAVE_MARK);
 }
 
-bool grid_type::is_mirror() const
+bool Grid::is_mirror() const
 {
     return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::MIRROR);
 }
@@ -79,7 +79,7 @@ bool grid_type::is_mirror() const
 /*
  *  @brief 守りのルーンで守られているかを返す
  */
-bool grid_type::is_rune_protection() const
+bool Grid::is_rune_protection() const
 {
     return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::RUNE_PROTECTION);
 }
@@ -87,22 +87,22 @@ bool grid_type::is_rune_protection() const
 /*
  *  @brief 爆発のルーンが仕掛けられているかを返す
  */
-bool grid_type::is_rune_explosion() const
+bool Grid::is_rune_explosion() const
 {
     return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::RUNE_EXPLOSION);
 }
 
-byte grid_type::get_cost(const MonsterRaceInfo *r_ptr) const
+byte Grid::get_cost(const MonsterRaceInfo *r_ptr) const
 {
     return this->costs[get_grid_flow_type(r_ptr)];
 }
 
-byte grid_type::get_distance(const MonsterRaceInfo *r_ptr) const
+byte Grid::get_distance(const MonsterRaceInfo *r_ptr) const
 {
     return this->dists[get_grid_flow_type(r_ptr)];
 }
 
-flow_type grid_type::get_grid_flow_type(const MonsterRaceInfo *r_ptr) const
+flow_type Grid::get_grid_flow_type(const MonsterRaceInfo *r_ptr) const
 {
     return r_ptr->feature_flags.has(MonsterFeatureType::CAN_FLY) ? FLOW_CAN_FLY : FLOW_NORMAL;
 }
@@ -112,12 +112,12 @@ flow_type grid_type::get_grid_flow_type(const MonsterRaceInfo *r_ptr) const
  * @param g_ptr グリッドへの参照ポインタ
  * @return 地形情報
  */
-FEAT_IDX grid_type::get_feat_mimic() const
+FEAT_IDX Grid::get_feat_mimic() const
 {
     return terrains_info[this->mimic ? this->mimic : this->feat].mimic;
 }
 
-bool grid_type::cave_has_flag(TerrainCharacteristics feature_flags) const
+bool Grid::cave_has_flag(TerrainCharacteristics feature_flags) const
 {
     return terrains_info[this->feat].flags.has(feature_flags);
 }
@@ -127,26 +127,26 @@ bool grid_type::cave_has_flag(TerrainCharacteristics feature_flags) const
  * @param ch 指定するシンボル文字
  * @return シンボルが指定した記号か否か
  */
-bool grid_type::is_symbol(const int ch) const
+bool Grid::is_symbol(const int ch) const
 {
     return terrains_info[this->feat].x_char[0] == ch;
 }
 
-void grid_type::reset_costs()
+void Grid::reset_costs()
 {
     for (auto &cost : this->costs) {
         cost = 0;
     }
 }
 
-void grid_type::reset_dists()
+void Grid::reset_dists()
 {
     for (auto &dist : this->dists) {
         dist = 0;
     }
 }
 
-bool grid_type::has_los() const
+bool Grid::has_los() const
 {
     return any_bits(this->info, CAVE_VIEW) || AngbandSystem::get_instance().is_phase_out();
 }
index bfbd1ba..c57ac35 100644 (file)
@@ -46,7 +46,7 @@ enum flow_type {
 
 class MonsterRaceInfo;
 enum class TerrainCharacteristics;
-struct grid_type {
+class Grid {
 public:
     BIT_FLAGS info{}; /* Hack -- grid flags */
 
index a722cfe..5d358e8 100644 (file)
@@ -87,20 +87,20 @@ static void tgt_pt_prepare(PlayerType *player_ptr, std::vector<POSITION> &ys, st
 /*!
  * @brief 指定したシンボルのマスかどうかを判定するための条件式コールバック
  */
-std::unordered_map<int, std::function<bool(grid_type *)>> tgt_pt_symbol_call_back = {
-    { '<', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STAIRS) && g_ptr->cave_has_flag(TerrainCharacteristics::LESS); } },
-    { '>', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STAIRS) && g_ptr->cave_has_flag(TerrainCharacteristics::MORE); } },
-    { '+', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::BLDG); } },
-    { '0', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('0'); } },
-    { '!', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('1'); } },
-    { '"', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('2'); } },
-    { '#', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('3'); } },
-    { '$', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('4'); } },
-    { '%', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('5'); } },
-    { '&', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('6'); } },
-    { '\'', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('7'); } },
-    { '(', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('8'); } },
-    { ')', [](grid_type *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('9'); } },
+std::unordered_map<int, std::function<bool(Grid *)>> tgt_pt_symbol_call_back = {
+    { '<', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STAIRS) && g_ptr->cave_has_flag(TerrainCharacteristics::LESS); } },
+    { '>', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STAIRS) && g_ptr->cave_has_flag(TerrainCharacteristics::MORE); } },
+    { '+', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::BLDG); } },
+    { '0', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('0'); } },
+    { '!', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('1'); } },
+    { '"', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('2'); } },
+    { '#', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('3'); } },
+    { '$', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('4'); } },
+    { '%', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('5'); } },
+    { '&', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('6'); } },
+    { '\'', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('7'); } },
+    { '(', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('8'); } },
+    { ')', [](Grid *g_ptr) { return g_ptr->cave_has_flag(TerrainCharacteristics::STORE) && g_ptr->is_symbol('9'); } },
 };
 
 /*!
@@ -123,7 +123,7 @@ struct tgt_pt_info {
     size_t n = 0; //<! シンボル配列の何番目か
     char ch = '\0'; //<! 入力キー
     char prev_ch = '\0'; //<! 前回入力キー
-    std::function<bool(grid_type *)> callback{}; //<! 条件判定コールバック
+    std::function<bool(Grid *)> callback{}; //<! 条件判定コールバック
 
     void move_to_symbol(PlayerType *player_ptr);
 };
index d1c581b..b053f05 100644 (file)
@@ -67,7 +67,7 @@ public:
     char out_val[MAX_NLEN + 80]{};
     OBJECT_IDX floor_list[23]{};
     ITEM_NUMBER floor_num = 0;
-    grid_type *g_ptr;
+    Grid *g_ptr;
     MonsterEntity *m_ptr;
     OBJECT_IDX next_o_idx = 0;
     FEAT_IDX feat = 0;
index eb7ca95..664026f 100644 (file)
@@ -86,7 +86,7 @@ static bool target_set_accept(PlayerType *player_ptr, POSITION y, POSITION x)
         return false;
     }
 
-    grid_type *g_ptr;
+    Grid *g_ptr;
     g_ptr = &floor_ptr->grid_array[y][x];
     if (g_ptr->m_idx) {
         auto *m_ptr = &floor_ptr->m_list[g_ptr->m_idx];
index 0aca699..40c497d 100644 (file)
@@ -45,7 +45,7 @@ struct ts_type {
     bool flag; // 移動コマンド入力時、"interesting" な座標へ飛ぶかどうか
     char query;
     char info[80];
-    grid_type *g_ptr;
+    Grid *g_ptr;
     TERM_LEN wid, hgt;
     int m; // "interesting" な座標たちのうち現在ターゲットしているもののインデックス
     int distance; // カーソルの移動方向 (1,2,3,4,6,7,8,9)
index f432336..ac1fb78 100644 (file)
@@ -121,8 +121,8 @@ bool ang_sort_comp_importance(PlayerType *player_ptr, vptr u, vptr v, int a, int
 {
     POSITION *x = (POSITION *)(u);
     POSITION *y = (POSITION *)(v);
-    grid_type *ca_ptr = &player_ptr->current_floor_ptr->grid_array[y[a]][x[a]];
-    grid_type *cb_ptr = &player_ptr->current_floor_ptr->grid_array[y[b]][x[b]];
+    Grid *ca_ptr = &player_ptr->current_floor_ptr->grid_array[y[a]][x[a]];
+    Grid *cb_ptr = &player_ptr->current_floor_ptr->grid_array[y[b]][x[b]];
     MonsterEntity *ma_ptr = &player_ptr->current_floor_ptr->m_list[ca_ptr->m_idx];
     MonsterEntity *mb_ptr = &player_ptr->current_floor_ptr->m_list[cb_ptr->m_idx];
     MonsterRaceInfo *ap_ra_ptr, *ap_rb_ptr;
index f62c828..5dece70 100644 (file)
@@ -525,7 +525,7 @@ void fix_object(PlayerType *player_ptr)
  * @details
  * Lookコマンドでカーソルを合わせた場合に合わせてミミックは考慮しない。
  */
-static const MonsterEntity *monster_on_floor_items(FloorType *floor_ptr, const grid_type *g_ptr)
+static const MonsterEntity *monster_on_floor_items(FloorType *floor_ptr, const Grid *g_ptr)
 {
     if (g_ptr->m_idx == 0) {
         return nullptr;