# HG changeset patch
# User Jan Mulder <jlmulder@xs4all.nl>
# Date 1553757977 -3600
# Node ID 51a3aeffc6b3f8b290408eb684177eac5189dcf4
# Parent  d539ed9aa5b850ffbfdf5e12261048669bc12c64
Bugfix: handle rounding of TTS and future TTS consistently

There was a bug with futureTTS with an extended bottom time of 0
minutes (so same TTS and the main schedule) being not in sync with
each other. This was simply caused by inconsistent rounding of
seconds to minute conversions. And when fixing this, I noticed
also inconsistent handling of huge 1000+ minutes TTS values. At
some places, the presentation changed to hours notation, and other
places not. I doubt that any OSTC4 user ever made a dive that had
more than 1000 minutes of deco, but fixed this presentation as
well, simply because of consistency.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>

diff -r d539ed9aa5b8 -r 51a3aeffc6b3 Discovery/Src/t3.c
--- a/Discovery/Src/t3.c	Wed Mar 27 15:12:26 2019 +0100
+++ b/Discovery/Src/t3.c	Thu Mar 28 08:26:17 2019 +0100
@@ -855,9 +855,9 @@
         if(pDecoinfo->output_time_to_surface_seconds)
         {
             if(pDecoinfo->output_time_to_surface_seconds < 1000 * 60)
-                snprintf(text,TEXTSIZE,"\020\003\002%i'",(pDecoinfo->output_time_to_surface_seconds + 30)/ 60);
+                snprintf(text,TEXTSIZE,"\020\003\002%i'",(pDecoinfo->output_time_to_surface_seconds + 59)/ 60);
             else
-                snprintf(text,TEXTSIZE,"\020\003\002%ih",pDecoinfo->output_time_to_surface_seconds / 3600);
+                snprintf(text,TEXTSIZE,"\020\003\002%ih",(pDecoinfo->output_time_to_surface_seconds + 59)/ 3600);
             t3_basics_colorscheme_mod(text);
             GFX_write_string(&FontT105,tXc1,text,1);
         }
diff -r d539ed9aa5b8 -r 51a3aeffc6b3 Discovery/Src/t7.c
--- a/Discovery/Src/t7.c	Wed Mar 27 15:12:26 2019 +0100
+++ b/Discovery/Src/t7.c	Thu Mar 28 08:26:17 2019 +0100
@@ -2172,9 +2172,9 @@
         snprintf(TextR3,TEXTSIZE,"\032\f\002%c",TXT_TTS);
         GFX_write_string(&FontT42,&t7r3,TextR3,0);
         if(pDecoinfo->output_time_to_surface_seconds < 1000 * 60)
-            snprintf(TextR3,TEXTSIZE,"\020\002%i'",(pDecoinfo->output_time_to_surface_seconds + 30)/ 60);
+            snprintf(TextR3,TEXTSIZE,"\020\002%i'",(pDecoinfo->output_time_to_surface_seconds + 59)/ 60);
         else
-            snprintf(TextR3,TEXTSIZE,"\020\002%ih",pDecoinfo->output_time_to_surface_seconds / 3600);
+            snprintf(TextR3,TEXTSIZE,"\020\002%ih",(pDecoinfo->output_time_to_surface_seconds + 59)/ 3600);
         t7_colorscheme_mod(TextR3);
         if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS)
             TextR2[0] = '\021';
@@ -2564,7 +2564,10 @@
     /* Future TTS */
     case 6:
         headerText[2] = TXT_FutureTTS;
-        snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%i' TTS",settingsGetPointer()->future_TTS, pDecoinfoFuture->output_time_to_surface_seconds / 60);
+        if (pDecoinfoFuture->output_time_to_surface_seconds < 1000 * 60)
+        	snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%i' TTS",settingsGetPointer()->future_TTS, (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 60);
+        else
+        	snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%ih TTS",settingsGetPointer()->future_TTS, (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600);
         tinyHeaderFont = 1;
         line = 1;
         break;
@@ -3110,7 +3113,10 @@
     text[textpointer++] = '\n';
     text[textpointer++] = '\r';
     text[textpointer++] = '\t';
-    textpointer += snprintf(&text[textpointer],10,"\020%i'",		pDecoinfoFuture->output_time_to_surface_seconds / 60);
+    if (pDecoinfoFuture->output_time_to_surface_seconds < 1000 * 60)
+    	textpointer += snprintf(&text[textpointer],10,"\020%i'", (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 60);
+    else
+    	textpointer += snprintf(&text[textpointer],10,"\020%ih", (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600);
     text[textpointer++] = 0;
     t7_colorscheme_mod(text);
     GFX_write_string(&FontT42, &t7cY0free, text, 1);