intermission: in GAME_NEXUIZ, display standard scoreboard instead of intermission overlay, and allow showscores (TAB) to override svc_finale overlay
scoreboard: in intermission, show the time when the game ended, not the current time
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7370
d7cf8633-e32d-0410-b094-
e92efae38249
break;
case qw_svc_intermission:
+ if(!cl.intermission)
+ cl.completed_time = cl.time;
cl.intermission = 1;
- cl.completed_time = cl.time;
MSG_ReadVector(cl.qw_intermission_origin, cls.protocol);
for (i = 0;i < 3;i++)
cl.qw_intermission_angles[i] = MSG_ReadAngle(cls.protocol);
break;
case qw_svc_finale:
+ if(!cl.intermission)
+ cl.completed_time = cl.time;
cl.intermission = 2;
- cl.completed_time = cl.time;
SCR_CenterPrint(MSG_ReadString ());
break;
break;
case svc_intermission:
+ if(!cl.intermission)
+ cl.completed_time = cl.time;
cl.intermission = 1;
- cl.completed_time = cl.time;
break;
case svc_finale:
+ if(!cl.intermission)
+ cl.completed_time = cl.time;
cl.intermission = 2;
- cl.completed_time = cl.time;
SCR_CenterPrint(MSG_ReadString ());
break;
case svc_cutscene:
+ if(!cl.intermission)
+ cl.completed_time = cl.time;
cl.intermission = 3;
- cl.completed_time = cl.time;
SCR_CenterPrint(MSG_ReadString ());
break;
int remaining;
int color;
+ if(gamemode == GAME_NEXUIZ)
+ if(cl.intermission == 2) // in Nexuiz finale (voting screen),
+ if(sb_showscores) // make TAB hide vote messages
+ return;
+
// the finale prints the characters one at a time, except if printspeed is an absurdly high value
if (cl.intermission && scr_printspeed.value > 0 && scr_printspeed.value < 1000000)
remaining = (int)(scr_printspeed.value * (cl.time - scr_centertime_start));
char str[80], timestr[40];
int i, max;
int minutes, seconds;
+ double t;
- minutes = (int)(cl.time / 60);
- seconds = (int)(cl.time - 60*floor(cl.time/60));
+ t = (cl.intermission ? cl.completed_time : cl.time);
+ minutes = (int)(t / 60);
+ seconds = (int)(t - 60*floor(t/60));
// monsters and secrets are now both on the top row
if (gamemode != GAME_NEXUIZ)
{
if (cl.intermission == 1)
{
+ if(gamemode == GAME_NEXUIZ) // display full scoreboard (that is, show scores + map name)
+ {
+ Sbar_DrawScoreboard();
+ return;
+ }
Sbar_IntermissionOverlay();
return;
}
else if (cl.intermission == 2)
{
+ if(gamemode == GAME_NEXUIZ) // Nexuiz allows TAB to override the voting screens to recall the scores
+ if(sb_showscores)
+ {
+ Sbar_DrawScoreboard();
+ return;
+ }
Sbar_FinaleOverlay();
return;
}