public void WriteAppearanceSection(BinaryWriter writer, CharacterCustomizationAppearances.AppearanceSection appearanceSection) { writer.Write((byte)(appearanceSection.SectionName.Length + 128)); writer.Write(Encoding.ASCII.GetBytes(appearanceSection.SectionName)); writer.Write(appearanceSection.MainList.Count); foreach (var entry in appearanceSection.MainList) { writer.Write(entry.Hash); writer.Write((byte)(entry.FirstString.Length + 128)); writer.Write(Encoding.ASCII.GetBytes(entry.FirstString)); writer.Write((byte)(entry.SecondString.Length + 128)); writer.Write(Encoding.ASCII.GetBytes(entry.SecondString)); writer.Write(entry.TrailingBytes); } writer.Write(appearanceSection.AdditionalList.Count); foreach (var entry in appearanceSection.AdditionalList) { writer.Write((byte)(entry.FirstString.Length + 128)); writer.Write(Encoding.ASCII.GetBytes(entry.FirstString)); writer.Write((byte)(entry.SecondString.Length + 128)); writer.Write(Encoding.ASCII.GetBytes(entry.SecondString)); writer.Write(entry.TrailingBytes); } }
private CharacterCustomizationAppearances.AppearanceSection ReadAppearanceSection(BinaryReader reader, List <string> expectedNames) { var sectionName = reader.ReadPackedString(); Debug.Assert(expectedNames.Contains(sectionName)); var appearanceSection = new CharacterCustomizationAppearances.AppearanceSection { SectionName = sectionName }; int count = reader.ReadInt32(); if (count > 0) { ReadHashValueSection(reader, appearanceSection.MainList, count); } count = reader.ReadInt32(); if (count > 0) { ReadValueSection(reader, appearanceSection.AdditionalList, count); } return(appearanceSection); }
private void WriteAppearanceSection(BinaryWriter writer, CharacterCustomizationAppearances.AppearanceSection appearanceSection) { writer.WritePackedString(appearanceSection.SectionName); writer.Write(appearanceSection.MainList.Count); foreach (var entry in appearanceSection.MainList) { writer.Write(entry.Hash); writer.WritePackedString(entry.FirstString); writer.WritePackedString(entry.SecondString); writer.Write(entry.TrailingBytes); } writer.Write(appearanceSection.AdditionalList.Count); foreach (var entry in appearanceSection.AdditionalList) { writer.WritePackedString(entry.FirstString); writer.WritePackedString(entry.SecondString); writer.Write(entry.TrailingBytes); } }