summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest_link_80C2020.s120
-rw-r--r--src/battle/contest_link_80C2020.c43
2 files changed, 40 insertions, 123 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index eaa61e7eb..af9938e9e 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -5,126 +5,6 @@
.text
- thumb_func_start sub_80C33DC
-sub_80C33DC: @ 80C33DC
- push {r4-r6,lr}
- sub sp, 0x20
- mov r1, sp
- ldr r0, _080C3498 @ =gSpriteTemplate_83D174C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- add r5, sp, 0x18
- ldr r6, _080C349C @ =gUnknown_083D1764
- movs r4, 0x7
-_080C33F2:
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r6, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _080C33F2
- ldr r0, _080C34A0 @ =gUnknown_083D17A4
- bl LoadSpritePalette
- movs r4, 0
- mov r6, sp
-_080C340A:
- mov r0, sp
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- adds r1, r5, r4
- strb r0, [r1]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- adds r4, 0x1
- cmp r4, 0x7
- ble _080C340A
- ldr r2, _080C34A4 @ =gSprites
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x1]
- movs r3, 0
- strh r1, [r0, 0x2E]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x2]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x3]
- strh r1, [r0, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x5]
- strh r1, [r0, 0x2E]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x6]
- strh r1, [r0, 0x30]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x7]
- strh r1, [r0, 0x32]
- ldr r1, _080C34A8 @ =gSharedMem + 0x18000
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r1, 0x4]
- ldrb r0, [r5, 0x4]
- strb r0, [r1, 0x1]
- bl sub_80C3764
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3498: .4byte gSpriteTemplate_83D174C
-_080C349C: .4byte gUnknown_083D1764
-_080C34A0: .4byte gUnknown_083D17A4
-_080C34A4: .4byte gSprites
-_080C34A8: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C33DC
-
- thumb_func_start sub_80C34AC
-sub_80C34AC: @ 80C34AC
- push {lr}
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 25
- lsrs r1, 25
- movs r0, 0x70
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80C34AC
-
thumb_func_start sub_80C34CC
sub_80C34CC: @ 80C34CC
push {r4-r6,lr}
diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c
index 76612d14e..db1210cdb 100644
--- a/src/battle/contest_link_80C2020.c
+++ b/src/battle/contest_link_80C2020.c
@@ -38,17 +38,17 @@
struct UnkEwramStruct18000 {
u8 unk_00;
- u8 filler_01[1];
+ u8 unk_01;
u8 unk_02;
u8 unk_03;
u8 unk_04;
u8 unk_05;
u8 unk_06;
- u8 filler_07[1];
+ u8 unk_07;
u8 unk_08;
u8 unk_09;
u8 unk_0a;
- u8 filler_0b[9];
+ s16 unk_0c[4];
u8 unk_14;
};
@@ -1215,3 +1215,40 @@ void sub_80C3158(const u8 * string, u8 spriteId)
"_080C33D8: .4byte REG_BG0CNT");
}
#endif //NONMATCHING
+
+void sub_80C33DC(void)
+{
+ int i;
+ struct SpriteTemplate template;
+ u8 spriteIds[8];
+
+ template = gSpriteTemplate_83D174C;
+ for (i = 0; i <8; i++)
+ LoadSpriteSheet(&gUnknown_083D1764[i]);
+
+ LoadSpritePalette(&gUnknown_083D17A4);
+ for (i = 0; i < 8; i++)
+ {
+ spriteIds[i] = CreateSprite(&template, 272, 144, 10);
+ template.tileTag++;
+ }
+
+ gSprites[spriteIds[0]].data[0] = spriteIds[1];
+ gSprites[spriteIds[0]].data[1] = spriteIds[2];
+ gSprites[spriteIds[0]].data[2] = spriteIds[3];
+
+ gSprites[spriteIds[4]].data[0] = spriteIds[5];
+ gSprites[spriteIds[4]].data[1] = spriteIds[6];
+ gSprites[spriteIds[4]].data[2] = spriteIds[7];
+
+ eContestLink80C2020Struct2018000.unk_00 = spriteIds[0];
+ eContestLink80C2020Struct2018000.unk_04 = 0;
+ eContestLink80C2020Struct2018000.unk_01 = spriteIds[4];
+ sub_80C3764();
+}
+
+u16 sub_80C34AC(const u8 * string)
+{
+ u8 width = (StringLength(string) * 6);
+ return 0x70 - (width / 2);
+}