예제 #1
0
 private void KeyReleased(object sender, DoomKey code)
 {
     if (this.events.Count < 64)
     {
         this.events.Add(new DoomEvent(EventType.KeyUp, code));
     }
 }
예제 #2
0
 public static bool IsKeyPressed(DoomKey key)
 {
     return(Events.Any(e =>
     {
         return e.Type == EventType.KeyDown && e.Key == key;
     }
                       ));
 }
예제 #3
0
        private bool CheckFunctionKey(DoomKey key)
        {
            switch (key)
            {
            case DoomKey.F1:
                menu.ShowHelpScreen();
                return(true);

            case DoomKey.F2:
                menu.ShowSaveScreen();
                return(true);

            case DoomKey.F3:
                menu.ShowLoadScreen();
                return(true);

            case DoomKey.F4:
                menu.ShowVolumeControl();
                return(true);

            case DoomKey.F6:
                menu.QuickSave();
                return(true);

            case DoomKey.F7:
                if (currentState == ApplicationState.Game)
                {
                    menu.EndGame();
                }
                else
                {
                    options.Sound.StartSound(Sfx.OOF);
                }
                return(true);

            case DoomKey.F8:
                renderer.DisplayMessage = !renderer.DisplayMessage;
                if (currentState == ApplicationState.Game && game.State == GameState.Level)
                {
                    string msg;
                    if (renderer.DisplayMessage)
                    {
                        msg = DoomInfo.Strings.MSGON;
                    }
                    else
                    {
                        msg = DoomInfo.Strings.MSGOFF;
                    }
                    game.World.ConsolePlayer.SendMessage(msg);
                }
                menu.StartSound(Sfx.SWTCHN);
                return(true);

            case DoomKey.F9:
                menu.QuickLoad();
                return(true);

            case DoomKey.F10:
                menu.Quit();
                return(true);

            case DoomKey.F11:
                var gcl = renderer.GammaCorrectionLevel;
                gcl++;
                if (gcl > renderer.MaxGammaCorrectionLevel)
                {
                    gcl = 0;
                }
                renderer.GammaCorrectionLevel = gcl;
                if (currentState == ApplicationState.Game && game.State == GameState.Level)
                {
                    string msg;
                    if (gcl == 0)
                    {
                        msg = DoomInfo.Strings.GAMMALVL0;
                    }
                    else
                    {
                        msg = "Gamma correction level " + gcl;
                    }
                    game.World.ConsolePlayer.SendMessage(msg);
                }
                return(true);

            case DoomKey.Add:
            case DoomKey.Quote:
                if (currentState == ApplicationState.Game &&
                    game.State == GameState.Level &&
                    game.World.AutoMap.Visible)
                {
                    return(false);
                }
                else
                {
                    renderer.WindowSize = Math.Min(renderer.WindowSize + 1, renderer.MaxWindowSize);
                    options.Sound.StartSound(Sfx.STNMOV);
                    return(true);
                }

            case DoomKey.Subtract:
            case DoomKey.Hyphen:
                if (currentState == ApplicationState.Game &&
                    game.State == GameState.Level &&
                    game.World.AutoMap.Visible)
                {
                    return(false);
                }
                else
                {
                    renderer.WindowSize = Math.Max(renderer.WindowSize - 1, 0);
                    options.Sound.StartSound(Sfx.STNMOV);
                    return(true);
                }

            default:
                return(false);
            }
        }
