Refactor savefile path handling

This commit is contained in:
kichikuou
2025-06-06 16:13:02 +09:00
parent bce04adf82
commit febee3f5a3
8 changed files with 29 additions and 30 deletions
+14 -2
View File
@@ -20,6 +20,12 @@ std::string FILEIO::savedir = ".";
namespace {
std::string savefile_name(int index) {
std::string name = "ASLEEP_A.DAT";
name[7] += index - 1;
return name;
}
std::string FindFile(const std::string& dir, const char* filename) {
std::string path = dir + "/" + filename;
@@ -47,9 +53,9 @@ void FILEIO::set_savedir(const std::string& dir)
savedir.pop_back();
}
int FILEIO::stat_save(const char* filename, struct stat* buf)
int FILEIO::stat_save(int index, struct stat* buf)
{
return stat(FindFile(savedir, filename).c_str(), buf);
return stat(FindFile(savedir, savefile_name(index).c_str()).c_str(), buf);
}
FILEIO::~FILEIO(void)
@@ -78,6 +84,12 @@ std::unique_ptr<FILEIO> FILEIO::open(const char *file_name, int mode)
return fp ? std::unique_ptr<FILEIO>(new FILEIO(fp, mode)) : nullptr;
}
//static
std::unique_ptr<FILEIO> FILEIO::open_save(int index, int mode)
{
return open(savefile_name(index).c_str(), mode | FILEIO_SAVEDATA);
}
std::string FILEIO::gets()
{
std::string s;