mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-19 19:38:00 -05:00
sync item menu functions
This commit is contained in:
parent
869a07316e
commit
39a98562b8
|
|
@ -5,9 +5,15 @@
|
|||
#include "task.h"
|
||||
#include "constants/item.h"
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
#define ITEMMENU_SWAP_LINE_LENGTH 9
|
||||
// Indexes for gItemMenuIconSpriteIds
|
||||
enum {
|
||||
ITEMMENUSPRITE_BAG,
|
||||
ITEMMENUSPRITE_SWAP_LINE,
|
||||
ITEMMENUSPRITE_ITEM = ITEMMENUSPRITE_SWAP_LINE + ITEMMENU_SWAP_LINE_LENGTH,
|
||||
ITEMMENUSPRITE_ITEM_ALT,
|
||||
ITEMMENUSPRITE_COUNT
|
||||
};
|
||||
|
||||
struct BagStruct
|
||||
{
|
||||
|
|
@ -20,6 +26,7 @@ struct BagStruct
|
|||
};
|
||||
|
||||
extern struct BagStruct gBagMenuState;
|
||||
extern u8 gItemMenuIconSpriteIds[ITEMMENUSPRITE_COUNT];
|
||||
|
||||
extern u16 gSpecialVar_ItemId;
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ void AddBagItemIconSprite(u16 itemId, u8 id);
|
|||
void RemoveBagItemIconSprite(u8 id);
|
||||
void CreateItemMenuSwapLine(void);
|
||||
void SetItemMenuSwapLineInvisibility(bool8 invisible);
|
||||
void UpdateItemMenuSwapLinePos(s16 x, u16 y);
|
||||
void UpdateItemMenuSwapLinePos(u16 y);
|
||||
|
||||
void ResetItemMenuIconState(void);
|
||||
void CreateBerryPouchItemIcon(u16 itemId, u8 id);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,15 @@
|
|||
#define MENU_L_PRESSED 1
|
||||
#define MENU_R_PRESSED 2
|
||||
|
||||
#define SWAP_LINE_HAS_MARGIN (1 << 7)
|
||||
|
||||
enum {
|
||||
TAG_BAG_GFX = 100,
|
||||
TAG_SWAP_LINE,
|
||||
TAG_ITEM_ICON,
|
||||
TAG_ITEM_ICON_ALT,
|
||||
};
|
||||
|
||||
struct YesNoFuncTable
|
||||
{
|
||||
TaskFunc yesFunc;
|
||||
|
|
@ -30,5 +39,8 @@ u8 GetLRKeysPressedAndHeld(void);
|
|||
bool8 IsHoldingItemAllowed(u16 itemId);
|
||||
bool8 IsWritingMailAllowed(u16 itemId);
|
||||
void ResetVramOamAndBgCntRegs(void);
|
||||
void CreateSwapLineSprites(u8 *spriteIds, u8 count);
|
||||
void SetSwapLineSpritesInvisibility(u8 *spriteIds, u8 count, bool8 invisible);
|
||||
void UpdateSwapLineSpritesPos(u8 *spriteIds, u8 count, s16 x, u16 y);
|
||||
|
||||
#endif //GUARD_MENU_HELPERS_H
|
||||
|
|
|
|||
|
|
@ -1097,9 +1097,6 @@ extern const u8 gOtherText_Walk[];
|
|||
extern const u8 gOtherText_Check[];
|
||||
extern const u8 gOtherText_Open[];
|
||||
extern const u8 gOtherText_Deselect[];
|
||||
extern const u8 gText_Items2[];
|
||||
extern const u8 gText_PokeBalls2[];
|
||||
extern const u8 gText_KeyItems2[];
|
||||
extern const u8 gText_CloseBag[];
|
||||
extern const u8 gText_CantWriteMailHere[];
|
||||
extern const u8 gText_DepositHowManyStrVars1[];
|
||||
|
|
|
|||
|
|
@ -88,9 +88,9 @@ static u8 CreateBagInputHandlerTask(u8 location);
|
|||
static bool8 TryAllocListMenuBuffers(void);
|
||||
static void Bag_BuildListMenuTemplate(u8 pocket);
|
||||
static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId);
|
||||
static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
||||
static void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
||||
static void BagListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y);
|
||||
static void bag_menu_print_cursor(u8 y, u8 colorIdx);
|
||||
static void BagMenu_PrintCursorAtPos(u8 y, u8 colorIdx);
|
||||
static void PrintBagPocketName(void);
|
||||
static void PrintItemDescriptionOnMessageWindow(s32 itemIndex);
|
||||
static void CreatePocketScrollArrowPair(void);
|
||||
|
|
@ -107,10 +107,10 @@ static void Task_BagMenu_HandleInput(u8 taskId);
|
|||
static void Task_ItemContextMenuByLocation(u8 taskId);
|
||||
static void Bag_FillMessageBoxWithPalette(u32 a0);
|
||||
static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId);
|
||||
static void SwitchPockets(u8 taskId, s16 direction, bool16 a2);
|
||||
static void SwitchBagPocket(u8 taskId, s16 direction, bool16 a2);
|
||||
static void Task_AnimateSwitchPockets(u8 taskId);
|
||||
static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex);
|
||||
static void Task_MoveItemInPocket_HandleInput(u8 taskId);
|
||||
static void Task_HandleSwappingItemsInput(u8 taskId);
|
||||
static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex);
|
||||
static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex);
|
||||
static void DrawItemListRow(u8 row);
|
||||
|
|
@ -183,10 +183,10 @@ static const struct BgTemplate sBgTemplates[2] = {
|
|||
}
|
||||
};
|
||||
|
||||
static const u8 *const sPocketNames[] = {
|
||||
gText_Items2,
|
||||
gText_KeyItems2,
|
||||
gText_PokeBalls2
|
||||
static const u8 *const gPocketNamesStringsTable[] = {
|
||||
[ITEMS_POCKET] = COMPOUND_STRING("ITEMS"),
|
||||
[KEYITEMS_POCKET] = COMPOUND_STRING("KEY ITEMS"),
|
||||
[BALLS_POCKET] = COMPOUND_STRING("POKé BALLS"),
|
||||
};
|
||||
|
||||
#define LIST_TILES_WIDTH 18
|
||||
|
|
@ -663,7 +663,7 @@ static void Bag_BuildListMenuTemplate(u8 pocket)
|
|||
gMultiuseListMenuTemplate.cursorPal = 2;
|
||||
gMultiuseListMenuTemplate.fillValue = 0;
|
||||
gMultiuseListMenuTemplate.cursorShadowPal = 3;
|
||||
gMultiuseListMenuTemplate.moveCursorFunc = BagListMenuMoveCursorFunc;
|
||||
gMultiuseListMenuTemplate.moveCursorFunc = BagMenu_MoveCursorCallback;
|
||||
gMultiuseListMenuTemplate.itemPrintFunc = BagListMenuItemPrintFunc;
|
||||
gMultiuseListMenuTemplate.cursorKind = 0;
|
||||
gMultiuseListMenuTemplate.scrollMultiple = 0;
|
||||
|
|
@ -681,7 +681,7 @@ static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId)
|
|||
PrependFontIdToFit(dest, end, FONT_NARROW, 61);
|
||||
}
|
||||
|
||||
static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
static void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
{
|
||||
if (onInit != TRUE)
|
||||
{
|
||||
|
|
@ -708,9 +708,9 @@ static void BagListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y)
|
|||
if (sBagMenuDisplay->itemOriginalLocation != 0xFF)
|
||||
{
|
||||
if (sBagMenuDisplay->itemOriginalLocation == (u8)itemId)
|
||||
bag_menu_print_cursor(y, 2);
|
||||
BagMenu_PrintCursorAtPos(y, 2);
|
||||
else
|
||||
bag_menu_print_cursor(y, 0xFF);
|
||||
BagMenu_PrintCursorAtPos(y, 0xFF);
|
||||
}
|
||||
if (itemId != -2 && sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemId)
|
||||
{
|
||||
|
|
@ -729,12 +729,12 @@ static void BagListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y)
|
|||
}
|
||||
}
|
||||
|
||||
static void bag_menu_print_cursor_(u8 taskId, u8 colorIdx)
|
||||
static void BagMenu_PrintCursor(u8 listTaskId, u8 colorIndex)
|
||||
{
|
||||
bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx);
|
||||
BagMenu_PrintCursorAtPos(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), colorIndex);
|
||||
}
|
||||
|
||||
static void bag_menu_print_cursor(u8 y, u8 colorIdx)
|
||||
static void BagMenu_PrintCursorAtPos(u8 y, u8 colorIdx)
|
||||
{
|
||||
if (colorIdx == 0xFF)
|
||||
{
|
||||
|
|
@ -749,7 +749,7 @@ static void bag_menu_print_cursor(u8 y, u8 colorIdx)
|
|||
static void PrintBagPocketName(void)
|
||||
{
|
||||
FillWindowPixelBuffer(2, PIXEL_FILL(0));
|
||||
BagPrintTextOnWin1CenteredColor0(sPocketNames[gBagMenuState.pocket], gBagMenuState.pocket);
|
||||
BagPrintTextOnWin1CenteredColor0(gPocketNamesStringsTable[gBagMenuState.pocket], gBagMenuState.pocket);
|
||||
}
|
||||
|
||||
static void PrintItemDescriptionOnMessageWindow(s32 itemIndex)
|
||||
|
|
@ -1052,10 +1052,10 @@ static void Task_BagMenu_HandleInput(u8 taskId)
|
|||
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
|
||||
{
|
||||
case 1:
|
||||
SwitchPockets(taskId, -1, FALSE);
|
||||
SwitchBagPocket(taskId, -1, FALSE);
|
||||
return;
|
||||
case 2:
|
||||
SwitchPockets(taskId, 1, FALSE);
|
||||
SwitchBagPocket(taskId, 1, FALSE);
|
||||
return;
|
||||
default:
|
||||
if (JOY_NEW(SELECT_BUTTON) && gBagMenuState.location == ITEMMENULOCATION_FIELD)
|
||||
|
|
@ -1093,7 +1093,7 @@ static void Task_BagMenu_HandleInput(u8 taskId)
|
|||
else
|
||||
{
|
||||
BagDestroyPocketScrollArrowPair();
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
data[1] = input;
|
||||
data[2] = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, input);
|
||||
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, input);
|
||||
|
|
@ -1146,13 +1146,13 @@ static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void SwitchPockets(u8 taskId, s16 direction, bool16 a2)
|
||||
static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, bool16 skipEraseList)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
tSwitchState = 0;
|
||||
tSwitchCounter = 0;
|
||||
tSwitchDir = direction;
|
||||
if (!a2)
|
||||
tSwitchDir = deltaBagPocketId;
|
||||
if (!skipEraseList)
|
||||
{
|
||||
ClearWindowTilemap(0);
|
||||
ClearWindowTilemap(1);
|
||||
|
|
@ -1164,7 +1164,7 @@ static void SwitchPockets(u8 taskId, s16 direction, bool16 a2)
|
|||
}
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
SetBagVisualPocketId(gBagMenuState.pocket + direction);
|
||||
SetBagVisualPocketId(gBagMenuState.pocket + deltaBagPocketId);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_AnimateSwitchPockets, gTasks[taskId].func);
|
||||
}
|
||||
|
||||
|
|
@ -1178,12 +1178,12 @@ static void Task_AnimateSwitchPockets(u8 taskId)
|
|||
case 1:
|
||||
gBagMenuState.pocket += tSwitchDir;
|
||||
SwitchTaskToFollowupFunc(taskId);
|
||||
SwitchPockets(taskId, -1, TRUE);
|
||||
SwitchBagPocket(taskId, -1, TRUE);
|
||||
return;
|
||||
case 2:
|
||||
gBagMenuState.pocket += tSwitchDir;
|
||||
SwitchTaskToFollowupFunc(taskId);
|
||||
SwitchPockets(taskId, 1, TRUE);
|
||||
SwitchBagPocket(taskId, 1, TRUE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1229,14 +1229,14 @@ 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);
|
||||
UpdateItemMenuSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
UpdateItemMenuSwapLinePos(ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
SetItemMenuSwapLineInvisibility(FALSE);
|
||||
BagDestroyPocketSwitchArrowPair();
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
gTasks[taskId].func = Task_MoveItemInPocket_HandleInput;
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
gTasks[taskId].func = Task_HandleSwappingItemsInput;
|
||||
}
|
||||
|
||||
static void Task_MoveItemInPocket_HandleInput(u8 taskId)
|
||||
static void Task_HandleSwappingItemsInput(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
s32 input;
|
||||
|
|
@ -1246,7 +1246,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]);
|
||||
UpdateItemMenuSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
UpdateItemMenuSwapLinePos(ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
if (JOY_NEW(SELECT_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
|
@ -1516,7 +1516,7 @@ static void Task_TossItem_No(u8 taskId)
|
|||
HideBagWindow(6);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
||||
|
|
@ -1545,7 +1545,7 @@ static void Task_SelectQuantityToToss(u8 taskId)
|
|||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
BagDestroyPocketScrollArrowPair();
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
|
@ -1577,7 +1577,7 @@ static void Task_WaitAB_RedrawAndReturnToBag(u8 taskId)
|
|||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1657,7 +1657,7 @@ void Task_ReturnToBagFromContextMenu(u8 taskId)
|
|||
Bag_BuildListMenuTemplate(gBagMenuState.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
||||
|
|
@ -1668,7 +1668,7 @@ static void Task_ItemMenuAction_Cancel(u8 taskId)
|
|||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(gTasks[taskId].data[0], 1);
|
||||
BagMenu_PrintCursor(gTasks[taskId].data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
||||
|
|
@ -1861,7 +1861,7 @@ static void Task_SellItem_No(u8 taskId)
|
|||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
||||
|
|
@ -1911,7 +1911,7 @@ static void Task_SelectQuantityToSell(u8 taskId)
|
|||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
BagDestroyPocketScrollArrowPair();
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1940,7 +1940,7 @@ static void Task_FinalizeSaleToShop(u8 taskId)
|
|||
sBagMenuDisplay->inhibitItemDescriptionPrint = TRUE;
|
||||
Bag_BuildListMenuTemplate(gBagMenuState.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
BagDrawTextBoxOnWindow(GetBagWindow(2));
|
||||
PrintMoneyAmountInMoneyBox(GetBagWindow(2), GetMoney(&gSaveBlock1Ptr->money), 0);
|
||||
gTasks[taskId].func = Task_WaitPressAB_AfterSell;
|
||||
|
|
@ -1997,7 +1997,7 @@ static void Task_SelectQuantityToDeposit(u8 taskId)
|
|||
HideBagWindow(0);
|
||||
PutWindowTilemap(1);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
BagDestroyPocketScrollArrowPair();
|
||||
Task_RedrawArrowsAndReturnToBagMenuSelect(taskId);
|
||||
}
|
||||
|
|
@ -2121,11 +2121,11 @@ static void Task_Bag_OldManTutorial(u8 taskId)
|
|||
case 102:
|
||||
case 204:
|
||||
PlaySE(SE_BAG_POCKET);
|
||||
SwitchPockets(taskId, 1, FALSE);
|
||||
SwitchBagPocket(taskId, 1, FALSE);
|
||||
break;
|
||||
case 306:
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
Bag_FillMessageBoxWithPalette(1);
|
||||
gSpecialVar_ItemId = ITEM_POKE_BALL;
|
||||
OpenContextMenu(taskId);
|
||||
|
|
@ -2224,11 +2224,11 @@ static void Task_Bag_TeachyTvRegister(u8 taskId)
|
|||
{
|
||||
case 102:
|
||||
PlaySE(SE_BAG_POCKET);
|
||||
SwitchPockets(taskId, 1, FALSE);
|
||||
SwitchBagPocket(taskId, 1, FALSE);
|
||||
break;
|
||||
case 204:
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
Bag_FillMessageBoxWithPalette(1);
|
||||
gSpecialVar_ItemId = ITEM_TEACHY_TV;
|
||||
OpenContextMenu(taskId);
|
||||
|
|
@ -2248,7 +2248,7 @@ static void Task_Bag_TeachyTvRegister(u8 taskId)
|
|||
Bag_BuildListMenuTemplate(gBagMenuState.pocket);
|
||||
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
Bag_FillMessageBoxWithPalette(0);
|
||||
bag_menu_print_cursor_(data[0], 1);
|
||||
BagMenu_PrintCursor(data[0], 1);
|
||||
CopyWindowToVram(0, COPYWIN_MAP);
|
||||
break;
|
||||
case 510:
|
||||
|
|
@ -2285,7 +2285,7 @@ static void Task_Bag_TeachyTvCatching(u8 taskId)
|
|||
case 102:
|
||||
case 204:
|
||||
PlaySE(SE_BAG_POCKET);
|
||||
SwitchPockets(taskId, 1, FALSE);
|
||||
SwitchBagPocket(taskId, 1, FALSE);
|
||||
break;
|
||||
case 306:
|
||||
case 408:
|
||||
|
|
@ -2301,7 +2301,7 @@ static void Task_Bag_TeachyTvCatching(u8 taskId)
|
|||
break;
|
||||
case 714:
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
Bag_FillMessageBoxWithPalette(1);
|
||||
gSpecialVar_ItemId = ITEM_POKE_BALL;
|
||||
OpenContextMenu(taskId);
|
||||
|
|
@ -2343,7 +2343,7 @@ static void Task_Bag_TeachyTvStatus(u8 taskId)
|
|||
break;
|
||||
case 204:
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
Bag_FillMessageBoxWithPalette(1);
|
||||
gSpecialVar_ItemId = ITEM_ANTIDOTE;
|
||||
OpenContextMenu(taskId);
|
||||
|
|
@ -2375,7 +2375,7 @@ static void Task_Bag_TeachyTvTMs(u8 taskId)
|
|||
{
|
||||
case 102:
|
||||
PlaySE(SE_BAG_POCKET);
|
||||
SwitchPockets(taskId, 1, 0);
|
||||
SwitchBagPocket(taskId, 1, 0);
|
||||
break;
|
||||
case 204:
|
||||
gMain.newKeys = 0;
|
||||
|
|
@ -2384,7 +2384,7 @@ static void Task_Bag_TeachyTvTMs(u8 taskId)
|
|||
break;
|
||||
case 306:
|
||||
PlaySE(SE_SELECT);
|
||||
bag_menu_print_cursor_(data[0], 2);
|
||||
BagMenu_PrintCursor(data[0], 2);
|
||||
Bag_FillMessageBoxWithPalette(1);
|
||||
gSpecialVar_ItemId = ITEM_TM_CASE;
|
||||
OpenContextMenu(taskId);
|
||||
|
|
|
|||
|
|
@ -1,42 +1,18 @@
|
|||
#include "global.h"
|
||||
|
||||
#include "sprite.h"
|
||||
|
||||
#include "graphics.h"
|
||||
#include "item_icon.h"
|
||||
#include "item_menu.h"
|
||||
#include "item_menu_icons.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "sprite.h"
|
||||
#include "constants/item.h"
|
||||
|
||||
enum {
|
||||
TAG_BAG = 100,
|
||||
TAG_SWAP_LINE,
|
||||
TAG_ITEM_ICON,
|
||||
TAG_ITEM_ICON_ALT,
|
||||
};
|
||||
|
||||
#define NUM_SWAP_LINE_SPRITES 9
|
||||
|
||||
// Indexes for sItemMenuIconSpriteIds
|
||||
enum {
|
||||
SPR_BAG,
|
||||
SPR_SWAP_LINE_START,
|
||||
SPR_ITEM_ICON = SPR_SWAP_LINE_START + NUM_SWAP_LINE_SPRITES,
|
||||
SPR_ITEM_ICON_ALT,
|
||||
SPR_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
ANIM_SWAP_LINE_START,
|
||||
ANIM_SWAP_LINE_MID,
|
||||
ANIM_SWAP_LINE_END,
|
||||
};
|
||||
|
||||
enum {
|
||||
AFFINEANIM_BAG_IDLE,
|
||||
AFFINEANIM_BAG_SHAKE,
|
||||
};
|
||||
|
||||
static EWRAM_DATA u8 sItemMenuIconSpriteIds[SPR_COUNT] = {0};
|
||||
EWRAM_DATA u8 gItemMenuIconSpriteIds[ITEMMENUSPRITE_COUNT] = {0};
|
||||
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite);
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite *sprite);
|
||||
|
|
@ -94,23 +70,23 @@ static const union AffineAnimCmd *const sAffineAnimTable_Bag[] = {
|
|||
const struct CompressedSpriteSheet gSpriteSheet_BagMale = {
|
||||
.data = gBagMale_Gfx,
|
||||
.size = 0x2000,
|
||||
.tag = TAG_BAG
|
||||
.tag = TAG_BAG_GFX
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gSpriteSheet_BagFemale = {
|
||||
.data = gBagFemale_Gfx,
|
||||
.size = 0x2000,
|
||||
.tag = TAG_BAG
|
||||
.tag = TAG_BAG_GFX
|
||||
};
|
||||
|
||||
const struct SpritePalette gSpritePalette_Bag = {
|
||||
.data = gBag_Pal,
|
||||
.tag = TAG_BAG
|
||||
.tag = TAG_BAG_GFX
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_Bag = {
|
||||
.tileTag = TAG_BAG,
|
||||
.paletteTag = TAG_BAG,
|
||||
.tileTag = TAG_BAG_GFX,
|
||||
.paletteTag = TAG_BAG_GFX,
|
||||
.oam = &sOamData_Bag,
|
||||
.anims = sAnims_Bag,
|
||||
.images = NULL,
|
||||
|
|
@ -118,56 +94,6 @@ static const struct SpriteTemplate sSpriteTemplate_Bag = {
|
|||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_SwapLine = {
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.size = SPRITE_SIZE(16x16),
|
||||
.priority = 1,
|
||||
.paletteNum = 1
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_Start[] = {
|
||||
ANIMCMD_FRAME(0, 0),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_Mid[] = {
|
||||
ANIMCMD_FRAME(4, 0),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_End[] = {
|
||||
ANIMCMD_FRAME(0, 0, .hFlip = TRUE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_SwapLine[] = {
|
||||
[ANIM_SWAP_LINE_START] = sAnim_SwapLine_Start,
|
||||
[ANIM_SWAP_LINE_MID] = sAnim_SwapLine_Mid,
|
||||
[ANIM_SWAP_LINE_END] = sAnim_SwapLine_End
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gBagSwapSpriteSheet = {
|
||||
.data = gSwapLine_Gfx,
|
||||
.size = 0x100,
|
||||
.tag = TAG_SWAP_LINE
|
||||
};
|
||||
|
||||
const struct SpritePalette gBagSwapSpritePalette = {
|
||||
.data = gSwapLine_Pal,
|
||||
.tag = TAG_SWAP_LINE
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_SwapLine = {
|
||||
.tileTag = TAG_SWAP_LINE,
|
||||
.paletteTag = TAG_SWAP_LINE,
|
||||
.oam = &sOamData_SwapLine,
|
||||
.anims = sAnims_SwapLine,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_ItemIcon = {
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.shape = SPRITE_SHAPE(32x32),
|
||||
|
|
@ -199,19 +125,19 @@ void ResetItemMenuIconState(void)
|
|||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < SPR_COUNT; i++)
|
||||
sItemMenuIconSpriteIds[i] = SPRITE_NONE;
|
||||
for (i = 0; i < ITEMMENUSPRITE_COUNT; i++)
|
||||
gItemMenuIconSpriteIds[i] = SPRITE_NONE;
|
||||
}
|
||||
|
||||
void AddBagVisualSprite(u8 bagPocketId)
|
||||
{
|
||||
sItemMenuIconSpriteIds[SPR_BAG] = CreateSprite(&sSpriteTemplate_Bag, 40, 68, 0);
|
||||
gItemMenuIconSpriteIds[ITEMMENUSPRITE_BAG] = CreateSprite(&sSpriteTemplate_Bag, 40, 68, 0);
|
||||
SetBagVisualPocketId(bagPocketId);
|
||||
}
|
||||
|
||||
void SetBagVisualPocketId(u8 bagPocketId)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]];
|
||||
struct Sprite *sprite = &gSprites[gItemMenuIconSpriteIds[ITEMMENUSPRITE_BAG]];
|
||||
sprite->y2 = -5;
|
||||
sprite->callback = SpriteCB_BagVisualSwitchingPockets;
|
||||
StartSpriteAnim(sprite, bagPocketId);
|
||||
|
|
@ -227,7 +153,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite)
|
|||
|
||||
void ShakeBagSprite(void)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]];
|
||||
struct Sprite *sprite = &gSprites[gItemMenuIconSpriteIds[ITEMMENUSPRITE_BAG]];
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, AFFINEANIM_BAG_SHAKE);
|
||||
|
|
@ -246,11 +172,12 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite)
|
|||
|
||||
void AddBagItemIconSprite(u16 itemId, u8 id)
|
||||
{
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON];
|
||||
u8 spriteId;
|
||||
u8 *spriteIds = &gItemMenuIconSpriteIds[ITEMMENUSPRITE_ITEM];
|
||||
|
||||
if (spriteIds[id] == SPRITE_NONE)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
// Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT
|
||||
FreeSpriteTilesByTag(TAG_ITEM_ICON + id);
|
||||
FreeSpritePaletteByTag(TAG_ITEM_ICON + id);
|
||||
|
|
@ -266,7 +193,7 @@ void AddBagItemIconSprite(u16 itemId, u8 id)
|
|||
|
||||
void RemoveBagItemIconSprite(u8 id)
|
||||
{
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON];
|
||||
u8 *spriteIds = &gItemMenuIconSpriteIds[ITEMMENUSPRITE_ITEM];
|
||||
|
||||
if (spriteIds[id] != SPRITE_NONE)
|
||||
{
|
||||
|
|
@ -277,52 +204,22 @@ void RemoveBagItemIconSprite(u8 id)
|
|||
|
||||
void CreateItemMenuSwapLine(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START];
|
||||
|
||||
for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++)
|
||||
{
|
||||
spriteIds[i] = CreateSprite(&sSpriteTemplate_SwapLine, i * 16 + 96, 7, 0);
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
// ANIM_SWAP_LINE_START, by default
|
||||
break;
|
||||
case NUM_SWAP_LINE_SPRITES - 1:
|
||||
StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_END);
|
||||
break;
|
||||
default:
|
||||
StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_MID);
|
||||
break;
|
||||
}
|
||||
gSprites[spriteIds[i]].invisible = TRUE;
|
||||
}
|
||||
CreateSwapLineSprites(&gItemMenuIconSpriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH);
|
||||
}
|
||||
|
||||
void SetItemMenuSwapLineInvisibility(bool8 invisible)
|
||||
{
|
||||
u8 i;
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START];
|
||||
|
||||
for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++)
|
||||
gSprites[spriteIds[i]].invisible = invisible;
|
||||
SetSwapLineSpritesInvisibility(&gItemMenuIconSpriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH, invisible);
|
||||
}
|
||||
|
||||
void UpdateItemMenuSwapLinePos(s16 x, u16 y)
|
||||
void UpdateItemMenuSwapLinePos(u16 y)
|
||||
{
|
||||
u8 i;
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START];
|
||||
|
||||
for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++)
|
||||
{
|
||||
gSprites[spriteIds[i]].x2 = x;
|
||||
gSprites[spriteIds[i]].y = y + 7;
|
||||
}
|
||||
UpdateSwapLineSpritesPos(&gItemMenuIconSpriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH, 0, y + 6);
|
||||
}
|
||||
|
||||
void CreateBerryPouchItemIcon(u16 itemId, u8 id)
|
||||
{
|
||||
u8 *spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON];
|
||||
u8 *spriteIds = &gItemMenuIconSpriteIds[ITEMMENUSPRITE_ITEM];
|
||||
u8 spriteId;
|
||||
|
||||
if (spriteIds[id] == SPRITE_NONE)
|
||||
|
|
|
|||
|
|
@ -76,8 +76,8 @@ static u16 ItemPc_GetItemQuantityBySlotId(u16 itemIndex);
|
|||
static void ItemPc_CountPcItems(void);
|
||||
static void ItemPc_SetScrollPosition(void);
|
||||
static void Task_ItemPcMain(u8 taskId);
|
||||
static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos);
|
||||
static void Task_ItemPcMoveItemModeRun(u8 taskId);
|
||||
static void ItemStorage_StartItemSwap(u8 taskId, s16 pos);
|
||||
static void ItemStorage_ProcessItemSwapInput(u8 taskId);
|
||||
static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos);
|
||||
static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos);
|
||||
static void Task_ItemPcSubmenuInit(u8 taskId);
|
||||
|
|
@ -343,7 +343,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
|||
gMain.state++;
|
||||
break;
|
||||
case 14:
|
||||
CreateItemMenuSwapLine();
|
||||
CreateSwapLineSprites(&gItemMenuIconSpriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 15:
|
||||
|
|
@ -729,7 +729,7 @@ static void Task_ItemPcMain(u8 taskId)
|
|||
if (scroll + row != sStateDataPtr->nItems)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
ItemPc_MoveItemModeInit(taskId, scroll + row);
|
||||
ItemStorage_StartItemSwap(taskId, scroll + row);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -764,7 +764,12 @@ static void ItemPc_ReturnFromSubmenu(u8 taskId)
|
|||
gTasks[taskId].func = Task_ItemPcMain;
|
||||
}
|
||||
|
||||
static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
|
||||
static void ItemStorage_UpdateSwapLinePos(u8 y)
|
||||
{
|
||||
UpdateSwapLineSpritesPos(&gItemMenuIconSpriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH, -32, y + 6);
|
||||
}
|
||||
|
||||
static void ItemStorage_StartItemSwap(u8 taskId, s16 pos)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
|
|
@ -775,19 +780,19 @@ 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);
|
||||
UpdateItemMenuSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
ItemStorage_UpdateSwapLinePos(ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
SetItemMenuSwapLineInvisibility(FALSE);
|
||||
ItemPc_PrintOrRemoveCursor(data[0], 2);
|
||||
gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
|
||||
gTasks[taskId].func = ItemStorage_ProcessItemSwapInput;
|
||||
}
|
||||
|
||||
static void Task_ItemPcMoveItemModeRun(u8 taskId)
|
||||
static void ItemStorage_ProcessItemSwapInput(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
|
||||
UpdateItemMenuSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
ItemStorage_UpdateSwapLinePos(ListMenuGetYCoordForPrintingArrowCursor(data[0]));
|
||||
if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
|
|
|||
|
|
@ -1,20 +1,81 @@
|
|||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "task.h"
|
||||
#include "bg.h"
|
||||
#include "field_specials.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "link.h"
|
||||
#include "mail.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "link.h"
|
||||
#include "overworld.h"
|
||||
#include "mail.h"
|
||||
#include "field_specials.h"
|
||||
#include "sound.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/maps.h"
|
||||
|
||||
enum {
|
||||
ANIM_SWAP_LINE_START,
|
||||
ANIM_SWAP_LINE_MID,
|
||||
ANIM_SWAP_LINE_END,
|
||||
};
|
||||
|
||||
static EWRAM_DATA const struct YesNoFuncTable *sYesNo = NULL;
|
||||
static EWRAM_DATA TaskFunc sMessageNextTask = NULL;
|
||||
static EWRAM_DATA u8 sMessageWindowId = {0};
|
||||
|
||||
|
||||
static const struct OamData sOamData_SwapLine = {
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.size = SPRITE_SIZE(16x16),
|
||||
.priority = 1,
|
||||
.paletteNum = 1
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_Start[] = {
|
||||
ANIMCMD_FRAME(0, 0),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_Mid[] = {
|
||||
ANIMCMD_FRAME(4, 0),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SwapLine_End[] = {
|
||||
ANIMCMD_FRAME(0, 0, .hFlip = TRUE),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_SwapLine[] = {
|
||||
[ANIM_SWAP_LINE_START] = sAnim_SwapLine_Start,
|
||||
[ANIM_SWAP_LINE_MID] = sAnim_SwapLine_Mid,
|
||||
[ANIM_SWAP_LINE_END] = sAnim_SwapLine_End
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gBagSwapSpriteSheet = {
|
||||
.data = gSwapLine_Gfx,
|
||||
.size = 0x100,
|
||||
.tag = TAG_SWAP_LINE
|
||||
};
|
||||
|
||||
const struct SpritePalette gBagSwapSpritePalette = {
|
||||
.data = gSwapLine_Pal,
|
||||
.tag = TAG_SWAP_LINE
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_SwapLine = {
|
||||
.tileTag = TAG_SWAP_LINE,
|
||||
.paletteTag = TAG_SWAP_LINE,
|
||||
.oam = &sOamData_SwapLine,
|
||||
.anims = sAnims_SwapLine,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static void Task_ContinueTaskAfterMessagePrints(u8 taskId);
|
||||
|
||||
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc)
|
||||
|
|
@ -245,3 +306,46 @@ u8 GetDialogBoxFontId(void)
|
|||
else
|
||||
return FONT_FEMALE;
|
||||
}
|
||||
|
||||
void CreateSwapLineSprites(u8 *spriteIds, u8 count)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
spriteIds[i] = CreateSprite(&sSpriteTemplate_SwapLine, i * 16 + 96, 7, 0);
|
||||
if (i != 0)
|
||||
StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_MID);
|
||||
|
||||
gSprites[spriteIds[i]].invisible = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void SetSwapLineSpritesInvisibility(u8 *spriteIds, u8 count, bool8 invisible)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
gSprites[spriteIds[i]].invisible = invisible;
|
||||
}
|
||||
|
||||
void UpdateSwapLineSpritesPos(u8 *spriteIds, u8 count, s16 x, u16 y)
|
||||
{
|
||||
u8 i;
|
||||
bool8 hasMargin = count & SWAP_LINE_HAS_MARGIN;
|
||||
count &= ~SWAP_LINE_HAS_MARGIN;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
// If the list menu has a right margin, the swap line
|
||||
// shouldn't extend all the way to the edge of the screen.
|
||||
// If this is the last sprite in the line, move it a bit
|
||||
// to the left to keep it out of the margin.
|
||||
if (i == count - 1 && hasMargin)
|
||||
gSprites[spriteIds[i]].x2 = x - 8;
|
||||
else
|
||||
gSprites[spriteIds[i]].x2 = x;
|
||||
|
||||
gSprites[spriteIds[i]].y = 1 + y;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -185,9 +185,6 @@ const u8 gText_SeasonWinter[] = _("Winter");
|
|||
const u8 gText_TimesStrVar1[] = _("×{STR_VAR_1}");
|
||||
const u8 gText_Berry[] = _(" BERRY");
|
||||
const u8 gText_Coins[] = _("{STR_VAR_1} COINS");
|
||||
const u8 gText_Items2[] = _("ITEMS");
|
||||
const u8 gText_PokeBalls2[] = _("POKé BALLS");
|
||||
const u8 gText_KeyItems2[] = _("KEY ITEMS");
|
||||
const u8 gText_DepositItem[] = _("DEPOSIT ITEM");
|
||||
const u8 gText_CloseBag[] = _("CLOSE BAG");
|
||||
const u8 gText_Var1IsSelected[] = _("{STR_VAR_1} is\nselected.");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user