From 01e32107258c895653ddeeddc6081b8c2bdc0a1a Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Sat, 7 Dec 2013 23:54:18 +0100 Subject: Calculate gas consumption for planned dives Signed-off-by: Anton Lundin Signed-off-by: Dirk Hohndel --- qt-ui/diveplanner.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 897ef2920..c6d9fa523 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -1454,6 +1454,20 @@ void DivePlannerPointsModel::createPlan() createTemporaryPlan(); plan(&diveplan, &cache, &tempDive, isPlanner(), &errorString); + copy_cylinders(stagingDive, tempDive); + int mean[MAX_CYLINDERS], duration[MAX_CYLINDERS]; + per_cylinder_mean_depth(tempDive, select_dc(&tempDive->dc), mean, duration); + for (int i = 0; i < MAX_CYLINDERS; i++) { + cylinder_t *cyl = tempDive->cylinder+i; + if (cylinder_none(cyl)) + continue; + // FIXME: The epic assumption that all the cylinders after the first is deco + int sac = i ? diveplan.decosac : diveplan.bottomsac; + cyl->start.mbar = cyl->type.workingpressure.mbar; + int consumption = ((depth_to_mbar(mean[i], tempDive) * duration[i] / 60) * sac) / ( cyl->type.size.mliter / 1000); + cyl->end.mbar = cyl->start.mbar - consumption; + } + mark_divelist_changed(TRUE); // Remove and clean the diveplan, so we don't delete -- cgit v1.2.3-70-g09d2