OSDN Git Service

[Refactor] #38997 check_local_illumination() に player_type * 引数を追加. / Add player_type...
authordeskull <deskull@users.sourceforge.jp>
Wed, 18 Dec 2019 15:33:42 +0000 (00:33 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Wed, 18 Dec 2019 15:33:42 +0000 (00:33 +0900)
src/geometry.c
src/grid.c
src/grid.h
src/view-mainwindow.c

index 053fb83..6ec2a9d 100644 (file)
@@ -561,7 +561,7 @@ bool player_can_see_bold(POSITION y, POSITION x)
        if (feat_supports_los(get_feat_mimic(g_ptr))) return TRUE;
 
        /* Check for "local" illumination */
-       return check_local_illumination(y, x);
+       return check_local_illumination(p_ptr, y, x);
 }
 
 /*
index fee634e..f0c44a0 100644 (file)
@@ -524,23 +524,23 @@ bool is_hidden_door(grid_type *g_ptr)
  * @param x x座標
  * @return 指定された座標に照明がかかっているならTRUEを返す。。
  */
-bool check_local_illumination(POSITION y, POSITION x)
+bool check_local_illumination(player_type *creature_ptr, POSITION y, POSITION x)
 {
        /* Hack -- move towards player */
-       POSITION yy = (y < p_ptr->y) ? (y + 1) : (y > p_ptr->y) ? (y - 1) : y;
-       POSITION xx = (x < p_ptr->x) ? (x + 1) : (x > p_ptr->x) ? (x - 1) : x;
+       POSITION yy = (y < creature_ptr->y) ? (y + 1) : (y > creature_ptr->y) ? (y - 1) : y;
+       POSITION xx = (x < creature_ptr->x) ? (x + 1) : (x > creature_ptr->x) ? (x - 1) : x;
 
        /* Check for "local" illumination */
 
 #ifdef COMPLEX_WALL_ILLUMINATION /* COMPLEX_WALL_ILLUMINATION */
 
        /* Check for "complex" illumination */
-       if ((feat_supports_los(get_feat_mimic(&p_ptr->current_floor_ptr->grid_array[yy][xx])) &&
-               (p_ptr->current_floor_ptr->grid_array[yy][xx].info & CAVE_GLOW)) ||
-               (feat_supports_los(get_feat_mimic(&p_ptr->current_floor_ptr->grid_array[y][xx])) &&
-               (p_ptr->current_floor_ptr->grid_array[y][xx].info & CAVE_GLOW)) ||
-                       (feat_supports_los(get_feat_mimic(&p_ptr->current_floor_ptr->grid_array[yy][x])) &&
-               (p_ptr->current_floor_ptr->grid_array[yy][x].info & CAVE_GLOW)))
+       if ((feat_supports_los(get_feat_mimic(&creature_ptr->current_floor_ptr->grid_array[yy][xx])) &&
+               (creature_ptr->current_floor_ptr->grid_array[yy][xx].info & CAVE_GLOW)) ||
+               (feat_supports_los(get_feat_mimic(&creature_ptr->current_floor_ptr->grid_array[y][xx])) &&
+               (creature_ptr->current_floor_ptr->grid_array[y][xx].info & CAVE_GLOW)) ||
+                       (feat_supports_los(get_feat_mimic(&creature_ptr->current_floor_ptr->grid_array[yy][x])) &&
+               (creature_ptr->current_floor_ptr->grid_array[yy][x].info & CAVE_GLOW)))
        {
                return TRUE;
        }
@@ -549,7 +549,7 @@ bool check_local_illumination(POSITION y, POSITION x)
 #else /* COMPLEX_WALL_ILLUMINATION */
 
        /* Check for "simple" illumination */
-       return (p_ptr->current_floor_ptr->grid_array[yy][xx].info & CAVE_GLOW) ? TRUE : FALSE;
+       return (creature_ptr->current_floor_ptr->grid_array[yy][xx].info & CAVE_GLOW) ? TRUE : FALSE;
 
 #endif /* COMPLEX_WALL_ILLUMINATION */
 }
@@ -816,7 +816,7 @@ void note_spot(POSITION y, POSITION x)
                }
 
                /* Memorize certain non-torch-lit wall grids */
-               else if (check_local_illumination(y, x))
+               else if (check_local_illumination(p_ptr, y, x))
                {
                        g_ptr->info |= (CAVE_MARK);
                }
index 428abd6..411d01e 100644 (file)
@@ -407,7 +407,7 @@ extern FEAT_IDX feat_state(FEAT_IDX feat, int action);
 extern void cave_alter_feat(POSITION y, POSITION x, int action);
 extern void remove_mirror(POSITION y, POSITION x);
 extern bool is_open(FEAT_IDX feat);
-extern bool check_local_illumination(POSITION y, POSITION x);
+extern bool check_local_illumination(player_type *creature_ptr, POSITION y, POSITION x);
 
 extern bool cave_monster_teleportable_bold(MONSTER_IDX m_idx, POSITION y, POSITION x, BIT_FLAGS mode);
 extern bool cave_player_teleportable_bold(POSITION y, POSITION x, BIT_FLAGS mode);
index 07e86c2..42d2f2b 100644 (file)
@@ -3074,7 +3074,7 @@ void map_info(POSITION y, POSITION x, TERM_COLOR *ap, SYMBOL_CODE *cp, TERM_COLO
                                        }
 
                                        /* Not glowing correctly */
-                                       else if (!have_flag(f_ptr->flags, FF_LOS) && !check_local_illumination(y, x))
+                                       else if (!have_flag(f_ptr->flags, FF_LOS) && !check_local_illumination(p_ptr, y, x))
                                        {
                                                /* Use a darkened colour/tile */
                                                a = f_ptr->x_attr[F_LIT_DARK];