Esempio n. 1
0
 public ShuffleARC_M(string path)
 {
     if (!File.Exists(path))
     {
         Valid = false;
         return;
     }
     FileName = Path.GetFileNameWithoutExtension(path);
     if (FileName.Length != 8 || !Util.IsHex(FileName))
     {
         Valid = false;
         return;
     }
     FilePath  = Path.GetDirectoryName(path);
     Extension = Path.GetExtension(path);
     using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
     {
         if ((FileType = br.ReadUInt32()) != 0xC)
         {
             Valid = false;
             return;
         }
         Magic = br.ReadUInt32();
         if (Magic != uint.Parse(FileName, NumberStyles.AllowHexSpecifier))
         {
             Valid = false;
             return;
         }
         Valid     = true; // Error Checking done.
         Unknown   = br.ReadUInt32();
         Unknown2  = br.ReadUInt32();
         FileCount = br.ReadUInt32();
         Padding   = br.ReadUInt32();
         Files     = new ShuffleFile[FileCount];
         for (int i = 0; i < FileCount; i++)
         {
             Files[i] = new ShuffleFile
             {
                 NameHash = br.ReadUInt32(),
                 _B       = br.ReadUInt32(),
                 Length   = br.ReadUInt32(),
                 Offset   = br.ReadUInt32(),
                 F0       = br.ReadUInt32(),
                 F1       = br.ReadUInt32(),
                 F2       = br.ReadUInt32(),
                 F3       = br.ReadUInt32(),
             };
         }
     }
 }
Esempio n. 2
0
 public ShuffleARC_M(string path)
 {
     if (!File.Exists(path))
     {
         Valid = false;
         return;
     }
     FileName = Path.GetFileNameWithoutExtension(path);
     if (FileName.Length != 8 || !Util.IsHex(FileName))
     {
         Valid = false;
         return;
     }
     FilePath = Path.GetDirectoryName(path);
     Extension = Path.GetExtension(path);
     using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
     {
         if ((FileType = br.ReadUInt32()) != 0xC)
         {
             Valid = false;
             return;
         }
         Magic = br.ReadUInt32();
         if (Magic != uint.Parse(FileName, NumberStyles.AllowHexSpecifier))
         {
             Valid = false;
             return;
         }
         Valid = true; // Error Checking done.
         Unknown = br.ReadUInt32();
         Unknown2 = br.ReadUInt32();
         FileCount = br.ReadUInt32();
         Padding = br.ReadUInt32();
         Files = new ShuffleFile[FileCount];
         for (int i = 0; i < FileCount; i++)
         {
             Files[i] = new ShuffleFile
             {
                 NameHash = br.ReadUInt32(),
                 _B = br.ReadUInt32(),
                 Length = br.ReadUInt32(),
                 Offset = br.ReadUInt32(),
                 F0 = br.ReadUInt32(),
                 F1 = br.ReadUInt32(),
                 F2 = br.ReadUInt32(),
                 F3 = br.ReadUInt32(),
             };
         }
     }
 }