if (current_world_ptr->dungeon_turn > current_world_ptr->dungeon_turn_limit) current_world_ptr->dungeon_turn = current_world_ptr->dungeon_turn_limit;
}
- prevent_turn_overflow();
+ prevent_turn_overflow(customer_ptr);
if ((prev_hour >= 18) && (prev_hour <= 23)) exe_write_diary(customer_ptr, DIARY_DIALY, 0, NULL);
customer_ptr->chp = customer_ptr->mhp;
else if (player_ptr->wild_mode && !(current_world_ptr->game_turn % ((MAX_HGT + MAX_WID) / 2))) current_world_ptr->dungeon_turn++;
}
- prevent_turn_overflow();
+ prevent_turn_overflow(player_ptr);
/* Handle "leaving" */
if (player_ptr->leaving) break;
* @details アンデッド種族は18:00からゲームを開始するので、この修正を予め行う。
* @return 修正をかけた後のゲームターン
*/
-s32b turn_real(s32b hoge)
+s32b turn_real(player_type *player_ptr, s32b hoge)
{
- switch (p_ptr->start_race)
+ switch (player_ptr->start_race)
{
case RACE_VAMPIRE:
case RACE_SKELETON:
/*!
* @brief ターンのオーバーフローに対する対処
+ * @param player_ptr プレーヤーへの参照ポインタ
* @details ターン及びターンを記録する変数をターンの限界の1日前まで巻き戻す.
* @return 修正をかけた後のゲームターン
*/
-void prevent_turn_overflow(void)
+void prevent_turn_overflow(player_type *player_ptr)
{
int rollback_days, i, j;
s32b rollback_turns;
if (current_world_ptr->game_turn > rollback_turns) current_world_ptr->game_turn -= rollback_turns;
else current_world_ptr->game_turn = 1;
- if (p_ptr->current_floor_ptr->generated_turn > rollback_turns) p_ptr->current_floor_ptr->generated_turn -= rollback_turns;
- else p_ptr->current_floor_ptr->generated_turn = 1;
+ floor_type *floor_ptr = player_ptr->current_floor_ptr;
+ if (floor_ptr->generated_turn > rollback_turns) floor_ptr->generated_turn -= rollback_turns;
+ else floor_ptr->generated_turn = 1;
if (current_world_ptr->arena_start_turn > rollback_turns) current_world_ptr->arena_start_turn -= rollback_turns;
else current_world_ptr->arena_start_turn = 1;
- if (p_ptr->feeling_turn > rollback_turns) p_ptr->feeling_turn -= rollback_turns;
- else p_ptr->feeling_turn = 1;
+ if (player_ptr->feeling_turn > rollback_turns) player_ptr->feeling_turn -= rollback_turns;
+ else player_ptr->feeling_turn = 1;
for (i = 1; i < max_towns; i++)
{
/*!
* @brief 全更新処理をチェックして処理していく
- * Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window"
+ * Handle "player_ptr->update" and "player_ptr->redraw" and "player_ptr->window"
* @return なし
*/
void handle_stuff(player_type *player_ptr)
extern bool repair_objects;
extern void play_game(player_type *player_ptr, bool new_game);
-extern s32b turn_real(s32b hoge);
-extern void prevent_turn_overflow(void);
+extern s32b turn_real(player_type *player_ptr, s32b hoge);
+extern void prevent_turn_overflow(player_type *player_ptr);
extern void close_game(player_type *player_ptr);
extern void handle_stuff(player_type *player_ptr);
buf_sprintf(score, "maxlv: %d\n", creature_ptr->max_plv);
buf_sprintf(score, "maxdp: %d\n", max_dlv[DUNGEON_ANGBAND]);
buf_sprintf(score, "au: %d\n", creature_ptr->au);
- buf_sprintf(score, "turns: %d\n", turn_real(current_world_ptr->game_turn));
+ buf_sprintf(score, "turns: %d\n", turn_real(creature_ptr, current_world_ptr->game_turn));
buf_sprintf(score, "sex: %d\n", creature_ptr->psex);
buf_sprintf(score, "race: %s\n", rp_ptr->title);
buf_sprintf(score, "class: %s\n", cp_ptr->title);
the_score.gold[9] = '\0';
/* Save the current turn */
- sprintf(the_score.turns, "%9lu", (long)turn_real(current_world_ptr->game_turn));
+ sprintf(the_score.turns, "%9lu", (long)turn_real(current_player_ptr, current_world_ptr->game_turn));
the_score.turns[9] = '\0';
time_t ct = time((time_t*)0);
sprintf(the_score.gold, "%9lu", (long)current_player_ptr->au);
/* Save the current turn */
- sprintf(the_score.turns, "%9lu", (long)turn_real(current_world_ptr->game_turn));
+ sprintf(the_score.turns, "%9lu", (long)turn_real(current_player_ptr, current_world_ptr->game_turn));
/* Hack -- no time needed */
strcpy(the_score.day, _("今日", "TODAY"));