Document item menu
This commit is contained in:
+13
-10
@@ -411,20 +411,20 @@ static void Task_ChooseItemsToTossFromPyramidBag(u8 taskId)
|
||||
|
||||
void CB2_ReturnToPyramidBagMenu(void)
|
||||
{
|
||||
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.callback);
|
||||
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback);
|
||||
}
|
||||
|
||||
void GoToBattlePyramidBagMenu(u8 location, void (*callback)(void))
|
||||
void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void))
|
||||
{
|
||||
gPyramidBagMenu = AllocZeroed(sizeof(*gPyramidBagMenu));
|
||||
|
||||
if (location != PYRAMIDBAG_LOC_PREV)
|
||||
gPyramidBagMenuState.location = location;
|
||||
|
||||
if (callback != NULL)
|
||||
gPyramidBagMenuState.callback = callback;
|
||||
if (exitCallback != NULL)
|
||||
gPyramidBagMenuState.exitCallback = exitCallback;
|
||||
|
||||
gPyramidBagMenu->exitCallback = NULL;
|
||||
gPyramidBagMenu->newScreenCallback = NULL;
|
||||
gPyramidBagMenu->toSwapPos = POS_NONE;
|
||||
gPyramidBagMenu->scrollIndicatorsTaskId = TASK_NONE;
|
||||
|
||||
@@ -624,7 +624,7 @@ static void CopyBagItemName(u8 *dst, u16 itemId)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
CopyItemName(itemId, gStringVar2);
|
||||
StringExpandPlaceholders(dst, gText_NumberVar1Clear7Var2);
|
||||
StringExpandPlaceholders(dst, gText_NumberItem_TMBerry);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -866,10 +866,13 @@ static void Task_ClosePyramidBag(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
DestroyListMenuTask(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition);
|
||||
if (gPyramidBagMenu->exitCallback != NULL)
|
||||
SetMainCallback2(gPyramidBagMenu->exitCallback);
|
||||
|
||||
// If ready for a new screen (e.g. party menu for giving an item) go to that screen
|
||||
// Otherwise exit the bag and use callback set up when the bag was first opened
|
||||
if (gPyramidBagMenu->newScreenCallback != NULL)
|
||||
SetMainCallback2(gPyramidBagMenu->newScreenCallback);
|
||||
else
|
||||
SetMainCallback2(gPyramidBagMenuState.callback);
|
||||
SetMainCallback2(gPyramidBagMenuState.exitCallback);
|
||||
RemoveScrollArrow();
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
@@ -1249,7 +1252,7 @@ static void BagAction_Give(u8 taskId)
|
||||
}
|
||||
else if (!ItemId_GetImportance(gSpecialVar_ItemId))
|
||||
{
|
||||
gPyramidBagMenu->exitCallback = CB2_ChooseMonToGiveItem;
|
||||
gPyramidBagMenu->newScreenCallback = CB2_ChooseMonToGiveItem;
|
||||
CloseBattlePyramidBag(taskId);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user