diff options
Diffstat (limited to 'asm/battle_party_menu.s')
-rw-r--r-- | asm/battle_party_menu.s | 1263 |
1 files changed, 1263 insertions, 0 deletions
diff --git a/asm/battle_party_menu.s b/asm/battle_party_menu.s new file mode 100644 index 000000000..b97f946e1 --- /dev/null +++ b/asm/battle_party_menu.s @@ -0,0 +1,1263 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8094E58 +sub_8094E58: @ 8094E58 + push {r4,r5,lr} + ldr r1, _08094E78 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0xA + bls _08094E6E + b _08095048 +_08094E6E: + lsls r0, 2 + ldr r1, _08094E7C @ =_08094E80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094E78: .4byte 0x0201b000 +_08094E7C: .4byte _08094E80 + .align 2, 0 +_08094E80: + .4byte _08094EAC + .4byte _08094F28 + .4byte _08094F3C + .4byte _08094F4A + .4byte _08094F6C + .4byte _08094F80 + .4byte _08094F94 + .4byte _08094FA8 + .4byte _08094FBC + .4byte _08094FD0 + .4byte _08095000 +_08094EAC: + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094EDC + ldr r1, _08094ED4 @ =0x0201b000 + ldr r0, _08094ED8 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x6 + bne _08094EEC + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094ED4: .4byte 0x0201b000 +_08094ED8: .4byte 0x00000266 +_08094EDC: + ldr r1, _08094F10 @ =0x0201b000 + ldr r0, _08094F14 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x5 + bgt _08094F1C +_08094EEC: + movs r3, 0x98 + lsls r3, 2 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r1, r2, 24 + lsrs r1, 24 + movs r2, 0 + ldrsh r3, [r4, r2] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08094F18 @ =gPlayerParty + adds r2, r3 + bl TryCreatePartyMenuMonIcon + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _08095048 + .align 2, 0 +_08094F10: .4byte 0x0201b000 +_08094F14: .4byte 0x00000266 +_08094F18: .4byte gPlayerParty +_08094F1C: + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC +_08094F28: + bl LoadHeldItemIconGraphics + ldr r1, _08094F38 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F38: .4byte 0x0201b000 +_08094F3C: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl CreateHeldItemIcons_806DC34 + b _08094FE6 +_08094F4A: + movs r3, 0x98 + lsls r3, 2 + adds r0, r4, r3 + ldrb r0, [r0] + ldr r1, _08094F68 @ =0x00000266 + adds r5, r4, r1 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08094FE2 + b _08094FF8 + .align 2, 0 +_08094F68: .4byte 0x00000266 +_08094F6C: + bl PartyMenuPrintMonsLevelOrStatus + ldr r1, _08094F7C @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094F7C: .4byte 0x0201b000 +_08094F80: + bl PrintPartyMenuMonNicknames + ldr r1, _08094F90 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F90: .4byte 0x0201b000 +_08094F94: + bl PartyMenuTryPrintMonsHP + ldr r1, _08094FA4 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08094FEC + .align 2, 0 +_08094FA4: .4byte 0x0201b000 +_08094FA8: + bl nullsub_13 + ldr r1, _08094FB8 @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094FB8: .4byte 0x0201b000 +_08094FBC: + bl PartyMenuDrawHPBars + ldr r1, _08094FCC @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094FCC: .4byte 0x0201b000 +_08094FD0: + ldr r1, _08094FF4 @ =0x00000266 + adds r5, r4, r1 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094FF8 +_08094FE2: + movs r0, 0 + strh r0, [r5] +_08094FE6: + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 +_08094FEC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08095048 + .align 2, 0 +_08094FF4: .4byte 0x00000266 +_08094FF8: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _08095048 +_08095000: + ldr r0, _08095024 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0809503C + ldr r0, _08095028 @ =gScriptItemId + ldrh r0, [r0] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095034 + ldr r0, _0809502C @ =0x0201b000 + ldr r3, _08095030 @ =0x00000259 + adds r0, r3 + movs r1, 0xFF + strb r1, [r0] + b _0809503C + .align 2, 0 +_08095024: .4byte gUnknown_02038473 +_08095028: .4byte gScriptItemId +_0809502C: .4byte 0x0201b000 +_08095030: .4byte 0x00000259 +_08095034: + ldr r0, _08095040 @ =0x0201b000 + ldr r1, _08095044 @ =0x00000259 + adds r0, r1 + strb r4, [r0] +_0809503C: + movs r0, 0x1 + b _0809504A + .align 2, 0 +_08095040: .4byte 0x0201b000 +_08095044: .4byte 0x00000259 +_08095048: + movs r0, 0 +_0809504A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8094E58 + + thumb_func_start sub_8095050 +sub_8095050: @ 8095050 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809508C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r5, r0, 0 + cmp r5, 0 + bne _080950C8 + ldr r0, _08095090 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0809509C + ldr r3, _08095094 @ =gTasks + ldr r2, _08095098 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + b _080950DE + .align 2, 0 +_0809508C: .4byte gPlayerParty +_08095090: .4byte gUnknown_02038473 +_08095094: .4byte gTasks +_08095098: .4byte 0x0201b000 +_0809509C: + ldr r3, _080950C0 @ =gTasks + ldr r2, _080950C4 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x12] + b _080950EC + .align 2, 0 +_080950C0: .4byte gTasks +_080950C4: .4byte 0x0201b000 +_080950C8: + ldr r3, _08095108 @ =gTasks + ldr r2, _0809510C @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r4, 0x2 +_080950DE: + strh r4, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r4, [r0, 0x12] +_080950EC: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x10] + ldr r1, _08095110 @ =gUnknown_083B5FF4 + ldr r2, _08095114 @ =gUnknown_083B5FCC + movs r3, 0 + bl sub_806E750 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095108: .4byte gTasks +_0809510C: .4byte 0x0201b000 +_08095110: .4byte gUnknown_083B5FF4 +_08095114: .4byte gUnknown_083B5FCC + thumb_func_end sub_8095050 + + thumb_func_start sub_8095118 +sub_8095118: @ 8095118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095150 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809512C + b _08095268 +_0809512C: + ldr r0, _08095154 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08095164 + ldr r5, _08095158 @ =gScriptItemId + ldrh r0, [r5] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095164 + ldr r0, _0809515C @ =gUnknown_03004AE4 + ldrh r1, [r5] + ldr r2, _08095160 @ =sub_80952E4 + ldr r3, [r0] + b _080951AA + .align 2, 0 +_08095150: .4byte gPaletteFade +_08095154: .4byte gUnknown_02038473 +_08095158: .4byte gScriptItemId +_0809515C: .4byte gUnknown_03004AE4 +_08095160: .4byte sub_80952E4 +_08095164: + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08095178 + cmp r0, 0x2 + beq _08095214 + b _08095268 +_08095178: + ldr r0, _080951B4 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080951C8 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080951B8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809521C + bl sub_806D5A4 + ldr r3, _080951BC @ =gUnknown_03004AE4 + ldr r0, _080951C0 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _080951C4 @ =sub_80952E4 + ldr r3, [r3] +_080951AA: + adds r0, r4, 0 + bl _call_via_r3 + b _08095268 + .align 2, 0 +_080951B4: .4byte gUnknown_02038473 +_080951B8: .4byte gPlayerParty +_080951BC: .4byte gUnknown_03004AE4 +_080951C0: .4byte gScriptItemId +_080951C4: .4byte sub_80952E4 +_080951C8: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08095204 @ =gPlayerParty + adds r0, r1 + ldr r1, _08095208 @ =gStringVar1 + bl GetMonNickname + adds r0, r4, 0 + bl sub_806CA38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095050 + ldr r1, _0809520C @ =sub_8095408 + ldr r2, _08095210 @ =sub_8095118 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + b _08095268 + .align 2, 0 +_08095204: .4byte gPlayerParty +_08095208: .4byte gStringVar1 +_0809520C: .4byte sub_8095408 +_08095210: .4byte sub_8095118 +_08095214: + ldr r5, _08095224 @ =gUnknown_02038473 + ldrb r0, [r5] + cmp r0, 0x1 + bne _08095228 +_0809521C: + movs r0, 0x20 + bl PlaySE + b _08095268 + .align 2, 0 +_08095224: .4byte gUnknown_02038473 +_08095228: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r5] + cmp r0, 0x3 + bne _08095254 + ldr r1, _08095248 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _0809524C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095250 @ =sub_80952E4 + b _08095266 + .align 2, 0 +_08095248: .4byte gUnknown_0202E8F4 +_0809524C: .4byte gTasks +_08095250: .4byte sub_80952E4 +_08095254: + ldr r1, _08095270 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _08095274 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095278 @ =sub_809527C +_08095266: + str r1, [r0] +_08095268: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095270: .4byte gUnknown_0202E8F4 +_08095274: .4byte gTasks +_08095278: .4byte sub_809527C + thumb_func_end sub_8095118 + + thumb_func_start sub_809527C +sub_809527C: @ 809527C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080952AC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080952B0 @ =sub_80952B4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952AC: .4byte gTasks +_080952B0: .4byte sub_80952B4 + thumb_func_end sub_809527C + + thumb_func_start sub_80952B4 +sub_80952B4: @ 80952B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080952D6 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080952E0 @ =sub_802E414 + bl SetMainCallback2 +_080952D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952DC: .4byte gPaletteFade +_080952E0: .4byte sub_802E414 + thumb_func_end sub_80952B4 + + thumb_func_start sub_80952E4 +sub_80952E4: @ 80952E4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952FC @ =gUnknown_0202E8F4 + ldrb r1, [r0] + cmp r1, 0 + beq _08095300 + adds r0, r4, 0 + bl sub_809527C + b _0809531E + .align 2, 0 +_080952FC: .4byte gUnknown_0202E8F4 +_08095300: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08095328 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809532C @ =sub_8095330 + str r1, [r0] +_0809531E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095328: .4byte gTasks +_0809532C: .4byte sub_8095330 + thumb_func_end sub_80952E4 + + thumb_func_start sub_8095330 +sub_8095330: @ 8095330 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095358 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095350 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + bl sub_80A6DCC +_08095350: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095358: .4byte gPaletteFade + thumb_func_end sub_8095330 + + thumb_func_start sub_809535C +sub_809535C: @ 809535C + push {lr} + ldr r2, _08095380 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _08095384 @ =sub_8095118 + movs r0, 0x1 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08095388 @ =sub_809538C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08095380: .4byte gPaletteFade +_08095384: .4byte sub_8095118 +_08095388: .4byte sub_809538C + thumb_func_end sub_809535C + + thumb_func_start sub_809538C +sub_809538C: @ 809538C + push {r4,r5,lr} + ldr r4, _080953D8 @ =0x0201b260 + ldr r5, _080953DC @ =gUnknown_020384F0 +_08095392: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080953F4 + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080953E0 @ =gPlayerParty + adds r0, r1 + ldr r1, _080953E4 @ =gStringVar1 + bl GetMonNickname + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_8095050 + ldrb r0, [r4] + ldr r1, _080953E8 @ =sub_8095408 + ldr r2, _080953EC @ =sub_8095118 + bl SetTaskFuncWithFollowupFunc + ldr r0, _080953F0 @ =sub_806AEDC + bl SetMainCallback2 + b _08095400 + .align 2, 0 +_080953D8: .4byte 0x0201b260 +_080953DC: .4byte gUnknown_020384F0 +_080953E0: .4byte gPlayerParty +_080953E4: .4byte gStringVar1 +_080953E8: .4byte sub_8095408 +_080953EC: .4byte sub_8095118 +_080953F0: .4byte sub_806AEDC +_080953F4: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095392 +_08095400: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_809538C + + thumb_func_start sub_8095408 +sub_8095408: @ 8095408 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _0809543C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080954B8 + ldr r2, _08095440 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095444 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080954B8 + .align 2, 0 +_0809543C: .4byte gPaletteFade +_08095440: .4byte gMain +_08095444: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0809545A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080954B8 +_0809545A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080954A4 + movs r0, 0x5 + bl PlaySE + ldr r1, _08095498 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _0809549C @ =gUnknown_083B5FF4 + ldr r6, _080954A0 @ =gUnknown_083B5FCC + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _080954B8 + .align 2, 0 +_08095498: .4byte gTasks +_0809549C: .4byte gUnknown_083B5FF4 +_080954A0: .4byte gUnknown_083B5FCC +_080954A4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080954B8 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80958C4 +_080954B8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095408 + + thumb_func_start sub_80954C0 +sub_80954C0: @ 80954C0 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080954D8 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _080954D4 + adds r0, r1, 0 + bl sub_80958C4 +_080954D4: + pop {r0} + bx r0 + .align 2, 0 +_080954D8: .4byte gUnknown_0202E8F6 + thumb_func_end sub_80954C0 + + thumb_func_start sub_80954DC +sub_80954DC: @ 80954DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0809552C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095522 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08095530 @ =0x0201b000 + ldr r1, _08095534 @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08095538 @ =gPlayerParty + ldr r1, _0809553C @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08095540 @ =sub_809535C + movs r1, 0x4 + str r1, [sp] + adds r1, r5, 0 + bl sub_809D8BC +_08095522: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809552C: .4byte gPaletteFade +_08095530: .4byte 0x0201b000 +_08095534: .4byte 0x00000262 +_08095538: .4byte gPlayerParty +_0809553C: .4byte gPlayerPartyCount +_08095540: .4byte sub_809535C + thumb_func_end sub_80954DC + + thumb_func_start sub_8095544 +sub_8095544: @ 8095544 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0809557C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095580 @ =sub_80954DC + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809557C: .4byte gTasks +_08095580: .4byte sub_80954DC + thumb_func_end sub_8095544 + + thumb_func_start sub_8095584 +sub_8095584: @ 8095584 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + ldr r1, _080955FC @ =gUnknown_083B5FF4 + bl sub_806E7D0 + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095610 + cmp r5, 0x1 + beq _080955C6 + cmp r5, 0x4 + beq _080955C6 + cmp r5, 0x5 + bne _08095610 +_080955C6: + bl sub_806D5A4 + ldr r4, _08095600 @ =gStringVar1 + bl sub_8040D08 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _08095604 @ =gStringVar4 + ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809560C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080955F8: .4byte gTasks +_080955FC: .4byte gUnknown_083B5FF4 +_08095600: .4byte gStringVar1 +_08095604: .4byte gStringVar4 +_08095608: .4byte gOtherText_CantSwitchPokeWithYours +_0809560C: .4byte sub_80954C0 +_08095610: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095654 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _0809566C + bl sub_806D5A4 + ldr r1, _08095658 @ =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r4, _0809565C @ =gStringVar4 + ldr r1, _08095660 @ =gOtherText_NoEnergyLeft + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095664 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095668 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095654: .4byte gPlayerParty +_08095658: .4byte gStringVar1 +_0809565C: .4byte gStringVar4 +_08095660: .4byte gOtherText_NoEnergyLeft +_08095664: .4byte gTasks +_08095668: .4byte sub_80954C0 +_0809566C: + movs r4, 0 + ldr r0, _08095678 @ =gUnknown_02024A68 + lsls r1, r6, 2 + mov r8, r1 + b _080956A8 + .align 2, 0 +_08095678: .4byte gUnknown_02024A68 +_0809567C: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080956A0 + adds r0, r5, 0 + bl sub_8094C20 + lsls r0, 24 + ldr r2, _080956EC @ =gUnknown_02024A6A + lsls r1, r4, 1 + adds r1, r2 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _080956A0 + b _08095808 +_080956A0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080956F0 @ =gUnknown_02024A68 +_080956A8: + ldrb r0, [r0] + cmp r4, r0 + bcc _0809567C + movs r2, 0x64 + mov r9, r2 + mov r0, r9 + muls r0, r5 + ldr r1, _080956F4 @ =gPlayerParty + mov r10, r1 + adds r7, r0, r1 + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08095708 + bl sub_806D5A4 + ldr r4, _080956F8 @ =gStringVar4 + ldr r1, _080956FC @ =gOtherText_EGGCantBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095700 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095704 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080956EC: .4byte gUnknown_02024A6A +_080956F0: .4byte gUnknown_02024A68 +_080956F4: .4byte gPlayerParty +_080956F8: .4byte gStringVar4 +_080956FC: .4byte gOtherText_EGGCantBattle +_08095700: .4byte gTasks +_08095704: .4byte sub_80954C0 +_08095708: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _0809574C @ =0x02000000 + ldr r2, _08095750 @ =0x0001609d + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08095768 + bl sub_806D5A4 + ldr r1, _08095754 @ =gStringVar1 + adds r0, r7, 0 + bl GetMonNickname + ldr r4, _08095758 @ =gStringVar4 + ldr r1, _0809575C @ =gOtherText_AlreadySelected + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095760 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095764 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809574C: .4byte 0x02000000 +_08095750: .4byte 0x0001609d +_08095754: .4byte gStringVar1 +_08095758: .4byte gStringVar4 +_0809575C: .4byte gOtherText_AlreadySelected +_08095760: .4byte gTasks +_08095764: .4byte sub_80954C0 +_08095768: + ldr r0, _08095790 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x4 + bne _080957A0 + bl sub_806D5A4 + bl sub_8040B8C + ldr r0, _08095794 @ =gStringVar4 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095798 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809579C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095790: .4byte gUnknown_02038473 +_08095794: .4byte gStringVar4 +_08095798: .4byte gTasks +_0809579C: .4byte sub_80954C0 +_080957A0: + cmp r0, 0x2 + bne _08095854 + ldr r0, _080957EC @ =gUnknown_02024E6C + ldrb r4, [r0] + bl sub_806D5A4 + ldr r0, _080957F0 @ =gUnknown_02024A6A + lsls r4, 1 + adds r4, r0 + ldrb r0, [r4] + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r10 + ldr r1, _080957F4 @ =gStringVar1 + bl GetMonNickname + ldr r4, _080957F8 @ =gStringVar4 + ldr r1, _080957FC @ =gOtherText_CantBeSwitched + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095800 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095804 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080957EC: .4byte gUnknown_02024E6C +_080957F0: .4byte gUnknown_02024A6A +_080957F4: .4byte gStringVar1 +_080957F8: .4byte gStringVar4 +_080957FC: .4byte gOtherText_CantBeSwitched +_08095800: .4byte gTasks +_08095804: .4byte sub_80954C0 +_08095808: + bl sub_806D5A4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809583C @ =gPlayerParty + adds r0, r1 + ldr r1, _08095840 @ =gStringVar1 + bl GetMonNickname + ldr r4, _08095844 @ =gStringVar4 + ldr r1, _08095848 @ =gOtherText_AlreadyBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _0809584C @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095850 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809583C: .4byte gPlayerParty +_08095840: .4byte gStringVar1 +_08095844: .4byte gStringVar4 +_08095848: .4byte gOtherText_AlreadyBattle +_0809584C: .4byte gTasks +_08095850: .4byte sub_80954C0 +_08095854: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _080958AC @ =gUnknown_0202E8F5 + strb r0, [r1] + ldr r1, _080958B0 @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080958B4 @ =gUnknown_02024A6A + ldr r0, _080958B8 @ =gUnknown_02024E6C + 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 sub_8094C98 + mov r0, r9 + muls r0, r4 + add r0, r10 + adds r1, r7, 0 + bl sub_806E6F0 + ldr r1, _080958BC @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080958C0 @ =sub_809527C +_0809589A: + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080958AC: .4byte gUnknown_0202E8F5 +_080958B0: .4byte gUnknown_0202E8F4 +_080958B4: .4byte gUnknown_02024A6A +_080958B8: .4byte gUnknown_02024E6C +_080958BC: .4byte gTasks +_080958C0: .4byte sub_809527C + thumb_func_end sub_8095584 + + thumb_func_start sub_80958C4 +sub_80958C4: @ 80958C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072DEC + ldr r0, _080958FC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldr r1, _08095900 @ =gUnknown_083B5FF4 + bl sub_806E7D0 + ldrh r0, [r4, 0x12] + strh r0, [r4, 0x10] + movs r0, 0 + movs r1, 0 + bl sub_806D538 + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080958FC: .4byte gTasks +_08095900: .4byte gUnknown_083B5FF4 + thumb_func_end sub_80958C4 + + .align 2, 0 @ Don't pad with nop. |