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; } } } } }
private void sendNetJoy(int joyNum, JoystickFunction j, bool pressed) { C64.network.Send( NetCommands.JoyEvent, new byte[] { (byte)joyNum, (byte)j, (byte)(pressed ? 1 : 0) } ); }
public JoyEventArgs(int joyNum, JoystickFunction j, bool pressed) { this.joyNum = joyNum; this.j = j; this.pressed = pressed; }
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; } } }
public void JoyEvent(int joyNum, JoystickFunction j, bool pressed) { processJoy(joyNum, j, pressed); }