From 12cdfc197fe4cf58830b5b45303ab59388ec329d Mon Sep 17 00:00:00 2001 From: Spoike Date: Sat, 28 May 2022 17:59:51 +0000 Subject: [PATCH] Make sure that either f_playmapend or f_specmapend work when f_mapend does, for people that want more specific behaviours. spec is ALWAYS used for demo playback too. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6251 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/cl_parse.c | 16 +++++++++++++++- engine/client/cl_screen.c | 7 +++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index db39c81be..f56bfc6c1 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -7534,8 +7534,10 @@ void CLQW_ParseServerMessage (void) if (cl.intermissionmode == IM_NONE) { TP_ExecTrigger ("f_mapend", false); - if (cl.playerview[destsplit].spectator) + if (cl.playerview[destsplit].spectator || cls.demoplayback) TP_ExecTrigger ("f_specmapend", true); + else + TP_ExecTrigger ("f_playmapend", true); cl.completed_time = cl.gametime; } cl.intermissionmode = IM_QWSCORES; @@ -8649,6 +8651,10 @@ void CLNQ_ParseServerMessage (void) if (cl.intermissionmode == IM_NONE) { TP_ExecTrigger ("f_mapend", false); + if (cl.playerview[destsplit].spectator || cls.demoplayback) + TP_ExecTrigger ("f_specmapend", true); + else + TP_ExecTrigger ("f_playmapend", true); cl.completed_time = cl.gametime; } cl.intermissionmode = IM_NQSCORES; @@ -8658,6 +8664,10 @@ void CLNQ_ParseServerMessage (void) if (cl.intermissionmode == IM_NONE) { TP_ExecTrigger ("f_mapend", false); + if (cl.playerview[destsplit].spectator || cls.demoplayback) + TP_ExecTrigger ("f_specmapend", true); + else + TP_ExecTrigger ("f_playmapend", true); cl.completed_time = cl.gametime; } cl.intermissionmode = IM_NQFINALE; @@ -8668,6 +8678,10 @@ void CLNQ_ParseServerMessage (void) if (cl.intermissionmode == IM_NONE) { TP_ExecTrigger ("f_mapend", false); + if (cl.playerview[destsplit].spectator || cls.demoplayback) + TP_ExecTrigger ("f_specmapend", true); + else + TP_ExecTrigger ("f_playmapend", true); cl.completed_time = cl.gametime; } cl.intermissionmode = IM_NQCUTSCENE; diff --git a/engine/client/cl_screen.c b/engine/client/cl_screen.c index 6959fe54d..4407f7a95 100644 --- a/engine/client/cl_screen.c +++ b/engine/client/cl_screen.c @@ -490,7 +490,14 @@ void SCR_CenterPrint (int pnum, const char *str, qboolean skipgamecode) else if (str[1] == 'F') { //'F' is reserved for special handling via svc_finale if (cl.intermissionmode == IM_NONE) + { + TP_ExecTrigger ("f_mapend", false); + if (cl.playerview[pnum].spectator || cls.demoplayback) + TP_ExecTrigger ("f_specmapend", true); + else + TP_ExecTrigger ("f_playmapend", true); cl.completed_time = cl.time; + } str+=2; switch(*str++) {