through sub_80C1E78
This commit is contained in:
@@ -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}
|
||||
|
||||
+88
-2
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user