예제 #4
0
        public static char GetChar(this DoomKey key)
        {
            switch (key)
            {
            case DoomKey.A:
                return('a');

            case DoomKey.B:
                return('b');

            case DoomKey.C:
                return('c');

            case DoomKey.D:
                return('d');

            case DoomKey.E:
                return('e');

            case DoomKey.F:
                return('f');

            case DoomKey.G:
                return('g');

            case DoomKey.H:
                return('h');

            case DoomKey.I:
                return('i');

            case DoomKey.J:
                return('j');

            case DoomKey.K:
                return('k');

            case DoomKey.L:
                return('l');

            case DoomKey.M:
                return('m');

            case DoomKey.N:
                return('n');

            case DoomKey.O:
                return('o');

            case DoomKey.P:
                return('p');

            case DoomKey.Q:
                return('q');

            case DoomKey.R:
                return('r');

            case DoomKey.S:
                return('s');

            case DoomKey.T:
                return('t');

            case DoomKey.U:
                return('u');

            case DoomKey.V:
                return('v');

            case DoomKey.W:
                return('w');

            case DoomKey.X:
                return('x');

            case DoomKey.Y:
                return('y');

            case DoomKey.Z:
                return('z');

            case DoomKey.Num0:
                return('0');

            case DoomKey.Num1:
                return('1');

            case DoomKey.Num2:
                return('2');

            case DoomKey.Num3:
                return('3');

            case DoomKey.Num4:
                return('4');

            case DoomKey.Num5:
                return('5');

            case DoomKey.Num6:
                return('6');

            case DoomKey.Num7:
                return('7');

            case DoomKey.Num8:
                return('8');

            case DoomKey.Num9:
                return('9');

            case DoomKey.LBracket:
                return('[');

            case DoomKey.RBracket:
                return(']');

            case DoomKey.Semicolon:
                return(';');

            case DoomKey.Comma:
                return(',');

            case DoomKey.Period:
                return('.');

            case DoomKey.Quote:
                return('"');

            case DoomKey.Slash:
                return('/');

            case DoomKey.Backslash:
                return('\\');

            case DoomKey.Equal:
                return('=');

            case DoomKey.Hyphen:
                return('-');

            case DoomKey.Space:
                return(' ');

            case DoomKey.Add:
                return('+');

            case DoomKey.Subtract:
                return('-');

            case DoomKey.Multiply:
                return('*');

            case DoomKey.Divide:
                return('/');

            case DoomKey.Numpad0:
                return('0');

            case DoomKey.Numpad1:
                return('1');

            case DoomKey.Numpad2:
                return('2');

            case DoomKey.Numpad3:
                return('3');

            case DoomKey.Numpad4:
                return('4');

            case DoomKey.Numpad5:
                return('5');

            case DoomKey.Numpad6:
                return('6');

            case DoomKey.Numpad7:
                return('7');

            case DoomKey.Numpad8:
                return('8');

            case DoomKey.Numpad9:
                return('9');

            default:
                return('\0');
            }
        }
