diff --git a/config.l b/config.l index 8054d82..8ffd76b 100644 --- a/config.l +++ b/config.l @@ -92,6 +92,7 @@ dglstart { yylval.i = DGLTIME_DGLSTART; return TYPE_CMDQUEUENAME; } login { yylval.i = DGLTIME_LOGIN; return TYPE_CMDQUEUENAME; } register { yylval.i = DGLTIME_REGISTER; return TYPE_CMDQUEUENAME; } gamestart { yylval.i = DGLTIME_GAMESTART; return TYPE_CMDQUEUENAME; } +gameend { yylval.i = DGLTIME_GAMEEND; return TYPE_CMDQUEUENAME; } mkdir { yylval.i = DGLCMD_MKDIR; return TYPE_DGLCMD1; } chdir { yylval.i = DGLCMD_CHDIR; return TYPE_DGLCMD1; } cp { yylval.i = DGLCMD_CP; return TYPE_DGLCMD2; } diff --git a/dgamelaunch.h b/dgamelaunch.h index f1313fb..3c38270 100644 --- a/dgamelaunch.h +++ b/dgamelaunch.h @@ -20,6 +20,7 @@ typedef enum DGLTIME_LOGIN, /* right after user login */ DGLTIME_REGISTER, /* right after new nick is registered */ DGLTIME_GAMESTART, /* right before a game is started */ + DGLTIME_GAMEEND, /* right after a game is ended */ NUM_DGLTIMES } dglcmd_times; diff --git a/dgl-common.c b/dgl-common.c index 09c2fbc..e841a7c 100644 --- a/dgl-common.c +++ b/dgl-common.c @@ -305,10 +305,11 @@ dgl_exec_cmdqueue(struct dg_cmdpart *queue, int game, struct dg_user *me) /* launch program */ ttyrec_main (userchoice, me->username, gen_ttyrec_filename()); + /* lastly, run the generic "do these when a game is left" commands */ + dgl_exec_cmdqueue(globalconfig.cmdqueue[DGLTIME_GAMEEND], userchoice, me); + setproctitle ("%s", me->username); - initcurses (); - check_retard(1); /* reset retard counter */ } break;