{
cave_type *c_ptr = &cave[y][x];
feature_type *f_ptr = &f_info[feat];
+ bool old_los = cave_have_flag_bold(y, x, FF_LOS);
/* Clear mimic type */
c_ptr->mimic = 0;
/* Redraw */
lite_spot(y, x);
+
+ /* Check if los has changed */
+ if (old_los ^ have_flag(f_ptr->flags, FF_LOS))
+ {
+ /* Update the visuals */
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE | PU_MONSTERS);
+ }
}
/* Hack -- glow the deep lava */
verify_panel();
/* Update stuff */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_DISTANCE);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_DISTANCE);
/* Window stuff */
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
cave_alter_feat(y, x, FF_HURT_DISI);
/* Update some things -- similar to GF_KILL_WALL */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
}
/* Sound */
/* Open the door */
cave_alter_feat(y, x, FF_OPEN);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
/* Sound */
sound(SOUND_OPENDOOR);
/* Open the door */
cave_alter_feat(y, x, FF_OPEN);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
/* Sound */
sound(SOUND_OPENDOOR);
}
}
else
{
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
/* Sound */
sound(SOUND_SHUTDOOR);
}
cave_alter_feat(y, x, FF_TUNNEL);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
}
else
{
{
#ifdef JP
if (tree) msg_format("%s¤òÀÚ¤êʧ¤Ã¤¿¡£", name);
- else msg_print("·ê¤ò·¡¤ê½ª¤¨¤¿¡£");
+ else
+ {
+ msg_print("·ê¤ò·¡¤ê½ª¤¨¤¿¡£");
+ p_ptr->update |= (PU_FLOW);
+ }
#else
if (tree) msg_format("You have cleared away the %s.", name);
- else msg_print("You have finished the tunnel.");
+ else
+ {
+ msg_print("You have finished the tunnel.");
+ p_ptr->update |= (PU_FLOW);
+ }
#endif
/* Remove the feature */
cave_alter_feat(y, x, FF_TUNNEL);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
-
chg_virtue(V_DILIGENCE, 1);
chg_virtue(V_NATURE, -1);
}
msg_print("You have picked the lock.");
#endif
-
/* Open the door */
cave_alter_feat(y, x, FF_OPEN);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
/* Sound */
sound(SOUND_OPENDOOR);
/* Open the door */
cave_alter_feat(y, x, FF_OPEN);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
/* Sound */
sound(SOUND_OPENDOOR);
}
/* Hack -- Fall through the door */
move_player(dir, FALSE, FALSE);
-
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE);
- p_ptr->update |= (PU_DISTANCE);
}
/* Saving throw against stun */
#else
msg_print("'U'nnamed means all your pets except named pets and your mount.");
#endif
-
- p_ptr->update |= (PU_MON_LITE);
}
static bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
p_ptr->update |= (PU_BONUS);
/* Update stuff */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_DISTANCE);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
/* Window stuff */
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
cave_alter_feat(y, x, FF_HURT_ROCK);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
break;
}
}
/* Handle viewable doors */
- if (player_has_los_bold(ny, nx)) do_view = TRUE;
+ do_view = TRUE;
}
}
cave_alter_feat(ny, nx, FF_HURT_DISI);
/* Note changes to viewable region */
- if (player_has_los_bold(ny, nx)) do_view = TRUE;
+ do_view = TRUE;
}
else if (have_flag(f_ptr->flags, FF_TREE))
{
if (do_view)
{
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
/* Window stuff */
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
/* Destroy the wall */
cave_alter_feat(y, x, FF_HURT_ROCK);
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
- p_ptr->window |= (PW_OVERHEAD);
+ p_ptr->update |= (PU_FLOW);
}
}
/**********Create arrows*********/
/* Observe */
if (c_ptr->info & (CAVE_MARK)) obvious = TRUE;
-
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
}
}
obvious = TRUE;
}
- /* Visibility change */
- if (have_flag(f_ptr->flags, FF_DOOR))
- {
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
- }
-
/* Destroy the feature */
cave_alter_feat(y, x, FF_TUNNEL);
}
cave_alter_feat(y, x, FF_HURT_ROCK);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
}
break;
/* Observe */
if (c_ptr->info & (CAVE_MARK)) obvious = TRUE;
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
break;
}
/* Observe */
if (c_ptr->info & (CAVE_MARK)) obvious = TRUE;
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
break;
}
/* Place a wall */
cave_set_feat(y, x, FEAT_WALL);
- /* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
-
break;
}
cave_alter_feat(y, x, FF_HURT_DISI);
/* Update some things -- similar to GF_KILL_WALL */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
}
break;
}
p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE);
/* Update stuff */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
/* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE);
/* Update stuff */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_DISTANCE);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
/* Update the health bar */
p_ptr->redraw |= (PR_HEALTH | PR_UHEALTH);
bool dummy = (project(0, 1, py, px, 0, GF_STONE_WALL, flg, -1));
/* Update stuff */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
+ p_ptr->update |= (PU_FLOW);
/* Redraw map */
p_ptr->redraw |= (PR_MAP);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
-
return dummy;
}
lite_spot(y, x);
/* Update some things */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
prev_feat = tmp_feat;
prev_mimic = tmp_mimic;
/* Notice changes in the "lite radius" */
if (p_ptr->old_lite != p_ptr->cur_lite)
{
- /* Update the lite */
+ /* Update stuff */
/* Hack -- PU_MON_LITE for monsters' darkness */
- p_ptr->update |= (PU_LITE | PU_MON_LITE);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
+ p_ptr->update |= (PU_LITE | PU_MON_LITE | PU_MONSTERS);
/* Remember the old lite */
p_ptr->old_lite = p_ptr->cur_lite;
cave_set_feat(y, x, FEAT_MORE);
/* Remember to update everything */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+ p_ptr->update |= (PU_FLOW);
}
/*