diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-23 16:08:03 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-23 16:08:03 -0500 |
commit | 416d1b8e7e2fa51f7e250e759186e2870d4f8e6c (patch) | |
tree | d10b429c5604d36013c362458c2da3d4efac04e5 | |
parent | 49ff4ad4e8f5cf8cea984e255ba3bb5051ff91e6 (diff) |
sub_80C2358
-rw-r--r-- | asm/contest_link_80C2020.s | 83 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 59 |
2 files changed, 57 insertions, 85 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 9fe07f3c0..2f7255da0 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -5,89 +5,6 @@ .text - thumb_func_start sub_80C2358 -sub_80C2358: @ 80C2358 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080C240C @ =gPaletteFade - ldrb r0, [r5, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r5, 0x8] - movs r0, 0 - bl SetVBlankCallback - bl sub_80C2020 - bl ScanlineEffect_Clear - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_80C2144 - bl sub_80C310C - movs r0, 0 - movs r1, 0x1 - bl sub_80C30D4 - bl sub_80C2340 - ldr r4, _080C2410 @ =gSharedMem + 0x18000 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x18 - bl memset - adds r0, r4, 0 - adds r0, 0x18 - movs r1, 0 - movs r2, 0x50 - bl memset - bl sub_80C33DC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrb r1, [r5, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r5, 0x8] - ldr r0, _080C2414 @ =sub_80C24F4 - movs r1, 0x5 - bl CreateTask - strb r0, [r4, 0x2] - ldr r0, _080C2418 @ =sub_80C2430 - bl SetMainCallback2 - ldr r1, _080C241C @ =gBattle_WIN1H - movs r0, 0xF0 - strh r0, [r1] - ldr r1, _080C2420 @ =gBattle_WIN1V - ldr r2, _080C2424 @ =0x000080a0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080C2428 @ =sub_80C2F28 - movs r1, 0x14 - bl CreateTask - bl sub_80C3F00 - movs r0, 0xDF - lsls r0, 1 - bl PlayBGM - ldr r0, _080C242C @ =sub_80C2448 - bl SetVBlankCallback - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C240C: .4byte gPaletteFade -_080C2410: .4byte gSharedMem + 0x18000 -_080C2414: .4byte sub_80C24F4 -_080C2418: .4byte sub_80C2430 -_080C241C: .4byte gBattle_WIN1H -_080C2420: .4byte gBattle_WIN1V -_080C2424: .4byte 0x000080a0 -_080C2428: .4byte sub_80C2F28 -_080C242C: .4byte sub_80C2448 - thumb_func_end sub_80C2358 - thumb_func_start sub_80C2430 sub_80C2430: @ 80C2430 push {lr} diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c index 27f3f8ea3..761ede549 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/battle/contest_link_80C2020.c @@ -1,19 +1,45 @@ #include "global.h" +#include "constants/songs.h" +#include "ewram.h" +#include "main.h" +#include "scanline_effect.h" #include "decompress.h" #include "palette.h" #include "graphics.h" #include "text.h" #include "string_util.h" #include "menu.h" +#include "sound.h" #include "battle.h" #include "contest.h" #include "link.h" #define ABS(x) ((x) < 0 ? -(x) : (x)) +struct UnkEwramStruct18000 { + u8 filler_00[2]; + u8 unk_02; + u8 filler_03[0x15]; +}; + +struct UnkEwramStruct18018 { + u8 filler_00[0x50]; +}; + +#define eContestLink80C2020Struct2018000 (*(struct UnkEwramStruct18000 *)(gSharedMem + 0x18000)) +#define eContestLink80C2020Struct2018018 (*(struct UnkEwramStruct18018 *)(gSharedMem + 0x18018)) + +void sub_80C2430(void); +void sub_80C2448(void); +void sub_80C24F4(u8 taskId); +void sub_80C2F28(u8 taskId); void sub_80C37E4(void); -u8 sub_80C3990(u8 a0, u8 a5); -s8 sub_80C39E4(u8 a0, u8 a5); +void sub_80C310C(void); +void sub_80C30D4(u8 a0, u8 a1); +void sub_80C33DC(void); +void sub_80C3F00(void); +u8 sub_80C3990(u8 a0, u8 a1); +s8 sub_80C39E4(u8 a0, u8 a1); extern const u8 gUnknown_083D17DC[]; extern const u8 gUnknown_083D17E0[]; @@ -132,3 +158,32 @@ void sub_80C2340(void) for (i = 0; i < 4; i++) sub_80C226C(i); } + +void sub_80C2358(void) +{ + gPaletteFade.bufferTransferDisabled = TRUE; + SetVBlankCallback(NULL); + sub_80C2020(); + ScanlineEffect_Clear(); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + sub_80C2144(); + sub_80C310C(); + sub_80C30D4(0, 1); + sub_80C2340(); + eContestLink80C2020Struct2018000 = (struct UnkEwramStruct18000){}; + eContestLink80C2020Struct2018018 = (struct UnkEwramStruct18018){}; + sub_80C33DC(); + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + gPaletteFade.bufferTransferDisabled = FALSE; + eContestLink80C2020Struct2018000.unk_02 = CreateTask(sub_80C24F4, 5); + SetMainCallback2(sub_80C2430); + gBattle_WIN1H = 0xf0; + gBattle_WIN1V = 0x80a0; + CreateTask(sub_80C2F28, 20); + sub_80C3F00(); + PlayBGM(BGM_CON_K); + SetVBlankCallback(sub_80C2448); +} |