# HG changeset patch # User elwin # Date 1291473938 0 # Node ID 5ea4a4d8f961c8f381e3b5eead22cb81ab40c5e2 # Parent 984f7d5afb6fe5d30adb4545566a5ece507be4e3 srogue: add logging. diff -r 984f7d5afb6f -r 5ea4a4d8f961 srogue/command.c --- a/srogue/command.c Sat Dec 04 02:26:49 2010 +0000 +++ b/srogue/command.c Sat Dec 04 14:45:38 2010 +0000 @@ -372,6 +372,7 @@ clear(); move(LINES-1, 0); refresh(); + writelog(purse, CHICKEN, 0); score(purse, CHICKEN, 0); byebye(0); } diff -r 984f7d5afb6f -r 5ea4a4d8f961 srogue/rip.c --- a/srogue/rip.c Sat Dec 04 02:26:49 2010 +0000 +++ b/srogue/rip.c Sat Dec 04 14:45:38 2010 +0000 @@ -22,6 +22,8 @@ #include "rogue.h" #include "rogue.ext" +#define LOGFILE "/usr/local/games/roguelike/srogue.log" + static char scoreline[100]; static char *rip[] = { @@ -82,6 +84,7 @@ mvaddstr(18, 32, prbuf); move(LINES-1, 0); refresh(); + writelog(purse, KILLED, monst); score(purse, KILLED, monst); byebye(0); } @@ -215,6 +218,45 @@ showtop(prflags); /* print top ten list */ } +void writelog(int amount, int aflag, char monst) +{ + char logmessage[160], ltemp[80], mlev[40]; + char *killer; + FILE *logfi; + + if (waswizard) + return; +#ifdef LOGFILE + sprintf(logmessage, "%d %d %.20s %d ", time(NULL), amount, whoami, + him->s_lvl); + if (amulet) + sprintf(mlev, " [max %d] with the Amulet", max_level); + else + mlev[0] = '\0'; + if (aflag == KILLED) { + killer = killname(monst); + sprintf(ltemp, "killed by a%s %s on level %d%s\n", + vowelstr(killer), killer, level, mlev); + } + else if (aflag == CHICKEN) { + sprintf(ltemp, "quit on level %d%s\n", level, mlev); + } + else if (aflag == WINNER) { + sprintf(ltemp, "escaped with the Amulet [deepest level: %d]\n", + max_level); + } + else + return; + strcat(logmessage, ltemp); + logfi = fopen(LOGFILE, "a"); + if (logfi == NULL) + return; + fprintf(logfi, "%s", logmessage); + fclose(logfi); +#endif + return; +} + /* * showtop: * Display the top ten on the screen @@ -296,6 +338,7 @@ clear(); oldpurse = purse; showpack(TRUE, NULL); + writelog(purse, WINNER, 0); score(purse, WINNER, 0); byebye(0); }