use Entry.ChangeType method.

This commit is contained in:
morkt 2017-01-25 09:34:38 +04:00
parent ec9f615919
commit f40102bef9
8 changed files with 11 additions and 61 deletions

View File

@ -156,19 +156,12 @@ namespace GameRes.Formats.Neko
} }
uint signature = get_signature (entry); uint signature = get_signature (entry);
var res = AutoEntry.DetectFileType (signature); var res = AutoEntry.DetectFileType (signature);
string ext = "";
if (res != null) if (res != null)
{ entry.ChangeType (res);
ext = res.Extensions.FirstOrDefault();
entry.Type = res.Type;
}
else if (0x474E4D8A == signature) else if (0x474E4D8A == signature)
ext = "mng"; entry.Name = Path.ChangeExtension (entry.Name, "mng");
else if (entry.Name.StartsWith ("script/")) else if (entry.Name.StartsWith ("script/"))
entry.Type = "script"; entry.Type = "script";
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
} }
} }

View File

@ -108,12 +108,7 @@ namespace GameRes.Formats.DDSystem
else else
res = AutoEntry.DetectFileType (signature); res = AutoEntry.DetectFileType (signature);
if (res != null) if (res != null)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
} }
} }

View File

@ -82,12 +82,7 @@ namespace GameRes.Formats.Dogenzaka
return null; return null;
var res = AutoEntry.DetectFileType (file.View.ReadUInt32 (entry.Offset)); var res = AutoEntry.DetectFileType (file.View.ReadUInt32 (entry.Offset));
if (res != null) if (res != null)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
return new ArcFile (file, this, dir); return new ArcFile (file, this, dir);
} }

View File

@ -120,12 +120,7 @@ namespace GameRes.Formats.Patisserie
{ {
var res = AutoEntry.DetectFileType (signature); var res = AutoEntry.DetectFileType (signature);
if (null != res) if (null != res)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
} }
} }

View File

@ -147,22 +147,9 @@ namespace GameRes.Formats.Qlie
static protected void DetectFileType (ArcView file, Entry entry) static protected void DetectFileType (ArcView file, Entry entry)
{ {
uint signature = file.View.ReadUInt32 (entry.Offset); uint signature = file.View.ReadUInt32 (entry.Offset);
if (signature != 0) var res = AutoEntry.DetectFileType (signature);
{ if (null != res)
string ext = null; entry.ChangeType (res);
if (0x4D42 == (signature & 0xFFFF))
{
ext = "bmp";
}
else
{
var res = FormatCatalog.Instance.LookupSignature (signature).FirstOrDefault();
if (null != res)
ext = res.Extensions.FirstOrDefault();
}
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
static string GetTypeName (byte[] type_buf) static string GetTypeName (byte[] type_buf)

View File

@ -109,12 +109,7 @@ namespace GameRes.Formats.SHSystem
else else
res = AutoEntry.DetectFileType (signature); res = AutoEntry.DetectFileType (signature);
if (res != null) if (res != null)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
} }
} }

View File

@ -141,12 +141,7 @@ namespace GameRes.Formats.SuperNekoX
else else
res = AutoEntry.DetectFileType (signature); res = AutoEntry.DetectFileType (signature);
if (null != res) if (null != res)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
} }
} }
} }

View File

@ -330,12 +330,7 @@ namespace GameRes.Formats.Valkyria
else else
res = AutoEntry.DetectFileType (signature); res = AutoEntry.DetectFileType (signature);
if (res != null) if (res != null)
{ entry.ChangeType (res);
entry.Type = res.Type;
var ext = res.Extensions.FirstOrDefault();
if (!string.IsNullOrEmpty (ext))
entry.Name = Path.ChangeExtension (entry.Name, ext);
}
else if (OdnOpener.Image32NameRe.IsMatch (entry.Name)) else if (OdnOpener.Image32NameRe.IsMatch (entry.Name))
entry.Type = "image"; entry.Type = "image";
} }