mirror of
https://github.com/pret/pokeruby.git
synced 2026-09-08 02:56:24 -05:00
finish decompiling battle_party_menu
This commit is contained in:
@@ -1,620 +0,0 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "constants/species_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
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 @ =SetUpBattlePokemonMenu
|
||||
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 SetUpBattlePokemonMenu
|
||||
_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 BattlePokemonMenu_Cancel
|
||||
_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 BattlePokemonMenu_Cancel
|
||||
_080954D4:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080954D8: .4byte gUnknown_0202E8F6
|
||||
thumb_func_end sub_80954C0
|
||||
|
||||
thumb_func_start BattleShowPokemonSummaryScreen
|
||||
BattleShowPokemonSummaryScreen: @ 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 ShowPokemonSummaryScreen
|
||||
_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 BattleShowPokemonSummaryScreen
|
||||
|
||||
thumb_func_start BattlePokemonMenu_Summary
|
||||
BattlePokemonMenu_Summary: @ 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 @ =BattleShowPokemonSummaryScreen
|
||||
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 BattleShowPokemonSummaryScreen
|
||||
thumb_func_end BattlePokemonMenu_Summary
|
||||
|
||||
thumb_func_start BattlePokemonMenu_Shift
|
||||
BattlePokemonMenu_Shift: @ 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 BattlePokemonMenu_Shift
|
||||
|
||||
thumb_func_start BattlePokemonMenu_Cancel
|
||||
BattlePokemonMenu_Cancel: @ 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 BattlePokemonMenu_Cancel
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -775,7 +775,7 @@ _081223F2:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_806E81C
|
||||
bl PartyMenuGetPopupMenuFunc
|
||||
adds r1, r0, 0
|
||||
adds r0, r7, 0
|
||||
bl _call_via_r1
|
||||
@@ -2176,7 +2176,7 @@ _08122F12:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_806E81C
|
||||
bl PartyMenuGetPopupMenuFunc
|
||||
adds r1, r0, 0
|
||||
adds r0, r7, 0
|
||||
bl _call_via_r1
|
||||
|
||||
@@ -7430,8 +7430,8 @@ sub_806E7D0: @ 806E7D0
|
||||
bx r0
|
||||
thumb_func_end sub_806E7D0
|
||||
|
||||
thumb_func_start sub_806E81C
|
||||
sub_806E81C: @ 806E81C
|
||||
thumb_func_start PartyMenuGetPopupMenuFunc
|
||||
PartyMenuGetPopupMenuFunc: @ 806E81C
|
||||
lsls r0, 24
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -7444,7 +7444,7 @@ sub_806E81C: @ 806E81C
|
||||
adds r0, r2
|
||||
ldr r0, [r0, 0x4]
|
||||
bx lr
|
||||
thumb_func_end sub_806E81C
|
||||
thumb_func_end PartyMenuGetPopupMenuFunc
|
||||
|
||||
.section .text_806E884
|
||||
|
||||
|
||||
@@ -784,7 +784,7 @@ _0808A0A4:
|
||||
ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
|
||||
ldrb r3, [r0]
|
||||
movs r0, 0
|
||||
bl sub_806E81C
|
||||
bl PartyMenuGetPopupMenuFunc
|
||||
adds r1, r0, 0
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r1
|
||||
@@ -1648,7 +1648,7 @@ _0808A7B4:
|
||||
ldr r0, _0808A7EC @ =gUnknown_0202FFA8
|
||||
ldrb r3, [r0]
|
||||
movs r0, 0
|
||||
bl sub_806E81C
|
||||
bl PartyMenuGetPopupMenuFunc
|
||||
adds r1, r0, 0
|
||||
adds r0, r5, 0
|
||||
bl _call_via_r1
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_083B5FCC:: @ 83B5FCC
|
||||
.4byte OtherText_Summary, BattlePokemonMenu_Summary
|
||||
.4byte gOtherText_CancelNoTerminator, BattlePokemonMenu_Cancel
|
||||
.4byte OtherText_Shift, BattlePokemonMenu_Shift
|
||||
.4byte OtherText_SendOut, BattlePokemonMenu_Shift
|
||||
|
||||
Unknown_83B5FEC: @ 83B5FEC
|
||||
.byte 2, 0, 1
|
||||
|
||||
Unknown_83B5FEF: @ 83B5FEF
|
||||
.byte 3, 0, 1
|
||||
|
||||
Unknown_83B5FF2: @ 83B5FF2
|
||||
.byte 0, 1
|
||||
|
||||
.align 2
|
||||
gUnknown_083B5FF4:: @ 83B5FF4
|
||||
.byte 3, 9
|
||||
.space 2
|
||||
.4byte Unknown_83B5FEC
|
||||
|
||||
.byte 3, 9
|
||||
.space 2
|
||||
.4byte Unknown_83B5FEF
|
||||
|
||||
.byte 2, 9
|
||||
.space 2
|
||||
.4byte Unknown_83B5FF2
|
||||
@@ -133,7 +133,6 @@ SECTIONS {
|
||||
src/rom_8094928.o(.text);
|
||||
asm/rom_8094928.o(.text);
|
||||
src/battle_party_menu.o(.text);
|
||||
asm/battle_party_menu.o(.text);
|
||||
asm/pokemon_storage_system.o(.text);
|
||||
asm/pokemon_icon.o(.text);
|
||||
asm/pokemon_summary_screen.o(.text);
|
||||
@@ -351,7 +350,7 @@ SECTIONS {
|
||||
data/option_menu.o(.rodata);
|
||||
data/pokedex.o(.rodata);
|
||||
data/trainer_card.o(.rodata);
|
||||
data/battle_party_menu.o(.rodata);
|
||||
src/battle_party_menu.o(.rodata);
|
||||
data/pokemon_storage_system.o(.rodata);
|
||||
data/pokemon_icon.o(.rodata);
|
||||
data/pokemon_summary_screen.o(.rodata);
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
#include "global.h"
|
||||
#include "asm.h"
|
||||
#include "main.h"
|
||||
#include "menu.h"
|
||||
#include "palette.h"
|
||||
#include "pokemon.h"
|
||||
#include "songs.h"
|
||||
#include "sound.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
|
||||
struct PartyMenuItem
|
||||
{
|
||||
const u8 *text;
|
||||
void (*func)(void);
|
||||
TaskFunc func;
|
||||
};
|
||||
|
||||
struct UnknownStruct2
|
||||
struct PartyPopupMenu
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
@@ -33,7 +35,7 @@ extern void nullsub_13(void);
|
||||
extern void PartyMenuDrawHPBars(void);
|
||||
extern u8 sub_806B58C(u8);
|
||||
extern u8 GetItemEffectType();
|
||||
extern void sub_806E750(u8, const struct UnknownStruct2 *, const struct PartyMenuItem *, int);
|
||||
extern void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int);
|
||||
extern u16 sub_806BD80();
|
||||
extern u8 sub_806CA38();
|
||||
extern void sub_806D5A4(void);
|
||||
@@ -41,6 +43,22 @@ extern void sub_802E414(void);
|
||||
extern void sub_8094D60(void);
|
||||
extern void sub_80A6DCC(void);
|
||||
extern void sub_806AF4C();
|
||||
extern u8 sub_80F9344(void);
|
||||
extern u8 sub_806B124(void);
|
||||
extern void sub_806C994();
|
||||
extern void sub_806BF74();
|
||||
extern void sub_806AEDC(void);
|
||||
extern TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8);
|
||||
extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int);
|
||||
extern void sub_806E7D0(u8, const struct PartyPopupMenu *);
|
||||
extern u8 *sub_8040D08();
|
||||
extern void sub_806E834();
|
||||
extern u8 sub_8094C20();
|
||||
extern void sub_8040B8C(void);
|
||||
extern u8 pokemon_order_func(u8);
|
||||
extern void sub_8094C98(u8, u8);
|
||||
extern void sub_806E6F0();
|
||||
extern void sub_806D538();
|
||||
|
||||
struct UnknownStruct1
|
||||
{
|
||||
@@ -48,28 +66,65 @@ struct UnknownStruct1
|
||||
u8 unk259;
|
||||
u8 filler25A[6];
|
||||
u8 unk260;
|
||||
u8 filler261[3];
|
||||
u8 filler261[1];
|
||||
u8 unk262;
|
||||
s16 unk264;
|
||||
s16 unk266;
|
||||
};
|
||||
|
||||
extern u8 unk_2000000[];
|
||||
|
||||
#define EWRAM_1609D unk_2000000[0x1609D]
|
||||
#define EWRAM_1B000 (*(struct UnknownStruct1 *)(unk_2000000 + 0x1B000))
|
||||
|
||||
extern u16 gScriptItemId;
|
||||
extern u8 gPlayerPartyCount;
|
||||
extern u8 gUnknown_02024A68;
|
||||
extern u16 gUnknown_02024A6A[];
|
||||
extern u8 gUnknown_02024E6C;
|
||||
extern u8 gUnknown_0202E8F4;
|
||||
extern u8 gUnknown_0202E8F5;
|
||||
extern u8 gUnknown_0202E8F6;
|
||||
extern u8 gUnknown_02038473;
|
||||
extern u8 gUnknown_020384F0;
|
||||
extern void (*gUnknown_03004AE4)(); //don't know types yet
|
||||
extern const struct PartyMenuItem gUnknown_083B5FCC[];
|
||||
extern const struct UnknownStruct2 gUnknown_083B5FF4[];
|
||||
extern const u8 gOtherText_CantSwitchPokeWithYours[];
|
||||
extern const u8 gOtherText_NoEnergyLeft[];
|
||||
extern const u8 gOtherText_EGGCantBattle[];
|
||||
extern const u8 gOtherText_AlreadySelected[];
|
||||
extern const u8 gOtherText_CantBeSwitched[];
|
||||
extern const u8 gOtherText_AlreadyBattle[];
|
||||
extern const u8 OtherText_Summary[];
|
||||
extern const u8 gOtherText_CancelNoTerminator[];
|
||||
extern const u8 OtherText_Shift[];
|
||||
extern const u8 OtherText_SendOut[];
|
||||
|
||||
void sub_80952E4(u8);
|
||||
void sub_8095408(u8);
|
||||
void sub_809527C(u8);
|
||||
void sub_80952B4(u8);
|
||||
void sub_8095330(u8);
|
||||
void sub_809538C(void);
|
||||
static void Task_809527C(u8);
|
||||
static void Task_80952B4(u8);
|
||||
static void Task_80952E4(u8);
|
||||
static void Task_8095330(u8);
|
||||
static void Task_809538C(void);
|
||||
static void Task_HandlePopupMenuInput(u8);
|
||||
static void Task_BattlePartyMenuSummary(u8 taskId);
|
||||
static void Task_BattlePartyMenuShift(u8 taskId);
|
||||
static void Task_BattlePartyMenuCancel(u8 taskId);
|
||||
|
||||
static const struct PartyMenuItem sBattlePartyMenuActions[] =
|
||||
{
|
||||
{OtherText_Summary, Task_BattlePartyMenuSummary},
|
||||
{gOtherText_CancelNoTerminator, Task_BattlePartyMenuCancel},
|
||||
{OtherText_Shift, Task_BattlePartyMenuShift},
|
||||
{OtherText_SendOut, Task_BattlePartyMenuShift},
|
||||
};
|
||||
static const u8 Unknown_83B5FEC[] = {2, 0, 1}; //SHIFT, SUMMARY, CANCEL
|
||||
static const u8 Unknown_83B5FEF[] = {3, 0, 1}; //SEND OUT, SUMMARY, CANCEL
|
||||
static const u8 Unknown_83B5FF2[] = {0, 1}; //SUMMARY, CANCEL
|
||||
static const struct PartyPopupMenu sBattlePartyPopupMenus[] =
|
||||
{
|
||||
{ARRAY_COUNT(Unknown_83B5FEC), 9, Unknown_83B5FEC},
|
||||
{ARRAY_COUNT(Unknown_83B5FEF), 9, Unknown_83B5FEF},
|
||||
{ARRAY_COUNT(Unknown_83B5FF2), 9, Unknown_83B5FF2},
|
||||
};
|
||||
|
||||
int SetUpBattlePartyMenu(void)
|
||||
{
|
||||
@@ -92,7 +147,7 @@ int SetUpBattlePartyMenu(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (EWRAM_1B000.unk266 <= 5)
|
||||
if (EWRAM_1B000.unk266 < 6)
|
||||
{
|
||||
TryCreatePartyMenuMonIcon(EWRAM_1B000.unk260, EWRAM_1B000.unk266, &gPlayerParty[EWRAM_1B000.unk266]);
|
||||
EWRAM_1B000.unk266++;
|
||||
@@ -119,9 +174,7 @@ int SetUpBattlePartyMenu(void)
|
||||
EWRAM_1B000.unk264++;
|
||||
}
|
||||
else
|
||||
{
|
||||
EWRAM_1B000.unk266++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
PartyMenuPrintMonsLevelOrStatus();
|
||||
@@ -150,9 +203,7 @@ int SetUpBattlePartyMenu(void)
|
||||
EWRAM_1B000.unk264++;
|
||||
}
|
||||
else
|
||||
{
|
||||
EWRAM_1B000.unk266++;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if (gUnknown_02038473 == 3)
|
||||
@@ -167,7 +218,7 @@ int SetUpBattlePartyMenu(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8095050(u8 a, u8 b)
|
||||
static void sub_8095050(u8 a, u8 b)
|
||||
{
|
||||
if (!GetMonData(&gPlayerParty[b], MON_DATA_IS_EGG))
|
||||
{
|
||||
@@ -187,7 +238,7 @@ void sub_8095050(u8 a, u8 b)
|
||||
gTasks[EWRAM_1B000.unk260].data[4] = 2;
|
||||
gTasks[EWRAM_1B000.unk260].data[5] = 2;
|
||||
}
|
||||
sub_806E750(gTasks[a].data[4], gUnknown_083B5FF4, gUnknown_083B5FCC, 0);
|
||||
sub_806E750(gTasks[a].data[4], sBattlePartyPopupMenus, sBattlePartyMenuActions, 0);
|
||||
}
|
||||
|
||||
void SetUpBattlePokemonMenu(u8 a)
|
||||
@@ -196,7 +247,7 @@ void SetUpBattlePokemonMenu(u8 a)
|
||||
{
|
||||
if (gUnknown_02038473 == 3 && GetItemEffectType(gScriptItemId) == 10)
|
||||
{
|
||||
gUnknown_03004AE4(a, gScriptItemId, sub_80952E4);
|
||||
gUnknown_03004AE4(a, gScriptItemId, Task_80952E4);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -206,13 +257,11 @@ void SetUpBattlePokemonMenu(u8 a)
|
||||
if (gUnknown_02038473 == 3)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[sub_806CA38(a)], MON_DATA_IS_EGG))
|
||||
{
|
||||
PlaySE(SE_HAZURE);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_806D5A4();
|
||||
gUnknown_03004AE4(a, gScriptItemId, sub_80952E4);
|
||||
gUnknown_03004AE4(a, gScriptItemId, Task_80952E4);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -220,26 +269,24 @@ void SetUpBattlePokemonMenu(u8 a)
|
||||
PlaySE(SE_SELECT);
|
||||
GetMonNickname(&gPlayerParty[sub_806CA38(a)], gStringVar1);
|
||||
sub_8095050(a, sub_806CA38(a));
|
||||
SetTaskFuncWithFollowupFunc(a, sub_8095408, SetUpBattlePokemonMenu);
|
||||
SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gUnknown_02038473 == 1)
|
||||
{
|
||||
PlaySE(SE_HAZURE);
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
if (gUnknown_02038473 == 3)
|
||||
{
|
||||
gUnknown_0202E8F4 = 0;
|
||||
gTasks[a].func = sub_80952E4;
|
||||
gTasks[a].func = Task_80952E4;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_0202E8F4 = 0;
|
||||
gTasks[a].func = sub_809527C;
|
||||
gTasks[a].func = Task_809527C;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -247,13 +294,13 @@ void SetUpBattlePokemonMenu(u8 a)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809527C(u8 taskId)
|
||||
static void Task_809527C(u8 taskId)
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gTasks[taskId].func = sub_80952B4;
|
||||
gTasks[taskId].func = Task_80952B4;
|
||||
}
|
||||
|
||||
void sub_80952B4(u8 taskId)
|
||||
static void Task_80952B4(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -263,20 +310,18 @@ void sub_80952B4(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80952E4(u8 taskId)
|
||||
static void Task_80952E4(u8 taskId)
|
||||
{
|
||||
if (gUnknown_0202E8F4 != 0)
|
||||
{
|
||||
sub_809527C(taskId);
|
||||
}
|
||||
Task_809527C(taskId);
|
||||
else
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gTasks[taskId].func = sub_8095330;
|
||||
gTasks[taskId].func = Task_8095330;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8095330(u8 taskId)
|
||||
static void Task_8095330(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -286,9 +331,182 @@ void sub_8095330(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809535C(u8 taskId)
|
||||
static void Task_809535C(u8 taskId)
|
||||
{
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
sub_806AF4C(1, 0xFF, SetUpBattlePokemonMenu, 5);
|
||||
SetMainCallback2(sub_809538C);
|
||||
SetMainCallback2(Task_809538C);
|
||||
}
|
||||
|
||||
static void Task_809538C(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (sub_806B124() == 1)
|
||||
{
|
||||
sub_806C994(EWRAM_1B000.unk260, gUnknown_020384F0);
|
||||
sub_806BF74(EWRAM_1B000.unk260, 0);
|
||||
GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1);
|
||||
sub_8095050(EWRAM_1B000.unk260, gUnknown_020384F0);
|
||||
SetTaskFuncWithFollowupFunc(EWRAM_1B000.unk260, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu);
|
||||
SetMainCallback2(sub_806AEDC);
|
||||
return;
|
||||
}
|
||||
} while(sub_80F9344() != 1);
|
||||
}
|
||||
|
||||
static void Task_HandlePopupMenuInput(u8 taskId)
|
||||
{
|
||||
TaskFunc func;
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (gMain.newAndRepeatedKeys & DPAD_UP)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(-1);
|
||||
return;
|
||||
}
|
||||
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MoveMenuCursor(1);
|
||||
return;
|
||||
}
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
func = PartyMenuGetPopupMenuFunc(gTasks[taskId].data[4],
|
||||
sBattlePartyPopupMenus,
|
||||
sBattlePartyMenuActions,
|
||||
GetMenuCursorPos());
|
||||
func(taskId);
|
||||
return;
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
Task_BattlePartyMenuCancel(taskId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_80954C0(u8 taskId)
|
||||
{
|
||||
if (gUnknown_0202E8F6 == 0)
|
||||
Task_BattlePartyMenuCancel(taskId);
|
||||
}
|
||||
|
||||
static void Task_ShowSummaryScreen(u8 taskId)
|
||||
{
|
||||
u8 partySelection = sub_806CA38(taskId);
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
EWRAM_1B000.unk262 = 1;
|
||||
ShowPokemonSummaryScreen(gPlayerParty, partySelection, gPlayerPartyCount - 1, Task_809535C, 4);
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_BattlePartyMenuSummary(u8 taskId)
|
||||
{
|
||||
sub_806CA38(taskId); //an unused variable was probably set with this.
|
||||
gTasks[taskId].func = Task_ShowSummaryScreen;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
}
|
||||
|
||||
static void Task_BattlePartyMenuShift(u8 taskId)
|
||||
{
|
||||
u8 partySelection;
|
||||
u8 i;
|
||||
u8 r4;
|
||||
|
||||
sub_806E7D0(gTasks[taskId].data[4], sBattlePartyPopupMenus);
|
||||
partySelection = sub_806CA38(taskId);
|
||||
if (IsLinkDoubleBattle() == TRUE && (partySelection == 1 || partySelection == 4 || partySelection == 5))
|
||||
{
|
||||
sub_806D5A4();
|
||||
StringCopy(gStringVar1, sub_8040D08());
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_CantSwitchPokeWithYours);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
if (GetMonData(&gPlayerParty[partySelection], MON_DATA_HP) == 0)
|
||||
{
|
||||
sub_806D5A4();
|
||||
GetMonNickname(&gPlayerParty[partySelection], gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_NoEnergyLeft);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < gUnknown_02024A68; i++)
|
||||
{
|
||||
if (battle_side_get_owner(i) == 0
|
||||
&& sub_8094C20(partySelection) == gUnknown_02024A6A[i])
|
||||
{
|
||||
sub_806D5A4();
|
||||
GetMonNickname(&gPlayerParty[partySelection], gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_AlreadyBattle);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (GetMonData(&gPlayerParty[partySelection], MON_DATA_IS_EGG))
|
||||
{
|
||||
sub_806D5A4();
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_EGGCantBattle);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
if (sub_8094C20(partySelection) == EWRAM_1609D)
|
||||
{
|
||||
sub_806D5A4();
|
||||
GetMonNickname(&gPlayerParty[partySelection], gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_AlreadySelected);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
if (gUnknown_02038473 == 4)
|
||||
{
|
||||
sub_806D5A4();
|
||||
sub_8040B8C();
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
if (gUnknown_02038473 == 2)
|
||||
{
|
||||
u8 r0;
|
||||
u8 r4 = gUnknown_02024E6C;
|
||||
|
||||
sub_806D5A4();
|
||||
r0 = pokemon_order_func(gUnknown_02024A6A[r4]);
|
||||
GetMonNickname(&gPlayerParty[r0], gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gOtherText_CantBeSwitched);
|
||||
sub_806E834(gStringVar4, 0);
|
||||
gTasks[taskId].func = Task_80954C0;
|
||||
return;
|
||||
}
|
||||
gUnknown_0202E8F5 = sub_8094C20(partySelection);
|
||||
gUnknown_0202E8F4 = 1;
|
||||
r4 = pokemon_order_func(gUnknown_02024A6A[gUnknown_02024E6C]);
|
||||
sub_8094C98(r4, partySelection);
|
||||
sub_806E6F0(&gPlayerParty[r4], &gPlayerParty[partySelection]);
|
||||
gTasks[taskId].func = Task_809527C;
|
||||
}
|
||||
|
||||
static void Task_BattlePartyMenuCancel(u8 taskId)
|
||||
{
|
||||
sub_8072DEC();
|
||||
sub_806E7D0(gTasks[taskId].data[4], sBattlePartyPopupMenus);
|
||||
gTasks[taskId].data[4] = gTasks[taskId].data[5];
|
||||
sub_806D538(0, 0);
|
||||
SwitchTaskToFollowupFunc(taskId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user