From ff97a7a97347da00495456ef5fe3cf4040ae4061 Mon Sep 17 00:00:00 2001 From: Kurt Date: Thu, 11 Dec 2014 21:44:05 -0800 Subject: [PATCH] Adding Special Characters text entry --- PKX/f1-Main.Designer.cs | 3 + PKX/f1-Main.cs | 122 +++++----- PKX/f2-Text.Designer.cs | 438 +++++++++++++++++++++++++++++++++++ PKX/f2-Text.cs | 51 ++++ PKX/f2-Text.resx | 216 +++++++++++++++++ Resources/text/shortcuts.txt | 2 + 6 files changed, 778 insertions(+), 54 deletions(-) create mode 100644 PKX/f2-Text.Designer.cs create mode 100644 PKX/f2-Text.cs create mode 100644 PKX/f2-Text.resx diff --git a/PKX/f1-Main.Designer.cs b/PKX/f1-Main.Designer.cs index 091230ec0..de931c5fe 100644 --- a/PKX/f1-Main.Designer.cs +++ b/PKX/f1-Main.Designer.cs @@ -548,6 +548,7 @@ public void InitializeComponent() this.CHK_Nicknamed.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.CHK_Nicknamed.UseVisualStyleBackColor = true; this.CHK_Nicknamed.CheckedChanged += new System.EventHandler(this.updateNickname); + this.CHK_Nicknamed.MouseDown += new System.Windows.Forms.MouseEventHandler(this.updateNicknameClick); // // Label_Gender // @@ -870,7 +871,9 @@ public void InitializeComponent() // this.TB_Nickname.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.TB_Nickname.Location = new System.Drawing.Point(105, 49); + this.TB_Nickname.MaximumSize = new System.Drawing.Size(122, 20); this.TB_Nickname.MaxLength = 12; + this.TB_Nickname.MinimumSize = new System.Drawing.Size(122, 20); this.TB_Nickname.Name = "TB_Nickname"; this.TB_Nickname.Size = new System.Drawing.Size(122, 20); this.TB_Nickname.TabIndex = 5; diff --git a/PKX/f1-Main.cs b/PKX/f1-Main.cs index ebfd0ccca..cc954b19a 100644 --- a/PKX/f1-Main.cs +++ b/PKX/f1-Main.cs @@ -180,8 +180,9 @@ public Form1() else if (File.Exists(Util.NormalizePath(Path.Combine(Util.GetTempFolder(), "root" + Path.DirectorySeparatorChar + "main")))) openQuick(Util.NormalizePath(Path.Combine(Util.GetTempFolder() , "root" + Path.DirectorySeparatorChar + "main"))); + TB_Nickname.Font = PKX.getPKXFont(11F); // Close splash screen. - init = true; + init = true; SplashSCR.Join(); this.BringToFront(); this.WindowState = FormWindowState.Minimized; @@ -193,9 +194,9 @@ public Form1() } #region Global Variables: Always Visible! - public byte[] buff = new Byte[260]; - public byte[] savefile = new Byte[0x100000]; - public byte[] cyberSAV = new Byte[0x65600]; + public byte[] buff = new byte[260]; + public byte[] savefile = new byte[0x100000]; + public byte[] cyberSAV = new byte[0x65600]; public bool savegame_oras = false; public bool cybergadget = false; public bool savLoaded = false; @@ -2233,6 +2234,12 @@ private void updateNickname(object sender, EventArgs e) } } } + private void updateNicknameClick(object sender, MouseEventArgs e) + { + // Special Character Form + if (e.Button == MouseButtons.Right) + (new f2_Text(TB_Nickname)).Show(); + } private void updateNotOT(object sender, EventArgs e) { if (TB_OTt2.Text == "") @@ -2558,7 +2565,7 @@ private void mainmenuCodeGen(object sender, EventArgs e) try { populateFields(buff); } catch { - Array.Copy(new Byte[232], buff, 232); + Array.Copy(new byte[232], buff, 232); populateFields(buff); Util.Error("Imported code did not decrypt properly", "Please verify that what you imported was correct."); } @@ -2593,7 +2600,7 @@ private void openQuick(string path) { try { - byte[] blank = PKX.encryptArray(new Byte[260]); + byte[] blank = PKX.encryptArray(new byte[260]); for (int i = 0; i < 232; i++) blank[i] = (byte)(blank[i] ^ input[i]); @@ -2617,14 +2624,14 @@ private void openFile(byte[] input, string path, string ext) if (input.Length == 363 && BitConverter.ToUInt16(input, 0x6B) == 0) { // EAD Packet of 363 length - byte[] c = new Byte[260]; + byte[] c = new byte[260]; Array.Copy(input, 0x67, c, 0, 260); input = c; } else if (input.Length == 407 && BitConverter.ToUInt16(input,0x98) == 0) { // EAD Packet of 407 length - byte[] c = new Byte[260]; + byte[] c = new byte[260]; Array.Copy(input, 0x93, c, 0, 260); input = c; } @@ -2637,6 +2644,9 @@ private void openFile(byte[] input, string path, string ext) // Verify the Data Input Size is Proper else if (input.Length == 0x100000) { + if (BitConverter.ToUInt64(input,0x10) != 0) // encrypted save + { Util.Error("PKHeX only edits decrypted save files.", "This save file is not decrypted."); return; } + B_ExportSAV.Enabled = false; B_SwitchSAV.Enabled = false; B_JPEG.Enabled = false; @@ -2727,7 +2737,7 @@ private void openFile(byte[] input, string path, string ext) } catch { - Array.Copy(new Byte[232], buff, 232); + Array.Copy(new byte[232], buff, 232); populateFields(buff); Util.Error("Attempted to load previous generation PKM.", "Conversion failed."); } @@ -2743,7 +2753,7 @@ private void openMAIN(byte[] input, string path, string GameType, bool oras) // Load CyberGadget this.savindex = 0; - this.savefile = new Byte[0x100000]; + this.savefile = new byte[0x100000]; this.cyberSAV = input; cybergadget = true; B_ExportSAV.Enabled = true; @@ -2765,14 +2775,14 @@ private void open1MB(byte[] input, string path, string GameType, bool oras) SHA256 mySHA256 = SHA256Managed.Create(); // Check both IVFC Hashes - byte[] zeroarray = new Byte[0x200]; + byte[] zeroarray = new byte[0x200]; Array.Copy(savefile, 0x2000 + 0 * 0x7F000, zeroarray, 0, 0x20); byte[] hashValue1 = mySHA256.ComputeHash(zeroarray); Array.Copy(savefile, 0x2000 + 1 * 0x7F000, zeroarray, 0, 0x20); byte[] hashValue2 = mySHA256.ComputeHash(zeroarray); - byte[] realHash1 = new Byte[0x20]; - byte[] realHash2 = new Byte[0x20]; + byte[] realHash1 = new byte[0x20]; + byte[] realHash2 = new byte[0x20]; Array.Copy(savefile, 0x43C - 0 * 0x130, realHash1, 0, 0x20); Array.Copy(savefile, 0x43C - 1 * 0x130, realHash2, 0, 0x20); @@ -3096,7 +3106,7 @@ public byte[] preparepkx(byte[] buff) if (BitConverter.ToUInt16(pkx, 0x5A + 2 * i) == 0) { Array.Copy(pkx, 0x5C + 2 * i, pkx, 0x5A + 2 * i, 2); // Shift moves down - Array.Copy(new Byte[2], 0, pkx, 0x5C + 2 * i, 2); // Clear next move (error shifted down) + Array.Copy(new byte[2], 0, pkx, 0x5C + 2 * i, 2); // Clear next move (error shifted down) // Move PP and PP Ups down one byte. pkx[0x62 + i] = pkx[0x63 + i]; pkx[0x63 + i] = 0; // PP @@ -3110,7 +3120,7 @@ public byte[] preparepkx(byte[] buff) if (BitConverter.ToUInt16(pkx, 0x6A + 2 * i) == 0) { Array.Copy(pkx, 0x6C + 2 * i, pkx, 0x6A + 2 * i, 2); // Shift moves down - Array.Copy(new Byte[2], 0, pkx, 0x6C + 2 * i, 2); // Clear next move (error shifted down) + Array.Copy(new byte[2], 0, pkx, 0x6C + 2 * i, 2); // Clear next move (error shifted down) } } @@ -3255,7 +3265,7 @@ private void B_VerifyCHK_Click(object sender, EventArgs e) for (int i = 0; i < length.Length; i++) { - byte[] data = new Byte[length[i]]; + byte[] data = new byte[length[i]]; Array.Copy(savefile, start[i], data, 0, length[i]); ushort checksum = PKX.ccitt16(data); ushort actualsum = BitConverter.ToUInt16(savefile, csoff + i * 0x8); @@ -3278,7 +3288,7 @@ private void B_VerifyCHK_Click(object sender, EventArgs e) int invalid2 = 0; for (int i = 0; i < length.Length; i++) { - byte[] data = new Byte[length[i]]; + byte[] data = new byte[length[i]]; Array.Copy(savefile, start[i], data, 0, length[i]); ushort checksum = PKX.ccitt16(data); ushort actualsum = BitConverter.ToUInt16(savefile,csoff + i * 0x8); @@ -3421,10 +3431,10 @@ private void B_VerifySHA_Click(object sender, EventArgs e) uint offset = hashtabledata[2 + 4 * i]; uint blocksize = hashtabledata[3 + 4 * i]; - byte[] zeroarray = new Byte[blocksize]; + byte[] zeroarray = new byte[blocksize]; Array.Copy(savefile, start, zeroarray, 0, length + 1); byte[] hashValue = mySHA256.ComputeHash(zeroarray); - byte[] actualhash = new Byte[0x20]; + byte[] actualhash = new byte[0x20]; Array.Copy(savefile, offset, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) @@ -3457,10 +3467,10 @@ private void B_VerifySHA_Click(object sender, EventArgs e) uint offset = hashtabledata[2 + 4 * i]; uint blocksize = hashtabledata[3 + 4 * i]; - byte[] zeroarray = new Byte[blocksize]; + byte[] zeroarray = new byte[blocksize]; Array.Copy(savefile, start, zeroarray, 0, length + 1); byte[] hashValue = mySHA256.ComputeHash(zeroarray); - byte[] actualhash = new Byte[0x20]; + byte[] actualhash = new byte[0x20]; Array.Copy(savefile, offset, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) @@ -3476,10 +3486,10 @@ private void B_VerifySHA_Click(object sender, EventArgs e) // Check the Upper Level IVFC Hashes { - byte[] zeroarray = new Byte[0x200]; + byte[] zeroarray = new byte[0x200]; Array.Copy(savefile, 0x2000, zeroarray, 0, 0x20); byte[] hashValue = mySHA256.ComputeHash(zeroarray); - byte[] actualhash = new Byte[0x20]; + byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x43C, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) { @@ -3487,10 +3497,10 @@ private void B_VerifySHA_Click(object sender, EventArgs e) } } { - byte[] zeroarray = new Byte[0x200]; + byte[] zeroarray = new byte[0x200]; Array.Copy(savefile, 0x81000, zeroarray, 0, 0x20); byte[] hashValue = mySHA256.ComputeHash(zeroarray); - byte[] actualhash = new Byte[0x20]; + byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x30C, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) { @@ -3498,13 +3508,13 @@ private void B_VerifySHA_Click(object sender, EventArgs e) } } { - byte[] difihash1 = new Byte[0x12C]; - byte[] difihash2 = new Byte[0x12C]; + byte[] difihash1 = new byte[0x12C]; + byte[] difihash2 = new byte[0x12C]; Array.Copy(savefile, 0x330, difihash1, 0, 0x12C); Array.Copy(savefile, 0x200, difihash2, 0, 0x12C); byte[] hashValue1 = mySHA256.ComputeHash(difihash1); byte[] hashValue2 = mySHA256.ComputeHash(difihash2); - byte[] actualhash = new Byte[0x20]; + byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x16C, actualhash, 0, 0x20); if (hashValue1.SequenceEqual(actualhash)) { @@ -3523,7 +3533,7 @@ private void B_VerifySHA_Click(object sender, EventArgs e) private void exportSAV(object sender, EventArgs e) { // Create another version of the save file. - byte[] editedsav = new Byte[0x100000]; + byte[] editedsav = new byte[0x100000]; Array.Copy(savefile, editedsav, savefile.Length); // Since we only edited one of the save files, we only have to fix half of the chk/hashes! @@ -3549,7 +3559,7 @@ private void exportSAV(object sender, EventArgs e) for (int i = 0; i < length.Length; i++) { - byte[] data = new Byte[length[i]]; + byte[] data = new byte[length[i]]; Array.Copy(editedsav, start[i], data, 0, length[i]); ushort checksum = PKX.ccitt16(data); Array.Copy(BitConverter.GetBytes(checksum), 0, editedsav, csoff + i * 8, 2); @@ -3697,7 +3707,7 @@ private void exportSAV(object sender, EventArgs e) uint offset = hashtabledata[2 + 4 * i]; uint blocksize = hashtabledata[3 + 4 * i]; - byte[] zeroarray = new Byte[blocksize]; + byte[] zeroarray = new byte[blocksize]; Array.Copy(editedsav, start, zeroarray, 0, length + 1); byte[] hashValue = mySHA256.ComputeHash(zeroarray); Array.Copy(hashValue, 0, editedsav, offset, 0x20); @@ -3709,7 +3719,7 @@ private void exportSAV(object sender, EventArgs e) uint offset = hashtabledata[2 + 4 * 1]; uint blocksize = hashtabledata[3 + 4 * 1]; - byte[] zeroarray = new Byte[blocksize]; + byte[] zeroarray = new byte[blocksize]; Array.Copy(editedsav, start, zeroarray, 0, length + 1); byte[] hashValue = mySHA256.ComputeHash(zeroarray); @@ -3722,7 +3732,7 @@ private void exportSAV(object sender, EventArgs e) uint offset = hashtabledata[2 + 4 * 0]; uint blocksize = hashtabledata[3 + 4 * 0]; - byte[] zeroarray = new Byte[blocksize]; + byte[] zeroarray = new byte[blocksize]; Array.Copy(editedsav, start, zeroarray, 0, length + 1); byte[] hashValue = mySHA256.ComputeHash(zeroarray); @@ -3730,7 +3740,7 @@ private void exportSAV(object sender, EventArgs e) } // Fix IVFC Hash { - byte[] zeroarray = new Byte[0x200]; + byte[] zeroarray = new byte[0x200]; Array.Copy(editedsav, 0x2000 + savindex * 0x7F000, zeroarray, 0, 0x20); byte[] hashValue = mySHA256.ComputeHash(zeroarray); @@ -3738,7 +3748,7 @@ private void exportSAV(object sender, EventArgs e) } // Fix DISA Hash { - byte[] difihash = new Byte[0x12C]; + byte[] difihash = new byte[0x12C]; Array.Copy(editedsav, 0x330 - savindex * 0x130, difihash, 0, 0x12C); byte[] hashValue = mySHA256.ComputeHash(difihash); @@ -3753,12 +3763,12 @@ private void exportSAV(object sender, EventArgs e) // If CyberGadget if (cybergadget) { - byte[] cybersav = new Byte[0x65600]; - if (savegame_oras) cybersav = new Byte[0x76000]; + byte[] cybersav = new byte[0x65600]; + if (savegame_oras) cybersav = new byte[0x76000]; Array.Copy(editedsav, 0x5400, cybersav, 0, cybersav.Length); // Chunk Error Checking - byte[] FFFF = new Byte[0x200]; - byte[] section = new Byte[0x200]; + byte[] FFFF = new byte[0x200]; + byte[] section = new byte[0x200]; for (int i = 0; i < 0x200; i++) FFFF[i] = 0xFF; @@ -3875,7 +3885,7 @@ private void rcmView_Click(object sender, EventArgs e) // Load the PKX file if (BitConverter.ToUInt64(savefile, offset + 8) != 0) { - byte[] ekxdata = new Byte[0xE8]; + byte[] ekxdata = new byte[0xE8]; Array.Copy(savefile, offset, ekxdata, 0, 0xE8); byte[] pkxdata = PKX.decryptArray(ekxdata); int species = BitConverter.ToInt16(pkxdata, 0x08); // Get Species @@ -3893,7 +3903,7 @@ private void rcmView_Click(object sender, EventArgs e) { try { - byte[] blank = PKX.encryptArray(new Byte[0xE8]); + byte[] blank = PKX.encryptArray(new byte[0xE8]); for (int i = 0; i < 0xE8; i++) blank[i] = (byte)(buff[i] ^ blank[i]); @@ -3962,7 +3972,7 @@ private void rcmDelete_Click(object sender, EventArgs e) if (slot == 30 && partycount == 1 && !DEV_Ability.Enabled) { Util.Alert("Can't delete first slot."); return; } int offset = getPKXOffset(slot); - byte[] pkxdata = new Byte[0x104]; + byte[] pkxdata = new byte[0x104]; byte[] ekxdata = PKX.encryptArray(pkxdata); if (slot >= 30 && slot < 36) // Party @@ -4033,7 +4043,7 @@ private byte setParty() for (int i = 0; i < 6; i++) { // Gather all the species - byte[] data = new Byte[0x104]; + byte[] data = new byte[0x104]; Array.Copy(savefile, offset + i * 0x104, data, 0, 0x104); byte[] decdata = PKX.decryptArray(data); int species = BitConverter.ToInt16(decdata,8); @@ -4049,7 +4059,7 @@ private byte setParty() // Zero out the party slots that are empty. for (int i = 0; i < 6; i++) if (i >= partymembers) - Array.Copy(PKX.encryptArray(new Byte[0x104]), 0, savefile, offset + (i * 0x104), 0x104); + Array.Copy(PKX.encryptArray(new byte[0x104]), 0, savefile, offset + (i * 0x104), 0x104); // Repeat for Battle Box. byte battlemem = 0; @@ -4057,7 +4067,7 @@ private byte setParty() for (int i = 0; i < 6; i++) { // Gather all the species - byte[] data = new Byte[0x104]; + byte[] data = new byte[0x104]; Array.Copy(savefile, offset2 + i * 0xE8, data, 0, 0xE8); byte[] decdata = PKX.decryptArray(data); int species = BitConverter.ToInt16(decdata, 8); @@ -4071,7 +4081,7 @@ private byte setParty() // Zero out the party slots that are empty. for (int i = 0; i < 6; i++) if (i >= battlemem) - Array.Copy(PKX.encryptArray(new Byte[0x104]), 0, savefile, offset2 + (i * 0xE8), 0xE8); + Array.Copy(PKX.encryptArray(new byte[0x104]), 0, savefile, offset2 + (i * 0xE8), 0xE8); if (battlemem == 0) savefile[offset2 + 6 * 0xE8 + savindex * 0x7F000] = 0; @@ -4273,7 +4283,7 @@ private void getSAVOffsets() } private void getSlotFiller(int offset, PictureBox pb) { - byte[] slotdata = new Byte[0xE8]; + byte[] slotdata = new byte[0xE8]; Array.Copy(savefile, offset, slotdata, 0, 0xE8); // Fill Our EKX Slot byte[] dslotdata = PKX.decryptArray(slotdata); @@ -4281,7 +4291,7 @@ private void getSlotFiller(int offset, PictureBox pb) for (int i = 8; i < 232; i += 2) // Loop through the entire PKX chk += BitConverter.ToUInt16(dslotdata, i); - if (chk != BitConverter.ToUInt16(dslotdata, 6) && (!savLoaded && !slotdata.SequenceEqual(new Byte[0xE8]))) // Bad Egg + if (chk != BitConverter.ToUInt16(dslotdata, 6) && (!savLoaded && !slotdata.SequenceEqual(new byte[0xE8]))) // Bad Egg { pb.Image = null; pb.BackColor = Color.Red; @@ -4449,7 +4459,7 @@ private void Menu_DumpLoadBoxes_Click(object sender, EventArgs e) } for (int i = 0; i < 31 * 30 * size; i += size) { - byte[] ekxdata = new Byte[size]; + byte[] ekxdata = new byte[size]; Array.Copy(savefile, offset + i, ekxdata, 0, size); byte[] pkxdata = PKX.decryptArray(ekxdata); @@ -4504,7 +4514,7 @@ private void loadBoxesFromDB(string path) // Array.Clear(savefile, offset, size * 30 * 31); if (Util.Prompt(MessageBoxButtons.YesNo, "Clear subsequent boxes when importing data?", "If you only want to overwrite for new data, press no.") == DialogResult.Yes) { - byte[] ezeros = PKX.encryptArray(new Byte[232]); + byte[] ezeros = PKX.encryptArray(new byte[232]); for (int i = ctr; i < 30 * 31; i++) Array.Copy(ezeros, 0, savefile, offset + i * 232, 232); } @@ -4521,7 +4531,7 @@ private void loadBoxesFromDB(string path) && len != 100 && len != 80) // 4th Gen continue; string name = filepaths[i]; - byte[] data = new Byte[232]; + byte[] data = new byte[232]; string ext = Path.GetExtension(filepaths[i]); if (ext == ".pkm" || ext == ".3gpkm" || ext == ".pk3" || ext == ".pk4" || ext == ".pk5") { @@ -4824,7 +4834,7 @@ private void B_JPEG_Click(object sender, EventArgs e) } int length = 0xE004; - byte[] jpeg = new Byte[length]; + byte[] jpeg = new byte[length]; Array.Copy(savefile, offset, jpeg, 0, length); SaveFileDialog savejpeg = new SaveFileDialog(); savejpeg.FileName = filename; @@ -5051,7 +5061,7 @@ private void pbBoxSlot_DragDrop(object sender, DragEventArgs e) else { if (ModifierKeys == Keys.Alt) - Array.Copy(PKX.encryptArray(new Byte[0xE8]), 0, savefile, pkm_from_offset, 0xE8); + Array.Copy(PKX.encryptArray(new byte[0xE8]), 0, savefile, pkm_from_offset, 0xE8); else if (ModifierKeys != Keys.Control) Array.Copy(savefile, offset, savefile, pkm_from_offset, 0xE8); // Copy from new slot to old slot. Array.Copy(pkm_from, 0, savefile, offset, 0xE8); // Copy from temp slot to new. @@ -5064,7 +5074,7 @@ private void pbBoxSlot_DragEnter(object sender, DragEventArgs e) if (e.Data != null) e.Effect = DragDropEffects.Move; } - private byte[] pkm_from = PKX.encryptArray(new Byte[0xE8]); + private byte[] pkm_from = PKX.encryptArray(new byte[0xE8]); private int pkm_from_offset = 0; private void L_Save_Click(object sender, EventArgs e) { @@ -5099,6 +5109,10 @@ private void Menu_Unicode_Click(object sender, EventArgs e) BTN_Shinytize.Text = "☆"; } } + + + + } #region Structs & Classes public class cbItem diff --git a/PKX/f2-Text.Designer.cs b/PKX/f2-Text.Designer.cs new file mode 100644 index 000000000..e672ec3b4 --- /dev/null +++ b/PKX/f2-Text.Designer.cs @@ -0,0 +1,438 @@ +namespace PKHeX +{ + partial class f2_Text + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(f2_Text)); + this.L04 = new System.Windows.Forms.Label(); + this.L0C = new System.Windows.Forms.Label(); + this.L0D = new System.Windows.Forms.Label(); + this.L05 = new System.Windows.Forms.Label(); + this.L0E = new System.Windows.Forms.Label(); + this.L06 = new System.Windows.Forms.Label(); + this.L0F = new System.Windows.Forms.Label(); + this.L07 = new System.Windows.Forms.Label(); + this.L1E = new System.Windows.Forms.Label(); + this.L16 = new System.Windows.Forms.Label(); + this.L1F = new System.Windows.Forms.Label(); + this.L17 = new System.Windows.Forms.Label(); + this.L18 = new System.Windows.Forms.Label(); + this.L10 = new System.Windows.Forms.Label(); + this.L19 = new System.Windows.Forms.Label(); + this.L11 = new System.Windows.Forms.Label(); + this.L0B = new System.Windows.Forms.Label(); + this.L03 = new System.Windows.Forms.Label(); + this.L0A = new System.Windows.Forms.Label(); + this.L02 = new System.Windows.Forms.Label(); + this.L09 = new System.Windows.Forms.Label(); + this.L01 = new System.Windows.Forms.Label(); + this.L08 = new System.Windows.Forms.Label(); + this.L00 = new System.Windows.Forms.Label(); + this.L1B = new System.Windows.Forms.Label(); + this.L13 = new System.Windows.Forms.Label(); + this.L1A = new System.Windows.Forms.Label(); + this.L12 = new System.Windows.Forms.Label(); + this.L1D = new System.Windows.Forms.Label(); + this.L15 = new System.Windows.Forms.Label(); + this.L1C = new System.Windows.Forms.Label(); + this.L14 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // L04 + // + this.L04.AutoSize = true; + this.L04.Location = new System.Drawing.Point(92, 12); + this.L04.Name = "L04"; + this.L04.Size = new System.Drawing.Size(14, 13); + this.L04.TabIndex = 3; + this.L04.Text = "X"; + // + // L0C + // + this.L0C.AutoSize = true; + this.L0C.Location = new System.Drawing.Point(92, 34); + this.L0C.Name = "L0C"; + this.L0C.Size = new System.Drawing.Size(14, 13); + this.L0C.TabIndex = 4; + this.L0C.Text = "X"; + // + // L0D + // + this.L0D.AutoSize = true; + this.L0D.Location = new System.Drawing.Point(112, 34); + this.L0D.Name = "L0D"; + this.L0D.Size = new System.Drawing.Size(14, 13); + this.L0D.TabIndex = 6; + this.L0D.Text = "X"; + // + // L05 + // + this.L05.AutoSize = true; + this.L05.Location = new System.Drawing.Point(112, 12); + this.L05.Name = "L05"; + this.L05.Size = new System.Drawing.Size(14, 13); + this.L05.TabIndex = 5; + this.L05.Text = "X"; + // + // L0E + // + this.L0E.AutoSize = true; + this.L0E.Location = new System.Drawing.Point(132, 34); + this.L0E.Name = "L0E"; + this.L0E.Size = new System.Drawing.Size(14, 13); + this.L0E.TabIndex = 8; + this.L0E.Text = "X"; + // + // L06 + // + this.L06.AutoSize = true; + this.L06.Location = new System.Drawing.Point(132, 12); + this.L06.Name = "L06"; + this.L06.Size = new System.Drawing.Size(14, 13); + this.L06.TabIndex = 7; + this.L06.Text = "X"; + // + // L0F + // + this.L0F.AutoSize = true; + this.L0F.Location = new System.Drawing.Point(152, 34); + this.L0F.Name = "L0F"; + this.L0F.Size = new System.Drawing.Size(14, 13); + this.L0F.TabIndex = 10; + this.L0F.Text = "X"; + // + // L07 + // + this.L07.AutoSize = true; + this.L07.Location = new System.Drawing.Point(152, 12); + this.L07.Name = "L07"; + this.L07.Size = new System.Drawing.Size(14, 13); + this.L07.TabIndex = 9; + this.L07.Text = "X"; + // + // L1E + // + this.L1E.AutoSize = true; + this.L1E.Location = new System.Drawing.Point(132, 81); + this.L1E.Name = "L1E"; + this.L1E.Size = new System.Drawing.Size(14, 13); + this.L1E.TabIndex = 12; + this.L1E.Text = "X"; + // + // L16 + // + this.L16.AutoSize = true; + this.L16.Location = new System.Drawing.Point(132, 59); + this.L16.Name = "L16"; + this.L16.Size = new System.Drawing.Size(14, 13); + this.L16.TabIndex = 11; + this.L16.Text = "X"; + // + // L1F + // + this.L1F.AutoSize = true; + this.L1F.Location = new System.Drawing.Point(152, 81); + this.L1F.Name = "L1F"; + this.L1F.Size = new System.Drawing.Size(14, 13); + this.L1F.TabIndex = 14; + this.L1F.Text = "X"; + // + // L17 + // + this.L17.AutoSize = true; + this.L17.Location = new System.Drawing.Point(152, 59); + this.L17.Name = "L17"; + this.L17.Size = new System.Drawing.Size(14, 13); + this.L17.TabIndex = 13; + this.L17.Text = "X"; + // + // L18 + // + this.L18.AutoSize = true; + this.L18.Location = new System.Drawing.Point(12, 81); + this.L18.Name = "L18"; + this.L18.Size = new System.Drawing.Size(14, 13); + this.L18.TabIndex = 16; + this.L18.Text = "X"; + // + // L10 + // + this.L10.AutoSize = true; + this.L10.Location = new System.Drawing.Point(12, 59); + this.L10.Name = "L10"; + this.L10.Size = new System.Drawing.Size(14, 13); + this.L10.TabIndex = 15; + this.L10.Text = "X"; + // + // L19 + // + this.L19.AutoSize = true; + this.L19.Location = new System.Drawing.Point(32, 81); + this.L19.Name = "L19"; + this.L19.Size = new System.Drawing.Size(14, 13); + this.L19.TabIndex = 18; + this.L19.Text = "X"; + // + // L11 + // + this.L11.AutoSize = true; + this.L11.Location = new System.Drawing.Point(32, 59); + this.L11.Name = "L11"; + this.L11.Size = new System.Drawing.Size(14, 13); + this.L11.TabIndex = 17; + this.L11.Text = "X"; + // + // L0B + // + this.L0B.AutoSize = true; + this.L0B.Location = new System.Drawing.Point(72, 34); + this.L0B.Name = "L0B"; + this.L0B.Size = new System.Drawing.Size(14, 13); + this.L0B.TabIndex = 26; + this.L0B.Text = "X"; + // + // L03 + // + this.L03.AutoSize = true; + this.L03.Location = new System.Drawing.Point(72, 12); + this.L03.Name = "L03"; + this.L03.Size = new System.Drawing.Size(14, 13); + this.L03.TabIndex = 25; + this.L03.Text = "X"; + // + // L0A + // + this.L0A.AutoSize = true; + this.L0A.Location = new System.Drawing.Point(52, 34); + this.L0A.Name = "L0A"; + this.L0A.Size = new System.Drawing.Size(14, 13); + this.L0A.TabIndex = 24; + this.L0A.Text = "X"; + // + // L02 + // + this.L02.AutoSize = true; + this.L02.Location = new System.Drawing.Point(52, 12); + this.L02.Name = "L02"; + this.L02.Size = new System.Drawing.Size(14, 13); + this.L02.TabIndex = 23; + this.L02.Text = "X"; + // + // L09 + // + this.L09.AutoSize = true; + this.L09.Location = new System.Drawing.Point(32, 34); + this.L09.Name = "L09"; + this.L09.Size = new System.Drawing.Size(14, 13); + this.L09.TabIndex = 22; + this.L09.Text = "X"; + // + // L01 + // + this.L01.AutoSize = true; + this.L01.Location = new System.Drawing.Point(32, 12); + this.L01.Name = "L01"; + this.L01.Size = new System.Drawing.Size(14, 13); + this.L01.TabIndex = 21; + this.L01.Text = "X"; + // + // L08 + // + this.L08.AutoSize = true; + this.L08.Location = new System.Drawing.Point(12, 34); + this.L08.Name = "L08"; + this.L08.Size = new System.Drawing.Size(14, 13); + this.L08.TabIndex = 20; + this.L08.Text = "X"; + // + // L00 + // + this.L00.AutoSize = true; + this.L00.Location = new System.Drawing.Point(12, 12); + this.L00.Name = "L00"; + this.L00.Size = new System.Drawing.Size(14, 13); + this.L00.TabIndex = 19; + this.L00.Text = "X"; + // + // L1B + // + this.L1B.AutoSize = true; + this.L1B.Location = new System.Drawing.Point(72, 81); + this.L1B.Name = "L1B"; + this.L1B.Size = new System.Drawing.Size(14, 13); + this.L1B.TabIndex = 30; + this.L1B.Text = "X"; + // + // L13 + // + this.L13.AutoSize = true; + this.L13.Location = new System.Drawing.Point(72, 59); + this.L13.Name = "L13"; + this.L13.Size = new System.Drawing.Size(14, 13); + this.L13.TabIndex = 29; + this.L13.Text = "X"; + // + // L1A + // + this.L1A.AutoSize = true; + this.L1A.Location = new System.Drawing.Point(52, 81); + this.L1A.Name = "L1A"; + this.L1A.Size = new System.Drawing.Size(14, 13); + this.L1A.TabIndex = 28; + this.L1A.Text = "X"; + // + // L12 + // + this.L12.AutoSize = true; + this.L12.Location = new System.Drawing.Point(52, 59); + this.L12.Name = "L12"; + this.L12.Size = new System.Drawing.Size(14, 13); + this.L12.TabIndex = 27; + this.L12.Text = "X"; + // + // L1D + // + this.L1D.AutoSize = true; + this.L1D.Location = new System.Drawing.Point(112, 81); + this.L1D.Name = "L1D"; + this.L1D.Size = new System.Drawing.Size(14, 13); + this.L1D.TabIndex = 34; + this.L1D.Text = "X"; + // + // L15 + // + this.L15.AutoSize = true; + this.L15.Location = new System.Drawing.Point(112, 59); + this.L15.Name = "L15"; + this.L15.Size = new System.Drawing.Size(14, 13); + this.L15.TabIndex = 33; + this.L15.Text = "X"; + // + // L1C + // + this.L1C.AutoSize = true; + this.L1C.Location = new System.Drawing.Point(92, 81); + this.L1C.Name = "L1C"; + this.L1C.Size = new System.Drawing.Size(14, 13); + this.L1C.TabIndex = 32; + this.L1C.Text = "X"; + // + // L14 + // + this.L14.AutoSize = true; + this.L14.Location = new System.Drawing.Point(92, 59); + this.L14.Name = "L14"; + this.L14.Size = new System.Drawing.Size(14, 13); + this.L14.TabIndex = 31; + this.L14.Text = "X"; + // + // f2_Text + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(179, 107); + this.Controls.Add(this.L1D); + this.Controls.Add(this.L15); + this.Controls.Add(this.L1C); + this.Controls.Add(this.L14); + this.Controls.Add(this.L1B); + this.Controls.Add(this.L13); + this.Controls.Add(this.L1A); + this.Controls.Add(this.L12); + this.Controls.Add(this.L0B); + this.Controls.Add(this.L03); + this.Controls.Add(this.L0A); + this.Controls.Add(this.L02); + this.Controls.Add(this.L09); + this.Controls.Add(this.L01); + this.Controls.Add(this.L08); + this.Controls.Add(this.L00); + this.Controls.Add(this.L19); + this.Controls.Add(this.L11); + this.Controls.Add(this.L18); + this.Controls.Add(this.L10); + this.Controls.Add(this.L1F); + this.Controls.Add(this.L17); + this.Controls.Add(this.L1E); + this.Controls.Add(this.L16); + this.Controls.Add(this.L0F); + this.Controls.Add(this.L07); + this.Controls.Add(this.L0E); + this.Controls.Add(this.L06); + this.Controls.Add(this.L0D); + this.Controls.Add(this.L05); + this.Controls.Add(this.L0C); + this.Controls.Add(this.L04); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "f2_Text"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Special Characters"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L04; + private System.Windows.Forms.Label L0C; + private System.Windows.Forms.Label L0D; + private System.Windows.Forms.Label L05; + private System.Windows.Forms.Label L0E; + private System.Windows.Forms.Label L06; + private System.Windows.Forms.Label L0F; + private System.Windows.Forms.Label L07; + private System.Windows.Forms.Label L1E; + private System.Windows.Forms.Label L16; + private System.Windows.Forms.Label L1F; + private System.Windows.Forms.Label L17; + private System.Windows.Forms.Label L18; + private System.Windows.Forms.Label L10; + private System.Windows.Forms.Label L19; + private System.Windows.Forms.Label L11; + private System.Windows.Forms.Label L0B; + private System.Windows.Forms.Label L03; + private System.Windows.Forms.Label L0A; + private System.Windows.Forms.Label L02; + private System.Windows.Forms.Label L09; + private System.Windows.Forms.Label L01; + private System.Windows.Forms.Label L08; + private System.Windows.Forms.Label L00; + private System.Windows.Forms.Label L1B; + private System.Windows.Forms.Label L13; + private System.Windows.Forms.Label L1A; + private System.Windows.Forms.Label L12; + private System.Windows.Forms.Label L1D; + private System.Windows.Forms.Label L15; + private System.Windows.Forms.Label L1C; + private System.Windows.Forms.Label L14; + } +} \ No newline at end of file diff --git a/PKX/f2-Text.cs b/PKX/f2-Text.cs new file mode 100644 index 000000000..c849e60f0 --- /dev/null +++ b/PKX/f2-Text.cs @@ -0,0 +1,51 @@ +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; + +namespace PKHeX +{ + public partial class f2_Text : Form + { + public f2_Text(TextBox TB_NN) + { + this.Hide(); + InitializeComponent(); + TB_Nickname = TB_NN; + Font pkxFont = PKX.getPKXFont(12F); + Label[] lbla = new Label[] + { + L00, L01, L02, L03, L04, L05, L06, L07, + L08, L09, L0A, L0B, L0C, L0D, L0E, L0F, + L10, L11, L12, L13, L14, L15, L16, L17, + L18, L19, L1A, L1B, L1C, L1D, L1E, L1F, + }; + ushort[] chars = new ushort[] + { + 0xE081, 0xE082, 0xE083, 0xE084, 0xE085, 0xE086, 0xE087, 0xE08D, + 0xE08E, 0xE08F, 0xE090, 0xE091, 0xE092, 0xE093, 0xE094, 0xE095, + 0xE096, 0xE097, 0xE098, 0xE099, 0xE09A, 0xE09B, 0xE09C, 0xE09D, + 0xE09E, 0xE09F, 0xE0A0, 0xE0A1, 0xE0A2, 0xE0A3, 0xE0A4, 0xE0A5, + }; + for (int i = 0; i < 32; i++) + { + lbla[i].Font = pkxFont; + lbla[i].Text = Convert.ToChar(chars[i]).ToString(); + lbla[i].Click += new EventHandler(OnClick); + } + this.CenterToParent(); + this.Show(); + } + TextBox TB_Nickname; + private void OnClick(object sender, EventArgs e) + { + string nickname = TB_Nickname.Text; + if (nickname.Length < TB_Nickname.MaxLength) + TB_Nickname.Text += (sender as Label).Text; + } + } +} diff --git a/PKX/f2-Text.resx b/PKX/f2-Text.resx new file mode 100644 index 000000000..603f660be --- /dev/null +++ b/PKX/f2-Text.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn + 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn + 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq + 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn + 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA + AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl + 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR + 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA + AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk + 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG + RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn + 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC + LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC + K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ + rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK + s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL + p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC + Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK + ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE + UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA + AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA + AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER + w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL + pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER + 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////// + + + \ No newline at end of file diff --git a/Resources/text/shortcuts.txt b/Resources/text/shortcuts.txt index d300aa30b..e2d696a61 100644 --- a/Resources/text/shortcuts.txt +++ b/Resources/text/shortcuts.txt @@ -3,6 +3,8 @@ // Main Window +Right Click on Nickname/Nickname box to bring up the ingame-special characters. + Control + Click on... Randomize IVs: Set all IVs to max. Randomize EVs: Set all EVs to 0.