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;
 }