diff -urN src/birth.c questcleartime_src/birth.c --- src/birth.c Tue Sep 15 22:21:06 2009 +++ questcleartime_src/birth.c Thu Nov 5 04:31:36 2009 @@ -3241,6 +3241,7 @@ quest[i].level = 0; quest[i].r_idx = 0; quest[i].complev = 0; + quest[i].comptime = 0; } /* No weight */ diff -urN src/cmd1.c questcleartime_src/cmd1.c --- src/cmd1.c Tue Sep 15 22:21:06 2009 +++ questcleartime_src/cmd1.c Thu Nov 5 04:53:46 2009 @@ -874,6 +874,8 @@ if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL); quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; #ifdef JP msg_print("クエストを達成した!"); #else @@ -3647,6 +3649,8 @@ if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, p_ptr->inside_quest, NULL); quest[p_ptr->inside_quest].status = QUEST_STATUS_COMPLETED; quest[p_ptr->inside_quest].complev = (byte)p_ptr->lev; + update_playtime(); + quest[p_ptr->inside_quest].comptime = playtime; #ifdef JP msg_print("クエストを達成した!"); #else diff -urN src/cmd3.c questcleartime_src/cmd3.c --- src/cmd3.c Tue Sep 15 22:21:06 2009 +++ questcleartime_src/cmd3.c Thu Nov 5 04:53:55 2009 @@ -475,6 +475,8 @@ if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL); quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; #ifdef JP msg_print("クエストを達成した!"); #else diff -urN src/cmd4.c questcleartime_src/cmd4.c --- src/cmd4.c Tue Sep 15 22:21:06 2009 +++ questcleartime_src/cmd4.c Thu Nov 5 05:26:23 2009 @@ -9452,21 +9452,22 @@ { sprintf(tmp_str, #ifdef JP - " %-40s (%3d階) - レベル%2d\n", + " %-40s (%3d階) - レベル%2d - %02d:%02d:%02d\n", #else " %-40s (Dungeon level: %3d) - level %2d\n", #endif r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, - quest[q_idx].complev); + quest[q_idx].complev, + quest[q_idx].comptime/(60*60), (quest[q_idx].comptime/60)%60, quest[q_idx].comptime%60); } } else { /* Print the quest info */ #ifdef JP - sprintf(tmp_str, " %-40s (危険度:%3d階相当) - レベル%2d\n", - quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev); + sprintf(tmp_str, " %-40s (危険度:%3d階相当) - レベル%2d - %02d:%02d:%02d\n", + quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev, quest[q_idx].comptime/(60*60), (quest[q_idx].comptime/60)%60, quest[q_idx].comptime%60); #else sprintf(tmp_str, " %-40s (Danger level: %3d) - level %2d\n", quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev); @@ -9529,8 +9530,8 @@ { /* Print the quest info */ #ifdef JP - sprintf(tmp_str, " %-40s (%3d階) - レベル%2d\n", - r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, quest[q_idx].complev); + sprintf(tmp_str, " %-40s (%3d階) - レベル%2d - %02d:%02d:%02d\n", + r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, quest[q_idx].complev, quest[q_idx].comptime/(60*60), (quest[q_idx].comptime/60)%60, quest[q_idx].comptime%60); #else sprintf(tmp_str, " %-40s (Dungeon level: %3d) - level %2d\n", r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, quest[q_idx].complev); @@ -9540,8 +9541,9 @@ { /* Print the quest info */ #ifdef JP - sprintf(tmp_str, " %-40s (危険度:%3d階相当) - レベル%2d\n", - quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev); + update_playtime(); + sprintf(tmp_str, " %-40s (危険度:%3d階相当) - レベル%2d - %02d:%02d:%02d\n", + quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev, quest[q_idx].comptime/(60*60), (quest[q_idx].comptime/60)%60, quest[q_idx].comptime%60); #else sprintf(tmp_str, " %-40s (Danger level: %3d) - level %2d\n", quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev); diff -urN src/dungeon.c questcleartime_src/dungeon.c --- src/dungeon.c Tue Sep 15 22:21:06 2009 +++ questcleartime_src/dungeon.c Thu Nov 5 04:54:16 2009 @@ -1173,6 +1173,8 @@ { quest[leaving_quest].status = QUEST_STATUS_FAILED; quest[leaving_quest].complev = (byte)p_ptr->lev; + update_playtime(); + quest[leaving_quest].comptime = playtime; if (quest[leaving_quest].type == QUEST_TYPE_RANDOM) { r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR); @@ -3363,6 +3365,8 @@ { quest[i].status = QUEST_STATUS_FAILED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; r_info[quest[i].r_idx].flags1 &= ~(RF1_QUESTOR); } } diff -urN src/load.c questcleartime_src/load.c --- src/load.c Thu Sep 3 17:05:42 2009 +++ questcleartime_src/load.c Thu Nov 5 04:39:02 2009 @@ -3420,10 +3420,12 @@ if (z_older_than(11, 0, 6)) { quest[i].complev = 0; + quest[i].comptime = 0; } else { rd_byte(&quest[i].complev); + rd_u32b(&quest[i].comptime); } /* Load quest status if quest is running */ diff -urN src/save.c questcleartime_src/save.c --- src/save.c Thu Sep 3 17:05:42 2009 +++ questcleartime_src/save.c Thu Nov 5 04:39:48 2009 @@ -1341,6 +1341,8 @@ wr_byte(quest[i].complev); + wr_u32b(quest[i].comptime); + /* Save quest status if quest is running */ if (quest[i].status == QUEST_STATUS_TAKEN || quest[i].status == QUEST_STATUS_COMPLETED || !is_fixed_quest_idx(i)) { diff -urN src/types.h questcleartime_src/types.h --- src/types.h Thu Sep 3 17:05:42 2009 +++ questcleartime_src/types.h Thu Nov 5 04:30:26 2009 @@ -698,6 +698,7 @@ byte dungeon; /* quest dungeon */ byte complev; /* player level (complete) */ + u32b comptime; /* quest clear time*/ }; diff -urN src/xtra2.c questcleartime_src/xtra2.c --- src/xtra2.c Thu Sep 3 17:05:42 2009 +++ questcleartime_src/xtra2.c Thu Nov 5 04:54:56 2009 @@ -456,6 +456,8 @@ /* completed quest */ quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; if (!(quest[i].flags & QUEST_FLAG_SILENT)) { @@ -497,6 +499,8 @@ { quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; #ifdef JP msg_print("クエストを達成した!"); #else @@ -524,6 +528,8 @@ /* completed quest */ quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; if (!(quest[i].flags & QUEST_FLAG_PRESET)) { create_stairs = TRUE; @@ -564,6 +570,8 @@ /* completed quest */ quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; + update_playtime(); + quest[i].comptime = playtime; if (!(quest[i].flags & QUEST_FLAG_SILENT)) {