internal static short AskNumberValue(byte fgColor, string prompt, int maxValue) // sub_592AD { ovr027.ClearPromptAreaNoUpdate(); Seg041.DisplayString(prompt, 0, fgColor, 0x18, 0); int prompt_width = prompt.Length; int xCol = prompt_width; char inputKey; string maxValueStr = maxValue.ToString(); string currentValueStr = string.Empty; do { inputKey = (char)seg043.GetInputKey(); if (inputKey >= 0x30 && inputKey <= 0x39) { currentValueStr += inputKey.ToString(); int tmpValue = int.Parse(currentValueStr); if (maxValue >= tmpValue) { xCol++; } else { currentValueStr = maxValueStr; xCol = maxValueStr.Length + prompt_width; } Seg041.DisplayString(currentValueStr, 0, 15, 0x18, prompt_width); } else if (inputKey == 8 && currentValueStr.Length > 0) { int i = currentValueStr.Length - 1; currentValueStr = seg051.Copy(i, 0, currentValueStr); Seg041.DisplaySpaceChar(0x18, xCol - 1); xCol--; } } while (inputKey != 0x0D && inputKey != 0x1B); ovr027.ClearPromptAreaNoUpdate(); int var_44; if (inputKey == 0x1B || (inputKey == 0x0D && currentValueStr.Length == 0)) { var_44 = 0; } else { var_44 = int.Parse(currentValueStr); } return((short)var_44); }