X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=events.cpp;h=88b0d4a7d0273dc7a9a727e41b49409afd981d54;hb=86c1674e30b19750b55581743c3bdc9a2853dd13;hp=cbdb30344e21e2c221b0ae7a7ca7cbba8e76dc08;hpb=812ca0c734b4b297a5d6be8c171863491568e787;p=pkanalytics diff --git a/events.cpp b/events.cpp index cbdb303..88b0d4a 100644 --- a/events.cpp +++ b/events.cpp @@ -79,6 +79,8 @@ QVariant EventsModel::data(const QModelIndex &index, int role) const type = "On defense"; } else if (type == "Catch") { type = "Catch/take"; + } else if (type == "Was d") { + type = "Was d-ed"; } return QString::fromUtf8(type); @@ -295,6 +297,34 @@ void EventsModel::set_event_type(unsigned pos, const string &type) } } +void EventsModel::set_event_formation(unsigned pos, int formation_id) +{ + events[pos].formation_id = formation_id; + emit dataChanged(createIndex(pos, 0), createIndex(pos, 2)); + + sqlite3_stmt *stmt; + int ret = sqlite3_prepare_v2(db, "UPDATE event SET formation=? WHERE event=?", -1, &stmt, 0); + if (ret != SQLITE_OK) { + fprintf(stderr, "INSERT prepare: %s\n", sqlite3_errmsg(db)); + abort(); + } + + sqlite3_bind_int64(stmt, 1, formation_id); + sqlite3_bind_int64(stmt, 2, events[pos].event_id); + + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + fprintf(stderr, "UPDATE step: %s\n", sqlite3_errmsg(db)); + abort(); + } + + ret = sqlite3_finalize(stmt); + if (ret != SQLITE_OK) { + fprintf(stderr, "UPDATE finalize: %s\n", sqlite3_errmsg(db)); + abort(); + } +} + unsigned EventsModel::get_last_event_pos(uint64_t t) const { // upper_bound() gives first where e.t > t, @@ -375,7 +405,7 @@ EventsModel::Status EventsModel::get_status_at(uint64_t t) num_touches = 0; time_spent_in_stoppage = 0; } - if (e.type == "drop" || e.type == "throwaway") { + if (e.type == "drop" || e.type == "was_d" || e.type == "throwaway") { set_defense(); num_touches = 0; } @@ -493,7 +523,7 @@ void EventsModel::set_formation_at(uint64_t t, bool offense, unsigned formation) e.type == "stoppage" || e.type == "reset" || e.type == "set_defense" || e.type == "set_offense" || e.type == "throwaway" || e.type == "their_throwaway" || - e.type == "drop" || e.type == "defense" || e.type == "interception" || + e.type == "drop" || e.type == "was_d" || e.type == "defense" || e.type == "interception" || e.type == "pull" || e.type == "pull_landed" || e.type == "pull_oob" || e.type == "their_pull" || e.type == "formation_offense" || e.type == "formation_defense") { backdate_point = e.t + 1;