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;