/// <summary>
        /// Serializes the language data into a StructureValueCollection.
        /// </summary>
        /// <returns>The StructureValueCollection that was created from the language table.</returns>
        public StructureValueCollection Serialize()
        {
            StructureValueCollection[] languageSet = new StructureValueCollection[_languages.Count];
            for (int i = 0; i < _languages.Count; i++)
                languageSet[i] = _languages[i].Serialize();

            StructureValueCollection result = new StructureValueCollection();
            result.SetArray("languages", languageSet);
            return result;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Serializes the header's values, storing them into a StructureValueCollection.
        /// </summary>
        /// <returns>The resulting StructureValueCollection.</returns>
        public StructureValueCollection Serialize()
        {
            StructureValueCollection values = new StructureValueCollection();

            if (_originalRawTableOffset != 0)
                values.SetNumber("raw table offset", RawTableOffset);
            else
                values.SetNumber("meta offset", MetaOffset);

            values.SetNumber("virtual base address", VirtualBaseAddress);
            values.SetNumber("raw table offset from header", (uint)(RawTableOffset - HeaderSize));
            values.SetNumber("raw table size", RawTableSize);
            values.SetNumber("locale offset magic", LocaleOffsetMask);
            values.SetNumber("file size", FileSize);
            values.SetNumber("index header address", IndexHeaderLocation.AsAddress());
            values.SetNumber("virtual size", MetaSize);
            values.SetNumber("type", (uint)Type);
            values.SetNumber("string table count", (uint)StringIDCount);
            values.SetNumber("string table size", (uint)StringIDTableSize);
            values.SetNumber("string index table offset", _stringOffsetConverter.PointerToRaw(StringIDIndexTableLocation));
            values.SetNumber("string table offset", _stringOffsetConverter.PointerToRaw(StringIDDataLocation));
            values.SetString("internal name", InternalName);
            values.SetString("scenario name", ScenarioName);
            values.SetNumber("file table count", (uint)FileNameCount);
            values.SetNumber("file table offset", _stringOffsetConverter.PointerToRaw(FileNameDataLocation));
            values.SetNumber("file table size", (uint)FileNameTableSize);
            values.SetNumber("file index table offset", _stringOffsetConverter.PointerToRaw(FileNameIndexTableLocation));
            values.SetNumber("xdk version", (uint)XDKVersion);
            values.SetArray("partitions", SerializePartitions());
            values.SetNumber("locale data index offset", _indexConverter.PointerToRaw(LocaleDataLocation));
            values.SetNumber("locale data size", (uint)LocaleDataSize);
            return values;
        }