diff options
author | Robert Helling <helling@atdotde.de> | 2017-02-03 07:31:30 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-02-03 07:41:35 -0800 |
commit | 8a8315d6fee28e71c63062c3332d82e1071c70d4 (patch) | |
tree | fb030f2d3b33a0637f2a8b84e5745fb7ec74e5c6 | |
parent | 08c42813e5d3af8ca702be4333daf46cc14c1d39 (diff) | |
download | subsurface-8a8315d6fee28e71c63062c3332d82e1071c70d4.tar.gz |
Correct "When merging planned dives keep all cylinders"
When merging a real dive with a planned dive (for comparison),
we should not try to be clever in merging similar cylinders,
rather keep the union of both cylinder sets as the two versions
of the dive might differ in exctly which gas and how much of it
was used.
Increase MAX_CYLINDERS to 20 to make room for this. We warn if we
exceed this number.
[Dirk Hohndel: I had mistakenly pushed out an earlier version of this
commit, so this fixes things up to the final version]
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | core/dive.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/dive.c b/core/dive.c index 19a950482..3c2c2afde 100644 --- a/core/dive.c +++ b/core/dive.c @@ -2061,8 +2061,15 @@ static void merge_cylinders(struct dive *res, struct dive *a, struct dive *b) mapping[j] = i; ++j; } - while (j < MAX_CYLINDERS) + bool warn = false; + while (j < MAX_CYLINDERS) { + if (is_cylinder_used(b, j)) + warn = true; mapping[j++] = 0; + } + if (warn) { + report_error("Could not merge all cylinders as number exceeds %d", MAX_CYLINDERS); + } cylinder_renumber(b, mapping); } } |