mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-27 11:40:52 +00:00
Fix up the bugs from last night's hell netgame.
* The tab and intermissions rankings... * ...now have parity in behaviour! * ...now properly handle player counts over 8, and no longer supports player counts over 16! * The Item Arrow in Battle... * No longer develops any extremely stupid bugs due to Orbinaut sprites that makes all objects in state S_INVISIBLE develop <!>'s! (Ask me about this if you're curious as to how it affected everything else too.)
This commit is contained in:
parent
c895f45d96
commit
e5566df4c2
3 changed files with 28 additions and 17 deletions
|
@ -2186,10 +2186,10 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
|
||||||
const UINT8 *colormap;
|
const UINT8 *colormap;
|
||||||
|
|
||||||
//this function is designed for 9 or less score lines only
|
//this function is designed for 9 or less score lines only
|
||||||
I_Assert(scorelines <= 9);
|
//I_Assert(scorelines <= 9); -- not today bitch, kart fixed it up
|
||||||
|
|
||||||
V_DrawFill(1, 26, 318, 1, 0); // Draw a horizontal line because it looks nice!
|
V_DrawFill(1, 26, 318, 1, 0); // Draw a horizontal line because it looks nice!
|
||||||
if (scorelines > 9)
|
if (scorelines > 8)
|
||||||
{
|
{
|
||||||
V_DrawFill(160, 26, 1, 154, 0); // Draw a vertical line to separate the two sides.
|
V_DrawFill(160, 26, 1, 154, 0); // Draw a vertical line to separate the two sides.
|
||||||
V_DrawFill(1, 180, 318, 1, 0); // And a horizontal line near the bottom.
|
V_DrawFill(1, 180, 318, 1, 0); // And a horizontal line near the bottom.
|
||||||
|
@ -2198,6 +2198,8 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
|
||||||
|
|
||||||
for (i = 0; i < scorelines; i++)
|
for (i = 0; i < scorelines; i++)
|
||||||
{
|
{
|
||||||
|
char strtime[MAXPLAYERNAME+1];
|
||||||
|
|
||||||
if (players[tab[i].num].spectator || !players[tab[i].num].mo)
|
if (players[tab[i].num].spectator || !players[tab[i].num].mo)
|
||||||
continue; //ignore them.
|
continue; //ignore them.
|
||||||
|
|
||||||
|
@ -2207,11 +2209,16 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
|
||||||
HU_drawPing(x+ 253, y+2, playerpingtable[tab[i].num], false);
|
HU_drawPing(x+ 253, y+2, playerpingtable[tab[i].num], false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (scorelines > 8)
|
||||||
|
strlcpy(strtime, tab[i].name, 6);
|
||||||
|
else
|
||||||
|
STRBUFCPY(strtime, tab[i].name);
|
||||||
|
|
||||||
V_DrawString(x + 20, y,
|
V_DrawString(x + 20, y,
|
||||||
((tab[i].num == whiteplayer)
|
((tab[i].num == whiteplayer)
|
||||||
? hilicol|V_ALLOWLOWERCASE
|
? hilicol|V_ALLOWLOWERCASE
|
||||||
: V_ALLOWLOWERCASE),
|
: V_ALLOWLOWERCASE),
|
||||||
tab[i].name);
|
strtime);
|
||||||
|
|
||||||
if (players[tab[i].num].mo->color)
|
if (players[tab[i].num].mo->color)
|
||||||
{
|
{
|
||||||
|
@ -2260,7 +2267,7 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
|
||||||
V_DrawRightAlignedString(x+rightoffset, y, 0, va("%u", tab[i].count));
|
V_DrawRightAlignedString(x+rightoffset, y, 0, va("%u", tab[i].count));
|
||||||
|
|
||||||
y += 16;
|
y += 16;
|
||||||
if (i == 9)
|
if (i == 7)
|
||||||
{
|
{
|
||||||
y = 32;
|
y = 32;
|
||||||
x += BASEVIDWIDTH/2;
|
x += BASEVIDWIDTH/2;
|
||||||
|
@ -2680,15 +2687,17 @@ static void HU_DrawRankings(void)
|
||||||
tab[scorelines].count = players[i].marescore;
|
tab[scorelines].count = players[i].marescore;
|
||||||
|
|
||||||
scorelines++;
|
scorelines++;
|
||||||
}
|
|
||||||
|
|
||||||
if (scorelines > 20)
|
#if MAXPLAYERS > 16
|
||||||
scorelines = 20; //dont draw past bottom of screen, show the best only
|
if (scorelines > 16)
|
||||||
|
break; //dont draw past bottom of screen, show the best only
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*if (G_GametypeHasTeams())
|
/*if (G_GametypeHasTeams())
|
||||||
HU_DrawTeamTabRankings(tab, whiteplayer); //separate function for Spazzo's silly request -- gotta fix this up later
|
HU_DrawTeamTabRankings(tab, whiteplayer); //separate function for Spazzo's silly request -- gotta fix this up later
|
||||||
else if (scorelines > 10)*/
|
else if (scorelines > 10)*/
|
||||||
HU_DrawTabRankings(((scorelines > 9) ? 32 : 40), 32, tab, scorelines, whiteplayer, hilicol);
|
HU_DrawTabRankings(((scorelines > 8) ? 32 : 40), 32, tab, scorelines, whiteplayer, hilicol);
|
||||||
/*else
|
/*else
|
||||||
HU_DrawDualTabRankings(32, 32, tab, scorelines, whiteplayer);*/
|
HU_DrawDualTabRankings(32, 32, tab, scorelines, whiteplayer);*/
|
||||||
|
|
||||||
|
|
|
@ -7006,7 +7006,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
else
|
else
|
||||||
mobj->tracer->flags2 &= ~MF2_DONTDRAW;
|
mobj->tracer->flags2 &= ~MF2_DONTDRAW;
|
||||||
}
|
}
|
||||||
else if (mobj->target->player->kartstuff[k_itemtype])
|
else if (mobj->target->player->kartstuff[k_itemtype] && mobj->target->player->kartstuff[k_itemamount] > 0)
|
||||||
{
|
{
|
||||||
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
||||||
|
|
||||||
|
|
|
@ -396,7 +396,6 @@ void Y_IntermissionDrawer(void)
|
||||||
else*/ if (intertype == int_race || intertype == int_match)
|
else*/ if (intertype == int_race || intertype == int_match)
|
||||||
{
|
{
|
||||||
INT32 y = 48;
|
INT32 y = 48;
|
||||||
char name[MAXPLAYERNAME+1];
|
|
||||||
const char *timeheader;
|
const char *timeheader;
|
||||||
|
|
||||||
if (data.match.rankingsmode)
|
if (data.match.rankingsmode)
|
||||||
|
@ -410,7 +409,7 @@ void Y_IntermissionDrawer(void)
|
||||||
|
|
||||||
if (data.match.numplayers > 8)
|
if (data.match.numplayers > 8)
|
||||||
{
|
{
|
||||||
V_DrawFill(160, 32, 1, 152, 0);
|
V_DrawFill(x+156, 32, 1, 152, 0);
|
||||||
|
|
||||||
V_DrawCenteredString(x+6+(BASEVIDWIDTH/2), 32, hilicol, "#");
|
V_DrawCenteredString(x+6+(BASEVIDWIDTH/2), 32, hilicol, "#");
|
||||||
V_DrawString(x+36+(BASEVIDWIDTH/2), 32, hilicol, "NAME");
|
V_DrawString(x+36+(BASEVIDWIDTH/2), 32, hilicol, "NAME");
|
||||||
|
@ -427,7 +426,7 @@ void Y_IntermissionDrawer(void)
|
||||||
{
|
{
|
||||||
if (data.match.num[i] != MAXPLAYERS && playeringame[data.match.num[i]] && !players[data.match.num[i]].spectator)
|
if (data.match.num[i] != MAXPLAYERS && playeringame[data.match.num[i]] && !players[data.match.num[i]].spectator)
|
||||||
{
|
{
|
||||||
char strtime[10];
|
char strtime[MAXPLAYERNAME+1];
|
||||||
|
|
||||||
V_DrawCenteredString(x+6, y, 0, va("%d", data.match.pos[i]));
|
V_DrawCenteredString(x+6, y, 0, va("%d", data.match.pos[i]));
|
||||||
|
|
||||||
|
@ -439,16 +438,16 @@ void Y_IntermissionDrawer(void)
|
||||||
V_DrawSmallMappedPatch(x+16, y-4, 0,faceprefix[*data.match.character[i]], colormap);
|
V_DrawSmallMappedPatch(x+16, y-4, 0,faceprefix[*data.match.character[i]], colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.match.numplayers > 9)
|
if (data.match.numplayers > 8)
|
||||||
strlcpy(name, data.match.name[i], 6);
|
strlcpy(strtime, data.match.name[i], 6);
|
||||||
else
|
else
|
||||||
STRBUFCPY(name, data.match.name[i]);
|
STRBUFCPY(strtime, data.match.name[i]);
|
||||||
|
|
||||||
V_DrawString(x+36, y,
|
V_DrawString(x+36, y,
|
||||||
((data.match.num[i] == whiteplayer)
|
((data.match.num[i] == whiteplayer)
|
||||||
? hilicol|V_ALLOWLOWERCASE
|
? hilicol|V_ALLOWLOWERCASE
|
||||||
: V_ALLOWLOWERCASE),
|
: V_ALLOWLOWERCASE),
|
||||||
name);
|
strtime);
|
||||||
|
|
||||||
if (data.match.rankingsmode)
|
if (data.match.rankingsmode)
|
||||||
{
|
{
|
||||||
|
@ -507,11 +506,14 @@ void Y_IntermissionDrawer(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
data.match.increase[data.match.num[i]] = 0;
|
||||||
data.match.num[i] = MAXPLAYERS; // this should be the only field setting in this function
|
data.match.num[i] = MAXPLAYERS; // this should be the only field setting in this function
|
||||||
|
}
|
||||||
|
|
||||||
y += 16;
|
y += 16;
|
||||||
|
|
||||||
if (y > 176)
|
if (i == 7)
|
||||||
{
|
{
|
||||||
y = 48;
|
y = 48;
|
||||||
x += BASEVIDWIDTH/2;
|
x += BASEVIDWIDTH/2;
|
||||||
|
|
Loading…
Reference in a new issue