mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Planner: handle zero length segments when replanning
When setting up a dive for replanning, we ignored zero length segments as those tend to be generated by gas changes. But it is possible to enter those in the planner and the replanning should not ignore those. So be more clever about gas changes. Let's add 10 seconds so we are not at two depths at the same time and help since add_stop also does not like zero length segments (it thinks we are trying to replace a waypoint). Fixes #2901 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									c5b1fd9f53
								
							
						
					
					
						commit
						62d87e9d25
					
				
					 3 changed files with 8 additions and 2 deletions
				
			
		|  | @ -128,6 +128,7 @@ void DivePlannerPointsModel::loadFromDive(dive *d) | |||
| 	int plansamples = dc->samples <= 100 ? dc->samples : 100; | ||||
| 	int j = 0; | ||||
| 	int cylinderid = 0; | ||||
| 
 | ||||
| 	last_sp.mbar = 0; | ||||
| 	for (int i = 0; i < plansamples - 1; i++) { | ||||
| 		if (dc->last_manual_time.seconds && dc->last_manual_time.seconds > 120 && lasttime.seconds >= dc->last_manual_time.seconds) | ||||
|  | @ -145,7 +146,11 @@ void DivePlannerPointsModel::loadFromDive(dive *d) | |||
| 		} | ||||
| 		if (samplecount) { | ||||
| 			cylinderid = get_cylinderid_at_time(d, dc, lasttime); | ||||
| 			if (newtime.seconds - lastrecordedtime.seconds > 10) { | ||||
| 			duration_t nexttime = newtime; | ||||
| 			++nexttime.seconds; | ||||
| 			if (newtime.seconds - lastrecordedtime.seconds > 10 || cylinderid == get_cylinderid_at_time(d, dc, nexttime)) { | ||||
| 				if (newtime.seconds == lastrecordedtime.seconds) | ||||
| 					newtime.seconds += 10; | ||||
| 				current_divemode = get_current_divemode(dc, newtime.seconds - 1, &evd, ¤t_divemode); | ||||
| 				addStop(depthsum / samplecount, newtime.seconds, cylinderid, last_sp.mbar, true, current_divemode); | ||||
| 				lastrecordedtime = newtime; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue