Beispiel #1
0
        public MenuManager()
        {
            menu.AddItem(
                    enabled = new MenuItem("enableKey", "Enabled").SetValue(new KeyBind('P', KeyBindType.Toggle, true)))
                .ValueChanged += OnStateChange;
            menu.AddItem(new MenuItem("resetKey", "Reset stacks").SetValue(new KeyBind('0', KeyBindType.Press)))
                .SetTooltip("Set required stacks count to 1")
                .ValueChanged += StacksReset;
            menu.AddItem(new MenuItem("heroStack", "Stack with hero").SetValue(new KeyBind('K', KeyBindType.Press)))
                .SetTooltip("Will stack closest camp with your hero")
                .ValueChanged += OnHeroStackEabled;
            menu.AddItem(
                    new MenuItem("forceAdd", "Force add/remove unit").SetValue(new KeyBind('L', KeyBindType.Press)))
                .SetTooltip(
                    "Will add/remove selected unit to/from controllables. Useful for ally dominated creep with shared control")
                .ValueChanged += OnMenuForceAdd;
            menu.AddItem(debug = new MenuItem("debug", "Debug").SetValue(false))
                .SetTooltip("Shows more information for debugging")
                .ValueChanged += OnDebugChange;

            menu.AddToMainMenu();
        }
Beispiel #2
0
        internal static char sl_select_item(out MenuItem result_ptr, ref int index_ptr,
            ref bool redrawMenuItems, bool showExit, List<MenuItem> stringList,
            int endY, int endX, int startY, int startX,
            MenuColorSet colors, string inputString, string extraTextString)
        {
            char ret_val = '\0'; /* Simeon */
            result_ptr = null; /*Simeon*/

            if (stringList == null)
            {
                index_ptr = 0;
                result_ptr = null;

                return '\0';
            }

            gbl.menuSelectedWord = 1;

            int listDisplayWidth = (endX - startX) + 1;
            int listDisplayHeight = (short)((endY - startY) + 1);

            int listCount = stringList.Count;

            if (listCount <= listDisplayHeight)
            {
                gbl.menuScreenIndex = 0;
            }

            if (gbl.menuScreenIndex > index_ptr)
            {
                gbl.menuScreenIndex = index_ptr;
                redrawMenuItems = true;
            }

            if (gbl.menuScreenIndex > listCount)
            {
                gbl.menuScreenIndex = 0;
                redrawMenuItems = true;
            }

            index_ptr++;
            index_ptr = menu_sub_6CDCA(false, index_ptr, stringList, listDisplayHeight);

            if (redrawMenuItems == true)
            {
                sub_6C897(gbl.menuScreenIndex, endY, endX, startY, startX,
                    stringList, colors.foreground, colors.prompt, listDisplayWidth);
            }

            redrawMenuItems = false;

            bool loop_end = false;

            while (loop_end == false)
            {
                ListItemHighlighted(index_ptr, stringList, startY, startX, colors.highlight);
                string displayString = inputString;

                bool showNext = false;
                bool showPrevious = false;

                if ((listCount - listDisplayHeight) > gbl.menuScreenIndex)
                {
                    displayString += " Next";
                    showNext = true;
                }

                if (gbl.menuScreenIndex > 0)
                {
                    displayString += " Prev";
                    showPrevious = true;
                }

                if (showExit == true)
                {
                    displayString += " Exit";
                }

                bool speical_key;
                char input_key = displayInput(out speical_key, false, 1, colors, displayString, extraTextString);

                ListItemNormal(index_ptr, stringList, startY, startX, colors.foreground, colors.prompt);

                if (speical_key == true)
                {
                    switch (input_key)
                    {
                        case 'G':
                            index_ptr = menu_sub_6CDCA(false, index_ptr, stringList, listDisplayHeight);
                            break;

                        case 'O':
                            index_ptr = menu_sub_6CDCA(true, index_ptr, stringList, listDisplayHeight);
                            break;

                        case 'I':
                            if (showPrevious == true)
                            {
                                menu_sub_6CD38(false, ref index_ptr, stringList, listDisplayHeight, endY, endX, startY, startX, colors.foreground, colors.prompt, listDisplayWidth);
                            }
                            break;

                        case 'Q':
                            if (showNext == true)
                            {
                                menu_sub_6CD38(true, ref index_ptr, stringList, listDisplayHeight, endY, endX, startY, startX, colors.foreground, colors.prompt, listDisplayWidth);
                            }
                            break;
                    }
                }
                else
                {
                    switch (input_key)
                    {
                        case 'P':
                            menu_sub_6CD38(false, ref index_ptr, stringList, listDisplayHeight, endY, endX, startY, startX, colors.foreground, colors.prompt, listDisplayWidth);
                            break;

                        case 'N':

                            menu_sub_6CD38(true, ref index_ptr, stringList, listDisplayHeight, endY, endX, startY, startX, colors.foreground, colors.prompt, listDisplayWidth);
                            break;

                        case (char)0x1B:
                        case '\0':
                        case 'E':
                            result_ptr = null;
                            ret_val = '\0';
                            loop_end = true;
                            break;

                        default:
                            result_ptr = getStringListEntry(stringList, index_ptr);
                            ret_val = input_key;
                            loop_end = true;
                            break;
                    }
                }
            }

            return ret_val;
        }