diff options
author | Robert C. Helling <helling@atdotde.de> | 2020-06-02 11:52:25 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-09-13 13:51:07 -0700 |
commit | 3426c6440c0700ca24d34c000f88361a778b0942 (patch) | |
tree | 37ee9234c769c5364b5591c74d84bcfea62e2748 | |
parent | c29e2f972e7c7e577dfea6b7b6bb673c39eff79e (diff) | |
download | subsurface-3426c6440c0700ca24d34c000f88361a778b0942.tar.gz |
Disable SAC factor setting for CCR dives
The SAC factor is only used for minimal gas calculations which
don't make sense in the CCR context.
Additionally, make bailout stop for at least minimum switch
time or problem solving time.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r-- | core/planner.c | 7 | ||||
-rw-r--r-- | desktop-widgets/diveplanner.cpp | 1 |
2 files changed, 5 insertions, 3 deletions
diff --git a/core/planner.c b/core/planner.c index aaabeddf7..ded265c36 100644 --- a/core/planner.c +++ b/core/planner.c @@ -825,11 +825,12 @@ bool plan(struct deco_state *ds, struct diveplan *diveplan, struct dive *dive, i if ((divemode == CCR || divemode == PSCR) && prefs.dobailout) { divemode = OC; po2 = 0; + int bailoutsegment = MAX(prefs.min_switch_duration, 60 * prefs.problemsolvingtime); add_segment(ds, depth_to_bar(depth, dive), get_cylinder(dive, current_cylinder)->gasmix, - prefs.min_switch_duration, po2, divemode, prefs.bottomsac); - plan_add_segment(diveplan, prefs.min_switch_duration, depth, current_cylinder, po2, false, divemode); - clock += prefs.min_switch_duration; + bailoutsegment, po2, divemode, prefs.bottomsac); + plan_add_segment(diveplan, bailoutsegment, depth, current_cylinder, po2, false, divemode); + clock += bailoutsegment; last_segment_min_switch = true; } previous_deco_time = 100000000; diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index ce31fb32d..cd0ae2c2d 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -606,6 +606,7 @@ void PlannerSettingsWidget::setBackgasBreaks(bool dobreaks) void PlannerSettingsWidget::setBailoutVisibility(int mode) { ui.bailout->setDisabled(!(mode == CCR || mode == PSCR)); + ui.sacFactor->setDisabled(mode == CCR); } PlannerDetails::PlannerDetails(QWidget *parent) : QWidget(parent) |