# HG changeset patch # User thib # Date 1218471797 0 # Node ID 92765a5661f7ef7e872668374d6a0d4152263572 # Parent 38226842bac8ddc68c9a1f53cd9c420d7a3c60e3 added "new" label on last savegame and corrected StatSaveFile diff --git a/scn2k/scn2k_impl.cc b/scn2k/scn2k_impl.cc --- 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; } diff --git a/system/system_config.cc b/system/system_config.cc --- a/system/system_config.cc +++ b/system/system_config.cc @@ -787,6 +787,8 @@ AyuSysConfig::AyuSysConfig(void) { SetOrigParam("#SEL.000", 15,0,0,639,479,0,0, 32, 4,0,0,0,0,0,0,0); SetOrigParam("#SCREENSIZE_MOD", 1, 0); /* 0 = 640x480; 1 = 800x600 */ + + SetOrigParam("#LASTSAVE", 1, 0); } AyuSysConfig::~AyuSysConfig(void) { delete str_config;