diff urogue/rip.c @ 268:4ab49e42dd6a

UltraRogue: add logging. The log file's name is temporarily defined in main.c.
author John "Elwin" Edwards
date Sun, 26 Feb 2017 16:51:29 -0500
parents 911f0aa6e758
children 1bbdd13ec585
line wrap: on
line diff
--- a/urogue/rip.c	Sun Feb 26 14:58:49 2017 -0500
+++ b/urogue/rip.c	Sun Feb 26 16:51:29 2017 -0500
@@ -53,6 +53,8 @@
     0
 };
 
+void writelog(long amount, int lvl, int flags, int monst);
+
 /*
     death()
         Do something really fun when he dies
@@ -205,6 +207,9 @@
 
     char    *packend;
 
+    if (flags != SCOREIT)
+        writelog(amount, lvl, flags, monst);
+
     if (flags != WINNER && flags != TOTAL && flags != SCOREIT)
     {
         if (flags == CHICKEN)
@@ -386,6 +391,31 @@
 }
 
 void
+writelog(long amount, int lvl, int flags, int monst)
+{
+    char fate[80];
+    if (file_log == NULL)
+        return;
+    if (flags == KILLED) {
+        strcpy(fate, "killed by ");
+        killname(monst, fate + 10);
+    }
+    else if (flags == CHICKEN) {
+        strcpy(fate, "quit");
+    }
+    else if (flags == WINNER || flags == TOTAL) {
+        strcpy(fate, "escaped");
+    }
+    else
+        return;
+    fprintf(file_log, "%d %d %s %d %s %d %d %d %s\n", time(NULL), amount, 
+		    whoami, lvl, which_class(player.t_ctype), level, max_level, 
+		    has_artifact, fate);
+    fclose(file_log);
+    return;
+}
+
+void
 total_winner(void)
 {
     struct linked_list  *item;