Exemple #1
0
        private void B_Import_Click(object sender, EventArgs e)
        {
            if (TextData.Length <= 0)
            {
                return;
            }
            using var dump = new OpenFileDialog { Filter = "Text File|*.txt" };
            if (dump.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            string path = dump.FileName;

            if (!ImportTextFiles(path))
            {
                return;
            }

            // Reload the form with the new data.
            ChangeEntry(null, null);
            WinFormsUtil.Alert("Imported Text from Input Path:", path);
        }
Exemple #2
0
        private void B_Randomize_Click(object sender, EventArgs e)
        {
            // gametext can be horribly broken if randomized
            if (Mode == TextEditorMode.Common && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomizing Game Text is dangerous!", "Continue?"))
            {
                return;
            }

            // get if the user wants to randomize current text file or all files
            var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel,
                                         $"Yes: Randomize ALL{Environment.NewLine}No: Randomize current textfile{Environment.NewLine}Cancel: Abort");

            if (dr == DialogResult.Cancel)
            {
                return;
            }

            // get if pure shuffle or smart shuffle (no shuffle if variable present)
            var drs = WinFormsUtil.Prompt(MessageBoxButtons.YesNo,
                                          $"Smart shuffle:{Environment.NewLine}Yes: Shuffle if no Variable present{Environment.NewLine}No: Pure random!");

            if (drs == DialogResult.Cancel)
            {
                return;
            }

            bool all   = dr == DialogResult.Yes;
            bool smart = drs == DialogResult.Yes;

            // save current
            if (entry > -1)
            {
                TextData[entry] = GetCurrentDGLines();
            }

            // single-entire looping
            int start = all ? 0 : entry;
            int end   = all ? TextData.Length - 1 : entry;

            // Gather strings
            List <string> strings = new List <string>();

            for (int i = start; i <= end; i++)
            {
                string[] data = TextData[i];
                strings.AddRange(smart
                    ? data.Where(line => !line.Contains("["))
                    : data);
            }

            // Shuffle up
            string[] pool = strings.ToArray();
            Util.Shuffle(pool);

            // Apply Text
            int ctr = 0;

            for (int i = start; i <= end; i++)
            {
                string[] data = TextData[i];

                for (int j = 0; j < data.Length; j++) // apply lines
                {
                    if (!smart || !data[j].Contains("["))
                    {
                        data[j] = pool[ctr++];
                    }
                }

                TextData[i] = data;
            }

            // Load current text file
            SetStringsDataGridView(TextData[entry]);

            WinFormsUtil.Alert("Strings randomized!");
        }