summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dive.c5
-rw-r--r--profile.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/dive.c b/dive.c
index 9f57aed58..36ee8e78c 100644
--- a/dive.c
+++ b/dive.c
@@ -451,7 +451,12 @@ struct dive *fixup_dive(struct dive *dive)
}
}
if (end < 0)
+ {
+ /* Assume an ascent/descent rate of 9 m/min */
+ int asc_desc_time = dive->maxdepth.mm*60/9000;
+ dive->meandepth.mm = dive->maxdepth.mm*(dive->duration.seconds-asc_desc_time)/dive->duration.seconds;
return dive;
+ }
update_duration(&dive->duration, end - start);
if (start != end)
diff --git a/profile.c b/profile.c
index 137ed6f88..614822809 100644
--- a/profile.c
+++ b/profile.c
@@ -1354,12 +1354,15 @@ void plot(struct graphics_context *gc, cairo_rectangle_int_t *drawing_area, stru
int nr = dive->samples;
if (!nr) {
+ /* The dive has no samples, so create a few fake ones. This assumes an
+ ascent/descent rate of 9 m/min, which is just below the limit for FAST. */
int duration = dive->duration.seconds;
int maxdepth = dive->maxdepth.mm;
+ int asc_desc_time = dive->maxdepth.mm*60/9000;
sample = fake;
- fake[1].time.seconds = duration * 0.05;
+ fake[1].time.seconds = asc_desc_time;
fake[1].depth.mm = maxdepth;
- fake[2].time.seconds = duration * 0.95;
+ fake[2].time.seconds = duration - asc_desc_time;
fake[2].depth.mm = maxdepth;
fake[3].time.seconds = duration * 1.00;
nr = 4;