mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-17 04:22:54 +08:00
Fixed loading cache_y.dat files
This commit is contained in:
parent
97c24710e4
commit
b62162cf21
@ -381,39 +381,37 @@ namespace CodeWalker.GameFiles
|
||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class CacheFileDate : IMetaXmlItem
|
||||
{
|
||||
public MetaHash FileName { get; set; } //"resource_surrogate:/%s.rpf"
|
||||
public DateTime TimeStamp { get; set; }
|
||||
public long TimeStamp { get; set; }
|
||||
public uint FileID { get; set; }
|
||||
|
||||
public DateTime TimeStampUTC => DateTime.FromFileTimeUtc(TimeStamp);
|
||||
|
||||
public CacheFileDate()
|
||||
{ }
|
||||
public CacheFileDate(string line)
|
||||
{
|
||||
string[] parts = line.Split(' ');
|
||||
if (parts.Length == 3)
|
||||
{
|
||||
FileName = new MetaHash(uint.Parse(parts[0]));
|
||||
TimeStamp = DateTime.FromFileTimeUtc(long.Parse(parts[1]));
|
||||
FileID = uint.Parse(parts[2]);
|
||||
}
|
||||
else
|
||||
{ } //testing
|
||||
string[] p = line.Split(' ');
|
||||
if (p.Length > 0) FileName = new MetaHash(uint.Parse(p[0]));
|
||||
if (p.Length > 1) TimeStamp = long.Parse(p[1]);
|
||||
if (p.Length > 2) FileID = uint.Parse(p[2]);
|
||||
}
|
||||
|
||||
public string ToCacheFileString()
|
||||
{
|
||||
return FileName.Hash.ToString() + " " + TimeStamp.ToFileTimeUtc().ToString() + " " + FileID.ToString();
|
||||
if (FileID == 0) return $"{FileName.Hash} {TimeStamp}";
|
||||
else return $"{FileName.Hash} {TimeStamp} {FileID}";
|
||||
}
|
||||
|
||||
public void WriteXml(StringBuilder sb, int indent)
|
||||
{
|
||||
CacheDatXml.StringTag(sb, indent, "fileName", CacheDatXml.HashString(FileName));
|
||||
CacheDatXml.ValueTag(sb, indent, "timeStamp", TimeStamp.ToFileTimeUtc().ToString());
|
||||
CacheDatXml.ValueTag(sb, indent, "timeStamp", ((ulong)TimeStamp).ToString());
|
||||
CacheDatXml.ValueTag(sb, indent, "fileID", FileID.ToString());
|
||||
}
|
||||
public void ReadXml(XmlNode node)
|
||||
{
|
||||
FileName = XmlMeta.GetHash(Xml.GetChildInnerText(node, "fileName"));
|
||||
TimeStamp = DateTime.FromFileTimeUtc((long)Xml.GetChildULongAttribute(node, "timeStamp"));
|
||||
TimeStamp = (long)Xml.GetChildULongAttribute(node, "timeStamp");
|
||||
FileID = Xml.GetChildUIntAttribute(node, "fileID");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user