diff options
author | Rick Walsh <rickmwalsh@gmail.com> | 2015-07-04 22:14:10 +1000 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-07-05 06:37:01 -0700 |
commit | 8c4e1e6bfadaaa90c3f084c606a4ddf0bd30a95b (patch) | |
tree | 05eec4f59be59042a73bf8d66905ab46aa069120 /planner.c | |
parent | 896b7a5e74b4dad8c726b9983f56776bf9995294 (diff) | |
download | subsurface-8c4e1e6bfadaaa90c3f084c606a4ddf0bd30a95b.tar.gz |
Read planner preferences when we use them
Read and use the last_stop preference in the plan function.
Read the plan notes preferences and set variables (plan_verbatim,
plan_display_runtime, plan_display_duration, and plan_display_transitions)
in the add_plan_to_notes function. Don't read the preferences and set
variables otherwise. Both plan and add_plan_to_notes functions are called
on data change.
Previous behaviour was:
- Set variables on declaration
- Reset variables in plan function (even variables that only relate to
planner notes output)
- Changing a preference triggered set_xxx function which sets variable,
then plan function, which sets variable again.
Apart from being inefficient, the previous behaviour made it difficult to
track down where and when variables were set.
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'planner.c')
-rw-r--r-- | planner.c | 48 |
1 files changed, 10 insertions, 38 deletions
@@ -24,7 +24,7 @@ int decostoplevels[] = { 0, 3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000, 180000, 190000, 200000, 220000, 240000, 260000, 280000, 300000, 320000, 340000, 360000, 380000 }; double plangflow, plangfhigh; -bool plan_verbatim = false, plan_display_runtime = true, plan_display_duration = false, plan_display_transitions = false; +bool plan_verbatim, plan_display_runtime, plan_display_duration, plan_display_transitions; const char *disclaimer; @@ -66,34 +66,6 @@ bool diveplan_empty(struct diveplan *diveplan) return true; } -void set_last_stop(bool last_stop_6m) -{ - if (last_stop_6m == true) - decostoplevels[1] = 6000; - else - decostoplevels[1] = 3000; -} - -void set_verbatim(bool verbatim) -{ - plan_verbatim = verbatim; -} - -void set_display_runtime(bool display) -{ - plan_display_runtime = display; -} - -void set_display_duration(bool display) -{ - plan_display_duration = display; -} - -void set_display_transitions(bool display) -{ - plan_display_transitions = display; -} - /* get the gas at a certain time during the dive */ void get_gas_at_time(struct dive *dive, struct divecomputer *dc, duration_t time, struct gasmix *gas) { @@ -528,6 +500,11 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool bool gaschange_before; struct divedatapoint *nextdp = NULL; + plan_verbatim = prefs.verbatim_plan; + plan_display_runtime = prefs.display_runtime; + plan_display_duration = prefs.display_duration; + plan_display_transitions = prefs.display_transitions; + disclaimer = translate("gettextFromC", "DISCLAIMER / WARNING: THIS IS A NEW IMPLEMENTATION OF THE BUHLMANN " "ALGORITHM AND A DIVE PLANNER IMPLEMENTATION BASED ON THAT WHICH HAS " "RECEIVED ONLY A LIMITED AMOUNT OF TESTING. WE STRONGLY RECOMMEND NOT TO " @@ -906,16 +883,11 @@ bool plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool diveplan->surface_pressure = SURFACE_PRESSURE; create_dive_from_plan(diveplan, is_planner); - if (prefs.verbatim_plan) - plan_verbatim = true; - if (prefs.display_runtime) - plan_display_runtime = true; - if (prefs.display_duration) - plan_display_duration = true; - if (prefs.display_transitions) - plan_display_transitions = true; - if (prefs.last_stop) + if (prefs.last_stop) { decostoplevels[1] = 6000; + } else { + decostoplevels[1] = 3000; + } /* Let's start at the last 'sample', i.e. the last manually entered waypoint. */ sample = &displayed_dive.dc.sample[displayed_dive.dc.samples - 1]; |