From 1779420af13f729894c43cfac09fa30a5910d013 Mon Sep 17 00:00:00 2001 From: Kaphotics Date: Sun, 3 Jul 2016 15:05:15 -0700 Subject: [PATCH] Add gen3 personal info, move object refs All PersonalInfo arrays are referenced from PersonalInfo's class instead of Legal Fixed a few bugs in the process (species translation, gen switch) --- Legality/Checks.cs | 4 ++-- Legality/Core.cs | 27 ++++++++------------- PKHeX.csproj | 5 ++++ PKM/PKX.cs | 8 +++---- PKX/f1-Main.cs | 6 +++-- PersonalInfo/PersonalInfo.cs | 24 +++++++++++++++++++ Properties/Resources.Designer.cs | 40 +++++++++++++++++++++++++++++++ Properties/Resources.resx | 12 ++++++++++ Resources/byte/personal_e | Bin 0 -> 11536 bytes Resources/byte/personal_fr | Bin 0 -> 11536 bytes Resources/byte/personal_lg | Bin 0 -> 11536 bytes Resources/byte/personal_rs | Bin 0 -> 11536 bytes SAV/SAV_HallOfFame.cs | 2 +- SAV/SAV_SecretBase.cs | 4 ++-- Saves/SAV3.cs | 4 +++- Saves/SAV4.cs | 6 ++--- Saves/SAV5.cs | 4 ++-- Saves/SAV6.cs | 2 +- 18 files changed, 113 insertions(+), 35 deletions(-) create mode 100644 Resources/byte/personal_e create mode 100644 Resources/byte/personal_fr create mode 100644 Resources/byte/personal_lg create mode 100644 Resources/byte/personal_rs diff --git a/Legality/Checks.cs b/Legality/Checks.cs index 1586c0ae6..641a6bff2 100644 --- a/Legality/Checks.cs +++ b/Legality/Checks.cs @@ -423,8 +423,8 @@ namespace PKHeX } private LegalityCheck verifyAbility() { - int index = Legal.PersonalAO[pk6.Species].FormeIndex(pk6.Species, pk6.AltForm); - int[] abilities = Legal.PersonalAO[index].Abilities; + int index = PersonalInfo.AO[pk6.Species].FormeIndex(pk6.Species, pk6.AltForm); + int[] abilities = PersonalInfo.AO[index].Abilities; int abilval = Array.IndexOf(abilities, pk6.Ability); if (abilval < 0) return new LegalityCheck(Severity.Invalid, "Ability is not valid for species/form."); diff --git a/Legality/Core.cs b/Legality/Core.cs index 05da7a600..5075ce9d3 100644 --- a/Legality/Core.cs +++ b/Legality/Core.cs @@ -8,13 +8,6 @@ namespace PKHeX // PKHeX master Wonder Card Database internal static WC6[] WC6DB; // PKHeX master personal.dat - internal static readonly PersonalInfo[] PersonalAO = PersonalInfo.getArray(Properties.Resources.personal_ao, GameVersion.ORAS); - internal static readonly PersonalInfo[] PersonalXY = PersonalInfo.getArray(Properties.Resources.personal_xy, GameVersion.XY); - internal static readonly PersonalInfo[] PersonalB2W2 = PersonalInfo.getArray(Properties.Resources.personal_b2w2, GameVersion.B2W2); - internal static readonly PersonalInfo[] PersonalBW = PersonalInfo.getArray(Properties.Resources.personal_bw, GameVersion.BW); - internal static readonly PersonalInfo[] PersonalHGSS = PersonalInfo.getArray(Properties.Resources.personal_hgss, GameVersion.HGSS); - internal static readonly PersonalInfo[] PersonalPt = PersonalInfo.getArray(Properties.Resources.personal_pt, GameVersion.Pt); - internal static readonly PersonalInfo[] PersonalDP = PersonalInfo.getArray(Properties.Resources.personal_dp, GameVersion.DP); private static readonly EggMoves[] EggMoveXY = EggMoves.getArray(Data.unpackMini(Properties.Resources.eggmove_xy, "xy")); private static readonly Learnset[] LevelUpXY = Learnset.getArray(Data.unpackMini(Properties.Resources.lvlmove_xy, "xy")); @@ -412,8 +405,8 @@ namespace PKHeX } private static IEnumerable getLVLMoves(int species, int lvl, int formnum) { - int ind_XY = PersonalXY[species].FormeIndex(species, formnum); - int ind_AO = PersonalAO[species].FormeIndex(species, formnum); + int ind_XY = PersonalInfo.XY[species].FormeIndex(species, formnum); + int ind_AO = PersonalInfo.AO[species].FormeIndex(species, formnum); return LevelUpXY[ind_XY].getMoves(lvl).Concat(LevelUpAO[ind_AO].getMoves(lvl)); } private static IEnumerable getEncounterSlots(PK6 pk6) @@ -550,7 +543,7 @@ namespace PKHeX bool ORASTutors = Version == -1 || pk6.AO || !pk6.IsUntraded; if (FormChangeMoves.Contains(species)) // Deoxys & Shaymin & Giratina (others don't have extra but whatever) { - int formcount = PersonalAO[species].FormeCount; + int formcount = PersonalInfo.AO[species].FormeCount; for (int i = 0; i < formcount; i++) r.AddRange(getMoves(species, lvl, i, ORASTutors, Version, LVL, Tutor, Machine)); if (Relearn) r.AddRange(pk6.RelearnMoves); @@ -575,8 +568,8 @@ namespace PKHeX List r = new List { 0 }; if (Version < 0 || Version == 0) { - int index = PersonalXY[species].FormeIndex(species, form); - PersonalInfo pi = PersonalXY[index]; + int index = PersonalInfo.XY[species].FormeIndex(species, form); + PersonalInfo pi = PersonalInfo.XY[index]; if (LVL) r.AddRange(LevelUpXY[index].getMoves(lvl)); if (Tutor) r.AddRange(getTutorMoves(species, form, ORASTutors)); @@ -584,8 +577,8 @@ namespace PKHeX } if (Version < 0 || Version == 1) { - int index = PersonalAO[species].FormeIndex(species, form); - PersonalInfo pi = PersonalAO[index]; + int index = PersonalInfo.AO[species].FormeIndex(species, form); + PersonalInfo pi = PersonalInfo.AO[index]; if (LVL) r.AddRange(LevelUpAO[index].getMoves(lvl)); if (Tutor) r.AddRange(getTutorMoves(species, form, ORASTutors)); @@ -595,13 +588,13 @@ namespace PKHeX } private static IEnumerable getEggMoves(int species, int formnum) { - int ind_XY = PersonalXY[species].FormeIndex(species, formnum); - int ind_AO = PersonalAO[species].FormeIndex(species, formnum); + int ind_XY = PersonalInfo.XY[species].FormeIndex(species, formnum); + int ind_AO = PersonalInfo.AO[species].FormeIndex(species, formnum); return EggMoveAO[ind_AO].Moves.Concat(EggMoveXY[ind_XY].Moves); } private static IEnumerable getTutorMoves(int species, int formnum, bool ORASTutors) { - PersonalInfoORAS pkAO = (PersonalInfoORAS)PersonalAO[PersonalAO[species].FormeIndex(species, formnum)]; + PersonalInfoORAS pkAO = (PersonalInfoORAS) PersonalInfo.AO[PersonalInfo.AO[species].FormeIndex(species, formnum)]; // Type Tutor List moves = TypeTutor.Where((t, i) => pkAO.TypeTutors[i]).ToList(); diff --git a/PKHeX.csproj b/PKHeX.csproj index b93da15f7..3205f9848 100644 --- a/PKHeX.csproj +++ b/PKHeX.csproj @@ -78,6 +78,7 @@ + @@ -389,8 +390,12 @@ + + + + diff --git a/PKM/PKX.cs b/PKM/PKX.cs index 8967c5f94..c59fd541f 100644 --- a/PKM/PKX.cs +++ b/PKM/PKX.cs @@ -181,7 +181,7 @@ namespace PKHeX try { return SpeciesLang.All(list => list[species].ToUpper() != nick); } catch { return false; } } - internal static PersonalInfo[] Personal = Legal.PersonalAO; + internal static PersonalInfo[] Personal = PersonalInfo.AO; // Stat Fetching internal static int getMovePP(int move, int ppup) @@ -1199,11 +1199,11 @@ namespace PKHeX } } #region Gen 3 Species Table - internal static readonly int[] newindex = + internal static int[] newindex => new[] { 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,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58, - 59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,77,79,80,81,82,83,84,85,86, + 59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86, 87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110, 111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131, 132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152, @@ -1221,7 +1221,7 @@ namespace PKHeX 385,386,358, }; - internal static readonly int[] oldindex = + internal static int[] oldindex => new[] { 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,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58, diff --git a/PKX/f1-Main.cs b/PKX/f1-Main.cs index 35fe0258d..a3e40e3b3 100644 --- a/PKX/f1-Main.cs +++ b/PKX/f1-Main.cs @@ -763,11 +763,13 @@ namespace PKHeX TB_Secure2.Text = (SAV as SAV6).Secure2.ToString("X16"); break; } - PKX.Personal = SAV.Personal; - PKM pk = preparePKM(); + PKX.Personal = SAV.Personal; + bool init = fieldsInitialized; + fieldsInitialized = false; populateFilteredDataSources(); populateFields(pkm.Format != SAV.Generation ? SAV.BlankPKM : pk); + fieldsInitialized |= init; // SAV Specific Limits TB_OT.MaxLength = SAV.OTLength; diff --git a/PersonalInfo/PersonalInfo.cs b/PersonalInfo/PersonalInfo.cs index e7f6dd479..1584795d0 100644 --- a/PersonalInfo/PersonalInfo.cs +++ b/PersonalInfo/PersonalInfo.cs @@ -4,6 +4,18 @@ namespace PKHeX { public abstract class PersonalInfo { + internal static readonly PersonalInfo[] AO = getArray(Properties.Resources.personal_ao, GameVersion.ORAS); + internal static readonly PersonalInfo[] XY = getArray(Properties.Resources.personal_xy, GameVersion.XY); + internal static readonly PersonalInfo[] B2W2 = getArray(Properties.Resources.personal_b2w2, GameVersion.B2W2); + internal static readonly PersonalInfo[] BW = getArray(Properties.Resources.personal_bw, GameVersion.BW); + internal static readonly PersonalInfo[] HGSS = getArray(Properties.Resources.personal_hgss, GameVersion.HGSS); + internal static readonly PersonalInfo[] Pt = getArray(Properties.Resources.personal_pt, GameVersion.Pt); + internal static readonly PersonalInfo[] DP = getArray(Properties.Resources.personal_dp, GameVersion.DP); + internal static readonly PersonalInfo[] LG = getArray(Properties.Resources.personal_lg, GameVersion.LG); + internal static readonly PersonalInfo[] FR = getArray(Properties.Resources.personal_fr, GameVersion.FR); + internal static readonly PersonalInfo[] E = getArray(Properties.Resources.personal_e, GameVersion.E); + internal static readonly PersonalInfo[] RS = getArray(Properties.Resources.personal_rs, GameVersion.RS); + protected const int SIZE_G3 = 0x1C; protected const int SIZE_G4 = 0x2C; protected const int SIZE_BW = 0x3C; @@ -103,6 +115,10 @@ namespace PKHeX int size = 0; switch (format) { + case GameVersion.RS: + case GameVersion.E: + case GameVersion.FR: + case GameVersion.LG: size = SIZE_G3; break; case GameVersion.DP: case GameVersion.Pt: case GameVersion.HGSS: size = SIZE_G4; break; @@ -120,6 +136,14 @@ namespace PKHeX switch (format) { + case GameVersion.RS: + case GameVersion.E: + case GameVersion.FR: + case GameVersion.LG: + Array.Resize(ref d, 387); + for (int i = 0; i < d.Length; i++) // entries are not in order of natdexID + d[i] = new PersonalInfoG3(entries[PKX.getG3Species(i)]); + break; case GameVersion.DP: case GameVersion.Pt: case GameVersion.HGSS: diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 9056c20f0..5466b1204 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -14665,6 +14665,26 @@ namespace PKHeX.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] personal_e { + get { + object obj = ResourceManager.GetObject("personal_e", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] personal_fr { + get { + object obj = ResourceManager.GetObject("personal_fr", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -14675,6 +14695,16 @@ namespace PKHeX.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] personal_lg { + get { + object obj = ResourceManager.GetObject("personal_lg", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -14685,6 +14715,16 @@ namespace PKHeX.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] personal_rs { + get { + object obj = ResourceManager.GetObject("personal_rs", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 531ab0d6a..2ede933af 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -5884,4 +5884,16 @@ ..\Resources\byte\personal_pt;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\byte\personal_e;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\byte\personal_fr;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\byte\personal_lg;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\byte\personal_rs;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Resources/byte/personal_e b/Resources/byte/personal_e new file mode 100644 index 0000000000000000000000000000000000000000..798e0e35787ef50df652589d7421c471d57a51cf GIT binary patch literal 11536 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 literal 0 HcmV?d00001 diff --git a/Resources/byte/personal_fr b/Resources/byte/personal_fr new file mode 100644 index 0000000000000000000000000000000000000000..1ceb3d41dbdfb90795f63f0696e50d984b6acd18 GIT binary patch literal 11536 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 literal 0 HcmV?d00001 diff --git a/Resources/byte/personal_lg b/Resources/byte/personal_lg new file mode 100644 index 0000000000000000000000000000000000000000..1ceb3d41dbdfb90795f63f0696e50d984b6acd18 GIT binary patch literal 11536 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 literal 0 HcmV?d00001 diff --git a/Resources/byte/personal_rs b/Resources/byte/personal_rs new file mode 100644 index 0000000000000000000000000000000000000000..798e0e35787ef50df652589d7421c471d57a51cf GIT binary patch literal 11536 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 literal 0 HcmV?d00001 diff --git a/SAV/SAV_HallOfFame.cs b/SAV/SAV_HallOfFame.cs index ea81bcde4..f14d043d3 100644 --- a/SAV/SAV_HallOfFame.cs +++ b/SAV/SAV_HallOfFame.cs @@ -363,7 +363,7 @@ namespace PKHeX private void setForms() { int species = Util.getIndex(CB_Species); - bool hasForms = Legal.PersonalAO[species].HasFormes || new[] { 664, 665, 414 }.Contains(species); + bool hasForms = PersonalInfo.AO[species].HasFormes || new[] { 664, 665, 414 }.Contains(species); CB_Form.Enabled = CB_Form.Visible = hasForms; CB_Form.DisplayMember = "Text"; diff --git a/SAV/SAV_SecretBase.cs b/SAV/SAV_SecretBase.cs index 58db065ff..d1ab54463 100644 --- a/SAV/SAV_SecretBase.cs +++ b/SAV/SAV_SecretBase.cs @@ -411,7 +411,7 @@ namespace PKHeX int newabil = Convert.ToInt16(MT_AbilNo.Text) >> 1; int species = Util.getIndex(CB_Species); int formnum = CB_Form.SelectedIndex; - int[] abils = Legal.PersonalAO[Legal.PersonalAO[species].FormeIndex(species, formnum)].Abilities; + int[] abils = PersonalInfo.AO[PersonalInfo.AO[species].FormeIndex(species, formnum)].Abilities; // Build Ability List List ability_list = new List @@ -428,7 +428,7 @@ namespace PKHeX private void setForms() { int species = Util.getIndex(CB_Species); - bool hasForms = Legal.PersonalAO[species].HasFormes || new[] { 664, 665, 414 }.Contains(species); + bool hasForms = PersonalInfo.AO[species].HasFormes || new[] { 664, 665, 414 }.Contains(species); CB_Form.Enabled = CB_Form.Visible = hasForms; CB_Form.DisplayMember = "Text"; diff --git a/Saves/SAV3.cs b/Saves/SAV3.cs index 41e736812..c895bb21a 100644 --- a/Saves/SAV3.cs +++ b/Saves/SAV3.cs @@ -82,6 +82,7 @@ namespace PKHeX OFS_PouchBalls = Party + 0x0600; OFS_PouchTMHM = Party + 0x0640; OFS_PouchBerry = Party + 0x0740; + Personal = PersonalInfo.RS; break; case GameVersion.FRLG: LegalKeyItems = Legal.Pouch_Key_FRLG; @@ -90,6 +91,7 @@ namespace PKHeX OFS_PouchBalls = Party + 0x0430; OFS_PouchTMHM = Party + 0x0464; OFS_PouchBerry = Party + 0x054C; + Personal = PersonalInfo.FR; // todo break; case GameVersion.E: LegalKeyItems = Legal.Pouch_Key_E; @@ -98,6 +100,7 @@ namespace PKHeX OFS_PouchBalls = Party + 0x0650; OFS_PouchTMHM = Party + 0x0690; OFS_PouchBerry = Party + 0x0790; + Personal = PersonalInfo.E; break; } LegalItems = Legal.Pouch_Items_RS; @@ -106,7 +109,6 @@ namespace PKHeX LegalBerries = Legal.Pouch_Berries_RS; HeldItems = Legal.HeldItems_RS; - Personal = Legal.PersonalAO; // todo if (!Exportable) resetBoxes(); diff --git a/Saves/SAV4.cs b/Saves/SAV4.cs index e28c88812..fedfde3d4 100644 --- a/Saves/SAV4.cs +++ b/Saves/SAV4.cs @@ -28,9 +28,9 @@ namespace PKHeX switch (Version) { - case GameVersion.DP: Personal = Legal.PersonalDP; break; - case GameVersion.Pt: Personal = Legal.PersonalPt; break; - case GameVersion.HGSS: Personal = Legal.PersonalHGSS; break; + case GameVersion.DP: Personal = PersonalInfo.DP; break; + case GameVersion.Pt: Personal = PersonalInfo.Pt; break; + case GameVersion.HGSS: Personal = PersonalInfo.HGSS; break; } if (!Exportable) diff --git a/Saves/SAV5.cs b/Saves/SAV5.cs index b0748a4ea..06459553e 100644 --- a/Saves/SAV5.cs +++ b/Saves/SAV5.cs @@ -53,7 +53,7 @@ namespace PKHeX LegalMedicine = Legal.Pouch_Medicine_BW; LegalBerries = Legal.Pouch_Berries_BW; - Personal = Legal.PersonalBW; + Personal = PersonalInfo.BW; break; case GameVersion.B2W2: // B2W2 BattleBox = 0x20900; @@ -74,7 +74,7 @@ namespace PKHeX LegalMedicine = Legal.Pouch_Medicine_BW; LegalBerries = Legal.Pouch_Berries_BW; - Personal = Legal.PersonalB2W2; + Personal = PersonalInfo.B2W2; break; } HeldItems = Legal.HeldItems_BW; diff --git a/Saves/SAV6.cs b/Saves/SAV6.cs index 18aa812ae..65a472183 100644 --- a/Saves/SAV6.cs +++ b/Saves/SAV6.cs @@ -21,7 +21,7 @@ namespace PKHeX getSAVOffsets(); HeldItems = ORAS ? Legal.HeldItem_AO : Legal.HeldItem_XY; - Personal = ORAS ? Legal.PersonalAO : Legal.PersonalXY; + Personal = ORAS ? PersonalInfo.AO : PersonalInfo.XY; if (!Exportable) resetBoxes(); }