diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/item_menu.s | 4 | ||||
-rw-r--r-- | asm/link_rfu_3.s | 4 | ||||
-rw-r--r-- | asm/party_menu.s | 4264 | ||||
-rw-r--r-- | asm/pokemon_special_anim.s | 6 |
4 files changed, 7 insertions, 4271 deletions
diff --git a/asm/item_menu.s b/asm/item_menu.s index c2c1925f2..3f662656e 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -6857,7 +6857,7 @@ _0810B564: bl DestroyListMenuTask bl sub_810AECC ldr r1, _0810B5B0 @ =gItemUseCB - ldr r0, _0810B5B4 @ =ItemUseCB_Medicine + ldr r0, _0810B5B4 @ =ItemUseCB_MedicineStep str r0, [r1] ldr r0, _0810B5B8 @ =ChooseMonForInBattleItem bl ItemMenu_SetExitCallback @@ -6869,7 +6869,7 @@ _0810B564: b _0810B5C6 .align 2, 0 _0810B5B0: .4byte gItemUseCB -_0810B5B4: .4byte ItemUseCB_Medicine +_0810B5B4: .4byte ItemUseCB_MedicineStep _0810B5B8: .4byte ChooseMonForInBattleItem _0810B5BC: .4byte sub_810B070 _0810B5C0: diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index d996721ad..1e076a55e 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -7006,7 +7006,7 @@ _08119512: str r0, [r1] ldr r1, _08119538 @ =CB2_ReturnToField movs r0, 0x8 - bl ChooseMonForMoveTutor + bl sub_81277F4 b _081198DC .align 2, 0 _08119528: .4byte gPaletteFade @@ -7359,7 +7359,7 @@ _081197CA: str r0, [r1] ldr r1, _0811983C @ =CB2_ReturnToField movs r0, 0x9 - bl ChooseMonForMoveTutor + bl sub_81277F4 adds r0, r6, 0 bl sub_81186B0 ldrh r0, [r7, 0x2] diff --git a/asm/party_menu.s b/asm/party_menu.s deleted file mode 100644 index 0e68a23b2..000000000 --- a/asm/party_menu.s +++ /dev/null @@ -1,4264 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Task_TryLearningNextMoveAfterText -Task_TryLearningNextMoveAfterText: @ 812628C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPartyMenuTextPrinterActive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081262A4 - adds r0, r4, 0 - bl Task_TryLearningNextMove -_081262A4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_TryLearningNextMoveAfterText - - thumb_func_start dp05_rare_candy -dp05_rare_candy: @ 81262AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _081262E8 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _081262EC @ =gPlayerParty - adds r4, r1, r0 - ldr r0, _081262F0 @ =gSpecialVar_ItemId - ldrh r5, [r0] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _081262F4 - ldrb r2, [r7, 0x9] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0 - bl PokemonUseItemEffects2 - lsls r0, 24 - lsrs r4, r0, 24 - b _081262F6 - .align 2, 0 -_081262E8: .4byte gPartyMenu -_081262EC: .4byte gPlayerParty -_081262F0: .4byte gSpecialVar_ItemId -_081262F4: - movs r4, 0x1 -_081262F6: - movs r0, 0x5 - bl PlaySE - cmp r4, 0 - beq _08126330 - ldr r1, _08126324 @ =gPartyMenuUseExitCallback - movs r0, 0 - strb r0, [r1] - ldr r0, _08126328 @ =gText_WontHaveEffect - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _0812632C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - str r1, [r0] - b _0812633C - .align 2, 0 -_08126324: .4byte gPartyMenuUseExitCallback -_08126328: .4byte gText_WontHaveEffect -_0812632C: .4byte gTasks -_08126330: - adds r0, r6, 0 - bl sub_8124DC0 - ldr r1, _08126348 @ =gItemUseCB - ldr r0, _0812634C @ =ItemUseCB_RareCandy - str r0, [r1] -_0812633C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126348: .4byte gItemUseCB -_0812634C: .4byte ItemUseCB_RareCandy - thumb_func_end dp05_rare_candy - - thumb_func_start ItemUseCB_RareCandy -ItemUseCB_RareCandy: @ 8126350 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _08126410 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, _08126414 @ =gPlayerParty - adds r4, r0 - ldr r0, _08126418 @ =sPartyMenuInternal - ldr r7, [r0] - movs r2, 0x86 - lsls r2, 2 - adds r1, r7, r2 - adds r0, r4, 0 - bl GetMonLevelUpWindowStats - ldrb r0, [r6, 0x9] - ldr r5, _0812641C @ =gSpecialVar_ItemId - ldrh r1, [r5] - movs r2, 0 - bl ExecuteTableBasedItemEffect_ - movs r0, 0x89 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r4, 0 - bl GetMonLevelUpWindowStats - ldr r1, _08126420 @ =gPartyMenuUseExitCallback - movs r0, 0x1 - strb r0, [r1] - ldrh r2, [r5] - ldr r3, _08126424 @ =0x0000ffff - movs r0, 0x4 - adds r1, r4, 0 - bl ItemUse_SetQuestLogEvent - movs r0, 0 - bl PlayFanfareByFanfareNum - ldrb r0, [r6, 0x9] - adds r1, r4, 0 - bl UpdateMonDisplayInfoAfterRareCandy - ldrh r0, [r5] - movs r1, 0x1 - bl RemoveBagItem - ldr r1, _08126428 @ =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0812642C @ =gStringVar2 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08126430 @ =gStringVar4 - ldr r1, _08126434 @ =gText_PkmnElevatedToLvVar2 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _08126438 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812643C @ =Task_DisplayLevelUpStatsPg1 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126410: .4byte gPartyMenu -_08126414: .4byte gPlayerParty -_08126418: .4byte sPartyMenuInternal -_0812641C: .4byte gSpecialVar_ItemId -_08126420: .4byte gPartyMenuUseExitCallback -_08126424: .4byte 0x0000ffff -_08126428: .4byte gStringVar1 -_0812642C: .4byte gStringVar2 -_08126430: .4byte gStringVar4 -_08126434: .4byte gText_PkmnElevatedToLvVar2 -_08126438: .4byte gTasks -_0812643C: .4byte Task_DisplayLevelUpStatsPg1 - thumb_func_end ItemUseCB_RareCandy - - thumb_func_start UpdateMonDisplayInfoAfterRareCandy -UpdateMonDisplayInfoAfterRareCandy: @ 8126440 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r6, _081264C0 @ =sPartyMenuBoxes - lsls r4, r7, 4 - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - bl SetPartyMonAilmentGfx - ldr r2, _081264C4 @ =gSprites - ldr r0, [r6] - adds r3, r4, r0 - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0812647C - adds r0, r5, 0 - adds r1, r3, 0 - movs r2, 0x1 - bl DisplayPartyPokemonLevelCheck -_0812647C: - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - movs r2, 0x1 - bl DisplayPartyPokemonHPCheck - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - movs r2, 0x1 - bl DisplayPartyPokemonMaxHPCheck - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - bl DisplayPartyPokemonHPBarCheck - ldr r0, [r6] - adds r0, r4, r0 - ldrb r0, [r0, 0x9] - adds r1, r5, 0 - bl UpdatePartyMonHPBar - adds r0, r7, 0 - movs r1, 0x1 - bl AnimatePartySlot - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081264C0: .4byte sPartyMenuBoxes -_081264C4: .4byte gSprites - thumb_func_end UpdateMonDisplayInfoAfterRareCandy - - thumb_func_start Task_DisplayLevelUpStatsPg1 -Task_DisplayLevelUpStatsPg1: @ 81264C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _08126514 - bl IsPartyMenuTextPrinterActive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08126514 - ldr r0, _0812651C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081264FA - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08126514 -_081264FA: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl DisplayLevelUpStatsPg1 - ldr r0, _08126520 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08126524 @ =Task_DisplayLevelUpStatsPg2 - str r0, [r1] -_08126514: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812651C: .4byte gMain -_08126520: .4byte gTasks -_08126524: .4byte Task_DisplayLevelUpStatsPg2 - thumb_func_end Task_DisplayLevelUpStatsPg1 - - thumb_func_start Task_DisplayLevelUpStatsPg2 -Task_DisplayLevelUpStatsPg2: @ 8126528 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08126564 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08126542 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812655C -_08126542: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl DisplayLevelUpStatsPg2 - ldr r0, _08126568 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812656C @ =Task_TryLearnNewMoves - str r0, [r1] -_0812655C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08126564: .4byte gMain -_08126568: .4byte gTasks -_0812656C: .4byte Task_TryLearnNewMoves - thumb_func_end Task_DisplayLevelUpStatsPg2 - - thumb_func_start DisplayLevelUpStatsPg1 -DisplayLevelUpStatsPg1: @ 8126570 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _081265B8 @ =sPartyMenuInternal - ldr r5, [r0] - movs r0, 0x86 - lsls r0, 2 - adds r4, r5, r0 - bl CreateLevelUpStatsWindow - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldrh r0, [r4, 0x18] - movs r1, 0x89 - lsls r1, 2 - adds r2, r5, r1 - movs r1, 0x2 - str r1, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r3, 0x1 - bl DrawLevelUpWindowPg1 - ldrb r0, [r4, 0x18] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081265B8: .4byte sPartyMenuInternal - thumb_func_end DisplayLevelUpStatsPg1 - - thumb_func_start DisplayLevelUpStatsPg2 -DisplayLevelUpStatsPg2: @ 81265BC - push {r4,lr} - sub sp, 0x4 - ldr r0, _081265F4 @ =sPartyMenuInternal - ldr r1, [r0] - movs r0, 0x86 - lsls r0, 2 - adds r4, r1, r0 - ldrh r0, [r4, 0x18] - movs r2, 0x89 - lsls r2, 2 - adds r1, r2 - movs r2, 0x3 - str r2, [sp] - movs r2, 0x1 - movs r3, 0x2 - bl DrawLevelUpWindowPg2 - ldrb r0, [r4, 0x18] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081265F4: .4byte sPartyMenuInternal - thumb_func_end DisplayLevelUpStatsPg2 - - thumb_func_start Task_TryLearnNewMoves -Task_TryLearnNewMoves: @ 81265F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _0812669A - ldr r0, _08126650 @ =gMain - ldrh r1, [r0, 0x2E] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08126620 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812669A -_08126620: - bl RemoveLevelUpStatsWindow - ldr r4, _08126654 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08126658 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1 - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r1, r0, 16 - strh r6, [r4, 0x10] - ldr r0, _0812665C @ =0x0000fffe - cmp r1, r0 - beq _0812667C - cmp r1, r0 - bgt _08126660 - cmp r1, 0 - beq _0812666C - b _08126694 - .align 2, 0 -_08126650: .4byte gMain -_08126654: .4byte gPartyMenu -_08126658: .4byte gPlayerParty -_0812665C: .4byte 0x0000fffe -_08126660: - ldr r0, _08126668 @ =0x0000ffff - cmp r1, r0 - beq _08126674 - b _08126694 - .align 2, 0 -_08126668: .4byte 0x0000ffff -_0812666C: - adds r0, r5, 0 - bl PartyMenuTryEvolution - b _0812669A -_08126674: - adds r0, r5, 0 - bl DisplayMonNeedsToReplaceMove - b _0812669A -_0812667C: - ldr r0, _0812668C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08126690 @ =Task_TryLearningNextMove - str r0, [r1] - b _0812669A - .align 2, 0 -_0812668C: .4byte gTasks -_08126690: .4byte Task_TryLearningNextMove -_08126694: - adds r0, r5, 0 - bl DisplayMonLearnedMove -_0812669A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end Task_TryLearnNewMoves - - thumb_func_start Task_TryLearningNextMove -Task_TryLearningNextMove: @ 81266A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081266D0 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081266D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _081266D8 @ =0x0000fffe - cmp r1, r0 - beq _081266FE - cmp r1, r0 - bgt _081266DC - cmp r1, 0 - beq _081266E8 - b _081266F8 - .align 2, 0 -_081266D0: .4byte gPartyMenu -_081266D4: .4byte gPlayerParty -_081266D8: .4byte 0x0000fffe -_081266DC: - ldr r0, _081266E4 @ =0x0000ffff - cmp r1, r0 - beq _081266F0 - b _081266F8 - .align 2, 0 -_081266E4: .4byte 0x0000ffff -_081266E8: - adds r0, r4, 0 - bl PartyMenuTryEvolution - b _081266FE -_081266F0: - adds r0, r4, 0 - bl DisplayMonNeedsToReplaceMove - b _081266FE -_081266F8: - adds r0, r4, 0 - bl DisplayMonLearnedMove -_081266FE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_TryLearningNextMove - - thumb_func_start PartyMenuTryEvolution -PartyMenuTryEvolution: @ 8126704 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _08126748 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0812674C @ =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08126754 - bl FreePartyPointers - ldr r0, _08126750 @ =gCB2_AfterEvolution - ldr r1, [r6] - str r1, [r0] - ldrb r3, [r6, 0x9] - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl BeginEvolutionScene - adds r0, r5, 0 - bl DestroyTask - b _08126762 - .align 2, 0 -_08126748: .4byte gPartyMenu -_0812674C: .4byte gPlayerParty -_08126750: .4byte gCB2_AfterEvolution -_08126754: - ldr r0, _08126768 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812676C @ =Task_ClosePartyMenuAfterText - str r0, [r1] -_08126762: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126768: .4byte gTasks -_0812676C: .4byte Task_ClosePartyMenuAfterText - thumb_func_end PartyMenuTryEvolution - - thumb_func_start DisplayMonNeedsToReplaceMove -DisplayMonNeedsToReplaceMove: @ 8126770 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _081267DC @ =gPartyMenu - mov r8, r0 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081267E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _081267E4 @ =gStringVar1 - bl GetMonNickname - ldr r0, _081267E8 @ =gStringVar2 - ldr r6, _081267EC @ =gMoveToLearn - ldrh r2, [r6] - movs r1, 0xD - muls r1, r2 - ldr r2, _081267F0 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _081267F4 @ =gStringVar4 - ldr r1, _081267F8 @ =gText_PkmnNeedsToReplaceMove - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldrh r0, [r6] - mov r1, r8 - strh r0, [r1, 0xE] - ldr r1, _081267FC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126800 @ =Task_ReplaceMoveYesNo - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081267DC: .4byte gPartyMenu -_081267E0: .4byte gPlayerParty -_081267E4: .4byte gStringVar1 -_081267E8: .4byte gStringVar2 -_081267EC: .4byte gMoveToLearn -_081267F0: .4byte gMoveNames -_081267F4: .4byte gStringVar4 -_081267F8: .4byte gText_PkmnNeedsToReplaceMove -_081267FC: .4byte gTasks -_08126800: .4byte Task_ReplaceMoveYesNo - thumb_func_end DisplayMonNeedsToReplaceMove - - thumb_func_start DisplayMonLearnedMove -DisplayMonLearnedMove: @ 8126804 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08126870 @ =gPartyMenu - mov r8, r0 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08126874 @ =gPlayerParty - adds r0, r1 - ldr r1, _08126878 @ =gStringVar1 - bl GetMonNickname - ldr r0, _0812687C @ =gStringVar2 - movs r1, 0xD - muls r1, r5 - ldr r2, _08126880 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _08126884 @ =gStringVar4 - ldr r1, _08126888 @ =gText_PkmnLearnedMove3 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - mov r0, r8 - strh r5, [r0, 0xE] - ldr r1, _0812688C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126890 @ =Task_DoLearnedMoveFanfareAfterText - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08126870: .4byte gPartyMenu -_08126874: .4byte gPlayerParty -_08126878: .4byte gStringVar1 -_0812687C: .4byte gStringVar2 -_08126880: .4byte gMoveNames -_08126884: .4byte gStringVar4 -_08126888: .4byte gText_PkmnLearnedMove3 -_0812688C: .4byte gTasks -_08126890: .4byte Task_DoLearnedMoveFanfareAfterText - thumb_func_end DisplayMonLearnedMove - - thumb_func_start ItemUseCB_SacredAsh -ItemUseCB_SacredAsh: @ 8126894 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081268C8 @ =sPartyMenuInternal - ldr r2, [r1] - movs r3, 0x86 - lsls r3, 2 - adds r1, r2, r3 - movs r3, 0 - strh r3, [r1] - ldr r4, _081268CC @ =0x0000021a - adds r1, r2, r4 - strh r3, [r1] - ldr r1, _081268D0 @ =gPartyMenu - ldrb r1, [r1, 0x9] - lsls r1, 24 - asrs r1, 24 - movs r3, 0x87 - lsls r3, 2 - adds r2, r3 - strh r1, [r2] - bl UseSacredAsh - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081268C8: .4byte sPartyMenuInternal -_081268CC: .4byte 0x0000021a -_081268D0: .4byte gPartyMenu - thumb_func_end ItemUseCB_SacredAsh - - thumb_func_start UseSacredAsh -UseSacredAsh: @ 81268D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - mov r9, r4 - ldr r6, _08126930 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08126934 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08126920 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r6, 0x9] - ldr r1, _08126938 @ =gSpecialVar_ItemId - ldrh r1, [r1] - movs r2, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - cmp r0, 0 - beq _08126944 -_08126920: - ldr r0, _0812693C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08126940 @ =Task_SacredAshLoop - str r0, [r1] - b _081269EE - .align 2, 0 -_08126930: .4byte gPartyMenu -_08126934: .4byte gPlayerParty -_08126938: .4byte gSpecialVar_ItemId -_0812693C: .4byte gTasks -_08126940: .4byte Task_SacredAshLoop -_08126944: - movs r0, 0x1 - bl PlaySE - ldr r7, _08126A00 @ =sPartyMenuInternal - ldr r0, [r7] - ldr r1, _08126A04 @ =0x0000021a - mov r10, r1 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08126960 - ldr r0, _08126A08 @ =gUnknown_203B0D0 - str r5, [r0] -_08126960: - ldr r4, _08126A0C @ =sPartyMenuBoxes - movs r0, 0x9 - ldrsb r0, [r6, r0] - lsls r0, 4 - ldr r1, [r4] - adds r1, r0 - adds r0, r5, 0 - bl SetPartyMonAilmentGfx - ldr r2, _08126A10 @ =gSprites - movs r0, 0x9 - ldrsb r0, [r6, r0] - ldr r1, [r4] - lsls r0, 4 - adds r3, r0, r1 - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0812699C - adds r0, r5, 0 - adds r1, r3, 0 - movs r2, 0x1 - bl DisplayPartyPokemonLevelCheck -_0812699C: - ldr r0, [r7] - movs r1, 0x87 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl AnimatePartySlot - ldrb r0, [r6, 0x9] - movs r1, 0x1 - bl AnimatePartySlot - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r2, r8 - subs r3, r2 - lsls r3, 16 - asrs r3, 16 - ldrb r1, [r6, 0x9] - ldr r0, _08126A14 @ =Task_SacredAshDisplayHPRestored - str r0, [sp] - mov r0, r9 - movs r2, 0x1 - bl PartyMenuModifyHP - mov r0, r9 - movs r1, 0 - mov r2, r8 - bl ResetHPTaskData - ldr r0, [r7] - movs r2, 0x86 - lsls r2, 2 - adds r1, r0, r2 - movs r2, 0x1 - strh r2, [r1] - add r0, r10 - strh r2, [r0] -_081269EE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126A00: .4byte sPartyMenuInternal -_08126A04: .4byte 0x0000021a -_08126A08: .4byte gUnknown_203B0D0 -_08126A0C: .4byte sPartyMenuBoxes -_08126A10: .4byte gSprites -_08126A14: .4byte Task_SacredAshDisplayHPRestored - thumb_func_end UseSacredAsh - - thumb_func_start Task_SacredAshLoop -Task_SacredAshLoop: @ 8126A18 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPartyMenuTextPrinterActive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08126AF6 - ldr r5, _08126A80 @ =sPartyMenuInternal - ldr r2, [r5] - movs r0, 0x86 - lsls r0, 2 - adds r1, r2, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - ldr r3, _08126A84 @ =gPartyMenu - cmp r0, 0x1 - bne _08126A4E - movs r0, 0 - strh r0, [r1] - movs r1, 0x9 - ldrsb r1, [r3, r1] - movs r6, 0x87 - lsls r6, 2 - adds r0, r2, r6 - strh r1, [r0] -_08126A4E: - adds r1, r3, 0 - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x6 - bne _08126AF0 - ldr r0, [r5] - ldr r1, _08126A88 @ =0x0000021a - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - cmp r1, 0 - bne _08126A94 - ldr r0, _08126A8C @ =gPartyMenuUseExitCallback - strb r1, [r0] - ldr r0, _08126A90 @ =gText_WontHaveEffect - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - b _08126ABE - .align 2, 0 -_08126A80: .4byte sPartyMenuInternal -_08126A84: .4byte gPartyMenu -_08126A88: .4byte 0x0000021a -_08126A8C: .4byte gPartyMenuUseExitCallback -_08126A90: .4byte gText_WontHaveEffect -_08126A94: - ldr r1, _08126AD4 @ =gPartyMenuUseExitCallback - movs r0, 0x1 - strb r0, [r1] - ldrb r1, [r3, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - beq _08126AB4 - ldr r0, _08126AD8 @ =gUnknown_203B0D0 - ldr r1, [r0] - ldr r0, _08126ADC @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _08126AE0 @ =0x0000ffff - movs r0, 0x4 - bl ItemUse_SetQuestLogEvent -_08126AB4: - ldr r0, _08126ADC @ =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem -_08126ABE: - ldr r1, _08126AE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126AE8 @ =Task_ClosePartyMenuAfterText - str r1, [r0] - ldr r1, _08126AEC @ =gPartyMenu - movs r0, 0 - strb r0, [r1, 0x9] - b _08126AF6 - .align 2, 0 -_08126AD4: .4byte gPartyMenuUseExitCallback -_08126AD8: .4byte gUnknown_203B0D0 -_08126ADC: .4byte gSpecialVar_ItemId -_08126AE0: .4byte 0x0000ffff -_08126AE4: .4byte gTasks -_08126AE8: .4byte Task_ClosePartyMenuAfterText -_08126AEC: .4byte gPartyMenu -_08126AF0: - adds r0, r4, 0 - bl UseSacredAsh -_08126AF6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end Task_SacredAshLoop - - thumb_func_start Task_SacredAshDisplayHPRestored -Task_SacredAshDisplayHPRestored: @ 8126AFC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08126B44 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08126B48 @ =gPlayerParty - adds r0, r1 - ldr r1, _08126B4C @ =gStringVar1 - bl GetMonNickname - ldr r4, _08126B50 @ =gStringVar4 - ldr r1, _08126B54 @ =gText_PkmnHPRestoredByVar2 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _08126B58 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126B5C @ =Task_SacredAshLoop - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08126B44: .4byte gPartyMenu -_08126B48: .4byte gPlayerParty -_08126B4C: .4byte gStringVar1 -_08126B50: .4byte gStringVar4 -_08126B54: .4byte gText_PkmnHPRestoredByVar2 -_08126B58: .4byte gTasks -_08126B5C: .4byte Task_SacredAshLoop - thumb_func_end Task_SacredAshDisplayHPRestored - - thumb_func_start sub_8126B60 -sub_8126B60: @ 8126B60 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r2, _08126BB0 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r2, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08126BB4 @ =gPlayerParty - adds r0, r1 - ldr r1, _08126BB8 @ =gSpecialVar_ItemId - ldrh r1, [r1] - ldrb r2, [r2, 0x9] - movs r3, 0 - bl PokemonUseItemEffects2 - lsls r0, 24 - cmp r0, 0 - beq _08126BC8 - ldr r1, _08126BBC @ =gPartyMenuUseExitCallback - movs r0, 0 - strb r0, [r1] - ldr r0, _08126BC0 @ =gText_WontHaveEffect - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _08126BC4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - str r5, [r0] - b _08126BCE - .align 2, 0 -_08126BB0: .4byte gPartyMenu -_08126BB4: .4byte gPlayerParty -_08126BB8: .4byte gSpecialVar_ItemId -_08126BBC: .4byte gPartyMenuUseExitCallback -_08126BC0: .4byte gText_WontHaveEffect -_08126BC4: .4byte gTasks -_08126BC8: - adds r0, r4, 0 - bl sub_8124DC0 -_08126BCE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8126B60 - - thumb_func_start sub_8126BD4 -sub_8126BD4: @ 8126BD4 - push {r4,r5,lr} - ldr r1, _08126C10 @ =gCB2_AfterEvolution - ldr r4, _08126C14 @ =gPartyMenu - ldr r0, [r4] - str r0, [r1] - ldrb r0, [r4, 0x9] - ldr r5, _08126C18 @ =gSpecialVar_ItemId - ldrh r1, [r5] - movs r2, 0 - bl ExecuteTableBasedItemEffect_ - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08126C1C @ =gPlayerParty - adds r1, r0 - ldrh r2, [r5] - ldr r3, _08126C20 @ =0x0000ffff - movs r0, 0x4 - bl ItemUse_SetQuestLogEvent - ldrh r0, [r5] - movs r1, 0x1 - bl RemoveBagItem - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08126C10: .4byte gCB2_AfterEvolution -_08126C14: .4byte gPartyMenu -_08126C18: .4byte gSpecialVar_ItemId -_08126C1C: .4byte gPlayerParty -_08126C20: .4byte 0x0000ffff - thumb_func_end sub_8126BD4 - - thumb_func_start sub_8126C24 -sub_8126C24: @ 8126C24 - push {lr} - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08126C60 - ldr r0, _08126C54 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08126C58 @ =gPlayerParty - adds r0, r1 - ldr r1, _08126C5C @ =gSpecialVar_ItemId - ldrh r2, [r1] - movs r1, 0x2 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x97 - bls _08126C60 - movs r0, 0 - b _08126C62 - .align 2, 0 -_08126C54: .4byte gPartyMenu -_08126C58: .4byte gPlayerParty -_08126C5C: .4byte gSpecialVar_ItemId -_08126C60: - movs r0, 0x1 -_08126C62: - pop {r1} - bx r1 - thumb_func_end sub_8126C24 - - thumb_func_start GetItemEffectType -GetItemEffectType: @ 8126C68 - push {r4,r5,lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - subs r2, 0xD - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0xA5 - bls _08126C7C - b _08126DBC -_08126C7C: - cmp r1, 0xAF - bne _08126C94 - ldr r0, _08126C8C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08126C90 @ =0x00003108 - adds r4, r0, r1 - b _08126C9C - .align 2, 0 -_08126C8C: .4byte gSaveBlock1Ptr -_08126C90: .4byte 0x00003108 -_08126C94: - ldr r1, _08126CC4 @ =gItemEffectTable - lsls r0, r2, 2 - adds r0, r1 - ldr r4, [r0] -_08126C9C: - ldrb r1, [r4] - movs r5, 0x3F - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08126CBE - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08126CBE - ldrb r0, [r4, 0x2] - cmp r0, 0 - bne _08126CBE - ldrb r3, [r4, 0x3] - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _08126CC8 -_08126CBE: - movs r0, 0 - b _08126DC2 - .align 2, 0 -_08126CC4: .4byte gItemEffectTable -_08126CC8: - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08126CD6 - movs r0, 0xA - b _08126DC2 -_08126CD6: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08126CE2 - movs r0, 0x1 - b _08126DC2 -_08126CE2: - adds r2, r5, 0 - ands r2, r3 - cmp r2, 0 - bne _08126CF0 - lsrs r0, r1, 7 - cmp r0, 0 - beq _08126D32 -_08126CF0: - cmp r2, 0x20 - bne _08126CF8 - movs r0, 0x4 - b _08126DC2 -_08126CF8: - cmp r2, 0x10 - bne _08126D00 - movs r0, 0x3 - b _08126DC2 -_08126D00: - cmp r2, 0x8 - bne _08126D08 - movs r0, 0x5 - b _08126DC2 -_08126D08: - cmp r2, 0x4 - bne _08126D10 - movs r0, 0x6 - b _08126DC2 -_08126D10: - cmp r2, 0x2 - bne _08126D18 - movs r0, 0x7 - b _08126DC2 -_08126D18: - cmp r2, 0x1 - bne _08126D20 - movs r0, 0x8 - b _08126DC2 -_08126D20: - lsrs r0, r1, 7 - cmp r0, 0 - beq _08126D2E - cmp r2, 0 - bne _08126D2E - movs r0, 0x9 - b _08126DC2 -_08126D2E: - movs r0, 0xB - b _08126DC2 -_08126D32: - ldrb r1, [r4, 0x4] - movs r0, 0x44 - ands r0, r1 - adds r2, r1, 0 - cmp r0, 0 - beq _08126D42 - movs r0, 0x2 - b _08126DC2 -_08126D42: - movs r5, 0x2 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _08126D50 - movs r0, 0xC - b _08126DC2 -_08126D50: - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _08126D5E - movs r0, 0xD - b _08126DC2 -_08126D5E: - ldrb r1, [r4, 0x5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08126D6C - movs r0, 0xE - b _08126DC2 -_08126D6C: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08126D78 - movs r0, 0xF - b _08126DC2 -_08126D78: - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08126D84 - movs r0, 0x10 - b _08126DC2 -_08126D84: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08126D90 - movs r0, 0x11 - b _08126DC2 -_08126D90: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08126D9C - movs r0, 0x12 - b _08126DC2 -_08126D9C: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08126DA8 - movs r0, 0x13 - b _08126DC2 -_08126DA8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08126DB4 - movs r0, 0x14 - b _08126DC2 -_08126DB4: - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - bne _08126DC0 -_08126DBC: - movs r0, 0x16 - b _08126DC2 -_08126DC0: - movs r0, 0x15 -_08126DC2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetItemEffectType - - thumb_func_start TryTutorSelectedMon -TryTutorSelectedMon: @ 8126DC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08126E4C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08126E98 - ldr r7, _08126E50 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08126E54 @ =gPlayerParty - adds r5, r1, r0 - movs r0, 0xE - adds r0, r7 - mov r8, r0 - ldr r1, _08126E58 @ =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r4, _08126E5C @ =gSpecialVar_0x8005 - ldrb r0, [r4] - bl GetTutorMove - strh r0, [r7, 0xE] - ldr r0, _08126E60 @ =gStringVar2 - movs r1, 0xE - ldrsh r2, [r7, r1] - movs r1, 0xD - muls r1, r2 - ldr r2, _08126E64 @ =gMoveNames - adds r1, r2 - bl StringCopy - movs r0, 0x2 - mov r1, r8 - strh r0, [r1, 0x2] - ldrb r2, [r4] - adds r0, r5, 0 - movs r1, 0 - bl CanMonLearnTMTutor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08126E6C - cmp r0, 0x2 - beq _08126E74 - ldrh r1, [r7, 0xE] - adds r0, r5, 0 - bl GiveMoveToMon - lsls r0, 16 - ldr r1, _08126E68 @ =0xffff0000 - cmp r0, r1 - beq _08126E84 - adds r0, r6, 0 - bl Task_LearnedMove - b _08126E98 - .align 2, 0 -_08126E4C: .4byte gPaletteFade -_08126E50: .4byte gPartyMenu -_08126E54: .4byte gPlayerParty -_08126E58: .4byte gStringVar1 -_08126E5C: .4byte gSpecialVar_0x8005 -_08126E60: .4byte gStringVar2 -_08126E64: .4byte gMoveNames -_08126E68: .4byte 0xffff0000 -_08126E6C: - ldr r1, _08126E70 @ =gText_PkmnCantLearnMove - b _08126E76 - .align 2, 0 -_08126E70: .4byte gText_PkmnCantLearnMove -_08126E74: - ldr r1, _08126E80 @ =gText_PkmnAlreadyKnows -_08126E76: - adds r0, r6, 0 - bl DisplayLearnMoveMessageAndClose - b _08126E98 - .align 2, 0 -_08126E80: .4byte gText_PkmnAlreadyKnows -_08126E84: - ldr r0, _08126EA4 @ =gText_PkmnNeedsToReplaceMove - bl DisplayLearnMoveMessage - ldr r1, _08126EA8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126EAC @ =Task_ReplaceMoveYesNo - str r1, [r0] -_08126E98: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126EA4: .4byte gText_PkmnNeedsToReplaceMove -_08126EA8: .4byte gTasks -_08126EAC: .4byte Task_ReplaceMoveYesNo - thumb_func_end TryTutorSelectedMon - - thumb_func_start CB2_PartyMenuFromStartMenu -CB2_PartyMenuFromStartMenu: @ 8126EB0 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, _08126ED4 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _08126ED8 @ =CB2_ReturnToFieldWithOpenMenu - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08126ED4: .4byte Task_HandleChooseMonInput -_08126ED8: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end CB2_PartyMenuFromStartMenu - - thumb_func_start CB2_ChooseMonToGiveItem -CB2_ChooseMonToGiveItem: @ 8126EDC - push {lr} - sub sp, 0xC - ldr r0, _08126EF8 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08126F00 - cmp r0, 0x5 - beq _08126F08 - ldr r1, _08126EFC @ =CB2_ReturnToBagMenu - b _08126F0A - .align 2, 0 -_08126EF8: .4byte gSpecialVar_ItemId -_08126EFC: .4byte CB2_ReturnToBagMenu -_08126F00: - ldr r1, _08126F04 @ =sub_8124DA0 - b _08126F0A - .align 2, 0 -_08126F04: .4byte sub_8124DA0 -_08126F08: - ldr r1, _08126F30 @ =sub_8124DB0 -_08126F0A: - movs r0, 0x6 - str r0, [sp] - ldr r0, _08126F34 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl InitPartyMenu - ldr r1, _08126F38 @ =gPartyMenu - ldr r0, _08126F3C @ =gSpecialVar_ItemId - ldrh r0, [r0] - strh r0, [r1, 0xC] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08126F30: .4byte sub_8124DB0 -_08126F34: .4byte Task_HandleChooseMonInput -_08126F38: .4byte gPartyMenu -_08126F3C: .4byte gSpecialVar_ItemId - thumb_func_end CB2_ChooseMonToGiveItem - - thumb_func_start TryGiveItemOrMailToSelectedMon -TryGiveItemOrMailToSelectedMon: @ 8126F40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, _08126F80 @ =sPartyMenuItemId - ldr r0, _08126F84 @ =gPartyMenu - mov r9, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, _08126F88 @ =gPlayerParty - adds r0, r7 - movs r1, 0xC - bl GetMonData - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - bne _08126F8C - adds r0, r4, 0 - bl GiveItemOrMailToSelectedMon - b _08126FC4 - .align 2, 0 -_08126F80: .4byte sPartyMenuItemId -_08126F84: .4byte gPartyMenu -_08126F88: .4byte gPlayerParty -_08126F8C: - ldrh r0, [r5] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _08126FA0 - adds r0, r4, 0 - bl DisplayItemMustBeRemovedFirstMessage - b _08126FC4 -_08126FA0: - mov r1, r9 - movs r0, 0x9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - ldrh r1, [r5] - movs r2, 0x1 - bl DisplayAlreadyHoldingItemSwitchMessage - ldr r1, _08126FD0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08126FD4 @ =Task_SwitchItemsFromBagYesNo - str r1, [r0] -_08126FC4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08126FD0: .4byte gTasks -_08126FD4: .4byte Task_SwitchItemsFromBagYesNo - thumb_func_end TryGiveItemOrMailToSelectedMon - - thumb_func_start GiveItemOrMailToSelectedMon -GiveItemOrMailToSelectedMon: @ 8126FD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _08127004 @ =gPartyMenu - ldrh r0, [r5, 0xC] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _08127010 - ldrh r0, [r5, 0xC] - bl RemoveItemToGiveFromBag - ldr r0, _08127008 @ =sPartyMenuInternal - ldr r1, [r0] - ldr r0, _0812700C @ =CB2_WriteMailToGiveMonFromBag - str r0, [r1, 0x4] - adds r0, r4, 0 - bl Task_ClosePartyMenu - b _08127016 - .align 2, 0 -_08127004: .4byte gPartyMenu -_08127008: .4byte sPartyMenuInternal -_0812700C: .4byte CB2_WriteMailToGiveMonFromBag -_08127010: - adds r0, r4, 0 - bl GiveItemToSelectedMon -_08127016: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GiveItemOrMailToSelectedMon - - thumb_func_start GiveItemToSelectedMon -GiveItemToSelectedMon: @ 812701C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08127084 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08127078 - ldr r4, _08127088 @ =gPartyMenu - ldrh r5, [r4, 0xC] - movs r0, 0x9 - ldrsb r0, [r4, r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _0812708C @ =gPlayerParty - adds r0, r6 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x1 - bl DisplayGaveHeldItemMessage - movs r0, 0x9 - ldrsb r0, [r4, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r1, r5, 0 - bl GiveItemToMon - adds r0, r5, 0 - bl RemoveItemToGiveFromBag - ldr r1, _08127090 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _08127094 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r1, [r0] -_08127078: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08127084: .4byte gPaletteFade -_08127088: .4byte gPartyMenu -_0812708C: .4byte gPlayerParty -_08127090: .4byte gTasks -_08127094: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu - thumb_func_end GiveItemToSelectedMon - - thumb_func_start Task_UpdateHeldItemSpriteAndClosePartyMenu -Task_UpdateHeldItemSpriteAndClosePartyMenu: @ 8127098 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _081270D4 @ =gPartyMenu - ldrb r4, [r0, 0x9] - bl IsPartyMenuTextPrinterActive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081270CC - lsls r2, r4, 24 - asrs r2, 24 - movs r0, 0x64 - muls r0, r2 - ldr r1, _081270D8 @ =gPlayerParty - adds r0, r1 - ldr r1, _081270DC @ =sPartyMenuBoxes - lsls r2, 4 - ldr r1, [r1] - adds r1, r2 - bl UpdatePartyMonHeldItemSprite - adds r0, r5, 0 - bl Task_ClosePartyMenu -_081270CC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081270D4: .4byte gPartyMenu -_081270D8: .4byte gPlayerParty -_081270DC: .4byte sPartyMenuBoxes - thumb_func_end Task_UpdateHeldItemSpriteAndClosePartyMenu - - thumb_func_start CB2_WriteMailToGiveMonFromBag -CB2_WriteMailToGiveMonFromBag: @ 81270E0 - push {r4-r6,lr} - ldr r4, _08127128 @ =gPartyMenu - movs r0, 0x9 - ldrsb r0, [r4, r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0812712C @ =gPlayerParty - adds r0, r5 - ldrh r1, [r4, 0xC] - bl GiveItemToMon - movs r0, 0x9 - ldrsb r0, [r4, r0] - muls r0, r6 - adds r0, r5 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08127130 @ =gSaveBlock1Ptr - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r0, _08127134 @ =0x00002cd0 - adds r2, r0 - ldr r1, [r1] - adds r1, r2 - ldr r2, _08127138 @ =CB2_ReturnToPartyOrBagMenuFromWritingMail - movs r0, 0x4 - bl DoEasyChatScreen - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08127128: .4byte gPartyMenu -_0812712C: .4byte gPlayerParty -_08127130: .4byte gSaveBlock1Ptr -_08127134: .4byte 0x00002cd0 -_08127138: .4byte CB2_ReturnToPartyOrBagMenuFromWritingMail - thumb_func_end CB2_WriteMailToGiveMonFromBag - - thumb_func_start CB2_ReturnToPartyOrBagMenuFromWritingMail -CB2_ReturnToPartyOrBagMenuFromWritingMail: @ 812713C - push {r4-r7,lr} - sub sp, 0xC - ldr r6, _0812718C @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08127190 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _08127194 @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0 - bne _0812719C - adds r0, r5, 0 - bl TakeMailFromMon - ldr r4, _08127198 @ =sPartyMenuItemId - adds r0, r5, 0 - movs r1, 0xC - adds r2, r4, 0 - bl SetMonData - ldrh r0, [r4] - movs r1, 0x1 - bl RemoveBagItem - adds r0, r7, 0 - bl ReturnGiveItemToBagOrPC - ldr r0, [r6] - bl SetMainCallback2 - b _081271B8 - .align 2, 0 -_0812718C: .4byte gPartyMenu -_08127190: .4byte gPlayerParty -_08127194: .4byte gSpecialVar_Result -_08127198: .4byte sPartyMenuItemId -_0812719C: - ldrb r0, [r6, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r6, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, _081271C0 @ =Task_DisplayGaveMailFromBagMessage - str r1, [sp, 0x4] - ldr r1, [r6] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl InitPartyMenu -_081271B8: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081271C0: .4byte Task_DisplayGaveMailFromBagMessage - thumb_func_end CB2_ReturnToPartyOrBagMenuFromWritingMail - - thumb_func_start Task_DisplayGaveMailFromBagMessage -Task_DisplayGaveMailFromBagMessage: @ 81271C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081271EC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812721E - ldr r1, _081271F0 @ =sPartyMenuItemId - ldrh r0, [r1] - cmp r0, 0 - beq _081271F8 - ldr r0, _081271F4 @ =gPartyMenu - ldrh r0, [r0, 0xC] - ldrh r1, [r1] - movs r2, 0 - bl DisplaySwitchedHeldItemMessage - b _08127210 - .align 2, 0 -_081271EC: .4byte gPaletteFade -_081271F0: .4byte sPartyMenuItemId -_081271F4: .4byte gPartyMenu -_081271F8: - ldr r2, _08127224 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r2, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08127228 @ =gPlayerParty - adds r0, r1 - ldrh r1, [r2, 0xC] - movs r2, 0 - movs r3, 0x1 - bl DisplayGaveHeldItemMessage -_08127210: - ldr r0, _0812722C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08127230 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r0, [r1] -_0812721E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127224: .4byte gPartyMenu -_08127228: .4byte gPlayerParty -_0812722C: .4byte gTasks -_08127230: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu - thumb_func_end Task_DisplayGaveMailFromBagMessage - - thumb_func_start Task_SwitchItemsFromBagYesNo -Task_SwitchItemsFromBagYesNo: @ 8127234 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPartyMenuTextPrinterActive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08127258 - bl PartyMenuDisplayYesNoMenu - ldr r0, _08127260 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08127264 @ =Task_HandleSwitchItemsFromBagYesNoInput - str r0, [r1] -_08127258: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127260: .4byte gTasks -_08127264: .4byte Task_HandleSwitchItemsFromBagYesNoInput - thumb_func_end Task_SwitchItemsFromBagYesNo - - thumb_func_start Task_HandleSwitchItemsFromBagYesNoInput -Task_HandleSwitchItemsFromBagYesNoInput: @ 8127268 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0812728E - cmp r1, 0 - bgt _08127288 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08127328 - b _0812733C -_08127288: - cmp r1, 0x1 - beq _0812732E - b _0812733C -_0812728E: - ldr r7, _081272C0 @ =gPartyMenu - ldrh r4, [r7, 0xC] - adds r0, r4, 0 - bl RemoveItemToGiveFromBag - ldr r6, _081272C4 @ =sPartyMenuItemId - ldrh r0, [r6] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - bne _081272CC - adds r0, r4, 0 - bl ReturnGiveItemToBagOrPC - ldrh r0, [r6] - bl BufferBagFullCantTakeItemMessage - ldr r0, _081272C8 @ =gStringVar4 - movs r1, 0 - bl DisplayPartyMenuMessage - b _0812730C - .align 2, 0 -_081272C0: .4byte gPartyMenu -_081272C4: .4byte sPartyMenuItemId -_081272C8: .4byte gStringVar4 -_081272CC: - adds r0, r4, 0 - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _081272F0 - ldr r0, _081272E8 @ =sPartyMenuInternal - ldr r1, [r0] - ldr r0, _081272EC @ =CB2_WriteMailToGiveMonFromBag - str r0, [r1, 0x4] - adds r0, r5, 0 - bl Task_ClosePartyMenu - b _0812733C - .align 2, 0 -_081272E8: .4byte sPartyMenuInternal -_081272EC: .4byte CB2_WriteMailToGiveMonFromBag -_081272F0: - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812731C @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl GiveItemToMon - ldrh r1, [r6] - adds r0, r4, 0 - movs r2, 0x1 - bl DisplaySwitchedHeldItemMessage -_0812730C: - ldr r1, _08127320 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08127324 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r1, [r0] - b _0812733C - .align 2, 0 -_0812731C: .4byte gPlayerParty -_08127320: .4byte gTasks -_08127324: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu -_08127328: - movs r0, 0x5 - bl PlaySE -_0812732E: - ldr r0, _08127344 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08127348 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r0, [r1] -_0812733C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08127344: .4byte gTasks -_08127348: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu - thumb_func_end Task_HandleSwitchItemsFromBagYesNoInput - - thumb_func_start DisplayItemMustBeRemovedFirstMessage -DisplayItemMustBeRemovedFirstMessage: @ 812734C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08127378 @ =gUnknown_8416BFB - movs r1, 0x1 - bl DisplayPartyMenuMessage - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _0812737C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08127380 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127378: .4byte gUnknown_8416BFB -_0812737C: .4byte gTasks -_08127380: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu - thumb_func_end DisplayItemMustBeRemovedFirstMessage - - thumb_func_start RemoveItemToGiveFromBag -RemoveItemToGiveFromBag: @ 8127384 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0812739C @ =gPartyMenu - ldrb r0, [r0, 0xB] - cmp r0, 0x6 - bne _081273A0 - adds r0, r1, 0 - movs r1, 0x1 - bl RemoveItemFromPC - b _081273A8 - .align 2, 0 -_0812739C: .4byte gPartyMenu -_081273A0: - adds r0, r1, 0 - movs r1, 0x1 - bl RemoveBagItem -_081273A8: - pop {r0} - bx r0 - thumb_func_end RemoveItemToGiveFromBag - - thumb_func_start ReturnGiveItemToBagOrPC -ReturnGiveItemToBagOrPC: @ 81273AC - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _081273C4 @ =gPartyMenu - ldrb r0, [r0, 0xB] - cmp r0, 0x5 - beq _081273C8 - adds r0, r1, 0 - movs r1, 0x1 - bl AddPCItem - b _081273D0 - .align 2, 0 -_081273C4: .4byte gPartyMenu -_081273C8: - adds r0, r1, 0 - movs r1, 0x1 - bl AddBagItem -_081273D0: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ReturnGiveItemToBagOrPC - - thumb_func_start ChooseMonToGiveMailFromMailbox -ChooseMonToGiveMailFromMailbox: @ 81273D8 - push {lr} - sub sp, 0xC - movs r0, 0x6 - str r0, [sp] - ldr r0, _081273FC @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _08127400 @ =CB2_PlayerPC_ReturnFromPartyMenu - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x7 - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_081273FC: .4byte Task_HandleChooseMonInput -_08127400: .4byte CB2_PlayerPC_ReturnFromPartyMenu - thumb_func_end ChooseMonToGiveMailFromMailbox - - thumb_func_start TryGiveMailToSelectedMon -TryGiveMailToSelectedMon: @ 8127404 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08127450 @ =gPartyMenu - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08127454 @ =gPlayerParty - adds r5, r1, r0 - ldr r1, _08127458 @ =gPartyMenuUseExitCallback - movs r0, 0 - strb r0, [r1] - ldr r2, _0812745C @ =gSaveBlock1Ptr - ldr r0, _08127460 @ =gPlayerPcMenuManager - ldrh r1, [r0] - adds r1, 0x6 - ldrh r0, [r0, 0x2] - adds r1, r0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08127464 @ =0x00002cd0 - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - beq _0812746C - ldr r0, _08127468 @ =gText_PkmnHoldingItemCantHoldMail - movs r1, 0x1 - bl DisplayPartyMenuMessage - b _08127482 - .align 2, 0 -_08127450: .4byte gPartyMenu -_08127454: .4byte gPlayerParty -_08127458: .4byte gPartyMenuUseExitCallback -_0812745C: .4byte gSaveBlock1Ptr -_08127460: .4byte gPlayerPcMenuManager -_08127464: .4byte 0x00002cd0 -_08127468: .4byte gText_PkmnHoldingItemCantHoldMail -_0812746C: - adds r0, r5, 0 - adds r1, r4, 0 - bl GiveMailToMon2 - adds r0, r4, 0 - bl ClearMailStruct - ldr r0, _0812749C @ =gText_MailTransferredFromMailbox - movs r1, 0x1 - bl DisplayPartyMenuMessage -_08127482: - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r0, _081274A0 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _081274A4 @ =Task_UpdateHeldItemSpriteAndClosePartyMenu - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812749C: .4byte gText_MailTransferredFromMailbox -_081274A0: .4byte gTasks -_081274A4: .4byte Task_UpdateHeldItemSpriteAndClosePartyMenu - thumb_func_end TryGiveMailToSelectedMon - - thumb_func_start InitChooseHalfPartyForBattle -InitChooseHalfPartyForBattle: @ 81274A8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ClearSelectedPartyOrder - movs r0, 0 - str r0, [sp] - ldr r0, _081274EC @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _081274F0 @ =gMain - ldr r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - ldr r1, _081274F4 @ =gPartyMenu - lsls r4, 6 - ldrb r2, [r1, 0x8] - movs r0, 0x3F - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x8] - ldr r0, _081274F8 @ =Task_ValidateChosenHalfParty - str r0, [r1, 0x4] - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081274EC: .4byte Task_HandleChooseMonInput -_081274F0: .4byte gMain -_081274F4: .4byte gPartyMenu -_081274F8: .4byte Task_ValidateChosenHalfParty - thumb_func_end InitChooseHalfPartyForBattle - - thumb_func_start ClearSelectedPartyOrder -ClearSelectedPartyOrder: @ 81274FC - push {lr} - ldr r0, _0812750C @ =gSelectedOrderFromParty - movs r1, 0 - movs r2, 0x3 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_0812750C: .4byte gSelectedOrderFromParty - thumb_func_end ClearSelectedPartyOrder - - thumb_func_start GetPartySlotEntryStatus -GetPartySlotEntryStatus: @ 8127510 - push {r4,lr} - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, _0812752C @ =gPlayerParty - adds r0, r1 - bl GetBattleEntryEligibility - lsls r0, 24 - cmp r0, 0 - bne _08127530 - movs r0, 0x2 - b _08127548 - .align 2, 0 -_0812752C: .4byte gPlayerParty -_08127530: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - bl HasPartySlotAlreadyBeenSelected - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08127546 - movs r0, 0 - b _08127548 -_08127546: - movs r0, 0x1 -_08127548: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetPartySlotEntryStatus - - thumb_func_start GetBattleEntryEligibility -GetBattleEntryEligibility: @ 8127550 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0812757A - ldr r0, _08127580 @ =gPartyMenu - ldrb r0, [r0, 0x8] - lsrs r1, r0, 6 - cmp r1, 0 - beq _08127584 - cmp r1, 0x1 - beq _08127592 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x1E - bls _081275E0 -_0812757A: - movs r0, 0 - b _081275E2 - .align 2, 0 -_08127580: .4byte gPartyMenu -_08127584: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081275E0 - b _0812757A -_08127592: - ldr r0, _081275E8 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, _081275EC @ =0x0000055c - adds r0, r2 - ldrb r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _081275AE - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x32 - bhi _0812757A -_081275AE: - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, _081275F0 @ =gBattleTowerBannedSpecies - lsls r1, r5, 1 - adds r0, r1, r3 - ldrh r0, [r0] - ldr r2, _081275F4 @ =0x0000ffff - cmp r0, r2 - beq _081275E0 -_081275C8: - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r4 - beq _0812757A - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, r5, 1 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _081275C8 -_081275E0: - movs r0, 0x1 -_081275E2: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081275E8: .4byte gSaveBlock2Ptr -_081275EC: .4byte 0x0000055c -_081275F0: .4byte gBattleTowerBannedSpecies -_081275F4: .4byte 0x0000ffff - thumb_func_end GetBattleEntryEligibility - - thumb_func_start CheckBattleEntriesAndGetMessage -CheckBattleEntriesAndGetMessage: @ 81275F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08127618 @ =gPlayerParty - mov r10, r0 - ldr r0, _0812761C @ =gPartyMenu - ldrb r0, [r0, 0x8] - lsrs r0, 6 - cmp r0, 0x1 - beq _08127620 - cmp r0, 0x2 - beq _081276E8 - b _08127700 - .align 2, 0 -_08127618: .4byte gPlayerParty -_0812761C: .4byte gPartyMenu -_08127620: - ldr r1, _0812762C @ =gSelectedOrderFromParty - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _08127630 - movs r0, 0x11 - b _08127702 - .align 2, 0 -_0812762C: .4byte gSelectedOrderFromParty -_08127630: - movs r5, 0 -_08127632: - ldr r2, _081276DC @ =gSelectedOrderFromParty - adds r4, r2, r5 - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - subs r0, 0x64 - add r0, r10 - movs r1, 0xB - bl GetMonData - ldr r2, _081276E0 @ =sPartyMenuInternal - ldr r1, [r2] - ldr r2, _081276E4 @ =0x00000236 - adds r1, r2 - strh r0, [r1] - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - subs r0, 0x64 - add r0, r10 - movs r1, 0xC - bl GetMonData - ldr r2, _081276E0 @ =sPartyMenuInternal - ldr r1, [r2] - movs r2, 0x8D - lsls r2, 2 - adds r1, r2 - strh r0, [r1] - adds r1, r5, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - mov r9, r1 - cmp r5, 0x2 - bhi _081276D0 - ldr r0, _081276E0 @ =sPartyMenuInternal - mov r8, r0 - movs r7, 0x64 -_0812767E: - mov r1, r8 - ldr r0, [r1] - ldr r2, _081276E4 @ =0x00000236 - adds r0, r2 - movs r1, 0 - ldrsh r4, [r0, r1] - ldr r2, _081276DC @ =gSelectedOrderFromParty - adds r6, r2, r5 - ldrb r0, [r6] - muls r0, r7 - subs r0, 0x64 - add r0, r10 - movs r1, 0xB - bl GetMonData - cmp r4, r0 - beq _081276F8 - mov r1, r8 - ldr r0, [r1] - movs r2, 0x8D - lsls r2, 2 - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _081276C6 - adds r4, r0, 0 - ldrb r0, [r6] - muls r0, r7 - subs r0, 0x64 - add r0, r10 - movs r1, 0xC - bl GetMonData - cmp r4, r0 - beq _081276FC -_081276C6: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0812767E -_081276D0: - mov r1, r9 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08127632 - b _08127700 - .align 2, 0 -_081276DC: .4byte gSelectedOrderFromParty -_081276E0: .4byte sPartyMenuInternal -_081276E4: .4byte 0x00000236 -_081276E8: - ldr r2, _081276F4 @ =gSelectedOrderFromParty - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _08127700 - movs r0, 0x12 - b _08127702 - .align 2, 0 -_081276F4: .4byte gSelectedOrderFromParty -_081276F8: - movs r0, 0x13 - b _08127702 -_081276FC: - movs r0, 0x14 - b _08127702 -_08127700: - movs r0, 0xFF -_08127702: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckBattleEntriesAndGetMessage - - thumb_func_start HasPartySlotAlreadyBeenSelected -HasPartySlotAlreadyBeenSelected: @ 8127710 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _08127728 @ =gSelectedOrderFromParty -_0812771A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _0812772C - movs r0, 0x1 - b _08127738 - .align 2, 0 -_08127728: .4byte gSelectedOrderFromParty -_0812772C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _0812771A - movs r0, 0 -_08127738: - pop {r1} - bx r1 - thumb_func_end HasPartySlotAlreadyBeenSelected - - thumb_func_start Task_ValidateChosenHalfParty -Task_ValidateChosenHalfParty: @ 812773C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl CheckBattleEntriesAndGetMessage - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _08127768 - movs r0, 0x1A - bl PlaySE - adds r0, r4, 0 - bl DisplayPartyMenuStdMessage - ldr r0, _08127764 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - b _08127796 - .align 2, 0 -_08127764: .4byte gTasks -_08127768: - ldr r0, _08127780 @ =gSelectedOrderFromParty - ldrb r0, [r0] - cmp r0, 0 - beq _08127784 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl Task_ClosePartyMenu - b _0812779E - .align 2, 0 -_08127780: .4byte gSelectedOrderFromParty -_08127784: - movs r0, 0x1A - bl PlaySE - movs r0, 0xE - bl DisplayPartyMenuStdMessage - ldr r0, _081277A4 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 -_08127796: - lsls r1, 3 - adds r1, r0 - ldr r0, _081277A8 @ =Task_ContinueChoosingHalfParty - str r0, [r1] -_0812779E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081277A4: .4byte gTasks -_081277A8: .4byte Task_ContinueChoosingHalfParty - thumb_func_end Task_ValidateChosenHalfParty - - thumb_func_start Task_ContinueChoosingHalfParty -Task_ContinueChoosingHalfParty: @ 81277AC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081277E8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081277C6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081277E0 -_081277C6: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl DisplayPartyMenuStdMessage - ldr r0, _081277EC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _081277F0 @ =Task_HandleChooseMonInput - str r0, [r1] -_081277E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081277E8: .4byte gMain -_081277EC: .4byte gTasks -_081277F0: .4byte Task_HandleChooseMonInput - thumb_func_end Task_ContinueChoosingHalfParty - - thumb_func_start ChooseMonForMoveTutor -ChooseMonForMoveTutor: @ 81277F4 - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - str r2, [sp] - ldr r2, _08127818 @ =Task_HandleChooseMonInput - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08127818: .4byte Task_HandleChooseMonInput - thumb_func_end ChooseMonForMoveTutor - - thumb_func_start sub_812781C -sub_812781C: @ 812781C - push {lr} - sub sp, 0xC - ldr r0, _08127844 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0xE - bhi _08127850 - movs r0, 0x4 - str r0, [sp] - ldr r0, _08127848 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _0812784C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0 - bl InitPartyMenu - b _08127870 - .align 2, 0 -_08127844: .4byte gSpecialVar_0x8005 -_08127848: .4byte Task_HandleChooseMonInput -_0812784C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08127850: - movs r0, 0x7F - str r0, [sp] - ldr r0, _08127878 @ =TryTutorSelectedMon - str r0, [sp, 0x4] - ldr r0, _0812787C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0 - bl InitPartyMenu - ldr r1, _08127880 @ =gPartyMenu - ldr r0, _08127884 @ =gSpecialVar_0x8007 - ldrh r0, [r0] - strb r0, [r1, 0x9] -_08127870: - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08127878: .4byte TryTutorSelectedMon -_0812787C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08127880: .4byte gPartyMenu -_08127884: .4byte gSpecialVar_0x8007 - thumb_func_end sub_812781C - - thumb_func_start ChooseMonForWirelessMinigame -ChooseMonForWirelessMinigame: @ 8127888 - push {lr} - sub sp, 0xC - movs r0, 0x1 - str r0, [sp] - ldr r0, _081278AC @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _081278B0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - str r0, [sp, 0x8] - movs r0, 0xB - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_081278AC: .4byte Task_HandleChooseMonInput -_081278B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end ChooseMonForWirelessMinigame - - thumb_func_start GetPartyLayoutFromBattleType -GetPartyLayoutFromBattleType: @ 81278B4 - push {lr} - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _081278C4 - movs r0, 0 - b _081278D6 -_081278C4: - bl IsMultiBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081278D4 - movs r0, 0x1 - b _081278D6 -_081278D4: - movs r0, 0x2 -_081278D6: - pop {r1} - bx r1 - thumb_func_end GetPartyLayoutFromBattleType - - thumb_func_start OpenPartyMenuInTutorialBattle -OpenPartyMenuInTutorialBattle: @ 81278DC - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x8 - bl sub_80EB2E0 - lsls r0, 24 - cmp r0, 0 - bne _08127930 - ldr r0, _08127924 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08127930 - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x7F - str r0, [sp] - ldr r0, _08127928 @ =sub_8120C3C - str r0, [sp, 0x4] - ldr r0, _0812792C @ =SetCB2ToReshowScreenAfterMenu - str r0, [sp, 0x8] - movs r0, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl InitPartyMenu - movs r0, 0x8 - bl sub_80EB2F4 - b _08127950 - .align 2, 0 -_08127924: .4byte gBattleTypeFlags -_08127928: .4byte sub_8120C3C -_0812792C: .4byte SetCB2ToReshowScreenAfterMenu -_08127930: - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _08127960 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _08127964 @ =SetCB2ToReshowScreenAfterMenu - str r0, [sp, 0x8] - movs r0, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl InitPartyMenu -_08127950: - bl nullsub_44 - bl UpdatePartyToBattleOrder - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127960: .4byte Task_HandleChooseMonInput -_08127964: .4byte SetCB2ToReshowScreenAfterMenu - thumb_func_end OpenPartyMenuInTutorialBattle - - thumb_func_start OpenPartyMenuInBattle -OpenPartyMenuInBattle: @ 8127968 - push {lr} - sub sp, 0xC - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _0812799C @ =sub_8120EBC - str r0, [sp, 0x4] - ldr r0, _081279A0 @ =SetCB2ToReshowScreenAfterMenu - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - bl nullsub_44 - bl UpdatePartyToBattleOrder - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0812799C: .4byte sub_8120EBC -_081279A0: .4byte SetCB2ToReshowScreenAfterMenu - thumb_func_end OpenPartyMenuInBattle - - thumb_func_start ChooseMonForInBattleItem -ChooseMonForInBattleItem: @ 81279A4 - push {lr} - sub sp, 0xC - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - str r0, [sp] - ldr r0, _081279D8 @ =sub_8120FCC - str r0, [sp, 0x4] - ldr r0, _081279DC @ =sub_8107ECC - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0xE - movs r3, 0 - bl InitPartyMenu - bl nullsub_44 - bl UpdatePartyToBattleOrder - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_081279D8: .4byte sub_8120FCC -_081279DC: .4byte sub_8107ECC - thumb_func_end ChooseMonForInBattleItem - - thumb_func_start sub_81279E0 -sub_81279E0: @ 81279E0 - push {r4,lr} - sub sp, 0xC - movs r0, 0x8 - bl sub_80EB2E0 - lsls r0, 24 - cmp r0, 0 - bne _08127A30 - ldr r0, _08127A24 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08127A30 - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x7F - str r0, [sp] - ldr r0, _08127A28 @ =sub_8120C3C - str r0, [sp, 0x4] - ldr r0, _08127A2C @ =sub_8107ECC - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x3 - movs r3, 0 - bl InitPartyMenu - movs r0, 0x8 - bl sub_80EB2F4 - b _08127A62 - .align 2, 0 -_08127A24: .4byte gBattleTypeFlags -_08127A28: .4byte sub_8120C3C -_08127A2C: .4byte sub_8107ECC -_08127A30: - ldr r0, _08127A74 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08127A78 @ =sub_8107ECC - cmp r0, 0x5 - bne _08127A44 - ldr r4, _08127A7C @ =sub_8124DB0 -_08127A44: - bl GetPartyLayoutFromBattleType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - str r0, [sp] - ldr r0, _08127A80 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x3 - movs r3, 0 - bl InitPartyMenu -_08127A62: - bl nullsub_44 - bl UpdatePartyToBattleOrder - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127A74: .4byte gSpecialVar_ItemId -_08127A78: .4byte sub_8107ECC -_08127A7C: .4byte sub_8124DB0 -_08127A80: .4byte Task_HandleChooseMonInput - thumb_func_end sub_81279E0 - - thumb_func_start GetPartyMenuActionsTypeInBattle -GetPartyMenuActionsTypeInBattle: @ 8127A84 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08127AA4 @ =gPlayerParty + 100 @ &gPlayerParty[1] - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08127AA0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08127AA8 -_08127AA0: - movs r0, 0x7 - b _08127ABA - .align 2, 0 -_08127AA4: .4byte gPlayerParty + 100 @ &gPlayerParty[1] -_08127AA8: - ldr r0, _08127AB4 @ =gPartyMenu - ldrb r0, [r0, 0xB] - cmp r0, 0x1 - beq _08127AB8 - movs r0, 0x2 - b _08127ABA - .align 2, 0 -_08127AB4: .4byte gPartyMenu -_08127AB8: - movs r0, 0x3 -_08127ABA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetPartyMenuActionsTypeInBattle - - thumb_func_start TrySwitchInPokemon -TrySwitchInPokemon: @ 8127AC0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r5, r0, 24 - bl IsMultiBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08127B08 - cmp r5, 0x1 - beq _08127AE6 - cmp r5, 0x4 - beq _08127AE6 - cmp r5, 0x5 - bne _08127B08 -_08127AE6: - ldr r4, _08127AFC @ =gStringVar1 - bl GetTrainerPartnerName - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r0, _08127B00 @ =gStringVar4 - ldr r1, _08127B04 @ =gUnknown_8416A98 - b _08127C86 - .align 2, 0 -_08127AFC: .4byte gStringVar1 -_08127B00: .4byte gStringVar4 -_08127B04: .4byte gUnknown_8416A98 -_08127B08: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08127B2C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _08127B3C - ldr r1, _08127B30 @ =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r0, _08127B34 @ =gStringVar4 - ldr r1, _08127B38 @ =gUnknown_8416A75 - b _08127C86 - .align 2, 0 -_08127B2C: .4byte gPlayerParty -_08127B30: .4byte gStringVar1 -_08127B34: .4byte gStringVar4 -_08127B38: .4byte gUnknown_8416A75 -_08127B3C: - movs r4, 0 - b _08127B68 -_08127B40: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08127B62 - adds r0, r5, 0 - bl GetPartyIdFromBattleSlot - lsls r0, 24 - ldr r2, _08127B90 @ =gBattlerPartyIndexes - lsls r1, r4, 1 - adds r1, r2 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - beq _08127C40 -_08127B62: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08127B68: - ldr r0, _08127B94 @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _08127B40 - movs r7, 0x64 - adds r0, r5, 0 - muls r0, r7 - ldr r1, _08127B98 @ =gPlayerParty - mov r8, r1 - adds r6, r0, r1 - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08127BA4 - ldr r0, _08127B9C @ =gStringVar4 - ldr r1, _08127BA0 @ =gUnknown_8416ACB - b _08127C86 - .align 2, 0 -_08127B90: .4byte gBattlerPartyIndexes -_08127B94: .4byte gBattlersCount -_08127B98: .4byte gPlayerParty -_08127B9C: .4byte gStringVar4 -_08127BA0: .4byte gUnknown_8416ACB -_08127BA4: - adds r0, r5, 0 - bl GetPartyIdFromBattleSlot - ldr r1, _08127BC8 @ =gBattleStruct - ldr r1, [r1] - adds r1, 0x8B - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08127BD8 - ldr r1, _08127BCC @ =gStringVar1 - adds r0, r6, 0 - bl GetMonNickname - ldr r0, _08127BD0 @ =gStringVar4 - ldr r1, _08127BD4 @ =gUnknown_8416A55 - b _08127C86 - .align 2, 0 -_08127BC8: .4byte gBattleStruct -_08127BCC: .4byte gStringVar1 -_08127BD0: .4byte gStringVar4 -_08127BD4: .4byte gUnknown_8416A55 -_08127BD8: - ldr r0, _08127BE8 @ =gPartyMenu - ldrb r0, [r0, 0xB] - cmp r0, 0x4 - bne _08127BEC - bl SetMonPreventsSwitchingString - b _08127C8A - .align 2, 0 -_08127BE8: .4byte gPartyMenu -_08127BEC: - cmp r0, 0x2 - beq _08127C64 - adds r0, r5, 0 - bl GetPartyIdFromBattleSlot - ldr r1, _08127C30 @ =gSelectedMonPartyId - strb r0, [r1] - ldr r1, _08127C34 @ =gPartyMenuUseExitCallback - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08127C38 @ =gBattlerPartyIndexes - ldr r0, _08127C3C @ =gBattlerInMenuId - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl SwitchPartyMonSlots - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r6, 0 - bl SwapPartyPokemon - movs r0, 0x1 - b _08127C8C - .align 2, 0 -_08127C30: .4byte gSelectedMonPartyId -_08127C34: .4byte gPartyMenuUseExitCallback -_08127C38: .4byte gBattlerPartyIndexes -_08127C3C: .4byte gBattlerInMenuId -_08127C40: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08127C54 @ =gPlayerParty - adds r0, r1 - ldr r1, _08127C58 @ =gStringVar1 - bl GetMonNickname - ldr r0, _08127C5C @ =gStringVar4 - ldr r1, _08127C60 @ =gUnknown_8416A3A - b _08127C86 - .align 2, 0 -_08127C54: .4byte gPlayerParty -_08127C58: .4byte gStringVar1 -_08127C5C: .4byte gStringVar4 -_08127C60: .4byte gUnknown_8416A3A -_08127C64: - ldr r0, _08127C98 @ =gBattlerInMenuId - ldrb r0, [r0] - ldr r1, _08127C9C @ =gBattlerPartyIndexes - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - add r0, r8 - ldr r1, _08127CA0 @ =gStringVar1 - bl GetMonNickname - ldr r0, _08127CA4 @ =gStringVar4 - ldr r1, _08127CA8 @ =gUnknown_8416A1E -_08127C86: - bl StringExpandPlaceholders -_08127C8A: - movs r0, 0 -_08127C8C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08127C98: .4byte gBattlerInMenuId -_08127C9C: .4byte gBattlerPartyIndexes -_08127CA0: .4byte gStringVar1 -_08127CA4: .4byte gStringVar4 -_08127CA8: .4byte gUnknown_8416A1E - thumb_func_end TrySwitchInPokemon - - thumb_func_start BufferBattlePartyCurrentOrder -BufferBattlePartyCurrentOrder: @ 8127CAC - push {r4,lr} - ldr r4, _08127CC8 @ =gBattlePartyCurrentOrder - bl sub_80435E0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl BufferBattlePartyOrder - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127CC8: .4byte gBattlePartyCurrentOrder - thumb_func_end BufferBattlePartyCurrentOrder - - thumb_func_start BufferBattlePartyOrder -BufferBattlePartyOrder: @ 8127CCC - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl IsMultiBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08127D02 - cmp r4, 0 - beq _08127CF4 - movs r0, 0x30 - strb r0, [r6] - movs r0, 0x45 - strb r0, [r6, 0x1] - movs r0, 0x12 - strb r0, [r6, 0x2] - b _08127D9C -_08127CF4: - movs r0, 0x3 - strb r0, [r6] - movs r0, 0x12 - strb r0, [r6, 0x1] - movs r0, 0x45 - strb r0, [r6, 0x2] - b _08127D9C -_08127D02: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08127D40 - movs r5, 0x1 - movs r0, 0 - bl GetBattlerAtPosition - mov r2, sp - ldr r1, _08127D3C @ =gBattlerPartyIndexes - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_08127D26: - ldrb r0, [r1] - cmp r4, r0 - beq _08127D34 - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_08127D34: - adds r4, 0x1 - cmp r4, 0x5 - ble _08127D26 - b _08127D84 - .align 2, 0 -_08127D3C: .4byte gBattlerPartyIndexes -_08127D40: - movs r5, 0x2 - movs r0, 0 - bl GetBattlerAtPosition - mov r1, sp - ldr r4, _08127DA4 @ =gBattlerPartyIndexes - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1] - movs r0, 0x2 - bl GetBattlerAtPosition - mov r1, sp - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_08127D6A: - ldrb r0, [r1] - cmp r4, r0 - beq _08127D7E - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _08127D7E - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_08127D7E: - adds r4, 0x1 - cmp r4, 0x5 - ble _08127D6A -_08127D84: - movs r4, 0 - mov r3, sp -_08127D88: - adds r0, r6, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _08127D88 -_08127D9C: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08127DA4: .4byte gBattlerPartyIndexes - thumb_func_end BufferBattlePartyOrder - - thumb_func_start BufferBattlePartyCurrentOrderBySide -BufferBattlePartyCurrentOrderBySide: @ 8127DA8 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08127DC8 @ =gBattleStruct - lsls r3, r2, 1 - adds r3, r2 - adds r3, 0x60 - ldr r0, [r0] - adds r0, r3 - bl BufferBattlePartyOrderBySide - pop {r0} - bx r0 - .align 2, 0 -_08127DC8: .4byte gBattleStruct - thumb_func_end BufferBattlePartyCurrentOrderBySide - - thumb_func_start BufferBattlePartyOrderBySide -BufferBattlePartyOrderBySide: @ 8127DCC - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r0, r2, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08127DF4 - movs r0, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - b _08127E00 -_08127DF4: - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 -_08127E00: - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r6, r0, 24 - bl IsMultiBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08127E34 - cmp r7, 0 - beq _08127E26 - movs r0, 0x30 - strb r0, [r5] - movs r0, 0x45 - strb r0, [r5, 0x1] - movs r0, 0x12 - strb r0, [r5, 0x2] - b _08127EB6 -_08127E26: - movs r0, 0x3 - strb r0, [r5] - movs r0, 0x12 - strb r0, [r5, 0x1] - movs r0, 0x45 - strb r0, [r5, 0x2] - b _08127EB6 -_08127E34: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08127E6C - movs r3, 0x1 - mov r2, sp - ldr r1, _08127E68 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_08127E50: - ldrb r0, [r1] - cmp r4, r0 - beq _08127E5E - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_08127E5E: - adds r4, 0x1 - cmp r4, 0x5 - ble _08127E50 - b _08127E9E - .align 2, 0 -_08127E68: .4byte gBattlerPartyIndexes -_08127E6C: - movs r3, 0x2 - mov r1, sp - ldr r2, _08127EC0 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - lsls r0, r6, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_08127E84: - ldrb r0, [r1] - cmp r4, r0 - beq _08127E98 - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _08127E98 - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_08127E98: - adds r4, 0x1 - cmp r4, 0x5 - ble _08127E84 -_08127E9E: - movs r4, 0 - mov r3, sp -_08127EA2: - adds r0, r5, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _08127EA2 -_08127EB6: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08127EC0: .4byte gBattlerPartyIndexes - thumb_func_end BufferBattlePartyOrderBySide - - thumb_func_start SwitchPartyOrderLinkMulti -SwitchPartyOrderLinkMulti: @ 8127EC4 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r7, 0 - bl IsMultiBattle - lsls r0, 24 - cmp r0, 0 - beq _08127F72 - ldr r0, _08127F28 @ =gBattleStruct - lsls r1, r4, 1 - adds r1, r4 - adds r1, 0x60 - ldr r0, [r0] - adds r4, r0, r1 - movs r2, 0 - add r6, sp - mov r12, r6 - movs r6, 0xF - mov r3, sp -_08127EF6: - adds r1, r4, r2 - ldrb r0, [r1] - lsrs r0, 4 - strb r0, [r3] - adds r3, 0x1 - ldrb r1, [r1] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _08127EF6 - mov r0, r12 - ldrb r3, [r0] - movs r2, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r5 - bne _08127F2C - mov r0, sp - ldrb r7, [r0] - strb r3, [r0] - b _08127F40 - .align 2, 0 -_08127F28: .4byte gBattleStruct -_08127F2C: - adds r2, 0x1 - cmp r2, 0x5 - bgt _08127F40 - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r5 - bne _08127F2C - adds r7, r0, 0 - strb r3, [r1] -_08127F40: - cmp r2, 0x6 - beq _08127F72 - mov r0, r12 - strb r7, [r0] - mov r0, sp - ldrb r0, [r0] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x1] - orrs r0, r1 - strb r0, [r4] - mov r0, sp - ldrb r0, [r0, 0x2] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x3] - orrs r0, r1 - strb r0, [r4, 0x1] - mov r0, sp - ldrb r0, [r0, 0x4] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x5] - orrs r0, r1 - strb r0, [r4, 0x2] -_08127F72: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SwitchPartyOrderLinkMulti - - thumb_func_start GetPartyIdFromBattleSlot -GetPartyIdFromBattleSlot: @ 8127F7C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1 - ands r1, r2 - lsrs r2, r0, 25 - cmp r1, 0 - beq _08127F9C - ldr r0, _08127F98 @ =gBattlePartyCurrentOrder - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - b _08127FA4 - .align 2, 0 -_08127F98: .4byte gBattlePartyCurrentOrder -_08127F9C: - ldr r0, _08127FAC @ =gBattlePartyCurrentOrder - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r1, r0, 4 -_08127FA4: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_08127FAC: .4byte gBattlePartyCurrentOrder - thumb_func_end GetPartyIdFromBattleSlot - - thumb_func_start SetPartyIdAtBattleSlot -SetPartyIdAtBattleSlot: @ 8127FB0 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r1, 0x1 - ands r1, r3 - lsrs r3, r0, 25 - cmp r1, 0 - beq _08127FD8 - ldr r0, _08127FD4 @ =gBattlePartyCurrentOrder - adds r0, r3, r0 - ldrb r2, [r0] - movs r1, 0xF0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - b _08127FE8 - .align 2, 0 -_08127FD4: .4byte gBattlePartyCurrentOrder -_08127FD8: - ldr r2, _08127FF0 @ =gBattlePartyCurrentOrder - adds r2, r3, r2 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r1, r4, 4 - orrs r0, r1 - strb r0, [r2] -_08127FE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08127FF0: .4byte gBattlePartyCurrentOrder - thumb_func_end SetPartyIdAtBattleSlot - - thumb_func_start SwitchPartyMonSlots -SwitchPartyMonSlots: @ 8127FF4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - bl GetPartyIdFromBattleSlot - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl GetPartyIdFromBattleSlot - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl SetPartyIdAtBattleSlot - adds r0, r6, 0 - adds r1, r4, 0 - bl SetPartyIdAtBattleSlot - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SwitchPartyMonSlots - - thumb_func_start pokemon_order_func -pokemon_order_func: @ 8128030 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r5, _08128058 @ =gBattlePartyCurrentOrder -_0812803C: - adds r0, r3, r5 - ldrb r1, [r0] - lsrs r0, r1, 4 - cmp r0, r4 - beq _08128054 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xF - ands r0, r1 - cmp r0, r4 - bne _0812805C -_08128054: - adds r0, r2, 0 - b _0812806E - .align 2, 0 -_08128058: .4byte gBattlePartyCurrentOrder -_0812805C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0812803C - movs r0, 0 -_0812806E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end pokemon_order_func - - thumb_func_start UpdatePartyToBattleOrder -UpdatePartyToBattleOrder: @ 8128074 - push {r4-r6,lr} - movs r4, 0x96 - lsls r4, 2 - adds r0, r4, 0 - bl Alloc - adds r5, r0, 0 - ldr r1, _081280C0 @ =gPlayerParty - adds r2, r4, 0 - bl memcpy - movs r4, 0 - movs r6, 0x64 -_0812808E: - adds r0, r4, 0 - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - ldr r1, _081280C0 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812808E - adds r0, r5, 0 - bl Free - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081280C0: .4byte gPlayerParty - thumb_func_end UpdatePartyToBattleOrder - - thumb_func_start UpdatePartyToFieldOrder -UpdatePartyToFieldOrder: @ 81280C4 - push {r4-r6,lr} - movs r4, 0x96 - lsls r4, 2 - adds r0, r4, 0 - bl Alloc - adds r5, r0, 0 - ldr r1, _08128110 @ =gPlayerParty - adds r2, r4, 0 - bl memcpy - movs r4, 0 - movs r6, 0x64 -_081280DE: - adds r0, r4, 0 - bl GetPartyIdFromBattleSlot - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - ldr r1, _08128110 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081280DE - adds r0, r5, 0 - bl Free - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08128110: .4byte gPlayerParty - thumb_func_end UpdatePartyToFieldOrder - - thumb_func_start SwitchAliveMonIntoLeadSlot -SwitchAliveMonIntoLeadSlot: @ 8128114 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - movs r7, 0x64 - ldr r0, _0812816C @ =gPlayerParty - mov r8, r0 -_08128122: - adds r0, r6, 0 - bl GetPartyIdFromBattleSlot - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08128170 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08128170 - movs r0, 0 - bl GetPartyIdFromBattleSlot - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - adds r1, r6, 0 - bl SwitchPartyMonSlots - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r5, 0 - bl SwapPartyPokemon - b _0812817A - .align 2, 0 -_0812816C: .4byte gPlayerParty -_08128170: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _08128122 -_0812817A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SwitchAliveMonIntoLeadSlot - - thumb_func_start CB2_SetUpExitToBattleScreen -CB2_SetUpExitToBattleScreen: @ 8128184 - push {lr} - bl CB2_SetUpReshowBattleScreenAfterMenu - ldr r0, _08128194 @ =SetCB2ToReshowScreenAfterMenu - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08128194: .4byte SetCB2ToReshowScreenAfterMenu - thumb_func_end CB2_SetUpExitToBattleScreen - - thumb_func_start ShowPartyMenuToShowcaseMultiBattleParty -ShowPartyMenuToShowcaseMultiBattleParty: @ 8128198 - push {lr} - sub sp, 0xC - movs r0, 0x7F - str r0, [sp] - ldr r0, _081281BC @ =Task_InitMultiPartnerPartySlideIn - str r0, [sp, 0x4] - ldr r0, _081281C0 @ =gMain - ldr r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r0, 0x5 - movs r1, 0x3 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_081281BC: .4byte Task_InitMultiPartnerPartySlideIn -_081281C0: .4byte gMain - thumb_func_end ShowPartyMenuToShowcaseMultiBattleParty - - thumb_func_start Task_InitMultiPartnerPartySlideIn -Task_InitMultiPartnerPartySlideIn: @ 81281C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081281F4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x80 - lsls r1, 1 - strh r1, [r4, 0x8] - bl SlideMultiPartyMenuBoxSpritesOneStep - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - ldr r0, _081281F8 @ =Task_MultiPartnerPartySlideIn - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081281F4: .4byte gTasks -_081281F8: .4byte Task_MultiPartnerPartySlideIn - thumb_func_end Task_InitMultiPartnerPartySlideIn - - thumb_func_start Task_MultiPartnerPartySlideIn -Task_MultiPartnerPartySlideIn: @ 81281FC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - ldr r1, _08128270 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r0, _08128274 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08128268 - ldrh r0, [r4] - subs r0, 0x8 - strh r0, [r4] - adds r0, r5, 0 - bl SlideMultiPartyMenuBoxSpritesOneStep - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08128268 - movs r4, 0x3 - ldr r7, _08128278 @ =gMultiPartnerParty -_08128230: - subs r0, r4, 0x3 - lsls r0, 5 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0 - beq _0812824C - ldr r0, _0812827C @ =sPartyMenuBoxes - ldr r1, [r0] - lsls r0, r4, 4 - adds r0, r1 - ldrb r0, [r0, 0x9] - movs r1, 0 - bl AnimateSelectedPartyIcon -_0812824C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08128230 - movs r0, 0x71 - bl PlaySE - ldr r0, _08128280 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08128284 @ =Task_WaitAfterMultiPartnerPartySlideIn - str r0, [r1] -_08128268: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08128270: .4byte gTasks+0x8 -_08128274: .4byte gPaletteFade -_08128278: .4byte gMultiPartnerParty -_0812827C: .4byte sPartyMenuBoxes -_08128280: .4byte gTasks -_08128284: .4byte Task_WaitAfterMultiPartnerPartySlideIn - thumb_func_end Task_MultiPartnerPartySlideIn - - thumb_func_start Task_WaitAfterMultiPartnerPartySlideIn -Task_WaitAfterMultiPartnerPartySlideIn: @ 8128288 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _081282B4 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _081282AE - adds r0, r2, 0 - bl Task_ClosePartyMenu -_081282AE: - pop {r0} - bx r0 - .align 2, 0 -_081282B4: .4byte gTasks+0x8 - thumb_func_end Task_WaitAfterMultiPartnerPartySlideIn - - thumb_func_start MoveMultiPartyMenuBoxSprite -MoveMultiPartyMenuBoxSprite: @ 81282B8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r1, 0 - blt _081282D2 - ldr r1, _081282D8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r3, [r0, 0x24] -_081282D2: - pop {r0} - bx r0 - .align 2, 0 -_081282D8: .4byte gSprites - thumb_func_end MoveMultiPartyMenuBoxSprite - - thumb_func_start SlideMultiPartyMenuBoxSpritesOneStep -SlideMultiPartyMenuBoxSpritesOneStep: @ 81282DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08128364 @ =gTasks+0x8 - adds r5, r1, r0 - movs r6, 0x3 - ldr r7, _08128368 @ =sPartyMenuBoxes -_081282F0: - ldr r0, _0812836C @ =gMultiPartnerParty - subs r1, r6, 0x3 - lsls r1, 5 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08128348 - ldr r0, [r7] - lsls r4, r6, 4 - adds r0, r4, r0 - ldrb r0, [r0, 0x9] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl MoveMultiPartyMenuBoxSprite - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, 0xA] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl MoveMultiPartyMenuBoxSprite - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, 0xB] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl MoveMultiPartyMenuBoxSprite - ldr r0, [r7] - adds r4, r0 - ldrb r0, [r4, 0xC] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl MoveMultiPartyMenuBoxSprite -_08128348: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _081282F0 - movs r1, 0x80 - lsls r1, 4 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08128364: .4byte gTasks+0x8 -_08128368: .4byte sPartyMenuBoxes -_0812836C: .4byte gMultiPartnerParty - thumb_func_end SlideMultiPartyMenuBoxSpritesOneStep - - thumb_func_start ChooseMonForDaycare -ChooseMonForDaycare: @ 8128370 - push {lr} - sub sp, 0xC - ldr r1, _08128398 @ =gFieldCallback2 - ldr r0, _0812839C @ =CB2_FadeFromPartyMenu - str r0, [r1] - movs r0, 0xF - str r0, [sp] - ldr r0, _081283A0 @ =Task_HandleChooseMonInput - str r0, [sp, 0x4] - ldr r0, _081283A4 @ =CB2_ReturnToField - str r0, [sp, 0x8] - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08128398: .4byte gFieldCallback2 -_0812839C: .4byte CB2_FadeFromPartyMenu -_081283A0: .4byte Task_HandleChooseMonInput -_081283A4: .4byte CB2_ReturnToField - thumb_func_end ChooseMonForDaycare - - thumb_func_start ChoosePartyMonByMenuType -ChoosePartyMonByMenuType: @ 81283A8 - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081283D4 @ =gFieldCallback2 - ldr r1, _081283D8 @ =CB2_FadeFromPartyMenu - str r1, [r2] - movs r1, 0 - str r1, [sp] - ldr r1, _081283DC @ =Task_HandleChooseMonInput - str r1, [sp, 0x4] - ldr r1, _081283E0 @ =CB2_ReturnToField - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0xB - movs r3, 0 - bl InitPartyMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_081283D4: .4byte gFieldCallback2 -_081283D8: .4byte CB2_FadeFromPartyMenu -_081283DC: .4byte Task_HandleChooseMonInput -_081283E0: .4byte CB2_ReturnToField - thumb_func_end ChoosePartyMonByMenuType - - thumb_func_start CB2_FadeFromPartyMenu -CB2_FadeFromPartyMenu: @ 81283E4 - push {lr} - bl sub_807DC00 - ldr r0, _081283F8 @ =Task_PartyMenuWaitForFade - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_081283F8: .4byte Task_PartyMenuWaitForFade - thumb_func_end CB2_FadeFromPartyMenu - - thumb_func_start Task_PartyMenuWaitForFade -Task_PartyMenuWaitForFade: @ 81283FC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _0812841A - adds r0, r4, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_0812841A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_PartyMenuWaitForFade - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index c757216fd..b499f0999 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -1508,8 +1508,8 @@ sub_811D120: @ 811D120 bx r1 thumb_func_end sub_811D120 - thumb_func_start GetMonLevelUpWindowStats -GetMonLevelUpWindowStats: @ 811D130 + thumb_func_start BufferMonStatsToTaskData +BufferMonStatsToTaskData: @ 811D130 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -1539,7 +1539,7 @@ GetMonLevelUpWindowStats: @ 811D130 pop {r4,r5} pop {r0} bx r0 - thumb_func_end GetMonLevelUpWindowStats + thumb_func_end BufferMonStatsToTaskData thumb_func_start sub_811D178 sub_811D178: @ 811D178 |