summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-12-13 14:09:11 -0600
committercamthesaxman <cameronghall@cox.net>2017-12-13 14:09:11 -0600
commit5952bd74dc098104ef11764ba70e8181523f406e (patch)
tree6a74c1f5bc806757e6cd2245024b25f5fdbc75f8
parent90eec979c948c480772549f6ec05a76b4f4cb605 (diff)
decompile sub_80ABEA0 - sub_80AC284
-rw-r--r--asm/contest.s506
-rw-r--r--src/contest.c208
-rw-r--r--src/pokemon/pokemon_summary_screen.c7
3 files changed, 202 insertions, 519 deletions
diff --git a/asm/contest.s b/asm/contest.s
index 331aff071..5b8083b57 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -5,512 +5,6 @@
.text
- thumb_func_start sub_80ABEA0
-sub_80ABEA0: @ 80ABEA0
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r3, _080ABEF4 @ =gMain
- ldr r1, _080ABEF8 @ =gContestMons
- ldr r0, _080ABEFC @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, 0x1E
- adds r1, r0, r1
- movs r2, 0x3
-_080ABEBA:
- ldrh r0, [r1]
- cmp r0, 0
- beq _080ABEC6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080ABEC6:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080ABEBA
- ldrh r0, [r3, 0x2E]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- beq _080ABF08
- bl DestroyMenuCursor
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ABF00 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ABF04 @ =sub_80AC0C8
- str r0, [r1]
- b _080AC098
- .align 2, 0
-_080ABEF4: .4byte gMain
-_080ABEF8: .4byte gContestMons
-_080ABEFC: .4byte gContestPlayerMonIndex
-_080ABF00: .4byte gTasks
-_080ABF04: .4byte sub_80AC0C8
-_080ABF08:
- ldrh r0, [r3, 0x30]
- cmp r0, 0x20
- bne _080ABF10
- b _080AC098
-_080ABF10:
- cmp r0, 0x20
- bgt _080ABF1A
- cmp r0, 0x2
- beq _080ABF26
- b _080AC098
-_080ABF1A:
- cmp r0, 0x40
- beq _080ABFEC
- cmp r0, 0x80
- bne _080ABF24
- b _080AC048
-_080ABF24:
- b _080AC098
-_080ABF26:
- bl sub_814A904
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80AFFE0
- ldr r0, _080ABF64 @ =gUnknown_03004210
- ldr r1, _080ABF68 @ =gUnknown_083CA340
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- ldrb r4, [r1, 0x2]
- str r4, [sp]
- ldrb r1, [r1, 0x3]
- str r1, [sp, 0x4]
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, _080ABF6C @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080ABF78
- ldr r0, _080ABF70 @ =gDisplayedStringBattle
- ldr r1, _080ABF74 @ =gUnknown_083CAF84
- bl StringCopy
- b _080ABF80
- .align 2, 0
-_080ABF64: .4byte gUnknown_03004210
-_080ABF68: .4byte gUnknown_083CA340
-_080ABF6C: .4byte gContestPlayerMonIndex
-_080ABF70: .4byte gDisplayedStringBattle
-_080ABF74: .4byte gUnknown_083CAF84
-_080ABF78:
- ldr r0, _080ABFC8 @ =gDisplayedStringBattle
- ldr r1, _080ABFCC @ =gUnknown_083CAFAE
- bl StringCopy
-_080ABF80:
- ldr r5, _080ABFC8 @ =gDisplayedStringBattle
- ldr r0, _080ABFD0 @ =gSharedMem + 0x19204
- ldrb r1, [r0, 0x1]
- adds r1, 0x1
- adds r0, r5, 0
- bl sub_80AE020
- bl sub_80AF138
- ldr r4, _080ABFD4 @ =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringExpandPlaceholders
- ldr r0, _080ABFD8 @ =gMenuWindow
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8003460
- ldr r0, _080ABFDC @ =gUnknown_030042A0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080ABFE0 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r1, _080ABFE4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ABFE8 @ =sub_80ABC70
- str r1, [r0]
- b _080AC098
- .align 2, 0
-_080ABFC8: .4byte gDisplayedStringBattle
-_080ABFCC: .4byte gUnknown_083CAFAE
-_080ABFD0: .4byte gSharedMem + 0x19204
-_080ABFD4: .4byte gStringVar4
-_080ABFD8: .4byte gMenuWindow
-_080ABFDC: .4byte gUnknown_030042A0
-_080ABFE0: .4byte gUnknown_03004280
-_080ABFE4: .4byte gTasks
-_080ABFE8: .4byte sub_80ABC70
-_080ABFEC:
- ldr r4, _080AC000 @ =gSharedMem + 0x19204
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl nullsub_17
- ldrb r0, [r4]
- cmp r0, 0
- bne _080AC004
- subs r0, r6, 0x1
- b _080AC006
- .align 2, 0
-_080AC000: .4byte gSharedMem + 0x19204
-_080AC004:
- subs r0, 0x1
-_080AC006:
- strb r0, [r4]
- ldr r4, _080AC03C @ =gSharedMem + 0x19204
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl sub_80AC0AC
- bl sub_80AED58
- ldr r2, _080AC040 @ =gContestMons
- ldrb r1, [r4]
- lsls r1, 1
- ldr r0, _080AC044 @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl sub_80AEBEC
- cmp r6, 0x1
- bls _080AC098
- movs r0, 0x5
- bl PlaySE
- b _080AC098
- .align 2, 0
-_080AC03C: .4byte gSharedMem + 0x19204
-_080AC040: .4byte gContestMons
-_080AC044: .4byte gContestPlayerMonIndex
-_080AC048:
- ldr r4, _080AC060 @ =gSharedMem + 0x19204
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl nullsub_17
- ldrb r1, [r4]
- subs r0, r6, 0x1
- cmp r1, r0
- bne _080AC064
- strb r5, [r4]
- b _080AC068
- .align 2, 0
-_080AC060: .4byte gSharedMem + 0x19204
-_080AC064:
- adds r0, r1, 0x1
- strb r0, [r4]
-_080AC068:
- ldr r4, _080AC0A0 @ =gSharedMem + 0x19204
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl sub_80AC0AC
- bl sub_80AED58
- ldr r2, _080AC0A4 @ =gContestMons
- ldrb r1, [r4]
- lsls r1, 1
- ldr r0, _080AC0A8 @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl sub_80AEBEC
- cmp r6, 0x1
- bls _080AC098
- movs r0, 0x5
- bl PlaySE
-_080AC098:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC0A0: .4byte gSharedMem + 0x19204
-_080AC0A4: .4byte gContestMons
-_080AC0A8: .4byte gContestPlayerMonIndex
- thumb_func_end sub_80ABEA0
-
- thumb_func_start sub_80AC0AC
-sub_80AC0AC: @ 80AC0AC
- push {lr}
- adds r1, r0, 0
- lsls r1, 28
- movs r0, 0xB0
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x4
- bl sub_814A880
- pop {r0}
- bx r0
- thumb_func_end sub_80AC0AC
-
- thumb_func_start nullsub_17
-nullsub_17: @ 80AC0C4
- bx lr
- thumb_func_end nullsub_17
-
- thumb_func_start sub_80AC0C8
-sub_80AC0C8: @ 80AC0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080AC120 @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AC13C
- ldr r4, _080AC124 @ =gContestPlayerMonIndex
- ldrb r0, [r4]
- bl sub_80AF15C
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r2, _080AC128 @ =gSharedMem + 0x19260
- adds r1, r2
- strh r0, [r1, 0x6]
- ldr r4, _080AC12C @ =sub_80C8A38
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC130 @ =sub_80AC15C
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080AC134 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080AC138 @ =nullsub_89
- str r1, [r0]
- bl sub_80AF860
- movs r0, 0
- bl sub_80AFFE0
- b _080AC14E
- .align 2, 0
-_080AC120: .4byte gIsLinkContest
-_080AC124: .4byte gContestPlayerMonIndex
-_080AC128: .4byte gSharedMem + 0x19260
-_080AC12C: .4byte sub_80C8A38
-_080AC130: .4byte sub_80AC15C
-_080AC134: .4byte gTasks
-_080AC138: .4byte nullsub_89
-_080AC13C:
- bl sub_80AF1B8
- ldr r0, _080AC154 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AC158 @ =sub_80AC188
- str r0, [r1]
-_080AC14E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC154: .4byte gTasks
-_080AC158: .4byte sub_80AC188
- thumb_func_end sub_80AC0C8
-
- thumb_func_start sub_80AC15C
-sub_80AC15C: @ 80AC15C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r2, _080AC17C @ =gTasks
- ldr r0, _080AC180 @ =gSharedMem + 0x19204
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080AC184 @ =sub_80AC188
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080AC17C: .4byte gTasks
-_080AC180: .4byte gSharedMem + 0x19204
-_080AC184: .4byte sub_80AC188
- thumb_func_end sub_80AC15C
-
- thumb_func_start sub_80AC188
-sub_80AC188: @ 80AC188
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_80AF138
- ldr r0, _080AC1E4 @ =gUnknown_030042A0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AC1E8 @ =gUnknown_03004280
- strh r1, [r0]
- movs r0, 0
- bl sub_80AFFE0
- ldr r1, _080AC1EC @ =gPlttBufferFaded
- ldr r0, _080AC1F0 @ =gSharedMem + 0x18604
- movs r2, 0x80
- lsls r2, 3
- ldr r4, _080AC1F4 @ =0x040000d4
- str r1, [r4]
- str r0, [r4, 0x4]
- lsrs r1, r2, 2
- movs r3, 0x84
- lsls r3, 24
- orrs r1, r3
- str r1, [r4, 0x8]
- ldr r1, [r4, 0x8]
- ldr r1, _080AC1F8 @ =0xfffffc00
- adds r0, r1
- movs r1, 0
- bl LoadPalette
- ldr r1, _080AC1FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, _080AC200 @ =sub_80AC204
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC1E4: .4byte gUnknown_030042A0
-_080AC1E8: .4byte gUnknown_03004280
-_080AC1EC: .4byte gPlttBufferFaded
-_080AC1F0: .4byte gSharedMem + 0x18604
-_080AC1F4: .4byte 0x040000d4
-_080AC1F8: .4byte 0xfffffc00
-_080AC1FC: .4byte gTasks
-_080AC200: .4byte sub_80AC204
- thumb_func_end sub_80AC188
-
- thumb_func_start sub_80AC204
-sub_80AC204: @ 80AC204
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC248 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC242
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AC242
- bl sub_80B1BDC
- movs r0, 0x1
- bl sub_80B25E4
- ldr r0, _080AC24C @ =sub_80AC250
- str r0, [r4]
-_080AC242:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC248: .4byte gTasks
-_080AC24C: .4byte sub_80AC250
- thumb_func_end sub_80AC204
-
- thumb_func_start sub_80AC250
-sub_80AC250: @ 80AC250
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080AC278 @ =gSharedMem + 0x19204
- ldrh r1, [r0, 0x6]
- movs r0, 0x90
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _080AC272
- ldr r0, _080AC27C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AC280 @ =sub_80AC284
- str r0, [r1]
-_080AC272:
- pop {r0}
- bx r0
- .align 2, 0
-_080AC278: .4byte gSharedMem + 0x19204
-_080AC27C: .4byte gTasks
-_080AC280: .4byte sub_80AC284
- thumb_func_end sub_80AC250
-
- thumb_func_start sub_80AC284
-sub_80AC284: @ 80AC284
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC2BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080AC2B6
- ldr r1, _080AC2C0 @ =gSharedMem + 0x19204
- movs r0, 0
- strb r0, [r1, 0x10]
- ldr r0, _080AC2C4 @ =gRngValue
- ldr r0, [r0]
- str r0, [r1, 0x18]
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, _080AC2C8 @ =sub_80AC2CC
- str r0, [r2]
-_080AC2B6:
- pop {r0}
- bx r0
- .align 2, 0
-_080AC2BC: .4byte gTasks
-_080AC2C0: .4byte gSharedMem + 0x19204
-_080AC2C4: .4byte gRngValue
-_080AC2C8: .4byte sub_80AC2CC
- thumb_func_end sub_80AC284
-
thumb_func_start sub_80AC2CC
sub_80AC2CC: @ 80AC2CC
push {r4-r7,lr}
diff --git a/src/contest.c b/src/contest.c
index 34c66c66c..c6ef5774d 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -20,13 +20,15 @@
#include "unknown_task.h"
extern bool8 AreMovesContestCombo(u16, u16);
+extern void sub_80C8A38(u8);
struct Shared18000
{
/*0x18000*/ u8 unk18000;
/*0x18001*/ u8 filler18001[3];
/*0x18004*/ u16 unk18004[16][16];
- /*0x18204*/ u8 unk18204[0xA04-0x204];
+ /*0x18204*/ u16 unk18204[0x200];
+ /*0x18604*/ u16 unk18604[0x200];
/*0x18A04*/ u8 unk18A04[0x800];
};
@@ -35,19 +37,26 @@ struct Shared19204
/*0x19204*/ u8 unk19204;
/*0x19205*/ u8 unk19205;
/*0x19206*/ u8 unk19206[4];
- /*0x1920A*/ u8 unk1920A;
- /*0x1920B*/ u8 filler1920B;
+ /*0x1920A*/ u16 unk1920A_0:6;
+ u16 unk1920A_6:1;
+ u16 unk1920A_7:2;
+ u16 unk1920B_1:1;
/*0x1920C*/ u8 unk1920C;
- /*0x1920D*/ u8 filler1920D[0x16-0xD];
+ /*0x1920D*/ u8 filler1920D[0x14-0xD];
+ /*0x19214*/ u8 unk19214;
+ /*0x19215*/ u8 unk19215;
/*0x19216*/ u8 unk19216;
/*0x19217*/ u8 filler19217;
- /*0x19218*/ u8 unk19218[0x5D-0x18];
+ /*0x19218*/ u8 unk19218[4];
+ /*0x1921C*/ u32 unk1921C;
+ u8 filler19220[0x5D-0x20];
/*0x1925D*/ u8 unk1925D[3];
};
struct UnknownContestStruct1
{
- u8 filler0[8];
+ u8 filler0[6];
+ u16 unk6;
u16 unk8;
u8 fillerA;
u8 unkB_0:2;
@@ -81,7 +90,7 @@ extern u8 gBankAttacker;
extern u8 gBankTarget;
extern u8 gBanksBySide[];
extern u8 gObjectBankIDs[];
-extern bool8 gIsLinkContest;
+extern u8 gIsLinkContest;
extern u8 gContestPlayerMonIndex;
extern u16 gUnknown_030041B0;
extern s16 gUnknown_030041B4;
@@ -122,13 +131,23 @@ void sub_80ABC70(u8);
void sub_80ABCDC(u8);
void sub_80ABEA0(u8);
void sub_80AC0AC(s8);
+void nullsub_17(s8);
void sub_80AC0C8(u8);
+void sub_80AC15C(u8);
+void sub_80AC188(u8);
+void sub_80AC204(u8);
+void sub_80AC250(u8);
+void sub_80AC284(u8);
+void sub_80AC2CC(u8);
void sub_80AE020();
u8 sub_80AE858(void);
u8 sub_80AE8B4(void);
void sub_80AEB30(void);
void sub_80AEBEC(u16);
+void sub_80AED58(void);
void sub_80AF138(void);
+u16 sub_80AF15C(u8);
+void sub_80AF1B8(void);
u8 sub_80AF59C(u8);
void sub_80AF860(void);
void sub_80AFA5C(void);
@@ -142,11 +161,14 @@ void sub_80B0D7C(void);
void sub_80B1118(void);
void sub_80B159C(void);
void sub_80B1B14(void);
+void sub_80B1BDC(void);
u8 sub_80B214C(u8);
void sub_80B2184(void);
void sub_80B2280(void);
+void sub_80B25E4();
void sub_80B292C(void);
+
void nullsub_89(u8 taskId)
{
}
@@ -400,8 +422,6 @@ u8 sub_80AB70C(u8 *a)
break;
case 4:
LZDecompressVram(gUnknown_08D17424, (void *)(VRAM + 0xE000));
- //DmaCopy32(3, (void *)(VRAM + 0xE000), shared18000.unk18A04, 0x800);
- //asm("");
{
void *src = (void *)(VRAM + 0xE000);
void *dest = shared18000.unk18A04;
@@ -490,7 +510,7 @@ void sub_80AB9A0(u8 taskId)
break;
case 4:
default:
- if (shared19204.unk1920A & 0x40)
+ if (shared19204.unk1920A_6)
break;
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
@@ -854,3 +874,171 @@ _080ABE9C: .4byte sub_80ABEA0\n\
.syntax divided\n");
}
#endif
+
+void sub_80ABEA0(u8 taskId)
+{
+ u8 r6 = 0;
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gContestMons[gContestPlayerMonIndex].moves[i] != 0)
+ r6++;
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ DestroyMenuCursor();
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = sub_80AC0C8;
+ }
+ else
+ {
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case B_BUTTON:
+ sub_814A904();
+ PlaySE(SE_SELECT);
+ sub_80AFFE0(0);
+ FillWindowRect_DefaultPalette(
+ &gUnknown_03004210,
+ 0,
+ gUnknown_083CA340[0][0],
+ gUnknown_083CA340[0][1],
+ gUnknown_083CA340[0][2],
+ gUnknown_083CA340[0][3]);
+ if (sub_80AF59C(gContestPlayerMonIndex) == 0)
+ StringCopy(gDisplayedStringBattle, gUnknown_083CAF84);
+ else
+ StringCopy(gDisplayedStringBattle, gUnknown_083CAFAE);
+ sub_80AE020(gDisplayedStringBattle, shared19204.unk19205 + 1);
+ sub_80AF138();
+ StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
+ sub_8003460(&gMenuWindow, gStringVar4, 776, 1, 15);
+ gUnknown_030042A0 = 0;
+ gUnknown_03004280 = 0;
+ gTasks[taskId].func = sub_80ABC70;
+ break;
+ case DPAD_LEFT:
+ case DPAD_RIGHT:
+ break;
+ case DPAD_UP:
+ nullsub_17(shared19204.unk19204);
+ if (shared19204.unk19204 == 0)
+ shared19204.unk19204 = r6 - 1;
+ else
+ shared19204.unk19204--;
+ sub_80AC0AC(shared19204.unk19204);
+ sub_80AED58();
+ sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[shared19204.unk19204]);
+ if (r6 > 1)
+ PlaySE(SE_SELECT);
+ break;
+ case DPAD_DOWN:
+ nullsub_17(shared19204.unk19204);
+ if (shared19204.unk19204 == r6 - 1)
+ shared19204.unk19204 = 0;
+ else
+ shared19204.unk19204++;
+ sub_80AC0AC(shared19204.unk19204);
+ sub_80AED58();
+ sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[shared19204.unk19204]);
+ if (r6 > 1)
+ PlaySE(SE_SELECT);
+ break;
+ }
+ }
+}
+
+void sub_80AC0AC(s8 a)
+{
+ sub_814A880(4, 88 + a * 16);
+}
+
+void nullsub_17(s8 a)
+{
+}
+
+void sub_80AC0C8(u8 taskId)
+{
+ if (gIsLinkContest & 1)
+ {
+ u16 var = sub_80AF15C(gContestPlayerMonIndex);
+ struct UnknownContestStruct1 *s = &shared19260.unk19260[gContestPlayerMonIndex];
+ u8 taskId2;
+
+ s->unk6 = var;
+ taskId2 = CreateTask(sub_80C8A38, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80C8A38, sub_80AC15C);
+ gTasks[taskId].func = nullsub_89;
+ sub_80AF860();
+ sub_80AFFE0(0);
+ }
+ else
+ {
+ sub_80AF1B8();
+ gTasks[taskId].func = sub_80AC188;
+ }
+}
+
+void sub_80AC15C(u8 taskId)
+{
+ DestroyTask(taskId);
+ gTasks[shared19204.unk1920C].func = sub_80AC188;
+}
+
+void sub_80AC188(u8 taskId)
+{
+ sub_80AF138();
+ gUnknown_030042A0 = 0;
+ gUnknown_03004280 = 0;
+ sub_80AFFE0(0);
+ {
+ void *src = gPlttBufferFaded;
+ void *dest = shared18000.unk18604;
+ u32 size = 0x400;
+ DmaCopy32(3, src, dest, size);
+ }
+ LoadPalette(shared18000.unk18204, 0, 0x400);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80AC204;
+}
+
+void sub_80AC204(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] > 2)
+ {
+ gTasks[taskId].data[0] = 0;
+ if (++gTasks[taskId].data[1] == 2)
+ {
+ sub_80B1BDC();
+ sub_80B25E4(1);
+ gTasks[taskId].func = sub_80AC250;
+ }
+ }
+}
+
+void sub_80AC250(u8 taskId)
+{
+ if (!shared19204.unk1920A_6 && !shared19204.unk1920B_1)
+ gTasks[taskId].func = sub_80AC284;
+}
+
+void sub_80AC284(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] > 19)
+ {
+ shared19204.unk19214 = 0;
+ shared19204.unk1921C = gRngValue;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80AC2CC;
+ }
+}
+
+/*
+void sub_80AC2CC(u8 taskId)
+{
+
+}
+*/
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 532f30aaa..4de5f5345 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -1,11 +1,14 @@
#include "global.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+#include "constants/species.h"
#include "battle.h"
+#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "event_data.h"
#include "ewram.h"
#include "item.h"
-#include "constants/items.h"
#include "learn_move.h"
#include "link.h"
#include "m4a.h"
@@ -19,9 +22,7 @@
#include "pokemon.h"
#include "pokemon_summary_screen.h"
#include "region_map.h"
-#include "constants/songs.h"
#include "sound.h"
-#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"