login

<     >

2015-07-23 12:28:30 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

More accurate delay settings.

diff --git a/main.c b/main.c
index 946ba83..c505be3 100644
--- a/main.c
+++ b/main.c
@@ -15,6 +15,10 @@
 #include "mbf.h"
 #include "gif.h"
 
+#define MAX(A, B)   ((A) > (B) ? (A) : (B))
+
+#define MIN_DELAY   6
+
 int
 get_index(Font *font, uint16_t code)
 {
@@ -118,6 +122,7 @@ convert_script(Term *term, const char *timing, const char *dialogue,
     int w, h;
     int i, c;
     float d;
+    uint16_t rd;
     float lastdone, done;
     char pb[pbcols+1];
     GIF *gif;
@@ -161,7 +166,6 @@ convert_script(Term *term, const char *timing, const char *dialogue,
     i = 0;
     d = 0;
     while (fscanf(ft, "%f %d\n", &t, &n) == 2) {
-        d += ((t > max ? max : t) * 100.0 / div);
         if (pbcols) {
             done = i * (pbcols-1) / c;
             if (done > lastdone) {
@@ -172,8 +176,10 @@ convert_script(Term *term, const char *timing, const char *dialogue,
                 fflush(stdout);
             }
         }
-        if (i && d > 5) {
-            render(term, font, gif, (uint16_t) (d + 0.5));
+        d += ((t > max ? max : t) * 100.0 / div);
+        rd = (uint16_t) (d + 0.5);
+        if (i && rd >= MIN_DELAY) {
+            render(term, font, gif, rd);
             d = 0;
         }
         while (n--) {
@@ -186,7 +192,7 @@ convert_script(Term *term, const char *timing, const char *dialogue,
     }
     if (pbcols)
     	putchar('\n');
-    render(term, font, gif, 0);
+    render(term, font, gif, MAX(rd, MIN_DELAY));
     close_gif(gif);
     return 0;
 no_gif: