Example #1
0
        private void processKey(KeyboardEventArgs k, bool skipMapCheck)
        {
            if (!skipMapCheck)
            {
                JoystickFunction jf = checkMap(1, k.Key);

                if (jf != JoystickFunction.None)
                {
                    processJoy(1, jf, k.Down);
                    return;
                }

                jf = checkMap(2, k.Key);

                if (jf != JoystickFunction.None)
                {
                    processJoy(2, jf, k.Down);
                    return;
                }
            }

            if (C64.network.IsClient)
            {
                sendNetKey(k);
            }
            else
            {
                C64Key key = KeyboardMatrix.GetC64Key(k);

                if (key.KeyValue > 0)
                {
                    if (k.Down)
                    {
                        keyboardMatrix[key.KeyColumn] &= (byte)(~key.KeyValue);

                        if (key.Shift == ShiftStatus.Enable)
                        {
                            keyboardMatrix[1] &= 0x7F;
                        }
                        else if (key.Shift == ShiftStatus.Disable)
                        {
                            keyboardMatrix[1] |= 0x80;
                            keyboardMatrix[6] |= 0x10;
                        }
                    }
                    else
                    {
                        keyboardMatrix[key.KeyColumn] |= key.KeyValue;

                        if (key.Shift == ShiftStatus.Enable)
                        {
                            keyboardMatrix[1] |= 0x80;
                        }
                    }
                }
            }
        }
Example #2
0
 private void sendNetJoy(int joyNum, JoystickFunction j, bool pressed)
 {
     C64.network.Send(
         NetCommands.JoyEvent,
         new byte[]
     {
         (byte)joyNum,
         (byte)j,
         (byte)(pressed ? 1 : 0)
     }
         );
 }
Example #3
0
 public JoyEventArgs(int joyNum, JoystickFunction j, bool pressed)
 {
     this.joyNum  = joyNum;
     this.j       = j;
     this.pressed = pressed;
 }
Example #4
0
        private void processJoy(int joyNum, JoystickFunction j, bool pressed)
        {
            if (C64.network.IsClient)
            {
                sendNetJoy(joyNum, j, pressed);
            }
            else
            {
                switch (j)
                {
                case JoystickFunction.Fire:
                    if (joyNum == 1)
                    {
                        joyPort1Fire = pressed;
                    }
                    else
                    {
                        joyPort2Fire = pressed;
                    }
                    break;

                case JoystickFunction.Up:
                    if (joyNum == 1)
                    {
                        joyPort1Up = pressed;
                    }
                    else
                    {
                        joyPort2Up = pressed;
                    }
                    break;

                case JoystickFunction.Right:
                    if (joyNum == 1)
                    {
                        joyPort1Right = pressed;
                    }
                    else
                    {
                        joyPort2Right = pressed;
                    }
                    break;

                case JoystickFunction.Down:
                    if (joyNum == 1)
                    {
                        joyPort1Down = pressed;
                    }
                    else
                    {
                        joyPort2Down = pressed;
                    }
                    break;

                case JoystickFunction.Left:
                    if (joyNum == 1)
                    {
                        joyPort1Left = pressed;
                    }
                    else
                    {
                        joyPort2Left = pressed;
                    }
                    break;

                case JoystickFunction.VerticalCenter:
                    if (joyNum == 1)
                    {
                        joyPort1Up   = false;
                        joyPort1Down = false;
                    }
                    else
                    {
                        joyPort2Up   = false;
                        joyPort2Down = false;
                    }
                    break;

                case JoystickFunction.HorizontalCenter:
                    if (joyNum == 1)
                    {
                        joyPort1Left  = false;
                        joyPort1Right = false;
                    }
                    else
                    {
                        joyPort2Left  = false;
                        joyPort2Right = false;
                    }
                    break;

                case JoystickFunction.None:
                    if (joyNum == 1)
                    {
                        joyPort1Up    = false;
                        joyPort1Right = false;
                        joyPort1Down  = false;
                        joyPort1Left  = false;
                        joyPort1Fire  = false;
                    }
                    else
                    {
                        joyPort2Up    = false;
                        joyPort2Right = false;
                        joyPort2Down  = false;
                        joyPort2Left  = false;
                        joyPort2Fire  = false;
                    }
                    break;
                }
            }
        }
Example #5
0
 public void JoyEvent(int joyNum, JoystickFunction j, bool pressed)
 {
     processJoy(joyNum, j, pressed);
 }