/* Reset virtues */
for (i = 0; i < 8; i++) p_ptr->virtues[i]=0;
- dungeon_idx = 0;
+ p_ptr->dungeon_idx = 0;
/* Set the recall dungeon accordingly */
if (vanilla_town || ironman_downward)
s16b end_temp;
/* Non-Ninja player in the darkness */
- int dis_lim = ((d_info[dungeon_idx].flags1 & DF1_DARKNESS) && !p_ptr->see_nocto) ?
+ int dis_lim = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) && !p_ptr->see_nocto) ?
(MAX_SIGHT / 2 + 1) : (MAX_SIGHT + 3);
/* Clear all monster lit squares */
else if (rad > 0)
{
if (!(r_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) && (MON_CSLEEP(m_ptr) || (!dun_level && is_daytime()) || p_ptr->inside_battle)) continue;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) rad = 1;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) rad = 1;
add_mon_lite = mon_lite_hack;
f_flag = FF_LOS;
}
FEAT_IDX feat;
feature_type *f_ptr;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
/* Scan that area */
for (y = 1; y < cur_hgt - 1; y++)
f_ptr = &f_info[get_feat_mimic(c_ptr)];
/* Perma-lite the grid */
- if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS) && !ninja)
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) && !ninja)
{
c_ptr->info |= (CAVE_GLOW);
}
c_ptr->feat = feat;
/* Hack -- glow the GLOW terrain */
- if (have_flag(f_ptr->flags, FF_GLOW) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ if (have_flag(f_ptr->flags, FF_GLOW) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
DIRECTION i;
POSITION yy, xx;
/* Remove flag for mirror/glyph */
c_ptr->info &= ~(CAVE_OBJECT);
- if (old_mirror && (d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ if (old_mirror && (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
c_ptr->info &= ~(CAVE_GLOW);
if (!view_torch_grids) c_ptr->info &= ~(CAVE_MARK);
}
/* Hack -- glow the GLOW terrain */
- if (have_flag(f_ptr->flags, FF_GLOW) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ if (have_flag(f_ptr->flags, FF_GLOW) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
DIRECTION i;
POSITION yy, xx;
case CONVERT_TYPE_SOLID:
return feat_wall_solid;
case CONVERT_TYPE_STREAM1:
- return d_info[dungeon_idx].stream1;
+ return d_info[p_ptr->dungeon_idx].stream1;
case CONVERT_TYPE_STREAM2:
- return d_info[dungeon_idx].stream2;
+ return d_info[p_ptr->dungeon_idx].stream2;
default:
return newfeat;
}
c_ptr->info &= ~(CAVE_OBJECT);
c_ptr->mimic = 0;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)
{
c_ptr->info &= ~(CAVE_GLOW);
if (!view_torch_grids) c_ptr->info &= ~(CAVE_MARK);
cave_type *c_ptr;
/* Not in the darkness dungeon */
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) return;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) return;
for (y = 0; y < cur_hgt; y++)
{
*/
bool cmd_limit_cast(player_type *creature_ptr)
{
- if (dun_level && (d_info[dungeon_idx].flags1 & DF1_NO_MAGIC))
+ if (dun_level && (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MAGIC))
{
msg_print(_("ダンジョンが魔法を吸収した!", "The dungeon absorbs all attempted magic!"));
msg_print(NULL);
}
/* Get out from current dungeon */
- if (dun_level - up_num < d_info[dungeon_idx].mindepth)
+ if (dun_level - up_num < d_info[p_ptr->dungeon_idx].mindepth)
up_num = dun_level;
}
if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, _("階段を上った", "climbed up the stairs to"));
/* Save old player position */
p_ptr->oldpx = p_ptr->x;
p_ptr->oldpy = p_ptr->y;
- dungeon_idx = target_dungeon;
+ p_ptr->dungeon_idx = target_dungeon;
/*
* Clear all saved floors
{
/* Enter the dungeon just now */
p_ptr->enter_dungeon = TRUE;
- down_num = d_info[dungeon_idx].mindepth;
+ down_num = d_info[p_ptr->dungeon_idx].mindepth;
}
if (record_stair)
/* Success */
if (target_dungeon)
{
- msg_format(_("%sへ入った。", "You entered %s."), d_text + d_info[dungeon_idx].text);
+ msg_format(_("%sへ入った。", "You entered %s."), d_text + d_info[p_ptr->dungeon_idx].text);
}
else
{
else
{
#ifdef JP
- sprintf(note_level_buf, "%d階(%s):", (int)dun_level, d_name+d_info[dungeon_idx].name);
+ sprintf(note_level_buf, "%d階(%s):", (int)dun_level, d_name+d_info[p_ptr->dungeon_idx].name);
#else
- sprintf(note_level_buf, "%s L%d:", d_name+d_info[dungeon_idx].name, (int)dun_level);
+ sprintf(note_level_buf, "%s L%d:", d_name+d_info[p_ptr->dungeon_idx].name, (int)dun_level);
#endif
note_level = note_level_buf;
}
{
fprintf(fff, _(" %2d:%02d %20s %sの最深階%d階に到達した。\n",
" %2d:%02d %20s reached level %d of %s for the first time.\n"), hour, min, note_level,
- _(d_name+d_info[dungeon_idx].name, num),
- _(num, d_name+d_info[dungeon_idx].name));
+ _(d_name+d_info[p_ptr->dungeon_idx].name, num),
+ _(num, d_name+d_info[p_ptr->dungeon_idx].name));
break;
}
case NIKKI_TRUMP:
{
if (!num)
fprintf(fff, _(" %2d:%02d %20s 帰還を使って%sの%d階へ下りた。\n", " %2d:%02d %20s recalled to dungeon level %d of %s.\n"),
- hour, min, note_level, _(d_name+d_info[dungeon_idx].name, (int)max_dlv[dungeon_idx]),
- _((int)max_dlv[dungeon_idx], d_name+d_info[dungeon_idx].name));
+ hour, min, note_level, _(d_name+d_info[p_ptr->dungeon_idx].name, (int)max_dlv[p_ptr->dungeon_idx]),
+ _((int)max_dlv[p_ptr->dungeon_idx], d_name+d_info[p_ptr->dungeon_idx].name));
else
fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level);
break;
if (!dun_level)
to = _("地上", "the surface");
else
- to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_idx].name);
+ to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[p_ptr->dungeon_idx].name);
fprintf(fff, _(" %2d:%02d %20s %sへとウィザード・テレポートで移動した。\n",
" %2d:%02d %20s wizard-teleport to %s.\n"), hour, min, note_level, to);
if (!dun_level)
to = _("地上", "the surface");
else
- to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_idx].name);
+ to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[p_ptr->dungeon_idx].name);
fprintf(fff, _(" %2d:%02d %20s %sへとパターンの力で移動した。\n",
" %2d:%02d %20s used Pattern to teleport to %s.\n"), hour, min, note_level, to);
#define TELE_LEVEL_IS_INEFF(TARGET) \
(p_ptr->inside_arena || p_ptr->inside_battle || \
(p_ptr->inside_quest && !random_quest_number(dun_level)) || \
- (((TARGET) <= 0) && (quest_number(dun_level) || (dun_level >= d_info[dungeon_idx].maxdepth)) && \
+ (((TARGET) <= 0) && (quest_number(dun_level) || (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth)) && \
(dun_level >= 1) && ironman_downward))
min_level = dun_level;
/* Maximum level */
- if (dungeon_idx == DUNGEON_ANGBAND)
+ if (p_ptr->dungeon_idx == DUNGEON_ANGBAND)
{
if (dun_level > 100)
max_level = MAX_DEPTH - 1;
}
else
{
- max_level = d_info[dungeon_idx].maxdepth;
- min_level = d_info[dungeon_idx].mindepth;
+ max_level = d_info[p_ptr->dungeon_idx].maxdepth;
+ min_level = d_info[p_ptr->dungeon_idx].mindepth;
}
/* Prompt */
{
msg_print(_("上に引っ張りあげられる感じがする!", "You feel yourself yanked upwards!"));
- if (dungeon_idx) p_ptr->recall_dungeon = dungeon_idx;
+ if (p_ptr->dungeon_idx) p_ptr->recall_dungeon = p_ptr->dungeon_idx;
if (record_stair)
do_cmd_write_nikki(NIKKI_RECALL, dun_level, NULL);
dun_level = 0;
- dungeon_idx = 0;
+ p_ptr->dungeon_idx = 0;
leave_quest_check();
leave_tower_check();
{
msg_print(_("下に引きずり降ろされる感じがする!", "You feel yourself yanked downwards!"));
- dungeon_idx = p_ptr->recall_dungeon;
+ p_ptr->dungeon_idx = p_ptr->recall_dungeon;
if (record_stair)
do_cmd_write_nikki(NIKKI_RECALL, dun_level, NULL);
/* New depth */
- dun_level = max_dlv[dungeon_idx];
+ dun_level = max_dlv[p_ptr->dungeon_idx];
if (dun_level < 1) dun_level = 1;
/* Nightmare mode makes recall more dangerous */
- if (ironman_nightmare && !randint0(666) && (dungeon_idx == DUNGEON_ANGBAND))
+ if (ironman_nightmare && !randint0(666) && (p_ptr->dungeon_idx == DUNGEON_ANGBAND))
{
if (dun_level < 50)
{
}
else if (dun_level > 100)
{
- dun_level = d_info[dungeon_idx].maxdepth - 1;
+ dun_level = d_info[p_ptr->dungeon_idx].maxdepth - 1;
}
}
/* Leaving */
p_ptr->leaving = TRUE;
- if (dungeon_idx == DUNGEON_ANGBAND)
+ if (p_ptr->dungeon_idx == DUNGEON_ANGBAND)
{
int i;
update_dungeon_feeling();
/* 帰還無しモード時のレベルテレポバグ対策 / Fix for level teleport bugs on ironman_downward.*/
- if (ironman_downward && (dungeon_idx != DUNGEON_ANGBAND && dungeon_idx != 0))
+ if (ironman_downward && (p_ptr->dungeon_idx != DUNGEON_ANGBAND && p_ptr->dungeon_idx != 0))
{
dun_level = 0;
- dungeon_idx = 0;
+ p_ptr->dungeon_idx = 0;
prepare_change_floor_mode(CFM_FIRST_FLOOR | CFM_RAND_PLACE);
p_ptr->inside_arena = FALSE;
p_ptr->wild_mode = FALSE;
/*** Process the monsters ***/
/* Check for creature generation. */
- if (one_in_(d_info[dungeon_idx].max_m_alloc_chance) &&
+ if (one_in_(d_info[p_ptr->dungeon_idx].max_m_alloc_chance) &&
!p_ptr->inside_arena && !p_ptr->inside_quest && !p_ptr->inside_battle)
{
/* Make a new monster */
{
msg_print(_("呪文を唱えられない!", "You cannot cast spells!"));
}
- else if (dun_level && (d_info[dungeon_idx].flags1 & DF1_NO_MAGIC) && (p_ptr->pclass != CLASS_BERSERKER) && (p_ptr->pclass != CLASS_SMITH))
+ else if (dun_level && (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MAGIC) && (p_ptr->pclass != CLASS_BERSERKER) && (p_ptr->pclass != CLASS_SMITH))
{
msg_print(_("ダンジョンが魔法を吸収した!", "The dungeon absorbs all attempted magic!"));
msg_print(NULL);
/* Track maximum dungeon level (if not in quest -KMW-) */
- if ((max_dlv[dungeon_idx] < dun_level) && !p_ptr->inside_quest)
+ if ((max_dlv[p_ptr->dungeon_idx] < dun_level) && !p_ptr->inside_quest)
{
- max_dlv[dungeon_idx] = dun_level;
+ max_dlv[p_ptr->dungeon_idx] = dun_level;
if (record_maxdepth) do_cmd_write_nikki(NIKKI_MAXDEAPTH, dun_level, NULL);
}
if (!p_ptr->playing || p_ptr->is_dead) return;
/* Print quest message if appropriate */
- if (!p_ptr->inside_quest && (dungeon_idx == DUNGEON_ANGBAND))
+ if (!p_ptr->inside_quest && (p_ptr->dungeon_idx == DUNGEON_ANGBAND))
{
quest_discovery(random_quest_number(dun_level));
p_ptr->inside_quest = random_quest_number(dun_level);
}
- if ((dun_level == d_info[dungeon_idx].maxdepth) && d_info[dungeon_idx].final_guardian)
+ if ((dun_level == d_info[p_ptr->dungeon_idx].maxdepth) && d_info[p_ptr->dungeon_idx].final_guardian)
{
- if (r_info[d_info[dungeon_idx].final_guardian].max_num)
+ if (r_info[d_info[p_ptr->dungeon_idx].final_guardian].max_num)
#ifdef JP
msg_format("この階には%sの主である%sが棲んでいる。",
- d_name+d_info[dungeon_idx].name,
- r_name+r_info[d_info[dungeon_idx].final_guardian].name);
+ d_name+d_info[p_ptr->dungeon_idx].name,
+ r_name+r_info[d_info[p_ptr->dungeon_idx].final_guardian].name);
#else
msg_format("%^s lives in this level as the keeper of %s.",
- r_name+r_info[d_info[dungeon_idx].final_guardian].name,
- d_name+d_info[dungeon_idx].name);
+ r_name+r_info[d_info[p_ptr->dungeon_idx].final_guardian].name,
+ d_name+d_info[p_ptr->dungeon_idx].name);
#endif
}
s_info[p_ptr->pclass].w_max[TV_HAFTED-TV_WEAPON_BEGIN][SV_WHIP] = WEAPON_EXP_MASTER;
/* Fill the arrays of floors and walls in the good proportions */
- set_floor_and_wall(dungeon_idx);
+ set_floor_and_wall(p_ptr->dungeon_idx);
/* Flavor the objects */
flavor_init();
extern FEAT_IDX feat_swamp;
extern FEAT_IDX feat_undetected;
-extern DUNGEON_IDX dungeon_idx;
extern DEPTH *max_dlv;
extern FEAT_IDX feat_wall_outer;
extern FEAT_IDX feat_wall_inner;
/* No up stairs in town or in ironman mode */
if (ironman_downward || !dun_level) return TRUE;
- if (dun_level > d_info[dungeon_idx].mindepth)
+ if (dun_level > d_info[p_ptr->dungeon_idx].mindepth)
shaft_num = (randint1(num+1))/2;
}
else if (have_flag(f_ptr->flags, FF_MORE))
}
/* No downstairs at the bottom */
- if (dun_level >= d_info[dungeon_idx].maxdepth) return TRUE;
+ if (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth) return TRUE;
- if ((dun_level < d_info[dungeon_idx].maxdepth-1) && !quest_number(dun_level+1))
+ if ((dun_level < d_info[p_ptr->dungeon_idx].maxdepth-1) && !quest_number(dun_level+1))
shaft_num = (randint1(num)+1)/2;
}
(quest[i].type != QUEST_TYPE_KILL_LEVEL &&
quest[i].type != QUEST_TYPE_RANDOM) ||
quest[i].level != dun_level ||
- dungeon_idx != quest[i].dungeon ||
+ p_ptr->dungeon_idx != quest[i].dungeon ||
(quest[i].flags & QUEST_FLAG_PRESET))
{
/* Ignore it */
{
#ifdef ALLOW_CAVERNS_AND_LAKES
/* Possible "destroyed" level */
- if ((dun_level > 30) && one_in_(DUN_DEST*2) && (small_levels) && (d_info[dungeon_idx].flags1 & DF1_DESTROY))
+ if ((dun_level > 30) && one_in_(DUN_DEST*2) && (small_levels) && (d_info[p_ptr->dungeon_idx].flags1 & DF1_DESTROY))
{
dun->destroyed = TRUE;
/* Make a lake some of the time */
if (one_in_(LAKE_LEVEL) && !dun->empty_level && !dun->destroyed &&
- (d_info[dungeon_idx].flags1 & DF1_LAKE_MASK))
+ (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_MASK))
{
int count = 0;
- if (d_info[dungeon_idx].flags1 & DF1_LAKE_WATER) count += 3;
- if (d_info[dungeon_idx].flags1 & DF1_LAKE_LAVA) count += 3;
- if (d_info[dungeon_idx].flags1 & DF1_LAKE_RUBBLE) count += 3;
- if (d_info[dungeon_idx].flags1 & DF1_LAKE_TREE) count += 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_WATER) count += 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_LAVA) count += 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_RUBBLE) count += 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_TREE) count += 3;
- if (d_info[dungeon_idx].flags1 & DF1_LAKE_LAVA)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_LAVA)
{
/* Lake of Lava */
if ((dun_level > 80) && (randint0(count) < 2)) dun->laketype = LAKE_T_LAVA;
count--;
}
- if ((d_info[dungeon_idx].flags1 & DF1_LAKE_WATER) && !dun->laketype)
+ if ((d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_WATER) && !dun->laketype)
{
/* Lake of Water */
if ((dun_level > 50) && randint0(count) < 2) dun->laketype = LAKE_T_WATER;
count--;
}
- if ((d_info[dungeon_idx].flags1 & DF1_LAKE_RUBBLE) && !dun->laketype)
+ if ((d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_RUBBLE) && !dun->laketype)
{
/* Lake of rubble */
if ((dun_level > 35) && (randint0(count) < 2)) dun->laketype = LAKE_T_CAVE;
}
/* Lake of tree */
- if ((dun_level > 5) && (d_info[dungeon_idx].flags1 & DF1_LAKE_TREE) && !dun->laketype) dun->laketype = LAKE_T_AIR_VAULT;
+ if ((dun_level > 5) && (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAKE_TREE) && !dun->laketype) dun->laketype = LAKE_T_AIR_VAULT;
if (dun->laketype)
{
}
if ((dun_level > DUN_CAVERN) && !dun->empty_level &&
- (d_info[dungeon_idx].flags1 & DF1_CAVERN) &&
+ (d_info[p_ptr->dungeon_idx].flags1 & DF1_CAVERN) &&
!dun->laketype && !dun->destroyed && (randint1(1000) < dun_level))
{
dun->cavern = TRUE;
dun->laketype = 0;
/* Fill the arrays of floors and walls in the good proportions */
- set_floor_and_wall(dungeon_idx);
+ set_floor_and_wall(p_ptr->dungeon_idx);
get_mon_num_prep(get_monster_hook(), NULL);
/* Randomize the dungeon creation values */
dun->cent_n = 0;
/* Empty arena levels */
- if (ironman_empty_levels || ((d_info[dungeon_idx].flags1 & DF1_ARENA) && (empty_levels && one_in_(EMPTY_LEVEL))))
+ if (ironman_empty_levels || ((d_info[p_ptr->dungeon_idx].flags1 & DF1_ARENA) && (empty_levels && one_in_(EMPTY_LEVEL))))
{
dun->empty_level = TRUE;
msg_print_wizard(CHEAT_DUNGEON, _("アリーナレベルを生成。", "Arena level."));
/* Build maze */
- if (d_info[dungeon_idx].flags1 & DF1_MAZE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_MAZE)
{
build_maze_vault(cur_wid/2-1, cur_hgt/2-1, cur_wid-4, cur_hgt-4, FALSE);
FEAT_IDX feat1 = 0, feat2 = 0;
/* Choose water mainly */
- if ((randint1(MAX_DEPTH * 2) - 1 > dun_level) && (d_info[dungeon_idx].flags1 & DF1_WATER_RIVER))
+ if ((randint1(MAX_DEPTH * 2) - 1 > dun_level) && (d_info[p_ptr->dungeon_idx].flags1 & DF1_WATER_RIVER))
{
feat1 = feat_deep_water;
feat2 = feat_shallow_water;
FEAT_IDX select_shallow_feat[10];
int select_id_max = 0, selected;
- if (d_info[dungeon_idx].flags1 & DF1_LAVA_RIVER)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAVA_RIVER)
{
select_deep_feat[select_id_max] = feat_deep_lava;
select_shallow_feat[select_id_max] = feat_shallow_lava;
select_id_max++;
}
- if (d_info[dungeon_idx].flags1 & DF1_POISONOUS_RIVER)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_POISONOUS_RIVER)
{
select_deep_feat[select_id_max] = feat_deep_poisonous_puddle;
select_shallow_feat[select_id_max] = feat_shallow_poisonous_puddle;
select_id_max++;
}
- if (d_info[dungeon_idx].flags1 & DF1_ACID_RIVER)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_ACID_RIVER)
{
select_deep_feat[select_id_max] = feat_deep_acid_puddle;
select_shallow_feat[select_id_max] = feat_shallow_acid_puddle;
dun->wall_n = 0;
/* Connect the room to the previous room */
- if (randint1(dun_level) > d_info[dungeon_idx].tunnel_percent)
+ if (randint1(dun_level) > d_info[p_ptr->dungeon_idx].tunnel_percent)
{
/* make cave-like tunnel */
(void)build_tunnel2(dun->cent[i].x, dun->cent[i].y, x, y, 2, 2);
place_floor_grid(c_ptr);
/* Occasional doorway */
- if ((randint0(100) < dun_tun_pen) && !(d_info[dungeon_idx].flags1 & DF1_NO_DOORS))
+ if ((randint0(100) < dun_tun_pen) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS))
{
/* Place a random door */
place_random_door(y, x, TRUE);
if (!dun->laketype)
{
- if (d_info[dungeon_idx].stream2)
+ if (d_info[p_ptr->dungeon_idx].stream2)
{
/* Hack -- Add some quartz streamers */
for (i = 0; i < DUN_STR_QUA; i++)
{
- build_streamer(d_info[dungeon_idx].stream2, DUN_STR_QC);
+ build_streamer(d_info[p_ptr->dungeon_idx].stream2, DUN_STR_QC);
}
}
- if (d_info[dungeon_idx].stream1)
+ if (d_info[p_ptr->dungeon_idx].stream1)
{
/* Hack -- Add some magma streamers */
for (i = 0; i < DUN_STR_MAG; i++)
{
- build_streamer(d_info[dungeon_idx].stream1, DUN_STR_MC);
+ build_streamer(d_info[p_ptr->dungeon_idx].stream1, DUN_STR_MC);
}
}
}
if (k < 2) k = 2;
/* Pick a base number of monsters */
- i = d_info[dungeon_idx].min_m_alloc_level;
+ i = d_info[p_ptr->dungeon_idx].min_m_alloc_level;
/* To make small levels a bit more playable */
if (cur_hgt < MAX_HGT || cur_wid < MAX_WID)
alloc_object(ALLOC_SET_BOTH, ALLOC_TYP_TRAP, randint1(k));
/* Put some rubble in corridors (except NO_CAVE dungeon (Castle)) */
- if (!(d_info[dungeon_idx].flags1 & DF1_NO_CAVE)) alloc_object(ALLOC_SET_CORR, ALLOC_TYP_RUBBLE, randint1(k));
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE)) alloc_object(ALLOC_SET_CORR, ALLOC_TYP_RUBBLE, randint1(k));
/* Mega Hack -- No object at first level of deeper dungeon */
if (p_ptr->enter_dungeon && dun_level > 1)
/* Put the Guardian */
if (!alloc_guardian(TRUE)) return FALSE;
- if (dun->empty_level && (!one_in_(DARK_EMPTY) || (randint1(100) > dun_level)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ if (dun->empty_level && (!one_in_(DARK_EMPTY) || (randint1(100) > dun_level)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
/* Lite the cave */
for (y = 0; y < cur_hgt; y++)
if ((always_small_levels || ironman_small_levels ||
(one_in_(SMALL_LEVEL) && small_levels) ||
- (d_info[dungeon_idx].flags1 & DF1_BEGINNER) ||
- (d_info[dungeon_idx].flags1 & DF1_SMALLEST)) &&
- !(d_info[dungeon_idx].flags1 & DF1_BIG))
+ (d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER) ||
+ (d_info[p_ptr->dungeon_idx].flags1 & DF1_SMALLEST)) &&
+ !(d_info[p_ptr->dungeon_idx].flags1 & DF1_BIG))
{
- if (d_info[dungeon_idx].flags1 & DF1_SMALLEST)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_SMALLEST)
{
level_height = 1;
level_width = 1;
}
- else if (d_info[dungeon_idx].flags1 & DF1_BEGINNER)
+ else if (d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER)
{
level_height = 2;
level_width = 2;
int num;
/* Fill the arrays of floors and walls in the good proportions */
- set_floor_and_wall(dungeon_idx);
+ set_floor_and_wall(p_ptr->dungeon_idx);
/* Generate */
for (num = 0; TRUE; num++)
((quest[i].type == QUEST_TYPE_KILL_LEVEL) ||
(quest[i].type == QUEST_TYPE_RANDOM)) &&
(quest[i].level == dun_level) &&
- (dungeon_idx == quest[i].dungeon) &&
+ (p_ptr->dungeon_idx == quest[i].dungeon) &&
!(quest[i].flags & QUEST_FLAG_PRESET))
{
quest_r_idx = quest[i].r_idx;
if (change_floor_mode & CFM_DOWN)
{
if (!dun_level)
- move_num = d_info[dungeon_idx].mindepth;
+ move_num = d_info[p_ptr->dungeon_idx].mindepth;
}
else if (change_floor_mode & CFM_UP)
{
- if (dun_level + move_num < d_info[dungeon_idx].mindepth)
+ if (dun_level + move_num < d_info[p_ptr->dungeon_idx].mindepth)
move_num = -dun_level;
}
}
/* Leaving the dungeon to town */
- if (!dun_level && dungeon_idx)
+ if (!dun_level && p_ptr->dungeon_idx)
{
p_ptr->leaving_dungeon = TRUE;
if (!vanilla_town && !lite_town)
{
- p_ptr->wilderness_y = d_info[dungeon_idx].dy;
- p_ptr->wilderness_x = d_info[dungeon_idx].dx;
+ p_ptr->wilderness_y = d_info[p_ptr->dungeon_idx].dy;
+ p_ptr->wilderness_x = d_info[p_ptr->dungeon_idx].dx;
}
- p_ptr->recall_dungeon = dungeon_idx;
- dungeon_idx = 0;
+ p_ptr->recall_dungeon = p_ptr->dungeon_idx;
+ p_ptr->dungeon_idx = 0;
/* Reach to the surface -- Clear all saved floors */
change_floor_mode &= ~CFM_SAVE_FLOORS;
MONSTER_IDX i;
GAME_TURN tmp_last_visit = sf_ptr->last_visit;
GAME_TURN absence_ticks;
- int alloc_chance = d_info[dungeon_idx].max_m_alloc_chance;
+ int alloc_chance = d_info[p_ptr->dungeon_idx].max_m_alloc_chance;
GAME_TURN alloc_times;
while (tmp_last_visit > turn) tmp_last_visit -= TURNS_PER_TICK * TOWN_DAWN;
if (ironman_downward) up = FALSE;
/* Forbid down staircases on quest level */
- if (quest_number(dun_level) || (dun_level >= d_info[dungeon_idx].maxdepth)) down = FALSE;
+ if (quest_number(dun_level) || (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth)) down = FALSE;
/* No effect out of standard dungeon floor */
if (!dun_level || (!up && !down) ||
/* Lava terrain glows */
if (have_flag(f_info[feat1].flags, FF_LAVA))
{
- if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) c_ptr->info |= CAVE_GLOW;
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) c_ptr->info |= CAVE_GLOW;
}
/* Hack -- don't teleport here */
c_ptr->mimic = 0;
/* Light area since is open above */
- if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) cave[j][i].info |= (CAVE_GLOW | CAVE_ROOM);
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) cave[j][i].info |= (CAVE_GLOW | CAVE_ROOM);
}
}
}
if (ironman_downward) up_stairs = FALSE;
/* Bottom */
- if (dun_level >= d_info[dungeon_idx].maxdepth) down_stairs = FALSE;
+ if (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth) down_stairs = FALSE;
/* Quest-level */
if (quest_number(dun_level) && (dun_level > 1)) down_stairs = FALSE;
/* Initialize mimic info */
c_ptr->mimic = 0;
- if (d_info[dungeon_idx].flags1 & DF1_NO_DOORS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
{
place_floor_bold(y, x);
return;
}
- type = ((d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :
- ((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);
+ type = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :
+ ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);
/* Choose an object */
tmp = randint0(1000);
int tmp;
FEAT_IDX feat = feat_none;
- if (d_info[dungeon_idx].flags1 & DF1_NO_DOORS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
{
place_floor_bold(y, x);
return;
*/
void place_locked_door(POSITION y, POSITION x)
{
- if (d_info[dungeon_idx].flags1 & DF1_NO_DOORS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
{
place_floor_bold(y, x);
}
else
{
- set_cave_feat(y, x, feat_locked_door_random((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR));
+ set_cave_feat(y, x, feat_locked_door_random((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR));
cave[y][x].info &= ~(CAVE_FLOOR);
delete_monster(y, x);
}
*/
void place_secret_door(POSITION y, POSITION x, int type)
{
- if (d_info[dungeon_idx].flags1 & DF1_NO_DOORS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
{
place_floor_bold(y, x);
}
if (type == DOOR_DEFAULT)
{
- type = ((d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :
- ((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);
+ type = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :
+ ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);
}
/* Create secret door */
if (cave[y][x].info & (CAVE_ROOM)) return;
/* Occasional door (if allowed) */
- if ((randint0(100) < dun_tun_jct) && possible_doorway(y, x) && !(d_info[dungeon_idx].flags1 & DF1_NO_DOORS))
+ if ((randint0(100) < dun_tun_jct) && possible_doorway(y, x) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS))
{
/* Place a door */
place_random_door(y, x, FALSE);
/* Header info */
rd_s16b(&tmp16s);
dun_level = (DEPTH)tmp16s;
- if (z_older_than(10, 3, 8)) dungeon_idx = DUNGEON_ANGBAND;
+ if (z_older_than(10, 3, 8)) p_ptr->dungeon_idx = DUNGEON_ANGBAND;
else
{
rd_byte(&tmp8u);
- dungeon_idx = (IDX)tmp8u;
+ p_ptr->dungeon_idx = (IDX)tmp8u;
}
/* Set the base level for old versions */
err = rd_dungeon_old();
/* Prepare floor_id of current floor */
- if (dungeon_idx)
+ if (p_ptr->dungeon_idx)
{
p_ptr->floor_id = get_new_floor_id();
get_sf_ptr(p_ptr->floor_id)->dun_level = dun_level;
/* Current dungeon type */
rd_byte(&tmp8u);
- dungeon_idx = (DUNGEON_IDX)tmp8u;
+ p_ptr->dungeon_idx = (DUNGEON_IDX)tmp8u;
/* Number of the saved_floors array elements */
rd_byte(&num);
{
if (p_ptr->inside_quest == OLD_QUEST_WATER_CAVE)
{
- dungeon_idx = lite_town ? DUNGEON_ANGBAND : DUNGEON_GALGALS;
+ p_ptr->dungeon_idx = lite_town ? DUNGEON_ANGBAND : DUNGEON_GALGALS;
dun_level = 1;
p_ptr->inside_quest = 0;
}
}
}
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
msg_print(_("なぜか攻撃することができない。", "Something prevent you from attacking."));
return FALSE;
/* Not allowed to attack */
if (r_ptr->flags1 & (RF1_NEVER_BLOW)) return (FALSE);
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE) return (FALSE);
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE) return (FALSE);
/* ...nor if friendly */
if (!is_hostile(m_ptr)) return FALSE;
/* Not allowed to attack */
if (r_ptr->flags1 & RF1_NEVER_BLOW) return FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE) return (FALSE);
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE) return (FALSE);
/* Total armor */
ac = tr_ptr->ac;
}
/* In anti-melee dungeon, stupid or confused monster takes useless turn */
- if (do_move && (d_info[dungeon_idx].flags1 & DF1_NO_MELEE))
+ if (do_move && (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE))
{
if (!MON_CONFUSED(m_ptr))
{
if (monst_attack_monst(m_idx, c_ptr->m_idx)) return;
/* In anti-melee dungeon, stupid or confused monster takes useless turn */
- else if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ else if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
if (MON_CONFUSED(m_ptr)) return;
else if (r_ptr->flags2 & RF2_STUPID)
#endif
}
- if (!(d_info[dungeon_idx].flags1 & DF1_BEGINNER))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
{
if (!dun_level && !ambush_flag && !p_ptr->inside_arena)
{
}
}
- if ((r_ptr->flags7 & RF7_GUARDIAN) && (d_info[dungeon_idx].final_guardian == m_ptr->r_idx))
+ if ((r_ptr->flags7 & RF7_GUARDIAN) && (d_info[p_ptr->dungeon_idx].final_guardian == m_ptr->r_idx))
{
- KIND_OBJECT_IDX k_idx = d_info[dungeon_idx].final_object ? d_info[dungeon_idx].final_object
+ KIND_OBJECT_IDX k_idx = d_info[p_ptr->dungeon_idx].final_object ? d_info[p_ptr->dungeon_idx].final_object
: lookup_kind(TV_SCROLL, SV_SCROLL_ACQUIREMENT);
- if (d_info[dungeon_idx].final_artifact)
+ if (d_info[p_ptr->dungeon_idx].final_artifact)
{
- a_idx = d_info[dungeon_idx].final_artifact;
+ a_idx = d_info[p_ptr->dungeon_idx].final_artifact;
artifact_type *a_ptr = &a_info[a_idx];
if (!a_ptr->cur_num)
else if (!preserve_mode) a_ptr->cur_num = 1;
/* Prevent rewarding both artifact and "default" object */
- if (!d_info[dungeon_idx].final_object) k_idx = 0;
+ if (!d_info[p_ptr->dungeon_idx].final_object) k_idx = 0;
}
}
apply_magic(q_ptr, object_level, AM_NO_FIXED_ART | AM_GOOD);
(void)drop_near(q_ptr, -1, y, x);
}
- msg_format(_("あなたは%sを制覇した!", "You have conquered %s!"), d_name + d_info[dungeon_idx].name);
+ msg_format(_("あなたは%sを制覇した!", "You have conquered %s!"), d_name + d_info[p_ptr->dungeon_idx].name);
}
}
*/
static bool restrict_monster_to_dungeon(MONRACE_IDX r_idx)
{
- dungeon_info_type *d_ptr = &d_info[dungeon_idx];
+ dungeon_info_type *d_ptr = &d_info[p_ptr->dungeon_idx];
monster_race *r_ptr = &r_info[r_idx];
byte a;
if (dun_level && (!p_ptr->inside_quest || is_fixed_quest_idx(p_ptr->inside_quest)) && !restrict_monster_to_dungeon(entry->index) && !p_ptr->inside_battle)
{
- int hoge = entry->prob2 * d_info[dungeon_idx].special_div;
+ int hoge = entry->prob2 * d_info[p_ptr->dungeon_idx].special_div;
entry->prob2 = hoge / 64;
if (randint0(64) < (hoge & 0x3f)) entry->prob2++;
}
pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10)));
pls_level = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ;
- if (d_info[dungeon_idx].flags1 & DF1_MAZE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_MAZE)
{
pls_kakuritu = MIN(pls_kakuritu / 2, pls_kakuritu - 10);
if (pls_kakuritu < 2) pls_kakuritu = 2;
}
/* Boost the level */
- if (!p_ptr->inside_battle && !(d_info[dungeon_idx].flags1 & DF1_BEGINNER))
+ if (!p_ptr->inside_battle && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
{
/* Nightmare mode allows more out-of depth monsters */
if (ironman_nightmare && !randint0(pls_kakuritu))
bool easy = FALSE;
/* Non-Ninja player in the darkness */
- bool in_darkness = (d_info[dungeon_idx].flags1 & DF1_DARKNESS) && !p_ptr->see_nocto;
+ bool in_darkness = (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) && !p_ptr->see_nocto;
/* Do disturb? */
if (disturb_high)
else
level = dun_level;
- if (d_info[dungeon_idx].flags1 & DF1_CHAMELEON) level+= 2+randint1(3);
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_CHAMELEON) level+= 2+randint1(3);
r_idx = get_mon_num(level);
r_ptr = &r_info[r_idx];
*/
bool alloc_guardian(bool def_val)
{
- MONRACE_IDX guardian = d_info[dungeon_idx].final_guardian;
+ MONRACE_IDX guardian = d_info[p_ptr->dungeon_idx].final_guardian;
- if (guardian && (d_info[dungeon_idx].maxdepth == dun_level) && (r_info[guardian].cur_num < r_info[guardian].max_num))
+ if (guardian && (d_info[p_ptr->dungeon_idx].maxdepth == dun_level) && (r_info[guardian].cur_num < r_info[guardian].max_num))
{
int oy;
int ox;
monster_has_hostile_align(NULL, 10, -10, r_ptr))
return FALSE;
- if ((r_ptr->flags7 & RF7_CHAMELEON) && (d_info[dungeon_idx].flags1 & DF1_CHAMELEON)) return TRUE;
+ if ((r_ptr->flags7 & RF7_CHAMELEON) && (d_info[p_ptr->dungeon_idx].flags1 & DF1_CHAMELEON)) return TRUE;
return (summon_specific_aux(r_idx));
}
return TRUE;
else
{
- dungeon_info_type *d_ptr = &d_info[dungeon_idx];
+ dungeon_info_type *d_ptr = &d_info[p_ptr->dungeon_idx];
if ((d_ptr->mflags8 & RF8_WILD_MOUNTAIN) &&
(r_ptr->flags8 & RF8_WILD_MOUNTAIN)) return TRUE;
return FALSE;
/* Check "projectable" */
bool direct;
- bool in_no_magic_dungeon = (d_info[dungeon_idx].flags1 & DF1_NO_MAGIC) && dun_level
+ bool in_no_magic_dungeon = (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MAGIC) && dun_level
&& (!p_ptr->inside_quest || is_fixed_quest_idx(p_ptr->inside_quest));
bool can_use_lite_area = FALSE;
if (!(r_ptr->flags2 & RF2_STUPID))
{
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) f6 &= ~(RF6_DARKNESS);
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) f6 &= ~(RF6_DARKNESS);
else if ((p_ptr->pclass == CLASS_NINJA) && !can_use_lite_area) f6 &= ~(RF6_DARKNESS);
}
}
bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
bool pet = is_pet(m_ptr);
- bool in_no_magic_dungeon = (d_info[dungeon_idx].flags1 & DF1_NO_MAGIC) && dun_level
+ bool in_no_magic_dungeon = (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MAGIC) && dun_level
&& (!p_ptr->inside_quest || is_fixed_quest_idx(p_ptr->inside_quest));
bool can_use_lite_area = FALSE;
if (!(r_ptr->flags2 & RF2_STUPID))
{
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) f6 &= ~(RF6_DARKNESS);
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) f6 &= ~(RF6_DARKNESS);
else if (vs_ninja && !can_use_lite_area) f6 &= ~(RF6_DARKNESS);
}
}
if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
/* Boost level */
- if ((level > 0) && !(d_info[dungeon_idx].flags1 & DF1_BEGINNER))
+ if ((level > 0) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
{
/* Occasional "boost" */
if (one_in_(GREAT_OBJ))
f1 = lev + 10;
/* Maximal chance of being "good" */
- if (f1 > d_info[dungeon_idx].obj_good) f1 = d_info[dungeon_idx].obj_good;
+ if (f1 > d_info[p_ptr->dungeon_idx].obj_good) f1 = d_info[p_ptr->dungeon_idx].obj_good;
/* Base chance of being "great" */
f2 = f1 * 2 / 3;
/* Maximal chance of being "great" */
- if ((p_ptr->pseikaku != SEIKAKU_MUNCHKIN) && (f2 > d_info[dungeon_idx].obj_great))
- f2 = d_info[dungeon_idx].obj_great;
+ if ((p_ptr->pseikaku != SEIKAKU_MUNCHKIN) && (f2 > d_info[p_ptr->dungeon_idx].obj_great))
+ f2 = d_info[p_ptr->dungeon_idx].obj_great;
if (p_ptr->muta3 & MUT3_GOOD_LUCK)
{
BIT_FLAGS f5 = r_ptr->a_ability_flags1;
BIT_FLAGS f6 = r_ptr->a_ability_flags2;
- if (!(d_info[dungeon_idx].flags1 & DF1_NO_MAGIC))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MAGIC))
{
if (f4 & RF4_BA_CHAO) spell_damcalc_by_spellnum(MS_BALL_CHAOS, GF_CHAOS, c_ptr->m_idx, &dam_max0);
if (f5 & RF5_BA_MANA) spell_damcalc_by_spellnum(MS_BALL_MANA, GF_MANA, c_ptr->m_idx, &dam_max0);
}
/* Monster melee attacks */
- if (!(r_ptr->flags1 & RF1_NEVER_BLOW) && !(d_info[dungeon_idx].flags1 & DF1_NO_MELEE))
+ if (!(r_ptr->flags1 & RF1_NEVER_BLOW) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE))
{
if (mx <= xx + 1 && mx >= xx - 1 && my <= yy + 1 && my >= yy - 1)
{
if ((!p_ptr->blind && !no_lite()) || !is_trap(c_ptr->feat)) c_ptr->info &= ~(CAVE_UNSAFE);
/* For get everything when requested hehe I'm *NASTY* */
- if (dun_level && (d_info[dungeon_idx].flags1 & DF1_FORGET)) wiz_dark();
+ if (dun_level && (d_info[p_ptr->dungeon_idx].flags1 & DF1_FORGET)) wiz_dark();
if (mpe_mode & MPE_HANDLE_STUFF) handle_stuff();
if (p_ptr->pclass == CLASS_NINJA)
/* max radius is 14 (was 5) without rewriting other code -- */
/* see cave.c:update_lite() and defines.h:LITE_MAX */
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS && p_ptr->cur_lite > 1)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS && p_ptr->cur_lite > 1)
p_ptr->cur_lite = 1;
/*
if ((quest[i].type == QUEST_TYPE_KILL_LEVEL) &&
!(quest[i].flags & QUEST_FLAG_PRESET) &&
(quest[i].level == level) &&
- (quest[i].dungeon == dungeon_idx))
+ (quest[i].dungeon == p_ptr->dungeon_idx))
return (i);
}
{
QUEST_IDX i;
- if (dungeon_idx != DUNGEON_ANGBAND) return 0;
+ if (p_ptr->dungeon_idx != DUNGEON_ANGBAND) return 0;
for (i = MIN_RANDOM_QUEST; i < MAX_RANDOM_QUEST + 1; i++)
{
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
return NULL;
}
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
return "";
}
return NULL;
}
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
return "";
}
y = p_ptr->y + ddy[dir];
x = p_ptr->x + ddx[dir];
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
msg_print(_("なぜか攻撃することができない。", "Something prevent you from attacking."));
return "";
light = done = FALSE;\r
room = TRUE;\r
\r
- if ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
+ if ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
\r
while (!done)\r
{\r
\r
cave_type *c_ptr;\r
\r
- bool curtain = (d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&\r
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 48 : 512);\r
+ bool curtain = (d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&\r
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 48 : 512);\r
\r
/* Pick a room size */\r
y1 = randint1(4);\r
}\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
\r
/* Get corner values */\r
/* Hack -- Occasional divided room */\r
else if (one_in_(50))\r
{\r
- bool curtain2 = (d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&\r
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 2 : 128);\r
+ bool curtain2 = (d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&\r
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 2 : 128);\r
\r
if (randint1(100) < 50)\r
{\r
if (!find_space(&yval, &xval, 11, 25)) return FALSE;\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
/* Determine extents of the first room */\r
y1a = yval - randint1(4);\r
\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
/* For now, always 3x3 */\r
wx = wy = 1;\r
/* Sometimes shut using secret doors */\r
if (one_in_(3))\r
{\r
- int door_type = ((d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&\r
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
- ((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
+ int door_type = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&\r
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
+ ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
\r
place_secret_door(yval, x1a - 1, door_type);\r
place_secret_door(yval, x2a + 1, door_type);\r
if (!find_space(&yval, &xval, 11, 25)) return FALSE;\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
/* Large room */\r
y1 = yval - 4;\r
/* Occasionally, some Inner rooms */\r
if (one_in_(3))\r
{\r
- int door_type = ((d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&\r
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
- ((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
+ int door_type = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&\r
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
+ ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
\r
/* Long horizontal walls */\r
for (x = xval - 5; x <= xval + 5; x++)\r
/* Four small rooms. */\r
case 5:\r
{\r
- int door_type = ((d_info[dungeon_idx].flags1 & DF1_CURTAIN) &&\r
- one_in_((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
- ((d_info[dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
+ int door_type = ((d_info[p_ptr->dungeon_idx].flags1 & DF1_CURTAIN) &&\r
+ one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :\r
+ ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);\r
\r
/* Inner "cross" */\r
for (y = y1; y <= y2; y++)\r
int light = FALSE;\r
\r
/* Occasional light */\r
- if ((randint1(dun_level) <= 15) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
+ if ((randint1(dun_level) <= 15) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
\r
rad = randint0(9);\r
\r
h4 = randint1(32) - 16;\r
\r
/* Occasional light */\r
- if ((randint1(dun_level) <= 5) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
+ if ((randint1(dun_level) <= 5) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;\r
\r
rad = randint1(9);\r
\r
\r
cave_type *c_ptr;\r
\r
- int cur_nest_type = pick_vault_type(nest_types, d_info[dungeon_idx].nest);\r
+ int cur_nest_type = pick_vault_type(nest_types, d_info[p_ptr->dungeon_idx].nest);\r
vault_aux_type *n_ptr;\r
\r
/* No type available */\r
\r
cave_type *c_ptr;\r
\r
- int cur_pit_type = pick_vault_type(pit_types, d_info[dungeon_idx].pit);\r
+ int cur_pit_type = pick_vault_type(pit_types, d_info[p_ptr->dungeon_idx].pit);\r
vault_aux_type *n_ptr;\r
\r
/* No type available */\r
\r
cave_type *c_ptr;\r
\r
- int cur_pit_type = pick_vault_type(pit_types, d_info[dungeon_idx].pit);\r
+ int cur_pit_type = pick_vault_type(pit_types, d_info[p_ptr->dungeon_idx].pit);\r
vault_aux_type *n_ptr;\r
\r
/* Only in Angband */\r
- if (dungeon_idx != DUNGEON_ANGBAND) return FALSE;\r
+ if (p_ptr->dungeon_idx != DUNGEON_ANGBAND) return FALSE;\r
\r
/* No type available */\r
if (cur_pit_type < 0) return FALSE;\r
if (!find_space(&yval, &xval, ysize + 2, xsize + 2)) return FALSE;\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
/* Get corner values */\r
y1 = yval - ysize / 2;\r
if (!find_space(&yval, &xval, ysize + 2, xsize + 2)) return FALSE;\r
\r
/* Choose lite or dark */\r
- light = ((dun_level <= randint1(25)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));\r
+ light = ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));\r
\r
\r
/* Get corner values */\r
do\r
{\r
vtype = randint1(15);\r
- } while ((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) &&\r
+ } while ((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) &&\r
((vtype == 1) || (vtype == 3) || (vtype == 8) || (vtype == 9) || (vtype == 11)));\r
#else /* ALLOW_CAVERNS_AND_LAKES */\r
do\r
{\r
vtype = randint1(7);\r
- } while ((d_info[dungeon_idx].flags1 & DF1_NO_CAVE) &&\r
+ } while ((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) &&\r
((vtype == 1) || (vtype == 3)));\r
#endif /* ALLOW_CAVERNS_AND_LAKES */\r
\r
}
/* Normal dungeon */
- if (!(d_info[dungeon_idx].flags1 & DF1_NO_CAVE))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE))
{
/* Choose a random one */
pick = randint1(candidates);
bool done, light;
light = done = FALSE;
- if ((dun_level <= randint1(50)) && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;
+ if ((dun_level <= randint1(50)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;
/* Make a cave the size of the dungeon */
xsize = cur_wid - 1;
/* Light lava */
if (cave_have_flag_bold(y0 + y - yhsize, x0 + x - xhsize, FF_LAVA))
{
- if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS)) cave[y0 + y - yhsize][x0 + x - xhsize].info |= CAVE_GLOW;
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) cave[y0 + y - yhsize][x0 + x - xhsize].info |= CAVE_GLOW;
}
}
}
msg_print_wizard(CHEAT_DUNGEON, _("迷路ランダムVaultを生成しました。", "Maze Vault."));
/* Choose lite or dark */
- light = ((dun_level <= randint1(25)) && is_vault && !(d_info[dungeon_idx].flags1 & DF1_DARKNESS));
+ light = ((dun_level <= randint1(25)) && is_vault && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));
/* Pick a random room size - randomized by calling routine */
dy = ysize / 2 - 1;
/*! @details ダンジョンにBEGINNER、CHAMELEON、SMALLESTいずれのフラグもなく、
* かつ「常に通常でない部屋を生成する」フラグがONならば、
* GRATER_VAULTのみを生成対象とする。 / Ironman sees only Greater Vaults */
- if (ironman_rooms && !((d_info[dungeon_idx].flags1 & (DF1_BEGINNER | DF1_CHAMELEON | DF1_SMALLEST))))
+ if (ironman_rooms && !((d_info[p_ptr->dungeon_idx].flags1 & (DF1_BEGINNER | DF1_CHAMELEON | DF1_SMALLEST))))
{
for (i = 0; i < ROOM_T_MAX; i++)
{
}
/*! @details ダンジョンにNO_VAULTフラグがあるならば、LESSER_VAULT / GREATER_VAULT/ RANDOM_VAULTを除外 / Forbidden vaults */
- else if (d_info[dungeon_idx].flags1 & DF1_NO_VAULT)
+ else if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_VAULT)
{
prob_list[ROOM_T_LESSER_VAULT] = 0;
prob_list[ROOM_T_GREATER_VAULT] = 0;
}
/*! @details ダンジョンにBEGINNERフラグがあるならば、FIXED_ROOMを除外 / Forbidden vaults */
- if (d_info[dungeon_idx].flags1 & DF1_BEGINNER)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER)
{
prob_list[ROOM_T_FIXED] = 0;
}
/*! @details ダンジョンにNO_CAVEフラグがある場合、FRACAVEの生成枠がNORMALに与えられる。CRIPT、OVALの生成枠がINNER_Fに与えられる。/ NO_CAVE dungeon (Castle)*/
- if (d_info[dungeon_idx].flags1 & DF1_NO_CAVE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE)
{
MOVE_PLIST(ROOM_T_NORMAL, ROOM_T_FRACAVE);
MOVE_PLIST(ROOM_T_INNER_FEAT, ROOM_T_CRYPT);
}
/*! @details ダンジョンにCAVEフラグがある場合、NORMALの生成枠がFRACAVEに与えられる。/ CAVE dungeon (Orc cave etc.) */
- else if (d_info[dungeon_idx].flags1 & DF1_CAVE)
+ else if (d_info[p_ptr->dungeon_idx].flags1 & DF1_CAVE)
{
MOVE_PLIST(ROOM_T_FRACAVE, ROOM_T_NORMAL);
}
}
/*! @details ダンジョンに最初からGLASS_ROOMフラグがある場合、GLASS を生成から除外。/ Forbidden glass rooms */
- if (!(d_info[dungeon_idx].flags1 & DF1_GLASS_ROOM))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_ROOM))
{
prob_list[ROOM_T_GLASS] = 0;
}
/*! @details ARCADEは同フラグがダンジョンにないと生成されない。 / Forbidden glass rooms */
- if (!(d_info[dungeon_idx].flags1 & DF1_ARCADE))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_ARCADE))
{
prob_list[ROOM_T_ARCADE] = 0;
}
wr_s16b(max_floor_id);
/* Current dungeon type */
- wr_byte((byte_hack)dungeon_idx);
+ wr_byte((byte_hack)p_ptr->dungeon_idx);
/*** No saved floor (On the surface etc.) ***/
sprintf(the_score.cur_lev, "%3d", MIN((u16b)p_ptr->lev, 999));
sprintf(the_score.cur_dun, "%3d", (int)dun_level);
sprintf(the_score.max_lev, "%3d", MIN((u16b)p_ptr->max_plv, 999));
- sprintf(the_score.max_dun, "%3d", (int)max_dlv[dungeon_idx]);
+ sprintf(the_score.max_dun, "%3d", (int)max_dlv[p_ptr->dungeon_idx]);
/* Save the cause of death (31 chars) */
if (strlen(p_ptr->died_from) >= sizeof(the_score.how))
sprintf(the_score.cur_lev, "%3d", MIN((u16b)p_ptr->lev, 999));
sprintf(the_score.cur_dun, "%3d", (int)dun_level);
sprintf(the_score.max_lev, "%3d", MIN((u16b)p_ptr->max_plv, 999));
- sprintf(the_score.max_dun, "%3d", (int)max_dlv[dungeon_idx]);
+ sprintf(the_score.max_dun, "%3d", (int)max_dlv[p_ptr->dungeon_idx]);
/* Hack -- no cause of death */
/* まだ死んでいないときの識別文字 */
case GF_LITE:
{
/* Turn on the light */
- if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
c_ptr->info |= (CAVE_GLOW);
note_spot(y, x);
bool detect = FALSE;
cave_type *c_ptr;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
/* Scan the current panel */
for (y = 1; y < cur_hgt - 1; y++)
bool detect = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
/* Scan objects */
for (i = 1; i < o_max; i++)
bool detect = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
/* Scan objects */
for (i = 1; i < o_max; i++)
bool detect = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
/* Scan all objects */
for (i = 1; i < o_max; i++)
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
POSITION y, x;
bool flag = FALSE;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
bool flag = FALSE;
concptr desc_monsters = _("変なモンスター", "weird monsters");
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
for (i = 1; i < m_max; i++)
{
c_ptr = &cave[y][x];
if (is_mirror_grid(c_ptr)) c_ptr->info |= CAVE_GLOW;
- else if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ else if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
DIRECTION i;
POSITION yy, xx;
c_ptr = &cave[yy][xx];
if (is_mirror_grid(c_ptr)) c_ptr->info |= CAVE_GLOW;
- else if (!(d_info[dungeon_idx].flags1 & DF1_DARKNESS))
+ else if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS))
{
DIRECTION ii;
POSITION yyy, xxx;
{
BIT_FLAGS flg = PROJECT_GRID | PROJECT_KILL;
- if (d_info[dungeon_idx].flags1 & DF1_DARKNESS)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)
{
msg_print(_("ダンジョンが光を吸収した。", "The darkness of this dungeon absorb your light."));
return FALSE;
int dummy;
cave_type *c_ptr;
- if (d_info[dungeon_idx].flags1 & DF1_NO_MELEE)
+ if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
{
msg_print(_("なぜか攻撃することができない。", "Something prevent you from attacking."));
return FALSE;
}
/* Down only */
- if ((ironman_downward && (m_idx <= 0)) || (dun_level <= d_info[dungeon_idx].mindepth))
+ if ((ironman_downward && (m_idx <= 0)) || (dun_level <= d_info[p_ptr->dungeon_idx].mindepth))
{
#ifdef JP
if (see_m) msg_format("%^sは床を突き破って沈んでいく。", m_name);
{
if (!dun_level)
{
- dungeon_idx = ironman_downward ? DUNGEON_ANGBAND : p_ptr->recall_dungeon;
+ p_ptr->dungeon_idx = ironman_downward ? DUNGEON_ANGBAND : p_ptr->recall_dungeon;
p_ptr->oldpy = p_ptr->y;
p_ptr->oldpx = p_ptr->x;
}
if (!dun_level)
{
- dun_level = d_info[dungeon_idx].mindepth;
+ dun_level = d_info[p_ptr->dungeon_idx].mindepth;
prepare_change_floor_mode(CFM_RAND_PLACE);
}
else
}
/* Up only */
- else if (quest_number(dun_level) || (dun_level >= d_info[dungeon_idx].maxdepth))
+ else if (quest_number(dun_level) || (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth))
{
#ifdef JP
if (see_m) msg_format("%^sは天井を突き破って宙へ浮いていく。", m_name);
if (m_idx <= 0) /* To player */
{
/* Never reach this code on the surface */
- /* if (!dun_level) dungeon_idx = p_ptr->recall_dungeon; */
+ /* if (!dun_level) p_ptr->dungeon_idx = p_ptr->recall_dungeon; */
if (record_stair) do_cmd_write_nikki(NIKKI_TELE_LEV, 1, NULL);
return TRUE;
}
- if (dun_level && (max_dlv[dungeon_idx] > dun_level) && !creature_ptr->inside_quest && !creature_ptr->word_recall)
+ if (dun_level && (max_dlv[p_ptr->dungeon_idx] > dun_level) && !creature_ptr->inside_quest && !creature_ptr->word_recall)
{
if (get_check(_("ここは最深到達階より浅い階です。この階に戻って来ますか? ", "Reset recall depth? ")))
{
- max_dlv[dungeon_idx] = dun_level;
+ max_dlv[p_ptr->dungeon_idx] = dun_level;
if (record_maxdepth)
- do_cmd_write_nikki(NIKKI_TRUMP, dungeon_idx, _("帰還のときに", "when recall from dungeon"));
+ do_cmd_write_nikki(NIKKI_TRUMP, p_ptr->dungeon_idx, _("帰還のときに", "when recall from dungeon"));
}
}
if (p_ptr->inside_arena || quest_number(dun_level)) continue;\r
\r
/* Hack -- no trap doors on the deepest level */\r
- if (dun_level >= d_info[dungeon_idx].maxdepth) continue;\r
+ if (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth) continue;\r
\r
break;\r
}\r
QUEST_IDX inside_quest; /* Inside quest level */
bool inside_battle; /* Is character inside tougijou? */
+ DUNGEON_IDX dungeon_idx; /* current dungeon index */
POSITION wilderness_x; /* Coordinates in the wilderness */
POSITION wilderness_y;
bool wild_mode;
{ // TODO マクロで類似条件を統合すること
if(quest[i].status == QUEST_STATUS_TAKEN &&
(quest[i].type == QUEST_TYPE_KILL_LEVEL || quest[i].type == QUEST_TYPE_RANDOM) &&
- quest[i].level == dun_level && dungeon_idx == quest[i].dungeon)
+ quest[i].level == dun_level && p_ptr->dungeon_idx == quest[i].dungeon)
{
if(play_music(TERM_XTRA_MUSIC_QUEST, i))
{
}
}
- if(dungeon_idx)
+ if(p_ptr->dungeon_idx)
{
if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2);
else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1);
else
{
- if(play_music(TERM_XTRA_MUSIC_DUNGEON, dungeon_idx))
+ if(play_music(TERM_XTRA_MUSIC_DUNGEON, p_ptr->dungeon_idx))
{
if(dun_level < 40) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW);
else if(dun_level < 80) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED);
/*
* Which dungeon ?
*/
-DUNGEON_IDX dungeon_idx;
DEPTH *max_dlv;
FEAT_IDX feat_wall_outer;
else if (!dun_level && p_ptr->town_num)
return town[p_ptr->town_num].name;
else
- return d_name+d_info[dungeon_idx].name;
+ return d_name+d_info[p_ptr->dungeon_idx].name;
}
/*!
{
strcpy(depths, _("地上", "Surf."));
}
- else if (p_ptr->inside_quest && !dungeon_idx)
+ else if (p_ptr->inside_quest && !p_ptr->dungeon_idx)
{
strcpy(depths, _("地上", "Quest"));
}
sprintf(ppp, "Jump which dungeon : ");
/* Default */
- sprintf(tmp_val, "%d", dungeon_idx);
+ sprintf(tmp_val, "%d", p_ptr->dungeon_idx);
/* Ask for a level */
if (!get_string(ppp, tmp_val, 2)) return;
/* Extract request */
command_arg = (COMMAND_ARG)atoi(tmp_val);
- dungeon_idx = tmp_dungeon_type;
+ p_ptr->dungeon_idx = tmp_dungeon_type;
}
/* Paranoia */
- if (command_arg < d_info[dungeon_idx].mindepth) command_arg = 0;
- if (command_arg > d_info[dungeon_idx].maxdepth) command_arg = (COMMAND_ARG)d_info[dungeon_idx].maxdepth;
+ if (command_arg < d_info[p_ptr->dungeon_idx].mindepth) command_arg = 0;
+ if (command_arg > d_info[p_ptr->dungeon_idx].maxdepth) command_arg = (COMMAND_ARG)d_info[p_ptr->dungeon_idx].maxdepth;
/* Accept request */
msg_format("You jump to dungeon level %d.", command_arg);
prepare_change_floor_mode(CFM_RAND_PLACE);
- if (!dun_level) dungeon_idx = 0;
+ if (!dun_level) p_ptr->dungeon_idx = 0;
p_ptr->inside_arena = FALSE;
p_ptr->wild_mode = FALSE;
creature_ptr->inside_battle = FALSE;
leaving_quest = 0;
creature_ptr->inside_quest = 0;
- if (dungeon_idx) creature_ptr->recall_dungeon = dungeon_idx;
- dungeon_idx = 0;
+ if (p_ptr->dungeon_idx) creature_ptr->recall_dungeon = p_ptr->dungeon_idx;
+ p_ptr->dungeon_idx = 0;
if (lite_town || vanilla_town)
{
creature_ptr->wilderness_y = 1;