diff options
author | camthesaxman <cameronghall@cox.net> | 2017-12-13 14:09:11 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-12-13 14:09:11 -0600 |
commit | 5952bd74dc098104ef11764ba70e8181523f406e (patch) | |
tree | 6a74c1f5bc806757e6cd2245024b25f5fdbc75f8 | |
parent | 90eec979c948c480772549f6ec05a76b4f4cb605 (diff) |
decompile sub_80ABEA0 - sub_80AC284
-rw-r--r-- | asm/contest.s | 506 | ||||
-rw-r--r-- | src/contest.c | 208 | ||||
-rw-r--r-- | src/pokemon/pokemon_summary_screen.c | 7 |
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" |