Exemplo n.º 1
0
        private void btnControl_Click(object sender, EventArgs e)
        {
            if (_rec_state == RecStates.IDLE)
            {
                // Check that endpoints type selected
                if (!ctrlRouteDetails.CheckEndpoints())
                {
                    return;
                }

                // Ask for reset if table has data and last row not selected
                // If last row selected than keep appending data
                bool ask_reset = (dgWaypoints.RowCount > 1) &&
                                 (dgWaypoints.Rows[dgWaypoints.RowCount - 1].Selected == false);

                if (!((AbstractListEndpoint)ctrlRouteDetails.cbTypeA.SelectedItem).Check ||
                    (!(CheckInGame() && (!ask_reset || ResetRoute()))))
                {
                    return;
                }

#if DEBUG
                if (ProcessManager.Player != null)
                {
#endif
                if (ProcessManager.Player.StateMachine.IsRunning)
                {
                    ShowErrorMessage("Bot is running. Stop it first before recording");
                    return;
                }

                // Set from zone
                ProcessManager.Player.SetCurrentMapInfo();
                ctrlRouteDetails.tbZoneA.Text = ProcessManager.Player.ZoneText;

                // Load RouteRecordingState and start
                _route_rec_state = new RouteRecordingState(RecordWp,
                                                           numRecDistance.Value, ((AbstractListEndpoint)ctrlRouteDetails.
                                                                                  cbTypeA.SelectedItem).EType == EndpointTypes.GRAVEYARD);
                ProcessManager.Player.StateMachine.
                InitState = new TestGlobalState(_route_rec_state);

#if DEBUG
            }
            else
            {
                ctrlRouteDetails.tbZoneA.Text = "Teldrassil";
            }
#endif
                btnControl.Text = "Stop";
                btnReset.Text   = "Suspend";

                // Last call
                SetControls(RecStates.RECORDING);
            }
            else
            {
                // Stop recording
                // First call
                SetControls(RecStates.IDLE);

#if DEBUG
                ctrlRouteDetails.tbZoneB.Text = "Teldrassil";
                if (ProcessManager.Player != null)
                {
#endif
                // Put state machine back in idle status
                _route_rec_state.Exit(ProcessManager.Player);
                ProcessManager.Player.StateMachine.IsRunning = false;

                ProcessManager.Player.SetCurrentMapInfo();
                ctrlRouteDetails.tbZoneB.Text = ProcessManager.Player.ZoneText;

#if DEBUG
            }
#endif
                btnControl.Text = "Start";
                btnReset.Text   = "Reset";
            }
        }
Exemplo n.º 2
0
        private void btnControl_Click(object sender, EventArgs e)
        {
            if (_rec_state == RecStates.IDLE)
            {
                // Check that endpoints type selected
                if (!ctrlRouteDetails.CheckEndpoints())
                    return;

                // Ask for reset if table has data and last row not selected
                // If last row selected than keep appending data
                bool ask_reset = (dgWaypoints.RowCount > 1) &&
                            (dgWaypoints.Rows[dgWaypoints.RowCount - 1].Selected == false);

                if (!((AbstractListEndpoint)ctrlRouteDetails.cbTypeA.SelectedItem).Check ||
                    (!(CheckInGame() && (!ask_reset || ResetRoute()))))
                    return;

            #if DEBUG
                if (ProcessManager.Player != null)
                {
            #endif
                    if (ProcessManager.Player.StateMachine.IsRunning)
                    {
                        ShowErrorMessage("Bot is running. Stop it first before recording");
                        return;
                    }

                    // Set from zone
                    ProcessManager.Player.SetCurrentMapInfo();
                    ctrlRouteDetails.tbZoneA.Text = ProcessManager.Player.ZoneText;

                    // Load RouteRecordingState and start
                    _route_rec_state = new RouteRecordingState(RecordWp,
                        numRecDistance.Value, ((AbstractListEndpoint)ctrlRouteDetails.
                                cbTypeA.SelectedItem).EType == EndpointTypes.GRAVEYARD);
                    ProcessManager.Player.StateMachine.
                            InitState = new TestGlobalState(_route_rec_state);

            #if DEBUG
                }
                else ctrlRouteDetails.tbZoneA.Text = "Teldrassil";
            #endif
                btnControl.Text = "Stop";
                btnReset.Text = "Suspend";

                // Last call
                SetControls(RecStates.RECORDING);
            }
            else
            {
                // Stop recording
                // First call
                SetControls(RecStates.IDLE);

            #if DEBUG
                ctrlRouteDetails.tbZoneB.Text = "Teldrassil";
                if (ProcessManager.Player != null)
                {
            #endif
                // Put state machine back in idle status
                _route_rec_state.Exit(ProcessManager.Player);
                ProcessManager.Player.StateMachine.IsRunning = false;

                ProcessManager.Player.SetCurrentMapInfo();
                ctrlRouteDetails.tbZoneB.Text = ProcessManager.Player.ZoneText;

            #if DEBUG
                }
            #endif
                btnControl.Text = "Start";
                btnReset.Text = "Reset";
            }
        }