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
This commit is contained in:
Spoike 2022-05-28 17:59:51 +00:00
parent 130d758077
commit 12cdfc197f
2 changed files with 22 additions and 1 deletions

View file

@ -7534,8 +7534,10 @@ void CLQW_ParseServerMessage (void)
if (cl.intermissionmode == IM_NONE) if (cl.intermissionmode == IM_NONE)
{ {
TP_ExecTrigger ("f_mapend", false); TP_ExecTrigger ("f_mapend", false);
if (cl.playerview[destsplit].spectator) if (cl.playerview[destsplit].spectator || cls.demoplayback)
TP_ExecTrigger ("f_specmapend", true); TP_ExecTrigger ("f_specmapend", true);
else
TP_ExecTrigger ("f_playmapend", true);
cl.completed_time = cl.gametime; cl.completed_time = cl.gametime;
} }
cl.intermissionmode = IM_QWSCORES; cl.intermissionmode = IM_QWSCORES;
@ -8649,6 +8651,10 @@ void CLNQ_ParseServerMessage (void)
if (cl.intermissionmode == IM_NONE) if (cl.intermissionmode == IM_NONE)
{ {
TP_ExecTrigger ("f_mapend", false); 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.completed_time = cl.gametime;
} }
cl.intermissionmode = IM_NQSCORES; cl.intermissionmode = IM_NQSCORES;
@ -8658,6 +8664,10 @@ void CLNQ_ParseServerMessage (void)
if (cl.intermissionmode == IM_NONE) if (cl.intermissionmode == IM_NONE)
{ {
TP_ExecTrigger ("f_mapend", false); 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.completed_time = cl.gametime;
} }
cl.intermissionmode = IM_NQFINALE; cl.intermissionmode = IM_NQFINALE;
@ -8668,6 +8678,10 @@ void CLNQ_ParseServerMessage (void)
if (cl.intermissionmode == IM_NONE) if (cl.intermissionmode == IM_NONE)
{ {
TP_ExecTrigger ("f_mapend", false); 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.completed_time = cl.gametime;
} }
cl.intermissionmode = IM_NQCUTSCENE; cl.intermissionmode = IM_NQCUTSCENE;

View file

@ -490,7 +490,14 @@ void SCR_CenterPrint (int pnum, const char *str, qboolean skipgamecode)
else if (str[1] == 'F') else if (str[1] == 'F')
{ //'F' is reserved for special handling via svc_finale { //'F' is reserved for special handling via svc_finale
if (cl.intermissionmode == IM_NONE) 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; cl.completed_time = cl.time;
}
str+=2; str+=2;
switch(*str++) switch(*str++)
{ {