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); }
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!"); }