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++) {