/// <summary> /// /// </summary> public void LoadFromStream(Stream s) { using (BinaryReaderExt r = new BinaryReaderExt(s)) { if (s.Length < 0x14) { return; } if (new string(r.ReadChars(4)) != "SPKG") { return; } GroupFlags = r.ReadUInt32(); Flags = r.ReadUInt32(); var ssmSize = r.ReadInt32(); ScriptBank = new SEMBank(); ScriptBank.Scripts = new SEMBankScript[r.ReadInt32()]; for (int i = 0; i < ScriptBank.Scripts.Length; i++) { ScriptBank.Scripts[i] = new SEMBankScript(); ScriptBank.Scripts[i].Decompile(r.GetSection(r.ReadUInt32(), r.ReadInt32())); } var name = r.ReadString(r.ReadByte()); if (ssmSize == 0) { SoundBank = null; } else { SoundBank = new SSM(); using (MemoryStream ssmStream = new MemoryStream(r.ReadBytes(ssmSize))) SoundBank.Open(name, ssmStream); } } }
/// <summary> /// /// </summary> /// <param name="scriptBank"></param> /// <param name="soundBank"></param> public MEXSoundBank(SEMBank scriptBank, SSM soundBank) { ScriptBank = scriptBank; SoundBank = soundBank; }
/// <summary> /// /// </summary> /// <param name="sb"></param> public void SetScript(SEMBank sb, int id) { mxListBox1.StartingItemIndex = id * 10000; _semBank = sb; mxListBox1.DataSource = sb.Scripts; }