diff options
| author | Garrett Cox <garrettjcox@gmail.com> | 2024-05-13 10:38:55 -0500 |
|---|---|---|
| committer | Garrett Cox <garrettjcox@gmail.com> | 2024-05-22 09:05:04 -0500 |
| commit | cd1592cff6471c7ee20f0fab35f8caf5ebdb0347 (patch) | |
| tree | cd23774c69fde7d1c0516b384760cf8641171080 /mm/src/code | |
| parent | a46850859aa1b32f11fcdcb79829e0f8495b11ad (diff) | |
Add safety check to loadItemIcon (#380)
* Add safety check to loadItemIcon
* Update mm/src/code/code_8012EC80.c
Diffstat (limited to 'mm/src/code')
| -rw-r--r-- | mm/src/code/z_parameter.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/mm/src/code/z_parameter.c b/mm/src/code/z_parameter.c index 8cbbc2979..3ba9f4cfa 100644 --- a/mm/src/code/z_parameter.c +++ b/mm/src/code/z_parameter.c @@ -3310,8 +3310,12 @@ void Interface_InitMinigame(PlayState* play) { void Interface_Dpad_LoadItemIconImpl(PlayState* play, u8 btn) { InterfaceContext* interfaceCtx = &play->interfaceCtx; - - interfaceCtx->iconItemSegment[DPAD_BUTTON(btn) + EQUIP_SLOT_MAX] = gItemIcons[DPAD_GET_CUR_FORM_BTN_ITEM(btn)]; + + if (DPAD_GET_CUR_FORM_BTN_ITEM(btn) < ARRAY_COUNT(gItemIcons)) { + interfaceCtx->iconItemSegment[DPAD_BUTTON(btn) + EQUIP_SLOT_MAX] = gItemIcons[DPAD_GET_CUR_FORM_BTN_ITEM(btn)]; + } else { + interfaceCtx->iconItemSegment[btn] = gEmptyTexture; + } } void Interface_LoadItemIconImpl(PlayState* play, u8 btn) { @@ -3320,7 +3324,11 @@ void Interface_LoadItemIconImpl(PlayState* play, u8 btn) { // #region 2S2H [Port] // CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_static_yar), GET_CUR_FORM_BTN_ITEM(btn), // &interfaceCtx->iconItemSegment[(u32)btn * 0x1000], 0x1000); - interfaceCtx->iconItemSegment[btn] = gItemIcons[GET_CUR_FORM_BTN_ITEM(btn)]; + if (GET_CUR_FORM_BTN_ITEM(btn) < ARRAY_COUNT(gItemIcons)) { + interfaceCtx->iconItemSegment[btn] = gItemIcons[GET_CUR_FORM_BTN_ITEM(btn)]; + } else { + interfaceCtx->iconItemSegment[btn] = gEmptyTexture; + } // #endregion } |
