diff options
author | Robert C. Helling <helling@atdotde.de> | 2017-02-02 20:29:44 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-02-02 12:37:24 -0800 |
commit | 1d8662006cbb5edae941315e30ede381c23a817b (patch) | |
tree | 88ff6ec54d5e4ed4e29f3b93bea04292ef986e5f /core/statistics.c | |
parent | a031dbbbd8fbd8a913e517cf1bea5d61311bf266 (diff) | |
download | subsurface-1d8662006cbb5edae941315e30ede381c23a817b.tar.gz |
In statistics, ignore gas use of planned dives
When merged with real dives, those would double count otherwise.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Diffstat (limited to 'core/statistics.c')
-rw-r--r-- | core/statistics.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/statistics.c b/core/statistics.c index 62a4d737f..6a0ff9f94 100644 --- a/core/statistics.c +++ b/core/statistics.c @@ -326,16 +326,18 @@ void get_selected_dives_text(char *buffer, size_t size) #define SOME_GAS 5000 // 5bar drop in cylinder pressure makes cylinder used -bool is_cylinder_used(struct dive *dive, int idx) +bool is_cylinder_used(struct dive *dive, int idx, bool ignore_plannned) { struct divecomputer *dc; bool firstGasExplicit = false; if (cylinder_none(&dive->cylinder[idx])) return false; - if ((dive->cylinder[idx].start.mbar - dive->cylinder[idx].end.mbar) > SOME_GAS) + if ((dive->cylinder[idx].start.mbar - dive->cylinder[idx].end.mbar) > SOME_GAS && !ignore_plannned) return true; for_each_dc(dive, dc) { + if (ignore_plannned && !strcmp(dc->model, "planned dive")) + continue; struct event *event = get_next_event(dc->events, "gaschange"); while (event) { if (dc->sample && (event->time.seconds == 0 || @@ -360,7 +362,7 @@ void get_gas_used(struct dive *dive, volume_t gases[MAX_CYLINDERS]) cylinder_t *cyl = &dive->cylinder[idx]; pressure_t start, end; - if (!is_cylinder_used(dive, idx)) + if (!is_cylinder_used(dive, idx, true)) continue; start = cyl->start.mbar ? cyl->start : cyl->sample_start; |