rogue5: add savedir, logfile, bugfixes

This commit is contained in:
John "Elwin" Edwards 2010-05-24 20:16:15 +00:00
parent 3741c4867d
commit 53a15a3e2e
13 changed files with 2124 additions and 1397 deletions

View file

@ -223,6 +223,62 @@ score(int amount, int flags, int monst)
}
}
void writelog(int amount, int flags, int monst)
{
#ifdef LOGFILE
char logmessage[160], ltemp[80];
if (logfi == NULL)
return;
#ifdef MASTER
if (wizard)
{
fclose(logfi);
return;
}
#endif
sprintf(logmessage, "%d %d %.20s %d ", time(NULL), amount, whoami,
pstats.s_lvl);
if (flags == 0) /* dead */
{
sprintf(ltemp, "killed by %s on level %d\n", killname(monst, TRUE),
level);
strcat(logmessage, ltemp);
}
else if (flags == 1) /* quit */
{
if (amulet)
sprintf(ltemp, "quit on level %d [max %d] with the Amulet\n",
level, max_level);
else
sprintf(ltemp, "quit on level %d\n", level);
strcat(logmessage, ltemp);
}
else if (flags == 2) /* won */
{
sprintf(ltemp, "escaped with the Amulet [deepest level: %d]\n",
max_level);
strcat(logmessage, ltemp);
}
else if (flags == 3) /* killed with Amulet */
{
strcat(logmessage, "killed by ");
strcat(logmessage, killname(monst, TRUE));
sprintf(ltemp, " on level %d [max %d] with the Amulet\n",
level, max_level);
strcat(logmessage, ltemp);
}
else
{
fclose(logfi);
return;
}
fprintf(logfi, "%s", logmessage);
fclose(logfi);
#endif
return;
}
/*
* death:
* Do something really fun when he dies
@ -271,7 +327,12 @@ death(int monst)
}
move(LINES - 1, 0);
refresh();
writelog(purse, amulet ? 3 : 0, monst);
score(purse, amulet ? 3 : 0, monst);
/* Make sure the output gets through. */
printf("[Press return to exit]\n");
fflush(NULL);
getchar();
my_exit(0);
}
@ -382,6 +443,7 @@ total_winner(void)
}
printw(" %5d Gold Pieces ", oldpurse);
refresh();
writelog(purse, 2, ' ');
score(purse, 2, ' ');
my_exit(0);
}