From ff966f2c1ab7a28bec2aa9f5ca8cca94bb7654e2 Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Sun, 25 May 2014 12:30:51 +0200 Subject: Move mod calculations to a separate helper We use mod calculations on multiple places, so make a separate helper from it with proper types. The "clumsiness" of defining a local variable to pass into the function and out from it comes from the discrepancies in how c and c++ handles initializations of variables in a struct. Thanks goes to Tiago and Linus for pointing me in the right direction. Signed-off-by: Anton Lundin Signed-off-by: Dirk Hohndel --- profile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'profile.c') diff --git a/profile.c b/profile.c index fea03308d..26b267dd0 100644 --- a/profile.c +++ b/profile.c @@ -1155,7 +1155,8 @@ static void calculate_gas_information_new(struct dive *dive, struct plot_info *p * so there is no difference in calculating between OC and CC * END takes O2 + N2 (air) into account ("Narcotic" for trimix dives) * EAD just uses N2 ("Air" for nitrox dives) */ - entry->mod = (prefs.modppO2 / fo2 * 1000 - 1) * 10000; + pressure_t modppO2 = { .mbar = (int) (prefs.modppO2 * 1000) }; + entry->mod = (double) gas_mod(&dive->cylinder[cylinderindex].gasmix, modppO2).mm; entry->end = (entry->depth + 10000) * (1000 - fhe) / 1000.0 - 10000; entry->ead = (entry->depth + 10000) * (1000 - fo2 - fhe) / (double)N2_IN_AIR - 10000; entry->eadd = (entry->depth + 10000) * -- cgit v1.2.3-70-g09d2