Status s;
s.our_score = 0;
s.their_score = 0;
- s.offense = false;
- s.defense = false;
+ s.attack_state = Status::NOT_STARTED;
s.stoppage = false;
s.should_pull = true;
uint64_t last_gained_possession = 0;
uint64_t time_spent_in_stoppage = 0;
unsigned num_touches = 0;
- auto set_offense = [&s] { s.offense = true; s.defense = false; };
- auto set_defense = [&s] { s.offense = false; s.defense = true; };
+ auto set_offense = [&s] { s.attack_state = Status::OFFENSE; };
+ auto set_defense = [&s] { s.attack_state = Status::DEFENSE; };
for (const Event &e : events) {
if (e.t > t) {
}
s.num_passes = (num_touches == 0) ? 0 : num_touches - 1;
- s.possession_sec = (s.offense && last_gained_possession != 0 && num_touches != 0) ? (t - last_gained_possession - time_spent_in_stoppage) / 1000 : 0;
- s.stoppage_sec = (s.offense && last_gained_possession != 0 && num_touches != 0) ? time_spent_in_stoppage / 1000 : 0;
+ s.possession_sec = (s.attack_state == Status::OFFENSE && last_gained_possession != 0 && num_touches != 0) ? (t - last_gained_possession - time_spent_in_stoppage) / 1000 : 0;
+ s.stoppage_sec = (s.attack_state == Status::OFFENSE && last_gained_possession != 0 && num_touches != 0) ? time_spent_in_stoppage / 1000 : 0;
return s;
}