mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									237043d6ba
								
							
						
					
					
						commit
						20a82e2b21
					
				
					 2 changed files with 4 additions and 4 deletions
				
			
		|  | @ -115,7 +115,7 @@ int get_gasidx(struct dive *dive, struct gasmix *mix) | ||||||
| 	int gasidx = -1; | 	int gasidx = -1; | ||||||
| 
 | 
 | ||||||
| 	while (++gasidx < MAX_CYLINDERS) | 	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 gasidx; | ||||||
| 	return -1; | 	return -1; | ||||||
| } | } | ||||||
|  | @ -210,7 +210,7 @@ static int verify_gas_exists(struct gasmix mix_in) | ||||||
| 		cyl = displayed_dive.cylinder + i; | 		cyl = displayed_dive.cylinder + i; | ||||||
| 		if (cylinder_nodata(cyl)) | 		if (cylinder_nodata(cyl)) | ||||||
| 			continue; | 			continue; | ||||||
| 		if (gasmix_distance(&cyl->gasmix, &mix_in) < 200) | 		if (gasmix_distance(&cyl->gasmix, &mix_in) < 100) | ||||||
| 			return i; | 			return i; | ||||||
| 	} | 	} | ||||||
| 	fprintf(stderr, "this gas %s should have been on the cylinder list\nThings will fail now\n", gasname(&mix_in)); | 	fprintf(stderr, "this gas %s should have been on the cylinder list\nThings will fail now\n", gasname(&mix_in)); | ||||||
|  |  | ||||||
|  | @ -1112,7 +1112,7 @@ bool DivePlannerPointsModel::tankInUse(struct gasmix gasmix) | ||||||
| 			continue; | 			continue; | ||||||
| 		if (!p.entered) // removing deco gases is ok
 | 		if (!p.entered) // removing deco gases is ok
 | ||||||
| 			continue; | 			continue; | ||||||
| 		if (gasmix_distance(&p.gasmix, &gasmix) < 200) | 		if (gasmix_distance(&p.gasmix, &gasmix) < 100) | ||||||
| 			return true; | 			return true; | ||||||
| 	} | 	} | ||||||
| 	return false; | 	return false; | ||||||
|  | @ -1139,7 +1139,7 @@ void DivePlannerPointsModel::tanksUpdated() | ||||||
| 					struct gasmix gas; | 					struct gasmix gas; | ||||||
| 					gas.o2.permille = oldGases.at(i).first; | 					gas.o2.permille = oldGases.at(i).first; | ||||||
| 					gas.he.permille = oldGases.at(i).second; | 					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.o2.permille = gases.at(i).first; | ||||||
| 						p.gasmix.he.permille = gases.at(i).second; | 						p.gasmix.he.permille = gases.at(i).second; | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue