using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace mmoRL { public class MenuOption { public string description = "Option"; public int result = -1; public ConsoleColor color = ConsoleColor.Gray; public int scrollPosition = -20; public MenuOption(string desc, int result = -1, ConsoleColor color = ConsoleColor.Gray) { this.description = desc; this.result = result; this.color = color; } } public static class Menu { public static string preText = ""; public static string postText = ""; public static List options = new List(); public static string optionPrefix = " $i - "; public static bool active = false; public static int numberOfOptions = 15; public static int offset = 0; public static void TextScreen(string[] text) { int[] filler = new int[text.Length]; for (int i = 0; i < filler.Length; i++) filler[i] = 0; Menu.SetupMenu(text, filler, "", "", " ", 13); MainClass.mode = GameMode.TextScreen; Menu.active = true; } public static void SetupMenu(string[] optionTexts, int[] optionResults, string pre = "", string post = "", string oppre = " $i - ", int optionCount = 15) { options.Clear(); for (int i = 0; i < optionTexts.Length; i++) { options.Add(new MenuOption(optionTexts[i], optionResults[i])); } preText = pre; postText = post; optionPrefix = oppre; numberOfOptions = optionCount; offset = 0; } public static string NumberToLetter(int number) { switch (number) { case 0: return "a"; case 1: return "b"; case 2: return "c"; case 3: return "d"; case 4: return "e"; case 5: return "f"; case 6: return "g"; case 7: return "h"; case 8: return "i"; case 9: return "j"; case 10: return "k"; case 11: return "l"; case 12: return "m"; case 13: return "n"; case 14: return "o"; } return "z"; } public static string[] WordWrap(string originalString) { List toReturn = new List(); int limit = 70 - optionPrefix.Length; while (originalString.Length > limit) { toReturn.Add(originalString.Substring(0, limit)); originalString = originalString.Substring(limit); } toReturn.Add(originalString); return toReturn.ToArray(); } } }