summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-01-06 10:45:11 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2020-01-06 10:45:11 -0500
commit29e7c9a8075acd376d2a1140917ea20d4aea7612 (patch)
tree16ddaeec3105016414cd1dea2293fe57bc10affb
parent70993fe308b327c0bf3b6947871e1432de9eca37 (diff)
sub_80C267C
-rw-r--r--asm/region_map.s353
-rw-r--r--src/region_map.c111
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;
+ }
+}