Ejemplo n.º 1
0
 private void CreateProperties(BinaryReader reader, XmbEntry entry, PropertyData[] propertyData)
 {
     foreach (var property in propertyData)
     {
         var propertyName  = reader.ReadAscii(Header.NamesOffset + property.NameOffset);
         var propertyValue = reader.ReadAscii(Header.ValuesOffset + property.ValueOffset);
         entry.Properties[propertyName] = propertyValue;
     }
 }
Ejemplo n.º 2
0
        private void CreateEntries(BinaryReader reader, EntryData[] entryData)
        {
            for (int entryIndex = 0; entryIndex < Header.NodeCount; entryIndex++)
            {
                var entry = new XmbEntry
                {
                    Data  = entryData[entryIndex],
                    Name  = reader.ReadAscii(Header.NamesOffset + entryData[entryIndex].NameOffset),
                    Index = (sbyte)entryIndex
                };

                reader.BaseStream.Position = Header.PropertiesTableOffset + entry.Data.PropertyStartIndex * Marshal.SizeOf(typeof(PropertyData));
                var propertyData = reader.ReadStructs <PropertyData>(entry.Data.PropertyCount);

                CreateProperties(reader, entry, propertyData);

                Nodes.Add(entry);
            }
        }