summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-23 16:08:03 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-23 16:08:03 -0500
commit416d1b8e7e2fa51f7e250e759186e2870d4f8e6c (patch)
treed10b429c5604d36013c362458c2da3d4efac04e5
parent49ff4ad4e8f5cf8cea984e255ba3bb5051ff91e6 (diff)
sub_80C2358
-rw-r--r--asm/contest_link_80C2020.s83
-rw-r--r--src/battle/contest_link_80C2020.c59
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);
+}