mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-30 21:11:00 +00:00
Merge branch 'chars_cleanup' into 'master'
Chars cleanup See merge request KartKrew/Kart!64
This commit is contained in:
commit
0154ef1d01
14 changed files with 382 additions and 416 deletions
113
src/hu_stuff.c
113
src/hu_stuff.c
|
@ -87,7 +87,6 @@ patch_t *rmatcico;
|
||||||
patch_t *bmatcico;
|
patch_t *bmatcico;
|
||||||
patch_t *tagico;
|
patch_t *tagico;
|
||||||
patch_t *tallminus;
|
patch_t *tallminus;
|
||||||
patch_t *iconprefix[MAXSKINS]; // minimap icons
|
|
||||||
|
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
// coop hud
|
// coop hud
|
||||||
|
@ -2269,94 +2268,8 @@ void HU_drawPing(INT32 x, INT32 y, INT32 ping, boolean notext)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// HU_DrawTabRankings
|
// HU_DrawTabRankings -- moved to k_kart.c
|
||||||
//
|
//
|
||||||
void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer, INT32 hilicol)
|
|
||||||
{
|
|
||||||
INT32 i, j, rightoffset = 240;
|
|
||||||
const UINT8 *colormap;
|
|
||||||
INT32 dupadjust = (vid.width/vid.dupx), duptweak = (dupadjust - BASEVIDWIDTH)/2;
|
|
||||||
|
|
||||||
//this function is designed for 9 or less score lines only
|
|
||||||
//I_Assert(scorelines <= 9); -- not today bitch, kart fixed it up
|
|
||||||
|
|
||||||
V_DrawFill(1-duptweak, 26, dupadjust-2, 1, 0); // Draw a horizontal line because it looks nice!
|
|
||||||
if (scorelines > 8)
|
|
||||||
{
|
|
||||||
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.
|
|
||||||
rightoffset = 156;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < scorelines; i++)
|
|
||||||
{
|
|
||||||
char strtime[MAXPLAYERNAME+1];
|
|
||||||
|
|
||||||
if (players[tab[i].num].spectator || !players[tab[i].num].mo)
|
|
||||||
continue; //ignore them.
|
|
||||||
|
|
||||||
if (netgame) // don't draw it offline
|
|
||||||
{
|
|
||||||
if (tab[i].num != serverplayer)
|
|
||||||
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,
|
|
||||||
((tab[i].num == whiteplayer)
|
|
||||||
? hilicol|V_ALLOWLOWERCASE
|
|
||||||
: V_ALLOWLOWERCASE),
|
|
||||||
strtime);
|
|
||||||
|
|
||||||
if (players[tab[i].num].mo->color)
|
|
||||||
{
|
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE);
|
|
||||||
if (players[tab[i].num].mo->colorized)
|
|
||||||
colormap = R_GetTranslationColormap(TC_RAINBOW, players[tab[i].num].mo->color, GTC_CACHE);
|
|
||||||
else
|
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE);
|
|
||||||
|
|
||||||
V_DrawSmallMappedPatch(x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
|
|
||||||
if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] > 0)
|
|
||||||
{
|
|
||||||
INT32 bumperx = x-5;
|
|
||||||
for (j = 0; j < players[tab[i].num].kartstuff[k_bumper]; j++)
|
|
||||||
{
|
|
||||||
bumperx -= 3;
|
|
||||||
V_DrawSmallMappedPatch(bumperx, y+6, 0, W_CachePatchName("K_BLNICO", PU_CACHE), colormap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] <= 0)
|
|
||||||
V_DrawSmallScaledPatch(x-2, y-4, 0, W_CachePatchName("K_NOBLNS", PU_CACHE));
|
|
||||||
|
|
||||||
if (G_RaceGametype())
|
|
||||||
{
|
|
||||||
#define timestring(time) va("%i'%02i\"%02i", G_TicsToMinutes(time, true), G_TicsToSeconds(time), G_TicsToCentiseconds(time))
|
|
||||||
if (players[tab[i].num].exiting)
|
|
||||||
V_DrawRightAlignedString(x+rightoffset, y, hilicol, timestring(players[tab[i].num].realtime));
|
|
||||||
else if (players[tab[i].num].pflags & PF_TIMEOVER)
|
|
||||||
V_DrawRightAlignedThinString(x+rightoffset, y-1, 0, "NO CONTEST.");
|
|
||||||
else if (circuitmap)
|
|
||||||
V_DrawRightAlignedString(x+rightoffset, y, 0, va("Lap %d", tab[i].count));
|
|
||||||
#undef timestring
|
|
||||||
}
|
|
||||||
else
|
|
||||||
V_DrawRightAlignedString(x+rightoffset, y, 0, va("%u", tab[i].count));
|
|
||||||
|
|
||||||
y += 16;
|
|
||||||
if (i == 7)
|
|
||||||
{
|
|
||||||
y = 32;
|
|
||||||
x += BASEVIDWIDTH/2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// HU_DrawTeamTabRankings
|
// HU_DrawTeamTabRankings
|
||||||
|
@ -2418,15 +2331,15 @@ void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, I
|
||||||
if (players[tab[i].num].powers[pw_super])
|
if (players[tab[i].num].powers[pw_super])
|
||||||
{
|
{
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
||||||
V_DrawSmallMappedPatch (x, y-4, 0, superprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallMappedPatch (x, y-4, 0, facewantprefix[players[tab[i].num].skin], colormap);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
||||||
if (players[tab[i].num].health <= 0)
|
if (players[tab[i].num].health <= 0)
|
||||||
V_DrawSmallTranslucentMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallTranslucentMappedPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
|
||||||
else
|
else
|
||||||
V_DrawSmallMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallMappedPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
|
||||||
}
|
}
|
||||||
V_DrawRightAlignedThinString(x+120, y-1, ((players[tab[i].num].health > 0) ? 0 : V_TRANSLUCENT), va("%u", tab[i].count));
|
V_DrawRightAlignedThinString(x+120, y-1, ((players[tab[i].num].health > 0) ? 0 : V_TRANSLUCENT), va("%u", tab[i].count));
|
||||||
if (!splitscreen)
|
if (!splitscreen)
|
||||||
|
@ -2480,13 +2393,13 @@ void HU_DrawDualTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scoreline
|
||||||
{
|
{
|
||||||
colormap = colormaps;
|
colormap = colormaps;
|
||||||
if (players[tab[i].num].powers[pw_super])
|
if (players[tab[i].num].powers[pw_super])
|
||||||
V_DrawSmallScaledPatch (x, y-4, 0, superprefix[players[tab[i].num].skin]);
|
V_DrawSmallScaledPatch (x, y-4, 0, facewantprefix[players[tab[i].num].skin]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (players[tab[i].num].health <= 0)
|
if (players[tab[i].num].health <= 0)
|
||||||
V_DrawSmallTranslucentPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin]);
|
V_DrawSmallTranslucentPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin]);
|
||||||
else
|
else
|
||||||
V_DrawSmallScaledPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin]);
|
V_DrawSmallScaledPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2494,15 +2407,15 @@ void HU_DrawDualTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scoreline
|
||||||
if (players[tab[i].num].powers[pw_super])
|
if (players[tab[i].num].powers[pw_super])
|
||||||
{
|
{
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
||||||
V_DrawSmallMappedPatch (x, y-4, 0, superprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallMappedPatch (x, y-4, 0, facewantprefix[players[tab[i].num].skin], colormap);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo ? players[tab[i].num].mo->color : tab[i].color, GTC_CACHE);
|
||||||
if (players[tab[i].num].health <= 0)
|
if (players[tab[i].num].health <= 0)
|
||||||
V_DrawSmallTranslucentMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallTranslucentMappedPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
|
||||||
else
|
else
|
||||||
V_DrawSmallMappedPatch (x, y-4, 0, faceprefix[players[tab[i].num].skin], colormap);
|
V_DrawSmallMappedPatch (x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2736,7 +2649,7 @@ static void HU_DrawRankings(void)
|
||||||
tab[i].name = NULL;
|
tab[i].name = NULL;
|
||||||
tab[i].count = INT32_MAX;
|
tab[i].count = INT32_MAX;
|
||||||
|
|
||||||
if (!playeringame[i] || players[i].spectator)
|
if (!playeringame[i] || players[i].spectator || !players[i].mo)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
numplayersingame++;
|
numplayersingame++;
|
||||||
|
@ -2747,7 +2660,7 @@ static void HU_DrawRankings(void)
|
||||||
UINT8 lowestposition = MAXPLAYERS;
|
UINT8 lowestposition = MAXPLAYERS;
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
if (!playeringame[i] || players[i].spectator || completed[i])
|
if (completed[i] || !playeringame[i] || players[i].spectator || !players[i].mo)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (players[i].kartstuff[k_position] >= lowestposition)
|
if (players[i].kartstuff[k_position] >= lowestposition)
|
||||||
|
@ -2784,7 +2697,7 @@ static void HU_DrawRankings(void)
|
||||||
/*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 > 8) ? 32 : 40), 32, tab, scorelines, whiteplayer, hilicol);
|
HU_DrawTabRankings(((scorelines > 8) ? 32 : 40), 33, tab, scorelines, whiteplayer, hilicol);
|
||||||
/*else
|
/*else
|
||||||
HU_DrawDualTabRankings(32, 32, tab, scorelines, whiteplayer);*/
|
HU_DrawDualTabRankings(32, 32, tab, scorelines, whiteplayer);*/
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,6 @@ extern patch_t *rmatcico;
|
||||||
extern patch_t *bmatcico;
|
extern patch_t *bmatcico;
|
||||||
extern patch_t *tagico;
|
extern patch_t *tagico;
|
||||||
extern patch_t *tallminus;
|
extern patch_t *tallminus;
|
||||||
extern patch_t *iconprefix[MAXSKINS];
|
|
||||||
|
|
||||||
#define CHAT_BUFSIZE 64 // that's enough messages, right? We'll delete the older ones when that gets out of hand.
|
#define CHAT_BUFSIZE 64 // that's enough messages, right? We'll delete the older ones when that gets out of hand.
|
||||||
|
|
||||||
|
|
46
src/info.c
46
src/info.c
|
@ -97,25 +97,25 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_PLAY, 3, 1, {NULL}, 0, 0, S_KART_STND1_L}, // S_KART_STND2_L D
|
{SPR_PLAY, 3, 1, {NULL}, 0, 0, S_KART_STND1_L}, // S_KART_STND2_L D
|
||||||
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_STND2_R}, // S_KART_STND1_R E
|
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_STND2_R}, // S_KART_STND1_R E
|
||||||
{SPR_PLAY, 5, 1, {NULL}, 0, 0, S_KART_STND1_R}, // S_KART_STND2_R F
|
{SPR_PLAY, 5, 1, {NULL}, 0, 0, S_KART_STND1_R}, // S_KART_STND2_R F
|
||||||
{SPR_PLAY, 6, 1, {NULL}, 0, 0, S_KART_WALK2}, // S_KART_WALK1 G
|
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_WALK2}, // S_KART_WALK1 J
|
||||||
{SPR_PLAY, 7, 1, {NULL}, 0, 0, S_KART_WALK1}, // S_KART_WALK2 H
|
{SPR_PLAY, 6, 1, {NULL}, 0, 0, S_KART_WALK1}, // S_KART_WALK2 G
|
||||||
{SPR_PLAY, 8, 1, {NULL}, 0, 0, S_KART_WALK2_L}, // S_KART_WALK1_L I
|
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_WALK2_L}, // S_KART_WALK1_L K
|
||||||
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_WALK1_L}, // S_KART_WALK2_L J
|
{SPR_PLAY, 7, 1, {NULL}, 0, 0, S_KART_WALK1_L}, // S_KART_WALK2_L H
|
||||||
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_WALK2_R}, // S_KART_WALK1_R K
|
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_WALK2_R}, // S_KART_WALK1_R L
|
||||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_WALK1_R}, // S_KART_WALK2_R L
|
{SPR_PLAY, 8, 1, {NULL}, 0, 0, S_KART_WALK1_R}, // S_KART_WALK2_R I
|
||||||
{SPR_PLAY, 12, 1, {NULL}, 0, 0, S_KART_RUN2}, // S_KART_RUN1 M
|
{SPR_PLAY, 0, 1, {NULL}, 0, 0, S_KART_RUN2}, // S_KART_RUN1 A
|
||||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_RUN1}, // S_KART_RUN2 N
|
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_RUN1}, // S_KART_RUN2 J
|
||||||
{SPR_PLAY, 14, 1, {NULL}, 0, 0, S_KART_RUN2_L}, // S_KART_RUN1_L O
|
{SPR_PLAY, 2, 1, {NULL}, 0, 0, S_KART_RUN2_L}, // S_KART_RUN1_L C
|
||||||
{SPR_PLAY, 15, 1, {NULL}, 0, 0, S_KART_RUN1_L}, // S_KART_RUN2_L P
|
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_RUN1_L}, // S_KART_RUN2_L K
|
||||||
{SPR_PLAY, 16, 1, {NULL}, 0, 0, S_KART_RUN2_R}, // S_KART_RUN1_R Q
|
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_RUN2_R}, // S_KART_RUN1_R E
|
||||||
{SPR_PLAY, 17, 1, {NULL}, 0, 0, S_KART_RUN1_R}, // S_KART_RUN2_R R
|
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_RUN1_R}, // S_KART_RUN2_R L
|
||||||
{SPR_PLAY, 18, 1, {NULL}, 0, 0, S_KART_DRIFT2_L}, // S_KART_DRIFT1_L S
|
{SPR_PLAY, 12, 1, {NULL}, 0, 0, S_KART_DRIFT2_L}, // S_KART_DRIFT1_L M
|
||||||
{SPR_PLAY, 19, 1, {NULL}, 0, 0, S_KART_DRIFT1_L}, // S_KART_DRIFT2_L T
|
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT1_L}, // S_KART_DRIFT2_L N
|
||||||
{SPR_PLAY, 20, 1, {NULL}, 0, 0, S_KART_DRIFT2_R}, // S_KART_DRIFT1_R U
|
{SPR_PLAY, 14, 1, {NULL}, 0, 0, S_KART_DRIFT2_R}, // S_KART_DRIFT1_R O
|
||||||
{SPR_PLAY, 21, 1, {NULL}, 0, 0, S_KART_DRIFT1_R}, // S_KART_DRIFT2_R V
|
{SPR_PLAY, 15, 1, {NULL}, 0, 0, S_KART_DRIFT1_R}, // S_KART_DRIFT2_R P
|
||||||
{SPR_PLAY, 22, -1, {NULL}, 0, 0, S_KART_SPIN}, // S_KART_SPIN W
|
{SPR_PLAY, 16, -1, {NULL}, 0, 0, S_KART_SPIN}, // S_KART_SPIN Q
|
||||||
{SPR_PLAY, 22, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_PAIN W
|
{SPR_PLAY, 16, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_PAIN Q
|
||||||
{SPR_PLAY, 23, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_SQUISH X
|
{SPR_PLAY, 17, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_SQUISH R
|
||||||
/*
|
/*
|
||||||
{SPR_PLAY, 0, 105, {NULL}, 0, 0, S_PLAY_TAP1}, // S_PLAY_STND
|
{SPR_PLAY, 0, 105, {NULL}, 0, 0, S_PLAY_TAP1}, // S_PLAY_STND
|
||||||
{SPR_PLAY, 1, 16, {NULL}, 0, 0, S_PLAY_TAP2}, // S_PLAY_TAP1
|
{SPR_PLAY, 1, 16, {NULL}, 0, 0, S_PLAY_TAP2}, // S_PLAY_TAP1
|
||||||
|
@ -178,14 +178,14 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
// 1-Up Box Sprites (uses player sprite)
|
// 1-Up Box Sprites (uses player sprite)
|
||||||
// Kart: default to signpost just to ensure there are no missing sprite errors...
|
// Kart: default to signpost just to ensure there are no missing sprite errors...
|
||||||
{SPR_PLAY, 24, 2, {NULL}, 0, 16, S_PLAY_BOX2}, // S_PLAY_BOX1
|
{SPR_PLAY, 18, 2, {NULL}, 0, 16, S_PLAY_BOX2}, // S_PLAY_BOX1
|
||||||
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_PLAY_BOX1}, // S_PLAY_BOX2
|
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_PLAY_BOX1}, // S_PLAY_BOX2
|
||||||
{SPR_PLAY, 24, 4, {NULL}, 0, 4, S_PLAY_ICON2}, // S_PLAY_ICON1
|
{SPR_PLAY, 18, 4, {NULL}, 0, 4, S_PLAY_ICON2}, // S_PLAY_ICON1
|
||||||
{SPR_NULL, 0, 12, {NULL}, 0, 0, S_PLAY_ICON3}, // S_PLAY_ICON2
|
{SPR_NULL, 0, 12, {NULL}, 0, 0, S_PLAY_ICON3}, // S_PLAY_ICON2
|
||||||
{SPR_PLAY, 24, 18, {NULL}, 0, 4, S_NULL}, // S_PLAY_ICON3
|
{SPR_PLAY, 18, 18, {NULL}, 0, 4, S_NULL}, // S_PLAY_ICON3
|
||||||
|
|
||||||
// Level end sign (uses player sprite)
|
// Level end sign (uses player sprite)
|
||||||
{SPR_PLAY, 24, 1, {NULL}, 0, 24, S_PLAY_SIGN}, // S_PLAY_SIGN
|
{SPR_PLAY, 18, 1, {NULL}, 0, 24, S_PLAY_SIGN}, // S_PLAY_SIGN S
|
||||||
|
|
||||||
// Blue Crawla
|
// Blue Crawla
|
||||||
{SPR_POSS, 0, 5, {A_Look}, 0, 0, S_POSS_STND}, // S_POSS_STND
|
{SPR_POSS, 0, 5, {A_Look}, 0, 0, S_POSS_STND}, // S_POSS_STND
|
||||||
|
|
256
src/k_kart.c
256
src/k_kart.c
|
@ -5589,13 +5589,10 @@ static patch_t *kp_racefinish[6];
|
||||||
static patch_t *kp_positionnum[NUMPOSNUMS][NUMPOSFRAMES];
|
static patch_t *kp_positionnum[NUMPOSNUMS][NUMPOSFRAMES];
|
||||||
static patch_t *kp_winnernum[NUMPOSFRAMES];
|
static patch_t *kp_winnernum[NUMPOSFRAMES];
|
||||||
|
|
||||||
static patch_t *kp_facenull;
|
static patch_t *kp_facenum[MAXPLAYERS+1];
|
||||||
static patch_t *kp_facefirst;
|
|
||||||
static patch_t *kp_facesecond;
|
|
||||||
static patch_t *kp_facethird;
|
|
||||||
static patch_t *kp_facefourth;
|
|
||||||
|
|
||||||
static patch_t *kp_rankbumper;
|
static patch_t *kp_rankbumper;
|
||||||
|
static patch_t *kp_tinybumpera, *kp_tinybumperb;
|
||||||
static patch_t *kp_ranknobumpers;
|
static patch_t *kp_ranknobumpers;
|
||||||
|
|
||||||
static patch_t *kp_battlewin;
|
static patch_t *kp_battlewin;
|
||||||
|
@ -5714,14 +5711,18 @@ void K_LoadKartHUDGraphics(void)
|
||||||
kp_winnernum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
kp_winnernum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
}
|
}
|
||||||
|
|
||||||
kp_facenull = W_CachePatchName("K_PFACE0", PU_HUDGFX);
|
sprintf(buffer, "OPPRNKxx");
|
||||||
kp_facefirst = W_CachePatchName("K_PFACE1", PU_HUDGFX);
|
for (i = 0; i <= MAXPLAYERS; i++)
|
||||||
kp_facesecond = W_CachePatchName("K_PFACE2", PU_HUDGFX);
|
{
|
||||||
kp_facethird = W_CachePatchName("K_PFACE3", PU_HUDGFX);
|
buffer[6] = '0'+(i/10);
|
||||||
kp_facefourth = W_CachePatchName("K_PFACE4", PU_HUDGFX);
|
buffer[7] = '0'+(i%10);
|
||||||
|
kp_facenum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
|
}
|
||||||
|
|
||||||
// Extra ranking icons
|
// Extra ranking icons
|
||||||
kp_rankbumper = W_CachePatchName("K_BLNICO", PU_HUDGFX);
|
kp_rankbumper = W_CachePatchName("K_BLNICO", PU_HUDGFX);
|
||||||
|
kp_tinybumpera = W_CachePatchName("K_BLNA", PU_HUDGFX);
|
||||||
|
kp_tinybumperb = W_CachePatchName("K_BLNB", PU_HUDGFX);
|
||||||
kp_ranknobumpers = W_CachePatchName("K_NOBLNS", PU_HUDGFX);
|
kp_ranknobumpers = W_CachePatchName("K_NOBLNS", PU_HUDGFX);
|
||||||
|
|
||||||
// Battle graphics
|
// Battle graphics
|
||||||
|
@ -6389,7 +6390,7 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, bo
|
||||||
}
|
}
|
||||||
|
|
||||||
V_DrawRightAlignedString(workx, worky, splitflags, targettext);
|
V_DrawRightAlignedString(workx, worky, splitflags, targettext);
|
||||||
workx -= 72; //69; -- good night sweet prince
|
workx -= 67;
|
||||||
V_DrawSmallScaledPatch(workx + 4, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
|
V_DrawSmallScaledPatch(workx + 4, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -6402,7 +6403,7 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, bo
|
||||||
splitflags = (splitflags &~ V_HUDTRANSHALF)|V_HUDTRANS;
|
splitflags = (splitflags &~ V_HUDTRANSHALF)|V_HUDTRANS;
|
||||||
while (curemb--)
|
while (curemb--)
|
||||||
{
|
{
|
||||||
workx -= 16;
|
workx -= 12;
|
||||||
V_DrawSmallMappedPatch(workx + 4, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
|
V_DrawSmallMappedPatch(workx + 4, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6484,12 +6485,11 @@ static boolean K_drawKartPositionFaces(void)
|
||||||
// FACE_Y = 72; // 72
|
// FACE_Y = 72; // 72
|
||||||
|
|
||||||
INT32 Y = FACE_Y+9; // +9 to offset where it's being drawn if there are more than one
|
INT32 Y = FACE_Y+9; // +9 to offset where it's being drawn if there are more than one
|
||||||
INT32 i, j, ranklines;
|
INT32 i, j, ranklines, strank = 0;
|
||||||
boolean completed[MAXPLAYERS];
|
boolean completed[MAXPLAYERS];
|
||||||
INT32 rankplayer[MAXPLAYERS];
|
INT32 rankplayer[MAXPLAYERS];
|
||||||
INT32 bumperx, numplayersingame = 0;
|
INT32 bumperx, numplayersingame = 0;
|
||||||
UINT8 *colormap;
|
UINT8 *colormap;
|
||||||
patch_t *localpatch = kp_facenull;
|
|
||||||
|
|
||||||
ranklines = 0;
|
ranklines = 0;
|
||||||
memset(completed, 0, sizeof (completed));
|
memset(completed, 0, sizeof (completed));
|
||||||
|
@ -6510,32 +6510,62 @@ static boolean K_drawKartPositionFaces(void)
|
||||||
|
|
||||||
for (j = 0; j < numplayersingame; j++)
|
for (j = 0; j < numplayersingame; j++)
|
||||||
{
|
{
|
||||||
|
UINT8 lowestposition = MAXPLAYERS;
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
if (playeringame[i] && completed[i] == false && players[i].mo && !players[i].spectator
|
if (completed[i] || !playeringame[i] || players[i].spectator || !players[i].mo)
|
||||||
&& (rankplayer[ranklines] < 0 || players[i].kartstuff[k_position] < players[rankplayer[ranklines]].kartstuff[k_position]))
|
continue;
|
||||||
{
|
|
||||||
|
if (players[i].kartstuff[k_position] >= lowestposition)
|
||||||
|
continue;
|
||||||
|
|
||||||
rankplayer[ranklines] = i;
|
rankplayer[ranklines] = i;
|
||||||
|
lowestposition = players[i].kartstuff[k_position];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
i = rankplayer[ranklines];
|
i = rankplayer[ranklines];
|
||||||
|
|
||||||
completed[i] = true;
|
completed[i] = true;
|
||||||
|
|
||||||
if (ranklines == 4)
|
if (players+i == stplyr)
|
||||||
break; // Only draw the top 4 players
|
strank = ranklines;
|
||||||
|
|
||||||
|
//if (ranklines == 5)
|
||||||
|
//break; // Only draw the top 5 players -- we do this a different way now...
|
||||||
|
|
||||||
ranklines++;
|
ranklines++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ranklines < 5)
|
||||||
Y -= (9*ranklines);
|
Y -= (9*ranklines);
|
||||||
|
else
|
||||||
|
Y -= (9*5);
|
||||||
|
|
||||||
for (i = 0; i < ranklines; i++)
|
if (G_BattleGametype() || strank <= 2) // too close to the top, or playing battle?
|
||||||
{
|
{
|
||||||
if (players[rankplayer[i]].spectator) continue; // Spectators are ignored
|
i = 0;
|
||||||
|
if (ranklines > 5) // could be both...
|
||||||
|
ranklines = 5;
|
||||||
|
}
|
||||||
|
else if (strank+3 > ranklines) // too close to the bottom?
|
||||||
|
{
|
||||||
|
i = ranklines - 5;
|
||||||
|
if (ranklines < 0)
|
||||||
|
ranklines = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i = strank-2;
|
||||||
|
ranklines = strank+3;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; i < ranklines; i++)
|
||||||
|
{
|
||||||
|
if (!playeringame[rankplayer[i]]) continue;
|
||||||
|
if (players[rankplayer[i]].spectator) continue;
|
||||||
if (!players[rankplayer[i]].mo) continue;
|
if (!players[rankplayer[i]].mo) continue;
|
||||||
|
|
||||||
bumperx = FACE_X+18;
|
bumperx = FACE_X+19;
|
||||||
|
|
||||||
if (players[rankplayer[i]].mo->color)
|
if (players[rankplayer[i]].mo->color)
|
||||||
{
|
{
|
||||||
|
@ -6545,31 +6575,28 @@ static boolean K_drawKartPositionFaces(void)
|
||||||
else
|
else
|
||||||
colormap = R_GetTranslationColormap(players[rankplayer[i]].skin, players[rankplayer[i]].mo->color, GTC_CACHE);
|
colormap = R_GetTranslationColormap(players[rankplayer[i]].skin, players[rankplayer[i]].mo->color, GTC_CACHE);
|
||||||
|
|
||||||
V_DrawSmallMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin], colormap);
|
V_DrawMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, facerankprefix[players[rankplayer[i]].skin], colormap);
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
for (j = 0; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
V_DrawMappedPatch(bumperx-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_tinybumpera, colormap);
|
||||||
|
for (j = 1; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
||||||
{
|
{
|
||||||
V_DrawSmallMappedPatch(bumperx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankbumper, colormap);
|
bumperx += 5;
|
||||||
bumperx += 3;
|
V_DrawMappedPatch(bumperx, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_tinybumperb, colormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draws the little number over the face
|
|
||||||
switch (players[rankplayer[i]].kartstuff[k_position])
|
|
||||||
{
|
|
||||||
case 1: localpatch = kp_facefirst; break;
|
|
||||||
case 2: localpatch = kp_facesecond; break;
|
|
||||||
case 3: localpatch = kp_facethird; break;
|
|
||||||
case 4: localpatch = kp_facefourth; break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
|
||||||
V_DrawSmallScaledPatch(FACE_X-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknobumpers);
|
V_DrawScaledPatch(FACE_X-4, Y-3, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknobumpers);
|
||||||
else
|
else
|
||||||
V_DrawSmallScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, localpatch);
|
{
|
||||||
|
INT32 pos = players[rankplayer[i]].kartstuff[k_position];
|
||||||
|
if (pos < 0 || pos > MAXPLAYERS)
|
||||||
|
pos = 0;
|
||||||
|
// Draws the little number over the face
|
||||||
|
V_DrawScaledPatch(FACE_X-5, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_facenum[pos]);
|
||||||
|
}
|
||||||
|
|
||||||
Y += 18;
|
Y += 18;
|
||||||
}
|
}
|
||||||
|
@ -6577,6 +6604,103 @@ static boolean K_drawKartPositionFaces(void)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// HU_DrawTabRankings -- moved here to take advantage of kart stuff!
|
||||||
|
//
|
||||||
|
void HU_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, INT32 whiteplayer, INT32 hilicol)
|
||||||
|
{
|
||||||
|
INT32 i, rightoffset = 240;
|
||||||
|
const UINT8 *colormap;
|
||||||
|
INT32 dupadjust = (vid.width/vid.dupx), duptweak = (dupadjust - BASEVIDWIDTH)/2;
|
||||||
|
|
||||||
|
//this function is designed for 9 or less score lines only
|
||||||
|
//I_Assert(scorelines <= 9); -- not today bitch, kart fixed it up
|
||||||
|
|
||||||
|
V_DrawFill(1-duptweak, 26, dupadjust-2, 1, 0); // Draw a horizontal line because it looks nice!
|
||||||
|
if (scorelines > 8)
|
||||||
|
{
|
||||||
|
V_DrawFill(160, 26, 1, 147, 0); // Draw a vertical line to separate the two sides.
|
||||||
|
V_DrawFill(1-duptweak, 173, dupadjust-2, 1, 0); // And a horizontal line near the bottom.
|
||||||
|
rightoffset = (BASEVIDWIDTH/2) - 4 - x;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < scorelines; i++)
|
||||||
|
{
|
||||||
|
char strtime[MAXPLAYERNAME+1];
|
||||||
|
|
||||||
|
if (players[tab[i].num].spectator || !players[tab[i].num].mo)
|
||||||
|
continue; //ignore them.
|
||||||
|
|
||||||
|
if (netgame // don't draw it offline
|
||||||
|
&& tab[i].num != serverplayer)
|
||||||
|
HU_drawPing(x + ((i < 8) ? -19 : rightoffset + 13), 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,
|
||||||
|
((tab[i].num == whiteplayer)
|
||||||
|
? hilicol|V_ALLOWLOWERCASE
|
||||||
|
: V_ALLOWLOWERCASE),
|
||||||
|
strtime);
|
||||||
|
|
||||||
|
if (players[tab[i].num].mo->color)
|
||||||
|
{
|
||||||
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE);
|
||||||
|
if (players[tab[i].num].mo->colorized)
|
||||||
|
colormap = R_GetTranslationColormap(TC_RAINBOW, players[tab[i].num].mo->color, GTC_CACHE);
|
||||||
|
else
|
||||||
|
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE);
|
||||||
|
|
||||||
|
V_DrawMappedPatch(x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
|
||||||
|
/*if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] > 0) -- not enough space for this
|
||||||
|
{
|
||||||
|
INT32 bumperx = x+19;
|
||||||
|
V_DrawMappedPatch(bumperx-2, y-4, 0, kp_tinybumpera, colormap);
|
||||||
|
for (j = 1; j < players[tab[i].num].kartstuff[k_bumper]; j++)
|
||||||
|
{
|
||||||
|
bumperx += 5;
|
||||||
|
V_DrawMappedPatch(bumperx, y-4, 0, kp_tinybumperb, colormap);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] <= 0)
|
||||||
|
V_DrawScaledPatch(x-4, y-7, 0, kp_ranknobumpers);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
INT32 pos = players[tab[i].num].kartstuff[k_position];
|
||||||
|
if (pos < 0 || pos > MAXPLAYERS)
|
||||||
|
pos = 0;
|
||||||
|
// Draws the little number over the face
|
||||||
|
V_DrawScaledPatch(x-5, y+6, 0, kp_facenum[pos]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (G_RaceGametype())
|
||||||
|
{
|
||||||
|
#define timestring(time) va("%i'%02i\"%02i", G_TicsToMinutes(time, true), G_TicsToSeconds(time), G_TicsToCentiseconds(time))
|
||||||
|
if (players[tab[i].num].exiting)
|
||||||
|
V_DrawRightAlignedString(x+rightoffset, y, hilicol, timestring(players[tab[i].num].realtime));
|
||||||
|
else if (players[tab[i].num].pflags & PF_TIMEOVER)
|
||||||
|
V_DrawRightAlignedThinString(x+rightoffset, y-1, 0, "NO CONTEST.");
|
||||||
|
else if (circuitmap)
|
||||||
|
V_DrawRightAlignedString(x+rightoffset, y, 0, va("Lap %d", tab[i].count));
|
||||||
|
#undef timestring
|
||||||
|
}
|
||||||
|
else
|
||||||
|
V_DrawRightAlignedString(x+rightoffset, y, 0, va("%u", tab[i].count));
|
||||||
|
|
||||||
|
y += 18;
|
||||||
|
if (i == 7)
|
||||||
|
{
|
||||||
|
y = 33;
|
||||||
|
x = (BASEVIDWIDTH/2) + 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void K_drawKartLaps(void)
|
static void K_drawKartLaps(void)
|
||||||
{
|
{
|
||||||
INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTOLEFT);
|
INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTOLEFT);
|
||||||
|
@ -6715,7 +6839,7 @@ static void K_drawKartWanted(void)
|
||||||
|
|
||||||
for (i = 0; i < numwanted; i++)
|
for (i = 0; i < numwanted; i++)
|
||||||
{
|
{
|
||||||
INT32 x = WANT_X+7, y = WANT_Y+20;
|
INT32 x = WANT_X+8, y = WANT_Y+21;
|
||||||
fixed_t scale = FRACUNIT/2;
|
fixed_t scale = FRACUNIT/2;
|
||||||
player_t *p = &players[battlewanted[i]];
|
player_t *p = &players[battlewanted[i]];
|
||||||
|
|
||||||
|
@ -6723,24 +6847,19 @@ static void K_drawKartWanted(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (numwanted == 1)
|
if (numwanted == 1)
|
||||||
{
|
|
||||||
x++; //y++;
|
|
||||||
scale = FRACUNIT;
|
scale = FRACUNIT;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (i & 1)
|
if (i & 1)
|
||||||
x += 18;
|
x += 16;
|
||||||
if (i > 1)
|
if (i > 1)
|
||||||
y += 17;
|
y += 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (players[battlewanted[i]].skincolor == 0)
|
if (players[battlewanted[i]].skincolor)
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, V_HUDTRANS|V_SNAPTORIGHT|V_SNAPTOBOTTOM, faceprefix[p->skin], NULL);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
colormap = R_GetTranslationColormap(TC_RAINBOW, p->skincolor, GTC_CACHE);
|
colormap = R_GetTranslationColormap(TC_RAINBOW, p->skincolor, GTC_CACHE);
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, V_HUDTRANS|V_SNAPTORIGHT|V_SNAPTOBOTTOM, faceprefix[p->skin], colormap);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, FRACUNIT, V_HUDTRANS|V_SNAPTORIGHT|V_SNAPTOBOTTOM, (scale == FRACUNIT ? facewantprefix[p->skin] : facerankprefix[p->skin]), colormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6795,35 +6914,6 @@ static void K_drawKartPlayerCheck(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void K_LoadIconGraphics(char *facestr, INT32 skinnum)
|
|
||||||
{
|
|
||||||
char namelump[9];
|
|
||||||
|
|
||||||
// hack: make sure base face name is no more than 8 chars
|
|
||||||
if (strlen(facestr) > 8)
|
|
||||||
facestr[8] = '\0';
|
|
||||||
strcpy(namelump, facestr); // copy base name
|
|
||||||
|
|
||||||
iconprefix[skinnum] = W_CachePatchName(namelump, PU_HUDGFX);
|
|
||||||
iconfreed[skinnum] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0 //unused
|
|
||||||
static void K_UnLoadIconGraphics(INT32 skinnum)
|
|
||||||
{
|
|
||||||
Z_Free(iconprefix[skinnum]);
|
|
||||||
iconfreed[skinnum] = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void K_ReloadSkinIconGraphics(void)
|
|
||||||
{
|
|
||||||
INT32 i;
|
|
||||||
|
|
||||||
for (i = 0; i < numskins; i++)
|
|
||||||
K_LoadIconGraphics(skins[i].iconprefix, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, patch_t *AutomapPic)
|
static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, patch_t *AutomapPic)
|
||||||
{
|
{
|
||||||
// amnum xpos & ypos are the icon's speed around the HUD.
|
// amnum xpos & ypos are the icon's speed around the HUD.
|
||||||
|
@ -6890,18 +6980,18 @@ static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, pat
|
||||||
if (encoremode)
|
if (encoremode)
|
||||||
amnumxpos = -amnumxpos;
|
amnumxpos = -amnumxpos;
|
||||||
|
|
||||||
amxpos = amnumxpos + ((x + AutomapPic->width/2 - (iconprefix[skin]->width/2))<<FRACBITS);
|
amxpos = amnumxpos + ((x + AutomapPic->width/2 - (facemmapprefix[skin]->width/2))<<FRACBITS);
|
||||||
amypos = amnumypos + ((y + AutomapPic->height/2 - (iconprefix[skin]->height/2))<<FRACBITS);
|
amypos = amnumypos + ((y + AutomapPic->height/2 - (facemmapprefix[skin]->height/2))<<FRACBITS);
|
||||||
|
|
||||||
// do we want this? it feels unnecessary. easier to just modify the amnumxpos?
|
// do we want this? it feels unnecessary. easier to just modify the amnumxpos?
|
||||||
/*if (encoremode)
|
/*if (encoremode)
|
||||||
{
|
{
|
||||||
flags |= V_FLIP;
|
flags |= V_FLIP;
|
||||||
amxpos = -amnumxpos + ((x + AutomapPic->width/2 + (iconprefix[skin]->width/2))<<FRACBITS);
|
amxpos = -amnumxpos + ((x + AutomapPic->width/2 + (facemmapprefix[skin]->width/2))<<FRACBITS);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (!mo->color) // 'default' color
|
if (!mo->color) // 'default' color
|
||||||
V_DrawSciencePatch(amxpos, amypos, flags, iconprefix[skin], FRACUNIT);
|
V_DrawSciencePatch(amxpos, amypos, flags, facemmapprefix[skin], FRACUNIT);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UINT8 *colormap;
|
UINT8 *colormap;
|
||||||
|
@ -6909,7 +6999,7 @@ static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, pat
|
||||||
colormap = R_GetTranslationColormap(TC_RAINBOW, mo->color, 0);
|
colormap = R_GetTranslationColormap(TC_RAINBOW, mo->color, 0);
|
||||||
else
|
else
|
||||||
colormap = R_GetTranslationColormap(skin, mo->color, 0);
|
colormap = R_GetTranslationColormap(skin, mo->color, 0);
|
||||||
V_DrawFixedPatch(amxpos, amypos, FRACUNIT, flags, iconprefix[skin], colormap);
|
V_DrawFixedPatch(amxpos, amypos, FRACUNIT, flags, facemmapprefix[skin], colormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,8 +68,6 @@ fixed_t K_FindCheckX(fixed_t px, fixed_t py, angle_t ang, fixed_t mx, fixed_t my
|
||||||
void K_drawKartHUD(void);
|
void K_drawKartHUD(void);
|
||||||
void K_drawKartFreePlay(UINT32 flashtime);
|
void K_drawKartFreePlay(UINT32 flashtime);
|
||||||
void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, boolean playing);
|
void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, boolean playing);
|
||||||
void K_LoadIconGraphics(char *facestr, INT32 skinnum);
|
|
||||||
void K_ReloadSkinIconGraphics(void);
|
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
#endif // __K_KART__
|
#endif // __K_KART__
|
||||||
|
|
|
@ -27,9 +27,9 @@ enum skin {
|
||||||
skin_flags,
|
skin_flags,
|
||||||
skin_realname,
|
skin_realname,
|
||||||
skin_hudname,
|
skin_hudname,
|
||||||
skin_charsel,
|
skin_facerank,
|
||||||
skin_face,
|
skin_facewant,
|
||||||
skin_superface,
|
skin_facemmap,
|
||||||
skin_ability,
|
skin_ability,
|
||||||
skin_ability2,
|
skin_ability2,
|
||||||
skin_thokitem,
|
skin_thokitem,
|
||||||
|
@ -61,9 +61,9 @@ static const char *const skin_opt[] = {
|
||||||
"flags",
|
"flags",
|
||||||
"realname",
|
"realname",
|
||||||
"hudname",
|
"hudname",
|
||||||
"charsel",
|
"facerank",
|
||||||
"face",
|
"facewant",
|
||||||
"superface",
|
"facemmap",
|
||||||
"ability",
|
"ability",
|
||||||
"ability2",
|
"ability2",
|
||||||
"thokitem",
|
"thokitem",
|
||||||
|
@ -121,23 +121,23 @@ static int skin_get(lua_State *L)
|
||||||
case skin_hudname:
|
case skin_hudname:
|
||||||
lua_pushstring(L, skin->hudname);
|
lua_pushstring(L, skin->hudname);
|
||||||
break;
|
break;
|
||||||
case skin_charsel:
|
case skin_facerank:
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
if (!skin->charsel[i])
|
if (!skin->facerank[i])
|
||||||
break;
|
break;
|
||||||
lua_pushlstring(L, skin->charsel, i);
|
lua_pushlstring(L, skin->facerank, i);
|
||||||
break;
|
break;
|
||||||
case skin_face:
|
case skin_facewant:
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
if (!skin->face[i])
|
if (!skin->facewant[i])
|
||||||
break;
|
break;
|
||||||
lua_pushlstring(L, skin->face, i);
|
lua_pushlstring(L, skin->facewant, i);
|
||||||
break;
|
break;
|
||||||
case skin_superface:
|
case skin_facemmap:
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
if (!skin->superface[i])
|
if (!skin->facemmap[i])
|
||||||
break;
|
break;
|
||||||
lua_pushlstring(L, skin->superface, i);
|
lua_pushlstring(L, skin->facemmap, i);
|
||||||
break;
|
break;
|
||||||
case skin_ability:
|
case skin_ability:
|
||||||
lua_pushinteger(L, skin->ability);
|
lua_pushinteger(L, skin->ability);
|
||||||
|
|
104
src/m_cond.c
104
src/m_cond.c
|
@ -33,64 +33,64 @@ conditionset_t conditionSets[MAXCONDITIONSETS];
|
||||||
emblem_t emblemlocations[MAXEMBLEMS] =
|
emblem_t emblemlocations[MAXEMBLEMS] =
|
||||||
{
|
{
|
||||||
// SILVER TIME TROPHIES
|
// SILVER TIME TROPHIES
|
||||||
{ET_TIME, 0,0,0, 1, 'T', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // Green Hills Zone - Time: 1:30
|
{ET_TIME, 0,0,0, 1, 'B', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // Green Hills Zone - Time: 1:30
|
||||||
{ET_TIME, 0,0,0, 2, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Pipe Speedway Zone - Time: 1:50
|
{ET_TIME, 0,0,0, 2, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Pipe Speedway Zone - Time: 1:50
|
||||||
{ET_TIME, 0,0,0, 3, 'T', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Dark Race - 2:15
|
{ET_TIME, 0,0,0, 3, 'B', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Dark Race - 2:15
|
||||||
{ET_TIME, 0,0,0, 4, 'T', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Darkvile Garden Zone - 1:45
|
{ET_TIME, 0,0,0, 4, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Darkvile Garden Zone - 1:45
|
||||||
{ET_TIME, 0,0,0, 5, 'T', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Northern District Zone - 2:20
|
{ET_TIME, 0,0,0, 5, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Northern District Zone - 2:20
|
||||||
{ET_TIME, 0,0,0, 6, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Sonic Speedway Zone - 2:00
|
{ET_TIME, 0,0,0, 6, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Sonic Speedway Zone - 2:00
|
||||||
{ET_TIME, 0,0,0, 7, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Egg Zeppelin Zone - 2:00
|
{ET_TIME, 0,0,0, 7, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Egg Zeppelin Zone - 2:00
|
||||||
{ET_TIME, 0,0,0, 8, 'T', SKINCOLOR_GREY, 95*TICRATE, "", 0}, // Hill Top Zone - 1:35
|
{ET_TIME, 0,0,0, 8, 'B', SKINCOLOR_GREY, 95*TICRATE, "", 0}, // Hill Top Zone - 1:35
|
||||||
{ET_TIME, 0,0,0, 9, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Sunbeam Paradise Zone - 1:50
|
{ET_TIME, 0,0,0, 9, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Sunbeam Paradise Zone - 1:50
|
||||||
{ET_TIME, 0,0,0, 10, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Diamond Square Zone - 1:50
|
{ET_TIME, 0,0,0, 10, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Diamond Square Zone - 1:50
|
||||||
{ET_TIME, 0,0,0, 11, 'T', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Misty Maze Zone - 2:30
|
{ET_TIME, 0,0,0, 11, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Misty Maze Zone - 2:30
|
||||||
{ET_TIME, 0,0,0, 12, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Midnight Meadow Zone - 2:00
|
{ET_TIME, 0,0,0, 12, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Midnight Meadow Zone - 2:00
|
||||||
{ET_TIME, 0,0,0, 13, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Megablock Castle Zone - 2:10
|
{ET_TIME, 0,0,0, 13, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Megablock Castle Zone - 2:10
|
||||||
{ET_TIME, 0,0,0, 14, 'T', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Sub-Zero Peak Zone - 2:30
|
{ET_TIME, 0,0,0, 14, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Sub-Zero Peak Zone - 2:30
|
||||||
{ET_TIME, 0,0,0, 15, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Sapphire Coast Zone - 1:50
|
{ET_TIME, 0,0,0, 15, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Sapphire Coast Zone - 1:50
|
||||||
{ET_TIME, 0,0,0, 16, 'T', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Silvercloud Island Zone - 2:20
|
{ET_TIME, 0,0,0, 16, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Silvercloud Island Zone - 2:20
|
||||||
{ET_TIME, 0,0,0, 17, 'T', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Petroleum Refinery Zone - 2:15
|
{ET_TIME, 0,0,0, 17, 'B', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Petroleum Refinery Zone - 2:15
|
||||||
{ET_TIME, 0,0,0, 18, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Canyon Rush Zone - 2:10
|
{ET_TIME, 0,0,0, 18, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Canyon Rush Zone - 2:10
|
||||||
{ET_TIME, 0,0,0, 19, 'T', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Blue Mountain Zone - 2:40
|
{ET_TIME, 0,0,0, 19, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Blue Mountain Zone - 2:40
|
||||||
{ET_TIME, 0,0,0, 20, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Casino Resort Zone - 1:50
|
{ET_TIME, 0,0,0, 20, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Casino Resort Zone - 1:50
|
||||||
{ET_TIME, 0,0,0, 21, 'T', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Desert Palace Zone - 1:45
|
{ET_TIME, 0,0,0, 21, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Desert Palace Zone - 1:45
|
||||||
{ET_TIME, 0,0,0, 22, 'T', SKINCOLOR_GREY, 165*TICRATE, "", 0}, // Red Barrage Area - 2:45
|
{ET_TIME, 0,0,0, 22, 'B', SKINCOLOR_GREY, 165*TICRATE, "", 0}, // Red Barrage Area - 2:45
|
||||||
{ET_TIME, 0,0,0, 23, 'T', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Vanilla Hotel Zone - 1:45
|
{ET_TIME, 0,0,0, 23, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // Vanilla Hotel Zone - 1:45
|
||||||
{ET_TIME, 0,0,0, 24, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Twinkle Cart - 1:50
|
{ET_TIME, 0,0,0, 24, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Twinkle Cart - 1:50
|
||||||
{ET_TIME, 0,0,0, 25, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Pleasure Castle - 1:50
|
{ET_TIME, 0,0,0, 25, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Pleasure Castle - 1:50
|
||||||
{ET_TIME, 0,0,0, 26, 'T', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Aurora Atoll Zone - 2:20
|
{ET_TIME, 0,0,0, 26, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Aurora Atoll Zone - 2:20
|
||||||
{ET_TIME, 0,0,0, 27, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Barren Badlands Zone - 2:10
|
{ET_TIME, 0,0,0, 27, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Barren Badlands Zone - 2:10
|
||||||
{ET_TIME, 0,0,0, 28, 'T', SKINCOLOR_GREY, 155*TICRATE, "", 0}, // Toxic Palace Zone - 2:35
|
{ET_TIME, 0,0,0, 28, 'B', SKINCOLOR_GREY, 155*TICRATE, "", 0}, // Toxic Palace Zone - 2:35
|
||||||
{ET_TIME, 0,0,0, 29, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Ancient Tomb Zone - 2:10
|
{ET_TIME, 0,0,0, 29, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Ancient Tomb Zone - 2:10
|
||||||
{ET_TIME, 0,0,0, 30, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Cloud Cradle Zone K - 2:00
|
{ET_TIME, 0,0,0, 30, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Cloud Cradle Zone K - 2:00
|
||||||
{ET_TIME, 0,0,0, 31, 'T', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Kodachrome Void Zone - 1:50
|
{ET_TIME, 0,0,0, 31, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Kodachrome Void Zone - 1:50
|
||||||
{ET_TIME, 0,0,0, 32, 'T', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Egg Quarters - 2:20
|
{ET_TIME, 0,0,0, 32, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Egg Quarters - 2:20
|
||||||
{ET_TIME, 0,0,0, 33, 'T', SKINCOLOR_GREY, 115*TICRATE, "", 0}, // Boiling Bedrock Zone - 1:55
|
{ET_TIME, 0,0,0, 33, 'B', SKINCOLOR_GREY, 115*TICRATE, "", 0}, // Boiling Bedrock Zone - 1:55
|
||||||
{ET_TIME, 0,0,0, 34, 'T', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Virtual Highway Zone - 2:20
|
{ET_TIME, 0,0,0, 34, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Virtual Highway Zone - 2:20
|
||||||
{ET_TIME, 0,0,0, 35, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Eggman's Nightclub Zone - 2:00
|
{ET_TIME, 0,0,0, 35, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Eggman's Nightclub Zone - 2:00
|
||||||
{ET_TIME, 0,0,0, 36, 'T', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // KKR Ganbare Dochu 2 - 1:30
|
{ET_TIME, 0,0,0, 36, 'B', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // KKR Ganbare Dochu 2 - 1:30
|
||||||
{ET_TIME, 0,0,0, 37, 'T', SKINCOLOR_GREY, 80*TICRATE, "", 0}, // CK Chao Circuit 1 - 1:20
|
{ET_TIME, 0,0,0, 37, 'B', SKINCOLOR_GREY, 80*TICRATE, "", 0}, // CK Chao Circuit 1 - 1:20
|
||||||
{ET_TIME, 0,0,0, 38, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // CK Chao Circuit 2 - 2:10
|
{ET_TIME, 0,0,0, 38, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // CK Chao Circuit 2 - 2:10
|
||||||
{ET_TIME, 0,0,0, 39, 'T', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // CK Cloud Tops 2 - 1:40
|
{ET_TIME, 0,0,0, 39, 'B', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // CK Cloud Tops 2 - 1:40
|
||||||
{ET_TIME, 0,0,0, 40, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // CK Regal Raceway - 2:10
|
{ET_TIME, 0,0,0, 40, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // CK Regal Raceway - 2:10
|
||||||
{ET_TIME, 0,0,0, 41, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // SM Dimension Heist - 2:10
|
{ET_TIME, 0,0,0, 41, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // SM Dimension Heist - 2:10
|
||||||
{ET_TIME, 0,0,0, 42, 'T', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // SRB2 Frozen Night - 1:40
|
{ET_TIME, 0,0,0, 42, 'B', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // SRB2 Frozen Night - 1:40
|
||||||
{ET_TIME, 0,0,0, 43, 'T', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // MKSC Sky Garden - 1:40
|
{ET_TIME, 0,0,0, 43, 'B', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // MKSC Sky Garden - 1:40
|
||||||
{ET_TIME, 0,0,0, 44, 'T', SKINCOLOR_GREY, 95*TICRATE, "", 0}, // MKDS Peach Gardens - 1:35
|
{ET_TIME, 0,0,0, 44, 'B', SKINCOLOR_GREY, 95*TICRATE, "", 0}, // MKDS Peach Gardens - 1:35
|
||||||
{ET_TIME, 0,0,0, 45, 'T', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // MKSC Rainbow Road - 1:45
|
{ET_TIME, 0,0,0, 45, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // MKSC Rainbow Road - 1:45
|
||||||
{ET_TIME, 0,0,0, 46, 'T', SKINCOLOR_GREY, 70*TICRATE, "", 0}, // SMK Mario Circuit 1 - 1:10
|
{ET_TIME, 0,0,0, 46, 'B', SKINCOLOR_GREY, 70*TICRATE, "", 0}, // SMK Mario Circuit 1 - 1:10
|
||||||
{ET_TIME, 0,0,0, 47, 'T', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // SMK Donut Plains 1 - 1:30
|
{ET_TIME, 0,0,0, 47, 'B', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // SMK Donut Plains 1 - 1:30
|
||||||
{ET_TIME, 0,0,0, 48, 'T', SKINCOLOR_GREY, 75*TICRATE, "", 0}, // SMK Ghost Valley 2 - 1:15
|
{ET_TIME, 0,0,0, 48, 'B', SKINCOLOR_GREY, 75*TICRATE, "", 0}, // SMK Ghost Valley 2 - 1:15
|
||||||
{ET_TIME, 0,0,0, 49, 'T', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // SMK Mario Circuit 3 - 1:45
|
{ET_TIME, 0,0,0, 49, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // SMK Mario Circuit 3 - 1:45
|
||||||
{ET_TIME, 0,0,0, 50, 'T', SKINCOLOR_GREY, 130*TICRATE, "", 0} // SMK Rainbow Road - 2:10
|
{ET_TIME, 0,0,0, 50, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0} // SMK Rainbow Road - 2:10
|
||||||
// GOLD DEV TIME TROPHIES
|
// GOLD DEV TIME TROPHIES
|
||||||
// ...none yet!
|
// ...none yet! uses 'A'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Default Extra Emblems
|
// Default Extra Emblems
|
||||||
extraemblem_t extraemblems[MAXEXTRAEMBLEMS] =
|
extraemblem_t extraemblems[MAXEXTRAEMBLEMS] =
|
||||||
{
|
{
|
||||||
{"Experienced Driver", "Play 100 Matches", 10, 'X', SKINCOLOR_BLUE, 0},
|
{"Experienced Driver", "Play 100 Matches", 10, 'C', SKINCOLOR_RED, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Default Unlockables
|
// Default Unlockables
|
||||||
|
|
109
src/m_menu.c
109
src/m_menu.c
|
@ -151,8 +151,8 @@ description_t description[32] =
|
||||||
{"???", "", ""},
|
{"???", "", ""},
|
||||||
{"???", "", ""}
|
{"???", "", ""}
|
||||||
};
|
};
|
||||||
static char *char_notes = NULL;
|
//static char *char_notes = NULL;
|
||||||
static fixed_t char_scroll = 0;
|
//static fixed_t char_scroll = 0;
|
||||||
|
|
||||||
boolean menuactive = false;
|
boolean menuactive = false;
|
||||||
boolean fromlevelselect = false;
|
boolean fromlevelselect = false;
|
||||||
|
@ -173,7 +173,7 @@ static char joystickInfo[8][25];
|
||||||
static UINT32 serverlistpage;
|
static UINT32 serverlistpage;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static saveinfo_t savegameinfo[MAXSAVEGAMES]; // Extra info about the save games.
|
//static saveinfo_t savegameinfo[MAXSAVEGAMES]; // Extra info about the save games.
|
||||||
|
|
||||||
INT16 startmap; // Mario, NiGHTS, or just a plain old normal game?
|
INT16 startmap; // Mario, NiGHTS, or just a plain old normal game?
|
||||||
|
|
||||||
|
@ -219,10 +219,10 @@ menu_t SPauseDef;
|
||||||
//static void M_CustomLevelSelect(INT32 choice);
|
//static void M_CustomLevelSelect(INT32 choice);
|
||||||
//static void M_CustomWarp(INT32 choice);
|
//static void M_CustomWarp(INT32 choice);
|
||||||
FUNCNORETURN static ATTRNORETURN void M_UltimateCheat(INT32 choice);
|
FUNCNORETURN static ATTRNORETURN void M_UltimateCheat(INT32 choice);
|
||||||
static void M_LoadGameLevelSelect(INT32 choice);
|
//static void M_LoadGameLevelSelect(INT32 choice);
|
||||||
static void M_GetAllEmeralds(INT32 choice);
|
static void M_GetAllEmeralds(INT32 choice);
|
||||||
static void M_DestroyRobots(INT32 choice);
|
static void M_DestroyRobots(INT32 choice);
|
||||||
static void M_LevelSelectWarp(INT32 choice);
|
//static void M_LevelSelectWarp(INT32 choice);
|
||||||
static void M_Credits(INT32 choice);
|
static void M_Credits(INT32 choice);
|
||||||
static void M_PandorasBox(INT32 choice);
|
static void M_PandorasBox(INT32 choice);
|
||||||
static void M_EmblemHints(INT32 choice);
|
static void M_EmblemHints(INT32 choice);
|
||||||
|
@ -244,7 +244,7 @@ static void M_ConfirmTeamScramble(INT32 choice);
|
||||||
static void M_ConfirmTeamChange(INT32 choice);
|
static void M_ConfirmTeamChange(INT32 choice);
|
||||||
static void M_ConfirmSpectateChange(INT32 choice);
|
static void M_ConfirmSpectateChange(INT32 choice);
|
||||||
//static void M_SecretsMenu(INT32 choice);
|
//static void M_SecretsMenu(INT32 choice);
|
||||||
static void M_SetupChoosePlayer(INT32 choice);
|
//static void M_SetupChoosePlayer(INT32 choice);
|
||||||
static void M_QuitSRB2(INT32 choice);
|
static void M_QuitSRB2(INT32 choice);
|
||||||
menu_t SP_MainDef, MP_MainDef, OP_MainDef;
|
menu_t SP_MainDef, MP_MainDef, OP_MainDef;
|
||||||
menu_t MISC_ScrambleTeamDef, MISC_ChangeTeamDef, MISC_ChangeSpectateDef;
|
menu_t MISC_ScrambleTeamDef, MISC_ChangeTeamDef, MISC_ChangeSpectateDef;
|
||||||
|
@ -262,7 +262,7 @@ static void M_ChooseTimeAttack(INT32 choice);
|
||||||
static void M_ModeAttackRetry(INT32 choice);
|
static void M_ModeAttackRetry(INT32 choice);
|
||||||
static void M_ModeAttackEndGame(INT32 choice);
|
static void M_ModeAttackEndGame(INT32 choice);
|
||||||
static void M_SetGuestReplay(INT32 choice);
|
static void M_SetGuestReplay(INT32 choice);
|
||||||
static void M_ChoosePlayer(INT32 choice);
|
//static void M_ChoosePlayer(INT32 choice);
|
||||||
menu_t SP_LevelStatsDef;
|
menu_t SP_LevelStatsDef;
|
||||||
static menu_t SP_TimeAttackDef, SP_ReplayDef, SP_GuestReplayDef, SP_GhostDef;
|
static menu_t SP_TimeAttackDef, SP_ReplayDef, SP_GuestReplayDef, SP_GhostDef;
|
||||||
//static menu_t SP_NightsAttackDef, SP_NightsReplayDef, SP_NightsGuestReplayDef, SP_NightsGhostDef;
|
//static menu_t SP_NightsAttackDef, SP_NightsReplayDef, SP_NightsGuestReplayDef, SP_NightsGhostDef;
|
||||||
|
@ -342,11 +342,11 @@ static void M_DrawPauseMenu(void);
|
||||||
static void M_DrawLevelSelectOnly(boolean leftfade, boolean rightfade);
|
static void M_DrawLevelSelectOnly(boolean leftfade, boolean rightfade);
|
||||||
static void M_DrawServerMenu(void);
|
static void M_DrawServerMenu(void);
|
||||||
static void M_DrawImageDef(void);
|
static void M_DrawImageDef(void);
|
||||||
static void M_DrawLoad(void);
|
//static void M_DrawLoad(void);
|
||||||
static void M_DrawLevelStats(void);
|
static void M_DrawLevelStats(void);
|
||||||
static void M_DrawTimeAttackMenu(void);
|
static void M_DrawTimeAttackMenu(void);
|
||||||
//static void M_DrawNightsAttackMenu(void);
|
//static void M_DrawNightsAttackMenu(void);
|
||||||
static void M_DrawSetupChoosePlayerMenu(void);
|
//static void M_DrawSetupChoosePlayerMenu(void);
|
||||||
static void M_DrawControl(void);
|
static void M_DrawControl(void);
|
||||||
static void M_DrawVideoMenu(void);
|
static void M_DrawVideoMenu(void);
|
||||||
static void M_DrawHUDOptions(void);
|
static void M_DrawHUDOptions(void);
|
||||||
|
@ -373,7 +373,7 @@ static boolean M_QuitMultiPlayerMenu(void);
|
||||||
static void M_HandleAddons(INT32 choice);
|
static void M_HandleAddons(INT32 choice);
|
||||||
static void M_HandleSoundTest(INT32 choice);
|
static void M_HandleSoundTest(INT32 choice);
|
||||||
static void M_HandleImageDef(INT32 choice);
|
static void M_HandleImageDef(INT32 choice);
|
||||||
static void M_HandleLoadSave(INT32 choice);
|
//static void M_HandleLoadSave(INT32 choice);
|
||||||
static void M_HandleLevelStats(INT32 choice);
|
static void M_HandleLevelStats(INT32 choice);
|
||||||
#ifndef NONET
|
#ifndef NONET
|
||||||
static void M_HandleConnectIP(INT32 choice);
|
static void M_HandleConnectIP(INT32 choice);
|
||||||
|
@ -594,7 +594,7 @@ static menuitem_t SPauseMenu[] =
|
||||||
// Pandora's Box will be shifted up if both options are available
|
// Pandora's Box will be shifted up if both options are available
|
||||||
{IT_CALL | IT_STRING, NULL, "Pandora's Box...", M_PandorasBox, 16},
|
{IT_CALL | IT_STRING, NULL, "Pandora's Box...", M_PandorasBox, 16},
|
||||||
{IT_CALL | IT_STRING, NULL, "Emblem Hints...", M_EmblemHints, 24},
|
{IT_CALL | IT_STRING, NULL, "Emblem Hints...", M_EmblemHints, 24},
|
||||||
{IT_CALL | IT_STRING, NULL, "Level Select...", M_LoadGameLevelSelect, 32},
|
//{IT_CALL | IT_STRING, NULL, "Level Select...", M_LoadGameLevelSelect, 32},
|
||||||
|
|
||||||
{IT_CALL | IT_STRING, NULL, "Continue", M_SelectableClearMenus,48},
|
{IT_CALL | IT_STRING, NULL, "Continue", M_SelectableClearMenus,48},
|
||||||
{IT_CALL | IT_STRING, NULL, "Retry", M_Retry, 56},
|
{IT_CALL | IT_STRING, NULL, "Retry", M_Retry, 56},
|
||||||
|
@ -608,7 +608,7 @@ typedef enum
|
||||||
{
|
{
|
||||||
spause_pandora = 0,
|
spause_pandora = 0,
|
||||||
spause_hints,
|
spause_hints,
|
||||||
spause_levelselect,
|
//spause_levelselect,
|
||||||
|
|
||||||
spause_continue,
|
spause_continue,
|
||||||
spause_retry,
|
spause_retry,
|
||||||
|
@ -726,11 +726,11 @@ static menuitem_t SR_MainMenu[] =
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static menuitem_t SR_LevelSelectMenu[] =
|
/*static menuitem_t SR_LevelSelectMenu[] =
|
||||||
{
|
{
|
||||||
{IT_STRING|IT_CVAR, NULL, "Level", &cv_nextmap, 78},
|
{IT_STRING|IT_CVAR, NULL, "Level", &cv_nextmap, 78},
|
||||||
{IT_WHITESTRING|IT_CALL, NULL, "Start", M_LevelSelectWarp, 130},
|
{IT_WHITESTRING|IT_CALL, NULL, "Start", M_LevelSelectWarp, 130},
|
||||||
};
|
};*/
|
||||||
|
|
||||||
static menuitem_t SR_UnlockChecklistMenu[] =
|
static menuitem_t SR_UnlockChecklistMenu[] =
|
||||||
{
|
{
|
||||||
|
@ -766,7 +766,7 @@ enum
|
||||||
};
|
};
|
||||||
|
|
||||||
// Single Player Load Game
|
// Single Player Load Game
|
||||||
static menuitem_t SP_LoadGameMenu[] =
|
/*static menuitem_t SP_LoadGameMenu[] =
|
||||||
{
|
{
|
||||||
{IT_KEYHANDLER | IT_NOTHING, NULL, "", M_HandleLoadSave, '\0'}, // dummy menuitem for the control func
|
{IT_KEYHANDLER | IT_NOTHING, NULL, "", M_HandleLoadSave, '\0'}, // dummy menuitem for the control func
|
||||||
};
|
};
|
||||||
|
@ -776,7 +776,7 @@ static menuitem_t SP_LevelSelectMenu[] =
|
||||||
{
|
{
|
||||||
{IT_STRING|IT_CVAR, NULL, "Level", &cv_nextmap, 78},
|
{IT_STRING|IT_CVAR, NULL, "Level", &cv_nextmap, 78},
|
||||||
{IT_WHITESTRING|IT_CALL, NULL, "Start", M_LevelSelectWarp, 130},
|
{IT_WHITESTRING|IT_CALL, NULL, "Start", M_LevelSelectWarp, 130},
|
||||||
};
|
};*/
|
||||||
|
|
||||||
// Single Player Time Attack
|
// Single Player Time Attack
|
||||||
static menuitem_t SP_TimeAttackMenu[] =
|
static menuitem_t SP_TimeAttackMenu[] =
|
||||||
|
@ -906,6 +906,7 @@ static menuitem_t SP_LevelStatsMenu[] =
|
||||||
// A rare case.
|
// A rare case.
|
||||||
// External files modify this menu, so we can't call it static.
|
// External files modify this menu, so we can't call it static.
|
||||||
// And I'm too lazy to go through and rename it everywhere. ARRGH!
|
// And I'm too lazy to go through and rename it everywhere. ARRGH!
|
||||||
|
#define M_ChoosePlayer NULL
|
||||||
menuitem_t PlayerMenu[32] =
|
menuitem_t PlayerMenu[32] =
|
||||||
{
|
{
|
||||||
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
||||||
|
@ -1679,7 +1680,7 @@ menu_t SR_MainDef =
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
menu_t SR_LevelSelectDef = MAPICONMENUSTYLE(NULL, SR_LevelSelectMenu, &SR_MainDef);
|
//menu_t SR_LevelSelectDef = MAPICONMENUSTYLE(NULL, SR_LevelSelectMenu, &SR_MainDef);
|
||||||
|
|
||||||
menu_t SR_UnlockChecklistDef =
|
menu_t SR_UnlockChecklistDef =
|
||||||
{
|
{
|
||||||
|
@ -1706,7 +1707,7 @@ menu_t SR_EmblemHintDef =
|
||||||
|
|
||||||
// Single Player
|
// Single Player
|
||||||
menu_t SP_MainDef = CENTERMENUSTYLE(NULL, SP_MainMenu, &MainDef, 72);
|
menu_t SP_MainDef = CENTERMENUSTYLE(NULL, SP_MainMenu, &MainDef, 72);
|
||||||
menu_t SP_LoadDef =
|
/*menu_t SP_LoadDef =
|
||||||
{
|
{
|
||||||
"M_PICKG",
|
"M_PICKG",
|
||||||
1,
|
1,
|
||||||
|
@ -1717,7 +1718,7 @@ menu_t SP_LoadDef =
|
||||||
0,
|
0,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
menu_t SP_LevelSelectDef = MAPICONMENUSTYLE(NULL, SP_LevelSelectMenu, &SP_LoadDef);
|
menu_t SP_LevelSelectDef = MAPICONMENUSTYLE(NULL, SP_LevelSelectMenu, &SP_LoadDef);*/
|
||||||
|
|
||||||
menu_t SP_LevelStatsDef =
|
menu_t SP_LevelStatsDef =
|
||||||
{
|
{
|
||||||
|
@ -1822,7 +1823,7 @@ static menu_t SP_NightsGhostDef =
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
|
|
||||||
menu_t SP_PlayerDef =
|
/*menu_t SP_PlayerDef =
|
||||||
{
|
{
|
||||||
"M_PICKP",
|
"M_PICKP",
|
||||||
sizeof (PlayerMenu)/sizeof (menuitem_t),//player_end,
|
sizeof (PlayerMenu)/sizeof (menuitem_t),//player_end,
|
||||||
|
@ -1832,7 +1833,7 @@ menu_t SP_PlayerDef =
|
||||||
24, 32,
|
24, 32,
|
||||||
0,
|
0,
|
||||||
NULL
|
NULL
|
||||||
};
|
};*/
|
||||||
|
|
||||||
#ifndef NONET
|
#ifndef NONET
|
||||||
// Multiplayer
|
// Multiplayer
|
||||||
|
@ -2631,21 +2632,21 @@ boolean M_Responder(event_t *ev)
|
||||||
case KEY_DOWNARROW:
|
case KEY_DOWNARROW:
|
||||||
M_NextOpt();
|
M_NextOpt();
|
||||||
S_StartSound(NULL, sfx_menu1);
|
S_StartSound(NULL, sfx_menu1);
|
||||||
if (currentMenu == &SP_PlayerDef)
|
/*if (currentMenu == &SP_PlayerDef)
|
||||||
{
|
{
|
||||||
Z_Free(char_notes);
|
Z_Free(char_notes);
|
||||||
char_notes = NULL;
|
char_notes = NULL;
|
||||||
}
|
}*/
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case KEY_UPARROW:
|
case KEY_UPARROW:
|
||||||
M_PrevOpt();
|
M_PrevOpt();
|
||||||
S_StartSound(NULL, sfx_menu1);
|
S_StartSound(NULL, sfx_menu1);
|
||||||
if (currentMenu == &SP_PlayerDef)
|
/*if (currentMenu == &SP_PlayerDef)
|
||||||
{
|
{
|
||||||
Z_Free(char_notes);
|
Z_Free(char_notes);
|
||||||
char_notes = NULL;
|
char_notes = NULL;
|
||||||
}
|
}*/
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case KEY_LEFTARROW:
|
case KEY_LEFTARROW:
|
||||||
|
@ -2887,7 +2888,7 @@ void M_StartControlPanel(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// We can always use level select though. :33
|
// We can always use level select though. :33
|
||||||
SPauseMenu[spause_levelselect].status = (gamecomplete) ? (IT_STRING | IT_CALL) : (IT_DISABLED);
|
//SPauseMenu[spause_levelselect].status = (gamecomplete) ? (IT_STRING | IT_CALL) : (IT_DISABLED);
|
||||||
|
|
||||||
// And emblem hints.
|
// And emblem hints.
|
||||||
SPauseMenu[spause_hints].status = (M_SecretUnlocked(SECRET_EMBLEMHINTS)) ? (IT_STRING | IT_CALL) : (IT_DISABLED);
|
SPauseMenu[spause_hints].status = (M_SecretUnlocked(SECRET_EMBLEMHINTS)) ? (IT_STRING | IT_CALL) : (IT_DISABLED);
|
||||||
|
@ -3379,7 +3380,7 @@ static void M_DrawMapEmblems(INT32 mapnum, INT32 x, INT32 y)
|
||||||
V_DrawSmallScaledPatch(x, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
V_DrawSmallScaledPatch(x, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
||||||
|
|
||||||
emblem = M_GetLevelEmblems(-1);
|
emblem = M_GetLevelEmblems(-1);
|
||||||
x -= 12;
|
x -= 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5057,7 +5058,7 @@ static void M_DestroyRobots(INT32 choice)
|
||||||
M_StartMessage(M_GetText("Do you want to destroy all\nrobots in the current level?\n\n(Press 'Y' to confirm)\n"),M_DestroyRobotsResponse,MM_YESNO);
|
M_StartMessage(M_GetText("Do you want to destroy all\nrobots in the current level?\n\n(Press 'Y' to confirm)\n"),M_DestroyRobotsResponse,MM_YESNO);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_LevelSelectWarp(INT32 choice)
|
/*static void M_LevelSelectWarp(INT32 choice)
|
||||||
{
|
{
|
||||||
boolean fromloadgame = (currentMenu == &SP_LevelSelectDef);
|
boolean fromloadgame = (currentMenu == &SP_LevelSelectDef);
|
||||||
|
|
||||||
|
@ -5080,7 +5081,7 @@ static void M_LevelSelectWarp(INT32 choice)
|
||||||
cursaveslot = -1;
|
cursaveslot = -1;
|
||||||
M_SetupChoosePlayer(0);
|
M_SetupChoosePlayer(0);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// ========
|
// ========
|
||||||
// SKY ROOM
|
// SKY ROOM
|
||||||
|
@ -5425,7 +5426,7 @@ static void M_HandleSoundTest(INT32 choice)
|
||||||
// NEW GAME FUNCTIONS
|
// NEW GAME FUNCTIONS
|
||||||
// ==================
|
// ==================
|
||||||
|
|
||||||
INT32 ultimate_selectable = false;
|
/*INT32 ultimate_selectable = false;
|
||||||
|
|
||||||
static void M_NewGame(void)
|
static void M_NewGame(void)
|
||||||
{
|
{
|
||||||
|
@ -5435,7 +5436,7 @@ static void M_NewGame(void)
|
||||||
CV_SetValue(&cv_newgametype, GT_RACE); // SRB2kart
|
CV_SetValue(&cv_newgametype, GT_RACE); // SRB2kart
|
||||||
|
|
||||||
M_SetupChoosePlayer(0);
|
M_SetupChoosePlayer(0);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/*static void M_CustomWarp(INT32 choice)
|
/*static void M_CustomWarp(INT32 choice)
|
||||||
{
|
{
|
||||||
|
@ -5486,7 +5487,7 @@ static void M_SinglePlayerMenu(INT32 choice)
|
||||||
M_SetupNextMenu(&SP_MainDef);
|
M_SetupNextMenu(&SP_MainDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_LoadGameLevelSelect(INT32 choice)
|
/*static void M_LoadGameLevelSelect(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
levellistmode = LLM_LEVELSELECT;
|
levellistmode = LLM_LEVELSELECT;
|
||||||
|
@ -5501,13 +5502,13 @@ static void M_LoadGameLevelSelect(INT32 choice)
|
||||||
|
|
||||||
M_PrepareLevelSelect();
|
M_PrepareLevelSelect();
|
||||||
M_SetupNextMenu(&SP_LevelSelectDef);
|
M_SetupNextMenu(&SP_LevelSelectDef);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// ==============
|
// ==============
|
||||||
// LOAD GAME MENU
|
// LOAD GAME MENU
|
||||||
// ==============
|
// ==============
|
||||||
|
|
||||||
static INT32 saveSlotSelected = 0;
|
/*static INT32 saveSlotSelected = 0;
|
||||||
static short menumovedir = 0;
|
static short menumovedir = 0;
|
||||||
|
|
||||||
static void M_DrawLoadGameData(void)
|
static void M_DrawLoadGameData(void)
|
||||||
|
@ -5906,13 +5907,13 @@ static void M_HandleLoadSave(INT32 choice)
|
||||||
//
|
//
|
||||||
// Selected from SRB2 menu
|
// Selected from SRB2 menu
|
||||||
//
|
//
|
||||||
/*static void M_LoadGame(INT32 choice)
|
static void M_LoadGame(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
M_ReadSaveStrings();
|
M_ReadSaveStrings();
|
||||||
M_SetupNextMenu(&SP_LoadDef);
|
M_SetupNextMenu(&SP_LoadDef);
|
||||||
}*/
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Used by cheats to force the save menu to a specific spot.
|
// Used by cheats to force the save menu to a specific spot.
|
||||||
|
@ -6129,11 +6130,7 @@ static void M_ChoosePlayer(INT32 choice)
|
||||||
|
|
||||||
G_DeferedInitNew(false, G_BuildMapName(startmap), (UINT8)skinnum, 0, fromlevelselect);
|
G_DeferedInitNew(false, G_BuildMapName(startmap), (UINT8)skinnum, 0, fromlevelselect);
|
||||||
COM_BufAddText("dummyconsvar 1\n"); // G_DeferedInitNew doesn't do this
|
COM_BufAddText("dummyconsvar 1\n"); // G_DeferedInitNew doesn't do this
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// ===============
|
|
||||||
// STATISTICS MENU
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
// ===============
|
// ===============
|
||||||
// STATISTICS MENU
|
// STATISTICS MENU
|
||||||
|
@ -6202,7 +6199,7 @@ static void M_DrawStatsMaps(int location)
|
||||||
}
|
}
|
||||||
|
|
||||||
mnum = statsMapList[i];
|
mnum = statsMapList[i];
|
||||||
M_DrawMapEmblems(mnum+1, 292, y);
|
M_DrawMapEmblems(mnum+1, 295, y);
|
||||||
|
|
||||||
if (mapheaderinfo[mnum]->levelflags & LF_NOZONE)
|
if (mapheaderinfo[mnum]->levelflags & LF_NOZONE)
|
||||||
V_DrawString(20, y, 0, va("%s %s",
|
V_DrawString(20, y, 0, va("%s %s",
|
||||||
|
@ -6251,10 +6248,10 @@ static void M_DrawStatsMaps(int location)
|
||||||
exemblem = &extraemblems[i];
|
exemblem = &extraemblems[i];
|
||||||
|
|
||||||
if (exemblem->collected)
|
if (exemblem->collected)
|
||||||
V_DrawSmallMappedPatch(292, y, 0, W_CachePatchName(M_GetExtraEmblemPatch(exemblem), PU_CACHE),
|
V_DrawSmallMappedPatch(295, y, 0, W_CachePatchName(M_GetExtraEmblemPatch(exemblem), PU_CACHE),
|
||||||
R_GetTranslationColormap(TC_DEFAULT, M_GetExtraEmblemColor(exemblem), GTC_CACHE));
|
R_GetTranslationColormap(TC_DEFAULT, M_GetExtraEmblemColor(exemblem), GTC_CACHE));
|
||||||
else
|
else
|
||||||
V_DrawSmallScaledPatch(292, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
V_DrawSmallScaledPatch(295, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
||||||
|
|
||||||
V_DrawString(20, y, 0, va("%s", exemblem->description));
|
V_DrawString(20, y, 0, va("%s", exemblem->description));
|
||||||
}
|
}
|
||||||
|
@ -6313,8 +6310,8 @@ static void M_DrawLevelStats(void)
|
||||||
else
|
else
|
||||||
V_DrawRightAlignedString(BASEVIDWIDTH-16, 70, recommendedflags, "(complete)");
|
V_DrawRightAlignedString(BASEVIDWIDTH-16, 70, recommendedflags, "(complete)");
|
||||||
|
|
||||||
V_DrawString(36, 70, 0, va("x %d/%d", M_CountEmblems(), numemblems+numextraemblems));
|
V_DrawString(32, 70, 0, va("x %d/%d", M_CountEmblems(), numemblems+numextraemblems));
|
||||||
V_DrawSmallScaledPatch(20, 70, 0, W_CachePatchName("EMBLICON", PU_STATIC));
|
V_DrawSmallScaledPatch(20, 70, 0, W_CachePatchName("GOTITA", PU_STATIC));
|
||||||
|
|
||||||
M_DrawStatsMaps(statsLocation);
|
M_DrawStatsMaps(statsLocation);
|
||||||
}
|
}
|
||||||
|
@ -6370,7 +6367,6 @@ void M_DrawTimeAttackMenu(void)
|
||||||
{
|
{
|
||||||
INT32 i, x, y, cursory = 0;
|
INT32 i, x, y, cursory = 0;
|
||||||
UINT16 dispstatus;
|
UINT16 dispstatus;
|
||||||
patch_t *PictureOfUrFace;
|
|
||||||
|
|
||||||
//S_ChangeMusicInternal("racent", true); // Eww, but needed for when user hits escape during demo playback
|
//S_ChangeMusicInternal("racent", true); // Eww, but needed for when user hits escape during demo playback
|
||||||
|
|
||||||
|
@ -6386,11 +6382,10 @@ void M_DrawTimeAttackMenu(void)
|
||||||
y = currentMenu->y;
|
y = currentMenu->y;
|
||||||
|
|
||||||
// Character face!
|
// Character face!
|
||||||
if (W_CheckNumForName(skins[cv_chooseskin.value-1].face) != LUMPERROR)
|
if (W_CheckNumForName(skins[cv_chooseskin.value-1].facewant) != LUMPERROR)
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(cv_chooseskin.value-1, cv_playercolor.value, 0);
|
UINT8 *colormap = R_GetTranslationColormap(cv_chooseskin.value-1, cv_playercolor.value, 0);
|
||||||
PictureOfUrFace = W_CachePatchName(skins[cv_chooseskin.value-1].face, PU_CACHE);
|
V_DrawMappedPatch(BASEVIDWIDTH-x - SHORT(facewantprefix[cv_chooseskin.value-1]->width), y, 0, facewantprefix[cv_chooseskin.value-1], colormap);
|
||||||
V_DrawMappedPatch(BASEVIDWIDTH-x - SHORT(PictureOfUrFace->width), y, 0, PictureOfUrFace, colormap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < currentMenu->numitems; ++i)
|
for (i = 0; i < currentMenu->numitems; ++i)
|
||||||
|
@ -7678,7 +7673,6 @@ Update the maxplayers label...
|
||||||
// player arrangement width, but there's also a chance i'm a furry, shhhhhh
|
// player arrangement width, but there's also a chance i'm a furry, shhhhhh
|
||||||
const INT32 paw = iconwidth + 3*incrwidth;
|
const INT32 paw = iconwidth + 3*incrwidth;
|
||||||
INT32 trans = 0;
|
INT32 trans = 0;
|
||||||
patch_t *face;
|
|
||||||
UINT8 *colmap;
|
UINT8 *colmap;
|
||||||
x = BASEVIDWIDTH/2 - paw/2;
|
x = BASEVIDWIDTH/2 - paw/2;
|
||||||
y = currentMenu->y + 32;
|
y = currentMenu->y + 32;
|
||||||
|
@ -7713,15 +7707,13 @@ Update the maxplayers label...
|
||||||
|
|
||||||
colmap = R_GetTranslationColormap(pskin, pcol, 0);
|
colmap = R_GetTranslationColormap(pskin, pcol, 0);
|
||||||
|
|
||||||
face = W_CachePatchName(skins[pskin].face, PU_CACHE);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, FRACUNIT, trans, facewantprefix[pskin], colmap);
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, FRACUNIT, trans, face, colmap);
|
|
||||||
|
|
||||||
if (itemOn == 2 && i == setupm_pselect)
|
if (itemOn == 2 && i == setupm_pselect)
|
||||||
{
|
{
|
||||||
/*V_DrawCharacter(x + 12, y-4 + (skullAnimCounter/5),
|
/*V_DrawCharacter(x + 12, y-4 + (skullAnimCounter/5),
|
||||||
'\x1B' | highlightflags, false); // down arrow*/
|
'\x1B' | highlightflags, false); // down arrow*/
|
||||||
face = W_CachePatchName("K_CHRCUR", PU_CACHE);
|
V_DrawFixedPatch((x-2)<<FRACBITS, (y-2)<<FRACBITS, FRACUNIT, 0, W_CachePatchName("K_CHRCUR", PU_CACHE), colmap);
|
||||||
V_DrawFixedPatch((x-2)<<FRACBITS, (y-2)<<FRACBITS, FRACUNIT, 0, face, colmap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
x += incrwidth;
|
x += incrwidth;
|
||||||
|
@ -8071,20 +8063,21 @@ static void M_DrawSetupMultiPlayerMenu(void)
|
||||||
if (!(k++))
|
if (!(k++))
|
||||||
{
|
{
|
||||||
scale = FRACUNIT;
|
scale = FRACUNIT;
|
||||||
|
face = facewantprefix[col];
|
||||||
offx = 12;
|
offx = 12;
|
||||||
offy = 0;
|
offy = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scale = FRACUNIT/2;
|
scale = FRACUNIT/2;
|
||||||
|
face = facerankprefix[col];
|
||||||
offx = 8;
|
offx = 8;
|
||||||
offy = 8;
|
offy = 8;
|
||||||
}
|
}
|
||||||
face = W_CachePatchName(skins[col].face, PU_CACHE);
|
|
||||||
colmap = R_GetTranslationColormap(col, setupm_fakecolor, 0);
|
colmap = R_GetTranslationColormap(col, setupm_fakecolor, 0);
|
||||||
V_DrawFixedPatch((x+offx)<<FRACBITS, (my+28+offy)<<FRACBITS, scale, 0, face, colmap);
|
V_DrawFixedPatch((x+offx)<<FRACBITS, (my+28+offy)<<FRACBITS, FRACUNIT, 0, face, colmap);
|
||||||
if (scale == FRACUNIT) // bit of a hack
|
if (scale == FRACUNIT) // bit of a hack
|
||||||
V_DrawFixedPatch((x-2+offx)<<FRACBITS, (my+26+offy)<<FRACBITS, scale, 0, cursor, colmap);
|
V_DrawFixedPatch((x-2+offx)<<FRACBITS, (my+26+offy)<<FRACBITS, FRACUNIT, 0, cursor, colmap);
|
||||||
if (++col >= numskins)
|
if (++col >= numskins)
|
||||||
col -= numskins;
|
col -= numskins;
|
||||||
x += FixedMul(iconwidth<<FRACBITS, 3*scale/2)/FRACUNIT;
|
x += FixedMul(iconwidth<<FRACBITS, 3*scale/2)/FRACUNIT;
|
||||||
|
|
|
@ -3209,7 +3209,6 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname)
|
||||||
HU_LoadGraphics();
|
HU_LoadGraphics();
|
||||||
ST_LoadGraphics();
|
ST_LoadGraphics();
|
||||||
ST_ReloadSkinFaceGraphics();
|
ST_ReloadSkinFaceGraphics();
|
||||||
K_ReloadSkinIconGraphics();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// look for skins
|
// look for skins
|
||||||
|
|
|
@ -2517,9 +2517,9 @@ static void Sk_SetDefaultValue(skin_t *skin)
|
||||||
|
|
||||||
strcpy(skin->realname, "Someone");
|
strcpy(skin->realname, "Someone");
|
||||||
strcpy(skin->hudname, "???");
|
strcpy(skin->hudname, "???");
|
||||||
strncpy(skin->charsel, "CHRSONIC", 9);
|
strncpy(skin->facerank, "PLAYRANK", 9);
|
||||||
strncpy(skin->face, "MISSING", 9);
|
strncpy(skin->facewant, "PLAYWANT", 9);
|
||||||
strncpy(skin->superface, "MISSING", 9);
|
strncpy(skin->facemmap, "PLAYMMAP", 9);
|
||||||
|
|
||||||
skin->starttranscolor = 160;
|
skin->starttranscolor = 160;
|
||||||
skin->prefcolor = SKINCOLOR_GREEN;
|
skin->prefcolor = SKINCOLOR_GREEN;
|
||||||
|
@ -2551,7 +2551,6 @@ static void Sk_SetDefaultValue(skin_t *skin)
|
||||||
for (i = 0; i < sfx_skinsoundslot0; i++)
|
for (i = 0; i < sfx_skinsoundslot0; i++)
|
||||||
if (S_sfx[i].skinsound != -1)
|
if (S_sfx[i].skinsound != -1)
|
||||||
skin->soundsid[S_sfx[i].skinsound] = i;
|
skin->soundsid[S_sfx[i].skinsound] = i;
|
||||||
strncpy(skin->iconprefix, "SONICICN", 9);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2584,17 +2583,17 @@ void R_InitSkins(void)
|
||||||
strcpy(skin->realname, "Sonic");
|
strcpy(skin->realname, "Sonic");
|
||||||
strcpy(skin->hudname, "SONIC");
|
strcpy(skin->hudname, "SONIC");
|
||||||
|
|
||||||
strncpy(skin->charsel, "CHRSONIC", 9);
|
strncpy(skin->facerank, "PLAYRANK", 9);
|
||||||
strncpy(skin->face, "LIVSONIC", 9);
|
strncpy(skin->facewant, "PLAYWANT", 9);
|
||||||
strncpy(skin->superface, "LIVSUPER", 9);
|
strncpy(skin->facemmap, "PLAYMMAP", 9);
|
||||||
skin->prefcolor = SKINCOLOR_BLUE;
|
skin->prefcolor = SKINCOLOR_BLUE;
|
||||||
|
|
||||||
skin->ability = CA_THOK;
|
skin->ability = CA_THOK;
|
||||||
skin->actionspd = 60<<FRACBITS;
|
skin->actionspd = 60<<FRACBITS;
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
skin->kartspeed = 7;
|
skin->kartspeed = 8;
|
||||||
skin->kartweight = 3;
|
skin->kartweight = 2;
|
||||||
//
|
//
|
||||||
|
|
||||||
skin->normalspeed = 36<<FRACBITS;
|
skin->normalspeed = 36<<FRACBITS;
|
||||||
|
@ -2605,9 +2604,7 @@ void R_InitSkins(void)
|
||||||
|
|
||||||
skin->spritedef.numframes = sprites[SPR_PLAY].numframes;
|
skin->spritedef.numframes = sprites[SPR_PLAY].numframes;
|
||||||
skin->spritedef.spriteframes = sprites[SPR_PLAY].spriteframes;
|
skin->spritedef.spriteframes = sprites[SPR_PLAY].spriteframes;
|
||||||
ST_LoadFaceGraphics(skin->face, skin->superface, 0);
|
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, 0);
|
||||||
strncpy(skin->iconprefix, "SONICICN", 9);
|
|
||||||
K_LoadIconGraphics(skin->iconprefix, 0);
|
|
||||||
|
|
||||||
//MD2 for sonic doesn't want to load in Linux.
|
//MD2 for sonic doesn't want to load in Linux.
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
|
@ -2763,7 +2760,7 @@ void R_AddSkins(UINT16 wadnum)
|
||||||
char *value;
|
char *value;
|
||||||
size_t size;
|
size_t size;
|
||||||
skin_t *skin;
|
skin_t *skin;
|
||||||
boolean hudname, realname, superface;
|
boolean hudname, realname;
|
||||||
|
|
||||||
//
|
//
|
||||||
// search for all skin markers in pwad
|
// search for all skin markers in pwad
|
||||||
|
@ -2793,7 +2790,7 @@ void R_AddSkins(UINT16 wadnum)
|
||||||
skin = &skins[numskins];
|
skin = &skins[numskins];
|
||||||
Sk_SetDefaultValue(skin);
|
Sk_SetDefaultValue(skin);
|
||||||
skin->wadnum = wadnum;
|
skin->wadnum = wadnum;
|
||||||
hudname = realname = superface = false;
|
hudname = realname = false;
|
||||||
// parse
|
// parse
|
||||||
stoken = strtok (buf2, "\r\n= ");
|
stoken = strtok (buf2, "\r\n= ");
|
||||||
while (stoken)
|
while (stoken)
|
||||||
|
@ -2878,23 +2875,20 @@ void R_AddSkins(UINT16 wadnum)
|
||||||
strupr(value);
|
strupr(value);
|
||||||
strncpy(skin->sprite, value, sizeof skin->sprite);
|
strncpy(skin->sprite, value, sizeof skin->sprite);
|
||||||
}
|
}
|
||||||
else if (!stricmp(stoken, "charsel"))
|
else if (!stricmp(stoken, "facerank"))
|
||||||
{
|
{
|
||||||
strupr(value);
|
strupr(value);
|
||||||
strncpy(skin->charsel, value, sizeof skin->charsel);
|
strncpy(skin->facerank, value, sizeof skin->facerank);
|
||||||
}
|
}
|
||||||
else if (!stricmp(stoken, "face"))
|
else if (!stricmp(stoken, "facewant"))
|
||||||
{
|
{
|
||||||
strupr(value);
|
strupr(value);
|
||||||
strncpy(skin->face, value, sizeof skin->face);
|
strncpy(skin->facewant, value, sizeof skin->facewant);
|
||||||
if (!superface)
|
|
||||||
strncpy(skin->superface, value, sizeof skin->superface);
|
|
||||||
}
|
}
|
||||||
else if (!stricmp(stoken, "superface"))
|
else if (!stricmp(stoken, "facemmap"))
|
||||||
{
|
{
|
||||||
superface = true;
|
|
||||||
strupr(value);
|
strupr(value);
|
||||||
strncpy(skin->superface, value, sizeof skin->superface);
|
strncpy(skin->facemmap, value, sizeof skin->facemmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FULLPROCESS(field) else if (!stricmp(stoken, #field)) skin->field = get_number(value);
|
#define FULLPROCESS(field) else if (!stricmp(stoken, #field)) skin->field = get_number(value);
|
||||||
|
@ -2936,11 +2930,6 @@ void R_AddSkins(UINT16 wadnum)
|
||||||
skin->jumpfactor = FLOAT_TO_FIXED(atof(value));
|
skin->jumpfactor = FLOAT_TO_FIXED(atof(value));
|
||||||
else if (!stricmp(stoken, "highresscale"))
|
else if (!stricmp(stoken, "highresscale"))
|
||||||
skin->highresscale = FLOAT_TO_FIXED(atof(value));
|
skin->highresscale = FLOAT_TO_FIXED(atof(value));
|
||||||
else if (!stricmp(stoken, "faceicon"))
|
|
||||||
{
|
|
||||||
strupr(value);
|
|
||||||
strncpy(skin->iconprefix, value, sizeof skin->iconprefix);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
INT32 found = false;
|
INT32 found = false;
|
||||||
|
@ -3041,10 +3030,7 @@ next_token:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// add face graphics
|
// add face graphics
|
||||||
ST_LoadFaceGraphics(skin->face, skin->superface, numskins);
|
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, numskins);
|
||||||
|
|
||||||
// load minimap icons
|
|
||||||
K_LoadIconGraphics(skin->iconprefix, numskins);
|
|
||||||
|
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
if (rendermode == render_opengl)
|
if (rendermode == render_opengl)
|
||||||
|
|
|
@ -81,7 +81,7 @@ typedef struct
|
||||||
|
|
||||||
char realname[SKINNAMESIZE+1]; // Display name for level completion.
|
char realname[SKINNAMESIZE+1]; // Display name for level completion.
|
||||||
char hudname[SKINNAMESIZE+1]; // HUD name to display (officially exactly 5 characters long)
|
char hudname[SKINNAMESIZE+1]; // HUD name to display (officially exactly 5 characters long)
|
||||||
char charsel[9], face[9], superface[9]; // Arbitrarily named patch lumps
|
char facerank[9], facewant[9], facemmap[9]; // Arbitrarily named patch lumps
|
||||||
|
|
||||||
UINT8 ability; // ability definition
|
UINT8 ability; // ability definition
|
||||||
UINT8 ability2; // secondary ability definition
|
UINT8 ability2; // secondary ability definition
|
||||||
|
@ -113,9 +113,6 @@ typedef struct
|
||||||
|
|
||||||
// specific sounds per skin
|
// specific sounds per skin
|
||||||
sfxenum_t soundsid[NUMSKINSOUNDS]; // sound # in S_sfx table
|
sfxenum_t soundsid[NUMSKINSOUNDS]; // sound # in S_sfx table
|
||||||
|
|
||||||
// minimap icons
|
|
||||||
char iconprefix[9];
|
|
||||||
} skin_t;
|
} skin_t;
|
||||||
|
|
||||||
// -----------
|
// -----------
|
||||||
|
|
|
@ -50,8 +50,9 @@ UINT16 objectsdrawn = 0;
|
||||||
// STATUS BAR DATA
|
// STATUS BAR DATA
|
||||||
//
|
//
|
||||||
|
|
||||||
patch_t *faceprefix[MAXSKINS]; // face status patches
|
patch_t *facerankprefix[MAXSKINS]; // ranking
|
||||||
patch_t *superprefix[MAXSKINS]; // super face status patches
|
patch_t *facewantprefix[MAXSKINS]; // wanted
|
||||||
|
patch_t *facemmapprefix[MAXSKINS]; // minimap
|
||||||
|
|
||||||
// ------------------------------------------
|
// ------------------------------------------
|
||||||
// status bar overlay
|
// status bar overlay
|
||||||
|
@ -356,28 +357,20 @@ void ST_LoadGraphics(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// made separate so that skins code can reload custom face graphics
|
// made separate so that skins code can reload custom face graphics
|
||||||
void ST_LoadFaceGraphics(char *facestr, char *superstr, INT32 skinnum)
|
void ST_LoadFaceGraphics(char *rankstr, char *wantstr, char *mmapstr, INT32 skinnum)
|
||||||
{
|
{
|
||||||
faceprefix[skinnum] = W_CachePatchName(facestr, PU_HUDGFX);
|
facerankprefix[skinnum] = W_CachePatchName(rankstr, PU_HUDGFX);
|
||||||
superprefix[skinnum] = W_CachePatchName(superstr, PU_HUDGFX);
|
facewantprefix[skinnum] = W_CachePatchName(wantstr, PU_HUDGFX);
|
||||||
|
facemmapprefix[skinnum] = W_CachePatchName(mmapstr, PU_HUDGFX);
|
||||||
facefreed[skinnum] = false;
|
facefreed[skinnum] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DELFILE
|
|
||||||
void ST_UnLoadFaceGraphics(INT32 skinnum)
|
|
||||||
{
|
|
||||||
Z_Free(faceprefix[skinnum]);
|
|
||||||
Z_Free(superprefix[skinnum]);
|
|
||||||
facefreed[skinnum] = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void ST_ReloadSkinFaceGraphics(void)
|
void ST_ReloadSkinFaceGraphics(void)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
|
|
||||||
for (i = 0; i < numskins; i++)
|
for (i = 0; i < numskins; i++)
|
||||||
ST_LoadFaceGraphics(skins[i].face, skins[i].superface, i);
|
ST_LoadFaceGraphics(skins[i].facerank, skins[i].facewant, skins[i].facemmap, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ST_InitData(void)
|
static inline void ST_InitData(void)
|
||||||
|
@ -726,9 +719,9 @@ static void ST_drawLives(void) // SRB2kart - unused.
|
||||||
{
|
{
|
||||||
// skincolor face/super
|
// skincolor face/super
|
||||||
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->mo->color, GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->mo->color, GTC_CACHE);
|
||||||
patch_t *face = faceprefix[stplyr->skin];
|
patch_t *face = facerankprefix[stplyr->skin];
|
||||||
if (stplyr->powers[pw_super] || stplyr->pflags & PF_NIGHTSMODE)
|
if (stplyr->powers[pw_super] || stplyr->pflags & PF_NIGHTSMODE)
|
||||||
face = superprefix[stplyr->skin];
|
face = facewantprefix[stplyr->skin];
|
||||||
V_DrawSmallMappedPatch(hudinfo[HUD_LIVESPIC].x, hudinfo[HUD_LIVESPIC].y + (v_splitflag ? -12 : 0),
|
V_DrawSmallMappedPatch(hudinfo[HUD_LIVESPIC].x, hudinfo[HUD_LIVESPIC].y + (v_splitflag ? -12 : 0),
|
||||||
V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag,face, colormap);
|
V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag,face, colormap);
|
||||||
}
|
}
|
||||||
|
@ -737,7 +730,7 @@ static void ST_drawLives(void) // SRB2kart - unused.
|
||||||
// skincolor face
|
// skincolor face
|
||||||
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->skincolor, GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->skincolor, GTC_CACHE);
|
||||||
V_DrawSmallMappedPatch(hudinfo[HUD_LIVESPIC].x, hudinfo[HUD_LIVESPIC].y + (v_splitflag ? -12 : 0),
|
V_DrawSmallMappedPatch(hudinfo[HUD_LIVESPIC].x, hudinfo[HUD_LIVESPIC].y + (v_splitflag ? -12 : 0),
|
||||||
V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag,faceprefix[stplyr->skin], colormap);
|
V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag,facerankprefix[stplyr->skin], colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
// name
|
// name
|
||||||
|
@ -1965,7 +1958,7 @@ static void ST_overlayDrawer(void)
|
||||||
INT32 splitflags = K_calcSplitFlags(0);
|
INT32 splitflags = K_calcSplitFlags(0);
|
||||||
V_DrawThinString(2, (BASEVIDHEIGHT/2)-20, V_YELLOWMAP|V_HUDTRANSHALF|splitflags, M_GetText("- SPECTATING -"));
|
V_DrawThinString(2, (BASEVIDHEIGHT/2)-20, V_YELLOWMAP|V_HUDTRANSHALF|splitflags, M_GetText("- SPECTATING -"));
|
||||||
if (stplyr->powers[pw_flashing])
|
if (stplyr->powers[pw_flashing])
|
||||||
V_DrawString(2, (BASEVIDHEIGHT/2)-10, V_HUDTRANSHALF|splitflags, M_GetText("Item - . . ."));
|
V_DrawThinString(2, (BASEVIDHEIGHT/2)-10, V_HUDTRANSHALF|splitflags, M_GetText("Item - . . ."));
|
||||||
else if (stplyr->pflags & PF_WANTSTOJOIN)
|
else if (stplyr->pflags & PF_WANTSTOJOIN)
|
||||||
V_DrawThinString(2, (BASEVIDHEIGHT/2)-10, V_HUDTRANSHALF|splitflags, M_GetText("Item - Cancel Join"));
|
V_DrawThinString(2, (BASEVIDHEIGHT/2)-10, V_HUDTRANSHALF|splitflags, M_GetText("Item - Cancel Join"));
|
||||||
/*else if (G_GametypeHasTeams())
|
/*else if (G_GametypeHasTeams())
|
||||||
|
|
|
@ -42,7 +42,7 @@ void ST_UnloadGraphics(void);
|
||||||
void ST_LoadGraphics(void);
|
void ST_LoadGraphics(void);
|
||||||
|
|
||||||
// face load graphics, called when skin changes
|
// face load graphics, called when skin changes
|
||||||
void ST_LoadFaceGraphics(char *facestr, char *superstr, INT32 playernum);
|
void ST_LoadFaceGraphics(char *rankstr, char *wantstr, char *mmapstr, INT32 playernum);
|
||||||
void ST_ReloadSkinFaceGraphics(void);
|
void ST_ReloadSkinFaceGraphics(void);
|
||||||
#ifdef DELFILE
|
#ifdef DELFILE
|
||||||
void ST_UnLoadFaceGraphics(INT32 skinnum);
|
void ST_UnLoadFaceGraphics(INT32 skinnum);
|
||||||
|
@ -66,8 +66,9 @@ extern patch_t *sboscore;
|
||||||
extern patch_t *sbotime;
|
extern patch_t *sbotime;
|
||||||
extern patch_t *sbocolon;
|
extern patch_t *sbocolon;
|
||||||
extern patch_t *sboperiod;
|
extern patch_t *sboperiod;
|
||||||
extern patch_t *faceprefix[MAXSKINS]; // face status patches
|
extern patch_t *facerankprefix[MAXSKINS]; // ranking
|
||||||
extern patch_t *superprefix[MAXSKINS]; // super face status patches
|
extern patch_t *facewantprefix[MAXSKINS]; // wanted
|
||||||
|
extern patch_t *facemmapprefix[MAXSKINS]; // minimap
|
||||||
extern patch_t *livesback;
|
extern patch_t *livesback;
|
||||||
extern patch_t *ngradeletters[7];
|
extern patch_t *ngradeletters[7];
|
||||||
extern boolean iconfreed[MAXPLAYERS];
|
extern boolean iconfreed[MAXPLAYERS];
|
||||||
|
|
|
@ -416,7 +416,7 @@ void Y_IntermissionDrawer(void)
|
||||||
else*/ if (intertype == int_race || intertype == int_match)
|
else*/ if (intertype == int_race || intertype == int_match)
|
||||||
{
|
{
|
||||||
#define NUMFORNEWCOLUMN 8
|
#define NUMFORNEWCOLUMN 8
|
||||||
INT32 y = 48, gutter = ((data.match.numplayers > NUMFORNEWCOLUMN) ? 0 : (BASEVIDWIDTH/2));
|
INT32 y = 41, gutter = ((data.match.numplayers > NUMFORNEWCOLUMN) ? 0 : (BASEVIDWIDTH/2));
|
||||||
const char *timeheader;
|
const char *timeheader;
|
||||||
|
|
||||||
if (data.match.rankingsmode)
|
if (data.match.rankingsmode)
|
||||||
|
@ -425,26 +425,27 @@ void Y_IntermissionDrawer(void)
|
||||||
timeheader = (intertype == int_race ? "TIME" : "SCORE");
|
timeheader = (intertype == int_race ? "TIME" : "SCORE");
|
||||||
|
|
||||||
// draw the level name
|
// draw the level name
|
||||||
V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 20, 0, data.match.levelstring);
|
V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12, 0, data.match.levelstring);
|
||||||
V_DrawFill(x, 42, 312, 1, 0);
|
V_DrawFill(x, 34, 312, 1, 0);
|
||||||
|
|
||||||
if (data.match.encore)
|
if (data.match.encore)
|
||||||
V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 20-8, hilicol, "ENCORE MODE");
|
V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12-8, hilicol, "ENCORE MODE");
|
||||||
|
|
||||||
if (!gutter)
|
if (!gutter)
|
||||||
{
|
{
|
||||||
V_DrawFill(x+156, 32, 1, 152, 0);
|
V_DrawFill(x+156, 24, 1, 158, 0);
|
||||||
|
V_DrawFill(x, 182, 312, 1, 0);
|
||||||
|
|
||||||
V_DrawCenteredString(x+6+(BASEVIDWIDTH/2), 32, hilicol, "#");
|
V_DrawCenteredString(x+6+(BASEVIDWIDTH/2), 24, hilicol, "#");
|
||||||
V_DrawString(x+36+(BASEVIDWIDTH/2), 32, hilicol, "NAME");
|
V_DrawString(x+36+(BASEVIDWIDTH/2), 24, hilicol, "NAME");
|
||||||
|
|
||||||
V_DrawRightAlignedString(x+152, 32, hilicol, timeheader);
|
V_DrawRightAlignedString(x+152, 24, hilicol, timeheader);
|
||||||
}
|
}
|
||||||
|
|
||||||
V_DrawCenteredString(x+6, 32, hilicol, "#");
|
V_DrawCenteredString(x+6, 24, hilicol, "#");
|
||||||
V_DrawString(x+36, 32, hilicol, "NAME");
|
V_DrawString(x+36, 24, hilicol, "NAME");
|
||||||
|
|
||||||
V_DrawRightAlignedString(x+(BASEVIDWIDTH/2)+152, 32, hilicol, timeheader);
|
V_DrawRightAlignedString(x+(BASEVIDWIDTH/2)+152, 24, hilicol, timeheader);
|
||||||
|
|
||||||
for (i = 0; i < data.match.numplayers; i++)
|
for (i = 0; i < data.match.numplayers; i++)
|
||||||
{
|
{
|
||||||
|
@ -460,12 +461,10 @@ void Y_IntermissionDrawer(void)
|
||||||
|
|
||||||
V_DrawCenteredString(x+6, y, 0, va("%d", data.match.pos[i]));
|
V_DrawCenteredString(x+6, y, 0, va("%d", data.match.pos[i]));
|
||||||
|
|
||||||
if (data.match.color[i] == 0)
|
if (data.match.color[i])
|
||||||
V_DrawSmallScaledPatch(x+16, y-4, 0,faceprefix[*data.match.character[i]]);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(*data.match.character[i], *data.match.color[i], GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(*data.match.character[i], *data.match.color[i], GTC_CACHE);
|
||||||
V_DrawSmallMappedPatch(x+16, y-4, 0,faceprefix[*data.match.character[i]], colormap);
|
V_DrawMappedPatch(x+16, y-4, 0,facerankprefix[*data.match.character[i]], colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gutter)
|
if (!gutter)
|
||||||
|
@ -520,11 +519,11 @@ void Y_IntermissionDrawer(void)
|
||||||
else
|
else
|
||||||
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 += 18;
|
||||||
|
|
||||||
if (i == NUMFORNEWCOLUMN-1)
|
if (i == NUMFORNEWCOLUMN-1)
|
||||||
{
|
{
|
||||||
y = 48;
|
y = 41;
|
||||||
x += BASEVIDWIDTH/2;
|
x += BASEVIDWIDTH/2;
|
||||||
}
|
}
|
||||||
#undef NUMFORNEWCOLUMN
|
#undef NUMFORNEWCOLUMN
|
||||||
|
@ -1148,12 +1147,10 @@ void Y_VoteDrawer(void)
|
||||||
V_DrawDiag(x, y, 6, V_SNAPTOLEFT|levelinfo[votes[i]].gtc);
|
V_DrawDiag(x, y, 6, V_SNAPTOLEFT|levelinfo[votes[i]].gtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (players[i].skincolor == 0)
|
if (players[i].skincolor)
|
||||||
V_DrawSmallScaledPatch(x+24, y+9, V_SNAPTOLEFT, faceprefix[players[i].skin]);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(players[i].skin, players[i].skincolor, GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(players[i].skin, players[i].skincolor, GTC_CACHE);
|
||||||
V_DrawSmallMappedPatch(x+24, y+9, V_SNAPTOLEFT, faceprefix[players[i].skin], colormap);
|
V_DrawMappedPatch(x+24, y+9, V_SNAPTOLEFT, facerankprefix[players[i].skin], colormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue