mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-25 21:40:21 +00:00
Added a basic secret base editor
This commit is contained in:
parent
b2abf024f6
commit
817538e208
8 changed files with 2207 additions and 35 deletions
|
@ -102,6 +102,12 @@
|
|||
<Compile Include="PKX\f3-MemoryAmie.Designer.cs">
|
||||
<DependentUpon>f3-MemoryAmie.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SAV\SAV_SecretBase.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SAV\SAV_SecretBase.Designer.cs">
|
||||
<DependentUpon>SAV_SecretBase.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SAV\SAV_EventFlagsORAS.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -217,6 +223,9 @@
|
|||
<EmbeddedResource Include="PKX\f3-MemoryAmie.resx">
|
||||
<DependentUpon>f3-MemoryAmie.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SAV\SAV_SecretBase.resx">
|
||||
<DependentUpon>SAV_SecretBase.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SAV\SAV_EventFlagsORAS.resx">
|
||||
<DependentUpon>SAV_EventFlagsORAS.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
16
PKX/f1-Main.Designer.cs
generated
16
PKX/f1-Main.Designer.cs
generated
|
@ -298,6 +298,7 @@
|
|||
this.subepkx1 = new System.Windows.Forms.PictureBox();
|
||||
this.subepkx2 = new System.Windows.Forms.PictureBox();
|
||||
this.subepkx3 = new System.Windows.Forms.PictureBox();
|
||||
this.B_OpenSecretBase = new System.Windows.Forms.Button();
|
||||
this.GB_GTS = new System.Windows.Forms.GroupBox();
|
||||
this.gtspkx = new System.Windows.Forms.PictureBox();
|
||||
this.GB_Fused = new System.Windows.Forms.GroupBox();
|
||||
|
@ -3368,8 +3369,9 @@
|
|||
//
|
||||
// Tab_Other
|
||||
//
|
||||
this.Tab_Other.Controls.Add(this.GB_Daycare);
|
||||
this.Tab_Other.Controls.Add(this.B_OpenSecretBase);
|
||||
this.Tab_Other.Controls.Add(this.GB_SUBE);
|
||||
this.Tab_Other.Controls.Add(this.GB_Daycare);
|
||||
this.Tab_Other.Controls.Add(this.GB_GTS);
|
||||
this.Tab_Other.Controls.Add(this.GB_Fused);
|
||||
this.Tab_Other.Controls.Add(this.L_ReadOnlyOther);
|
||||
|
@ -3547,6 +3549,17 @@
|
|||
this.subepkx3.TabIndex = 20;
|
||||
this.subepkx3.TabStop = false;
|
||||
//
|
||||
// B_OpenSecretBase
|
||||
//
|
||||
this.B_OpenSecretBase.Location = new System.Drawing.Point(227, 151);
|
||||
this.B_OpenSecretBase.Name = "B_OpenSecretBase";
|
||||
this.B_OpenSecretBase.Size = new System.Drawing.Size(60, 37);
|
||||
this.B_OpenSecretBase.TabIndex = 21;
|
||||
this.B_OpenSecretBase.Text = "Secret Base";
|
||||
this.B_OpenSecretBase.UseVisualStyleBackColor = true;
|
||||
this.B_OpenSecretBase.Visible = false;
|
||||
this.B_OpenSecretBase.Click += new System.EventHandler(this.B_OpenSecretBase_Click);
|
||||
//
|
||||
// GB_GTS
|
||||
//
|
||||
this.GB_GTS.Controls.Add(this.gtspkx);
|
||||
|
@ -4326,6 +4339,7 @@
|
|||
private System.Windows.Forms.CheckBox CHK_HackedStats;
|
||||
private System.Windows.Forms.MaskedTextBox MT_Level;
|
||||
private System.Windows.Forms.MaskedTextBox MT_Form;
|
||||
private System.Windows.Forms.Button B_OpenSecretBase;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1215,7 +1215,7 @@ namespace PKHeX
|
|||
TB_TID.Text = 12345.ToString();
|
||||
TB_SID.Text = 54321.ToString();
|
||||
}
|
||||
updateAbilityList();
|
||||
updateAbilityList(TB_AbilityNumber,Util.getIndex(CB_Species),CB_Ability,CB_Form);
|
||||
}
|
||||
private void InitializeLanguage()
|
||||
{
|
||||
|
@ -1681,7 +1681,7 @@ namespace PKHeX
|
|||
TB_PID.Text = PID.ToString("X8");
|
||||
CB_Species.SelectedValue = species;
|
||||
CB_HeldItem.SelectedValue = helditem;
|
||||
updateAbilityList();
|
||||
updateAbilityList(TB_AbilityNumber, species, CB_Ability, CB_Form);
|
||||
TB_AbilityNumber.Text = abilitynum.ToString();
|
||||
if (abilitynum>>1 < 3) CB_Ability.SelectedIndex = abilitynum>>1; // error handling
|
||||
else CB_Ability.SelectedIndex = 0;
|
||||
|
@ -1816,7 +1816,7 @@ namespace PKHeX
|
|||
TB_Level.Text = level.ToString();
|
||||
|
||||
// Setup Forms
|
||||
setForms(species);
|
||||
setForms(species, CB_Form);
|
||||
try
|
||||
{
|
||||
CB_Form.SelectedIndex = altforms;
|
||||
|
@ -1897,7 +1897,7 @@ namespace PKHeX
|
|||
}
|
||||
setMarkings();
|
||||
}
|
||||
private void setForms(int species)
|
||||
public void setForms(int species, ComboBox cb)
|
||||
{
|
||||
// Form Tables
|
||||
//
|
||||
|
@ -2124,9 +2124,9 @@ namespace PKHeX
|
|||
new { Text = forms[734], Value = 6}, // Cosplay
|
||||
};
|
||||
|
||||
CB_Form.DataSource = form_list;
|
||||
CB_Form.DisplayMember = "Text";
|
||||
CB_Form.ValueMember = "Value";
|
||||
cb.DataSource = form_list;
|
||||
cb.DisplayMember = "Text";
|
||||
cb.ValueMember = "Value";
|
||||
|
||||
// Mega List
|
||||
int[] mspec = { // XY
|
||||
|
@ -2138,8 +2138,8 @@ namespace PKHeX
|
|||
{
|
||||
if (mspec[i] == species)
|
||||
{
|
||||
CB_Form.DataSource = form_mega;
|
||||
CB_Form.Enabled = true; // Mega Form Selection
|
||||
cb.DataSource = form_mega;
|
||||
cb.Enabled = true; // Mega Form Selection
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -2147,8 +2147,8 @@ namespace PKHeX
|
|||
// MegaXY List
|
||||
if ((species == 6) || (species == 150))
|
||||
{
|
||||
CB_Form.DataSource = form_megaxy;
|
||||
CB_Form.Enabled = true; // Mega Form Selection
|
||||
cb.DataSource = form_megaxy;
|
||||
cb.Enabled = true; // Mega Form Selection
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2188,12 +2188,12 @@ namespace PKHeX
|
|||
|
||||
else
|
||||
{
|
||||
CB_Form.Enabled = false;
|
||||
cb.Enabled = false;
|
||||
return;
|
||||
};
|
||||
|
||||
CB_Form.DataSource = form_list;
|
||||
CB_Form.Enabled = true;
|
||||
cb.DataSource = form_list;
|
||||
cb.Enabled = true;
|
||||
}
|
||||
private void setGenderLabel()
|
||||
{
|
||||
|
@ -2693,7 +2693,7 @@ namespace PKHeX
|
|||
{
|
||||
updateStats();
|
||||
// Repopulate Abilities if Species Form has different abilities
|
||||
updateAbilityList();
|
||||
updateAbilityList(TB_AbilityNumber, Util.getIndex(CB_Species), CB_Ability, CB_Form);
|
||||
|
||||
// If form has a single gender, account for it.
|
||||
if (CB_Form.Text == "♂")
|
||||
|
@ -2740,7 +2740,7 @@ namespace PKHeX
|
|||
if (MT_Level.Visible) level = Util.ToInt32(MT_Level.Text);
|
||||
|
||||
// Get Forms for Given Species
|
||||
setForms(species);
|
||||
setForms(species, CB_Form);
|
||||
|
||||
// Recalculate EXP for Given Level
|
||||
uint exp = PKX.getEXP(level, species);
|
||||
|
@ -2766,7 +2766,7 @@ namespace PKHeX
|
|||
}
|
||||
|
||||
setGenderLabel();
|
||||
updateAbilityList();
|
||||
updateAbilityList(TB_AbilityNumber, Util.getIndex(CB_Species), CB_Ability, CB_Form);
|
||||
updateForm(null, null);
|
||||
|
||||
// If species changes and no nickname, set the new name == speciesName.
|
||||
|
@ -3490,20 +3490,19 @@ namespace PKHeX
|
|||
Stat_SPD.Text = ((((((SPD_IV + (2 * SPD_B) + (SPD_EV / 4)) * level) / 100) + 5) * n4) / 10).ToString();
|
||||
Stat_SPE.Text = ((((((SPE_IV + (2 * SPE_B) + (SPE_EV / 4)) * level) / 100) + 5) * n5) / 10).ToString();
|
||||
}
|
||||
private void updateAbilityList()
|
||||
public void updateAbilityList(MaskedTextBox tb_abil, int species, ComboBox cb_abil, ComboBox cb_forme)
|
||||
{
|
||||
if (!init)
|
||||
return;
|
||||
int newabil = Convert.ToInt16(TB_AbilityNumber.Text) >> 1;
|
||||
int species = Util.getIndex(CB_Species);
|
||||
int newabil = Convert.ToInt16(tb_abil.Text) >> 1;
|
||||
int[] abils = { 0, 0, 0 };
|
||||
//
|
||||
// Alternate Forms have different abilities. We must account for them!
|
||||
//
|
||||
|
||||
if (CB_Form.SelectedIndex > 0)
|
||||
if (cb_forme.SelectedIndex > 0)
|
||||
{
|
||||
int formnum = CB_Form.SelectedIndex;
|
||||
int formnum = cb_forme.SelectedIndex;
|
||||
if (species == 492 && formnum == 1) { species = 727; } // Shaymin
|
||||
else if (species == 487 && formnum == 1) { species = 728; } // Giratina-O
|
||||
else if (species == 550 && formnum == 1) { species = 738; } // Basculin Blue
|
||||
|
@ -3576,10 +3575,10 @@ namespace PKHeX
|
|||
ability_list.Add(abilitylist[abils[0]] + " (1)");
|
||||
ability_list.Add(abilitylist[abils[1]] + " (2)");
|
||||
ability_list.Add(abilitylist[abils[2]] + " (H)");
|
||||
CB_Ability.DataSource = ability_list;
|
||||
cb_abil.DataSource = ability_list;
|
||||
|
||||
if (newabil < 3) CB_Ability.SelectedIndex = newabil;
|
||||
else CB_Ability.SelectedIndex = 0;
|
||||
if (newabil < 3) cb_abil.SelectedIndex = newabil;
|
||||
else cb_abil.SelectedIndex = 0;
|
||||
}
|
||||
private void updateAbilityNumber()
|
||||
{
|
||||
|
@ -3941,7 +3940,8 @@ namespace PKHeX
|
|||
GB_SUBE.Visible =
|
||||
B_OpenOPowers.Enabled = B_OpenPokedex.Enabled =
|
||||
B_OpenBerryField.Enabled = !oras;
|
||||
//B_OpenTrainerInfo.Enabled = B_OpenPokepuffs.Enabled = B_OpenBoxLayout.Enabled =
|
||||
|
||||
B_OpenSecretBase.Visible = oras;
|
||||
|
||||
this.Width = largeWidth;
|
||||
}
|
||||
|
@ -5856,6 +5856,12 @@ namespace PKHeX
|
|||
SAV_HallOfFame halloffame = new PKHeX.SAV_HallOfFame(this);
|
||||
halloffame.ShowDialog();
|
||||
}
|
||||
private void B_OpenSecretBase_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Open Secret Base Menu
|
||||
SAV_SecretBase secretbase = new PKHeX.SAV_SecretBase(this);
|
||||
secretbase.ShowDialog();
|
||||
}
|
||||
|
||||
private void B_OpenTemp_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
|
|
@ -528,6 +528,12 @@
|
|||
<metadata name="ppkx6.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="GB_SUBE.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="subepkx1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="GB_Daycare.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
@ -564,12 +570,6 @@
|
|||
<metadata name="DayCare_HasEgg.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="GB_SUBE.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="subepkx1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="GB_GTS.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
|
|
@ -342,8 +342,11 @@ http://projectpokemon.org/forums/showthread.php?36986
|
|||
- Fixed: EXP now calculates and sets properly; switched from formulas (rounding errata) to a lookup table.
|
||||
- Changed: Reorganized and cleaned up the source code in prep for future usage/updates.
|
||||
|
||||
11/05/14 - New Update:
|
||||
11/05/14 - New Update: (Stable X/Y)
|
||||
- Fixed: Casting error for base happiness.
|
||||
|
||||
11/21/14 - New Update:
|
||||
- Added: Basic ORAS Support
|
||||
|
||||
11/22/14 - New Update:
|
||||
- Improved ORAS support
|
1283
SAV/SAV_SecretBase.Designer.cs
generated
Normal file
1283
SAV/SAV_SecretBase.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load diff
641
SAV/SAV_SecretBase.cs
Normal file
641
SAV/SAV_SecretBase.cs
Normal file
|
@ -0,0 +1,641 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
|
||||
namespace PKHeX
|
||||
{
|
||||
public partial class SAV_SecretBase : Form
|
||||
{
|
||||
public SAV_SecretBase(Form1 frm1)
|
||||
{
|
||||
InitializeComponent();
|
||||
m_parent = frm1;
|
||||
Array.Copy(m_parent.savefile, sav, 0x100000);
|
||||
savindex = m_parent.savindex;
|
||||
|
||||
specieslist = Form1.specieslist;
|
||||
movelist = Form1.movelist;
|
||||
itemlist = Form1.itemlist;
|
||||
abilitylist = Form1.abilitylist;
|
||||
natures = Form1.natures;
|
||||
|
||||
setupComboBoxes();
|
||||
popFavorite();
|
||||
popFavorite();
|
||||
|
||||
LB_Favorite.SelectedIndex = 0;
|
||||
B_SAV2FAV(null, null);
|
||||
|
||||
if (LB_Passerby.Items.Count > 0)
|
||||
LB_Passerby.SelectedIndex = 0;
|
||||
}
|
||||
Form1 m_parent;
|
||||
public byte[] sav = new Byte[0x100000];
|
||||
public byte[] wondercard_data = new Byte[0x108];
|
||||
public bool editing = false;
|
||||
private static uint ToUInt32(String value)
|
||||
{
|
||||
if (String.IsNullOrEmpty(value))
|
||||
return 0;
|
||||
return UInt32.Parse(value);
|
||||
}
|
||||
public int savindex; int sv = 0;
|
||||
private int fav_offset = 0x23A00;
|
||||
private int pass_offset = 0x2B600 + 0x408;
|
||||
private bool loading = true;
|
||||
|
||||
public static string[] specieslist = { };
|
||||
public static string[] movelist = { };
|
||||
public static string[] itemlist = { };
|
||||
public static string[] abilitylist = { };
|
||||
public static string[] natures = { };
|
||||
|
||||
private void setupComboBoxes()
|
||||
{
|
||||
#region Balls
|
||||
{
|
||||
// Allowed Balls
|
||||
int[] ball_nums = { 7, 576, 13, 492, 497, 14, 495, 493, 496, 494, 11, 498, 8, 6, 12, 15, 9, 5, 499, 10, 1, 16 };
|
||||
int[] ball_vals = { 7, 25, 13, 17, 22, 14, 20, 18, 21, 19, 11, 23, 8, 6, 12, 15, 9, 5, 24, 10, 1, 16 };
|
||||
|
||||
// Set up
|
||||
List<cbItem> ball_list = new List<cbItem>();
|
||||
|
||||
for (int i = 4; i > 1; i--) // add 4,3,2
|
||||
{
|
||||
// First 3 Balls are always first
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = itemlist[i];
|
||||
ncbi.Value = i;
|
||||
ball_list.Add(ncbi);
|
||||
}
|
||||
|
||||
// Sort the Rest based on String Name
|
||||
string[] ballnames = new string[ball_nums.Length];
|
||||
for (int i = 0; i < ball_nums.Length; i++)
|
||||
ballnames[i] = itemlist[ball_nums[i]];
|
||||
|
||||
string[] sortedballs = new string[ball_nums.Length];
|
||||
Array.Copy(ballnames, sortedballs, ballnames.Length);
|
||||
Array.Sort(sortedballs);
|
||||
|
||||
// Add the rest of the balls
|
||||
for (int i = 0; i < sortedballs.Length; i++)
|
||||
{
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = sortedballs[i];
|
||||
ncbi.Value = ball_vals[Array.IndexOf(ballnames, sortedballs[i])];
|
||||
ball_list.Add(ncbi);
|
||||
}
|
||||
CB_Ball.DisplayMember = "Text";
|
||||
CB_Ball.ValueMember = "Value";
|
||||
CB_Ball.DataSource = ball_list;
|
||||
}
|
||||
#endregion
|
||||
#region Held Items
|
||||
{
|
||||
// List of valid items to hold
|
||||
int[] item_nums = {
|
||||
000,001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,017,018,019,020,021,022,023,024,025,026,027,028,029,030,031,032,033,034,035,
|
||||
036,037,038,039,040,041,042,043,044,045,046,047,048,049,050,051,052,053,054,055,056,057,058,059,060,061,062,063,064,065,066,067,068,069,070,
|
||||
071,072,073,074,075,076,077,078,079,080,081,082,083,084,085,086,087,088,089,090,091,092,093,094,099,100,101,102,103,104,105,106,107,108,109,
|
||||
110,112,116,117,118,119,134,135,136,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,
|
||||
175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,
|
||||
210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,
|
||||
245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,
|
||||
280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,
|
||||
315,316,317,318,319,320,321,322,323,324,325,326,327,504,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,
|
||||
558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,577,580,581,582,583,584,585,586,587,588,589,590,591,639,640,644,645,646,647,
|
||||
648,649,650,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,
|
||||
684,685,686,687,688,699,704,708,709,710,711,715,
|
||||
|
||||
// Appended ORAS Items (Orbs & Mega Stones)
|
||||
534,535,
|
||||
752,753,754,755,756,757,758,759,760,761,762,763,764,767,768,769,770,
|
||||
};
|
||||
List<cbItem> item_list = new List<cbItem>();
|
||||
// Sort the Rest based on String Name
|
||||
string[] itemnames = new string[item_nums.Length];
|
||||
for (int i = 0; i < item_nums.Length; i++)
|
||||
itemnames[i] = itemlist[item_nums[i]];
|
||||
|
||||
string[] sorteditems = new string[item_nums.Length];
|
||||
Array.Copy(itemnames, sorteditems, itemnames.Length);
|
||||
Array.Sort(sorteditems);
|
||||
|
||||
// Add the rest of the items
|
||||
for (int i = 0; i < sorteditems.Length; i++)
|
||||
{
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = sorteditems[i];
|
||||
ncbi.Value = item_nums[Array.IndexOf(itemnames, sorteditems[i])];
|
||||
item_list.Add(ncbi);
|
||||
}
|
||||
CB_HeldItem.DisplayMember = "Text";
|
||||
CB_HeldItem.ValueMember = "Value";
|
||||
CB_HeldItem.DataSource = item_list;
|
||||
}
|
||||
#endregion
|
||||
#region Species
|
||||
{
|
||||
List<cbItem> species_list = new List<cbItem>();
|
||||
// Sort the Rest based on String Name
|
||||
string[] sortedspecies = new string[specieslist.Length];
|
||||
Array.Copy(specieslist, sortedspecies, specieslist.Length);
|
||||
Array.Sort(sortedspecies);
|
||||
|
||||
// Add the rest of the items
|
||||
for (int i = 0; i < sortedspecies.Length; i++)
|
||||
{
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = sortedspecies[i];
|
||||
ncbi.Value = Array.IndexOf(specieslist, sortedspecies[i]);
|
||||
species_list.Add(ncbi);
|
||||
}
|
||||
CB_Species.DisplayMember = "Text";
|
||||
CB_Species.ValueMember = "Value";
|
||||
CB_Species.DataSource = species_list;
|
||||
}
|
||||
#endregion
|
||||
#region Natures
|
||||
{
|
||||
List<cbItem> natures_list = new List<cbItem>();
|
||||
// Sort the Rest based on String Name
|
||||
string[] sortednatures = new string[natures.Length];
|
||||
Array.Copy(natures, sortednatures, natures.Length);
|
||||
Array.Sort(sortednatures);
|
||||
|
||||
// Add the rest of the items
|
||||
for (int i = 0; i < sortednatures.Length; i++)
|
||||
{
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = sortednatures[i];
|
||||
ncbi.Value = Array.IndexOf(natures, sortednatures[i]);
|
||||
natures_list.Add(ncbi);
|
||||
}
|
||||
CB_Nature.DisplayMember = "Text";
|
||||
CB_Nature.ValueMember = "Value";
|
||||
CB_Nature.DataSource = natures_list;
|
||||
}
|
||||
#endregion
|
||||
#region Moves
|
||||
{
|
||||
List<cbItem> move_list = new List<cbItem>();
|
||||
// Sort the Rest based on String Name
|
||||
string[] sortedmoves = new string[movelist.Length];
|
||||
Array.Copy(movelist, sortedmoves, movelist.Length);
|
||||
Array.Sort(sortedmoves);
|
||||
|
||||
// Add the rest of the items
|
||||
for (int i = 0; i < sortedmoves.Length; i++)
|
||||
{
|
||||
cbItem ncbi = new cbItem();
|
||||
ncbi.Text = sortedmoves[i];
|
||||
ncbi.Value = Array.IndexOf(movelist, sortedmoves[i]);
|
||||
move_list.Add(ncbi);
|
||||
}
|
||||
|
||||
CB_Move1.DisplayMember = CB_Move2.DisplayMember = CB_Move3.DisplayMember = CB_Move4.DisplayMember = "Text";
|
||||
CB_Move1.ValueMember = CB_Move2.ValueMember = CB_Move3.ValueMember = CB_Move4.ValueMember = "Value";
|
||||
|
||||
var move1_list = new BindingSource(move_list, null);
|
||||
CB_Move1.DataSource = move1_list;
|
||||
|
||||
var move2_list = new BindingSource(move_list, null);
|
||||
CB_Move2.DataSource = move2_list;
|
||||
|
||||
var move3_list = new BindingSource(move_list, null);
|
||||
CB_Move3.DataSource = move3_list;
|
||||
|
||||
var move4_list = new BindingSource(move_list, null);
|
||||
CB_Move4.DataSource = move4_list;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
// Repopulation Functions
|
||||
private void popFavorite()
|
||||
{
|
||||
LB_Favorite.Items.Clear();
|
||||
|
||||
int playeroff = fav_offset + 0x5400 + 0x326;
|
||||
int favoff = fav_offset + 0x5400 + 0x63A;
|
||||
string OT = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + playeroff + 0x218, 0x1A));
|
||||
LB_Favorite.Items.Add("* " + OT);
|
||||
for (int i = 0; i < 30; i++)
|
||||
{
|
||||
string BaseTrainer = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + favoff + i * 0x3E0 + 0x218, 0x1A));
|
||||
if (BaseTrainer.Length < 1 || BaseTrainer[0] == '\0')
|
||||
BaseTrainer = "Empty";
|
||||
LB_Favorite.Items.Add(i.ToString() + " " + BaseTrainer);
|
||||
}
|
||||
}
|
||||
private void popPasserby()
|
||||
{
|
||||
for (int i = 0; i < 30; i++) // Passerby
|
||||
{
|
||||
// Trainer Names
|
||||
string BaseTrainer = Encoding.Unicode.GetString(sav, sv + pass_offset + (0x298) * i + 0x14, 0x1A);
|
||||
LB_Passerby.Items.Add(i.ToString() + " " + BaseTrainer);
|
||||
}
|
||||
}
|
||||
private void B_SAV2FAV(object sender, EventArgs e)
|
||||
{
|
||||
loading = true;
|
||||
int index = LB_Favorite.SelectedIndex;
|
||||
if (index < 0) return;
|
||||
int offset = fav_offset + 0x5400 + 0x25A;
|
||||
|
||||
// Base Offset Changing
|
||||
if (index == 0)
|
||||
offset = fav_offset + 0x5400 + 0x326;
|
||||
else offset += 0x3E0 * index;
|
||||
|
||||
string TrainerName = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + offset + 0x218, 0x1A));
|
||||
|
||||
string saying1 = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + offset + 0x276 + 0x22 * 0, 0x22));
|
||||
string saying2 = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + offset + 0x276 + 0x22 * 1, 0x22));
|
||||
string saying3 = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + offset + 0x276 + 0x22 * 2, 0x22));
|
||||
string saying4 = Util.TrimFromZero(Encoding.Unicode.GetString(sav, sv + offset + 0x276 + 0x22 * 3, 0x22));
|
||||
|
||||
int baseloc = BitConverter.ToInt16(sav, sv + offset);
|
||||
textBox1.Text = baseloc.ToString();
|
||||
|
||||
TB_FOT.Text = TrainerName; TB_FSay1.Text = saying1; TB_FSay2.Text = saying2; TB_FSay3.Text = saying3; TB_FSay4.Text = saying4;
|
||||
|
||||
// Gather data for Object Array
|
||||
objdata = new byte[25, 12];
|
||||
for (int i = 0; i < 25; i++)
|
||||
for (int z = 0; z < 12; z++)
|
||||
objdata[i, z] = sav[sv + offset + 2 + 12 * i + z];
|
||||
NUD_FObject.Value = 1; // Trigger Update
|
||||
changeObjectIndex(null, null);
|
||||
|
||||
GB_PKM.Enabled = (index > 0);
|
||||
|
||||
// Trainer Pokemon
|
||||
pkmdata = new byte[3, 0x34];
|
||||
if (index > 0)
|
||||
for (int i = 0; i < 3; i++)
|
||||
for (int z = 0; z < 0x34; z++)
|
||||
pkmdata[i, z] = sav[sv + offset + 0x32E + 0x34 * i + z];
|
||||
|
||||
NUD_FPKM.Value = 1;
|
||||
changeFavPKM(null, null); // Trigger Update
|
||||
|
||||
loading = false;
|
||||
}
|
||||
private byte[,] objdata;
|
||||
private byte[,] pkmdata;
|
||||
private void B_FAV2SAV(object sender, EventArgs e)
|
||||
{
|
||||
// Write data back to save
|
||||
int index = LB_Favorite.SelectedIndex; // store for restoring
|
||||
|
||||
if (index < 0) return;
|
||||
int offset = fav_offset + 0x5400 + 0x25A;
|
||||
|
||||
// Base Offset Changing
|
||||
if (index == 0)
|
||||
offset = fav_offset + 0x5400 + 0x326;
|
||||
else offset += 0x3E0 * index;
|
||||
|
||||
|
||||
|
||||
string TrainerName = TB_FOT.Text;
|
||||
byte[] tr = Encoding.Unicode.GetBytes(TrainerName);
|
||||
Array.Resize(ref tr, 0x22); Array.Copy(tr, 0, sav, sv + offset + 0x218, 0x1A);
|
||||
|
||||
string saying1 = TB_FSay1.Text;
|
||||
string saying2 = TB_FSay2.Text;
|
||||
string saying3 = TB_FSay3.Text;
|
||||
string saying4 = TB_FSay4.Text;
|
||||
byte[] s1 = Encoding.Unicode.GetBytes(saying1);
|
||||
Array.Resize(ref s1, 0x22); Array.Copy(s1, 0, sav, sv + offset + 0x276 + 0x22 * 0, 0x22);
|
||||
byte[] s2 = Encoding.Unicode.GetBytes(saying2);
|
||||
Array.Resize(ref s2, 0x22); Array.Copy(s2, 0, sav, sv + offset + 0x276 + 0x22 * 1, 0x22);
|
||||
byte[] s3 = Encoding.Unicode.GetBytes(saying3);
|
||||
Array.Resize(ref s3, 0x22); Array.Copy(s3, 0, sav, sv + offset + 0x276 + 0x22 * 2, 0x22);
|
||||
byte[] s4 = Encoding.Unicode.GetBytes(saying4);
|
||||
Array.Resize(ref s4, 0x22); Array.Copy(s4, 0, sav, sv + offset + 0x276 + 0x22 * 3, 0x22);
|
||||
|
||||
int baseloc = Convert.ToInt16(textBox1.Text);
|
||||
Array.Copy(BitConverter.GetBytes(baseloc), 0, sav, sv + offset, 2);
|
||||
|
||||
TB_FOT.Text = TrainerName; TB_FSay1.Text = saying1; TB_FSay2.Text = saying2; TB_FSay3.Text = saying3; TB_FSay4.Text = saying4;
|
||||
|
||||
// Copy back Objects
|
||||
for (int i = 0; i < 25; i++)
|
||||
for (int z = 0; z < 12; z++)
|
||||
sav[sv + offset + 2 + 12 * i + z] = objdata[i, z];
|
||||
|
||||
if (GB_PKM.Enabled) // Copy pkm data back in
|
||||
for (int i = 0; i < 3; i++)
|
||||
for (int z = 0; z < 0x34; z++)
|
||||
sav[sv + offset + 0x32E + 0x34 * i + z] = pkmdata[i, z];
|
||||
|
||||
popFavorite();
|
||||
LB_Favorite.SelectedIndex = index;
|
||||
}
|
||||
|
||||
// Button Specific
|
||||
private void B_Cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
private void B_Save_Click(object sender, EventArgs e)
|
||||
{
|
||||
Array.Copy(sav, m_parent.savefile, 0x100000);
|
||||
m_parent.savedited = true;
|
||||
Close();
|
||||
}
|
||||
private void B_GiveDecor_Click(object sender, EventArgs e)
|
||||
{
|
||||
int offset = sv + 0x23A00 + 0x5400;
|
||||
for (int i = 0; i < 173; i++)
|
||||
{
|
||||
int qty = BitConverter.ToUInt16(sav, offset + i * 4);
|
||||
int has = BitConverter.ToUInt16(sav, offset + i * 4 + 2);
|
||||
|
||||
if (qty == 0) // give 1.
|
||||
{
|
||||
sav[offset + i * 4] = (byte)(1 + 4 * Convert.ToInt16(ModifierKeys == Keys.Control)); // give 4 more if ctrl is pressed.
|
||||
sav[offset + i * 4 + 2] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void changeObjectIndex(object sender, EventArgs e)
|
||||
{
|
||||
int objindex = (int)(NUD_FObject.Value) - 1;
|
||||
byte[] objinfo = new Byte[12];
|
||||
for (int i = 0; i < 12; i++)
|
||||
objinfo[i] = objdata[objindex, i];
|
||||
|
||||
// Array with object data acquired. Fill data.
|
||||
int val = objinfo[0]; if (val == 0xFF) val = -1;
|
||||
byte x = objinfo[2];
|
||||
byte y = objinfo[4];
|
||||
byte rot = objinfo[6];
|
||||
byte unk1 = objinfo[7];
|
||||
ushort unk2 = BitConverter.ToUInt16(objinfo, 0x8);
|
||||
|
||||
// Set values to display
|
||||
editing = true;
|
||||
|
||||
NUD_FObjType.Value = val;
|
||||
NUD_FX.Value = x;
|
||||
NUD_FY.Value = y;
|
||||
NUD_FRot.Value = rot;
|
||||
|
||||
editing = false;
|
||||
}
|
||||
private void changeObjectQuality(object sender, EventArgs e)
|
||||
{
|
||||
if (editing) return;
|
||||
|
||||
int objindex = (int)(NUD_FObject.Value) - 1;
|
||||
|
||||
byte val = (byte)(NUD_FObjType.Value);
|
||||
byte x = (byte)(NUD_FX.Value);
|
||||
byte y = (byte)(NUD_FY.Value);
|
||||
byte rot = (byte)(NUD_FRot.Value);
|
||||
|
||||
objdata[objindex, 0] = val;
|
||||
objdata[objindex, 2] = x;
|
||||
objdata[objindex, 4] = y;
|
||||
objdata[objindex, 6] = rot;
|
||||
}
|
||||
|
||||
private int currentpkm;
|
||||
private void changeFavPKM(object sender, EventArgs e)
|
||||
{
|
||||
int index = (int)(NUD_FPKM.Value);
|
||||
saveFavPKM(); // Save existing PKM
|
||||
currentpkm = index;
|
||||
loadFavPKM();
|
||||
}
|
||||
private void saveFavPKM()
|
||||
{
|
||||
if (loading || !GB_PKM.Enabled) return;
|
||||
int index = currentpkm;
|
||||
byte[] pkm = new Byte[0x34];
|
||||
|
||||
Array.Copy(BitConverter.GetBytes(Util.getHEXval(TB_EC)), 0, pkm, 0, 4); // EC
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_Species)), 0, pkm, 8, 2);
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_HeldItem)), 0, pkm, 0xA, 2);
|
||||
pkm[0xC] = (byte)Array.IndexOf(abilitylist, (CB_Ability.Text).Remove((CB_Ability.Text).Length - 4)); // Ability
|
||||
pkm[0xD] = (byte)(CB_Ability.SelectedIndex << 1); // Number
|
||||
pkm[0x14] = (byte)Util.getIndex(CB_Nature);
|
||||
|
||||
int fegform = 0;
|
||||
fegform += (Convert.ToInt32(Label_Gender.Text == "♀") * 2); // Female Gender
|
||||
fegform += (Convert.ToInt32(Label_Gender.Text == "-") * 4); // Genderless
|
||||
fegform += ((Util.getIndex(CB_Form)) * 8);
|
||||
pkm[0x15] = (byte)fegform;
|
||||
|
||||
pkm[0x16] = (byte)(Convert.ToByte( TB_HPEV.Text) & 0x1F);
|
||||
pkm[0x17] = (byte)(Convert.ToByte(TB_ATKEV.Text) & 0x1F);
|
||||
pkm[0x18] = (byte)(Convert.ToByte(TB_DEFEV.Text) & 0x1F);
|
||||
pkm[0x19] = (byte)(Convert.ToByte(TB_SPAEV.Text) & 0x1F);
|
||||
pkm[0x1A] = (byte)(Convert.ToByte(TB_SPDEV.Text) & 0x1F);
|
||||
pkm[0x1B] = (byte)(Convert.ToByte(TB_SPEEV.Text) & 0x1F);
|
||||
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_Move1)), 0, pkm, 0x1C, 2);
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_Move2)), 0, pkm, 0x1E, 2);
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_Move3)), 0, pkm, 0x20, 2);
|
||||
Array.Copy(BitConverter.GetBytes(Util.getIndex(CB_Move4)), 0, pkm, 0x22, 2);
|
||||
|
||||
pkm[0x24] = (byte)CB_PPu1.SelectedIndex;
|
||||
pkm[0x25] = (byte)CB_PPu2.SelectedIndex;
|
||||
pkm[0x26] = (byte)CB_PPu3.SelectedIndex;
|
||||
pkm[0x27] = (byte)CB_PPu4.SelectedIndex;
|
||||
|
||||
pkm[0x28] = (byte)(Convert.ToByte(TB_HPIV.Text) & 0x1F);
|
||||
pkm[0x29] = (byte)(Convert.ToByte(TB_ATKIV.Text) & 0x1F);
|
||||
pkm[0x2A] = (byte)(Convert.ToByte(TB_DEFIV.Text) & 0x1F);
|
||||
pkm[0x2B] = (byte)(Convert.ToByte(TB_SPAIV.Text) & 0x1F);
|
||||
pkm[0x2C] = (byte)(Convert.ToByte(TB_SPDIV.Text) & 0x1F);
|
||||
pkm[0x2D] = (byte)(Convert.ToByte(TB_SPEIV.Text) & 0x1F);
|
||||
int shiny = (checkBox1.Checked? 1 : 0) << 6;
|
||||
pkm[0x2D] |= (byte)shiny;
|
||||
|
||||
pkm[0x2E] = Convert.ToByte(TB_Friendship.Text);
|
||||
pkm[0x2F] = (byte)Util.getIndex(CB_Ball);
|
||||
pkm[0x30] = Convert.ToByte(TB_Level.Text);
|
||||
|
||||
for (int i = 0; i < 0x34; i++) // Copy data back to storage.
|
||||
pkmdata[index - 1, i] = pkm[i];
|
||||
}
|
||||
private void loadFavPKM()
|
||||
{
|
||||
int index = currentpkm - 1;
|
||||
byte[] fpkm = new Byte[0x34];
|
||||
for (int i = 0; i < 0x34; i++)
|
||||
fpkm[i] = pkmdata[index, i];
|
||||
|
||||
uint ec = BitConverter.ToUInt32(fpkm, 0);
|
||||
uint unk = BitConverter.ToUInt32(fpkm, 4);
|
||||
int spec = BitConverter.ToInt16(fpkm, 8);
|
||||
int item = BitConverter.ToInt16(fpkm, 0xA);
|
||||
int abil = fpkm[0xC];
|
||||
int abil_no = fpkm[0xD];
|
||||
MT_AbilNo.Text = abil_no.ToString();
|
||||
// 6 unknown bytes, contest?
|
||||
|
||||
int nature = fpkm[0x14];
|
||||
byte genform = fpkm[0x15];
|
||||
genderflag = (genform >> 1) & 0x3;
|
||||
setGenderLabel();
|
||||
|
||||
byte HP_EV = fpkm[0x16];
|
||||
byte AT_EV = fpkm[0x17];
|
||||
byte DE_EV = fpkm[0x18];
|
||||
byte SA_EV = fpkm[0x19];
|
||||
byte SD_EV = fpkm[0x1A];
|
||||
byte SP_EV = fpkm[0x1B];
|
||||
|
||||
int move1 = BitConverter.ToInt16(fpkm, 0x1C);
|
||||
int move2 = BitConverter.ToInt16(fpkm, 0x1E);
|
||||
int move3 = BitConverter.ToInt16(fpkm, 0x20);
|
||||
int move4 = BitConverter.ToInt16(fpkm, 0x22);
|
||||
|
||||
byte ppu1 = fpkm[0x24];
|
||||
byte ppu2 = fpkm[0x25];
|
||||
byte ppu3 = fpkm[0x26];
|
||||
byte ppu4 = fpkm[0x27];
|
||||
|
||||
byte HP_IV = fpkm[0x28];
|
||||
byte AT_IV = fpkm[0x29];
|
||||
byte DE_IV = fpkm[0x2A];
|
||||
byte SA_IV = fpkm[0x2B];
|
||||
byte SD_IV = fpkm[0x2C];
|
||||
byte SP_IV = fpkm[0x2D];
|
||||
|
||||
bool isshiny = ((SP_IV & 0x40) > 0);
|
||||
SP_IV &= 0x40;
|
||||
|
||||
byte friendship = fpkm[0x2E];
|
||||
int ball = fpkm[0x2F];
|
||||
byte level = fpkm[0x30];
|
||||
|
||||
// Put data into fields.
|
||||
TB_EC.Text = ec.ToString("X8");
|
||||
CB_Species.SelectedValue = spec;
|
||||
CB_HeldItem.SelectedValue = item;
|
||||
|
||||
CB_Nature.SelectedValue = nature;
|
||||
CB_Ball.SelectedValue = ball;
|
||||
|
||||
TB_HPIV.Text = HP_IV.ToString();
|
||||
TB_ATKIV.Text = AT_IV.ToString();
|
||||
TB_DEFIV.Text = DE_IV.ToString();
|
||||
TB_SPAIV.Text = SA_IV.ToString();
|
||||
TB_SPDIV.Text = SD_IV.ToString();
|
||||
TB_SPEIV.Text = (SP_IV & 0x1F).ToString();
|
||||
|
||||
TB_HPEV.Text = HP_EV.ToString();
|
||||
TB_ATKEV.Text = AT_EV.ToString();
|
||||
TB_DEFEV.Text = DE_EV.ToString();
|
||||
TB_SPAEV.Text = SA_EV.ToString();
|
||||
TB_SPDEV.Text = SD_EV.ToString();
|
||||
TB_SPEEV.Text = SP_EV.ToString();
|
||||
|
||||
TB_Friendship.Text = friendship.ToString();
|
||||
TB_Level.Text = level.ToString();
|
||||
|
||||
CB_Move1.SelectedValue = move1;
|
||||
CB_Move2.SelectedValue = move2;
|
||||
CB_Move3.SelectedValue = move3;
|
||||
CB_Move4.SelectedValue = move4;
|
||||
CB_PPu1.SelectedIndex = ppu1;
|
||||
CB_PPu2.SelectedIndex = ppu2;
|
||||
CB_PPu3.SelectedIndex = ppu3;
|
||||
CB_PPu4.SelectedIndex = ppu4;
|
||||
|
||||
checkBox1.Checked = isshiny;
|
||||
|
||||
// Set Form
|
||||
m_parent.setForms(spec, CB_Form);
|
||||
int form = genform >> 3;
|
||||
CB_Form.SelectedIndex = form;
|
||||
|
||||
// Set Ability
|
||||
m_parent.updateAbilityList(MT_AbilNo, spec, CB_Ability, CB_Form);
|
||||
}
|
||||
|
||||
private void updateSpecies(object sender, EventArgs e)
|
||||
{
|
||||
int species = Util.getIndex(CB_Species);
|
||||
|
||||
// Get Forms for Given Species
|
||||
m_parent.setForms(species, CB_Form);
|
||||
|
||||
// Check for Gender Changes
|
||||
// Get Gender Threshold
|
||||
species = Util.getIndex(CB_Species);
|
||||
DataTable spectable = PKX.SpeciesTable();
|
||||
gt = (int)spectable.Rows[species][8];
|
||||
|
||||
if (gt == 258) // Genderless
|
||||
genderflag = 2;
|
||||
else if (gt == 257) // Female Only
|
||||
genderflag = 1;
|
||||
else if (gt == 256) // Male Only
|
||||
genderflag = 0;
|
||||
|
||||
setGenderLabel();
|
||||
m_parent.updateAbilityList(MT_AbilNo, Util.getIndex(CB_Species), CB_Ability, CB_Form);
|
||||
}
|
||||
|
||||
private void updateForm(object sender, EventArgs e)
|
||||
{
|
||||
m_parent.updateAbilityList(MT_AbilNo, Util.getIndex(CB_Species), CB_Ability, CB_Form);
|
||||
|
||||
// If form has a single gender, account for it.
|
||||
if (CB_Form.Text == "♂")
|
||||
Label_Gender.Text = "♂";
|
||||
else if (CB_Form.Text == "♀")
|
||||
Label_Gender.Text = "♀";
|
||||
}
|
||||
private int species; private int gt; private int genderflag;
|
||||
private void Label_Gender_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Get Gender Threshold
|
||||
species = Util.getIndex(CB_Species);
|
||||
DataTable spectable = PKX.SpeciesTable();
|
||||
gt = (int)spectable.Rows[species][8];
|
||||
|
||||
if (gt > 255) // Single gender/genderless
|
||||
return;
|
||||
|
||||
if (gt < 256) // If not a single gender(less) species:
|
||||
{
|
||||
if (Label_Gender.Text == "♂")
|
||||
Label_Gender.Text = "♀";
|
||||
else
|
||||
Label_Gender.Text = "♂";
|
||||
}
|
||||
}
|
||||
private void setGenderLabel()
|
||||
{
|
||||
if (genderflag == 0)
|
||||
{
|
||||
// Gender = Male
|
||||
Label_Gender.Text = "♂";
|
||||
}
|
||||
else if (genderflag == 1)
|
||||
{
|
||||
// Gender = Female
|
||||
Label_Gender.Text = "♀";
|
||||
}
|
||||
else { Label_Gender.Text = "-"; }
|
||||
}
|
||||
}
|
||||
}
|
216
SAV/SAV_SecretBase.resx
Normal file
216
SAV/SAV_SecretBase.resx
Normal file
|
@ -0,0 +1,216 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq
|
||||
KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+
|
||||
vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li
|
||||
4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg
|
||||
4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly
|
||||
8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz
|
||||
8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v//
|
||||
//+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P
|
||||
Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA
|
||||
Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK
|
||||
k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF
|
||||
Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P
|
||||
aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N
|
||||
pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT
|
||||
vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV
|
||||
yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ
|
||||
yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq
|
||||
rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
|
||||
AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY
|
||||
GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e
|
||||
HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq
|
||||
quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq
|
||||
quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY
|
||||
2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY
|
||||
2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra
|
||||
2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc
|
||||
3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna
|
||||
2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
|
||||
4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ
|
||||
WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li
|
||||
4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA
|
||||
AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk
|
||||
5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb
|
||||
2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl
|
||||
5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh
|
||||
4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm
|
||||
5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk
|
||||
4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn
|
||||
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
|
||||
wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P
|
||||
tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT
|
||||
wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER
|
||||
vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV
|
||||
wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV
|
||||
wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV
|
||||
xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW
|
||||
yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV
|
||||
x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY
|
||||
zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl
|
||||
eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX
|
||||
zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA
|
||||
AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ
|
||||
zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws
|
||||
p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb
|
||||
ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||
AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||
AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB//////
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in a new issue