diff options
-rw-r--r-- | asm/contest_link_80C2020.s | 120 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 43 |
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); +} |