unsigned insert_event(uint64_t t, std::optional<int> player_id, std::optional<int> formation_id, const std::string &type = "unknown"); // Returns the row.
void delete_event(unsigned row);
+ std::string get_event_type(unsigned row) { return events[row].type; }
void set_event_type(unsigned row, const std::string &type);
+ void set_event_formation(unsigned row, int formation_id);
uint64_t get_time(unsigned row) { return events[row].t; }
unsigned get_last_event_pos(uint64_t t) const; // Last event that happened at or before t.
QModelIndex get_last_event_qt(uint64_t t) const {
struct Status {
unsigned our_score, their_score;
enum { NOT_STARTED, OFFENSE, DEFENSE } attack_state;
+ unsigned offensive_formation, defensive_formation;
bool stoppage;
enum { NOT_PULLING, SHOULD_PULL, PULL_IN_AIR } pull_state;
unsigned num_passes;