Exemplo n.º 1
0
        private void InitNetPlayMenus()
        {
            mnuConnect.Click          += (s, e) => { NetPlayHelper.Connect(); };
            mnuStartServer.Click      += (s, e) => { NetPlayHelper.ToggleServer(); };
            mnuProfile.Click          += (s, e) => { using (frmPlayerProfile frm = new frmPlayerProfile()) { frm.ShowDialog(mnuProfile, this); } };
            mnuNetPlayPlayer1.Click   += (s, e) => { NetplayApi.NetPlaySelectController(0); };
            mnuNetPlayPlayer2.Click   += (s, e) => { NetplayApi.NetPlaySelectController(1); };
            mnuNetPlayPlayer3.Click   += (s, e) => { NetplayApi.NetPlaySelectController(2); };
            mnuNetPlayPlayer4.Click   += (s, e) => { NetplayApi.NetPlaySelectController(3); };
            mnuNetPlayPlayer5.Click   += (s, e) => { NetplayApi.NetPlaySelectController(4); };
            mnuNetPlaySpectator.Click += (s, e) => { NetplayApi.NetPlaySelectController(0xFF); };

            mnuNetPlay.DropDownOpening += (s, e) => {
                bool runAheadDisabled = ConfigManager.Config.Emulation.RunAheadFrames == 0;
                bool isClient         = NetplayApi.IsConnected();
                bool isServer         = NetplayApi.IsServerRunning();
                mnuConnect.Text                    = ResourceHelper.GetMessage(isClient ? "Disconnect" : "ConnectToServer");
                mnuConnect.Enabled                 = runAheadDisabled && !isServer;
                mnuStartServer.Text                = ResourceHelper.GetMessage(isServer ? "StopServer" : "StartServer");
                mnuStartServer.Enabled             = runAheadDisabled && !isClient;
                mnuNetPlaySelectController.Enabled = isClient || isServer;
            };

            mnuNetPlaySelectController.DropDownOpening += (s, e) => {
                int availableControllers  = NetplayApi.NetPlayGetAvailableControllers();
                int currentControllerPort = NetplayApi.NetPlayGetControllerPort();
                mnuNetPlayPlayer1.Enabled = (availableControllers & 0x01) == 0x01;
                mnuNetPlayPlayer2.Enabled = (availableControllers & 0x02) == 0x02;
                mnuNetPlayPlayer3.Enabled = (availableControllers & 0x04) == 0x04;
                mnuNetPlayPlayer4.Enabled = (availableControllers & 0x08) == 0x08;
                mnuNetPlayPlayer5.Enabled = (availableControllers & 0x10) == 0x10;

                Func <int, string> getControllerName = (int port) => {
                    ControllerType type = ConfigApi.GetControllerType(port);
                    if (type == ControllerType.Multitap)
                    {
                        type = ControllerType.SnesController;
                    }
                    return(ResourceHelper.GetEnumText(type));
                };

                mnuNetPlayPlayer1.Text = ResourceHelper.GetMessage("PlayerNumber", "1") + " (" + getControllerName(0) + ")";
                mnuNetPlayPlayer2.Text = ResourceHelper.GetMessage("PlayerNumber", "2") + " (" + getControllerName(1) + ")";
                mnuNetPlayPlayer3.Text = ResourceHelper.GetMessage("PlayerNumber", "3") + " (" + getControllerName(2) + ")";
                mnuNetPlayPlayer4.Text = ResourceHelper.GetMessage("PlayerNumber", "4") + " (" + getControllerName(3) + ")";
                mnuNetPlayPlayer5.Text = ResourceHelper.GetMessage("PlayerNumber", "5") + " (" + getControllerName(4) + ")";

                mnuNetPlayPlayer1.Checked   = (currentControllerPort == 0);
                mnuNetPlayPlayer2.Checked   = (currentControllerPort == 1);
                mnuNetPlayPlayer3.Checked   = (currentControllerPort == 2);
                mnuNetPlayPlayer4.Checked   = (currentControllerPort == 3);
                mnuNetPlayPlayer5.Checked   = (currentControllerPort == 4);
                mnuNetPlaySpectator.Checked = (currentControllerPort == 0xFF);
            };
        }
Exemplo n.º 2
0
 public static void ToggleServer()
 {
     if (NetplayApi.IsServerRunning())
     {
         Task.Run(() => NetplayApi.StopServer());
     }
     else
     {
         using (frmServerConfig frm = new frmServerConfig()) {
             if (frm.ShowDialog(frmMain.Instance) == DialogResult.OK)
             {
                 NetplayConfig cfg = ConfigManager.Config.Netplay;
                 NetplayApi.StartServer(cfg.ServerPort, cfg.ServerPassword, cfg.PlayerName);
             }
         }
     }
 }