Пример #1
0
        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;
            }
        }
Пример #2
0
        public static XBinAkHashName ConstructAndReadFromFile(BinaryReader reader)
        {
            XBinAkHashName NewObject = new XBinAkHashName();

            NewObject.ReadFromFile(reader);
            return(NewObject);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }