diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-06 10:45:11 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-06 10:45:11 -0500 |
commit | 29e7c9a8075acd376d2a1140917ea20d4aea7612 (patch) | |
tree | 16ddaeec3105016414cd1dea2293fe57bc10affb | |
parent | 70993fe308b327c0bf3b6947871e1432de9eca37 (diff) |
sub_80C267C
-rw-r--r-- | asm/region_map.s | 353 | ||||
-rw-r--r-- | src/region_map.c | 111 |
2 files changed, 111 insertions, 353 deletions
diff --git a/asm/region_map.s b/asm/region_map.s index e8897693a..8ecc9cbf6 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -5,359 +5,6 @@ .text - thumb_func_start sub_80C267C -sub_80C267C: @ 80C267C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C26A0 @ =gUnknown_20399E0 - ldr r0, [r1] - ldr r2, _080C26A4 @ =0x00000ccc - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080C2696 - b _080C2990 -_080C2696: - lsls r0, 2 - ldr r1, _080C26A8 @ =_080C26AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C26A0: .4byte gUnknown_20399E0 -_080C26A4: .4byte 0x00000ccc -_080C26A8: .4byte _080C26AC - .align 2, 0 -_080C26AC: - .4byte _080C26E4 - .4byte _080C26FC - .4byte _080C270C - .4byte _080C272C - .4byte _080C2768 - .4byte _080C2788 - .4byte _080C27B4 - .4byte _080C27C4 - .4byte _080C27E4 - .4byte _080C281E - .4byte _080C2868 - .4byte _080C28A4 - .4byte _080C2928 - .4byte _080C296C -_080C26E4: - bl sub_80C08E0 - ldr r0, _080C26F4 @ =gUnknown_20399E0 - ldr r1, [r0] - ldr r0, _080C26F8 @ =0x00000ccc - adds r1, r0 - b _080C297E - .align 2, 0 -_080C26F4: .4byte gUnknown_20399E0 -_080C26F8: .4byte 0x00000ccc -_080C26FC: - bl sub_80C2344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C270A - b _080C299A -_080C270A: - b _080C2976 -_080C270C: - ldr r1, [r4] - ldr r0, _080C2728 @ =0x00000818 - adds r1, r0 - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect - ldr r1, [r4] - b _080C297A - .align 2, 0 -_080C2728: .4byte 0x00000818 -_080C272C: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - bl sub_80C08F4 - ldr r0, _080C2760 @ =gUnknown_20399E0 - ldr r1, [r0] - ldr r0, _080C2764 @ =0x00000ccc - adds r1, r0 - b _080C297E - .align 2, 0 -_080C2760: .4byte gUnknown_20399E0 -_080C2764: .4byte 0x00000ccc -_080C2768: - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x6 - movs r1, 0 - bl sub_80C22C4 - bl sub_80C2B48 - b _080C2976 -_080C2788: - ldr r0, _080C27AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080C2796 - b _080C299A -_080C2796: - ldr r1, [r4] - ldr r0, _080C27B0 @ =0x00000ccc - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0xF4 - bl PlaySE - b _080C299A - .align 2, 0 -_080C27AC: .4byte gPaletteFade -_080C27B0: .4byte 0x00000ccc -_080C27B4: - bl sub_80C29A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C27C2 - b _080C299A -_080C27C2: - b _080C2976 -_080C27C4: - movs r0, 0 - bl sub_80C4324 - movs r0, 0 - bl sub_80C3154 - ldr r0, _080C27DC @ =gUnknown_20399E0 - ldr r1, [r0] - ldr r0, _080C27E0 @ =0x00000ccc - adds r1, r0 - b _080C297E - .align 2, 0 -_080C27DC: .4byte gUnknown_20399E0 -_080C27E0: .4byte 0x00000ccc -_080C27E4: - ldr r0, [r4] - movs r1, 0xCD - lsls r1, 4 - adds r0, r1 - movs r1, 0xF - strb r1, [r0] - bl sub_80C253C - movs r0, 0 - bl sub_80C0A88 - bl sub_80C0E20 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x19 - movs r2, 0 - bl sub_80C48BC - bl sub_80C0E20 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x19 - movs r2, 0 - bl sub_80C4960 - ldr r1, [r4] - b _080C297A -_080C281E: - ldr r0, _080C283C @ =gUnknown_8418EB5 - bl sub_80C4E18 - movs r0, 0x1 - bl sub_80C3AC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080C2844 - ldr r0, _080C2840 @ =gUnknown_8418E8B - bl sub_80C4E74 - b _080C284A - .align 2, 0 -_080C283C: .4byte gUnknown_8418EB5 -_080C2840: .4byte gUnknown_8418E8B -_080C2844: - ldr r0, _080C285C @ =gUnknown_8418E8D - bl sub_80C4E74 -_080C284A: - movs r0, 0 - bl sub_80C4ED0 - ldr r0, _080C2860 @ =gUnknown_20399E0 - ldr r1, [r0] - ldr r0, _080C2864 @ =0x00000ccc - adds r1, r0 - b _080C297E - .align 2, 0 -_080C285C: .4byte gUnknown_8418E8D -_080C2860: .4byte gUnknown_20399E0 -_080C2864: .4byte 0x00000ccc -_080C2868: - ldr r4, _080C28A0 @ =gUnknown_83EF23C + 0x1E - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x20 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x40 - movs r2, 0x2 - bl LoadPalette - b _080C2976 - .align 2, 0 -_080C28A0: .4byte gUnknown_83EF23C + 0x1E -_080C28A4: - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0x2 - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x1 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - movs r3, 0x1 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x3E - movs r2, 0x1C - movs r3, 0x1 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x3F - movs r2, 0x1D - movs r3, 0x1 - bl FillBgTilemapBufferRect - movs r0, 0x1A - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x3D - movs r2, 0x2 - movs r3, 0x1 - bl FillBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0xF4 - bl m4aSongNumStop - movs r0, 0x2A - bl PlaySE - ldr r0, _080C2920 @ =gUnknown_20399E0 - ldr r1, [r0] - ldr r0, _080C2924 @ =0x00000ccc - adds r1, r0 - b _080C297E - .align 2, 0 -_080C2920: .4byte gUnknown_20399E0 -_080C2924: .4byte 0x00000ccc -_080C2928: - ldr r0, [r4] - movs r2, 0xCD - lsls r2, 4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x2 - bne _080C2958 - movs r0, 0x6 - movs r1, 0x1 - bl sub_80C22C4 - ldr r1, [r4] - ldr r0, _080C2954 @ =0x00000ccc - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - bl sub_80C4C48 - b _080C299A - .align 2, 0 -_080C2954: .4byte 0x00000ccc -_080C2958: - subs r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0xCD - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - bl sub_80C4C48 - b _080C299A -_080C296C: - movs r0, 0 - bl sub_80C4B30 - bl sub_80C0BB0 -_080C2976: - ldr r0, _080C2988 @ =gUnknown_20399E0 - ldr r1, [r0] -_080C297A: - ldr r2, _080C298C @ =0x00000ccc - adds r1, r2 -_080C297E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080C299A - .align 2, 0 -_080C2988: .4byte gUnknown_20399E0 -_080C298C: .4byte 0x00000ccc -_080C2990: - bl sub_80C2604 - adds r0, r5, 0 - bl sub_80C2594 -_080C299A: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C267C thumb_func_start sub_80C29A4 sub_80C29A4: @ 80C29A4 diff --git a/src/region_map.c b/src/region_map.c index c8b60cc36..e13248640 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -3,6 +3,7 @@ #include "gpu_regs.h" #include "scanline_effect.h" #include "task.h" +#include "m4a.h" #include "malloc.h" #include "overworld.h" #include "event_data.h" @@ -195,6 +196,8 @@ void sub_80C24BC(void); void sub_80C267C(u8 taskId); void sub_80C25BC(void); void sub_80C2604(void); +bool8 sub_80C29A4(void); +void sub_80C2B48(void); void sub_80C2C1C(u8 taskId); void sub_80C3008(u16 a0, u16 a1); void sub_80C3154(u8 a0); @@ -1678,3 +1681,111 @@ void sub_80C2604(void) } } } + +void sub_80C267C(u8 taskId) +{ + switch (gUnknown_20399E0->field_CCC) + { + case 0: + sub_80C08E0(); + gUnknown_20399E0->field_CCC++; + break; + case 1: + if (sub_80C2344() == TRUE) + gUnknown_20399E0->field_CCC++; + break; + case 2: + CopyToBgTilemapBufferRect(1, gUnknown_20399E0->field_818, 0, 0, 30, 20); + gUnknown_20399E0->field_CCC++; + break; + case 3: + CopyBgTilemapBufferToVram(1); + BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sub_80C08F4(); + gUnknown_20399E0->field_CCC++; + break; + case 4: + ShowBg(0); + ShowBg(3); + ShowBg(1); + sub_80C22C4(6, FALSE); + sub_80C2B48(); + gUnknown_20399E0->field_CCC++; + break; + case 5: + if (!gPaletteFade.active) + { + gUnknown_20399E0->field_CCC++; + PlaySE(SE_CARD3); + } + break; + case 6: + if (sub_80C29A4() == TRUE) + gUnknown_20399E0->field_CCC++; + break; + case 7: + sub_80C4324(0); + sub_80C3154(0); + gUnknown_20399E0->field_CCC++; + break; + case 8: + gUnknown_20399E0->field_CD0 = 15; + sub_80C253C(); + sub_80C0A88(0); + sub_80C48BC(sub_80C0E20(), 25, 0); + sub_80C4960(sub_80C0E20(), 25, 0); + gUnknown_20399E0->field_CCC++; + break; + case 9: + sub_80C4E18(gUnknown_8418EB5); + if (sub_80C3AC8(1) != 2) + sub_80C4E74(gUnknown_8418E8B); + else + sub_80C4E74(gUnknown_8418E8D); + sub_80C4ED0(FALSE); + gUnknown_20399E0->field_CCC++; + break; + case 10: + LoadPalette(&gUnknown_83EF23C[15], 0x00, 2); + LoadPalette(&gUnknown_83EF23C[15], 0x10, 2); + LoadPalette(&gUnknown_83EF23C[15], 0x20, 2); + LoadPalette(&gUnknown_83EF23C[15], 0x30, 2); + LoadPalette(&gUnknown_83EF23C[15], 0x40, 2); + gUnknown_20399E0->field_CCC++; + break; + case 11: + FillBgTilemapBufferRect(1, 0x002, 0, 1, 1, 1, 0x2); + FillBgTilemapBufferRect(1, 0x003, 1, 1, 1, 1, 0x2); + FillBgTilemapBufferRect(1, 0x03E, 28, 1, 1, 1, 0x2); + FillBgTilemapBufferRect(1, 0x03F, 29, 1, 1, 1, 0x2); + FillBgTilemapBufferRect(1, 0x03D, 2, 1, 26, 1, 0x2); + CopyBgTilemapBufferToVram(1); + m4aSongNumStop(SE_CARD3); + PlaySE(SE_HI_TURUN); + gUnknown_20399E0->field_CCC++; + break; + case 12: + if (gUnknown_20399E0->field_CD0 == 2) + { + sub_80C22C4(6, TRUE); + gUnknown_20399E0->field_CCC++; + sub_80C4C48(0); + } + else + { + gUnknown_20399E0->field_CD0--; + sub_80C4C48(gUnknown_20399E0->field_CD0); + } + break; + case 13: + sub_80C4B30(0); + sub_80C0BB0(); + gUnknown_20399E0->field_CCC++; + break; + default: + sub_80C2604(); + sub_80C2594(taskId); + break; + } +} |