You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.2 KiB
C#

using System.ComponentModel;
using DotNetCTFDumper.GUI;
using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
using static DotNetCTFDumper.MMFParser.EXE.Exe;
namespace DotNetCTFDumper.Utils
{
public static class Backend
{
public static void DumpSounds(MainForm form,bool load,bool save)
{
using (var worker = new BackgroundWorker())
{
if (Instance.GameData.GameChunks.GetChunk<SoundBank>() == null) return;
form.SetSoundElements(true);
worker.DoWork += (senderA, eA) => { Instance.GameData.GameChunks.GetChunk<SoundBank>().Read(save); };
worker.RunWorkerCompleted += (senderA, eA) =>
{
form.SetSoundElements(false);
MainForm.IsDumpingSounds = false;
};
worker.RunWorkerAsync();
}
}
public static void DumpImages(MainForm form,bool load,bool save)
{
using (var worker = new BackgroundWorker())
{
if (Instance.GameData.GameChunks.GetChunk<ImageBank>() == null) return;
form.SetImageElements(true);
worker.DoWork += (senderA, eA) => { Instance.GameData.GameChunks.GetChunk<ImageBank>().Read(load,save); };
worker.RunWorkerCompleted += (senderA, eA) =>
{
form.SetImageElements(false);
MainForm.IsDumpingImages = false;
};
worker.RunWorkerAsync();
}
}
public static void DumpMusics(MainForm form,bool load,bool save)
{
using (var worker = new BackgroundWorker())
{
if (Instance.GameData.GameChunks.GetChunk<MusicBank>() == null) return;
form.SetMusicElements(true);
worker.DoWork += (senderA, eA) => { Instance.GameData.GameChunks.GetChunk<MusicBank>().Read(save); };
worker.RunWorkerCompleted += (senderA, eA) =>
{
form.SetMusicElements(false);
MainForm.IsDumpingMusics = false;
};
worker.RunWorkerAsync();
}
}
}
}