From 4a9433864e6b8bb83746f64b6cf54c7be60cc23c Mon Sep 17 00:00:00 2001 From: Rick Walsh Date: Sun, 30 Aug 2015 00:07:22 +1000 Subject: [PATCH] VPM-B: Don't break the ceiling due to ongassing on ascent Signed-off-by: Rick Walsh Signed-off-by: Dirk Hohndel --- planner.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/planner.c b/planner.c index 95052a9a7..a0231a3ae 100644 --- a/planner.c +++ b/planner.c @@ -876,11 +876,11 @@ bool trial_ascent(int trial_depth, int stoplevel, int avg_depth, int bottom_time bool clear_to_ascend = true; char *trial_cache = NULL; - // For VPM-B it is not relevant if we would violate a ceiling during ascent to the next stop but - // if the next stop is below the ceiling at the start of the ascent (thus the offgasing during - // the ascent is ignored. - if (prefs.deco_mode == VPMB) - return (deco_allowed_depth(tissue_tolerance, surface_pressure, &displayed_dive, 1) <= stoplevel); + // For consistency with other VPM-B implementations, we should not start the ascent while the ceiling is + // deeper than the next stop (thus the offgasing during the ascent is ignored). + // However, we still need to make sure we don't break the ceiling due to on-gassing during ascent. + if (prefs.deco_mode == VPMB && (deco_allowed_depth(tissue_tolerance, surface_pressure, &displayed_dive, 1) > stoplevel)) + return false; cache_deco_state(tissue_tolerance, &trial_cache); while (trial_depth > stoplevel) {