private StructureValueCollection[] SerializePartitions() { StructureValueCollection[] results = new StructureValueCollection[Partitions.Length]; for (int i = 0; i < Partitions.Length; i++) { StructureValueCollection values = new StructureValueCollection(); values.SetNumber("load address", Partitions[i].BasePointer.AsAddress()); values.SetNumber("size", Partitions[i].Size); results[i] = values; } return results; }
private void WriteLocalePointer(IWriter writer, StringID id, int offset) { StructureValueCollection values = new StructureValueCollection(); values.SetNumber("stringid", (uint)id.Value); values.SetNumber("offset", (uint)offset); StructureWriter.WriteStructure(values, _pointerLayout, writer); }
/// <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; }
public StructureValueCollection Serialize() { StructureValueCollection result = new StructureValueCollection(); result.SetNumber("string count", (uint)StringCount); result.SetNumber("locale table size", (uint)LocaleTableSize); result.SetNumber("locale index table offset", _converter.PointerToRaw(LocaleIndexTableLocation)); result.SetNumber("locale data index offset", _converter.PointerToRaw(LocaleDataLocation)); if (IndexTableHash != null) result.SetRaw("index table hash", IndexTableHash); if (StringDataHash != null) result.SetRaw("string data hash", StringDataHash); return result; }