summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/device.c4
-rw-r--r--core/planner.c5
2 files changed, 6 insertions, 3 deletions
diff --git a/core/device.c b/core/device.c
index 57f7576e1..a22815633 100644
--- a/core/device.c
+++ b/core/device.c
@@ -146,7 +146,7 @@ void fake_dc(struct divecomputer *dc)
if (avg_d == 0) {
/* we try for a sane slope, but bow to the insanity of
* the user supplied data */
- fill_samples_no_avg(fake, max_d, max_t, MAX(2.0 * max_d / max_t, 5000.0 / 60));
+ fill_samples_no_avg(fake, max_d, max_t, MAX(2.0 * max_d / max_t, (double)prefs.ascratelast6m));
if (fake[3].time.seconds == 0) { // just a 4 point profile
dc->samples = 4;
fake[3].time.seconds = max_t;
@@ -165,7 +165,7 @@ void fake_dc(struct divecomputer *dc)
* Ok, first we try a basic profile with a specific ascent
* rate (5 meters per minute) and d_frac (1/3).
*/
- if (fill_samples(fake, max_d, avg_d, max_t, 5000.0 / 60, 0.33))
+ if (fill_samples(fake, max_d, avg_d, max_t, (double)prefs.ascratelast6m, 0.33))
return;
/*
diff --git a/core/planner.c b/core/planner.c
index b4b842fcf..93f0c233b 100644
--- a/core/planner.c
+++ b/core/planner.c
@@ -732,7 +732,10 @@ bool plan(struct deco_state *ds, struct diveplan *diveplan, struct dive *dive, i
/* if all we wanted was the dive just get us back to the surface */
if (!is_planner) {
- transitiontime = depth / 75; /* this still needs to be made configurable */
+ /* Attn: for manually entered dives, we depend on the last segment having the
+ * same ascent rate as in fake_dc(). If you change it here, also change it there.
+ */
+ transitiontime = lrint(depth / (double)prefs.ascratelast6m);
plan_add_segment(diveplan, transitiontime, 0, current_cylinder, po2, false);
create_dive_from_plan(diveplan, dive, is_planner);
return false;