Attempt #1 to add movie name to auto-save files

This commit is contained in:
adelikat 2008-06-25 03:36:38 +00:00
parent 137437ac0e
commit 97f2ad9fb7
1 changed files with 25 additions and 8 deletions

View File

@ -584,7 +584,19 @@ int FCEU_fisarchive(FCEUFILE *fp)
return 0; return 0;
} }
std::string GetMfn() //Retrieves the movie filename from curMovieFilename (for adding to savestate and auto-save files)
{
std::string movieFilenamePart;
extern char curMovieFilename[512];
if(*curMovieFilename)
{
char drv[PATH_MAX], dir[PATH_MAX], name[PATH_MAX], ext[PATH_MAX];
splitpath(curMovieFilename,drv,dir,name,ext);
movieFilenamePart = std::string(".") + name;
}
//const char* mfn = movieFilenamePart.c_str();
return movieFilenamePart;
}
static std::string BaseDirectory; static std::string BaseDirectory;
char FileBase[2048]; char FileBase[2048];
@ -710,6 +722,7 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1)
{ {
char ret[FILENAME_MAX]; char ret[FILENAME_MAX];
struct stat tmpstat; struct stat tmpstat;
const char* mfn; //= GetMfn();
switch(type) switch(type)
{ {
@ -721,7 +734,7 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1)
break; break;
case FCEUMKF_STATE: case FCEUMKF_STATE:
{ {
std::string movieFilenamePart; /* std::string movieFilenamePart;
extern char curMovieFilename[512]; extern char curMovieFilename[512];
if(*curMovieFilename) if(*curMovieFilename)
{ {
@ -729,8 +742,9 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1)
splitpath(curMovieFilename,drv,dir,name,ext); splitpath(curMovieFilename,drv,dir,name,ext);
movieFilenamePart = std::string(".") + name; movieFilenamePart = std::string(".") + name;
} }
const char* mfn = movieFilenamePart.c_str(); const char* mfn = movieFilenamePart.c_str(); */
//mfn = GetMfn();
mfn = GetMfn().c_str();
if(odirs[FCEUIOD_STATES]) if(odirs[FCEUIOD_STATES])
{ {
sprintf(ret,"%s"PSS"%s%s.fc%d",odirs[FCEUIOD_STATES],FileBase,mfn,id1); sprintf(ret,"%s"PSS"%s%s.fc%d",odirs[FCEUIOD_STATES],FileBase,mfn,id1);
@ -788,23 +802,26 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1)
} }
break; break;
case FCEUMKF_AUTOSTATE: case FCEUMKF_AUTOSTATE:
extern char curMovieFilename[512];
mfn = GetMfn().c_str();
if(odirs[FCEUIOD_STATES]) if(odirs[FCEUIOD_STATES])
{ {
sprintf(ret,"%s"PSS"autosave%d.fcs",odirs[FCEUIOD_STATES],id1); sprintf(ret,"%s"PSS"%s%s-autosave%d.fcs",odirs[FCEUIOD_STATES],FileBase,mfn,id1);
} }
else else
{ {
sprintf(ret,"%s"PSS"fcs"PSS"autosave%d.fcs",BaseDirectory.c_str(),id1); //sprintf(ret,"%s"PSS"fcs"PSS"%s.%s-autosave.fcs",BaseDirectory.c_str(), FileBase, mfn);
sprintf(ret,"%s"PSS"fcs"PSS"%s%s-autosave%d.fcs",BaseDirectory.c_str(),FileBase,mfn,id1);
} }
if(stat(ret,&tmpstat)==-1) if(stat(ret,&tmpstat)==-1)
{ {
if(odirs[FCEUIOD_STATES]) if(odirs[FCEUIOD_STATES])
{ {
sprintf(ret,"%s"PSS"autosave%d.fcs",odirs[FCEUIOD_STATES],id1); sprintf(ret,"%s"PSS"%s%s-autosave%d.fcs",odirs[FCEUIOD_STATES],FileBase,mfn,id1);
} }
else else
{ {
sprintf(ret,"%s"PSS"fcs"PSS"autosave%d.fcs",BaseDirectory.c_str(),id1); sprintf(ret,"%s"PSS"fcs"PSS"%s%s-autosave%d.fcs",BaseDirectory.c_str(),FileBase,mfn,id1);
} }
} }
break; break;