Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void SetMWLMusic(string path, byte music)
- {
- int o, o2, o3, o4;
- int obj, ext;
- BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Write));
- BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.Open, FileAccess.Write, FileShare.Read));
- try
- {
- reader.BaseStream.Seek(4, SeekOrigin.Begin);
- o = reader.ReadInt32() + 8;
- reader.BaseStream.Seek(o, SeekOrigin.Begin);
- o = reader.ReadInt32() + 5 + 8;
- reader.BaseStream.Seek(o, SeekOrigin.Begin);
- while (true)
- {
- o = reader.ReadByte();
- if (o == 0xFF)
- {
- reader.Close();
- writer.Close();
- return;
- }
- o2 = reader.ReadByte();
- o3 = reader.ReadByte();
- obj = (o & 0x60) / 2 | (o2 & 0xF0) / 16;
- if (obj == 0)
- {
- ext = o3;
- if (ext == 0)
- {
- o4 = reader.ReadByte();
- }
- if (ext == 2)
- {
- o4 = reader.ReadByte();
- o4 = reader.ReadByte();
- }
- }
- else
- {
- switch (obj)
- {
- case 0x22:
- case 0x23:
- o4 = reader.ReadByte();
- break;
- case 0x26:
- long off = reader.BaseStream.Position - 1;
- writer.Seek((int)(off), SeekOrigin.Begin);
- writer.Write((byte)(music+1));
- reader.Close();
- writer.Close();
- return;
- case 0x27:
- case 0x29:
- o4 = reader.ReadByte();
- o4 &= 0xC0;
- switch (o4)
- {
- case 0x00:
- case 0x40:
- o4 = reader.ReadByte();
- break;
- case 0x80:
- o4 = reader.ReadByte();
- o4 = reader.ReadByte();
- break;
- case 0xC0:
- o4 = reader.ReadByte();
- o4 = reader.ReadByte();
- o4 = reader.ReadByte();
- break;
- }
- break;
- case 0x2D:
- o4 = reader.ReadByte();
- o4 = reader.ReadByte();
- break;
- }
- }
- }
- }
- catch (Exception e)
- {
- }
- reader.Close();
- writer.Close();
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement