From 3ab2e769c5cb4d5e0fcd7054cd756c4d47405002 Mon Sep 17 00:00:00 2001 From: Anonimus Date: Sun, 14 Sep 2025 22:05:23 -0400 Subject: [PATCH] Fix misalignment for smaller minimap icons --- src/k_hud.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/k_hud.c b/src/k_hud.c index f077f5160..1ac2c2a88 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -3660,6 +3660,8 @@ static void K_drawKartNameTags(void) V_ClearClipRect(); } +#define MINIHEADSCALE (FRACUNIT / 2) + static inline void K_drawKartMinimapIcon(fixed_t objx, fixed_t objy, INT32 hudx, INT32 hudy, INT32 flags, patch_t *icon, UINT8 *colormap, vector2_t *origin) { // amnum xpos & ypos are the icon's speed around the HUD. @@ -3691,7 +3693,7 @@ static inline void K_drawKartMinimapIcon(fixed_t objx, fixed_t objy, INT32 hudx, return; if (cv_minihead.value) - scale = FRACUNIT / 2; + scale = MINIHEADSCALE; amnumxpos = (FixedMul(objx, minimapinfo.zoom) - minimapinfo.offs_x); amnumypos = -(FixedMul(objy, minimapinfo.zoom) - minimapinfo.offs_y); @@ -3957,6 +3959,8 @@ static void K_drawKartMinimap(void) minimaptrans = ((10-minimaptrans)<width, y, splitflags|minimaptrans|V_FLIP, minimapinfo.minimap_pic); else @@ -3997,8 +4001,8 @@ static void K_drawKartMinimap(void) interpy = R_InterpolateFixed(g->mo->old_y, g->mo->y); patch_t *ghostPic = faceprefix[skin][FACE_MINIMAP]; - iconoffsets.x = ((ghostPic->width) / 2) - ghostPic->leftoffset; - iconoffsets.y = ((ghostPic->height) / 2) - ghostPic->topoffset; + iconoffsets.x = ((ghostPic->width) / 2) - FixedMul(ghostPic->leftoffset, minimapscale); + iconoffsets.y = ((ghostPic->height) / 2) - FixedMul(ghostPic->topoffset, minimapscale); K_drawKartMinimapIcon(interpx, interpy, x, y, splitflags, ghostPic, colormap, &iconoffsets); g = g->next; @@ -4055,8 +4059,10 @@ static void K_drawKartMinimap(void) workingPic = faceprefix[skin][FACE_MINIMAP]; - iconoffsets.x = ((workingPic->width) / 2) - workingPic->leftoffset; - iconoffsets.y = ((workingPic->height) / 2) - workingPic->topoffset; + iconoffsets.x = ((workingPic->width) / 2) - workingPic->leftoffset + + FixedMul(workingPic->leftoffset, FRACUNIT - minimapscale); + iconoffsets.y = ((workingPic->height) / 2) - workingPic->topoffset + + FixedMul(workingPic->topoffset, FRACUNIT - minimapscale); #ifdef ROTSPRITE if ((K_MinimapIconCanSpinout()) && (players[i].spinoutrot)) @@ -4270,8 +4276,10 @@ static void K_drawKartMinimap(void) workingPic = faceprefix[skin][FACE_MINIMAP]; - iconoffsets.x = ((workingPic->width) / 2) - workingPic->leftoffset; - iconoffsets.y = ((workingPic->height) / 2) - workingPic->topoffset; + iconoffsets.x = ((workingPic->width) / 2) - workingPic->leftoffset + + FixedMul(workingPic->leftoffset, FRACUNIT - minimapscale); + iconoffsets.y = ((workingPic->height) / 2) - workingPic->topoffset + + FixedMul(workingPic->topoffset, FRACUNIT - minimapscale); #ifdef ROTSPRITE if ((K_MinimapIconCanSpinout()) && (players[localplayers[i]].spinoutrot))