diff options
author | Robert C. Helling <helling@atdotde.de> | 2018-06-17 23:21:53 +0200 |
---|---|---|
committer | Robert C. Helling <helling@atdotde.de> | 2018-06-24 09:35:55 +0200 |
commit | 8406cbf1876658dc11f41784c3336908b3dc49a7 (patch) | |
tree | f5b8cf3920d81a479ffde6ac045a3ec37f74a6ac | |
parent | 4157365c9650007dad231143d67d559ab885b31d (diff) | |
download | subsurface-8406cbf1876658dc11f41784c3336908b3dc49a7.tar.gz |
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 <helling@atdotde.de>
-rw-r--r-- | core/planner.c | 2 | ||||
-rw-r--r-- | 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; } |