示例#1
0
        public static void RewriteBhd5(Bhd5Struct bhd5, string path)
        {
            BinaryWriter bhd5file = new BinaryWriter(File.Open(path, FileMode.Create));

            bhd5file.Write(bhd5.header.signature);
            bhd5file.Write(bhd5.header.endianCheck);
            bhd5file.Write(bhd5.header.version);
            bhd5file.Write(bhd5.header.dataSize);
            bhd5file.Write(bhd5.header.bucketCount);
            bhd5file.Write(bhd5.header.bucketOffset);

            foreach (BucketStruct bucket in bhd5.buckets)
            {
                bhd5file.Write(bucket.entryCount);
                bhd5file.Write(bucket.entryOffset);
            }

            foreach (BucketStruct bucket in bhd5.buckets)
            {
                foreach (EntryStruct entry in bucket.entries)
                {
                    bhd5file.Write(entry.hash);
                    bhd5file.Write(entry.size);
                    bhd5file.Write(entry.offset);
                }
            }

            bhd5file.Close();
        }
示例#2
0
        public static bool FindHash(Bhd5Struct bhd5, UInt32 hash, ref int i, ref int j)
        {
            bool l = false;

            i = 0;

            while (!l & i < bhd5.header.bucketCount)
            {
                j = 0;

                while (!l & j < bhd5.buckets[i].entryCount)
                {
                    l = (hash == bhd5.buckets[i].entries[j].hash);
                    if (!l)
                    {
                        j++;
                    }
                }

                if (!l)
                {
                    i++;
                }
            }

            return(l);
        }