Merge pull request #3 from LnmVolbo/LnmVolbo-patch-1
Update DatMessXMLReader.cs
This commit is contained in:
@@ -16,7 +16,9 @@ namespace ROMVault2.DatReaders
|
|||||||
|
|
||||||
public static bool ReadDat(ref RvDir tDat, XmlDocument doc)
|
public static bool ReadDat(ref RvDir tDat, XmlDocument doc)
|
||||||
{
|
{
|
||||||
if (!LoadHeaderFromDat(ref tDat, ref doc))
|
FileType thisFileType = FileType.Unknown; // added
|
||||||
|
|
||||||
|
if (!LoadHeaderFromDat(ref tDat, ref doc, ref thisFileType))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (doc.DocumentElement == null)
|
if (doc.DocumentElement == null)
|
||||||
@@ -27,13 +29,13 @@ namespace ROMVault2.DatReaders
|
|||||||
return false;
|
return false;
|
||||||
for (int i = 0; i < gameNodeList.Count; i++)
|
for (int i = 0; i < gameNodeList.Count; i++)
|
||||||
{
|
{
|
||||||
LoadGameFromDat(ref tDat, gameNodeList[i]);
|
LoadGameFromDat(ref tDat, gameNodeList[i], thisFileType);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool LoadHeaderFromDat(ref RvDir tDir, ref XmlDocument doc)
|
private static bool LoadHeaderFromDat(ref RvDir tDir, ref XmlDocument doc, ref FileType thisFileType)
|
||||||
{
|
{
|
||||||
XmlNodeList head = doc.SelectNodes("softwarelist");
|
XmlNodeList head = doc.SelectNodes("softwarelist");
|
||||||
if (head == null)
|
if (head == null)
|
||||||
@@ -62,21 +64,37 @@ namespace ROMVault2.DatReaders
|
|||||||
tDat.AddData(RvDat.DatData.MergeType, "split");
|
tDat.AddData(RvDat.DatData.MergeType, "split");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deterime whether to compress to .zip or store as files
|
||||||
|
val = VarFix.String(head[0].Attributes.GetNamedItem("forcepacking")).ToLower();
|
||||||
|
switch (val.ToLower())
|
||||||
|
{
|
||||||
|
case "zip":
|
||||||
|
tDat.AddData(RvDat.DatData.FileType, "zip");
|
||||||
|
thisFileType = FileType.ZipFile;
|
||||||
|
break;
|
||||||
|
case "unzip":
|
||||||
|
case "file":
|
||||||
|
tDat.AddData(RvDat.DatData.FileType, "file");
|
||||||
|
thisFileType = FileType.File;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
thisFileType = FileType.ZipFile;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
tDir.Dat = tDat;
|
tDir.Dat = tDat;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void LoadGameFromDat(ref RvDir tDat, XmlNode gameNode)
|
private static void LoadGameFromDat(ref RvDir tDat, XmlNode gameNode, FileType thisFileType)
|
||||||
{
|
{
|
||||||
if (gameNode.Attributes == null)
|
if (gameNode.Attributes == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
RvDir parent = tDat;
|
RvDir parent = tDat;
|
||||||
|
|
||||||
RvDir tDir = new RvDir(FileType.Zip)
|
RvDir tDir = new RvDir(DBTypeGet.DirFromFile(thisFileType))
|
||||||
{
|
{
|
||||||
Name = VarFix.CleanFileName(gameNode.Attributes.GetNamedItem("name")),
|
Name = VarFix.CleanFileName(gameNode.Attributes.GetNamedItem("name")),
|
||||||
Game = new RvGame(),
|
Game = new RvGame(),
|
||||||
@@ -137,7 +155,7 @@ namespace ROMVault2.DatReaders
|
|||||||
if (romNodeList != null)
|
if (romNodeList != null)
|
||||||
for (int iR = 0; iR < romNodeList.Count; iR++)
|
for (int iR = 0; iR < romNodeList.Count; iR++)
|
||||||
{
|
{
|
||||||
LoadRomFromDat(ref tDir, romNodeList[iR]);
|
LoadRomFromDat(ref tDir, romNodeList[iR], thisFileType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -164,7 +182,7 @@ namespace ROMVault2.DatReaders
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void LoadRomFromDat(ref RvDir tGame, XmlNode romNode)
|
private static void LoadRomFromDat(ref RvDir tGame, XmlNode romNode, FileType thisFileType)
|
||||||
{
|
{
|
||||||
if (romNode.Attributes == null)
|
if (romNode.Attributes == null)
|
||||||
return;
|
return;
|
||||||
@@ -173,7 +191,7 @@ namespace ROMVault2.DatReaders
|
|||||||
string loadflag = VarFix.String(romNode.Attributes.GetNamedItem("loadflag"));
|
string loadflag = VarFix.String(romNode.Attributes.GetNamedItem("loadflag"));
|
||||||
if (name != null)
|
if (name != null)
|
||||||
{
|
{
|
||||||
RvFile tRom = new RvFile(FileType.ZipFile)
|
RvFile tRom = new RvFile(thisFileType) // changed
|
||||||
{
|
{
|
||||||
Name = VarFix.CleanFullFileName(name),
|
Name = VarFix.CleanFullFileName(name),
|
||||||
Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")),
|
Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")),
|
||||||
|
|||||||
Reference in New Issue
Block a user