Mercurial > otakunoraifu
changeset 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 | a95c130b567b |
files | scn2k/scn2k_impl.cc system/system_config.cc |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
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; }
--- 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;