public void ReadFromFile(BinaryReader reader) { unk0 = reader.ReadUInt32(); uint count0 = reader.ReadUInt32(); uint count1 = reader.ReadUInt32(); SubtitleItems = new SubtitleTableItem[count0]; uint another_unknown = reader.ReadUInt32(); for (int i = 0; i < count1; i++) { SubtitleTableItem NewItem = new SubtitleTableItem(); NewItem.SubtitleID = XBinAkHashName.ConstructAndReadFromFile(reader); NewItem.SoundID = XBinAkHashName.ConstructAndReadFromFile(reader); NewItem.FacialAnimName = XBinHashName.ConstructAndReadFromFile(reader); NewItem.LongStringID = XBinHashName.ConstructAndReadFromFile(reader); NewItem.ShortStringID = XBinHashName.ConstructAndReadFromFile(reader); NewItem.SoundPreset = reader.ReadUInt32(); NewItem.VoicePresetOverride = XBinAkHashName.ConstructAndReadFromFile(reader); NewItem.SubtitlePriorityOverride = reader.ReadUInt32(); NewItem.Unk0 = reader.ReadUInt32(); NewItem.SubtitleCharacter = XBinHashName.ConstructAndReadFromFile(reader); SubtitleItems[i] = NewItem; } }
public static XBinAkHashName ConstructAndReadFromFile(BinaryReader reader) { XBinAkHashName NewObject = new XBinAkHashName(); NewObject.ReadFromFile(reader); return(NewObject); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { object Result = null; string StringValue = value as string; string[] Splits = StringValue.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); uint Hash = 0; bool bIsOnlyUlong = uint.TryParse(Splits[0], out Hash); XBinAkHashName HashName = new XBinAkHashName(); // If it is indeed only the hash, quickly return out if (bIsOnlyUlong) { HashName.Hash = Hash; HashName.ForceToCheckStorage(); Result = HashName; return(Result ?? base.ConvertFrom(context, culture, value)); } string RemovedBrackets = Splits[1].Replace("[", ""); RemovedBrackets = Splits[1].Replace("]", ""); HashName.Name = Splits[0]; HashName.Hash = uint.Parse(RemovedBrackets); return(Result ?? base.ConvertFrom(context, culture, value)); }
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { object result = null; XBinAkHashName HashName = (XBinAkHashName)value; if (destinationType == typeof(string)) { result = HashName.ToString(); } return(result ?? base.ConvertTo(context, culture, value, destinationType)); }