diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 0f1710d51..01f16c43f 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -8,14 +8,14 @@ extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; extern const struct CompressedSpritePalette gBagSwapSpritePalette; void ResetItemMenuIconState(void); -void CreateSwapLine(void); -void DestroyItemMenuIcon(bool8 a0); -void CreateItemMenuIcon(u16 itemId, bool8 a0); +void CreateItemMenuSwapLine(void); +void RemoveBagItemIconSprite(bool8 a0); +void AddBagItemIconSprite(u16 itemId, bool8 a0); void CreateBerryPouchItemIcon(u16 itemId, u8 idx); -void UpdateSwapLinePos(s16 x, u16 y); -void SetSwapLineInvisibility(bool8 invisible); +void UpdateItemMenuSwapLinePos(s16 x, u16 y); +void SetItemMenuSwapLineInvisibility(bool8 invisible); void SetBagVisualPocketId(u8); void ShakeBagSprite(void); -void CreateBagSprite(u8 animNum); +void AddBagVisualSprite(u8 animNum); #endif // GUARD_ITEM_MENU_ICONS_H \ No newline at end of file diff --git a/src/berry_pouch.c b/src/berry_pouch.c index aea5fcdb4..f44b63a2c 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -714,7 +714,7 @@ static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen PlaySE(SE_BAG_CURSOR); StartBerryPouchSpriteWobbleAnim(); } - DestroyItemMenuIcon(sResources->itemMenuIconId ^ 1); + RemoveBagItemIconSprite(sResources->itemMenuIconId ^ 1); if (sResources->listMenuNumItems != itemIndex) CreateBerryPouchItemIcon(BagGetItemIdByPocketPosition(POCKET_BERRIES, itemIndex), sResources->itemMenuIconId); else diff --git a/src/item_menu.c b/src/item_menu.c index 1631ead95..1850d7b5c 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -475,7 +475,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 15: - CreateBagSprite(gBagMenuState.pocket); + AddBagVisualSprite(gBagMenuState.pocket); gMain.state++; break; case 16: @@ -484,7 +484,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 17: - CreateSwapLine(); + CreateItemMenuSwapLine(); gMain.state++; break; case 18: @@ -685,11 +685,11 @@ static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMe } if (sBagMenuDisplay->itemOriginalLocation == 0xFF) { - DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + RemoveBagItemIconSprite(sBagMenuDisplay->itemMenuIcon ^ 1); if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex) - CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); + AddBagItemIconSprite(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); else - CreateItemMenuIcon(ITEMS_COUNT, sBagMenuDisplay->itemMenuIcon); + AddBagItemIconSprite(ITEMS_COUNT, sBagMenuDisplay->itemMenuIcon); sBagMenuDisplay->itemMenuIcon ^= 1; if (!sBagMenuDisplay->inhibitItemDescriptionPrint) PrintItemDescriptionOnMessageWindow(itemIndex); @@ -1154,7 +1154,7 @@ static void SwitchPockets(u8 taskId, s16 direction, bool16 a2) ClearWindowTilemap(2); DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); ScheduleBgCopyTilemapToVram(0); - DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + RemoveBagItemIconSprite(sBagMenuDisplay->itemMenuIcon ^ 1); BagDestroyPocketScrollArrowPair(); } FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12); @@ -1224,8 +1224,8 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagPrintTextOnWindow(1, FONT_NORMAL, gStringVar4, 0, 3, 2, 0, 0, 0); - UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - SetSwapLineInvisibility(FALSE); + UpdateItemMenuSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetItemMenuSwapLineInvisibility(FALSE); BagDestroyPocketSwitchArrowPair(); bag_menu_print_cursor_(data[0], 2); gTasks[taskId].func = Task_MoveItemInPocket_HandleInput; @@ -1241,7 +1241,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId) return; input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); - UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateItemMenuSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -1283,7 +1283,7 @@ static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - SetSwapLineInvisibility(TRUE); + SetItemMenuSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } @@ -1297,7 +1297,7 @@ static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - SetSwapLineInvisibility(TRUE); + SetItemMenuSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 00ff8d530..bd5e43b04 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -203,7 +203,7 @@ void ResetItemMenuIconState(void) sItemMenuIconSpriteIds[i] = SPRITE_NONE; } -void CreateBagSprite(u8 animNum) +void AddBagVisualSprite(u8 animNum) { sItemMenuIconSpriteIds[SPR_BAG] = CreateSprite(&sSpriteTemplate_Bag, 40, 68, 0); SetBagVisualPocketId(animNum); @@ -244,10 +244,41 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite) } } -void CreateSwapLine(void) +void AddBagItemIconSprite(u16 itemId, u8 idx) +{ + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; + u8 spriteId; + + if (spriteIds[idx] == SPRITE_NONE) + { + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); + FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); + spriteId = AddItemIconSprite(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); + if (spriteId != MAX_SPRITES) + { + spriteIds[idx] = spriteId; + gSprites[spriteId].x2 = 24; + gSprites[spriteId].y2 = 140; + } + } +} + +void RemoveBagItemIconSprite(u8 idx) +{ + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; + + if (spriteIds[idx] != SPRITE_NONE) + { + DestroySpriteAndFreeResources(&gSprites[spriteIds[idx]]); + spriteIds[idx] = SPRITE_NONE; + } +} + +void CreateItemMenuSwapLine(void) { u8 i; - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { @@ -268,19 +299,19 @@ void CreateSwapLine(void) } } -void SetSwapLineInvisibility(bool8 invisible) +void SetItemMenuSwapLineInvisibility(bool8 invisible) { u8 i; - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) gSprites[spriteIds[i]].invisible = invisible; } -void UpdateSwapLinePos(s16 x, u16 y) +void UpdateItemMenuSwapLinePos(s16 x, u16 y) { u8 i; - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { @@ -289,40 +320,9 @@ void UpdateSwapLinePos(s16 x, u16 y) } } -void CreateItemMenuIcon(u16 itemId, u8 idx) -{ - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; - u8 spriteId; - - if (spriteIds[idx] == SPRITE_NONE) - { - // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT - FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); - FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); - spriteId = AddItemIconSprite(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); - if (spriteId != MAX_SPRITES) - { - spriteIds[idx] = spriteId; - gSprites[spriteId].x2 = 24; - gSprites[spriteId].y2 = 140; - } - } -} - -void DestroyItemMenuIcon(u8 idx) -{ - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; - - if (spriteIds[idx] != SPRITE_NONE) - { - DestroySpriteAndFreeResources(&gSprites[spriteIds[idx]]); - spriteIds[idx] = SPRITE_NONE; - } -} - void CreateBerryPouchItemIcon(u16 itemId, u8 idx) { - u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; + u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; u8 spriteId; if (spriteIds[idx] == SPRITE_NONE) @@ -335,7 +335,7 @@ void CreateBerryPouchItemIcon(u16 itemId, u8 idx) { spriteIds[idx] = spriteId; gSprites[spriteId].x2 = 24; - gSprites[spriteId].y2 = 147; // This value is the only difference from CreateItemMenuIcon + gSprites[spriteId].y2 = 147; // This value is the only difference from AddBagItemIconSprite } } } diff --git a/src/item_pc.c b/src/item_pc.c index a62f1d568..81c12ae37 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -343,7 +343,7 @@ static bool8 ItemPc_DoGfxSetup(void) gMain.state++; break; case 14: - CreateSwapLine(); + CreateItemMenuSwapLine(); gMain.state++; break; case 15: @@ -518,11 +518,11 @@ static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * if (sStateDataPtr->moveModeOrigPos == 0xFF) { - DestroyItemMenuIcon(sStateDataPtr->itemMenuIconSlot ^ 1); + RemoveBagItemIconSprite(sStateDataPtr->itemMenuIconSlot ^ 1); if (itemIndex != -2) { itemId = ItemPc_GetItemIdBySlotId(itemIndex); - CreateItemMenuIcon(itemId, sStateDataPtr->itemMenuIconSlot); + AddBagItemIconSprite(itemId, sStateDataPtr->itemMenuIconSlot); if (ItemId_GetPocket(itemId) == POCKET_TM_HM) desc = gMovesInfo[ItemIdToBattleMoveId(itemId)].name; else @@ -530,7 +530,7 @@ static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * } else { - CreateItemMenuIcon(ITEMS_COUNT, sStateDataPtr->itemMenuIconSlot); + AddBagItemIconSprite(ITEMS_COUNT, sStateDataPtr->itemMenuIconSlot); desc = gText_ReturnToPC; } sStateDataPtr->itemMenuIconSlot ^= 1; @@ -775,8 +775,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, 0x00); ItemPc_AddTextPrinterParameterized(1, FONT_NORMAL, gStringVar4, 0, 3, 2, 3, 0, 0); - UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - SetSwapLineInvisibility(FALSE); + UpdateItemMenuSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetItemMenuSwapLineInvisibility(FALSE); ItemPc_PrintOrRemoveCursor(data[0], 2); gTasks[taskId].func = Task_ItemPcMoveItemModeRun; } @@ -787,7 +787,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId) ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); - UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateItemMenuSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -815,7 +815,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - SetSwapLineInvisibility(TRUE); + SetItemMenuSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } } @@ -829,7 +829,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - SetSwapLineInvisibility(TRUE); + SetItemMenuSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } diff --git a/src/shop.c b/src/shop.c index 36df111f9..6411ec0ac 100644 --- a/src/shop.c +++ b/src/shop.c @@ -573,11 +573,11 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s FillWindowPixelBuffer(5, PIXEL_FILL(0)); if (sShopData.martType != MART_TYPE_TMHM) { - DestroyItemMenuIcon(sShopData.itemSlot ^ 1); + RemoveBagItemIconSprite(sShopData.itemSlot ^ 1); if (item != INDEX_CANCEL) - CreateItemMenuIcon(item, sShopData.itemSlot); + AddBagItemIconSprite(item, sShopData.itemSlot); else - CreateItemMenuIcon(ITEMS_COUNT, sShopData.itemSlot); + AddBagItemIconSprite(ITEMS_COUNT, sShopData.itemSlot); sShopData.itemSlot ^= 1; BuyMenuPrint(5, FONT_NORMAL, description, 0, 3, 2, 1, 0, 0);