diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2021-08-03 02:17:01 -0400 |
---|---|---|
committer | GriffinR <griffin.g.richards@gmail.com> | 2021-08-10 22:13:02 -0400 |
commit | 28a8fe191af71a71d45afb93480dc59f98e790cf (patch) | |
tree | 7b996bdea556925c90e0c9b157f906c3c5d572dc /src/battle_pyramid_bag.c | |
parent | d391486247cc9f29d85787d6711f7cb993cf6585 (diff) |
Document item menu
Diffstat (limited to 'src/battle_pyramid_bag.c')
-rw-r--r-- | src/battle_pyramid_bag.c | 23 |
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 |