X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Ffloor-save.c;h=a4db8aff55252676333ab657a74eef71d255202e;hb=faa97d03269c2d684d047d5c0d67e4fc4132fbd8;hp=0215f8c1ce3f54d1f739ac04433eed6062bd24a0;hpb=f310b7f2422be36c54051e24e238f5b9bec07264;p=hengband%2Fhengband.git diff --git a/src/floor-save.c b/src/floor-save.c index 0215f8c1c..a4db8aff5 100644 --- a/src/floor-save.c +++ b/src/floor-save.c @@ -315,7 +315,7 @@ FLOOR_IDX get_new_floor_id(void) sf_ptr->visit_mark = latest_visit_mark++; /* sf_ptr->dun_level may be changed later */ - sf_ptr->dun_level = current_floor_ptr->dun_level; + sf_ptr->dun_level = p_ptr->current_floor_ptr->dun_level; /* Increment number of floor_id */ @@ -396,7 +396,7 @@ static void preserve_pet(void) if (p_ptr->riding) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[p_ptr->riding]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[p_ptr->riding]; /* Pet of other pet don't follow. */ if (m_ptr->parent_m_idx) @@ -421,9 +421,9 @@ static void preserve_pet(void) */ if (!p_ptr->wild_mode && !p_ptr->inside_arena && !p_ptr->phase_out) { - for (i = current_floor_ptr->m_max - 1, num = 1; (i >= 1 && num < MAX_PARTY_MON); i--) + for (i = p_ptr->current_floor_ptr->m_max - 1, num = 1; (i >= 1 && num < MAX_PARTY_MON); i--) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i]; if (!monster_is_valid(m_ptr)) continue; if (!is_pet(m_ptr)) continue; @@ -459,7 +459,7 @@ static void preserve_pet(void) } } - (void)COPY(&party_mon[num], ¤t_floor_ptr->m_list[i], monster_type); + (void)COPY(&party_mon[num], &p_ptr->current_floor_ptr->m_list[i], monster_type); num++; @@ -470,9 +470,9 @@ static void preserve_pet(void) if (record_named_pet) { - for (i = current_floor_ptr->m_max - 1; i >=1; i--) + for (i = p_ptr->current_floor_ptr->m_max - 1; i >=1; i--) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i]; GAME_TEXT m_name[MAX_NLEN]; if (!monster_is_valid(m_ptr)) continue; @@ -487,12 +487,12 @@ static void preserve_pet(void) /* Pet of other pet may disappear. */ - for (i = current_floor_ptr->m_max - 1; i >=1; i--) + for (i = p_ptr->current_floor_ptr->m_max - 1; i >=1; i--) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i]; /* Are there its parent? */ - if (m_ptr->parent_m_idx && !current_floor_ptr->m_list[m_ptr->parent_m_idx].r_idx) + if (m_ptr->parent_m_idx && !p_ptr->current_floor_ptr->m_list[m_ptr->parent_m_idx].r_idx) { /* Its parent have gone, it also goes away. */ @@ -578,10 +578,10 @@ static void place_pet(player_type *master_ptr) if (m_idx) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[m_idx]; monster_race *r_ptr; - current_floor_ptr->grid_array[cy][cx].m_idx = m_idx; + p_ptr->current_floor_ptr->grid_array[cy][cx].m_idx = m_idx; m_ptr->r_idx = party_mon[i].r_idx; @@ -611,7 +611,7 @@ static void place_pet(player_type *master_ptr) /* r_ptr->cur_num++; */ /* Hack -- Count the number of "reproducers" */ - if (r_ptr->flags2 & RF2_MULTIPLY) current_floor_ptr->num_repro++; + if (r_ptr->flags2 & RF2_MULTIPLY) p_ptr->current_floor_ptr->num_repro++; } else @@ -652,10 +652,10 @@ static void update_unique_artifact(s16b cur_floor_id) int i; /* Maintain unique monsters */ - for (i = 1; i < current_floor_ptr->m_max; i++) + for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++) { monster_race *r_ptr; - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i]; if (!monster_is_valid(m_ptr)) continue; @@ -671,9 +671,9 @@ static void update_unique_artifact(s16b cur_floor_id) } /* Maintain artifatcs */ - for (i = 1; i < current_floor_ptr->o_max; i++) + for (i = 1; i < p_ptr->current_floor_ptr->o_max; i++) { - object_type *o_ptr = ¤t_floor_ptr->o_list[i]; + object_type *o_ptr = &p_ptr->current_floor_ptr->o_list[i]; if (!OBJECT_IS_VALID(o_ptr)) continue; @@ -690,13 +690,13 @@ static void update_unique_artifact(s16b cur_floor_id) * @brief フロア移動時、プレイヤーの移動先モンスターが既にいた場合ランダムな近隣に移動させる / When a monster is at a place where player will return, * @return なし */ -static void get_out_monster(void) +static void get_out_monster(floor_type *floor_ptr, player_type *protected_ptr) { int tries = 0; POSITION dis = 1; - POSITION oy = p_ptr->y; - POSITION ox = p_ptr->x; - MONSTER_IDX m_idx = current_floor_ptr->grid_array[oy][ox].m_idx; + POSITION oy = protected_ptr->y; + POSITION ox = protected_ptr->x; + MONSTER_IDX m_idx = floor_ptr->grid_array[oy][ox].m_idx; /* Nothing to do if no monster */ if (!m_idx) return; @@ -722,27 +722,27 @@ static void get_out_monster(void) if (tries > 20 * dis * dis) dis++; /* Ignore illegal locations */ - if (!in_bounds(ny, nx)) continue; + if (!in_bounds(floor_ptr, ny, nx)) continue; /* Require "empty" floor space */ if (!cave_empty_bold(ny, nx)) continue; /* Hack -- no teleport onto glyph of warding */ - if (is_glyph_grid(¤t_floor_ptr->grid_array[ny][nx])) continue; - if (is_explosive_rune_grid(¤t_floor_ptr->grid_array[ny][nx])) continue; + if (is_glyph_grid(&floor_ptr->grid_array[ny][nx])) continue; + if (is_explosive_rune_grid(&floor_ptr->grid_array[ny][nx])) continue; /* ...nor onto the Pattern */ if (pattern_tile(ny, nx)) continue; /*** It's a good place ***/ - m_ptr = ¤t_floor_ptr->m_list[m_idx]; + m_ptr = &floor_ptr->m_list[m_idx]; /* Update the old location */ - current_floor_ptr->grid_array[oy][ox].m_idx = 0; + floor_ptr->grid_array[oy][ox].m_idx = 0; /* Update the new location */ - current_floor_ptr->grid_array[ny][nx].m_idx = m_idx; + floor_ptr->grid_array[ny][nx].m_idx = m_idx; /* Move the monster */ m_ptr->fy = ny; @@ -769,11 +769,11 @@ static void locate_connected_stairs(saved_floor_type *sf_ptr, BIT_FLAGS floor_mo int i; /* Search usable stairs */ - for (y = 0; y < current_floor_ptr->height; y++) + for (y = 0; y < p_ptr->current_floor_ptr->height; y++) { - for (x = 0; x < current_floor_ptr->width; x++) + for (x = 0; x < p_ptr->current_floor_ptr->width; x++) { - grid_type *g_ptr = ¤t_floor_ptr->grid_array[y][x]; + grid_type *g_ptr = &p_ptr->current_floor_ptr->grid_array[y][x]; feature_type *f_ptr = &f_info[g_ptr->feat]; bool ok = FALSE; @@ -840,7 +840,7 @@ static void locate_connected_stairs(saved_floor_type *sf_ptr, BIT_FLAGS floor_mo prepare_change_floor_mode(CFM_RAND_PLACE | CFM_NO_RETURN); /* Mega Hack -- It's not the stairs you enter. Disable it. */ - if (!feat_uses_special(current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].feat)) current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].special = 0; + if (!feat_uses_special(p_ptr->current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].feat)) p_ptr->current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].special = 0; } else { @@ -858,14 +858,15 @@ static void locate_connected_stairs(saved_floor_type *sf_ptr, BIT_FLAGS floor_mo * / Maintain quest monsters, mark next floor_id at stairs, save current floor, and prepare to enter next floor. * @return なし */ -void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) +void leave_floor(player_type *creature_ptr) { grid_type *g_ptr = NULL; feature_type *f_ptr; saved_floor_type *sf_ptr; MONRACE_IDX quest_r_idx = 0; DUNGEON_IDX i; - + FLOOR_IDX tmp_floor_idx = 0; + /* Preserve pets and prepare to take these to next floor */ preserve_pet(); @@ -879,11 +880,11 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) /* Temporary get a floor_id (for Arena) */ if (!creature_ptr->floor_id && - (floor_mode & CFM_SAVE_FLOORS) && - !(floor_mode & CFM_NO_RETURN)) + (creature_ptr->change_floor_mode & CFM_SAVE_FLOORS) && + !(creature_ptr->change_floor_mode & CFM_NO_RETURN)) { /* Get temporal floor_id */ - creature_ptr->floor_id = get_new_floor_id(); + tmp_floor_idx = get_new_floor_id(); } /* Search the quest monster index */ @@ -892,7 +893,7 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) if ((quest[i].status == QUEST_STATUS_TAKEN) && ((quest[i].type == QUEST_TYPE_KILL_LEVEL) || (quest[i].type == QUEST_TYPE_RANDOM)) && - (quest[i].level == current_floor_ptr->dun_level) && + (quest[i].level == p_ptr->current_floor_ptr->dun_level) && (creature_ptr->dungeon_idx == quest[i].dungeon) && !(quest[i].flags & QUEST_FLAG_PRESET)) { @@ -901,10 +902,10 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) } /* Maintain quest monsters */ - for (i = 1; i < current_floor_ptr->m_max; i++) + for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++) { monster_race *r_ptr; - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i]; if (!monster_is_valid(m_ptr)) continue; @@ -937,19 +938,19 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) } /* Extract current floor info or NULL */ - sf_ptr = get_sf_ptr(creature_ptr->floor_id); + sf_ptr = get_sf_ptr(tmp_floor_idx); /* Choose random stairs */ - if ((floor_mode & CFM_RAND_CONNECT) && creature_ptr->floor_id) + if ((creature_ptr->change_floor_mode & CFM_RAND_CONNECT) && tmp_floor_idx) { - locate_connected_stairs(sf_ptr, floor_mode); + locate_connected_stairs(sf_ptr, creature_ptr->change_floor_mode); } /* Extract new dungeon level */ - if (floor_mode & CFM_SAVE_FLOORS) + if (creature_ptr->change_floor_mode & CFM_SAVE_FLOORS) { /* Extract stair position */ - g_ptr = ¤t_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x]; + g_ptr = &p_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x]; f_ptr = &f_info[g_ptr->feat]; /* Get back to old saved floor? */ @@ -967,35 +968,35 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) } /* Climb up/down some sort of stairs */ - if (floor_mode & (CFM_DOWN | CFM_UP)) + if (creature_ptr->change_floor_mode & (CFM_DOWN | CFM_UP)) { int move_num = 0; /* Extract level movement number */ - if (floor_mode & CFM_DOWN) move_num = 1; - else if (floor_mode & CFM_UP) move_num = -1; + if (creature_ptr->change_floor_mode & CFM_DOWN) move_num = 1; + else if (creature_ptr->change_floor_mode & CFM_UP) move_num = -1; /* Shafts are deeper than normal stairs */ - if (floor_mode & CFM_SHAFT) + if (creature_ptr->change_floor_mode & CFM_SHAFT) move_num += SGN(move_num); /* Get out from or Enter the dungeon */ - if (floor_mode & CFM_DOWN) + if (creature_ptr->change_floor_mode & CFM_DOWN) { - if (!current_floor_ptr->dun_level) + if (!p_ptr->current_floor_ptr->dun_level) move_num = d_info[creature_ptr->dungeon_idx].mindepth; } - else if (floor_mode & CFM_UP) + else if (creature_ptr->change_floor_mode & CFM_UP) { - if (current_floor_ptr->dun_level + move_num < d_info[creature_ptr->dungeon_idx].mindepth) - move_num = -current_floor_ptr->dun_level; + if (p_ptr->current_floor_ptr->dun_level + move_num < d_info[creature_ptr->dungeon_idx].mindepth) + move_num = -p_ptr->current_floor_ptr->dun_level; } - current_floor_ptr->dun_level += move_num; + p_ptr->current_floor_ptr->dun_level += move_num; } /* Leaving the dungeon to town */ - if (!current_floor_ptr->dun_level && creature_ptr->dungeon_idx) + if (!p_ptr->current_floor_ptr->dun_level && creature_ptr->dungeon_idx) { creature_ptr->leaving_dungeon = TRUE; if (!vanilla_town && !lite_town) @@ -1007,11 +1008,11 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) creature_ptr->dungeon_idx = 0; /* Reach to the surface -- Clear all saved floors */ - floor_mode &= ~CFM_SAVE_FLOORS; + creature_ptr->change_floor_mode &= ~CFM_SAVE_FLOORS; // TODO } /* Kill some old saved floors */ - if (!(floor_mode & CFM_SAVE_FLOORS)) + if (!(creature_ptr->change_floor_mode & CFM_SAVE_FLOORS)) { /* Kill all saved floors */ for (i = 0; i < MAX_SAVED_FLOORS; i++) @@ -1020,20 +1021,19 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) /* Reset visit_mark count */ latest_visit_mark = 1; } - else if (floor_mode & CFM_NO_RETURN) + else if (creature_ptr->change_floor_mode & CFM_NO_RETURN) { /* Kill current floor */ kill_saved_floor(sf_ptr); } /* No current floor -- Left/Enter dungeon etc... */ - if (!creature_ptr->floor_id) + if (!tmp_floor_idx) { /* No longer need to save current floor */ return; } - /* Mark next floor_id on the previous floor */ if (!new_floor_id) { @@ -1043,32 +1043,32 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) /* Connect from here */ if (g_ptr && !feat_uses_special(g_ptr->feat)) { - g_ptr->special = new_floor_id; + g_ptr->special = tmp_floor_idx; } } /* Fix connection -- level teleportation or trap door */ - if (floor_mode & CFM_RAND_CONNECT) + if (creature_ptr->change_floor_mode & CFM_RAND_CONNECT) { - if (floor_mode & CFM_UP) + if (creature_ptr->change_floor_mode & CFM_UP) sf_ptr->upper_floor_id = new_floor_id; - else if (floor_mode & CFM_DOWN) + else if (creature_ptr->change_floor_mode & CFM_DOWN) sf_ptr->lower_floor_id = new_floor_id; } /* If you can return, you need to save previous floor */ - if ((floor_mode & CFM_SAVE_FLOORS) && - !(floor_mode & CFM_NO_RETURN)) + if ((creature_ptr->change_floor_mode & CFM_SAVE_FLOORS) && + !(creature_ptr->change_floor_mode & CFM_NO_RETURN)) { /* Get out of the my way! */ - get_out_monster(); + get_out_monster(p_ptr->current_floor_ptr, creature_ptr); /* Record the last visit current_world_ptr->game_turn of current floor */ sf_ptr->last_visit = current_world_ptr->game_turn; - forget_lite(current_floor_ptr); + forget_lite(p_ptr->current_floor_ptr); forget_view(); - clear_mon_lite(current_floor_ptr); + clear_mon_lite(p_ptr->current_floor_ptr); /* Save current floor */ if (!save_floor(sf_ptr, 0)) @@ -1088,10 +1088,10 @@ void leave_floor(player_type *creature_ptr, BIT_FLAGS floor_mode) * @return なし * @details * If the floor is an old saved floor, it will be\n - * restored from the temporal file. If the floor is new one, new current_floor_ptr->grid_array\n + * restored from the temporal file. If the floor is new one, new p_ptr->current_floor_ptr->grid_array\n * will be generated.\n */ -void change_floor(BIT_FLAGS floor_mode) +void change_floor(player_type *creature_ptr) { saved_floor_type *sf_ptr; bool loaded = FALSE; @@ -1100,7 +1100,7 @@ void change_floor(BIT_FLAGS floor_mode) current_world_ptr->character_dungeon = FALSE; /* No longer in the trap detecteded region */ - p_ptr->dtrap = FALSE; + creature_ptr->dtrap = FALSE; /* Mega-Hack -- no panel yet */ panel_row_min = 0; @@ -1109,14 +1109,14 @@ void change_floor(BIT_FLAGS floor_mode) panel_col_max = 0; /* Mega-Hack -- not ambushed on the wildness? */ - p_ptr->ambush_flag = FALSE; + creature_ptr->ambush_flag = FALSE; /* No saved floors (On the surface etc.) */ - if (!(floor_mode & CFM_SAVE_FLOORS) && - !(floor_mode & CFM_FIRST_FLOOR)) + if (!(creature_ptr->change_floor_mode & CFM_SAVE_FLOORS) && + !(creature_ptr->change_floor_mode & CFM_FIRST_FLOOR)) { - /* Create current_floor_ptr->grid_array */ - generate_random_floor(current_floor_ptr); + /* Create creature_ptr->current_floor_ptr->grid_array */ + generate_random_floor(creature_ptr->current_floor_ptr); /* Paranoia -- No new saved floor */ new_floor_id = 0; @@ -1144,13 +1144,13 @@ void change_floor(BIT_FLAGS floor_mode) loaded = TRUE; /* Forbid return stairs */ - if (floor_mode & CFM_NO_RETURN) + if (creature_ptr->change_floor_mode & CFM_NO_RETURN) { - grid_type *g_ptr = ¤t_floor_ptr->grid_array[p_ptr->y][p_ptr->x]; + grid_type *g_ptr = &creature_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x]; if (!feat_uses_special(g_ptr->feat)) { - if (floor_mode & (CFM_DOWN | CFM_UP)) + if (creature_ptr->change_floor_mode & (CFM_DOWN | CFM_UP)) { /* Reset to floor */ g_ptr->feat = feat_ground_type[randint0(100)]; @@ -1169,30 +1169,30 @@ void change_floor(BIT_FLAGS floor_mode) * Stair creation/Teleport level/Trap door will take * you the same floor when you used it later again. */ - if (p_ptr->floor_id) + if (creature_ptr->floor_id) { - saved_floor_type *cur_sf_ptr = get_sf_ptr(p_ptr->floor_id); + saved_floor_type *cur_sf_ptr = get_sf_ptr(creature_ptr->floor_id); - if (floor_mode & CFM_UP) + if (creature_ptr->change_floor_mode & CFM_UP) { /* New floor is right-above */ if (cur_sf_ptr->upper_floor_id == new_floor_id) - sf_ptr->lower_floor_id = p_ptr->floor_id; + sf_ptr->lower_floor_id = creature_ptr->floor_id; } - else if (floor_mode & CFM_DOWN) + else if (creature_ptr->change_floor_mode & CFM_DOWN) { /* New floor is right-under */ if (cur_sf_ptr->lower_floor_id == new_floor_id) - sf_ptr->upper_floor_id = p_ptr->floor_id; + sf_ptr->upper_floor_id = creature_ptr->floor_id; } } /* Break connection to killed floor */ else { - if (floor_mode & CFM_UP) + if (creature_ptr->change_floor_mode & CFM_UP) sf_ptr->lower_floor_id = 0; - else if (floor_mode & CFM_DOWN) + else if (creature_ptr->change_floor_mode & CFM_DOWN) sf_ptr->upper_floor_id = 0; } @@ -1202,17 +1202,17 @@ void change_floor(BIT_FLAGS floor_mode) MONSTER_IDX i; GAME_TURN tmp_last_visit = sf_ptr->last_visit; GAME_TURN absence_ticks; - int alloc_chance = d_info[p_ptr->dungeon_idx].max_m_alloc_chance; + int alloc_chance = d_info[creature_ptr->dungeon_idx].max_m_alloc_chance; GAME_TURN alloc_times; while (tmp_last_visit > current_world_ptr->game_turn) tmp_last_visit -= TURNS_PER_TICK * TOWN_DAWN; absence_ticks = (current_world_ptr->game_turn - tmp_last_visit) / TURNS_PER_TICK; /* Maintain monsters */ - for (i = 1; i < current_floor_ptr->m_max; i++) + for (i = 1; i < creature_ptr->current_floor_ptr->m_max; i++) { monster_race *r_ptr; - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[i]; if (!monster_is_valid(m_ptr)) continue; @@ -1246,9 +1246,9 @@ void change_floor(BIT_FLAGS floor_mode) } /* Maintain artifatcs */ - for (i = 1; i < current_floor_ptr->o_max; i++) + for (i = 1; i < creature_ptr->current_floor_ptr->o_max; i++) { - object_type *o_ptr = ¤t_floor_ptr->o_list[i]; + object_type *o_ptr = &creature_ptr->current_floor_ptr->o_list[i]; if (!OBJECT_IS_VALID(o_ptr)) continue; @@ -1293,68 +1293,68 @@ void change_floor(BIT_FLAGS floor_mode) msg_print(_("階段は行き止まりだった。", "The staircases come to a dead end...")); /* Create simple dead end */ - build_dead_end(current_floor_ptr); + build_dead_end(creature_ptr->current_floor_ptr); /* Break connection */ - if (floor_mode & CFM_UP) + if (creature_ptr->change_floor_mode & CFM_UP) { sf_ptr->upper_floor_id = 0; } - else if (floor_mode & CFM_DOWN) + else if (creature_ptr->change_floor_mode & CFM_DOWN) { sf_ptr->lower_floor_id = 0; } } else { - /* Newly create current_floor_ptr->grid_array */ - generate_random_floor(current_floor_ptr); + /* Newly create creature_ptr->current_floor_ptr->grid_array */ + generate_random_floor(creature_ptr->current_floor_ptr); } /* Record last visit current_world_ptr->game_turn */ sf_ptr->last_visit = current_world_ptr->game_turn; - /* Set correct current_floor_ptr->dun_level value */ - sf_ptr->dun_level = current_floor_ptr->dun_level; + /* Set correct creature_ptr->current_floor_ptr->dun_level value */ + sf_ptr->dun_level = creature_ptr->current_floor_ptr->dun_level; /* Create connected stairs */ - if (!(floor_mode & CFM_NO_RETURN)) + if (!(creature_ptr->change_floor_mode & CFM_NO_RETURN)) { /* Extract stair position */ - grid_type *g_ptr = ¤t_floor_ptr->grid_array[p_ptr->y][p_ptr->x]; + grid_type *g_ptr = &creature_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x]; /*** Create connected stairs ***/ /* No stairs down from Quest */ - if ((floor_mode & CFM_UP) && !quest_number(current_floor_ptr->dun_level)) + if ((creature_ptr->change_floor_mode & CFM_UP) && !quest_number(creature_ptr->current_floor_ptr->dun_level)) { - g_ptr->feat = (floor_mode & CFM_SHAFT) ? feat_state(feat_down_stair, FF_SHAFT) : feat_down_stair; + g_ptr->feat = (creature_ptr->change_floor_mode & CFM_SHAFT) ? feat_state(feat_down_stair, FF_SHAFT) : feat_down_stair; } /* No stairs up when ironman_downward */ - else if ((floor_mode & CFM_DOWN) && !ironman_downward) + else if ((creature_ptr->change_floor_mode & CFM_DOWN) && !ironman_downward) { - g_ptr->feat = (floor_mode & CFM_SHAFT) ? feat_state(feat_up_stair, FF_SHAFT) : feat_up_stair; + g_ptr->feat = (creature_ptr->change_floor_mode & CFM_SHAFT) ? feat_state(feat_up_stair, FF_SHAFT) : feat_up_stair; } /* Paranoia -- Clear mimic */ g_ptr->mimic = 0; /* Connect to previous floor */ - g_ptr->special = p_ptr->floor_id; + g_ptr->special = creature_ptr->floor_id; } } /* Arrive at random grid */ - if (floor_mode & (CFM_RAND_PLACE)) + if (creature_ptr->change_floor_mode & (CFM_RAND_PLACE)) { (void)new_player_spot(); } /* You see stairs blocked */ - else if ((floor_mode & CFM_NO_RETURN) && (floor_mode & (CFM_DOWN | CFM_UP))) + else if ((creature_ptr->change_floor_mode & CFM_NO_RETURN) && (creature_ptr->change_floor_mode & (CFM_DOWN | CFM_UP))) { - if (!p_ptr->blind) + if (!creature_ptr->blind) { msg_print(_("突然階段が塞がれてしまった。", "Suddenly the stairs is blocked!")); } @@ -1376,7 +1376,7 @@ void change_floor(BIT_FLAGS floor_mode) } /* Place preserved pet monsters */ - place_pet(p_ptr); + place_pet(creature_ptr); /* Reset travel target place */ forget_travel_flow(); @@ -1385,25 +1385,25 @@ void change_floor(BIT_FLAGS floor_mode) update_unique_artifact(new_floor_id); /* Now the player is in new floor */ - p_ptr->floor_id = new_floor_id; + creature_ptr->floor_id = new_floor_id; /* The dungeon is ready */ current_world_ptr->character_dungeon = TRUE; /* Hack -- Munchkin characters always get whole map */ - if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) - wiz_lite(p_ptr, (bool)(p_ptr->pclass == CLASS_NINJA)); + if (creature_ptr->pseikaku == SEIKAKU_MUNCHKIN) + wiz_lite(creature_ptr, (bool)(creature_ptr->pclass == CLASS_NINJA)); /* Remember when this level was "created" */ - current_floor_ptr->generated_turn = current_world_ptr->game_turn; + creature_ptr->current_floor_ptr->generated_turn = current_world_ptr->game_turn; /* No dungeon feeling yet */ - p_ptr->feeling_turn = current_floor_ptr->generated_turn; - p_ptr->feeling = 0; + creature_ptr->feeling_turn = creature_ptr->current_floor_ptr->generated_turn; + creature_ptr->feeling = 0; /* Clear all flags */ - floor_mode = 0L; + creature_ptr->change_floor_mode = 0L; - select_floor_music(p_ptr); - p_ptr->change_floor_mode = 0; + select_floor_music(creature_ptr); + creature_ptr->change_floor_mode = 0; }