summaryrefslogtreecommitdiff
path: root/mm/src/code
diff options
context:
space:
mode:
authorGarrett Cox <garrettjcox@gmail.com>2024-05-13 10:38:55 -0500
committerGarrett Cox <garrettjcox@gmail.com>2024-05-22 09:05:04 -0500
commitcd1592cff6471c7ee20f0fab35f8caf5ebdb0347 (patch)
treecd23774c69fde7d1c0516b384760cf8641171080 /mm/src/code
parenta46850859aa1b32f11fcdcb79829e0f8495b11ad (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.c14
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
}