mirror of
https://github.com/kwsch/NHSE.git
synced 2026-03-26 03:24:38 -05:00
65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows.Forms;
|
|
using NHSE.Core;
|
|
|
|
namespace NHSE.WinForms;
|
|
|
|
public partial class LandFlagEditor : Form
|
|
{
|
|
private readonly short[] Counts;
|
|
|
|
public LandFlagEditor(short[] counts)
|
|
{
|
|
InitializeComponent();
|
|
this.TranslateInterface(GameInfo.CurrentLanguage);
|
|
|
|
Counts = counts;
|
|
var str = GameInfo.Strings.InternalNameTranslation;
|
|
for (ushort i = 0; i < counts.Length; i++)
|
|
LB_Counts.Items.Add(EventFlagLand.GetName(i, counts[i], str));
|
|
DialogResult = DialogResult.Cancel;
|
|
LB_Counts.SelectedIndex = 0;
|
|
}
|
|
|
|
private void B_Cancel_Click(object sender, EventArgs e) => Close();
|
|
|
|
private void B_Save_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private int Index;
|
|
|
|
private void NUD_Count_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
if (Index < 0)
|
|
return;
|
|
|
|
Counts[Index] = (short) NUD_Count.Value;
|
|
LB_Counts.Items[Index] = EventFlagLand.GetName((ushort)Index, Counts[Index], GameInfo.Strings.InternalNameTranslation);
|
|
}
|
|
|
|
private void LB_Counts_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (LB_Counts.SelectedIndex < 0)
|
|
return;
|
|
|
|
NUD_Count.Value = Counts[Index = LB_Counts.SelectedIndex];
|
|
}
|
|
|
|
private void B_Dump_Click(object sender, EventArgs e)
|
|
{
|
|
var data = MemoryMarshal.Cast<short, byte>(Counts);
|
|
MiscDumpHelper.DumpFlags(data, nameof(EventFlagLand));
|
|
}
|
|
|
|
private void B_Load_Click(object sender, EventArgs e)
|
|
{
|
|
var data = MiscDumpHelper.LoadFlags(Counts.Length * 2, nameof(EventFlagLand));
|
|
if (data.Length != 0)
|
|
Buffer.BlockCopy(data, 0, Counts, 0, data.Length);
|
|
LB_Counts.SelectedIndex = LB_Counts.SelectedIndex;
|
|
}
|
|
} |