summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-11-24 03:03:29 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-11-24 03:03:29 +0800
commit972c044d71a870128d2ac41b5b407a1db41d60de (patch)
tree597c13c139566d6923bd5ee9b83a9c8dc357664a /asm
parent5c1bdd0eb54b4159e4d66d9f733b0f66697a2436 (diff)
party_menu fourth quarter
Diffstat (limited to 'asm')
-rw-r--r--asm/item_menu.s4
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/party_menu.s4264
-rw-r--r--asm/pokemon_special_anim.s6
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