Ejemplo n.º 1
0
        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++;
                    }
                }
            }
        }