aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dive.c3
-rw-r--r--dive.h1
-rw-r--r--divelist.c10
-rw-r--r--print.c4
-rw-r--r--profile.c6
-rw-r--r--statistics.c12
6 files changed, 19 insertions, 17 deletions
diff --git a/dive.c b/dive.c
index bccf753df..0d7a6bfd9 100644
--- a/dive.c
+++ b/dive.c
@@ -626,7 +626,8 @@ static void fixup_dive_dc(struct dive *dive, struct divecomputer *dc)
update_depth(&dc->meandepth, depthtime);
update_temperature(&dc->watertemp, mintemp);
update_depth(&dc->maxdepth, maxdepth);
-
+ if (maxdepth > dive->maxdepth.mm)
+ dive->maxdepth.mm = maxdepth;
fixup_dc_events(dc);
}
diff --git a/dive.h b/dive.h
index 87c30733d..14fd29917 100644
--- a/dive.h
+++ b/dive.h
@@ -321,6 +321,7 @@ struct dive {
/* Calculated based on dive computer data */
temperature_t mintemp, maxtemp;
+ depth_t maxdepth;
pressure_t surface_pressure;
int salinity; // kg per 10000 l
diff --git a/divelist.c b/divelist.c
index 417cb1b77..7d887d353 100644
--- a/divelist.c
+++ b/divelist.c
@@ -55,7 +55,7 @@ enum {
DIVE_NR, /* int: dive->nr */
DIVE_DATE, /* timestamp_t: dive->when */
DIVE_RATING, /* int: 0-5 stars */
- DIVE_DEPTH, /* int: dive->dc.maxdepth in mm */
+ DIVE_DEPTH, /* int: dive->maxdepth in mm */
DIVE_DURATION, /* int: in seconds */
DIVE_TEMPERATURE, /* int: in mkelvin */
DIVE_TOTALWEIGHT, /* int: in grams */
@@ -1317,7 +1317,7 @@ static void fill_dive_list(void)
DIVE_INDEX, i,
DIVE_NR, dive->number,
DIVE_DATE, dive->when,
- DIVE_DEPTH, dive->dc.maxdepth,
+ DIVE_DEPTH, dive->maxdepth,
DIVE_DURATION, get_duration_in_sec(dive),
DIVE_LOCATION, dive->location,
DIVE_LOC_ICON, icon,
@@ -1330,7 +1330,7 @@ static void fill_dive_list(void)
DIVE_INDEX, i,
DIVE_NR, dive->number,
DIVE_DATE, dive->when,
- DIVE_DEPTH, dive->dc.maxdepth,
+ DIVE_DEPTH, dive->maxdepth,
DIVE_DURATION, get_duration_in_sec(dive),
DIVE_LOCATION, dive->location,
DIVE_LOC_ICON, icon,
@@ -1673,7 +1673,7 @@ static int copy_tree_node(GtkTreeIter *a, GtkTreeIter *b)
DIVE_NR, &store_dive.number,
DIVE_DATE, &store_dive.when,
DIVE_RATING, &store_dive.rating,
- DIVE_DEPTH, &store_dive.dc.maxdepth,
+ DIVE_DEPTH, &store_dive.maxdepth,
DIVE_DURATION, &store_dive.dc.duration,
DIVE_TEMPERATURE, &store_dive.dc.watertemp.mkelvin,
DIVE_TOTALWEIGHT, &totalweight,
@@ -1690,7 +1690,7 @@ static int copy_tree_node(GtkTreeIter *a, GtkTreeIter *b)
DIVE_NR, store_dive.number,
DIVE_DATE, store_dive.when,
DIVE_RATING, store_dive.rating,
- DIVE_DEPTH, store_dive.dc.maxdepth,
+ DIVE_DEPTH, store_dive.maxdepth,
DIVE_DURATION, store_dive.dc.duration,
DIVE_TEMPERATURE, store_dive.dc.watertemp.mkelvin,
DIVE_TOTALWEIGHT, totalweight,
diff --git a/print.c b/print.c
index 7ddb5b9b2..928fbb4d4 100644
--- a/print.c
+++ b/print.c
@@ -97,7 +97,7 @@ static void show_dive_header(struct dive *dive, cairo_t *cr, double w,
people = "";
}
- depth = get_depth_units(dive->dc.maxdepth.mm, &decimals, &unit);
+ depth = get_depth_units(dive->maxdepth.mm, &decimals, &unit);
snprintf(buffer, sizeof(buffer),
_("Max depth: %.*f %s\nDuration: %d min\n%s"),
decimals, depth, unit,
@@ -585,7 +585,7 @@ static void show_dive_table(struct dive *dive, cairo_t *cr, double w,
curwidth = curwidth + colwidth;
// Col 3: Depth
- depth = get_depth_units(dive->dc.maxdepth.mm, &decimals, &unit);
+ depth = get_depth_units(dive->maxdepth.mm, &decimals, &unit);
len = snprintf(buffer, sizeof(buffer),
"%.*f %s", decimals, depth, unit);
cairo_move_to(cr, curwidth / PANGO_SCALE, 0);
diff --git a/profile.c b/profile.c
index e230ab0ed..eecdffe66 100644
--- a/profile.c
+++ b/profile.c
@@ -1543,9 +1543,9 @@ static void calculate_max_limits(struct dive *dive, struct divecomputer *dc, str
pi = &gc->pi;
memset(pi, 0, sizeof(*pi));
- /* This should probably have been per-dive-computer */
- maxdepth = dive->dc.maxdepth.mm;
- mintemp = maxtemp = dive->dc.watertemp.mkelvin;
+ maxdepth = dive->maxdepth.mm;
+ mintemp = dive->mintemp.mkelvin;
+ maxtemp = dive->maxtemp.mkelvin;
/* Get the per-cylinder maximum pressure if they are manual */
for (cyl = 0; cyl < MAX_CYLINDERS; cyl++) {
diff --git a/statistics.c b/statistics.c
index c08324d54..5c6777f8a 100644
--- a/statistics.c
+++ b/statistics.c
@@ -135,10 +135,10 @@ static void process_dive(struct dive *dp, stats_t *stats)
stats->longest_time.seconds = duration;
if (stats->shortest_time.seconds == 0 || duration < stats->shortest_time.seconds)
stats->shortest_time.seconds = duration;
- if (dp->dc.maxdepth.mm > stats->max_depth.mm)
- stats->max_depth.mm = dp->dc.maxdepth.mm;
- if (stats->min_depth.mm == 0 || dp->dc.maxdepth.mm < stats->min_depth.mm)
- stats->min_depth.mm = dp->dc.maxdepth.mm;
+ if (dp->maxdepth.mm > stats->max_depth.mm)
+ stats->max_depth.mm = dp->maxdepth.mm;
+ if (stats->min_depth.mm == 0 || dp->maxdepth.mm < stats->min_depth.mm)
+ stats->min_depth.mm = dp->maxdepth.mm;
process_temperatures(dp, stats);
@@ -415,7 +415,7 @@ static void process_all_dives(struct dive *dive, struct dive **prev_dive)
memset(&stats, 0, sizeof(stats));
if (dive_table.nr > 0) {
stats.shortest_time.seconds = get_duration_in_sec(dive_table.dives[0]);
- stats.min_depth.mm = dive_table.dives[0]->dc.maxdepth.mm;
+ stats.min_depth.mm = dive_table.dives[0]->maxdepth.mm;
stats.selection_size = dive_table.nr;
}
@@ -554,7 +554,7 @@ static void show_single_dive_stats(struct dive *dive)
get_time_string(dive->when - (prev_dive->when + get_duration_in_sec(prev_dive)), 4));
else
set_label(single_w.surf_intv, _("unknown"));
- value = get_depth_units(dive->dc.maxdepth.mm, &decimals, &unit);
+ value = get_depth_units(dive->maxdepth.mm, &decimals, &unit);
set_label(single_w.max_depth, "%.*f %s", decimals, value, unit);
value = get_depth_units(dive->dc.meandepth.mm, &decimals, &unit);
set_label(single_w.avg_depth, "%.*f %s", decimals, value, unit);