Mercurial > otakunoraifu
comparison 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 |
comparison
equal
deleted
inserted
replaced
15:38226842bac8 | 16:92765a5661f7 |
---|---|
755 cmd.cmd_type = CMD_WAITFRAMEUPDATE; | 755 cmd.cmd_type = CMD_WAITFRAMEUPDATE; |
756 } else if (cmd.cmd3 == 0x4b4 || cmd.cmd3 == 0x4b5) { // 選択肢巻き戻し | 756 } else if (cmd.cmd3 == 0x4b4 || cmd.cmd3 == 0x4b5) { // 選択肢巻き戻し |
757 LoadRollback(cmd); | 757 LoadRollback(cmd); |
758 } else if (cmd.cmd3 == 0x58d) { | 758 } else if (cmd.cmd3 == 0x58d) { |
759 // 前にロード|セーブされた番号を返す。 | 759 // 前にロード|セーブされた番号を返す。 |
760 flag.SetSys(-1); | 760 int lastsave; |
761 config.GetParam("#LASTSAVE", 1, &lastsave); | |
762 flag.SetSys(lastsave-1); | |
761 } else if (cmd.cmd3 == 0x585) { | 763 } else if (cmd.cmd3 == 0x585) { |
762 // 第一引数の記録された日付、タイトルなどが返される | 764 // 第一引数の記録された日付、タイトルなどが返される |
763 // データがないなら sys に 0が、あるなら 1 が返る | 765 // データがないなら sys に 0が、あるなら 1 が返る |
764 int y,m,d,wd,h,min,s,ms; | 766 int y,m,d,wd,h,min,s,ms; |
765 string title; | 767 string title; |
1013 path += buf; | 1015 path += buf; |
1014 | 1016 |
1015 struct stat sb; | 1017 struct stat sb; |
1016 if (stat(path.c_str(), &sb) == -1) return false; | 1018 if (stat(path.c_str(), &sb) == -1) return false; |
1017 struct tm* t = localtime(&sb.st_mtime); | 1019 struct tm* t = localtime(&sb.st_mtime); |
1020 year = t->tm_year; | |
1018 month = t->tm_mon + 1; | 1021 month = t->tm_mon + 1; |
1019 day = t->tm_mday; | 1022 day = t->tm_mday; |
1020 hour = t->tm_hour; | 1023 hour = t->tm_hour; |
1021 min = t->tm_min; | 1024 min = t->tm_min; |
1025 sec = t->tm_sec; | |
1026 msec = 0; | |
1022 /* タイトルの取得 */ | 1027 /* タイトルの取得 */ |
1023 FILE* savefile = fopen(path.c_str(), "rb"); | 1028 FILE* savefile = fopen(path.c_str(), "rb"); |
1024 if (savefile == 0) return false; | 1029 if (savefile == 0) return false; |
1025 char regname[1024]; | 1030 char regname[1024]; |
1026 sprintf(regname, "KEY=%s\n", config.GetParaStr("#REGNAME")); | 1031 sprintf(regname, "KEY=%s\n", config.GetParaStr("#REGNAME")); |
1136 fprintf(stderr,"Cannot open save file %s\n",path.c_str()); | 1141 fprintf(stderr,"Cannot open save file %s\n",path.c_str()); |
1137 return; | 1142 return; |
1138 } | 1143 } |
1139 fwrite(save.c_str(), save.length(), 1, f); | 1144 fwrite(save.c_str(), save.length(), 1, f); |
1140 fclose(f); | 1145 fclose(f); |
1146 config.SetParam("#LASTSAVE", 1, file_number); | |
1141 cmd.clear(); | 1147 cmd.clear(); |
1142 return; | 1148 return; |
1143 } | 1149 } |
1144 | 1150 |
1145 void Scn2k::Load(Cmd& cmd) { | 1151 void Scn2k::Load(Cmd& cmd) { |