internal static void UpdateCampaignFromSave(ref TabPage Page, string SaveName) { using (var CampaignReader = new BinaryReader(File.Open(SaveName, FileMode.Open, FileAccess.Read))) { var CurrentStory = 0; foreach (var GroupBox in Page.Controls.OfType <GroupBox>().Reverse()) { foreach (var CheckBoxList in GroupBox.Controls.OfType <CheckedListBox>()) { CampaignReader.BaseStream.Position = StoryLengths[CurrentStory].Start; var CurrentLevel = 0; do { if (CurrentLevel > StoryLengths[CurrentStory].Missions) { break; } if (SkipOffset.Any(Offset => CampaignReader.BaseStream.Position == Offset)) { CampaignReader.BaseStream.Position += 0x18; continue; } CheckBoxList.SetItemChecked(CurrentLevel, ValidateStory(CampaignReader.ReadBytes(0x18))); CurrentLevel++; } while (CampaignReader.BaseStream.Position <= StoryLengths[CurrentStory].End); CurrentStory++; } } } }