PKHeX/SAV/SAV_Pokepuff.cs

157 lines
5.3 KiB
C#
Raw Normal View History

2014-06-28 21:22:05 +00:00
using System;
using System.Windows.Forms;
namespace PKHeX
{
public partial class SAV_Pokepuff : Form
{
public SAV_Pokepuff()
2014-06-28 21:22:05 +00:00
{
InitializeComponent();
Util.TranslateInterface(this, Main.curlanguage);
sav = (byte[])Main.SAV.Data.Clone();
pfa = Main.puffs;
2014-07-31 22:06:48 +00:00
pfa[0] = "---";
Setup();
2014-06-28 21:22:05 +00:00
new ToolTip().SetToolTip(B_Sort, "Hold CTRL to reverse sort.");
new ToolTip().SetToolTip(B_All, "Hold CTRL to give Deluxe instead of Supreme.");
2014-06-28 21:22:05 +00:00
}
public byte[] sav;
private string[] pfa =
{
"Empty",
"Basic Sweet", "Basic Mint", "Basic Citrus", "Basic Mocha", "Basic Spice",
"Frosted Sweet", "Frosted Mint", "Frosted Citrus", "Frosted Mocha", "Frosted Spice",
"Fancy Sweet", "Fancy Mint", "Fancy Citrus", "Fancy Mocha", "Fancy Spice",
"Deluxe Sweet", "Deluxe Mint", "Deluxe Citrus", "Deluxe Mocha", "Deluxe Spice",
"Supreme Wish", "Supreme Honor", "Supreme Spring", "Supreme Summer", "Supreme Fall", "Supreme Winter",
};
private void Setup()
2014-06-28 21:22:05 +00:00
{
dgv.Rows.Clear();
dgv.Columns.Clear();
2014-06-28 21:22:05 +00:00
DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn();
{
dgvIndex.HeaderText = "Slot";
dgvIndex.DisplayIndex = 0;
dgvIndex.Width = 45;
dgvIndex.ReadOnly = true;
dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
DataGridViewComboBoxColumn dgvPuff = new DataGridViewComboBoxColumn
2014-06-28 21:22:05 +00:00
{
DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
};
{
foreach (string t in pfa)
dgvPuff.Items.Add(t);
2014-06-28 21:22:05 +00:00
dgvPuff.DisplayIndex = 1;
dgvPuff.Width = 135;
dgvPuff.FlatStyle = FlatStyle.Flat;
}
dgv.Columns.Add(dgvIndex);
dgv.Columns.Add(dgvPuff);
2014-06-28 21:22:05 +00:00
dgv.Rows.Add(100);
2014-06-28 21:22:05 +00:00
for (int i = 0; i < 100; i++)
{
dgv.Rows[i].Cells[0].Value = (i + 1).ToString();
dgv.Rows[i].Cells[1].Value = pfa[sav[Main.SAV.Puff + i]];
2014-06-28 21:22:05 +00:00
}
2015-11-22 03:17:35 +00:00
MT_CNT.Text = Main.SAV.PuffCount.ToString();
2014-06-28 21:22:05 +00:00
}
private void dropclick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex != 1) return;
((ComboBox)(sender as DataGridView).EditingControl).DroppedDown = true;
2014-06-28 21:22:05 +00:00
}
2014-06-28 21:22:05 +00:00
private void B_Cancel_Click(object sender, EventArgs e)
{
Close();
}
private void B_All_Click(object sender, EventArgs e)
{
2014-11-28 04:47:50 +00:00
int basepuff = 20;
2014-06-28 21:22:05 +00:00
int basemod = 6;
if (ModifierKeys == Keys.Control)
{
2014-11-28 04:47:50 +00:00
basepuff = 1;
basemod = 0x19;
2014-06-28 21:22:05 +00:00
}
2014-12-12 05:45:01 +00:00
byte[] newpuffs = new byte[100];
2014-06-28 21:22:05 +00:00
for (int i = 0; i < 100; i++)
newpuffs[i] = (byte) (Util.rnd32()%basemod + basepuff);
Array.Copy(newpuffs, 0, sav, Main.SAV.Puff, 100);
Setup();
2014-06-28 21:22:05 +00:00
}
private void B_None_Click(object sender, EventArgs e)
{
2014-12-12 05:45:01 +00:00
byte[] newpuffs = new byte[100];
2014-06-28 21:22:05 +00:00
newpuffs[0] = 1;
newpuffs[1] = 2;
newpuffs[2] = 3;
newpuffs[3] = 4;
newpuffs[4] = 5;
Array.Copy(newpuffs, 0, sav, Main.SAV.Puff, 100);
Setup();
2014-06-28 21:22:05 +00:00
}
private void B_Sort_Click(object sender, EventArgs e)
{
2014-12-12 05:45:01 +00:00
byte[] puffarray = new byte[100];
2014-06-28 21:22:05 +00:00
if (ModifierKeys == Keys.Control)
{
for (int i = 0; i < 100; i++)
{
string puff = dgv.Rows[i].Cells[1].Value.ToString();
puffarray[i] = (byte) Array.IndexOf(pfa, puff);
2014-06-28 21:22:05 +00:00
}
Array.Sort(puffarray);
Array.Reverse(puffarray);
}
else
{
int count = 0;
for (int i = 0; i < 100; i++)
{
string puff = dgv.Rows[i].Cells[1].Value.ToString();
byte puffval = (byte) Array.IndexOf(pfa, puff);
if (puffval == 0) continue;
puffarray[count] = puffval;
count++;
2014-06-28 21:22:05 +00:00
}
Array.Resize(ref puffarray, count);
Array.Sort(puffarray);
Array.Resize(ref puffarray, 100);
}
Array.Copy(puffarray, 0, sav, Main.SAV.Puff, 100);
Setup();
2014-06-28 21:22:05 +00:00
}
private void B_Save_Click(object sender, EventArgs e)
{
2014-12-12 05:45:01 +00:00
byte[] puffarray = new byte[100];
2014-06-28 21:22:05 +00:00
int emptyslots = 0;
for (int i = 0; i < 100; i++)
{
string puff = dgv.Rows[i].Cells[1].Value.ToString();
2014-06-28 21:22:05 +00:00
if (Array.IndexOf(pfa, puff) == 0)
{
emptyslots++;
continue;
}
2015-11-22 03:17:35 +00:00
puffarray[i - emptyslots] = (byte)Array.IndexOf(pfa, puff);
2014-06-28 21:22:05 +00:00
}
2015-11-22 03:17:35 +00:00
Main.SAV.Puffs = puffarray;
Main.SAV.PuffCount = Util.ToInt32(MT_CNT);
Main.SAV.Edited = true;
2014-06-28 21:22:05 +00:00
Close();
}
}
}