old_autosave_turn = w_ptr->game_turn;
}
- update_playtime();
+ w_ptr->update_playtime();
init_autopick();
if (autopick_last_destroyed_object.is_valid()) {
autopick_entry_from_object(player_ptr, entry, &autopick_last_destroyed_object);
SubWindowRedrawingFlag::ITEM_KNOWLEDGE,
};
rfu.set_flags(flags_swrf);
- update_playtime();
+ w_ptr->update_playtime();
handle_stuff(player_ptr);
if (PlayerRace(player_ptr).equals(PlayerRaceType::ANDROID)) {
calc_android_exp(player_ptr);
const auto &filename = str_ltrim(*input_filename);
if (!filename.empty()) {
- update_playtime();
+ w_ptr->update_playtime();
file_character(player_ptr, filename);
}
while (true) {
TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, MAIN_TERM_MIN_ROWS);
- update_playtime();
+ w_ptr->update_playtime();
(void)display_player(player_ptr, page);
if (page == 5) {
page = 0;
auto do_send = true;
if (!cheat_save || input_check(_("死んだデータをセーブしますか? ", "Save death? "))) {
- update_playtime();
+ w_ptr->update_playtime();
w_ptr->sf_play_time += w_ptr->play_time;
if (!save_player(player_ptr, SaveType::CLOSE_GAME)) {
{
q_ptr->status = stat;
q_ptr->complev = lev;
- update_playtime();
+ w_ptr->update_playtime();
q_ptr->comptime = w_ptr->play_time;
}
}
tower1.status = QuestStatusType::FAILED;
tower1.complev = player_ptr->lev;
- update_playtime();
+ w_ptr->update_playtime();
tower1.comptime = w_ptr->play_time;
}
return;
}
- update_playtime();
+ w_ptr->update_playtime();
uint32_t play_time = w_ptr->play_time;
uint32_t all_time = w_ptr->sf_play_time + play_time;
fprintf(fff, _("現在のプレイ時間 : %d:%02d:%02d\n", "Current Play Time is %d:%02d:%02d\n"), play_time / (60 * 60), (play_time / 60) % 60, play_time % 60);
// プレイヤーしかユニークを倒せないのでここで時間を記録
if (md_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE) && md_ptr->m_ptr->mflag2.has_not(MonsterConstantFlagType::CLONED)) {
- update_playtime();
+ w_ptr->update_playtime();
md_ptr->r_ptr->defeat_time = w_ptr->play_time;
md_ptr->r_ptr->defeat_level = player_ptr->lev;
}
std::filesystem::create_directory(debug_save_dir, ec);
}
safe_setuid_drop();
- update_playtime();
- bool result = false;
+ w_ptr->update_playtime();
+ auto result = false;
if (save_player_aux(player_ptr, savefile_new.data(), type)) {
std::stringstream ss_old;
ss_old << savefile.string() << ".old";
*/
void fix_player(PlayerType *player_ptr)
{
- update_playtime();
+ w_ptr->update_playtime();
display_sub_windows(SubWindowRedrawingFlag::PLAYER,
[player_ptr] {
display_player(player_ptr, 0);
quest.status = QuestStatusType::FAILED;
quest.complev = (byte)player_ptr->lev;
- update_playtime();
+ w_ptr->update_playtime();
quest.comptime = w_ptr->play_time;
monraces_info[quest.r_idx].flags1 &= ~(RF1_QUESTOR);
}
/*!
* @brief 実ゲームプレイ時間を更新する
*/
-void update_playtime(void)
+void AngbandWorld::update_playtime()
{
- if (w_ptr->start_time != 0) {
- uint32_t tmp = (uint32_t)time(nullptr);
- w_ptr->play_time += (tmp - w_ptr->start_time);
- w_ptr->start_time = tmp;
+ if (this->start_time == 0) {
+ return;
}
+
+ const auto current_time = static_cast<uint32_t>(time(nullptr));
+ this->play_time += (current_time - this->start_time);
+ this->start_time = current_time;
}
/*!
bool get_arena() const;
std::tuple<int, int, int> extract_date_time(PlayerRaceType start_race) const;
bool is_daytime() const;
+ void update_playtime();
private:
bool is_out_arena = false; // アリーナ外部にいる時だけtrue.
extern AngbandWorld *w_ptr;
-class PlayerType;
-void update_playtime(void);
void add_winner_class(PlayerClassType c);
void add_retired_class(PlayerClassType c);
bool is_winner_class(PlayerClassType c);