예제 #1
0
        private void aTwo(UnknownB0 A_0)
        {
            UnknownDH dh = A_0.a(VLTOtherValue.TABLE_START) as UnknownDH;

            for (int i = 0; i < dh.asa1.Length; ++i)
            {
                TableEntry @as = dh.asa1[i];
                switch (@as.entryType)
                {
                case EntryType.ROOT:
                    this.av.am(@as.di1.asRootEntry(), A_0);
                    break;

                case EntryType.CLASS:
                    this.av.a(@as.di1.asClassEntry(), A_0);
                    break;

                case EntryType.ROW:
                    RowRecord c = @as.di1.asRowEntry();
                    if (this.av.genht2 == null)                              // attempted to load a file with a parent before db.vlt
                    {
                    }
                    VLTClass dq = this.av.genht2[c.ui2];
                    dq.dqb1.a(c, A_0);
                    break;
                }
            }
        }
예제 #2
0
        private UnknownC0 a(BinaryReader A_0)
        {
            if (A_0.BaseStream.Position == A_0.BaseStream.Length)
            {
                return(null);
            }

            UnknownE e = new UnknownE();

            e.read(A_0);
            if (!e.isBlank())
            {
                VLTOtherValue ce = e.ce1;
                UnknownC0     c;

                switch (ce)
                {
                case VLTOtherValue.VLTMAGIC:
                    c = new UnknownBA();
                    break;

                case VLTOtherValue.TABLE_START:
                    c = new UnknownDH();
                    break;

                case VLTOtherValue.TABLE_END:
                    c = new UnknownA8();
                    break;

                case VLTOtherValue.d:
                case VLTOtherValue.e:
                default:
                    c = new UnknownA4();
                    break;
                }

                c.e1 = e;
                c.read(A_0);
                e.seekToNextBlock(A_0.BaseStream);
                return(c);
            }

            return(null);
        }
예제 #3
0
        public void a(Stream A_0, Stream A_1)
        {
            byte[] array = new byte[A_0.Length];
            A_0.Read(array, 0, array.Length);               // array.Length --> .vlt FileSize
            this.ms2       = new MemoryStream(array);
            this.genc0list = new List <UnknownC0>();
            BinaryReader a_ = new BinaryReader(this.ms2);
            UnknownC0    c;

            while ((c = this.a(a_)) != null)
            {
                this.genc0list.Add(c);
            }

            this.Trim();

            UnknownDH dh = this.a(VLTOtherValue.TABLE_START) as UnknownDH;

            for (int i = 0; i < dh.asa1.Length; ++i)
            {
                dh.asa1[i].b(a_);                   // TODO read vs b? b, DEFINITELY b
            }
            if (A_1 == null)
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(this.directory);
                UnknownBA     ba            = this.a(VLTOtherValue.VLTMAGIC) as UnknownBA;
                string        text          = ba.sa1[1];
                FileInfo[]    files         = directoryInfo.GetFiles(text);
                if (files.Length == 0)
                {
                    throw new Exception("Required file " + text + " was not found.");
                }
                A_1   = new FileStream(files[0].FullName, FileMode.Open, FileAccess.ReadWrite);
                array = new byte[A_1.Length];
                A_1.Read(array, 0, array.Length);
                A_1.Close();
            }
            else
            {
                array = new byte[A_1.Length];
                A_1.Read(array, 0, array.Length);
            }
            this.ms1 = new MemoryStream(array);
            a_       = new BinaryReader(this.ms1);
            this.ms1.Seek(0L, SeekOrigin.Begin);
            c = this.a(a_);
            c.e1.seekToDataStart(this.ms1);
            if (c.e1.ce1 == VLTOtherValue.BINMAGIC)
            {
                long num = this.ms1.Position + c.e1.dataSize();
                while (this.ms1.Position < num)
                {
                    string text2 = UnknownAP.a(a_);
                    if (text2 != "")
                    {
                        HashTracker.addHashFromVLTDB(text2);
                    }
                }
            }
            UnknownA8 a = this.a(VLTOtherValue.TABLE_END) as UnknownA8;

            a.a(this.ms1);
        }