summaryrefslogtreecommitdiff
path: root/src/battle_pyramid_bag.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_pyramid_bag.c')
-rw-r--r--src/battle_pyramid_bag.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index 266b85415..83bf35090 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -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