예제 #5
0
        public static string ToString(DoomKey key)
        {
            switch (key)
            {
            case DoomKey.A:
                return("a");

            case DoomKey.B:
                return("b");

            case DoomKey.C:
                return("c");

            case DoomKey.D:
                return("d");

            case DoomKey.E:
                return("e");

            case DoomKey.F:
                return("f");

            case DoomKey.G:
                return("g");

            case DoomKey.H:
                return("h");

            case DoomKey.I:
                return("i");

            case DoomKey.J:
                return("j");

            case DoomKey.K:
                return("k");

            case DoomKey.L:
                return("l");

            case DoomKey.M:
                return("m");

            case DoomKey.N:
                return("n");

            case DoomKey.O:
                return("o");

            case DoomKey.P:
                return("p");

            case DoomKey.Q:
                return("q");

            case DoomKey.R:
                return("r");

            case DoomKey.S:
                return("s");

            case DoomKey.T:
                return("t");

            case DoomKey.U:
                return("u");

            case DoomKey.V:
                return("v");

            case DoomKey.W:
                return("w");

            case DoomKey.X:
                return("x");

            case DoomKey.Y:
                return("y");

            case DoomKey.Z:
                return("z");

            case DoomKey.Num0:
                return("num0");

            case DoomKey.Num1:
                return("num1");

            case DoomKey.Num2:
                return("num2");

            case DoomKey.Num3:
                return("num3");

            case DoomKey.Num4:
                return("num4");

            case DoomKey.Num5:
                return("num5");

            case DoomKey.Num6:
                return("num6");

            case DoomKey.Num7:
                return("num7");

            case DoomKey.Num8:
                return("num8");

            case DoomKey.Num9:
                return("num9");

            case DoomKey.Escape:
                return("escape");

            case DoomKey.LControl:
                return("lcontrol");

            case DoomKey.LShift:
                return("lshift");

            case DoomKey.LAlt:
                return("lalt");

            case DoomKey.LSystem:
                return("lsystem");

            case DoomKey.RControl:
                return("rcontrol");

            case DoomKey.RShift:
                return("rshift");

            case DoomKey.RAlt:
                return("ralt");

            case DoomKey.RSystem:
                return("rsystem");

            case DoomKey.Menu:
                return("menu");

            case DoomKey.LBracket:
                return("lbracket");

            case DoomKey.RBracket:
                return("rbracket");

            case DoomKey.Semicolon:
                return("semicolon");

            case DoomKey.Comma:
                return("comma");

            case DoomKey.Period:
                return("period");

            case DoomKey.Quote:
                return("quote");

            case DoomKey.Slash:
                return("slash");

            case DoomKey.Backslash:
                return("backslash");

            case DoomKey.Tilde:
                return("tilde");

            case DoomKey.Equal:
                return("equal");

            case DoomKey.Hyphen:
                return("hyphen");

            case DoomKey.Space:
                return("space");

            case DoomKey.Enter:
                return("enter");

            case DoomKey.Backspace:
                return("backspace");

            case DoomKey.Tab:
                return("tab");

            case DoomKey.PageUp:
                return("pageup");

            case DoomKey.PageDown:
                return("pagedown");

            case DoomKey.End:
                return("end");

            case DoomKey.Home:
                return("home");

            case DoomKey.Insert:
                return("insert");

            case DoomKey.Delete:
                return("delete");

            case DoomKey.Add:
                return("add");

            case DoomKey.Subtract:
                return("subtract");

            case DoomKey.Multiply:
                return("multiply");

            case DoomKey.Divide:
                return("divide");

            case DoomKey.Left:
                return("left");

            case DoomKey.Right:
                return("right");

            case DoomKey.Up:
                return("up");

            case DoomKey.Down:
                return("down");

            case DoomKey.Numpad0:
                return("numpad0");

            case DoomKey.Numpad1:
                return("numpad1");

            case DoomKey.Numpad2:
                return("numpad2");

            case DoomKey.Numpad3:
                return("numpad3");

            case DoomKey.Numpad4:
                return("numpad4");

            case DoomKey.Numpad5:
                return("numpad5");

            case DoomKey.Numpad6:
                return("numpad6");

            case DoomKey.Numpad7:
                return("numpad7");

            case DoomKey.Numpad8:
                return("numpad8");

            case DoomKey.Numpad9:
                return("numpad9");

            case DoomKey.F1:
                return("f1");

            case DoomKey.F2:
                return("f2");

            case DoomKey.F3:
                return("f3");

            case DoomKey.F4:
                return("f4");

            case DoomKey.F5:
                return("f5");

            case DoomKey.F6:
                return("f6");

            case DoomKey.F7:
                return("f7");

            case DoomKey.F8:
                return("f8");

            case DoomKey.F9:
                return("f9");

            case DoomKey.F10:
                return("f10");

            case DoomKey.F11:
                return("f11");

            case DoomKey.F12:
                return("f12");

            case DoomKey.F13:
                return("f13");

            case DoomKey.F14:
                return("f14");

            case DoomKey.F15:
                return("f15");

            case DoomKey.Pause:
                return("pause");

            default:
                return("unknown");
            }
        }
예제 #6
0
 public DoomEvent(EventType type, DoomKey key)
 {
     this.type = type;
     this.key  = key;
 }