Mercurial > otakunoraifu
diff scn2k/scn2k_impl.cc @ 16:92765a5661f7
added "new" label on last savegame and corrected StatSaveFile
author | thib |
---|---|
date | Mon, 11 Aug 2008 16:23:17 +0000 |
parents | 38226842bac8 |
children | 94fe9153efa5 |
line wrap: on
line diff
--- a/scn2k/scn2k_impl.cc +++ b/scn2k/scn2k_impl.cc @@ -757,7 +757,9 @@ void Scn2k::SysExec(Cmd& cmd) { LoadRollback(cmd); } else if (cmd.cmd3 == 0x58d) { // 前にロード|セーブされた番号を返す。 - flag.SetSys(-1); + int lastsave; + config.GetParam("#LASTSAVE", 1, &lastsave); + flag.SetSys(lastsave-1); } else if (cmd.cmd3 == 0x585) { // 第一引数の記録された日付、タイトルなどが返される // データがないなら sys に 0が、あるなら 1 が返る @@ -1015,10 +1017,13 @@ bool Scn2k::StatSaveFile(int num, int& y struct stat sb; if (stat(path.c_str(), &sb) == -1) return false; struct tm* t = localtime(&sb.st_mtime); + year = t->tm_year; month = t->tm_mon + 1; day = t->tm_mday; hour = t->tm_hour; min = t->tm_min; + sec = t->tm_sec; + msec = 0; /* タイトルの取得 */ FILE* savefile = fopen(path.c_str(), "rb"); if (savefile == 0) return false; @@ -1138,6 +1143,7 @@ void Scn2k::Save(Cmd& cmd) { } fwrite(save.c_str(), save.length(), 1, f); fclose(f); + config.SetParam("#LASTSAVE", 1, file_number); cmd.clear(); return; }