private void dumpPKX_SAV(byte[] pkx, int dumpnum, int dumpstart) { if (ghost && CHK_HideFirst.Checked) return; if (pkx == null || !verifyCHK(pkx)) //RTB_SAV.AppendText("SLOT LOCKED\n"); return; Structures.PKX data = new Structures.PKX(pkx); // Printout Parsing if (data.species == 0) //RTB_SAV.AppendText("SLOT EMPTY"); return; string box = "B"+(dumpstart + (dumpnum/30)).ToString("00"); string slot = (((dumpnum%30) / 6 + 1).ToString() + "," + (dumpnum % 6 + 1).ToString()); string species = specieslist[data.species]; string gender = data.genderstring; string nature = natures[data.nature]; string ability = abilitylist[data.ability]; string hp = data.HP_IV.ToString(); string atk = data.ATK_IV.ToString(); string def = data.DEF_IV.ToString(); string spa = data.SPA_IV.ToString(); string spd = data.SPD_IV.ToString(); string spe = data.SPE_IV.ToString(); string hptype = types[data.hptype]; string ESV = data.ESV.ToString("0000"); string TSV = data.TSV.ToString("0000"); string ball = balls[data.ball]; string nickname = data.nicknamestr; string otname = data.ot; string TID = data.TID.ToString("00000"); string SID = data.SID.ToString("00000"); string move1 = movelist[data.move1]; string move2 = movelist[data.move2]; string move3 = movelist[data.move3]; string move4 = movelist[data.move4]; string ev_hp = data.HP_EV.ToString(); string ev_at = data.ATK_EV.ToString(); string ev_de = data.DEF_EV.ToString(); string ev_sa = data.SPA_EV.ToString(); string ev_sd = data.SPD_EV.ToString(); string ev_se = data.SPE_EV.ToString(); // Bonus string relearn1 = movelist[data.eggmove1].ToString(); string relearn2 = movelist[data.eggmove2].ToString(); string relearn3 = movelist[data.eggmove3].ToString(); string relearn4 = movelist[data.eggmove4].ToString(); string isshiny = ""; if (data.isshiny) isshiny = "★"; string isegg = ""; if (data.isegg) isegg = "✓"; bool statisfiesFilters = true; while (CHK_Enable_Filtering.Checked) { if (CHK_Egg.Checked && !data.isegg) { statisfiesFilters = false; break; } bool checkHp = false; if (CB_HP_Type.SelectedIndex > 0) { if (CB_HP_Type.SelectedIndex != data.hptype) { statisfiesFilters = false; break; } checkHp = true; } int perfects = Convert.ToInt16(CB_No_IVs.SelectedItem); bool ivsSelected = CHK_IV_HP.Checked || CHK_IV_Atk.Checked || CHK_IV_Def.Checked || CHK_IV_SpAtk.Checked || CHK_IV_SpDef.Checked || CHK_IV_Spe.Checked; if (hp == "31" ||checkHp && hp == "30") --perfects; else if (ivsSelected && CHK_IV_HP.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if ((atk == "31" || checkHp && atk == "30") && !CHK_Special_Attacker.Checked || (atk == "0" || checkHp && atk == "1") && CHK_Special_Attacker.Checked) --perfects; else if (ivsSelected && CHK_IV_Atk.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if (def == "31" || checkHp && def == "30") --perfects; else if (ivsSelected && CHK_IV_Def.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if (spa == "31" || checkHp && spa == "30") --perfects; else if (ivsSelected && CHK_IV_SpAtk.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if (spd == "31" || checkHp && spd == "30") --perfects; else if (ivsSelected && CHK_IV_SpDef.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if ((spe == "31" || checkHp && spe == "30") && !CHK_Trickroom.Checked || (spe == "0" || checkHp && spe == "1") && CHK_Trickroom.Checked) --perfects; else if (ivsSelected && CHK_IV_Spe.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; } if (perfects > 0) { statisfiesFilters = false; break; } if (CHK_Is_Shiny.Checked || CHK_Hatches_Shiny_For_Me.Checked || CHK_Hatches_Shiny_For.Checked) { // TODO: Should probably cache this somewhere... if (!(CHK_Is_Shiny.Checked && data.isshiny || data.isegg && CHK_Hatches_Shiny_For_Me.Checked && ESV == TSV || data.isegg && CHK_Hatches_Shiny_For.Checked && Array.IndexOf(selectedTSVs, data.ESV) > -1)) { statisfiesFilters = false; break; } } break; } if (statisfiesFilters) { if (!data.isegg) ESV = ""; // Vivillon Forms... if (data.species >= 664 && data.species <= 666) species += "-" + vivlist[data.altforms]; if (((CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6)) && CHK_BoldIVs.Checked)) { if (hp == "31") hp = "**31**"; if (atk == "31") atk = "**31**"; if (def == "31") def = "**31**"; if (spa == "31") spa = "**31**"; if (spd == "31") spd = "**31**"; if (spe == "31") spe = "**31**"; } string format = RTB_OPTIONS.Text; if (CB_ExportStyle.SelectedIndex >= 6) format = "{0} - {1} - {2} ({3}) - {4} - {5} - {6}.{7}.{8}.{9}.{10}.{11} - {12} - {13}"; if (CB_ExportStyle.SelectedIndex == 6) { csvdata += String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32},{33},{34},{35}\n", box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg); } if (CB_ExportStyle.SelectedIndex == 7) { isshiny = ""; if (data.isshiny) isshiny = " ★"; if (data.isnick) data.nicknamestr += String.Format(" ({0})", specieslist[data.species]); string savedname = data.species.ToString("000") + isshiny + " - " + data.nicknamestr + " - " + data.chk.ToString("X4") + data.EC.ToString("X8"); File.WriteAllBytes(Path.Combine(dbpath, CleanFileName(savedname) + ".pk6"), pkx); } if (!(CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6 && CHK_R_Table.Checked))) { if (ESV != "") ESV = "[" + ESV + "]"; } string result = String.Format(format, box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg); if (ghost && CHK_MarkFirst.Checked) result = "~" + result; dumpedcounter++; RTB_SAV.AppendText(result + "\n"); } }
// BV private void dumpPKX_BV(byte[] pkx, int slot) { if (pkx == null || !verifyCHK(pkx)) //RTB_SAV.AppendText("SLOT LOCKED\n"); return; Structures.PKX data = new Structures.PKX(pkx); // Printout Parsing if (data.species == 0) //RTB_SAV.AppendText("SLOT EMPTY"); return; string box = "~"; string species = specieslist[data.species]; string gender = data.genderstring; string nature = natures[data.nature]; string ability = abilitylist[data.ability]; string hp = data.HP_IV.ToString(); string atk = data.ATK_IV.ToString(); string def = data.DEF_IV.ToString(); string spa = data.SPA_IV.ToString(); string spd = data.SPD_IV.ToString(); string spe = data.SPE_IV.ToString(); string hptype = types[data.hptype]; string ESV = data.ESV.ToString("0000"); string TSV = data.TSV.ToString("0000"); string ball = balls[data.ball]; string nickname = data.nicknamestr; string otname = data.ot; string TID = data.TID.ToString("00000"); string SID = data.SID.ToString("00000"); // if (!data.isegg) ESV = ""; string move1 = movelist[data.move1]; string move2 = movelist[data.move2]; string move3 = movelist[data.move3]; string move4 = movelist[data.move4]; string ev_hp = data.HP_EV.ToString(); string ev_at = data.ATK_EV.ToString(); string ev_de = data.DEF_EV.ToString(); string ev_sa = data.SPA_EV.ToString(); string ev_sd = data.SPD_EV.ToString(); string ev_se = data.SPE_EV.ToString(); // Bonus string relearn1 = movelist[data.eggmove1].ToString(); string relearn2 = movelist[data.eggmove2].ToString(); string relearn3 = movelist[data.eggmove3].ToString(); string relearn4 = movelist[data.eggmove4].ToString(); string isshiny = ""; if (data.isshiny) isshiny = "★"; string isegg = ""; if (data.isegg) isegg = "✓"; // Vivillon Forms... if (data.species >= 664 && data.species <= 666) species += "-" + vivlist[data.altforms]; if (((CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6)) && CHK_BoldIVs.Checked)) { if (hp == "31") hp = "**31**"; if (atk == "31") atk = "**31**"; if (def == "31") def = "**31**"; if (spa == "31") spa = "**31**"; if (spd == "31") spd = "**31**"; if (spe == "31") spe = "**31**"; } string format = RTB_OPTIONS.Text; if (CB_ExportStyle.SelectedIndex >= 6) format = "{0} - {1} - {2} ({3}) - {4} - {5} - {6}.{7}.{8}.{9}.{10}.{11} - {12} - {13}"; if (CB_ExportStyle.SelectedIndex == 6) { csvdata += String.Format("{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32},{33},{34},{35}\n", box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg); } if (CB_ExportStyle.SelectedIndex == 7) { isshiny = ""; if (data.isshiny) isshiny = " ★"; if (data.isnick) data.nicknamestr += String.Format(" ({0})",specieslist[data.species]); string savedname = data.species.ToString("000") + isshiny + " - " + data.nicknamestr + " - " + data.chk.ToString("X4") + data.EC.ToString("X8"); File.WriteAllBytes(Path.Combine(dbpath, CleanFileName(savedname) + ".pk6"), pkx); } if (!(CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6 && CHK_R_Table.Checked))) { if (ESV != "") ESV = "[" + ESV + "]"; } string result = String.Format(format, box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg); RTB_VID.AppendText(result + "\n"); }