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; } } }