Standardize new filename creation behavior to avoid .bk2.tasproj.bk2.tasproj
This commit is contained in:
parent
46bfcbc47d
commit
d16f8a7b64
|
@ -17,25 +17,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
||||||
{
|
{
|
||||||
public static ITasMovie ToTasMovie(this IMovie old)
|
public static ITasMovie ToTasMovie(this IMovie old)
|
||||||
{
|
{
|
||||||
string newFilename = $"{old.Filename}.{TasMovie.Extension}";
|
string newFilename = GetNewFileName(old.Filename);
|
||||||
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
int fileNum = 1;
|
|
||||||
bool fileConflict = true;
|
|
||||||
while (fileConflict)
|
|
||||||
{
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
newFilename = $"{old.Filename} ({fileNum}).{TasMovie.Extension}";
|
|
||||||
fileNum++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fileConflict = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var tas = (ITasMovie)MovieService.Get(newFilename, old.StartsFromSavestate);
|
var tas = (ITasMovie)MovieService.Get(newFilename, old.StartsFromSavestate);
|
||||||
|
|
||||||
|
@ -113,35 +95,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
||||||
|
|
||||||
public static ITasMovie ConvertToSavestateAnchoredMovie(this ITasMovie old, int frame, byte[] savestate)
|
public static ITasMovie ConvertToSavestateAnchoredMovie(this ITasMovie old, int frame, byte[] savestate)
|
||||||
{
|
{
|
||||||
string newFilename = old.Filename;
|
string newFilename = GetNewFileName(old.Filename);
|
||||||
|
|
||||||
if (old.Filename.Contains("tasproj"))
|
|
||||||
{
|
|
||||||
newFilename = newFilename.Remove(newFilename.Length - 7, 7);
|
|
||||||
newFilename = $"{newFilename}nfn.{TasMovie.Extension}";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newFilename = $"{old.Filename}.{TasMovie.Extension}";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
int fileNum = 1;
|
|
||||||
bool fileConflict = true;
|
|
||||||
while (fileConflict)
|
|
||||||
{
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
newFilename = $"{old.Filename} ({fileNum}).{TasMovie.Extension}";
|
|
||||||
fileNum++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fileConflict = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var tas = (ITasMovie)MovieService.Get(newFilename, true);
|
var tas = (ITasMovie)MovieService.Get(newFilename, true);
|
||||||
tas.BinarySavestate = savestate;
|
tas.BinarySavestate = savestate;
|
||||||
|
@ -198,35 +152,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
||||||
|
|
||||||
public static ITasMovie ConvertToSaveRamAnchoredMovie(this ITasMovie old, byte[] saveRam)
|
public static ITasMovie ConvertToSaveRamAnchoredMovie(this ITasMovie old, byte[] saveRam)
|
||||||
{
|
{
|
||||||
string newFilename = old.Filename;
|
string newFilename = GetNewFileName(old.Filename);
|
||||||
|
|
||||||
if (old.Filename.Contains("tasproj"))
|
|
||||||
{
|
|
||||||
newFilename = newFilename.Remove(newFilename.Length - 7, 7);
|
|
||||||
newFilename = $"{newFilename}nfsr.{TasMovie.Extension}";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newFilename = $"{old.Filename}.{TasMovie.Extension}";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
int fileNum = 1;
|
|
||||||
bool fileConflict = true;
|
|
||||||
while (fileConflict)
|
|
||||||
{
|
|
||||||
if (File.Exists(newFilename))
|
|
||||||
{
|
|
||||||
newFilename = $"{old.Filename} ({fileNum}).{TasMovie.Extension}";
|
|
||||||
fileNum++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fileConflict = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var tas = (ITasMovie) MovieService.Get(newFilename, false);
|
var tas = (ITasMovie) MovieService.Get(newFilename, false);
|
||||||
tas.SaveRam = saveRam;
|
tas.SaveRam = saveRam;
|
||||||
|
@ -381,5 +307,41 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
||||||
.GetCustomAttribute(emulator.GetType(), typeof(CoreAttribute)))
|
.GetCustomAttribute(emulator.GetType(), typeof(CoreAttribute)))
|
||||||
.CoreName;
|
.CoreName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetNewFileName(string oldFileName)
|
||||||
|
{
|
||||||
|
string newFilename = oldFileName;
|
||||||
|
string oldExtension = Path.GetExtension(oldFileName);
|
||||||
|
|
||||||
|
if (oldExtension == ".tasproj" || oldExtension == ".bk2")
|
||||||
|
{
|
||||||
|
newFilename = Path.ChangeExtension(newFilename, null);
|
||||||
|
newFilename = $"{newFilename}.{TasMovie.Extension}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newFilename = $"{oldFileName}.{TasMovie.Extension}";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (File.Exists(newFilename))
|
||||||
|
{
|
||||||
|
int fileNum = 1;
|
||||||
|
bool fileConflict = true;
|
||||||
|
while (fileConflict)
|
||||||
|
{
|
||||||
|
if (File.Exists(newFilename))
|
||||||
|
{
|
||||||
|
newFilename = $"{oldFileName} ({fileNum}).{TasMovie.Extension}";
|
||||||
|
fileNum++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fileConflict = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newFilename;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue