summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-01-04 13:40:57 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2020-01-04 13:40:57 -0500
commit5cc480bc1765abaaadad2ddd2109a808c7fb960d (patch)
treebac30a61f2ef0b7dafce73fe513a31ef9ddf4def
parent2c825017e6a2e78374ccd97337580c15c2503a23 (diff)
through sub_80C1E78
-rw-r--r--asm/region_map.s322
-rw-r--r--src/region_map.c90
2 files changed, 88 insertions, 324 deletions
diff --git a/asm/region_map.s b/asm/region_map.s
index ab3e5be1b..0228baa3e 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -5,328 +5,6 @@
.text
- thumb_func_start sub_80C1BE0
-sub_80C1BE0: @ 80C1BE0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C1C08 @ =gUnknown_20399DC
- ldr r0, [r1]
- ldr r3, _080C1C0C @ =0x00003d49
- adds r0, r3
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _080C1BFE
- b _080C1DF0
-_080C1BFE:
- lsls r0, 2
- ldr r1, _080C1C10 @ =_080C1C14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C08: .4byte gUnknown_20399DC
-_080C1C0C: .4byte 0x00003d49
-_080C1C10: .4byte _080C1C14
- .align 2, 0
-_080C1C14:
- .4byte _080C1C28
- .4byte _080C1C58
- .4byte _080C1C80
- .4byte _080C1CA8
- .4byte _080C1DA0
-_080C1C28:
- ldr r1, [r3]
- ldr r0, _080C1C48 @ =0x00003e0e
- adds r2, r1, r0
- ldr r0, _080C1C4C @ =0x00000133
- strh r0, [r2]
- ldr r3, _080C1C50 @ =0x00003e10
- adds r2, r1, r3
- subs r0, 0x33
- strh r0, [r2]
- ldr r0, _080C1C54 @ =0x00003e12
- adds r2, r1, r0
- movs r0, 0xF0
- strh r0, [r2]
- subs r3, 0xC7
- b _080C1DD6
- .align 2, 0
-_080C1C48: .4byte 0x00003e0e
-_080C1C4C: .4byte 0x00000133
-_080C1C50: .4byte 0x00003e10
-_080C1C54: .4byte 0x00003e12
-_080C1C58:
- ldr r0, [r3]
- ldr r1, _080C1C7C @ =0x00003d4c
- adds r0, r1
- ldrb r1, [r0]
- adds r2, r1, 0x1
- strb r2, [r0]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x28
- bhi _080C1C6E
- b _080C1DFE
-_080C1C6E:
- ldr r0, [r3]
- ldr r1, _080C1C7C @ =0x00003d4c
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r3]
- b _080C1DD4
- .align 2, 0
-_080C1C7C: .4byte 0x00003d4c
-_080C1C80:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r0, _080C1CA0 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1CA4 @ =0x00003d49
- adds r1, r0
- b _080C1DD8
- .align 2, 0
-_080C1CA0: .4byte gUnknown_20399DC
-_080C1CA4: .4byte 0x00003d49
-_080C1CA8:
- ldr r7, _080C1D10 @ =gUnknown_20399DC
- ldr r2, [r7]
- ldr r1, _080C1D14 @ =0x00003d4c
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x19
- bls _080C1D24
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C1920
- ldr r1, _080C1D18 @ =gUnknown_83F1A94
- str r1, [sp]
- movs r4, 0x1
- negs r4, r4
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0
- bl AddTextPrinterParameterized3
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C18E0
- ldr r1, _080C1D1C @ =gUnknown_83F1A90
- str r1, [sp]
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0xE
- bl AddTextPrinterParameterized3
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, [r7]
- ldr r3, _080C1D20 @ =0x00003d49
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C1D80
- .align 2, 0
-_080C1D10: .4byte gUnknown_20399DC
-_080C1D14: .4byte 0x00003d4c
-_080C1D18: .4byte gUnknown_83F1A94
-_080C1D1C: .4byte gUnknown_83F1A90
-_080C1D20: .4byte 0x00003d49
-_080C1D24:
- cmp r0, 0x14
- bls _080C1D80
- ldr r6, _080C1D88 @ =0x00003e0e
- adds r1, r2, r6
- ldrh r0, [r1]
- subs r0, 0x6
- strh r0, [r1]
- ldr r4, _080C1D8C @ =0x00003e10
- adds r1, r2, r4
- ldrh r0, [r1]
- subs r0, 0x5
- strh r0, [r1]
- ldr r0, _080C1D90 @ =0x00003e12
- mov r8, r0
- adds r1, r2, r0
- ldrh r0, [r1]
- subs r0, 0x5
- strh r0, [r1]
- movs r1, 0xF5
- lsls r1, 6
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- ldr r5, _080C1D94 @ =0x00003d4e
- adds r1, r2, r5
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r7]
- adds r0, r1, r5
- adds r6, r1, r6
- ldrh r2, [r6]
- adds r4, r1, r4
- ldrh r3, [r4]
- add r1, r8
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0x30
- bl TintPalette_CustomTone
- ldr r0, [r7]
- adds r0, r5
- movs r1, 0xD0
- movs r2, 0x60
- bl LoadPalette
-_080C1D80:
- ldr r0, _080C1D98 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r3, _080C1D9C @ =0x00003d4c
- b _080C1DD6
- .align 2, 0
-_080C1D88: .4byte 0x00003e0e
-_080C1D8C: .4byte 0x00003e10
-_080C1D90: .4byte 0x00003e12
-_080C1D94: .4byte 0x00003d4e
-_080C1D98: .4byte gUnknown_20399DC
-_080C1D9C: .4byte 0x00003d4c
-_080C1DA0:
- ldr r0, _080C1DE0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080C1DB4
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C1DFE
-_080C1DB4:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r2, _080C1DE4 @ =gUnknown_20399DC
- ldr r1, [r2]
- ldr r0, _080C1DE8 @ =0x00003d48
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r2]
-_080C1DD4:
- ldr r3, _080C1DEC @ =0x00003d49
-_080C1DD6:
- adds r1, r3
-_080C1DD8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C1DFE
- .align 2, 0
-_080C1DE0: .4byte gMain
-_080C1DE4: .4byte gUnknown_20399DC
-_080C1DE8: .4byte 0x00003d48
-_080C1DEC: .4byte 0x00003d49
-_080C1DF0:
- ldr r0, _080C1E0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C1E10 @ =sub_80C1A94
- str r0, [r1]
-_080C1DFE:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gTasks
-_080C1E10: .4byte sub_80C1A94
- thumb_func_end sub_80C1BE0
-
- thumb_func_start sub_80C1E14
-sub_80C1E14: @ 80C1E14
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C1E68 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r4, _080C1E6C @ =gUnknown_20399DC
- ldr r0, [r4]
- ldr r2, _080C1E70 @ =0x00003d44
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x2
- bl HideBg
- movs r0, 0
- bl sub_80C4B30
- bl sub_80C0B18
- bl sub_80C0BB0
- bl sub_80C0AB8
- bl sub_80C0B9C
- ldr r0, _080C1E74 @ =gUnknown_8418E8D
- bl sub_80C4E74
- ldr r0, [r4]
- cmp r0, 0
- beq _080C1E60
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C1E60:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E68: .4byte gTasks
-_080C1E6C: .4byte gUnknown_20399DC
-_080C1E70: .4byte 0x00003d44
-_080C1E74: .4byte gUnknown_8418E8D
- thumb_func_end sub_80C1E14
-
- thumb_func_start sub_80C1E78
-sub_80C1E78: @ 80C1E78
- push {lr}
- sub sp, 0x8
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80C1E78
-
thumb_func_start sub_80C1E94
sub_80C1E94: @ 80C1E94
push {r4-r6,lr}
diff --git a/src/region_map.c b/src/region_map.c
index a42a9183d..74fdad074 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -94,7 +94,13 @@ struct UnkStruct_20399DC
u8 field_3D48;
u8 field_3D49;
u8 field_3D4A;
- u8 filler_3D4B[0xC9];
+ u8 field_3D4B;
+ u8 field_3D4C;
+ u16 field_3D4E[0x30];
+ u8 field_3DAE[0x60];
+ u16 field_3E0E;
+ u16 field_3E10;
+ u16 field_3E12;
u16 field_3E14;
u8 filler_3E16[0x12];
}; // size = 0x3E28
@@ -142,6 +148,7 @@ bool8 sub_80C16D0(void);
void sub_80C1754(u8 a0, u16 a1, u16 a2);
void sub_80C176C(u8 a0, u16 a1, u16 a2);
void sub_80C1880(void);
+void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc);
void sub_80C1A94(u8 taskId);
void sub_80C1BE0(u8 taskId);
void sub_80C1E14(u8 taskId);
@@ -157,7 +164,6 @@ void sub_80C4C74(u16 a0, u16 a1);
void sub_80C4C88(u16 a0);
void sub_80C4C9C(u8 a0, u8 a1);
void sub_80C4CF0(u8 a0, const struct UnkStruct_80C4CF0 *a1);
-void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc);
void sub_80C2208(u8 taskId, TaskFunc taskFunc);
void sub_80C25BC(void);
void sub_80C2C1C(u8 taskId);
@@ -176,6 +182,7 @@ u16 sub_80C3520(void);
void sub_80C48BC(u8 a0, u8 a1, u8 a2);
void sub_80C4960(u8 a0, u8 a1, u8 a2);
void sub_80C4A04(void);
+void sub_80C4B30(u8 a0);
void sub_80C4D30(void);
void sub_80C4E18(const u8 *str);
void sub_80C4E74(const u8 *str);
@@ -205,6 +212,7 @@ extern const u32 gUnknown_83F19A0[];
extern const struct BgTemplate gUnknown_83F1A50[4];
extern const struct WindowTemplate gUnknown_83F1A60[];
extern const u8 gUnknown_83F1A90[];
+extern const u8 gUnknown_83F1A94[];
extern const u8 *const gUnknown_83F1A9C[];
extern const u8 sSeviiMapsecs[3][30];
extern const u8 gUnknown_83F1B00[3][4];
@@ -1312,3 +1320,81 @@ void sub_80C1A94(u8 taskId)
break;
}
}
+
+void sub_80C1BE0(u8 taskId)
+{
+ switch (gUnknown_20399DC->field_3D49)
+ {
+ case 0:
+ gUnknown_20399DC->field_3E0E = 0x0133;
+ gUnknown_20399DC->field_3E10 = 0x0100;
+ gUnknown_20399DC->field_3E12 = 0x00F0;
+ gUnknown_20399DC->field_3D49++;
+ break;
+ case 1:
+ if (gUnknown_20399DC->field_3D4C++ > 40)
+ {
+ gUnknown_20399DC->field_3D4C = 0;
+ gUnknown_20399DC->field_3D49++;
+ }
+ break;
+ case 2:
+ FillWindowPixelBuffer(2, PIXEL_FILL(0));
+ CopyWindowToVram(2, 3);
+ PutWindowTilemap(2);
+ gUnknown_20399DC->field_3D49++;
+ break;
+ case 3:
+ if (gUnknown_20399DC->field_3D4C > 25)
+ {
+ AddTextPrinterParameterized3(2, 2, 4, 0, gUnknown_83F1A94, -1, sub_80C1920(sub_80C3580()));
+ AddTextPrinterParameterized3(2, 2, 2, 14, gUnknown_83F1A90, -1, sub_80C18E0(sub_80C3580()));
+ CopyWindowToVram(2, 3);
+ gUnknown_20399DC->field_3D49++;
+ }
+ else if (gUnknown_20399DC->field_3D4C > 20)
+ {
+ gUnknown_20399DC->field_3E0E -= 6;
+ gUnknown_20399DC->field_3E10 -= 5;
+ gUnknown_20399DC->field_3E12 -= 5;
+ CpuCopy16(gUnknown_20399DC->field_3D40->palptr, gUnknown_20399DC->field_3D4E, 0x60);
+ TintPalette_CustomTone(gUnknown_20399DC->field_3D4E, 0x30, gUnknown_20399DC->field_3E0E, gUnknown_20399DC->field_3E10, gUnknown_20399DC->field_3E12);
+ LoadPalette(gUnknown_20399DC->field_3D4E, 0xD0, 0x60);
+ }
+ gUnknown_20399DC->field_3D4C++;
+ break;
+ case 4:
+ if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
+ {
+ FillWindowPixelBuffer(2, PIXEL_FILL(0));
+ CopyWindowToVram(2, 3);
+ gUnknown_20399DC->field_3D48++;
+ gUnknown_20399DC->field_3D49++;
+ }
+ break;
+ default:
+ gTasks[taskId].func = sub_80C1A94;
+ break;
+ }
+}
+
+void sub_80C1E14(u8 taskId)
+{
+ gTasks[taskId].func = gUnknown_20399DC->field_3D44;
+ HideBg(2);
+ sub_80C4B30(0);
+ sub_80C0B18();
+ sub_80C0BB0();
+ sub_80C0AB8();
+ sub_80C0B9C();
+ sub_80C4E74(gUnknown_8418E8D);
+ if (gUnknown_20399DC != NULL)
+ {
+ FREE_AND_SET_NULL(gUnknown_20399DC);
+ }
+}
+
+void sub_80C1E78(u8 bgId, const u16 * tilemap)
+{
+ CopyToBgTilemapBufferRect(2, tilemap, 0, 0, 32, 20);
+}