This commit is contained in:
toaster 2019-02-02 21:12:49 +00:00
commit 06b3e265f5
4 changed files with 44 additions and 20 deletions

View file

@ -5151,22 +5151,20 @@ void G_GhostTicker(void)
if (ziptic & EZT_HIT) if (ziptic & EZT_HIT)
{ // Spawn hit poofs for killing things! { // Spawn hit poofs for killing things!
UINT16 i, count = READUINT16(g->p), health; UINT16 i, count = READUINT16(g->p), health;
UINT32 type; //UINT32 type;
fixed_t x,y,z; fixed_t x,y,z;
angle_t angle; angle_t angle;
mobj_t *poof; mobj_t *poof;
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{ {
g->p += 4; // reserved g->p += 4; // reserved
type = READUINT32(g->p); g->p += 4; // backwards compat., type used to be here
health = READUINT16(g->p); health = READUINT16(g->p);
x = READFIXED(g->p); x = READFIXED(g->p);
y = READFIXED(g->p); y = READFIXED(g->p);
z = READFIXED(g->p); z = READFIXED(g->p);
angle = READANGLE(g->p); angle = READANGLE(g->p);
if (!(mobjinfo[type].flags & MF_SHOOTABLE) if (health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad.
|| !(mobjinfo[type].flags & (MF_ENEMY|MF_MONITOR))
|| health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad.
continue; continue;
poof = P_SpawnMobj(x, y, z, MT_GHOST); poof = P_SpawnMobj(x, y, z, MT_GHOST);
poof->angle = angle; poof->angle = angle;

View file

@ -7163,12 +7163,24 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
if (G_RaceGametype()) if (G_RaceGametype())
{ {
#define timestring(time) va("%i'%02i\"%02i", G_TicsToMinutes(time, true), G_TicsToSeconds(time), G_TicsToCentiseconds(time)) #define timestring(time) va("%i'%02i\"%02i", G_TicsToMinutes(time, true), G_TicsToSeconds(time), G_TicsToCentiseconds(time))
if (scorelines > 8)
{
if (players[tab[i].num].exiting)
V_DrawRightAlignedThinString(x+rightoffset, y-1, hilicol|V_6WIDTHSPACE, timestring(players[tab[i].num].realtime));
else if (players[tab[i].num].pflags & PF_TIMEOVER)
V_DrawRightAlignedThinString(x+rightoffset, y-1, V_6WIDTHSPACE, "NO CONTEST.");
else if (circuitmap)
V_DrawRightAlignedThinString(x+rightoffset, y-1, V_6WIDTHSPACE, va("Lap %d", tab[i].count));
}
else
{
if (players[tab[i].num].exiting) if (players[tab[i].num].exiting)
V_DrawRightAlignedString(x+rightoffset, y, hilicol, timestring(players[tab[i].num].realtime)); V_DrawRightAlignedString(x+rightoffset, y, hilicol, timestring(players[tab[i].num].realtime));
else if (players[tab[i].num].pflags & PF_TIMEOVER) else if (players[tab[i].num].pflags & PF_TIMEOVER)
V_DrawRightAlignedThinString(x+rightoffset, y-1, 0, "NO CONTEST."); V_DrawRightAlignedThinString(x+rightoffset, y-1, 0, "NO CONTEST.");
else if (circuitmap) else if (circuitmap)
V_DrawRightAlignedString(x+rightoffset, y, 0, va("Lap %d", tab[i].count)); V_DrawRightAlignedString(x+rightoffset, y, 0, va("Lap %d", tab[i].count));
}
#undef timestring #undef timestring
} }
else else

View file

@ -442,7 +442,7 @@ static CV_PossibleValue_t serversort_cons_t[] = {
{5,"Gametype"}, {5,"Gametype"},
{0,NULL} {0,NULL}
}; };
consvar_t cv_serversort = {"serversort", "Ping", CV_HIDEN | CV_CALL, serversort_cons_t, M_SortServerList, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_serversort = {"serversort", "Ping", CV_CALL, serversort_cons_t, M_SortServerList, 0, NULL, NULL, 0, 0, NULL};
// autorecord demos for time attack // autorecord demos for time attack
static consvar_t cv_autorecord = {"autorecord", "Yes", 0, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL}; static consvar_t cv_autorecord = {"autorecord", "Yes", 0, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};

View file

@ -432,7 +432,7 @@ void Y_IntermissionDrawer(void)
if (data.match.encore) if (data.match.encore)
V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12-8, hilicol, "ENCORE MODE"); V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12-8, hilicol, "ENCORE MODE");
if (!gutter) if (data.match.numplayers > NUMFORNEWCOLUMN)
{ {
V_DrawFill(x+156, 24, 1, 158, 0); V_DrawFill(x+156, 24, 1, 158, 0);
V_DrawFill((x-3) - duptweak, 182, dupadjust-2, 1, 0); V_DrawFill((x-3) - duptweak, 182, dupadjust-2, 1, 0);
@ -476,8 +476,8 @@ void Y_IntermissionDrawer(void)
STRBUFCPY(strtime, data.match.name[i]); STRBUFCPY(strtime, data.match.name[i]);
if (!gutter) if (data.match.numplayers > NUMFORNEWCOLUMN)
V_DrawThinString(x+36, y, ((data.match.num[i] == whiteplayer) ? hilicol : 0)|V_ALLOWLOWERCASE|V_6WIDTHSPACE, strtime); V_DrawThinString(x+36, y-1, ((data.match.num[i] == whiteplayer) ? hilicol : 0)|V_ALLOWLOWERCASE|V_6WIDTHSPACE, strtime);
else else
V_DrawString(x+36, y, ((data.match.num[i] == whiteplayer) ? hilicol : 0)|V_ALLOWLOWERCASE, strtime); V_DrawString(x+36, y, ((data.match.num[i] == whiteplayer) ? hilicol : 0)|V_ALLOWLOWERCASE, strtime);
@ -490,17 +490,23 @@ void Y_IntermissionDrawer(void)
else else
snprintf(strtime, sizeof strtime, "(+ %d)", data.match.increase[data.match.num[i]]); snprintf(strtime, sizeof strtime, "(+ %d)", data.match.increase[data.match.num[i]]);
if (data.match.numplayers > NUMFORNEWCOLUMN)
V_DrawRightAlignedThinString(x+135+gutter, y-1, V_6WIDTHSPACE, strtime);
else
V_DrawRightAlignedString(x+120+gutter, y, 0, strtime); V_DrawRightAlignedString(x+120+gutter, y, 0, strtime);
} }
snprintf(strtime, sizeof strtime, "%d", data.match.val[i]); snprintf(strtime, sizeof strtime, "%d", data.match.val[i]);
if (data.match.numplayers > NUMFORNEWCOLUMN)
V_DrawRightAlignedThinString(x+152+gutter, y-1, V_6WIDTHSPACE, strtime);
else
V_DrawRightAlignedString(x+152+gutter, y, 0, strtime); V_DrawRightAlignedString(x+152+gutter, y, 0, strtime);
} }
else else
{ {
if (data.match.val[i] == (UINT32_MAX-1)) if (data.match.val[i] == (UINT32_MAX-1))
V_DrawRightAlignedThinString(x+152+gutter, y-1, 0, "NO CONTEST."); V_DrawRightAlignedThinString(x+152+gutter, y-1, (data.match.numplayers > NUMFORNEWCOLUMN ? V_6WIDTHSPACE : 0), "NO CONTEST.");
else else
{ {
if (intertype == int_race) if (intertype == int_race)
@ -509,12 +515,20 @@ void Y_IntermissionDrawer(void)
G_TicsToSeconds(data.match.val[i]), G_TicsToCentiseconds(data.match.val[i])); G_TicsToSeconds(data.match.val[i]), G_TicsToCentiseconds(data.match.val[i]));
strtime[sizeof strtime - 1] = '\0'; strtime[sizeof strtime - 1] = '\0';
if (data.match.numplayers > NUMFORNEWCOLUMN)
V_DrawRightAlignedThinString(x+152+gutter, y-1, V_6WIDTHSPACE, strtime);
else
V_DrawRightAlignedString(x+152+gutter, y, 0, strtime); V_DrawRightAlignedString(x+152+gutter, y, 0, strtime);
} }
else
{
if (data.match.numplayers > NUMFORNEWCOLUMN)
V_DrawRightAlignedThinString(x+152+gutter, y-1, V_6WIDTHSPACE, va("%i", data.match.val[i]));
else else
V_DrawRightAlignedString(x+152+gutter, y, 0, va("%i", data.match.val[i])); V_DrawRightAlignedString(x+152+gutter, y, 0, va("%i", data.match.val[i]));
} }
} }
}
if (dojitter) if (dojitter)
y++; y++;