public SAV_Underground(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV4)(Origin = sav).Clone(); GetUGScores(); }
public void Initialize(SAV4 sav) { Case = new PoffinCase4(sav); LB_Poffins.Items.Clear(); for (int i = 0; i < Case.Poffins.Length; i++) { LB_Poffins.Items.Add(GetPoffinText(i)); } LB_Poffins.SelectedIndex = 0; }
public SAV_Pokedex4(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); CL = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L5, CHK_L4, CHK_L6 }; // JPN,ENG,FRA,GER,ITA,SPA SAV = (SAV4)(Origin = sav).Clone(); editing = true; // Clear Listbox and ComboBox LB_Species.Items.Clear(); CB_Species.Items.Clear(); // Fill List CB_Species.InitializeBinding(); var filtered = GameInfo.FilteredSources; CB_Species.DataSource = new BindingSource(filtered.Species.Skip(1).ToList(), null); for (int i = 1; i < SAV.MaxSpeciesID + 1; i++) { LB_Species.Items.Add($"{i:000} - {GameInfo.Strings.specieslist[i]}"); } editing = false; LB_Species.SelectedIndex = 0; string[] dexMode = { "not given", "simple mode", "detect forms", "national dex", "other languages" }; if (SAV is SAV4HGSS) { dexMode = dexMode.Where((_, i) => i != 2).ToArray(); } foreach (string mode in dexMode) { CB_DexUpgraded.Items.Add(mode); } if (SAV.DexUpgraded < CB_DexUpgraded.Items.Count) { CB_DexUpgraded.SelectedIndex = SAV.DexUpgraded; } CB_Species.KeyDown += WinFormsUtil.RemoveDropCB; }
public SAV_Pokedex4(SaveFile sav) { SAV = (SAV4)(Origin = sav).Clone(); InitializeComponent(); CL = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L5, CHK_L4, CHK_L6, }; // JPN,ENG,FRA,GER,ITA,SPA WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); editing = true; // Clear Listbox and ComboBox LB_Species.Items.Clear(); CB_Species.Items.Clear(); // Fill List CB_Species.DisplayMember = "Text"; CB_Species.ValueMember = "Value"; CB_Species.DataSource = new BindingSource(GameInfo.SpeciesDataSource.Skip(1).Where(id => id.Value <= SAV.MaxSpeciesID).ToList(), null); for (int i = 1; i < SAV.MaxSpeciesID + 1; i++) { LB_Species.Items.Add(i.ToString("000") + " - " + GameInfo.Strings.specieslist[i]); } editing = false; LB_Species.SelectedIndex = 0; string[] dexMode = { "not given", "simple mode", "detect forms", "national dex", "other languages" }; if (SAV.HGSS) { dexMode = dexMode.Where((t, i) => i != 2).ToArray(); } foreach (string mode in dexMode) { CB_DexUpgraded.Items.Add(mode); } if (SAV.DexUpgraded < CB_DexUpgraded.Items.Count) { CB_DexUpgraded.SelectedIndex = SAV.DexUpgraded; } CB_Species.KeyDown += WinFormsUtil.RemoveDropCB; }
public SAV_HoneyTree(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV4)(Origin = sav).Clone(); if (SAV.DP) { Table = HoneyTree.TableDP; } else if (SAV.Pt) { Table = HoneyTree.TablePt; } // Get Munchlax tree for this savegame in screen MunchlaxTrees = SAV.MunchlaxTrees; const string sep = "- "; L_Tree0.Text = string.Join(Environment.NewLine, MunchlaxTrees.Select(z => sep + CB_TreeList.Items[z])); CB_TreeList.SelectedIndex = 0; }
public SAV_Misc4(SAV4 sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); int ofsFlag; SAV = (SAV4)(Origin = sav).Clone(); switch (SAV.Version) { case GameVersion.D or GameVersion.P or GameVersion.DP: ofsFlag = 0xFDC; ofsBP = 0x65F8; ofsUGFlagCount = 0x3A60; L_CurrentMap.Visible = CB_UpgradeMap.Visible = false; GB_Prints.Visible = GB_Prints.Enabled = GB_Hall.Visible = GB_Hall.Enabled = GB_Castle.Visible = GB_Castle.Enabled = false; BFF = new[] { new[] { 0, 1, 0x5FCA, 0x04, 0x6601 } }; break; case GameVersion.Pt: ofsFlag = 0xFEC; ofsBP = 0x7234; ofsUGFlagCount = 0x3CE8; L_CurrentMap.Visible = CB_UpgradeMap.Visible = false; ofsPrints = 0xE4A; BFF = new[] { new[] { 0, 1, 0x68E0, 0x04, 0x723D }, new[] { 1, 0, 0x68F4, 0x10, 0x7EF8 }, new[] { 0, 0, 0x6924, 0x18, 0x7EFC }, new[] { 2, 0, 0x696C, 0x10, 0x7F00 }, new[] { 0, 0, 0x699C, 0x04, 0x7F04 }, }; ofsHallStat = 0x2820; break; case GameVersion.HG or GameVersion.SS or GameVersion.HGSS: ofsFlag = 0x10C4; ofsBP = 0x5BB8; L_UGFlags.Visible = NUD_UGFlags.Visible = false; GB_Poketch.Visible = false; ofsMap = 0xBAE7; ofsPrints = 0xE7E; BFF = new[] { // { BFV, BFT, addr, 1BFTlen, checkBit new[] { 0, 1, 0x5264, 0x04, 0x5BC1 }, new[] { 1, 0, 0x5278, 0x10, 0x687C }, new[] { 0, 0, 0x52A8, 0x18, 0x6880 }, new[] { 2, 0, 0x52F0, 0x10, 0x6884 }, new[] { 0, 0, 0x5320, 0x04, 0x6888 }, }; ofsHallStat = 0x230C; break; default: return; } ofsFly = ofsFlag + 0x136; ReadMain(); ReadBattleFrontier(); if (SAV is SAV4Sinnoh s) { TC_Misc.Controls.Remove(TAB_Walker); poffinCase4Editor1.Initialize(s); TC_Misc.Controls.Remove(Tab_PokeGear); } else { pokeGear4Editor1.Initialize((SAV4HGSS)SAV); TC_Misc.Controls.Remove(Tab_Poffins); } }
public Zukan4(SAV4 sav, int offset) : base(sav, offset) { Data = sav.General; Offset = offset; }
public SAV_SimpleTrainer() { Loading = true; InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.curlanguage); cba = new[] { CHK_1, CHK_2, CHK_3, CHK_4, CHK_5, CHK_6, CHK_7, CHK_8 }; TB_OTName.MaxLength = SAV.OTLength; B_MaxCash.Click += (sender, e) => MT_Money.Text = SAV.MaxMoney.ToString(); B_MaxCoins.Click += (sender, e) => MT_Coins.Text = SAV.MaxCoins.ToString(); MT_Money.Mask = "00000000000".Substring(0, SAV.MaxMoney.ToString().Length); MT_Coins.Mask = "00000000000".Substring(0, SAV.MaxCoins.ToString().Length); CB_Gender.Items.Clear(); CB_Gender.Items.AddRange(Main.gendersymbols.Take(2).ToArray()); // m/f depending on unicode selection L_SID.Visible = MT_SID.Visible = SAV.Generation > 2; L_Coins.Visible = B_MaxCoins.Visible = MT_Coins.Visible = SAV.Generation < 3; CB_Gender.Visible = SAV.Generation > 1; L_PikaFriend.Visible = MT_PikaFriend.Visible = SAV.Generation == 1; TB_OTName.Text = SAV.OT; CB_Gender.SelectedIndex = SAV.Gender; MT_TID.Text = SAV.TID.ToString("00000"); MT_SID.Text = SAV.SID.ToString("00000"); MT_Money.Text = SAV.Money.ToString(); MT_Hours.Text = SAV.PlayedHours.ToString(); MT_Minutes.Text = SAV.PlayedMinutes.ToString(); MT_Seconds.Text = SAV.PlayedSeconds.ToString(); int badgeval = 0; if (SAV is SAV1) { SAV1 sav1 = (SAV1)SAV; MT_Coins.Text = sav1.Coin.ToString(); badgeval = sav1.Badges; L_Started.Visible = L_Fame.Visible = false; CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false; CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false; GB_Map.Visible = false; GB_Options.Visible = true; CB_BattleStyle.Items.AddRange(new[] { "Switch", "Set" }); CB_SoundType.Items.AddRange(new[] { "Mono", "Stereo", "Earphone2", "Earphone3" }); CB_TextSpeed.Items.AddRange(new[] { "0 (Instant)", "1 (Fast)", "2", "3 (Normal)", "4", "5 (Slow)", "6", "7" }); CHK_BattleEffects.Checked = sav1.BattleEffects; CB_BattleStyle.SelectedIndex = sav1.BattleStyleSwitch ? 0 : 1; CB_SoundType.SelectedIndex = sav1.Sound; CB_TextSpeed.SelectedIndex = sav1.TextSpeed; MT_PikaFriend.Text = sav1.PikaFriendship.ToString(); } if (SAV is SAV2) { SAV2 sav2 = (SAV2)SAV; MT_Coins.Text = sav2.Coin.ToString(); L_Started.Visible = L_Fame.Visible = false; CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false; CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false; GB_Map.Visible = false; GB_Options.Visible = true; CB_BattleStyle.Items.AddRange(new[] { "Switch", "Set" }); CB_SoundType.Items.AddRange(new[] { "Mono", "Stereo" }); CB_TextSpeed.Items.AddRange(new[] { "0 (Instant)", "1 (Fast)", "2", "3 (Normal)", "4", "5 (Slow)", "6", "7" }); CHK_BattleEffects.Checked = sav2.BattleEffects; CB_BattleStyle.SelectedIndex = sav2.BattleStyleSwitch ? 0 : 1; CB_SoundType.SelectedIndex = sav2.Sound > 0 ? 1 : 0; CB_TextSpeed.SelectedIndex = sav2.TextSpeed; badgeval = sav2.Badges; cba = new[] { CHK_1, CHK_2, CHK_3, CHK_4, CHK_6, CHK_5, CHK_7, CHK_8, CHK_H1, CHK_H2, CHK_H3, CHK_H4, CHK_H5, CHK_H6, CHK_H7, CHK_H8 }; } if (SAV is SAV3) { GB_Map.Visible = false; GB_Badges.Visible = false; // todo L_Started.Visible = L_Fame.Visible = false; CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false; CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false; return; } if (SAV is SAV3Colosseum || SAV is SAV3XD) { GB_Map.Visible = false; GB_Badges.Visible = false; L_Started.Visible = L_Fame.Visible = false; CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false; CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false; return; } if (SAV is SAV4) { SAV4 s = (SAV4)SAV; NUD_M.Value = s.M; NUD_X.Value = s.X; NUD_Z.Value = s.Z; NUD_Y.Value = s.Y; badgeval = s.Badges; if (s.Version == GameVersion.HGSS) { badgeval |= s.Badges16 << 8; cba = cba.Concat(new[] { CHK_H1, CHK_H2, CHK_H3, CHK_H4, CHK_H5, CHK_H6, CHK_H7, CHK_H8 }).ToArray(); } } else if (SAV is SAV5) { SAV5 s = (SAV5)SAV; NUD_M.Value = s.M; NUD_X.Value = s.X; NUD_Z.Value = s.Z; NUD_Y.Value = s.Y; badgeval = s.Badges; } for (int i = 0; i < cba.Length; i++) { cba[i].Visible = true; cba[i].Checked = (badgeval & 1 << i) != 0; } CAL_HoFDate.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame); CAL_HoFTime.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame % 86400); CAL_AdventureStartDate.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart); CAL_AdventureStartTime.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart % 86400); Loading = false; }
private void B_Save_Click(object sender, EventArgs e) { SAV.OT = TB_OTName.Text; SAV.Gender = (byte)CB_Gender.SelectedIndex; SAV.TID = (ushort)Util.ToUInt32(MT_TID.Text); SAV.SID = (ushort)Util.ToUInt32(MT_SID.Text); SAV.Money = Util.ToUInt32(MT_Money.Text); SAV.PlayedHours = ushort.Parse(MT_Hours.Text); SAV.PlayedMinutes = ushort.Parse(MT_Minutes.Text) % 60; SAV.PlayedSeconds = ushort.Parse(MT_Seconds.Text) % 60; // Copy Badges int badgeval = 0; for (int i = 0; i < cba.Length; i++) { badgeval |= (cba[i].Checked ? 1 : 0) << i; } if (SAV is SAV1) { SAV1 sav1 = (SAV1)SAV; sav1.Coin = (ushort)Math.Min(Util.ToUInt32(MT_Coins.Text), SAV.MaxCoins); sav1.Badges = badgeval & 0xFF; var pf = Util.ToUInt32(MT_PikaFriend.Text); if (pf > 255) { pf = 255; } sav1.PikaFriendship = (byte)pf; sav1.BattleEffects = CHK_BattleEffects.Checked; sav1.BattleStyleSwitch = CB_BattleStyle.SelectedIndex == 0; sav1.Sound = CB_SoundType.SelectedIndex; sav1.TextSpeed = CB_TextSpeed.SelectedIndex; } if (SAV is SAV2) { SAV2 sav2 = (SAV2)SAV; sav2.Coin = (ushort)Math.Min(Util.ToUInt32(MT_Coins.Text), SAV.MaxCoins); sav2.Badges = badgeval & 0xFFFF; sav2.BattleEffects = CHK_BattleEffects.Checked; sav2.BattleStyleSwitch = CB_BattleStyle.SelectedIndex == 0; sav2.Sound = CB_SoundType.SelectedIndex > 0 ? 2 : 0; sav2.TextSpeed = CB_TextSpeed.SelectedIndex; } if (SAV is SAV4) { SAV4 s = (SAV4)SAV; if (MapUpdated) { s.M = (int)NUD_M.Value; s.X = (int)NUD_X.Value; s.Z = (int)NUD_Z.Value; s.Y = (int)NUD_Y.Value; } s.Badges = badgeval & 0xFF; if (s.Version == GameVersion.HGSS) { s.Badges16 = badgeval >> 8; } } else if (SAV is SAV5) { SAV5 s = (SAV5)SAV; if (MapUpdated) { s.M = (int)NUD_M.Value; s.X = (int)NUD_X.Value; s.Z = (int)NUD_Z.Value; s.Y = (int)NUD_Y.Value; } s.Badges = badgeval & 0xFF; } SAV.SecondsToStart = getSeconds(CAL_AdventureStartDate, CAL_AdventureStartTime); SAV.SecondsToFame = getSeconds(CAL_HoFDate, CAL_HoFTime); SAV.Data.CopyTo(Main.SAV.Data, 0); Main.SAV.Edited = true; Close(); }
public SAV_Misc4(SaveFile sav) { int ofsFlag; SAV = (SAV4)(Origin = sav).Clone(); InitializeComponent(); int GBO = SAV.GetGBO; switch (SAV.Version) { case GameVersion.D: case GameVersion.P: case GameVersion.DP: ofsFlag = GBO + 0xFDC; ofsBP = GBO + 0x65F8; ofsUGFlagCount = GBO + 0x3A60; ofsPoketch = GBO + 0x114E; L_CurrentMap.Visible = CB_UpgradeMap.Visible = false; GB_Prints.Visible = GB_Prints.Enabled = GB_Hall.Visible = GB_Hall.Enabled = GB_Castle.Visible = GB_Castle.Enabled = false; BFF = new[] { new[] { 0, 1, 0x5FCA, 0x04, 0x6601 }, }; break; case GameVersion.Pt: ofsFlag = GBO + 0xFEC; ofsBP = GBO + 0x7234; ofsUGFlagCount = GBO + 0x3CE8; ofsPoketch = GBO + 0x1162; L_CurrentMap.Visible = CB_UpgradeMap.Visible = false; ofsPrints = GBO + 0xE4A; BFF = new[] { new[] { 0, 1, 0x68E0, 0x04, 0x723D }, new[] { 1, 0, 0x68F4, 0x10, 0x7EF8 }, new[] { 0, 0, 0x6924, 0x18, 0x7EFC }, new[] { 2, 0, 0x696C, 0x10, 0x7F00 }, new[] { 0, 0, 0x699C, 0x04, 0x7F04 }, }; ofsHallStat = GBO + 0x2820; break; case GameVersion.HG: case GameVersion.SS: case GameVersion.HGSS: ofsFlag = GBO + 0x10C4; ofsBP = GBO + 0x5BB8; L_UGFlags.Visible = NUD_UGFlags.Visible = false; GB_Poketch.Visible = false; ofsMap = GBO + 0xBAE7; ofsPrints = GBO + 0xE7E; BFF = new[] { // { BFV, BFT, addr, 1BFTlen, checkBit new[] { 0, 1, 0x5264, 0x04, 0x5BC1 }, new[] { 1, 0, 0x5278, 0x10, 0x687C }, new[] { 0, 0, 0x52A8, 0x18, 0x6880 }, new[] { 2, 0, 0x52F0, 0x10, 0x6884 }, new[] { 0, 0, 0x5320, 0x04, 0x6888 }, }; ofsHallStat = GBO + 0x230C; break; default: return; } ofsFly = ofsFlag + 0x136; ReadMain(); ReadBattleFrontier(); if (!SAV.HGSS) { TC_Misc.Controls.Remove(TAB_Walker); } }