From 1d600210fa3ca15e6150c006ef27cdecf85bc913 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 20 Jun 2025 12:03:37 -0400 Subject: [PATCH] softcode mapthumbnail drawing --- src/d_clisrv.c | 4 ++-- src/deh_soc.c | 1 + src/m_menu.c | 48 ++++++++++++++++++++++++++++++++++-------------- src/m_menu.h | 15 ++++++++------- 4 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 1bba8281f..a03e0a980 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -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; diff --git a/src/deh_soc.c b/src/deh_soc.c index b5ae3d102..f66e959f8 100644 --- a/src/deh_soc.c +++ b/src/deh_soc.c @@ -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) diff --git a/src/m_menu.c b/src/m_menu.c index 8c96e51ad..895e49647 100644 --- a/src/m_menu.c +++ b/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)<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<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")<