arogue5: implement logging.
This commit is contained in:
parent
38a8534eb5
commit
4c16144c6b
4 changed files with 54 additions and 1 deletions
|
|
@ -450,6 +450,7 @@ quit(int sig)
|
|||
clear();
|
||||
move(LINES-1, 0);
|
||||
draw(stdscr);
|
||||
writelog(pstats.s_exp + (long) purse, CHICKEN, 0);
|
||||
score(pstats.s_exp + (long) purse, CHICKEN, 0);
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
* where scorefile should live
|
||||
*/
|
||||
#define SCOREFILE "/var/local/games/roguelike/arogue5.scr"
|
||||
#define LOGFILE "/var/local/games/roguelike/arogue5.log"
|
||||
#define SAVEDIR "/var/local/games/roguelike/arogue5save/"
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ register short monst;
|
|||
mvaddstr(18, 26, (sprintf(prbuf, "%4d", 1900+lt->tm_year), prbuf));
|
||||
move(LINES-1, 0);
|
||||
refresh();
|
||||
writelog(pstats.s_exp, KILLED, monst);
|
||||
score(pstats.s_exp, KILLED, monst);
|
||||
exit(0);
|
||||
}
|
||||
|
|
@ -569,7 +570,55 @@ short monst;
|
|||
scoreout(top_ten, outf);
|
||||
fclose(outf);
|
||||
}
|
||||
|
||||
|
||||
void writelog(unsigned long amount, int flags, short monst) {
|
||||
#ifdef LOGFILE
|
||||
FILE *logfi;
|
||||
char fate[100];
|
||||
char *class;
|
||||
struct linked_list *item;
|
||||
struct object *obj;
|
||||
char had_quest = '0';
|
||||
|
||||
if (waswizard)
|
||||
return;
|
||||
switch (player.t_ctype) {
|
||||
case C_FIGHTER: class = "Fighter";
|
||||
when C_MAGICIAN: class = "Magician";
|
||||
when C_CLERIC: class = "Cleric";
|
||||
when C_THIEF: class = "Thief";
|
||||
otherwise: class = "Unknown";
|
||||
}
|
||||
for (item = pack; item != NULL; item = next(item)) {
|
||||
obj = OBJPTR(item);
|
||||
if (obj->o_type == RELIC && obj->o_which == quest_item)
|
||||
had_quest = '1';
|
||||
}
|
||||
if (flags == KILLED) {
|
||||
sprintf(fate, "killed by %s", killname(monst));
|
||||
}
|
||||
else if (flags == CHICKEN) {
|
||||
sprintf(fate, "quit");
|
||||
}
|
||||
else if (flags == WINNER) {
|
||||
sprintf(fate, "escaped");
|
||||
}
|
||||
else
|
||||
return;
|
||||
|
||||
logfi = fopen(LOGFILE, "a");
|
||||
if (logfi == NULL) {
|
||||
perror(LOGFILE);
|
||||
return;
|
||||
}
|
||||
fprintf(logfi, "%d %d %.20s %d %s %d %d %d %c %s\n", time(NULL), amount,
|
||||
whoami, pstats.s_lvl, class, level, max_level, quest_item, had_quest,
|
||||
fate);
|
||||
fclose(logfi);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* scorein:
|
||||
* Convert a character string that has been translated from a
|
||||
|
|
@ -704,6 +753,7 @@ total_winner()
|
|||
}
|
||||
mvprintw(c - 'a' + 1, 0," %5d Gold Pieces ", oldpurse);
|
||||
refresh();
|
||||
writelog(pstats.s_exp + (long) purse, WINNER, '\0');
|
||||
score(pstats.s_exp + (long) purse, WINNER, '\0');
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -965,6 +965,7 @@ bool blue_light(), can_blink(), creat_mons(), add_pack(),
|
|||
long check_level();
|
||||
void byebye(int sig), genmonsters();
|
||||
int land(), undance();
|
||||
void writelog(unsigned long amount, int flags, short monst);
|
||||
#ifdef CHECKTIME
|
||||
int checkout();
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue