public void modelOpen() { string path = textBox1.Text; EndianBinaryReader readModel = new EndianBinaryReader(File.OpenRead(path), Endianness.LittleEndian); nsbmd = new NSBMD_File(); if (readModel.ReadString(Encoding.ASCII, 4) != "BMD0") { readModel.Close(); return; } else { nsbmd.Header.ID = "BMD0"; nsbmd.Header.Magic = readModel.ReadBytes(4); nsbmd.Header.file_size = readModel.ReadInt32(); nsbmd.Header.header_size = readModel.ReadInt16(); nsbmd.Header.nSection = readModel.ReadInt16(); nsbmd.Header.Section_Offset = new Int32[nsbmd.Header.nSection]; for (int i = 0; i < nsbmd.Header.nSection; i++) { nsbmd.Header.Section_Offset[i] = readModel.ReadInt32(); } nsbmd.MDL0.ID = readModel.ReadString(Encoding.ASCII, 4); if (nsbmd.MDL0.ID != "MDL0") { readModel.Close(); return; } nsbmd.MDL0.Section_size = readModel.ReadInt32(); nsbmd.MDL0.Padding1 = readModel.ReadByte(); nsbmd.MDL0.Model_count = readModel.ReadByte(); nsbmd.MDL0.Section_size = readModel.ReadInt16(); nsbmd.MDL0.Constant = readModel.ReadInt16(); nsbmd.MDL0.Subsection_size = readModel.ReadInt16(); nsbmd.MDL0.Constant2 = readModel.ReadInt32(); nsbmd.MDL0.Unknown = new int[nsbmd.MDL0.Model_count]; for (int i = 0; i < nsbmd.MDL0.Model_count; i++) { nsbmd.MDL0.Unknown[i] = readModel.ReadInt32(); } nsbmd.MDL0.Constant3 = readModel.ReadInt16(); nsbmd.MDL0.Section2_size = readModel.ReadInt16(); nsbmd.MDL0.Model_offset = new int[nsbmd.MDL0.Model_count]; for (int i = 0; i < nsbmd.MDL0.Model_count; i++) { nsbmd.MDL0.Model_offset[i] = readModel.ReadInt32(); } nsbmd.MDL0.Model_name = new string[nsbmd.MDL0.Model_count]; for (int i = 0; i < nsbmd.MDL0.Model_count; i++) { nsbmd.MDL0.Model_name[i] = readModel.ReadString(Encoding.ASCII, 16); } readModel.Close(); } }