*/
if (!has_flag(f_ptr->flags, FF_MOVE) && !has_flag(f_ptr->flags, FF_CAN_FLY)) {
if (!is_invuln(creature_ptr) && !creature_ptr->wraith_form && !creature_ptr->tim_pass_wall
- && ((creature_ptr->chp > (creature_ptr->lev / 5)) || !creature_ptr->pass_wall)) {
+ && ((creature_ptr->chp > (creature_ptr->lev / 5)) || !has_pass_wall(creature_ptr))) {
concptr dam_desc;
cave_no_regen = TRUE;
- if (creature_ptr->pass_wall) {
+ if (has_pass_wall(creature_ptr)) {
msg_print(_("体の分子が分解した気がする!", "Your molecules feel disrupted!"));
dam_desc = _("密度", "density");
} else {
return TRUE;
if (has_flag(f_ptr->flags, FF_CAN_SWIM) && creature_ptr->can_swim)
return TRUE;
- if (has_flag(f_ptr->flags, FF_CAN_PASS) && creature_ptr->pass_wall)
+ if (has_flag(f_ptr->flags, FF_CAN_PASS) && has_pass_wall(creature_ptr))
return TRUE;
if (!has_flag(f_ptr->flags, FF_MOVE))
#include "spell/range-calc.h"
#include "system/floor-type-definition.h"
#include "target/projection-path-calculator.h"
+#include "player/player-status-flags.h"
/*!
* @brief ペットが敵に接近するための方向を決定する
if (decide_pet_approch_direction(target_ptr, m_ptr, t_ptr)) continue;
if (!are_enemies(target_ptr, m_ptr, t_ptr)) continue;
- if (((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || target_ptr->pass_wall)) ||
+ if (((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || has_pass_wall(target_ptr))) ||
((r_ptr->flags2 & RF2_KILL_WALL) && (m_idx != target_ptr->riding)))
{
if (!in_disintegration_range(floor_ptr, m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx)) continue;
#include "target/projection-path-calculator.h"
#include "util/bit-flags-calculator.h"
#include "view/display-messages.h"
+#include "player/player-status-flags.h"
static bool check_hp_for_feat_destruction(feature_type *f_ptr, monster_type *m_ptr)
{
return FALSE;
turn_flags_ptr->do_move = TRUE;
- if (((r_ptr->flags2 & RF2_PASS_WALL) != 0) && (!turn_flags_ptr->is_riding_mon || target_ptr->pass_wall) && has_flag(f_ptr->flags, FF_CAN_PASS)) {
+ if (((r_ptr->flags2 & RF2_PASS_WALL) != 0) && (!turn_flags_ptr->is_riding_mon || has_pass_wall(target_ptr))
+ && has_flag(f_ptr->flags, FF_CAN_PASS)) {
turn_flags_ptr->did_pass_wall = TRUE;
}
#include "mspell/mspell-mask-definitions.h"
#include "system/floor-type-definition.h"
#include "target/projection-path-calculator.h"
+#include "player/player-status-flags.h"
/*!
* @brief モンスターがプレイヤーから逃走するかどうかを返す /
grid_type *g_ptr;
g_ptr = &floor_ptr->grid_array[y][x];
int cost = g_ptr->cost;
- if (!(((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || target_ptr->pass_wall)) || ((r_ptr->flags2 & RF2_KILL_WALL) && (m_idx != target_ptr->riding))))
+ if (!(((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || has_pass_wall(target_ptr))) || ((r_ptr->flags2 & RF2_KILL_WALL) && (m_idx != target_ptr->riding))))
{
if (cost == 0) continue;
if (!can_open_door && is_closed_door(target_ptr, g_ptr->feat)) continue;
}
if (no_flow) return;
- if ((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || target_ptr->pass_wall)) return;
+ if ((r_ptr->flags2 & RF2_PASS_WALL) && ((m_idx != target_ptr->riding) || has_pass_wall(target_ptr))) return;
if ((r_ptr->flags2 & RF2_KILL_WALL) && (m_idx != target_ptr->riding)) return;
POSITION y1 = m_ptr->fy;
bool will_run = mon_will_run(target_ptr, m_idx);
grid_type *g_ptr;
bool no_flow = ((m_ptr->mflag2 & MFLAG2_NOFLOW) != 0) && (floor_ptr->grid_array[m_ptr->fy][m_ptr->fx].cost > 2);
- bool can_pass_wall = ((r_ptr->flags2 & RF2_PASS_WALL) != 0) && ((m_idx != target_ptr->riding) || target_ptr->pass_wall);
+ bool can_pass_wall = ((r_ptr->flags2 & RF2_PASS_WALL) != 0) && ((m_idx != target_ptr->riding) || has_pass_wall(target_ptr));
if (!will_run && m_ptr->target_y)
{
#include "monster/smart-learn-types.h"
#include "system/floor-type-definition.h"
#include "util/bit-flags-calculator.h"
+#include "player/player-status-flags.h"
/*!
* @brief モンスターを友好的にする
if (has_flag(f_ptr->flags, FF_CAN_SWIM) && (r_ptr->flags7 & RF7_CAN_SWIM))
return TRUE;
if (has_flag(f_ptr->flags, FF_CAN_PASS)) {
- if ((r_ptr->flags2 & RF2_PASS_WALL) && (!(mode & CEM_RIDING) || player_ptr->pass_wall))
+ if ((r_ptr->flags2 & RF2_PASS_WALL) && (!(mode & CEM_RIDING) || has_pass_wall(player_ptr)))
return TRUE;
}
creature_ptr->no_flowed = FALSE;
- if (creature_ptr->pass_wall && !creature_ptr->kill_wall)
+ if (has_pass_wall(creature_ptr) && !creature_ptr->kill_wall)
creature_ptr->no_flowed = TRUE;
for (int i = 0; i < INVEN_PACK; i++) {
ARMOUR_CLASS old_dis_ac = creature_ptr->dis_ac;
ARMOUR_CLASS old_dis_to_a = creature_ptr->dis_to_a;
- creature_ptr->pass_wall = has_pass_wall(creature_ptr);
creature_ptr->kill_wall = has_kill_wall(creature_ptr);
creature_ptr->xtra_might = has_xtra_might(creature_ptr);
creature_ptr->esp_evil = has_esp_evil(creature_ptr);
BIT_FLAGS bless_blade; /* Blessed blade */
BIT_FLAGS xtra_might; /* Extra might bow */
BIT_FLAGS impact; /* Earthquake blows */
- bool pass_wall; /* Permanent wraithform */
bool kill_wall;
BIT_FLAGS dec_mana;
BIT_FLAGS easy_spell;
#include "player/player-damage.h"
#include "player/player-move.h"
#include "player/special-defense-types.h"
+#include "player/player-status-flags.h"
#include "system/floor-type-definition.h"
#include "util/bit-flags-calculator.h"
#include "view/display-messages.h"
int sn = 0;
POSITION sy = 0, sx = 0;
- if (hurt && !caster_ptr->pass_wall && !caster_ptr->kill_wall) {
+ if (hurt && !has_pass_wall(caster_ptr) && !caster_ptr->kill_wall) {
for (DIRECTION i = 0; i < 8; i++) {
POSITION y = caster_ptr->y + ddy_ddd[i];
POSITION x = caster_ptr->x + ddx_ddd[i];