/* Initialize arena and rewards information -KMW- */
creature_ptr->arena_number = 0;
- creature_ptr->inside_arena = FALSE;
+ creature_ptr->current_floor_ptr->inside_arena = FALSE;
creature_ptr->current_floor_ptr->inside_quest = 0;
for (i = 0; i < MAX_MANE; i++)
{
/* Save the surface floor as saved floor */
prepare_change_floor_mode(CFM_SAVE_FLOORS);
- p_ptr->inside_arena = TRUE;
+ p_ptr->current_floor_ptr->inside_arena = TRUE;
p_ptr->leaving = TRUE;
p_ptr->leave_bldg = TRUE;
}
/* Save the surface floor as saved floor */
prepare_change_floor_mode(CFM_SAVE_FLOORS);
- p_ptr->inside_arena = TRUE;
+ p_ptr->current_floor_ptr->inside_arena = TRUE;
p_ptr->leaving = TRUE;
p_ptr->leave_bldg = TRUE;
}
msg_print(_("「敗者に用はない。」", "'There's no place here for a LOSER like you!'"));
return;
}
- else if ((which == 2) && p_ptr->inside_arena)
+ else if ((which == 2) && p_ptr->current_floor_ptr->inside_arena)
{
if (!p_ptr->exit_bldg && p_ptr->current_floor_ptr->m_cnt > 0)
{
/* Don't save the arena as saved floor */
prepare_change_floor_mode(CFM_SAVE_FLOORS | CFM_NO_RETURN);
- p_ptr->inside_arena = FALSE;
+ p_ptr->current_floor_ptr->inside_arena = FALSE;
p_ptr->leaving = TRUE;
/* Re-enter the arena */
if (command == ESCAPE)
{
p_ptr->leave_bldg = TRUE;
- p_ptr->inside_arena = FALSE;
+ p_ptr->current_floor_ptr->inside_arena = FALSE;
p_ptr->phase_out = FALSE;
break;
}
bool cmd_limit_arena(player_type *creature_ptr)
{
- if (creature_ptr->inside_arena)
+ if (creature_ptr->current_floor_ptr->inside_arena)
{
msg_print(_("アリーナが魔法を吸収した!", "The arena absorbs all attempted magic!"));
msg_print(NULL);
return FALSE;
}
- if (creature_ptr->inside_arena && !boomerang)
+ if (creature_ptr->current_floor_ptr->inside_arena && !boomerang)
{
if (o_ptr->tval != TV_SPIKE)
{
j = (hit_body ? breakage_chance(q_ptr, creature_ptr->pclass == CLASS_ARCHER, 0) : 0);
/* Figurines transform */
- if ((q_ptr->tval == TV_FIGURINE) && !(creature_ptr->inside_arena))
+ if ((q_ptr->tval == TV_FIGURINE) && !(creature_ptr->current_floor_ptr->inside_arena))
{
j = 100;
if (write_level)
{
- if (creature_ptr->inside_arena)
+ if (creature_ptr->current_floor_ptr->inside_arena)
note_level = _("アリーナ:", "Arane:");
else if (!creature_ptr->current_floor_ptr->dun_level)
note_level = _("地上:", "Surface:");
/* Always notice cause of death */
- if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->inside_arena)
+ if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->current_floor_ptr->inside_arena)
{
r_ptr->r_deaths++;
}
if (hex_spelling_any(creature_ptr)) stop_hex_spell_all();
}
- if ((creature_ptr->muta2 & MUT2_WALK_SHAD) && !creature_ptr->anti_magic && one_in_(12000) && !creature_ptr->inside_arena)
+ if ((creature_ptr->muta2 & MUT2_WALK_SHAD) && !creature_ptr->anti_magic && one_in_(12000) && !creature_ptr->current_floor_ptr->inside_arena)
{
alter_reality();
}
p_ptr->current_floor_ptr->dun_level = 0;
p_ptr->dungeon_idx = 0;
prepare_change_floor_mode(CFM_FIRST_FLOOR | CFM_RAND_PLACE);
- p_ptr->inside_arena = FALSE;
+ p_ptr->current_floor_ptr->inside_arena = FALSE;
p_ptr->wild_mode = FALSE;
p_ptr->leaving = TRUE;
}
/*** Handle the wilderness/town (sunshine) ***/
/* While in town/wilderness */
- if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out && !p_ptr->inside_arena)
+ if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out && !p_ptr->current_floor_ptr->inside_arena)
{
/* Hack -- Daybreak/Nighfall in town */
if (!(current_world_ptr->game_turn % ((TURNS_PER_TICK * TOWN_DAWN) / 2)))
}
/* While in the dungeon (vanilla_town or lite_town mode only) */
- else if ((vanilla_town || (lite_town && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out && !p_ptr->inside_arena)) && p_ptr->current_floor_ptr->dun_level)
+ else if ((vanilla_town || (lite_town && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out && !p_ptr->current_floor_ptr->inside_arena)) && p_ptr->current_floor_ptr->dun_level)
{
/*** Shuffle the Storekeepers ***/
/* Check for creature generation. */
if (one_in_(d_info[p_ptr->dungeon_idx].max_m_alloc_chance) &&
- !p_ptr->inside_arena && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out)
+ !p_ptr->current_floor_ptr->inside_arena && !p_ptr->current_floor_ptr->inside_quest && !p_ptr->phase_out)
{
/* Make a new monster */
(void)alloc_monster(MAX_SIGHT + 5, 0);
/* Go up staircase */
case '<':
{
- if (!creature_ptr->wild_mode && !p_ptr->current_floor_ptr->dun_level && !creature_ptr->inside_arena && !creature_ptr->current_floor_ptr->inside_quest)
+ if (!creature_ptr->wild_mode && !p_ptr->current_floor_ptr->dun_level && !creature_ptr->current_floor_ptr->inside_arena && !creature_ptr->current_floor_ptr->inside_quest)
{
if (vanilla_town) break;
current_world_ptr->is_loading_now = TRUE;
if (p_ptr->energy_need > 0 && !p_ptr->phase_out &&
- (p_ptr->current_floor_ptr->dun_level || p_ptr->leaving_dungeon || p_ptr->inside_arena))
+ (p_ptr->current_floor_ptr->dun_level || p_ptr->leaving_dungeon || p_ptr->current_floor_ptr->inside_arena))
p_ptr->energy_need = 0;
/* Not leaving dungeon */
/* Start in town */
p_ptr->current_floor_ptr->dun_level = 0;
p_ptr->current_floor_ptr->inside_quest = 0;
- p_ptr->inside_arena = FALSE;
+ p_ptr->current_floor_ptr->inside_arena = FALSE;
p_ptr->phase_out = FALSE;
write_level = TRUE;
/* Accidental Death */
if (p_ptr->playing && p_ptr->is_dead)
{
- if (p_ptr->inside_arena)
+ if (p_ptr->current_floor_ptr->inside_arena)
{
- p_ptr->inside_arena = FALSE;
+ p_ptr->current_floor_ptr->inside_arena = FALSE;
if (p_ptr->arena_number > MAX_ARENA_MONS)
p_ptr->arena_number++;
else
clear_cave(floor_ptr);
- if (p_ptr->inside_arena)
+ if (p_ptr->current_floor_ptr->inside_arena)
{
generate_challenge_arena(floor_ptr);
}
* If player is in wild mode, no pets are preserved
* except a monster whom player riding
*/
- if (!p_ptr->wild_mode && !p_ptr->inside_arena && !p_ptr->phase_out)
+ if (!p_ptr->wild_mode && !p_ptr->current_floor_ptr->inside_arena && !p_ptr->phase_out)
{
for (i = p_ptr->current_floor_ptr->m_max - 1, num = 1; (i >= 1 && num < MAX_PARTY_MON); i--)
{
bool monster_noise;
QUEST_IDX inside_quest; /* Inside quest level */
+ bool inside_arena; /* Is character inside arena? */
} floor_type;
if (p_ptr->arena_number >= 99) p_ptr->arena_number = ARENA_DEFEATED_OLD_VER;
}
rd_s16b(&tmp16s);
- p_ptr->inside_arena = (bool)tmp16s;
+ p_ptr->current_floor_ptr->inside_arena = (bool)tmp16s;
rd_s16b(&p_ptr->current_floor_ptr->inside_quest);
if (z_older_than(10, 3, 5)) p_ptr->phase_out = FALSE;
else
rd_s16b(&tmp16s);
p_ptr->oldpy = (POSITION)tmp16s;
- if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->inside_arena) {p_ptr->oldpy = 33;p_ptr->oldpx = 131;}
+ if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_arena) {p_ptr->oldpy = 33;p_ptr->oldpx = 131;}
/* Was p_ptr->rewards[MAX_BACT] */
rd_s16b(&tmp16s);
p_ptr->y = (POSITION)tmp16s;
rd_s16b(&tmp16s);
p_ptr->x = (POSITION)tmp16s;
- if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->inside_arena) {p_ptr->y = 33;p_ptr->x = 131;}
+ if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_arena) {p_ptr->y = 33;p_ptr->x = 131;}
rd_s16b(&tmp16s);
p_ptr->current_floor_ptr->height = (POSITION)tmp16s;
rd_s16b(&tmp16s);
/*** Success ***/
/* The dungeon is ready */
- if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->inside_arena)
+ if (z_older_than(10, 3, 13) && !p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_arena)
current_world_ptr->character_dungeon = FALSE;
else
current_world_ptr->character_dungeon = TRUE;
/* Hack -- Ohmu scatters molds! */
if (m_ptr->r_idx == MON_OHMU)
{
- if (!p_ptr->inside_arena && !p_ptr->phase_out)
+ if (!p_ptr->current_floor_ptr->inside_arena && !p_ptr->phase_out)
{
if (r_ptr->freq_spell && (randint1(100) <= r_ptr->freq_spell))
{
if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
{
- if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->ambush_flag && !p_ptr->inside_arena)
+ if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->ambush_flag && !p_ptr->current_floor_ptr->inside_arena)
{
chg_virtue(p_ptr, V_VALOUR, -1);
}
monster_death(m_idx, TRUE);
/* Mega hack : replace IKETA to BIKETAL */
- if ((m_ptr->r_idx == MON_IKETA) && !(p_ptr->inside_arena || p_ptr->phase_out))
+ if ((m_ptr->r_idx == MON_IKETA) && !(p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out))
{
POSITION dummy_y = m_ptr->fy;
POSITION dummy_x = m_ptr->fx;
object_type forge;
object_type *q_ptr;
- bool drop_chosen_item = drop_item && !cloned && !p_ptr->inside_arena
+ bool drop_chosen_item = drop_item && !cloned && !p_ptr->current_floor_ptr->inside_arena
&& !p_ptr->phase_out && !is_pet(m_ptr);
/* The caster is dead? */
check_quest_completion(m_ptr);
/* Handle the possibility of player vanquishing arena combatant -KMW- */
- if (p_ptr->inside_arena && !is_pet(m_ptr))
+ if (p_ptr->current_floor_ptr->inside_arena && !is_pet(m_ptr))
{
p_ptr->exit_bldg = TRUE;
/* Drop a dead corpse? */
if (one_in_(r_ptr->flags1 & RF1_UNIQUE ? 1 : 4) &&
(r_ptr->flags9 & (RF9_DROP_CORPSE | RF9_DROP_SKELETON)) &&
- !(p_ptr->inside_arena || p_ptr->phase_out || cloned || ((m_ptr->r_idx == today_mon) && is_pet(m_ptr))))
+ !(p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out || cloned || ((m_ptr->r_idx == today_mon) && is_pet(m_ptr))))
{
/* Assume skeleton */
bool corpse = FALSE;
{
case MON_PINK_HORROR:
/* Pink horrors are replaced with 2 Blue horrors */
- if (!(p_ptr->inside_arena || p_ptr->phase_out))
+ if (!(p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out))
{
bool notice = FALSE;
* Mega^3-hack: killing a 'Warrior of the Dawn' is likely to
* spawn another in the fallen one's place!
*/
- if (!p_ptr->inside_arena && !p_ptr->phase_out)
+ if (!p_ptr->current_floor_ptr->inside_arena && !p_ptr->phase_out)
{
if (!one_in_(7))
{
if (cloned && !(r_ptr->flags1 & RF1_UNIQUE))
number = 0; /* Clones drop no stuff unless Cloning Pits */
- if (is_pet(m_ptr) || p_ptr->phase_out || p_ptr->inside_arena)
+ if (is_pet(m_ptr) || p_ptr->phase_out || p_ptr->current_floor_ptr->inside_arena)
number = 0; /* Pets drop no stuff */
if (!drop_item && (r_ptr->d_char != '$')) number = 0;
SPEED mspeed = r_ptr->speed;
/* Hack -- small racial variety */
- if (!(r_ptr->flags1 & RF1_UNIQUE) && !p_ptr->inside_arena)
+ if (!(r_ptr->flags1 & RF1_UNIQUE) && !p_ptr->current_floor_ptr->inside_arena)
{
/* Allow some small variation per monster */
int i = SPEED_TO_ENERGY(r_ptr->speed) / (one_in_(4) ? 3 : 10);
POSITION x, y;
MONRACE_IDX r_idx;
- if (p_ptr->inside_arena) return (FALSE);
+ if (p_ptr->current_floor_ptr->inside_arena) return (FALSE);
if (!mon_scatter(0, &y, &x, y1, x1, 2)) return FALSE;
/* Prevent illegal monsters */
if (r_idx >= max_r_idx) return FALSE;
- if (p_ptr->inside_arena) return FALSE;
+ if (p_ptr->current_floor_ptr->inside_arena) return FALSE;
if (!mon_scatter(r_idx, &y, &x, oy, ox, 2)) return FALSE;
/* Remove the "ineffective" spells */
remove_bad_spells(m_idx, &f4, &f5, &f6);
- if (target_ptr->inside_arena || target_ptr->phase_out)
+ if (target_ptr->current_floor_ptr->inside_arena || target_ptr->phase_out)
{
f4 &= ~(RF4_SUMMON_MASK);
f5 &= ~(RF5_SUMMON_MASK);
/* Always take note of monsters that kill you */
- if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->inside_arena)
+ if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->current_floor_ptr->inside_arena)
{
r_ptr->r_deaths++; /* Ignore appearance difference */
}
f6 &= (RF6_NOMAGIC_MASK);
}
- if (p_ptr->inside_arena || p_ptr->phase_out)
+ if (p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out)
{
f4 &= ~(RF4_SUMMON_MASK);
f5 &= ~(RF5_SUMMON_MASK);
}
/* Always take note of monsters that kill you */
- if (p_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !p_ptr->inside_arena)
+ if (p_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !p_ptr->current_floor_ptr->inside_arena)
{
r_ptr->r_deaths++; /* Ignore appearance difference */
}
dummy_hp = (m_ptr->hp + 1) / 2;
dummy_maxhp = m_ptr->maxhp / 2;
- if (p_ptr->inside_arena || p_ptr->phase_out || !summon_possible(m_ptr->fy, m_ptr->fx))
+ if (p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out || !summon_possible(m_ptr->fy, m_ptr->fx))
return -1;
delete_monster_idx(p_ptr->current_floor_ptr->grid_array[m_ptr->fy][m_ptr->fx].m_idx);
if ((r_ptr->flags3 & RF3_EVIL) &&
!(r_ptr->flags1 & RF1_QUESTOR) &&
!(r_ptr->flags1 & RF1_UNIQUE) &&
- !creature_ptr->inside_arena && !creature_ptr->current_floor_ptr->inside_quest &&
+ !creature_ptr->current_floor_ptr->inside_arena && !creature_ptr->current_floor_ptr->inside_quest &&
(r_ptr->level < randint1(creature_ptr->lev+50)) &&
!(m_ptr->mflag2 & MFLAG2_NOGENO))
{
if (CHECK_MULTISHADOW(p_ptr)) return 0;
- if (p_ptr->inside_arena) return 0;
+ if (p_ptr->current_floor_ptr->inside_arena) return 0;
/* Count the casualties */
k = 0;
/* Note death */
creature_ptr->is_dead = TRUE;
- if (creature_ptr->inside_arena)
+ if (creature_ptr->current_floor_ptr->inside_arena)
{
concptr m_name = r_name + r_info[arena_info[creature_ptr->arena_number].r_idx].name;
msg_format(_("あなたは%sの前に敗れ去った。", "You are beaten by %s."), m_name);
{
char buf[20];
- if (creature_ptr->inside_arena)
+ if (creature_ptr->current_floor_ptr->inside_arena)
strcpy(buf, _("アリーナ", "in the Arena"));
else if (!p_ptr->current_floor_ptr->dun_level)
strcpy(buf, _("地上", "on the surface"));
(void)set_food(creature_ptr, PY_FOOD_MAX - 1);
p_ptr->current_floor_ptr->dun_level = 0;
- creature_ptr->inside_arena = FALSE;
+ creature_ptr->current_floor_ptr->inside_arena = FALSE;
creature_ptr->phase_out = FALSE;
leaving_quest = 0;
creature_ptr->current_floor_ptr->inside_quest = 0;
TOWN_IDX town_num; /* Current town number */
s16b arena_number; /* monster number in arena -KMW- */
- bool inside_arena; /* Is character inside arena? */
bool phase_out; /*!< フェイズアウト状態(闘技場観戦状態などに利用、NPCの処理の対象にならず自身もほとんどの行動ができない) */
DUNGEON_IDX dungeon_idx; /* current dungeon index */
/* Write arena and rewards information -KMW- */
wr_s16b(p_ptr->arena_number);
- wr_s16b(p_ptr->inside_arena);
+ wr_s16b(p_ptr->current_floor_ptr->inside_arena);
wr_s16b(p_ptr->current_floor_ptr->inside_quest);
wr_s16b(p_ptr->phase_out);
wr_byte(p_ptr->exit_bldg);
{
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- if (p_ptr->inside_arena) return TRUE;
+ if (p_ptr->current_floor_ptr->inside_arena) return TRUE;
/* Memorize a flag */
if (r_ptr->flagsr & RFR_RES_ALL)
{
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- if (p_ptr->inside_arena) return TRUE;
+ if (p_ptr->current_floor_ptr->inside_arena) return TRUE;
/* Memorize a flag */
if (r_ptr->flagsr & RFR_RES_ALL)
/* No effect out of standard dungeon floor */
if (!floor_ptr->dun_level || (!up && !down) ||
(caster_ptr->current_floor_ptr->inside_quest && is_fixed_quest_idx(caster_ptr->current_floor_ptr->inside_quest)) ||
- caster_ptr->inside_arena || caster_ptr->phase_out)
+ caster_ptr->current_floor_ptr->inside_arena || caster_ptr->phase_out)
{
/* arena or quest */
msg_print(_("効果がありません!", "There is no effect!"));
/* Is "teleport level" ineffective to this target? */
#define TELE_LEVEL_IS_INEFF(TARGET) \
- (p_ptr->inside_arena || p_ptr->phase_out || \
+ (p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out || \
(p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || \
(((TARGET) <= 0) && (quest_number(p_ptr->current_floor_ptr->dun_level) || (p_ptr->current_floor_ptr->dun_level >= d_info[p_ptr->dungeon_idx].maxdepth)) && \
(p_ptr->current_floor_ptr->dun_level >= 1) && ironman_downward))
{
if (seen) obvious = TRUE;
- if ((p_ptr->inside_arena) || is_pet(m_ptr) || (r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) || (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)))
+ if ((p_ptr->current_floor_ptr->inside_arena) || is_pet(m_ptr) || (r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) || (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)))
{
note = _("には効果がなかった。", " is unaffected.");
}
bool success = FALSE;
if (seen) obvious = TRUE;
- if ((r_ptr->flags3 & (RF3_GOOD)) && !p_ptr->inside_arena)
+ if ((r_ptr->flags3 & (RF3_GOOD)) && !p_ptr->current_floor_ptr->inside_arena)
{
if (r_ptr->flags3 & (RF3_NO_CONF)) dam -= 50;
if (dam < 1) dam = 1;
if (r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) resist = TRUE;
else if (r_ptr->flags7 & RF7_UNIQUE2) resist = TRUE;
else if (m_idx == p_ptr->riding) resist = TRUE;
- else if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->inside_arena || p_ptr->phase_out) resist = TRUE;
+ else if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out) resist = TRUE;
else if (player_cast && (r_ptr->level > randint0(power))) resist = TRUE;
else if (player_cast && (m_ptr->mflag2 & MFLAG2_NOGENO)) resist = TRUE;
bool result = FALSE;
/* Prevent genocide in quest levels */
- if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->inside_arena || p_ptr->phase_out)
+ if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out)
{
msg_print(_("何も起きないようだ……", "It seems nothing happen here..."));
return (FALSE);
bool result = FALSE;
/* Prevent mass genocide in quest levels */
- if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->inside_arena || p_ptr->phase_out)
+ if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out)
{
return (FALSE);
}
bool result = FALSE;
/* Prevent mass genocide in quest levels */
- if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->inside_arena || p_ptr->phase_out)
+ if ((p_ptr->current_floor_ptr->inside_quest && !random_quest_number(p_ptr->current_floor_ptr->dun_level)) || p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out)
{
return (FALSE);
}
if (r_ptr->flags1 & RF1_UNIQUE) rlev = rlev * 3 / 2;
if (rlev > 60) rlev = 60 + (rlev - 60) / 2;
if ((randint1(creature_ptr->skill_exp[GINOU_RIDING] / 120 + creature_ptr->lev * 2 / 3) > rlev)
- && one_in_(2) && !creature_ptr->inside_arena && !creature_ptr->phase_out
+ && one_in_(2) && !creature_ptr->current_floor_ptr->inside_arena && !creature_ptr->phase_out
&& !(r_ptr->flags7 & (RF7_GUARDIAN)) && !(r_ptr->flags1 & (RF1_QUESTOR))
&& (rlev < creature_ptr->lev * 3 / 2 + randint0(creature_ptr->lev / 5)))
{
if (!cave_monster_teleportable_bold(m_idx, ny, nx, mode)) continue;
/* No teleporting into vaults and such */
- if (!(caster_ptr->current_floor_ptr->inside_quest || caster_ptr->inside_arena))
+ if (!(caster_ptr->current_floor_ptr->inside_quest || caster_ptr->current_floor_ptr->inside_arena))
if (caster_ptr->current_floor_ptr->grid_array[ny][nx].info & CAVE_ICKY) continue;
/* This grid looks good */
*/
/* Ironman option */
- if (creature_ptr->inside_arena || ironman_downward)
+ if (creature_ptr->current_floor_ptr->inside_arena || ironman_downward)
{
msg_print(_("何も起こらなかった。", "Nothing happens."));
return TRUE;
void alter_reality(void)
{
/* Ironman option */
- if (p_ptr->inside_arena || ironman_downward)
+ if (p_ptr->current_floor_ptr->inside_arena || ironman_downward)
{
msg_print(_("何も起こらなかった。", "Nothing happens."));
return;
bool health_tracked = (caster_ptr->health_who == g_ptr->m_idx) ? TRUE : FALSE;
monster_type back_m;
- if (caster_ptr->inside_arena || caster_ptr->phase_out) return (FALSE);
+ if (caster_ptr->current_floor_ptr->inside_arena || caster_ptr->phase_out) return (FALSE);
if ((caster_ptr->riding == g_ptr->m_idx) || (m_ptr->mflag2 & MFLAG2_KAGE)) return (FALSE);
return FALSE;
}
- if (caster_ptr->inside_arena || caster_ptr->phase_out)
+ if (caster_ptr->current_floor_ptr->inside_arena || caster_ptr->phase_out)
{
msg_print(_("この魔法は外でしか使えない!", "This spell can only be used outside!"));
return FALSE;
}
/* Hack -- special handling for building doors */
- else if (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->inside_arena)
+ else if (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena)
{
name = building[f_ptr->subtype].name;
}
/* Hack -- special introduction for store & building doors -KMW- */
if (have_flag(f_ptr->flags, FF_STORE) ||
have_flag(f_ptr->flags, FF_QUEST_ENTER) ||
- (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->inside_arena) ||
+ (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena) ||
have_flag(f_ptr->flags, FF_ENTRANCE))
{
s2 = _("の入口", "");
if (!have_flag(f_info[feat].flags, FF_MORE)) break;
/* Hack -- no trap doors on special levels */
- if (p_ptr->inside_arena || quest_number(p_ptr->current_floor_ptr->dun_level)) continue;
+ if (p_ptr->current_floor_ptr->inside_arena || quest_number(p_ptr->current_floor_ptr->dun_level)) continue;
/* Hack -- no trap doors on the deepest level */
if (p_ptr->current_floor_ptr->dun_level >= d_info[p_ptr->dungeon_idx].maxdepth) continue;
if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_WILD)) return;
}
- if(player_ptr->inside_arena)
+ if(player_ptr->current_floor_ptr->inside_arena)
{
if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_ARENA)) return;
}
if (p_ptr->pclass == special_menu_info[hoge].jouken_naiyou) menu_name = special_menu_info[hoge].name;
break;
case MENU_WILD:
- if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->inside_arena && !p_ptr->current_floor_ptr->inside_quest)
+ if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->current_floor_ptr->inside_arena && !p_ptr->current_floor_ptr->inside_quest)
{
if ((byte)p_ptr->wild_mode == special_menu_info[hoge].jouken_naiyou) menu_name = special_menu_info[hoge].name;
}
return _("クエスト", "Quest");
else if (p_ptr->wild_mode)
return _("地上", "Surface");
- else if (p_ptr->inside_arena)
+ else if (p_ptr->current_floor_ptr->inside_arena)
return _("アリーナ", "Arena");
else if (p_ptr->phase_out)
return _("闘技場", "Monster Arena");
*/
static void prt_hunger(void)
{
- if(current_world_ptr->wizard && p_ptr->inside_arena) return;
+ if(current_world_ptr->wizard && p_ptr->current_floor_ptr->inside_arena) return;
/* Fainting / Starving */
if (p_ptr->food < PY_FOOD_FAINT)
prepare_change_floor_mode(CFM_RAND_PLACE);
if (!p_ptr->current_floor_ptr->dun_level) creature_ptr->dungeon_idx = 0;
- creature_ptr->inside_arena = FALSE;
+ creature_ptr->current_floor_ptr->inside_arena = FALSE;
creature_ptr->wild_mode = FALSE;
leave_quest_check();