softcode mapthumbnail drawing
This commit is contained in:
parent
875f1d44b2
commit
1d600210fa
4 changed files with 45 additions and 23 deletions
|
|
@ -933,9 +933,9 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime)
|
|||
UINT8 *p;
|
||||
size_t mirror_length;
|
||||
const char *httpurl = cv_httpsource.string;
|
||||
UINT8 prefgametype = (cv_kartgametypepreference.value == -1)
|
||||
/*UINT8 prefgametype = (cv_kartgametypepreference.value == -1)
|
||||
? gametype
|
||||
: cv_kartgametypepreference.value;
|
||||
: cv_kartgametypepreference.value;*/
|
||||
|
||||
netbuffer->packettype = PT_SERVERINFO;
|
||||
netbuffer->u.serverinfo._255 = 255;
|
||||
|
|
|
|||
|
|
@ -1888,6 +1888,7 @@ static menuitemflags_t parsestyle(const char *p)
|
|||
else if STYLE("THIN", ITF_THIN)
|
||||
else if STYLE("HEADER", ITF_HEADER|IT_HIGHLIGHT)
|
||||
else if STYLE("PATCH", IT_PATCH)
|
||||
else if STYLE("MAPTHUMBNAIL", IT_MAPTHUMBNAIL)
|
||||
|
||||
if STYLE("SMALL", IT_SMALL)
|
||||
|
||||
|
|
|
|||
48
src/m_menu.c
48
src/m_menu.c
|
|
@ -2511,11 +2511,43 @@ static INT32 M_DrawMenuItem(menuitem_t *item, INT16 x, INT16 y, INT32 vflags, bo
|
|||
|
||||
if (item->status & IT_HIGHLIGHT)
|
||||
cmap = V_GetStringColormap(highlightflags);
|
||||
else if (item->status & IT_RECOMMENDEDHIGHLIGHT)
|
||||
cmap = V_GetStringColormap(recommendedflags);
|
||||
else if (item->status & IT_WARNINGHIGHLIGHT)
|
||||
cmap = V_GetStringColormap(warningflags);
|
||||
|
||||
V_DrawFixedPatch((x - width)<<FRACBITS, y<<FRACBITS, scale, vflags & ~V_FLIP, p, cmap);
|
||||
return width;
|
||||
}
|
||||
|
||||
if (item->status & IT_MAPTHUMBNAIL)
|
||||
{
|
||||
INT32 mapnum = item->argument;
|
||||
UINT8 *cmap = NULL;
|
||||
patch_t *current_map;
|
||||
fixed_t scale;
|
||||
|
||||
if (mapnum == INT32_MIN)
|
||||
{
|
||||
scale = FRACUNIT/2;
|
||||
current_map = W_CachePatchName("RANDOMLV", PU_CACHE);
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = M_GetMapThumbnail(mapnum, ¤t_map)/4;
|
||||
}
|
||||
|
||||
if (item->status & IT_HIGHLIGHT)
|
||||
cmap = V_GetStringColormap(highlightflags);
|
||||
else if (item->status & IT_RECOMMENDEDHIGHLIGHT)
|
||||
cmap = V_GetStringColormap(recommendedflags);
|
||||
else if (item->status & IT_WARNINGHIGHLIGHT)
|
||||
cmap = V_GetStringColormap(warningflags);
|
||||
|
||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, 0, current_map, cmap);
|
||||
return scale;
|
||||
}
|
||||
|
||||
switch (item->status & ITF_MASK)
|
||||
{
|
||||
case ITF_THIN2:
|
||||
|
|
@ -7997,6 +8029,8 @@ INT32 MR_EnterViewServer(INT32 choice)
|
|||
|
||||
servergametype = zva(PU_STATIC, NULL, "%s: %s", serverlist[joinnode].info.gametypename, speedstring);
|
||||
|
||||
|
||||
M_SetItemArgument(MN_VIEWSERVER, "THUMBNAIL", G_LevelTitleToMapNum(serverlist[joinnode].info.maptitle));
|
||||
M_SetItemText(MN_VIEWSERVER, "SERVERNAME", servername);
|
||||
M_SetItemText(MN_VIEWSERVER, "SERVERPING", serverping);
|
||||
M_SetItemText(MN_VIEWSERVER, "SERVERMAP", servermap);
|
||||
|
|
@ -8084,22 +8118,8 @@ INT32 MR_HandleViewServer(INT32 choice)
|
|||
|
||||
void M_DrawViewServer(void)
|
||||
{
|
||||
const char *maptitle = serverlist[joinnode].info.maptitle;
|
||||
INT32 mapnum = G_LevelTitleToMapNum(maptitle);
|
||||
patch_t *current_map;
|
||||
|
||||
V_DrawFill(M_GetItemX(MN_VIEWSERVER, "TOPBOXXY"), M_GetItemY(MN_VIEWSERVER, "TOPBOXXY"), M_GetItemX(MN_VIEWSERVER, "TOPBOXWH"), M_GetItemY(MN_VIEWSERVER, "TOPBOXWH"), 159);
|
||||
|
||||
if (mapnum == INT32_MIN)
|
||||
{
|
||||
V_DrawSmallScaledPatch(M_GetItemX(MN_VIEWSERVER, "MAPPIC"), M_GetItemY(MN_VIEWSERVER, "MAPPIC"), 0, W_CachePatchName("RANDOMLV", PU_CACHE));
|
||||
}
|
||||
else
|
||||
{
|
||||
fixed_t scale = M_GetMapThumbnail(mapnum, ¤t_map)/4;
|
||||
V_DrawFixedPatch(M_GetItemX(MN_VIEWSERVER, "MAPPIC")<<FRACBITS, M_GetItemY(MN_VIEWSERVER, "MAPPIC")<<FRACBITS, scale, 0, current_map, NULL);
|
||||
}
|
||||
|
||||
V_DrawFill(M_GetItemX(MN_VIEWSERVER, "MIDBOXXY"), M_GetItemY(MN_VIEWSERVER, "MIDBOXXY"), M_GetItemX(MN_VIEWSERVER, "MIDBOXWH"), M_GetItemY(MN_VIEWSERVER, "MIDBOXWH"), 159);
|
||||
|
||||
M_DrawGenericMenu();
|
||||
|
|
|
|||
15
src/m_menu.h
15
src/m_menu.h
|
|
@ -140,15 +140,16 @@ typedef enum
|
|||
IT_RIGHT = 1<<12, // right-align the text/patch
|
||||
IT_SMALL = 1<<13, // draw at half scale
|
||||
IT_HIGHLIGHT = 1<<14, // add highlightflags to text/patch
|
||||
IT_RECOMMENDEDHIGHLIGHT = 1<<15,
|
||||
IT_WARNINGHIGHLIGHT = 1<<16,
|
||||
IT_RECOMMENDEDHIGHLIGHT = 1<<15, // add recommendedflags to text/patch
|
||||
IT_WARNINGHIGHLIGHT = 1<<16, // add warningflags to text/patch
|
||||
IT_MAPTHUMBNAIL = 1<<17, // display a mapthumbnail instead of text
|
||||
|
||||
ITF_STANDARD = 0<<17, // standard font
|
||||
ITF_HEADER = 1<<17, // standard font, with an offset to the left
|
||||
ITF_THIN = 2<<17, // thin font
|
||||
ITF_THIN2 = 3<<17, // thin font with tighter spacing
|
||||
ITF_STANDARD = 0<<18, // standard font
|
||||
ITF_HEADER = 1<<18, // standard font, with an offset to the left
|
||||
ITF_THIN = 2<<18, // thin font
|
||||
ITF_THIN2 = 3<<18, // thin font with tighter spacing
|
||||
|
||||
ITF_MASK = 3<<17,
|
||||
ITF_MASK = 3<<18,
|
||||
IT_STYLE = IT_PATCH|IT_CENTER|IT_RIGHT|IT_SMALL|IT_HIGHLIGHT|ITF_MASK,
|
||||
} menuitemflags_t;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue