summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/nyancat.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/nyancat.c b/src/nyancat.c
index f02eebe..932c572 100644
--- a/src/nyancat.c
+++ b/src/nyancat.c
@@ -45,6 +45,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
+#include <time.h>
#include "telnet.h"
/* The animation frames are stored separately. */
@@ -61,12 +62,21 @@ char * output = " ";
/* Telnet mode? */
int telnet = 0;
+/* I refuse to include libm */
+double log10(double x) {
+ int val = (int)x;
+ int d = 1, c;
+ if (val >= 0) for (c = 10; c <= val; c *= 10) d++;
+ else for (c = -10 ; c >= val; c *= 10) d++;
+ return (c < 0) ? (double)++d : (double)d;
+}
+
/*
* These values crop the animation, as we have a full 64x64 stored,
* but we only want to display 80x24.
*/
#define MIN_ROW 20
-#define MAX_ROW 44
+#define MAX_ROW 43
#define MIN_COL 10
#define MAX_COL 50
@@ -406,7 +416,6 @@ ready:
/* Clear the screen */
printf("\033[H\033[2J\033[?25l");
-
/* Display the MOTD */
int countdown_clock = 5;
for (k = 0; k < countdown_clock; ++k) {
@@ -437,6 +446,10 @@ ready:
/* Clear the screen again */
printf("\033[H\033[2J\033[?25l");
+ /* Store the start time */
+ time_t start, current;
+ time(&start);
+
int playing = 1;
size_t i = 0;
char last = 0;
@@ -460,9 +473,17 @@ ready:
}
}
/* End of row, send newline */
- if (y != MAX_ROW - 1)
- newline(1);
+ newline(1);
+ }
+ time(&current);
+ double diff = difftime(current, start);
+ double nLen = log10(diff);
+ int width = (80 - 29 - (int)nLen) / 2;
+ while (width) {
+ printf(" ");
+ width--;
}
+ printf("You have nyaned for %0.0f seconds!\033[J", diff);
/* Update frame crount */
++i;
if (!frames[i]) {
tr> 2004-06-02[lcd4linux @ 2004-06-02 05:35:55 by reinelt]reinelt1-0/+20 2004-06-02[lcd4linux @ 2004-06-02 05:27:59 by reinelt]reinelt26-0/+2405 2004-06-02[lcd4linux @ 2004-06-02 05:14:16 by reinelt]reinelt2-17/+31 2004-06-01[lcd4linux @ 2004-06-01 06:45:28 by reinelt]reinelt18-71/+241 2004-06-01[lcd4linux @ 2004-06-01 06:04:25 by reinelt]reinelt2-25/+25 2004-05-31[lcd4linux @ 2004-05-31 21:23:16 by reinelt]reinelt1-37/+49 2004-05-31[lcd4linux @ 2004-05-31 21:05:13 by reinelt]reinelt5-77/+111 2004-05-31[lcd4linux @ 2004-05-31 16:39:05 by reinelt]reinelt11-180/+535 2004-05-31[lcd4linux @ 2004-05-31 06:27:34 by reinelt]reinelt1-0/+40 2004-05-31[lcd4linux @ 2004-05-31 06:24:42 by reinelt]reinelt2-7/+29 2004-05-31[lcd4linux @ 2004-05-31 05:38:02 by reinelt]reinelt8-42/+94 2004-05-31[lcd4linux @ 2004-05-31 01:31:01 by andy-b]andy-b1-10/+12 2004-05-30[lcd4linux @ 2004-05-30 08:25:50 by reinelt]reinelt2-30/+92 2004-05-29[lcd4linux @ 2004-05-29 23:30:20 by reinelt]reinelt1-1/+9 2004-05-29[lcd4linux @ 2004-05-29 15:53:28 by reinelt]reinelt3-9/+25 2004-05-29[lcd4linux @ 2004-05-29 01:07:56 by reinelt]reinelt2-21/+25 2004-05-29[lcd4linux @ 2004-05-29 00:27:14 by reinelt]reinelt8-11/+214 2004-05-28[lcd4linux @ 2004-05-28 14:38:10 by reinelt]reinelt2-1/+41