Fix the display of the multiplayer results screen.

git-svn-id: https://svn.eduke32.com/eduke32@4251 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
hendricks266 2014-01-12 14:05:23 +00:00
parent e263d0ada9
commit cf16225f5e

View file

@ -12482,68 +12482,9 @@ ENDANM:
}
}
void G_BonusScreen(int32_t bonusonly)
static void G_DisplayMPResultsScreen(void)
{
int32_t gfx_offset;
int32_t i, y;
int32_t bonuscnt;
int32_t clockpad = 2;
char *lastmapname;
int32_t playerbest = -1;
if (g_networkMode == NET_DEDICATED_SERVER)
return;
Bsprintf(tempbuf, "%s - " APPNAME, g_gameNamePtr);
wm_setapptitle(tempbuf);
if (ud.volume_number == 0 && ud.last_level == 8 && boardfilename[0])
{
lastmapname = Bstrrchr(boardfilename,'\\');
if (!lastmapname) lastmapname = Bstrrchr(boardfilename,'/');
if (!lastmapname) lastmapname = boardfilename;
}
else
{
lastmapname = MapInfo[(ud.volume_number*MAXLEVELS)+ud.last_level-1].name;
if (!lastmapname) // this isn't right but it's better than no name at all
lastmapname = MapInfo[(ud.m_volume_number*MAXLEVELS)+ud.last_level-1].name;
}
fadepal(0,0,0, 0,63,7);
setview(0,0,xdim-1,ydim-1);
clearallviews(0L);
nextpage();
flushperms();
FX_StopAllSounds();
S_ClearSoundLocks();
FX_SetReverb(0L);
CONTROL_BindsEnabled = 1; // so you can use your screenshot bind on the score screens
if (bonusonly)
goto FRAGBONUS;
G_BonusCutscenes();
FRAGBONUS:
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 8+2+1); // JBF 20040308
G_FadePalette(0,0,0,63); // JBF 20031228
KB_FlushKeyboardQueue();
totalclock = 0;
bonuscnt = 0;
S_StopMusic();
FX_StopAllSounds();
S_ClearSoundLocks();
if (playerswhenstarted > 1 && (GametypeFlags[ud.coop]&GAMETYPE_SCORESHEET))
{
int32_t t;
if (!(ud.config.MusicToggle == 0 || ud.config.MusicDevice < 0))
S_PlaySound(BONUSMUSIC);
int32_t i, y, t = 0;
rotatesprite_fs(0,0,65536L,0,MENUSCREEN,16,0,2+8+16+64+(ud.bgstretch?1024:0));
rotatesprite_fs(160<<16,34<<16,65536L,0,INGAMEDUKETHREEDEE,0,0,10);
@ -12554,7 +12495,6 @@ FRAGBONUS:
gametext(160,165,"Press any key or button to continue",quotepulseshade,2+8+16);
t = 0;
minitext(23,80," Name Kills",8,2+8+16+128);
for (i=0; i<playerswhenstarted; i++)
{
@ -12606,24 +12546,90 @@ FRAGBONUS:
}
minitext(45,96+(8*7),"Deaths",8,2+8+16+128);
}
void G_BonusScreen(int32_t bonusonly)
{
int32_t gfx_offset;
int32_t bonuscnt;
int32_t clockpad = 2;
char *lastmapname;
int32_t playerbest = -1;
if (g_networkMode == NET_DEDICATED_SERVER)
return;
Bsprintf(tempbuf, "%s - " APPNAME, g_gameNamePtr);
wm_setapptitle(tempbuf);
if (ud.volume_number == 0 && ud.last_level == 8 && boardfilename[0])
{
lastmapname = Bstrrchr(boardfilename,'\\');
if (!lastmapname) lastmapname = Bstrrchr(boardfilename,'/');
if (!lastmapname) lastmapname = boardfilename;
}
else
{
lastmapname = MapInfo[(ud.volume_number*MAXLEVELS)+ud.last_level-1].name;
if (!lastmapname) // this isn't right but it's better than no name at all
lastmapname = MapInfo[(ud.m_volume_number*MAXLEVELS)+ud.last_level-1].name;
}
fadepal(0,0,0, 0,63,7);
setview(0,0,xdim-1,ydim-1);
clearallviews(0L);
nextpage();
flushperms();
FX_StopAllSounds();
S_ClearSoundLocks();
FX_SetReverb(0L);
CONTROL_BindsEnabled = 1; // so you can use your screenshot bind on the score screens
if (!bonusonly)
G_BonusCutscenes();
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 8+2+1); // JBF 20040308
G_FadePalette(0,0,0,63); // JBF 20031228
KB_FlushKeyboardQueue();
totalclock = 0;
bonuscnt = 0;
S_StopMusic();
FX_StopAllSounds();
S_ClearSoundLocks();
if (playerswhenstarted > 1 && (GametypeFlags[ud.coop]&GAMETYPE_SCORESHEET))
{
clearallviews(0);
G_DisplayMPResultsScreen();
if (!(ud.config.MusicToggle == 0 || ud.config.MusicDevice < 0))
S_PlaySound(BONUSMUSIC);
nextpage();
I_ClearAllInput();
fadepal(0,0,0, 63,0,-7);
totalclock = 0;
while (totalclock < TICRATE*10)
{
G_HandleAsync();
MUSIC_Update();
clearallviews(0);
G_DisplayMPResultsScreen();
nextpage();
fadepal(0,0,0, 63,0,-7);
if (I_CheckAllInput())
{
I_ClearAllInput();
{
int32_t tc = totalclock;
while (I_CheckAllInput()==0)
{
// continue after 10 seconds...
if (totalclock > tc + (120*10)) break;
G_HandleAsync();
break;
}
}
if (bonusonly || (g_netServer || ud.multimode > 1)) return;
fadepal(0,0,0, 0,63,7);
}