public WN3Form(SAV3 sav) { this.sav = sav; switch (sav.Version) { case GameVersion.E: Offset = Offset_E + 0x2E80; break; case GameVersion.FR or GameVersion.LG or GameVersion.FRLG: Offset = Offset_FRLG + 0x2E80; break; default: break; } InitializeComponent(); if (sav.Language == 0) { LangJAPButton.Checked = true; } else { LangEUButton.Checked = true; } }
public WN3Form(SAV3 sav) { this.sav = sav; Version = sav.Version; if (Version == GameVersion.E) { Offset = Offset_E; } else if (Version == GameVersion.FR || Version == GameVersion.LG || Version == GameVersion.FRLG) { Offset = Offset_FRLG; } InitializeComponent(); if (sav.Language == 0) { LangJAPButton.Checked = true; } else { LangEUButton.Checked = true; } }
public ECBForm(SAV3 sav) { this.sav = sav; switch (sav.Version) { case GameVersion.R or GameVersion.S or GameVersion.RS: Length = Length_RS + 0x2E80; Offset = Offset_RS + 0x2E80; break; case GameVersion.E: Length = Length_FRLGE + 0x2E80; Offset = Offset_E + 0x2E80; break; case GameVersion.FR or GameVersion.LG or GameVersion.FRLG: Length = Length_FRLGE + 0x2E80; Offset = Offset_FRLG + 0x2E80; break; default: break; } InitializeComponent(); }
public SAV_RTC3(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV3)(Origin = sav).Clone(); ClockInitial = SAV.ClockInitial; ClockElapsed = SAV.ClockElapsed; LoadData(); }
public Roamer3(SAV3 sav) { Data = (SAV = sav).Large; Offset = sav.Version switch { GameVersion.RS => 0x3144, GameVersion.E => 0x31DC, _ => 0x30D0, // FRLG }; IsGlitched = sav.Version != GameVersion.E; }
public SAV_Misc3(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV3)(Origin = sav).Clone(); LoadRecords(); if (SAV is IGen3Joyful j) { ReadJoyful(j); } else { tabControl1.Controls.Remove(TAB_Joyful); } if (SAV is SAV3E) { ReadFerry(); ReadBattleFrontier(); } else { tabControl1.Controls.Remove(TAB_Ferry); tabControl1.Controls.Remove(TAB_BF); } if (SAV is SAV3FRLG frlg) { TB_RivalName.Text = frlg.RivalName; // Trainer Card Species ComboBox[] cba = { CB_TCM1, CB_TCM2, CB_TCM3, CB_TCM4, CB_TCM5, CB_TCM6 }; var legal = GameInfo.FilteredSources.Species.ToList(); for (int i = 0; i < cba.Length; i++) { cba[i].Items.Clear(); cba[i].InitializeBinding(); cba[i].DataSource = new BindingSource(legal, null); var g3Species = SAV.GetEventConst(0x43 + i); var species = SpeciesConverter.GetG4Species(g3Species); cba[i].SelectedValue = species; } } else { TB_RivalName.Visible = L_TrainerName.Visible = GB_TCM.Visible = false; } NUD_Coins.Value = Math.Min(NUD_Coins.Maximum, SAV.Coin); }
public MirageIslandForm(SAV3 sav) { InitializeComponent(); this.sav = sav; seed = sav.GetEventConst(0x24); cache = new List <SlotCache>(sav.BoxSlotCount + (sav.HasParty ? 6 : 0)); SlotInfoLoader.AddFromSaveFile(sav, cache); MirageIslandSeedBox.Value = seed; }
public SAV_Roamer3(SaveFile sav) { SAV = (SAV3)(Origin = sav).Clone(); Reader = new Roamer3(SAV); InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); CB_Species.DisplayMember = "Text"; CB_Species.ValueMember = "Value"; CB_Species.DataSource = new BindingSource(GameInfo.SpeciesDataSource.Where(id => id.Value <= SAV.MaxSpeciesID).ToList(), null); LoadData(); }
public SAV_Misc3(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV3)(Origin = sav).Clone(); LoadRecords(); if (SAV.FRLG || SAV.E) { ReadJoyful(); } else { tabControl1.Controls.Remove(TAB_Joyful); } if (SAV.E) { ReadFerry(); ReadBattleFrontier(); } else { tabControl1.Controls.Remove(TAB_Ferry); tabControl1.Controls.Remove(TAB_BF); } if (SAV.FRLG) { TB_RivalName.Text = SAV.GetString(SAV.Large, 0x3A4C, 8); // Trainer Card Species ComboBox[] cba = { CB_TCM1, CB_TCM2, CB_TCM3, CB_TCM4, CB_TCM5, CB_TCM6 }; var legal = GameInfo.SpeciesDataSource.Where(v => v.Value <= SAV.MaxSpeciesID); var speciesList = legal.Select(v => new ComboItem(v.Text, SpeciesConverter.GetG3Species(v.Value))).ToList(); for (int i = 0; i < cba.Length; i++) { cba[i].Items.Clear(); cba[i].InitializeBinding(); cba[i].DataSource = new BindingSource(speciesList, null); cba[i].SelectedValue = SAV.GetEventConst(0x43 + i); } } else { TB_RivalName.Visible = L_TrainerName.Visible = GB_TCM.Visible = false; } NUD_Coins.Value = Math.Min(NUD_Coins.Maximum, SAV.Coin); }
public WC3Form(SAV3 sav) { this.sav = sav; Version = sav.Version; InitializeComponent(); if (sav.Language == 0) { LangJAPButton.Checked = true; } else { LangEUButton.Checked = true; } }
public ME3Form(SAV3 sav) { this.sav = sav; Version = sav.Version; if (Version == GameVersion.R || Version == GameVersion.S || Version == GameVersion.RS) { Offset = Offset_RS; } else if (Version == GameVersion.E) { Offset = Offset_E; } InitializeComponent(); }
public ME3Form(SAV3 sav) { this.sav = sav; switch (sav.Version) { case GameVersion.R or GameVersion.S or GameVersion.RS: Offset = Offset_RS + 0x2E80; break; case GameVersion.E: Offset = Offset_E + 0x2E80; break; default: break; } InitializeComponent(); }
public ECBForm(SAV3 sav) { this.sav = sav; Version = sav.Version; if (Version == GameVersion.R || Version == GameVersion.S || Version == GameVersion.RS) { Length = Length_RS; Offset = Offset_RS; } else if (Version == GameVersion.E) { Length = Length_FRLGE; Offset = Offset_E; } else if (Version == GameVersion.FR || Version == GameVersion.LG || Version == GameVersion.FRLG) { Length = Length_FRLGE; Offset = Offset_FRLG; } InitializeComponent(); }
public ECTForm(SAV3 sav) { this.sav = sav; switch (sav.Version) { case GameVersion.R or GameVersion.S or GameVersion.RS: Offset = Offset_RS; break; case GameVersion.E: Offset = Offset_E; break; case GameVersion.FR or GameVersion.LG or GameVersion.FRLG: Offset = Offset_FRLG; break; default: break; } InitializeComponent(); }
public SAV_Misc3(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV3)(Origin = sav).Clone(); if (SAV.FRLG || SAV.E) { ReadJoyful(); } else { tabControl1.Controls.Remove(TAB_Joyful); } if (SAV.E) { ReadFerry(); ReadBattleFrontier(); } else { tabControl1.Controls.Remove(TAB_Ferry); tabControl1.Controls.Remove(TAB_BF); } if (SAV.FRLG) { TB_OTName.Text = SAV.GetString(SAV.GetBlockOffset(4) + 0xBCC, 8); ComboBox[] cba = { CB_TCM1, CB_TCM2, CB_TCM3, CB_TCM4, CB_TCM5, CB_TCM6 }; int[] HoennListMixed = { 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 304, 305, 309, 310, 392, 393, 394, 311, 312, 306, 307, 364, 365, 366, 301, 302, 303, 370, 371, 372, 335, 336, 350, 320, 315, 316, 322, 355, 382, 383, 384, 356, 357, 337, 338, 353, 354, 386, 387, 363, 367, 368, 330, 331, 313, 314, 339, 340, 321, 351, 352, 308, 332, 333, 334, 344, 345, 358, 359, 380, 379, 348, 349, 323, 324, 326, 327, 318, 319, 388, 389, 390, 391, 328, 329, 385, 317, 377, 378, 361, 362, 369, 411, 376, 360, 346, 347, 341, 342, 343, 373, 374, 375, 381, 325, 395, 396, 397, 398, 399, 400, 401, 402, 403, 407, 408, 404, 405, 406, 409, 410 }; var speciesList = GameInfo.SpeciesDataSource.Where(v => v.Value <= SAV.MaxSpeciesID).Select(v => new ComboItem { Text = v.Text, Value = v.Value < 252 ? v.Value : HoennListMixed[v.Value - 252], }).ToList(); int ofsTCM = SAV.GetBlockOffset(2) + 0x106; for (int i = 0; i < cba.Length; i++) { cba[i].Items.Clear(); cba[i].InitializeBinding(); cba[i].DataSource = new BindingSource(speciesList, null); cba[i].SelectedValue = (int)BitConverter.ToUInt16(SAV.Data, ofsTCM + (i << 1)); } } else { TB_OTName.Visible = L_TrainerName.Visible = GB_TCM.Visible = false; } NUD_BP.Value = Math.Min(NUD_BP.Maximum, SAV.BP); NUD_Coins.Value = Math.Min(NUD_Coins.Maximum, SAV.Coin); }
public Record3(SAV3 sav) => SAV = sav;
public SAV_SimpleTrainer(SaveFile sav) { SAV = (Origin = sav).Clone(); Loading = true; InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); 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) { 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) { 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; SAV3 sav3 = (SAV3)SAV; switch (sav3.Version) { case GameVersion.E: badgeval = sav3.Badges; break; case GameVersion.FRLG: badgeval = sav3.Badges; break; default: GB_Badges.Visible = false; break; // RS } L_Started.Visible = L_Fame.Visible = false; CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false; CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false; } 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; GB_Adventure.Visible = false; return; } if (SAV is SAV4 sav4) { NUD_M.Value = sav4.M; NUD_X.Value = sav4.X; NUD_Z.Value = sav4.Z; NUD_Y.Value = sav4.Y; badgeval = sav4.Badges; if (sav4.Version == GameVersion.HGSS) { badgeval |= sav4.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 s) { 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 SAV3) { SAV3 sav3 = (SAV3)SAV; sav3.Badges = badgeval & 0xFF; } 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(); }