(MBL): consider all files within '*_data' archives to be scripts.

This commit is contained in:
morkt 2018-01-21 11:59:40 +04:00
parent e00dc73aad
commit f819d99c86

View File

@ -95,7 +95,7 @@ namespace GameRes.Formats.Marble
return null; return null;
try try
{ {
bool contains_scripts = false; bool contains_scripts = Path.GetFileNameWithoutExtension (file.Name).EndsWith ("_data");
var dir = new List<Entry> (count); var dir = new List<Entry> (count);
for (int i = 0; i < count; ++i) for (int i = 0; i < count; ++i)
{ {
@ -112,10 +112,9 @@ namespace GameRes.Formats.Marble
index_offset += (uint)filename_len; index_offset += (uint)filename_len;
uint offset = file.View.ReadUInt32 (index_offset); uint offset = file.View.ReadUInt32 (index_offset);
string type = null; string type = null;
if (name.EndsWith (".s")) if (contains_scripts || name.EndsWith (".s"))
{ {
type = "script"; type = "script";
contains_scripts = true;
} }
else if (4 == Path.GetExtension (name).Length) else if (4 == Path.GetExtension (name).Length)
{ {
@ -149,6 +148,7 @@ namespace GameRes.Formats.Marble
} }
if (0 == dir.Count || (1 == dir.Count && count > 1)) if (0 == dir.Count || (1 == dir.Count && count > 1))
return null; return null;
contains_scripts = contains_scripts || dir.Any (e => e.Name.EndsWith (".s"));
if (contains_scripts) if (contains_scripts)
{ {
var password = QueryPassPhrase (file.Name); var password = QueryPassPhrase (file.Name);