diff options
-rw-r--r-- | asm/contest_link_80C2020.s | 135 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 48 |
2 files changed, 48 insertions, 135 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 2f7255da0..e0d1937d3 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -5,141 +5,6 @@ .text - thumb_func_start sub_80C2430 -sub_80C2430: @ 80C2430 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80C2430 - - thumb_func_start sub_80C2448 -sub_80C2448: @ 80C2448 - push {lr} - ldr r1, _080C24C0 @ =REG_BG0HOFS - ldr r0, _080C24C4 @ =gBattle_BG0_X - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24C8 @ =gBattle_BG0_Y - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24CC @ =gBattle_BG1_X - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D0 @ =gBattle_BG1_Y - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D4 @ =gBattle_BG2_X - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D8 @ =gBattle_BG2_Y - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24DC @ =gBattle_BG3_X - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24E0 @ =gBattle_BG3_Y - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _080C24E4 @ =gBattle_WIN0H - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24E8 @ =gBattle_WIN0V - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _080C24EC @ =gBattle_WIN1H - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24F0 @ =gBattle_WIN1V - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_080C24C0: .4byte REG_BG0HOFS -_080C24C4: .4byte gBattle_BG0_X -_080C24C8: .4byte gBattle_BG0_Y -_080C24CC: .4byte gBattle_BG1_X -_080C24D0: .4byte gBattle_BG1_Y -_080C24D4: .4byte gBattle_BG2_X -_080C24D8: .4byte gBattle_BG2_Y -_080C24DC: .4byte gBattle_BG3_X -_080C24E0: .4byte gBattle_BG3_Y -_080C24E4: .4byte gBattle_WIN0H -_080C24E8: .4byte gBattle_WIN0V -_080C24EC: .4byte gBattle_WIN1H -_080C24F0: .4byte gBattle_WIN1V - thumb_func_end sub_80C2448 - - thumb_func_start sub_80C24F4 -sub_80C24F4: @ 80C24F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - ldr r0, _080C252C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C254E - ldr r0, _080C2530 @ =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2540 - ldr r0, _080C2534 @ =gOtherText_LinkStandby - bl sub_80C3698 - ldr r1, _080C2538 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C253C @ =sub_80C255C - str r1, [r0] - b _080C254E - .align 2, 0 -_080C252C: .4byte gPaletteFade -_080C2530: .4byte gIsLinkContest -_080C2534: .4byte gOtherText_LinkStandby -_080C2538: .4byte gTasks -_080C253C: .4byte sub_80C255C -_080C2540: - ldr r0, _080C2554 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2558 @ =sub_80C2600 - str r0, [r1] -_080C254E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2554: .4byte gTasks -_080C2558: .4byte sub_80C2600 - thumb_func_end sub_80C24F4 - thumb_func_start sub_80C255C sub_80C255C: @ 80C255C push {r4,lr} diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c index 761ede549..1fe6e8cb6 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/battle/contest_link_80C2020.c @@ -6,6 +6,7 @@ #include "decompress.h" #include "palette.h" #include "graphics.h" +#include "strings2.h" #include "text.h" #include "string_util.h" #include "menu.h" @@ -32,11 +33,14 @@ struct UnkEwramStruct18018 { void sub_80C2430(void); void sub_80C2448(void); void sub_80C24F4(u8 taskId); +void sub_80C255C(u8 taskId); +void sub_80C2600(u8 taskId); void sub_80C2F28(u8 taskId); void sub_80C37E4(void); void sub_80C310C(void); void sub_80C30D4(u8 a0, u8 a1); void sub_80C33DC(void); +void sub_80C3698(const u8 *string); void sub_80C3F00(void); u8 sub_80C3990(u8 a0, u8 a1); s8 sub_80C39E4(u8 a0, u8 a1); @@ -187,3 +191,47 @@ void sub_80C2358(void) PlayBGM(BGM_CON_K); SetVBlankCallback(sub_80C2448); } + +void sub_80C2430(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTasks(); + UpdatePaletteFade(); +} + +void sub_80C2448(void) +{ + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; + REG_BG1HOFS = gBattle_BG1_X; + REG_BG1VOFS = gBattle_BG1_Y; + REG_BG2HOFS = gBattle_BG2_X; + REG_BG2VOFS = gBattle_BG2_Y; + REG_BG3HOFS = gBattle_BG3_X; + REG_BG3VOFS = gBattle_BG3_Y; + REG_WIN0H = gBattle_WIN0H; + REG_WIN0V = gBattle_WIN0V; + REG_WIN1H = gBattle_WIN1H; + REG_WIN1V = gBattle_WIN1V; + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +void sub_80C24F4(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gIsLinkContest & 1) + { + sub_80C3698(gOtherText_LinkStandby); + gTasks[taskId].func = sub_80C255C; + } + else + { + gTasks[taskId].func = sub_80C2600; + } + } +} |