diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-02-12 17:52:31 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-02-17 07:26:55 -0800 |
commit | 03a7e65cf02602e95ac58b217cc9364546361d2f (patch) | |
tree | df76bb46756ce14ee8ecd12289921e956e3b9243 | |
parent | 8103e947aa80da275afe692bc19fa7bb88ccd033 (diff) | |
download | subsurface-03a7e65cf02602e95ac58b217cc9364546361d2f.tar.gz |
planner: pass in_planner argument to clear_deco()
To remove reliance on global state, pass an "in_planner" argument
to clear_deco(). Thus, calls to in_planner() can be removed.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | core/deco.c | 4 | ||||
-rw-r--r-- | core/deco.h | 2 | ||||
-rw-r--r-- | core/divelist.c | 4 | ||||
-rw-r--r-- | core/planner.c | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/core/deco.c b/core/deco.c index a997668c2..9e58a914e 100644 --- a/core/deco.c +++ b/core/deco.c @@ -503,14 +503,14 @@ void clear_vpmb_state(struct deco_state *ds) ds->max_bottom_ceiling_pressure.mbar = 0; } -void clear_deco(struct deco_state *ds, double surface_pressure) +void clear_deco(struct deco_state *ds, double surface_pressure, bool in_planner) { int ci; memset(ds, 0, sizeof(*ds)); clear_vpmb_state(ds); for (ci = 0; ci < 16; ci++) { - ds->tissue_n2_sat[ci] = (surface_pressure - ((in_planner() && (decoMode() == VPMB)) ? WV_PRESSURE_SCHREINER : WV_PRESSURE)) * N2_IN_AIR / 1000; + ds->tissue_n2_sat[ci] = (surface_pressure - ((in_planner && (decoMode() == VPMB)) ? WV_PRESSURE_SCHREINER : WV_PRESSURE)) * N2_IN_AIR / 1000; ds->tissue_he_sat[ci] = 0.0; ds->max_n2_crushing_pressure[ci] = 0.0; ds->max_he_crushing_pressure[ci] = 0.0; diff --git a/core/deco.h b/core/deco.h index dfe59bea2..cc3dacfc2 100644 --- a/core/deco.h +++ b/core/deco.h @@ -52,7 +52,7 @@ extern const double buehlmann_N2_t_halflife[]; extern int deco_allowed_depth(double tissues_tolerance, double surface_pressure, const struct dive *dive, bool smooth); double get_gf(struct deco_state *ds, double ambpressure_bar, const struct dive *dive); -extern void clear_deco(struct deco_state *ds, double surface_pressure); +extern void clear_deco(struct deco_state *ds, double surface_pressure, bool in_planner); extern void dump_tissues(struct deco_state *ds); extern void set_gf(short gflow, short gfhigh); extern void set_vpmb_conservatism(short conservatism); diff --git a/core/divelist.c b/core/divelist.c index 583451e8f..ff7561f92 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -521,7 +521,7 @@ int init_decompression(struct deco_state *ds, const struct dive *dive, bool in_p #if DECO_CALC_DEBUG & 2 printf("Init deco\n"); #endif - clear_deco(ds, surface_pressure); + clear_deco(ds, surface_pressure, in_planner); deco_init = true; #if DECO_CALC_DEBUG & 2 printf("Tissues after init:\n"); @@ -559,7 +559,7 @@ int init_decompression(struct deco_state *ds, const struct dive *dive, bool in_p #if DECO_CALC_DEBUG & 2 printf("Init deco\n"); #endif - clear_deco(ds, surface_pressure); + clear_deco(ds, surface_pressure, in_planner); #if DECO_CALC_DEBUG & 2 printf("Tissues after no previous dive, surface time set to 48h:\n"); dump_tissues(ds); diff --git a/core/planner.c b/core/planner.c index e5479b6fd..973b6ee5f 100644 --- a/core/planner.c +++ b/core/planner.c @@ -678,7 +678,7 @@ bool plan(struct deco_state *ds, struct diveplan *diveplan, struct dive *dive, i if (!diveplan->surface_pressure) diveplan->surface_pressure = SURFACE_PRESSURE; dive->surface_pressure.mbar = diveplan->surface_pressure; - clear_deco(ds, dive->surface_pressure.mbar / 1000.0); + clear_deco(ds, dive->surface_pressure.mbar / 1000.0, true); ds->max_bottom_ceiling_pressure.mbar = ds->first_ceiling_pressure.mbar = 0; create_dive_from_plan(diveplan, dive, is_planner); |