]> git.sesse.net Git - pkanalytics/blobdiff - main.cpp
Make offense/defense a tristate-enum.
[pkanalytics] / main.cpp
index 2caa63fbf3fdb6190dc1de55d3a47b2ac76bb868..74aff9ba95d11cd84595a94d5901a58524177886 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -169,7 +169,7 @@ void MainWindow::insert_event(int button_id)
        EventsModel::Status s = events->get_status_at(t);
 
        ui->event_view->selectionModel()->blockSignals(true);
-       if (s.offense) {
+       if (s.attack_state == EventsModel::Status::OFFENSE) {
                // TODO: Perhaps not if that player already did the last catch?
                ui->event_view->selectRow(events->insert_event(t, player_id, "catch"));
        } else {
@@ -237,10 +237,9 @@ void MainWindow::update_status(uint64_t t)
        EventsModel::Status s = events->get_status_at(t);
        char buf[256];
        const char *offense = "not started";
-       if (s.offense) {
-               assert(!s.defense);
+       if (s.attack_state == EventsModel::Status::OFFENSE) {
                offense = "offense";
-       } else if (s.defense) {
+       } else if (s.attack_state == EventsModel::Status::DEFENSE) {
                offense = "defense";
        }
 
@@ -328,25 +327,25 @@ void MainWindow::update_action_buttons(uint64_t t)
                ui->stoppage->setShortcut(QCoreApplication::translate("MainWindow", "V", nullptr));
        }
 
-       ui->catch_->setEnabled(s.offense && has_selection_with_player);
-       ui->throwaway->setEnabled(s.offense && has_selection_with_player);
-       ui->drop->setEnabled(s.offense && has_selection_with_player);
-       ui->goal->setEnabled(s.offense && has_selection_with_player);
-       ui->offensive_soft_plus->setEnabled(s.offense && has_selection_with_player);
-       ui->offensive_soft_minus->setEnabled(s.offense && has_selection_with_player);
+       ui->catch_->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
+       ui->throwaway->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
+       ui->drop->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
+       ui->goal->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
+       ui->offensive_soft_plus->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
+       ui->offensive_soft_minus->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && has_selection_with_player);
 
        // TODO: be stricter
-       ui->pull->setEnabled(s.defense && s.should_pull && has_selection_with_player);
-       ui->pull_landed->setEnabled(s.defense && has_selection_with_player);
-
-       ui->interception->setEnabled(s.defense && has_selection_with_player);
-       ui->their_throwaway->setEnabled(s.defense);
-       ui->our_defense->setEnabled(s.defense && has_selection_with_player);
-       ui->their_goal->setEnabled(s.defense);
-       ui->defensive_soft_plus->setEnabled(s.defense && has_selection_with_player);
-       ui->defensive_soft_minus->setEnabled(s.defense && has_selection_with_player);
-       ui->their_pull->setEnabled(s.offense && s.should_pull);
-       ui->our_foul->setEnabled(s.defense && has_selection_with_player);
+       ui->pull->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && s.should_pull && has_selection_with_player);
+       ui->pull_landed->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
+
+       ui->interception->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
+       ui->their_throwaway->setEnabled(s.attack_state == EventsModel::Status::DEFENSE);
+       ui->our_defense->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
+       ui->their_goal->setEnabled(s.attack_state == EventsModel::Status::DEFENSE);
+       ui->defensive_soft_plus->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
+       ui->defensive_soft_minus->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
+       ui->their_pull->setEnabled(s.attack_state == EventsModel::Status::OFFENSE && s.should_pull);
+       ui->our_foul->setEnabled(s.attack_state == EventsModel::Status::DEFENSE && has_selection_with_player);
 }
 
 sqlite3 *open_db(const char *filename)