Пример #1
0
        internal static System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> Make_entries_v4(this Els_kom_Core.Classes.KOMStream kOMStream, string xmldata, int entry_count)
        {
            System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> entries = new System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer>();
            var xml = System.Xml.Linq.XElement.Parse(xmldata);

            foreach (var fileElement in xml.Elements("File"))
            {
                var nameAttribute           = fileElement.Attribute("Name");
                var name                    = nameAttribute?.Value ?? "no value";
                var sizeAttribute           = fileElement.Attribute("Size");
                var size                    = sizeAttribute == null ? -1 : System.Convert.ToInt32(sizeAttribute.Value);
                var CompressedSizeAttribute = fileElement.Attribute("CompressedSize");
                var CompressedSize          = CompressedSizeAttribute == null ? -1 : System.Convert.ToInt32(CompressedSizeAttribute.Value);
                var ChecksumAttribute       = fileElement.Attribute("Checksum");
                var Checksum                = ChecksumAttribute == null ? -1 : int.Parse(ChecksumAttribute.Value, System.Globalization.NumberStyles.HexNumber);
                var FileTimeAttribute       = fileElement.Attribute("FileTime");
                var FileTime                = FileTimeAttribute == null ? -1 : int.Parse(FileTimeAttribute.Value, System.Globalization.NumberStyles.HexNumber);
                var AlgorithmAttribute      = fileElement.Attribute("Algorithm");
                var Algorithm               = AlgorithmAttribute == null ? -1 : System.Convert.ToInt32(AlgorithmAttribute.Value);
                // on v4 at least on Elsword there is now an MappedID attribute.
                // this is even more of an reason to store some cache
                // file for not only kom v3 for the algorithm 2 & 3
                // files to be able to get repacked to those
                // algorithm’s but also to store these unique
                // map id’s to this version of kom.
                var MappedIDAttribute = fileElement.Attribute("MappedID");
                var MappedID          = MappedIDAttribute?.Value ?? "no value";
                var entry             = new Els_kom_Core.Classes.EntryVer(name, size, CompressedSize, Checksum, FileTime, Algorithm, MappedID);
                entries.Add(entry);
            }
            return(entries);
        }
Пример #2
0
 internal static System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> Make_entries_v2(this Els_kom_Core.Classes.KOMStream kOMStream, int entrycount, System.IO.BinaryReader reader)
 {
     System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> entries = new System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer>();
     for (int i = 0; i < entrycount; i++)
     {
         kOMStream.ReadInFile(reader, out string key, 60, System.Text.Encoding.ASCII);
         kOMStream.ReadInFile(reader, out int originalsize);
         kOMStream.ReadInFile(reader, out int compressedSize);
         kOMStream.ReadInFile(reader, out int offset);
         var entry = new Els_kom_Core.Classes.EntryVer(kOMStream.GetSafeString(key), originalsize, compressedSize, offset);
         entries.Add(entry);
     }
     return(entries);
 }
Пример #3
0
        internal static System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> Make_entries_v3(this Els_kom_Core.Classes.KOMStream kOMStream, string xmldata, int entry_count)
        {
            System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer> entries = new System.Collections.Generic.List <Els_kom_Core.Classes.EntryVer>();
            var xml = System.Xml.Linq.XElement.Parse(xmldata);

            foreach (var fileElement in xml.Elements("File"))
            {
                var nameAttribute           = fileElement.Attribute("Name");
                var name                    = nameAttribute?.Value ?? "no value";
                var sizeAttribute           = fileElement.Attribute("Size");
                var size                    = sizeAttribute == null ? -1 : System.Convert.ToInt32(sizeAttribute.Value);
                var CompressedSizeAttribute = fileElement.Attribute("CompressedSize");
                var CompressedSize          = CompressedSizeAttribute == null ? -1 : System.Convert.ToInt32(CompressedSizeAttribute.Value);
                var ChecksumAttribute       = fileElement.Attribute("Checksum");
                var Checksum                = ChecksumAttribute == null ? -1 : int.Parse(ChecksumAttribute.Value, System.Globalization.NumberStyles.HexNumber);
                var FileTimeAttribute       = fileElement.Attribute("FileTime");
                var FileTime                = FileTimeAttribute == null ? -1 : int.Parse(FileTimeAttribute.Value, System.Globalization.NumberStyles.HexNumber);
                var AlgorithmAttribute      = fileElement.Attribute("Algorithm");
                var Algorithm               = AlgorithmAttribute == null ? -1 : System.Convert.ToInt32(AlgorithmAttribute.Value);
                var entry                   = new Els_kom_Core.Classes.EntryVer(name, size, CompressedSize, Checksum, FileTime, Algorithm);
                entries.Add(entry);
            }
            return(entries);
        }