mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 00:03:24 +00:00
Planner: make sure all cylinders have a sane depth
When copying cylinders from an existing dive, the mod of the cylinder might not be set. Assume a conservative 1.4 pO2 and fill in those data. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
26dd86e437
commit
4dfe12e508
1 changed files with 11 additions and 2 deletions
13
equipment.c
13
equipment.c
|
@ -182,11 +182,20 @@ void remove_weightsystem(struct dive *dive, int idx)
|
||||||
memset(ws + nr, 0, sizeof(*ws));
|
memset(ws + nr, 0, sizeof(*ws));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* when planning a dive we need to make sure that all cylinders have a sane depth assigned
|
||||||
|
* and that the pressures are reset to start = end = workingpressure */
|
||||||
void reset_cylinders(struct dive *dive)
|
void reset_cylinders(struct dive *dive)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
pressure_t pO2 = {.mbar = 1400};
|
||||||
|
|
||||||
for (i = 0; i < MAX_CYLINDERS; i++) {
|
for (i = 0; i < MAX_CYLINDERS; i++) {
|
||||||
if (dive->cylinder[i].type.workingpressure.mbar)
|
cylinder_t *cyl = &dive->cylinder[i];
|
||||||
dive->cylinder[i].start.mbar = dive->cylinder[i].end.mbar = dive->cylinder[i].type.workingpressure.mbar;
|
if (cylinder_none(cyl))
|
||||||
|
continue;
|
||||||
|
if (cyl->depth.mm == 0) /* if the gas doesn't give a mod, assume conservative pO2 */
|
||||||
|
cyl->depth = gas_mod(&cyl->gasmix, pO2);
|
||||||
|
if (cyl->type.workingpressure.mbar)
|
||||||
|
cyl->start.mbar = cyl->end.mbar = cyl->type.workingpressure.mbar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue