private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = Editor.fullname;

            if (!File.Exists(Settings.ini))
            {
                Raw.Store(Settings.ini, Settings.default_raw);
            }

            Settings.Initialize();

            // Filling Combo box with Maps loaded from settings.ini
            foreach (KeyValuePair <string, Dictionary <string, string> > item in Settings.Data)
            {
                if (item.Key.StartsWith("map", StringComparison.OrdinalIgnoreCase))
                {
                    foreach (KeyValuePair <string, string> subItem in item.Value)
                    {
                        if (subItem.Key.Equals("name", StringComparison.OrdinalIgnoreCase))
                        {
                            comboBoxLoadedMap.Items.Add(subItem.Value);
                        }
                    }
                }
            }

            int sel = Settings.GetSelected();

            comboBoxLoadedMap.SelectedIndex = sel - 1;

            // Output Format not implemented yet
            outputFormatLabel.Enabled    = false;
            outputFotmatIII_rBtn.Enabled = false;
            outputFormatVC_rBtn.Enabled  = false;
            outputFormatSA_rBtn.Enabled  = false;
        }
        private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            List <string> ide = Settings.GetAllFilesFrom(inputTextBox.Text, "*.ide"),
                          ipl = Settings.GetAllFilesFrom(inputTextBox.Text, "*.ipl");

            List <string> out_ide = Editor.CreateOutputPaths(ide, inputTextBox.Text, outputTextBox.Text),
                          out_ipl = Editor.CreateOutputPaths(ipl, inputTextBox.Text, outputTextBox.Text);

            List <string> ipl_raw = Raw.Get(ipl), ide_raw = Raw.Get(ide);

            Editor.Ids = Editor.GetAllIds(ide, ide_raw);

            int startID = Editor.GetStartID(Editor.Ids),
                finalID = Editor.GetFinalID(Editor.Ids);

            Editor.Interval            = finalID - startID;
            Editor.Progress            = startID;
            Editor.PercentageCompleted = 0;

            LogIds.Log("Before editing");
            LogIds.Log(Editor.Ids);

            // Fix Ide Subroutine
            if (Editor.PatchIDEs)
            {
                for (int i = 0; i < ide_raw.Count; i++)
                {
                    ide_raw[i] = Editor.FixIde(ide_raw[i]);
                }
            }

            // Batch Id re-conversion in IDE / IPL files
            Editor.BatchIdsReConversion(ide, ide_raw, ipl_raw, startID, bgWorker);

            // Checking if IPL is in diferent format than output, and converting if necessary
            // And also, re-assigning LODs (if format is San Andreas)
            Editor.PatchAllIpl(ipl, ipl_raw, bgWorker);

            // Editing IPL coordinates
            if (Editor.xOff != 0 || Editor.yOff != 0 || Editor.zOff != 0)
            {
                Editor.FixIplCoordinates(ipl, ipl_raw, bgWorker);
            }

            Editor.Ids = Editor.GetAllIds(ide, ide_raw);
            LogIds.Log("After editing");
            LogIds.Log(Editor.Ids);
            //LogIds.EndLogging("editor_ids.log");

            // Building new IDE / IPL files
            bgWorker.ReportProgress(100, "100 %\nStoring.");
            for (int i = 0; i < ide_raw.Count; i++)
            {
                Editor.CreateDirectoryOf(out_ide[i]);
                Raw.Store(out_ide[i], ide_raw[i]);
            }
            for (int i = 0; i < ipl_raw.Count; i++)
            {
                Editor.CreateDirectoryOf(out_ipl[i]);
                Raw.Store(out_ipl[i], ipl_raw[i]);
            }
        }