Fix HUD drawing crash if 1 or more KITEM_NONE

blame 375fb72de
This commit is contained in:
James R 2022-09-24 02:47:52 -07:00
parent e8f75be938
commit 42c6f4fe92

View file

@ -695,7 +695,7 @@ const char *K_GetItemPatch(UINT8 item, boolean tiny)
} }
} }
static patch_t **K_GetItemPatchTable(INT32 item) static patch_t *K_GetCachedItemPatch(INT32 item, UINT8 offset)
{ {
patch_t **kp[1 + NUMKARTITEMS] = { patch_t **kp[1 + NUMKARTITEMS] = {
kp_sadface, kp_sadface,
@ -723,8 +723,8 @@ static patch_t **K_GetItemPatchTable(INT32 item)
kp_droptarget, kp_droptarget,
}; };
if (item >= KITEM_SAD && item < NUMKARTITEMS) if (item == KITEM_SAD || (item > KITEM_NONE && item < NUMKARTITEMS))
return kp[item - KITEM_SAD]; return kp[item - KITEM_SAD][offset];
else else
return NULL; return NULL;
} }
@ -1146,7 +1146,7 @@ static void K_drawKartItem(void)
break; break;
default: default:
localpatch = K_GetItemPatchTable(item)[offset]; localpatch = K_GetCachedItemPatch(item, offset);
} }
} }
else else
@ -1224,7 +1224,7 @@ static void K_drawKartItem(void)
/*FALLTHRU*/ /*FALLTHRU*/
default: default:
localpatch = K_GetItemPatchTable(stplyr->itemtype)[offset]; localpatch = K_GetCachedItemPatch(stplyr->itemtype, offset);
if (localpatch == NULL) if (localpatch == NULL)
localpatch = kp_nodraw; // diagnose underflows localpatch = kp_nodraw; // diagnose underflows