(noncolor): filenames encoding handling.

This commit is contained in:
morkt 2018-07-06 15:25:57 +04:00
parent 21e8f2da14
commit c3b3bb0ee3
2 changed files with 13 additions and 2 deletions

View File

@ -58,6 +58,7 @@ namespace GameRes.Formats.NonColor
public string Title;
public ulong Hash;
public string FileListName;
public bool LowCaseNames;
public Scheme(string title)
{
@ -70,6 +71,14 @@ namespace GameRes.Formats.NonColor
{
return Crc64.Compute (name, 0, name.Length);
}
public byte[] GetBytes (string name)
{
if (LowCaseNames)
return name.ToLowerShiftJis();
else
return Encodings.cp932.GetBytes (name);
}
}
[Serializable]
@ -194,7 +203,7 @@ namespace GameRes.Formats.NonColor
{
var dict = new Dictionary<ulong, NameRecord>();
FormatCatalog.Instance.ReadFileList (scheme.FileListName, line => {
var bytes = Encodings.cp932.GetBytes (line); // line.ToLowerShiftJis();
var bytes = scheme.GetBytes (line);
ulong hash = scheme.ComputeHash (bytes);
dict[hash] = new NameRecord { Name = line, NameBytes = bytes };
});

View File

@ -38,7 +38,9 @@ namespace GameRes.Formats.Minato
public override ulong ComputeHash (byte[] name)
{
return Crc32.Compute (name, 0, name.Length);
var bytes = name.Clone() as byte[];
bytes.ToLowerShiftJis();
return Crc32.Compute (bytes, 0, bytes.Length);
}
}