Chronicle of major events, and livelog

Log game events, such as entering a new dungeon level, breaking
a conduct, or killing a unique monster, in a new "Major events"
chronicle. The entries record the turn when the event happened.
The log can be viewed with #chronicle -command, and the entries
also show up in the end-of-game dump, if that is available.

This feature is on by default, but can be disabled by
defining NO_CHRONICLE compile-time option.

This also contains "live logging", writing the events as they
happen into a single livelog-file. This is mostly useful for
public servers. The livelog is off by default, and must be
compiled in with LIVELOG, and then turned on in sysconf.

Mostly this a version of livelogging from the Hardfought server,
with some changes.
This commit is contained in:
Pasi Kallinen
2022-02-09 22:36:19 +02:00
parent cfcfc3429f
commit 1e90f89203
43 changed files with 624 additions and 53 deletions

View File

@@ -177,6 +177,14 @@ struct kinfo {
char name[BUFSZ]; /* actual killer name */
};
/* game events log */
struct gamelog_line {
long turn; /* turn when this happened */
long flags; /* LL_foo flags */
char *text;
struct gamelog_line *next;
};
enum movemodes {
MV_ANY = -1,
MV_WALK,
@@ -1082,6 +1090,7 @@ struct instance_globals {
/* work buffer for You(), &c and verbalize() */
char *you_buf;
int you_buf_siz;
struct gamelog_line *gamelog;
/* polyself.c */
int sex_change_ok; /* controls whether taking on new form or becoming new