public override void Read(BinaryReader reader, bool includeHeader, long leng) { if (includeHeader) { reader.ReadByte(); } Flag = reader.ReadInt32(); HistoryType = (TextHistoryType)reader.ReadSByte(); switch (HistoryType) { case TextHistoryType.None: Extras = new byte[0]; Value = null; break; case TextHistoryType.Base: Extras = reader.ReadBytes(4); Value = new string[] { reader.ReadUString(), reader.ReadUString() }; break; case TextHistoryType.StringTableEntry: Extras = reader.ReadBytes(8); Value = new string[] { reader.ReadUString() }; break; default: throw new FormatException("Unimplemented reader for " + HistoryType.ToString()); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } if (reader.Asset.EngineVersion < UE4Version.VER_UE4_FTEXT_HISTORY) { CultureInvariantString = reader.ReadFString(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_ADDED_NAMESPACE_AND_KEY_DATA_TO_FTEXT) { Namespace = reader.ReadFString(); Value = reader.ReadFString(); } else { Namespace = null; Value = reader.ReadFString(); } } Flags = (ETextFlag)reader.ReadUInt32(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_FTEXT_HISTORY) { HistoryType = (TextHistoryType)reader.ReadSByte(); switch (HistoryType) { case TextHistoryType.None: Value = null; if (reader.Asset.GetCustomVersion <FEditorObjectVersion>() >= FEditorObjectVersion.CultureInvariantTextSerializationKeyStability) { bool bHasCultureInvariantString = reader.ReadInt32() == 1; if (bHasCultureInvariantString) { CultureInvariantString = reader.ReadFString(); } } break; case TextHistoryType.Base: Namespace = reader.ReadFString(); Value = reader.ReadFString(); CultureInvariantString = reader.ReadFString(); break; case TextHistoryType.StringTableEntry: TableId = reader.ReadFName(); Value = reader.ReadFString(); break; default: throw new NotImplementedException("Unimplemented reader for " + HistoryType.ToString()); } } }
public override void FromString(string[] d) { if (d[1] != null) { HistoryType = TextHistoryType.Base; Value = new string[] { d[0], d[1] }; return; } if (d[0].Equals("null")) { HistoryType = TextHistoryType.None; Value = new string[] { }; return; } HistoryType = TextHistoryType.StringTableEntry; Value = new string[] { d[0] }; }
public override void Read(BinaryReader reader, bool includeHeader, long leng) { if (includeHeader) { reader.ReadByte(); } Flag = reader.ReadInt32(); HistoryType = (TextHistoryType)reader.ReadSByte(); switch (HistoryType) { case TextHistoryType.None: Extras = reader.ReadBytes(4); List <string> ValueList = new List <string>(); for (int i = 0; i < BitConverter.ToInt32(Extras, 0); i++) { ValueList.Add(reader.ReadUString()); } Value = ValueList.ToArray(); break; case TextHistoryType.Base: //Extras = reader.ReadBytes(4); //Console.WriteLine("EXT: " + BitConverter.ToInt32(Extras, 0)); Extras = new byte[0]; BaseBlankString = reader.ReadUStringWithEncoding(); Value = new string[] { reader.ReadUString(), reader.ReadUString() }; break; case TextHistoryType.StringTableEntry: Extras = reader.ReadBytes(8); Value = new string[] { reader.ReadUString() }; break; default: throw new FormatException("Unimplemented reader for " + HistoryType.ToString()); } }