Exemple #1
0
        // Meta Usage
        private void B_AddLine_Click(object sender, EventArgs e)
        {
            int currentRow = 0;

            try { currentRow = dgv.CurrentRow.Index; }
            catch { dgv.Rows.Add(); }
            if (dgv.Rows.Count != 1 && (currentRow < dgv.Rows.Count - 1 || currentRow == 0))
            {
                if (ModifierKeys != Keys.Control && currentRow != 0)
                {
                    if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Inserting in between rows will shift all subsequent lines.", "Continue?") != DialogResult.Yes)
                    {
                        return;
                    }
                }
                // Insert new Row after current row.
                dgv.Rows.Insert(currentRow + 1);
            }

            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                dgv.Rows[i].Cells[0].Value = i.ToString();
            }
        }
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!");
        }