{
determine_bounty_uniques();
- for (i = 0; i < MAX_KUBI; i++)
+ for (i = 0; i < MAX_BOUNTY; i++)
{
/* Is this bounty unique already dead? */
if (!r_info[current_world_ptr->bounty_r_idx[i]].max_num) current_world_ptr->bounty_r_idx[i] += 10000;
}
else
{
- for (i = 0; i < MAX_KUBI; i++)
+ for (i = 0; i < MAX_BOUNTY; i++)
{
rd_s16b(¤t_world_ptr->bounty_r_idx[i]);
}
/* Get a new record */
- o_idx = o_pop();
+ o_idx = o_pop(floor_ptr);
if (i != o_idx)
{
/*!
* @brief 保存されたフロアを読み込む / Read the saved floor
+ * @param player_ptr プレーヤーへの参照ポインタ
+ * @param sf_ptr 最後に保存されたフロアへの参照ポインタ
* @return info読み込みエラーコード
* @details
* この関数は、セーブデータの互換性を保つために多くのデータ改変処理を備えている。
* The monsters/objects must be loaded in the same order
* that they were stored, since the actual indexes matter.
*/
-static errr rd_saved_floor(saved_floor_type *sf_ptr, floor_type *floor_ptr)
+static errr rd_saved_floor(player_type *player_ptr, saved_floor_type *sf_ptr)
{
POSITION ymax, xmax;
POSITION y, x;
u16b limit;
grid_template_type *templates;
-
- clear_cave(floor_ptr);
+ floor_type *floor_ptr = player_ptr->current_floor_ptr;
+ clear_cave(player_ptr);
/* Mega-Hack -- no player yet */
- p_ptr->x = p_ptr->y = 0;
+ player_ptr->x = player_ptr->y = 0;
/*** Basic info ***/
floor_ptr->num_repro = (MONSTER_NUMBER)tmp16s;
rd_u16b(&tmp16u);
- p_ptr->y = (POSITION)tmp16u;
+ player_ptr->y = (POSITION)tmp16u;
rd_u16b(&tmp16u);
- p_ptr->x = (POSITION)tmp16u;
+ player_ptr->x = (POSITION)tmp16u;
rd_s16b(&tmp16s);
floor_ptr->height = (POSITION)tmp16s;
rd_s16b(&tmp16s);
floor_ptr->width = (POSITION)tmp16s;
- rd_byte(&p_ptr->feeling);
+ rd_byte(&player_ptr->feeling);
/* Get a new record */
- o_idx = o_pop();
+ o_idx = o_pop(floor_ptr);
if (i != o_idx) return 152;
/*!
* @brief 保存されたフロアを読み込む(現版) / Read the dungeon (new method)
- * @return なし
+ * @param player_ptr プレーヤーへの参照ポインタ
+ * @return エラーコード
* @details
* The monsters/objects must be loaded in the same order
* that they were stored, since the actual indexes matter.
*/
-static errr rd_dungeon(void)
+static errr rd_dungeon(player_type *player_ptr)
{
errr err = 0;
s16b tmp16s;
byte num;
int i;
- /* Initialize saved_floors array and temporal files */
- init_saved_floors(FALSE);
+ /* Initialize saved_floors array and temporary files */
+ init_saved_floors(player_ptr, FALSE);
/* Older method */
if (h_older_than(1, 5, 0, 0))
{
- err = rd_dungeon_old(p_ptr->current_floor_ptr);
+ err = rd_dungeon_old(player_ptr->current_floor_ptr);
/* Prepare floor_id of current floor */
- if (p_ptr->dungeon_idx)
+ if (player_ptr->dungeon_idx)
{
- p_ptr->floor_id = get_new_floor_id();
- get_sf_ptr(p_ptr->floor_id)->dun_level = p_ptr->current_floor_ptr->dun_level;
+ player_ptr->floor_id = get_new_floor_id(player_ptr);
+ get_sf_ptr(player_ptr->floor_id)->dun_level = player_ptr->current_floor_ptr->dun_level;
}
return err;
/* Current dungeon type */
rd_byte(&tmp8u);
- p_ptr->dungeon_idx = (DUNGEON_IDX)tmp8u;
+ player_ptr->dungeon_idx = (DUNGEON_IDX)tmp8u;
/* Number of the saved_floors array elements */
rd_byte(&num);
if (!num)
{
/* Read the current floor data */
- err = rd_saved_floor(NULL, p_ptr->current_floor_ptr);
+ err = rd_saved_floor(player_ptr, NULL);
}
/*** In the dungeon ***/
}
- /* Move saved floors data to temporal files */
+ /* Move saved floors data to temporary files */
for (i = 0; i < num; i++)
{
saved_floor_type *sf_ptr = &saved_floors[i];
if (tmp8u) continue;
/* Read from the save file */
- err = rd_saved_floor(sf_ptr, p_ptr->current_floor_ptr);
+ err = rd_saved_floor(player_ptr, sf_ptr);
/* Error? */
if (err) break;
- /* Re-save as temporal saved floor file */
+ /* Re-save as temporary saved floor file */
if (!save_floor(sf_ptr, SLF_SECOND)) err = 182;
/* Error? */
if (err) break;
}
- /* Finally load current floor data from temporal file */
+ /* Finally load current floor data from temporary file */
if (!err)
{
- if (!load_floor(get_sf_ptr(p_ptr->floor_id), SLF_SECOND)) err = 183;
+ if (!load_floor(player_ptr, get_sf_ptr(player_ptr->floor_id), SLF_SECOND)) err = 183;
}
}
break;
case 182:
- note(_("テンポラリ・ファイルを作成できません!", "Failed to make temporal files!"));
+ note(_("テンポラリ・ファイルを作成できません!", "Failed to make temporary files!"));
break;
case 183:
init_flags = INIT_ASSIGN;
creature_ptr->current_floor_ptr->inside_quest = (QUEST_IDX)i;
- process_dungeon_file("q_info.txt", 0, 0, 0, 0);
+ process_dungeon_file(creature_ptr, "q_info.txt", 0, 0, 0, 0);
creature_ptr->current_floor_ptr->inside_quest = old_inside_quest;
}
}
/* Dead players have no dungeon */
note(_("ダンジョン復元中...", "Restoring Dungeon..."));
- if (rd_dungeon())
+ if (rd_dungeon(creature_ptr))
{
note(_("ダンジョンデータ読み込み失敗", "Error reading dungeon data"));
return (34);
/*!
* @brief 保存フロア読み込みのサブ関数 / Actually load and verify a floor save data
+ * @param player_ptr プレーヤーへの参照ポインタ
* @param sf_ptr 保存フロア読み込み先
* @return 成功したらtrue
*/
-static bool load_floor_aux(saved_floor_type *sf_ptr)
+static bool load_floor_aux(player_type *player_ptr, saved_floor_type *sf_ptr)
{
byte tmp8u;
u32b tmp32u;
x_check = 0L;
/* Set the version number to current version */
- /* Never load old temporal files */
+ /* Never load old temporary files */
current_world_ptr->h_ver_extra = H_VER_EXTRA;
current_world_ptr->h_ver_patch = H_VER_PATCH;
current_world_ptr->h_ver_minor = H_VER_MINOR;
if (saved_floor_file_sign != tmp32u) return FALSE;
/* Read -- have error? */
- if (rd_saved_floor(sf_ptr, p_ptr->current_floor_ptr)) return FALSE;
+ if (rd_saved_floor(player_ptr, sf_ptr)) return FALSE;
#ifdef VERIFY_CHECKSUMS
/*!
- * @brief 一時保存フロア情報を読み込む / Attempt to load the temporally saved-floor data
+ * @brief 一時保存フロア情報を読み込む / Attempt to load the temporarily saved-floor data
+ * @param player_ptr プレーヤーへの参照ポインタ
* @param sf_ptr 保存フロア読み込み先
* @param mode オプション
* @return 成功したらtrue
*/
-bool load_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode)
+bool load_floor(player_type *player_ptr, saved_floor_type *sf_ptr, BIT_FLAGS mode)
{
FILE *old_fff = NULL;
byte old_xor_byte = 0;
byte old_kanji_code = kanji_code;
/*
- * Temporal files are always written in system depended kanji
+ * Temporary files are always written in system depended kanji
* code.
*/
#ifdef JP
if (ok)
{
/* Load saved floor data from file */
- ok = load_floor_aux(sf_ptr);
+ ok = load_floor_aux(player_ptr, sf_ptr);
/* Check for errors */
if (ferror(fff)) ok = FALSE;