Beispiel #1
0
        public static void CheckKeys()
        {
            if (Subscreens.Mouse)
            {
                Subscreens.Mouse = false;
                var item = Elements.FindLast(x => x.TabStop && x.Enabled && !x.Hidden && Subscreens.MouseX >= x.Left && Subscreens.MouseY >= x.Top && Subscreens.MouseX < x.Left + x.Width && Subscreens.MouseY < x.Top + (x.Height == 0 ? 1 : x.Height));
                if (item != null)
                {
                    if (item != highlight)
                    {
                        var h = highlight;
                        highlight = item;
                        h.Draw();
                        item.Draw();
                        if (HighlightChanged != null)
                        {
                            HighlightChanged(null, null);
                        }
                    }
                    item.DoMouse(Subscreens.MouseX - item.Left, Subscreens.MouseY - item.Top);
                    return;
                }
            }

            if (Vista.Triggers != 0)
            {
                var triggers = Vista.Triggers;
                Vista.ReleaseTriggers();
                switch (triggers)
                {
                case XInputButtons.A:
                    ProcessKey(Keys.Enter);
                    break;

                case XInputButtons.Up:
                    ProcessKey(Keys.Up);
                    break;

                case XInputButtons.Down:
                    ProcessKey(Keys.Down);
                    break;

                case XInputButtons.Left:
                    ProcessKey(Keys.Left);
                    break;

                case XInputButtons.Right:
                    ProcessKey(Keys.Right);
                    break;

                case XInputButtons.LeftShoulder:
                    ProcessKey(Keys.Tab, true);
                    break;

                case XInputButtons.RightShoulder:
                    ProcessKey(Keys.Tab, false);
                    break;
                }
                return;
            }

            for (var i = 0; i < 255; i++)
            {
                if (NoxicoGame.KeyMap[(Keys)i])
                {
                    NoxicoGame.KeyMap[(Keys)i] = false;
                    UIManager.ProcessKey((Keys)i, NoxicoGame.Modifiers[0]);
                    break;
                }
            }
        }