115 lines
3.7 KiB
C#
115 lines
3.7 KiB
C#
using LibW4M;
|
|
using LibW4M.Data.WeaponFactory;
|
|
using LibXom;
|
|
using LibXom.Data;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace W4Gui
|
|
{
|
|
public partial class Main : Form
|
|
{
|
|
private const string defaultTitle = "Worms 4: Mayhem! (Save Editor)";
|
|
private bool loadedFile = false;
|
|
private W4SaveFile w4Save;
|
|
public Main()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void W4Gui_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
private void loadWeaponsData()
|
|
{
|
|
// load weapon factory data.
|
|
this.weaponList.Items.Clear();
|
|
for (int i = 0; i < w4Save.WeaponFactoryCollective.Length; i++)
|
|
{
|
|
WeaponStore store = w4Save.WeaponFactoryCollective[i];
|
|
this.weaponList.Items.Add(store.Weapon.Name.Value);
|
|
}
|
|
}
|
|
|
|
private void loadAllData()
|
|
{
|
|
loadWeaponsData();
|
|
}
|
|
private void openToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
OpenFileDialog fd = new OpenFileDialog();
|
|
fd.Filter = "Worms 4: Mayhem Save File|*.xom";
|
|
fd.Title = "Open Worms 4 Save File";
|
|
if(fd.ShowDialog() == DialogResult.OK)
|
|
{
|
|
this.w4Save = new W4SaveFile(XomReader.ReadXomFile(fd.FileName));
|
|
this.loadedFile = true;
|
|
|
|
this.mainTabControl.Enabled = true;
|
|
this.saveToolStripMenuItem.Enabled = true;
|
|
|
|
this.Text = defaultTitle + " [" + fd.FileName + "]";
|
|
|
|
this.loadAllData();
|
|
this.weaponList.SelectedIndex = -1;
|
|
weaponList_SelectedIndexChanged(null, null);
|
|
}
|
|
}
|
|
|
|
private void saveWeapon()
|
|
{
|
|
WeaponStore lastWeapStore = w4Save.WeaponFactoryCollective[lastSelected];
|
|
weaponPanel.SaveWeaponData(ref lastWeapStore.Weapon);
|
|
clusterPanel.SaveWeaponData(ref lastWeapStore.Cluster);
|
|
weaponList.Items[lastSelected] = lastWeapStore.Weapon.Name.Value;
|
|
}
|
|
private int lastSelected = -1;
|
|
private void weaponList_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
// Save last selected
|
|
if(lastSelected >= 0 && weaponList.SelectedIndex != lastSelected)
|
|
{
|
|
saveWeapon();
|
|
}
|
|
if(weaponList.SelectedIndex >= 0 && weaponList.SelectedIndex != lastSelected)
|
|
{
|
|
WeaponStore weapStore = w4Save.WeaponFactoryCollective[weaponList.SelectedIndex];
|
|
weaponPanel.LoadWeaponData(weapStore.Weapon);
|
|
clusterPanel.LoadWeaponData(weapStore.Cluster);
|
|
}
|
|
|
|
if (this.weaponList.SelectedIndex == -1)
|
|
weaponClusterTabControl.Enabled = false;
|
|
else
|
|
weaponClusterTabControl.Enabled = true;
|
|
|
|
lastSelected = weaponList.SelectedIndex;
|
|
}
|
|
|
|
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
SaveFileDialog fd = new SaveFileDialog();
|
|
fd.Filter = "Worms 4: Mayhem Save File|*.xom";
|
|
fd.Title = "Save Worms 4 Save File";
|
|
if (fd.ShowDialog() == DialogResult.OK)
|
|
{
|
|
this.mainTabControl.Enabled = false;
|
|
//weaponList.SelectedIndex = -1;
|
|
|
|
w4Save.Save(fd.FileName);
|
|
|
|
this.mainTabControl.Enabled = true;
|
|
//weaponList.SelectedIndex = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|