Merge branch 'parties-only' into parties

This commit is contained in:
James R 2020-03-18 19:42:58 -07:00
commit cca9b5e2f4
4 changed files with 69 additions and 10 deletions

View file

@ -78,6 +78,7 @@ patch_t *cred_font[CRED_FONTSIZE];
// Note: I'd like to adress that at this point we might *REALLY* want to work towards a common drawString function that can take any font we want because this is really turning into a MESS. :V -Lat'
patch_t *pingnum[10];
patch_t *pinggfx[5]; // small ping graphic
patch_t *mping[5]; // smaller ping graphic
patch_t *framecounter;
patch_t *frameslash; // framerate stuff. Used in screen.c
@ -311,6 +312,8 @@ void HU_LoadGraphics(void)
{
sprintf(buffer, "PINGGFX%d", i+1);
pinggfx[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
sprintf(buffer, "MPING%d", i+1);
mping[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
}
// fps stuff
@ -2480,22 +2483,30 @@ void HU_Erase(void)
// IN-LEVEL MULTIPLAYER RANKINGS
//======================================================================
static int
Ping_gfx_num (int ping)
{
if (ping < 76)
return 0;
else if (ping < 137)
return 1;
else if (ping < 256)
return 2;
else if (ping < 500)
return 3;
else
return 4;
}
//
// HU_drawPing
//
void HU_drawPing(INT32 x, INT32 y, UINT32 ping, INT32 flags)
{
INT32 gfxnum = 4; // gfx to draw
INT32 gfxnum; // gfx to draw
UINT8 const *colormap = R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_SALMON, GTC_CACHE);
if (ping < 76)
gfxnum = 0;
else if (ping < 137)
gfxnum = 1;
else if (ping < 256)
gfxnum = 2;
else if (ping < 500)
gfxnum = 3;
gfxnum = Ping_gfx_num(ping);
V_DrawScaledPatch(x, y, flags, pinggfx[gfxnum]);
if (servermaxping && ping > servermaxping && hu_tick < 4) // flash ping red if too high
@ -2504,6 +2515,19 @@ void HU_drawPing(INT32 x, INT32 y, UINT32 ping, INT32 flags)
V_DrawPingNum(x, y+9, flags, ping, NULL);
}
void
HU_drawMiniPing (INT32 x, INT32 y, UINT32 ping, INT32 flags)
{
patch_t *patch;
patch = mping[Ping_gfx_num(ping)];
if (( flags & V_SNAPTORIGHT ))
x += ( BASEVIDWIDTH - SHORT (patch->width) );
V_DrawScaledPatch(x, y, flags, patch);
}
//
// HU_DrawTabRankings -- moved to k_kart.c
//

View file

@ -115,6 +115,7 @@ char HU_dequeueChatChar(void);
void HU_Erase(void);
void HU_clearChatChars(void);
void HU_drawPing(INT32 x, INT32 y, UINT32 ping, INT32 flags); // Lat': Ping drawer for scoreboard.
void HU_drawMiniPing(INT32 x, INT32 y, UINT32 ping, INT32 flags);
//void HU_DrawTeamTabRankings(playersort_t *tab, INT32 whiteplayer);
//void HU_DrawDualTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer);
void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer, INT32 hilicol);

View file

@ -9884,6 +9884,35 @@ void K_drawKartFreePlay(UINT32 flashtime)
LAPS_Y+3, V_HUDTRANS|V_SNAPTOBOTTOM|V_SNAPTORIGHT, "FREE PLAY");
}
static void
Draw_party_ping (int ss, INT32 snap)
{
HU_drawMiniPing(0, 0, playerpingtable[displayplayers[ss]], V_HUDTRANS|snap);
}
static void
K_drawMiniPing (void)
{
if (cv_showping.value)
{
switch (r_splitscreen)
{
case 3:
Draw_party_ping(3, V_SNAPTORIGHT|V_SPLITSCREEN);
/*FALLTHRU*/
case 2:
Draw_party_ping(2, V_SPLITSCREEN);
Draw_party_ping(1, V_SNAPTORIGHT);
Draw_party_ping(0, 0);
break;
case 1:
Draw_party_ping(1, V_SNAPTORIGHT|V_SPLITSCREEN);
Draw_party_ping(0, V_SNAPTORIGHT);
break;
}
}
}
static void K_drawDistributionDebugger(void)
{
patch_t *items[NUMKARTRESULTS] = {
@ -10212,6 +10241,11 @@ void K_drawKartHUD(void)
K_drawKartFreePlay(leveltime);
}
if (netgame && r_splitscreen)
{
K_drawMiniPing();
}
if (cv_kartdebugdistribution.value)
K_drawDistributionDebugger();

View file

@ -445,7 +445,7 @@ void SCR_DisplayTicRate(void)
void SCR_DisplayLocalPing(void)
{
UINT32 ping = playerpingtable[consoleplayer]; // consoleplayer's ping is everyone's ping in a splitnetgame :P
if (cv_showping.value == 1 || (cv_showping.value == 2 && ping > servermaxping)) // only show 2 (warning) if our ping is at a bad level
if (! r_splitscreen && ( cv_showping.value == 1 || (cv_showping.value == 2 && ping > servermaxping) )) // only show 2 (warning) if our ping is at a bad level
{
INT32 dispy = cv_ticrate.value ? 160 : 181;
HU_drawPing(307, dispy, ping, V_SNAPTORIGHT | V_SNAPTOBOTTOM | V_HUDTRANS);