summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joakim Bygdell <j.bygdell@gmail.com>2015-03-07 16:37:12 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-03-09 10:39:50 -0700
commit20a82e2b21ecfa6f00b624ebee2cf9958f3190cf (patch)
tree6a1f083067144cdaa210cb6efd2d397a2b4d1fc5
parent237043d6bacd904c58e466116d2cda683dfa63e7 (diff)
downloadsubsurface-20a82e2b21ecfa6f00b624ebee2cf9958f3190cf.tar.gz
Improve gas accounting in the panner
When using gasmixes where the difference is less than 2% the planner can't caclulate casconsumptions correctly. This sets the minimum gasdifference to 1%. Fixes #795 Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--planner.c4
-rw-r--r--qt-ui/diveplanner.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/planner.c b/planner.c
index b6f0c4c5e..d5852dc7b 100644
--- a/planner.c
+++ b/planner.c
@@ -115,7 +115,7 @@ int get_gasidx(struct dive *dive, struct gasmix *mix)
int gasidx = -1;
while (++gasidx < MAX_CYLINDERS)
- if (gasmix_distance(&dive->cylinder[gasidx].gasmix, mix) < 200)
+ if (gasmix_distance(&dive->cylinder[gasidx].gasmix, mix) < 100)
return gasidx;
return -1;
}
@@ -210,7 +210,7 @@ static int verify_gas_exists(struct gasmix mix_in)
cyl = displayed_dive.cylinder + i;
if (cylinder_nodata(cyl))
continue;
- if (gasmix_distance(&cyl->gasmix, &mix_in) < 200)
+ if (gasmix_distance(&cyl->gasmix, &mix_in) < 100)
return i;
}
fprintf(stderr, "this gas %s should have been on the cylinder list\nThings will fail now\n", gasname(&mix_in));
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 434da1fab..7a35daa59 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -1112,7 +1112,7 @@ bool DivePlannerPointsModel::tankInUse(struct gasmix gasmix)
continue;
if (!p.entered) // removing deco gases is ok
continue;
- if (gasmix_distance(&p.gasmix, &gasmix) < 200)
+ if (gasmix_distance(&p.gasmix, &gasmix) < 100)
return true;
}
return false;
@@ -1139,7 +1139,7 @@ void DivePlannerPointsModel::tanksUpdated()
struct gasmix gas;
gas.o2.permille = oldGases.at(i).first;
gas.he.permille = oldGases.at(i).second;
- if (gasmix_distance(&gas, &p.gasmix) < 200) {
+ if (gasmix_distance(&gas, &p.gasmix) < 100) {
p.gasmix.o2.permille = gases.at(i).first;
p.gasmix.he.permille = gases.at(i).second;
}