From 8406cbf1876658dc11f41784c3336908b3dc49a7 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Sun, 17 Jun 2018 23:21:53 +0200 Subject: [PATCH] Fix interpretation of dive mode changes upon replan ... by taking into acount that dive planner points refer to the sement before the waypoint (while change mode events are concerned with the future of a waypoint). Signed-off-by: Robert C. Helling --- core/planner.c | 2 -- qt-models/diveplannermodel.cpp | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/planner.c b/core/planner.c index cc6874c3f..3821890e3 100644 --- a/core/planner.c +++ b/core/planner.c @@ -303,8 +303,6 @@ static void create_dive_from_plan(struct diveplan *diveplan, struct dive *dive, lastcylid = 0; while (dp) { int po2 = dp->setpoint; - if (dp->setpoint) - type = CCR; int time = dp->time; depth_t depth = dp->depth; diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp index f14eb7ce2..435571e46 100644 --- a/qt-models/diveplannermodel.cpp +++ b/qt-models/diveplannermodel.cpp @@ -115,9 +115,10 @@ void DivePlannerPointsModel::loadFromDive(dive *d) break; while (j * plansamples <= i * dc->samples) { const sample &s = dc->sample[j]; + const sample &prev = dc->sample[j-1]; if (s.time.seconds != 0 && (!hasMarkedSamples || s.manually_entered)) { depthsum += s.depth.mm; - last_sp = s.setpoint; + last_sp = prev.setpoint; ++samplecount; newtime = s.time; } @@ -126,7 +127,7 @@ void DivePlannerPointsModel::loadFromDive(dive *d) if (samplecount) { cylinderid = get_cylinderid_at_time(d, dc, lasttime); if (newtime.seconds - lastrecordedtime.seconds > 10) { - current_divemode = get_current_divemode(dc, newtime.seconds + 1, &evd, ¤t_divemode); + current_divemode = get_current_divemode(dc, newtime.seconds - 1, &evd, ¤t_divemode); addStop(depthsum / samplecount, newtime.seconds, cylinderid, last_sp.mbar, true, current_divemode); lastrecordedtime = newtime; }