through sub_80C1058
This commit is contained in:
@@ -5,266 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80C0E70
|
||||
sub_80C0E70: @ 80C0E70
|
||||
push {r4-r7,lr}
|
||||
adds r7, r2, 0
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
ldr r4, _080C0EA0 @ =gUnknown_20399D8
|
||||
movs r0, 0xE7
|
||||
lsls r0, 5
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
ldr r0, _080C0EA4 @ =0x00000846
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080C0EAC
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C0EA8 @ =0x00001ccc
|
||||
adds r0, r1
|
||||
movs r1, 0x3
|
||||
b _080C0ED2
|
||||
.align 2, 0
|
||||
_080C0EA0: .4byte gUnknown_20399D8
|
||||
_080C0EA4: .4byte 0x00000846
|
||||
_080C0EA8: .4byte 0x00001ccc
|
||||
_080C0EAC:
|
||||
ldr r0, _080C0EC4 @ =0x00000845
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
beq _080C0ECC
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080C0EC8 @ =0x00001ccc
|
||||
adds r0, r2
|
||||
movs r1, 0x1
|
||||
b _080C0ED2
|
||||
.align 2, 0
|
||||
_080C0EC4: .4byte 0x00000845
|
||||
_080C0EC8: .4byte 0x00001ccc
|
||||
_080C0ECC:
|
||||
ldr r0, [r4]
|
||||
ldr r3, _080C0F14 @ =0x00001ccc
|
||||
adds r0, r3
|
||||
_080C0ED2:
|
||||
strb r1, [r0]
|
||||
ldr r4, _080C0F18 @ =gUnknown_20399D8
|
||||
ldr r2, [r4]
|
||||
ldr r0, _080C0F1C @ =0x000018b8
|
||||
adds r1, r2, r0
|
||||
movs r0, 0x58
|
||||
strh r0, [r1]
|
||||
ldr r3, _080C0F20 @ =0x00001cc4
|
||||
adds r1, r2, r3
|
||||
movs r0, 0x98
|
||||
strh r0, [r1]
|
||||
ldr r1, _080C0F14 @ =0x00001ccc
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _080C0F2C
|
||||
cmp r0, 0x2
|
||||
bgt _080C0F4C
|
||||
cmp r0, 0x1
|
||||
bne _080C0F4C
|
||||
ldr r0, _080C0F24 @ =gUnknown_83F1084
|
||||
movs r3, 0x80
|
||||
lsls r3, 5
|
||||
adds r1, r2, r3
|
||||
bl LZ77UnCompWram
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C0F28 @ =0x00001cce
|
||||
adds r0, r1
|
||||
movs r1, 0x6
|
||||
strh r1, [r0]
|
||||
b _080C0F64
|
||||
.align 2, 0
|
||||
_080C0F14: .4byte 0x00001ccc
|
||||
_080C0F18: .4byte gUnknown_20399D8
|
||||
_080C0F1C: .4byte 0x000018b8
|
||||
_080C0F20: .4byte 0x00001cc4
|
||||
_080C0F24: .4byte gUnknown_83F1084
|
||||
_080C0F28: .4byte 0x00001cce
|
||||
_080C0F2C:
|
||||
ldr r0, _080C0F44 @ =gUnknown_83F1190
|
||||
movs r3, 0x80
|
||||
lsls r3, 5
|
||||
adds r1, r2, r3
|
||||
bl LZ77UnCompWram
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C0F48 @ =0x00001cce
|
||||
adds r0, r1
|
||||
movs r1, 0x4
|
||||
strh r1, [r0]
|
||||
b _080C0F64
|
||||
.align 2, 0
|
||||
_080C0F44: .4byte gUnknown_83F1190
|
||||
_080C0F48: .4byte 0x00001cce
|
||||
_080C0F4C:
|
||||
ldr r0, _080C0FB4 @ =gUnknown_20399D8
|
||||
ldr r1, [r0]
|
||||
ldr r3, _080C0FB8 @ =0x00001cce
|
||||
adds r2, r1, r3
|
||||
movs r0, 0x3
|
||||
strh r0, [r2]
|
||||
ldr r0, _080C0FBC @ =gUnknown_83F0F1C
|
||||
movs r2, 0x80
|
||||
lsls r2, 5
|
||||
adds r1, r2
|
||||
bl LZ77UnCompWram
|
||||
_080C0F64:
|
||||
ldr r0, _080C0FC0 @ =gUnknown_83F0580
|
||||
ldr r4, _080C0FB4 @ =gUnknown_20399D8
|
||||
ldr r1, [r4]
|
||||
bl LZ77UnCompWram
|
||||
ldr r0, [r4]
|
||||
ldr r3, _080C0FC4 @ =0x00001cc8
|
||||
adds r0, r3
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C0FC8 @ =0x00001cca
|
||||
adds r0, r1
|
||||
strb r6, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080C0FCC @ =0x00001cd0
|
||||
adds r0, r2
|
||||
str r7, [r0]
|
||||
bl sub_80C0E34
|
||||
ldr r1, [r4]
|
||||
ldr r3, _080C0FD0 @ =0x00001ccb
|
||||
adds r1, r3
|
||||
strb r0, [r1]
|
||||
movs r0, 0
|
||||
bl sub_80C4AAC
|
||||
ldr r0, _080C0FD4 @ =gUnknown_8418EB0
|
||||
bl sub_80C4E74
|
||||
ldr r1, _080C0FD8 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _080C0FDC @ =sub_80C1098
|
||||
str r1, [r0]
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C0FB4: .4byte gUnknown_20399D8
|
||||
_080C0FB8: .4byte 0x00001cce
|
||||
_080C0FBC: .4byte gUnknown_83F0F1C
|
||||
_080C0FC0: .4byte gUnknown_83F0580
|
||||
_080C0FC4: .4byte 0x00001cc8
|
||||
_080C0FC8: .4byte 0x00001cca
|
||||
_080C0FCC: .4byte 0x00001cd0
|
||||
_080C0FD0: .4byte 0x00001ccb
|
||||
_080C0FD4: .4byte gUnknown_8418EB0
|
||||
_080C0FD8: .4byte gTasks
|
||||
_080C0FDC: .4byte sub_80C1098
|
||||
thumb_func_end sub_80C0E70
|
||||
|
||||
thumb_func_start sub_80C0FE0
|
||||
sub_80C0FE0: @ 80C0FE0
|
||||
push {lr}
|
||||
bl sub_80C4BE4
|
||||
movs r0, 0x1B
|
||||
movs r1, 0x4
|
||||
movs r2, 0x40
|
||||
bl sub_80C4C2C
|
||||
ldr r0, _080C100C @ =gUnknown_20399D8
|
||||
ldr r0, [r0]
|
||||
ldr r1, _080C1010 @ =0x00001ccd
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
subs r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl sub_80C4C5C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C100C: .4byte gUnknown_20399D8
|
||||
_080C1010: .4byte 0x00001ccd
|
||||
thumb_func_end sub_80C0FE0
|
||||
|
||||
thumb_func_start sub_80C1014
|
||||
sub_80C1014: @ 80C1014
|
||||
push {r4,lr}
|
||||
ldr r4, _080C1028 @ =gUnknown_20399D8
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080C102C @ =0x00001ccd
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xF
|
||||
bls _080C1030
|
||||
movs r0, 0x1
|
||||
b _080C104C
|
||||
.align 2, 0
|
||||
_080C1028: .4byte gUnknown_20399D8
|
||||
_080C102C: .4byte 0x00001ccd
|
||||
_080C1030:
|
||||
ldrb r1, [r1]
|
||||
movs r0, 0x10
|
||||
subs r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl sub_80C4C5C
|
||||
ldr r1, [r4]
|
||||
ldr r0, _080C1054 @ =0x00001ccd
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x2
|
||||
strb r0, [r1]
|
||||
movs r0, 0
|
||||
_080C104C:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C1054: .4byte 0x00001ccd
|
||||
thumb_func_end sub_80C1014
|
||||
|
||||
thumb_func_start sub_80C1058
|
||||
sub_80C1058: @ 80C1058
|
||||
push {lr}
|
||||
ldr r2, _080C106C @ =gUnknown_20399D8
|
||||
ldr r0, [r2]
|
||||
ldr r3, _080C1070 @ =0x00001ccd
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0x1
|
||||
bhi _080C1074
|
||||
movs r0, 0x1
|
||||
b _080C108E
|
||||
.align 2, 0
|
||||
_080C106C: .4byte gUnknown_20399D8
|
||||
_080C1070: .4byte 0x00001ccd
|
||||
_080C1074:
|
||||
subs r0, 0x2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _080C1094 @ =0x00001ccd
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
subs r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl sub_80C4C5C
|
||||
movs r0, 0
|
||||
_080C108E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C1094: .4byte 0x00001ccd
|
||||
thumb_func_end sub_80C1058
|
||||
|
||||
thumb_func_start sub_80C1098
|
||||
sub_80C1098: @ 80C1098
|
||||
push {r4,r5,lr}
|
||||
|
||||
+2
-2
@@ -1007,8 +1007,8 @@ extern const u8 gText_LinkCableBattles[];
|
||||
extern const u8 gUnknown_8418EB5[];
|
||||
extern const u8 gUnknown_8418E8B[];
|
||||
extern const u8 gUnknown_8418E8D[];
|
||||
extern const u8 gUnknown_8418E8B[];
|
||||
extern const u8 gUnknown_8418EA7[];
|
||||
extern const u8 gUnknown_8418E95[];
|
||||
extern const u8 gUnknown_8418EA7[];
|
||||
extern const u8 gUnknown_8418EB0[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
+96
-4
@@ -41,13 +41,27 @@ struct UnkStruct_20399D4
|
||||
u8 filler_47B2[6];
|
||||
TaskFunc field_47B8;
|
||||
MainCallback field_47BC;
|
||||
};
|
||||
}; // size = 0x47C0
|
||||
|
||||
struct UnkStruct_20399D8
|
||||
{
|
||||
u8 filler_0000[0x1CCA];
|
||||
u8 field_0000[0x1000];
|
||||
u8 field_1000[0x4B0];
|
||||
u8 filler_14B0[0x408];
|
||||
u16 field_18B8;
|
||||
u8 filler_18BA[0x40A];
|
||||
u16 field_1CC4;
|
||||
u8 filler_1CC6[0x2];
|
||||
u8 field_1CC8;
|
||||
u8 field_1CC9;
|
||||
u8 field_1CCA;
|
||||
};
|
||||
u8 field_1CCB;
|
||||
u8 field_1CCC;
|
||||
u8 field_1CCD;
|
||||
u16 field_1CCE;
|
||||
TaskFunc field_1CD0;
|
||||
u8 filler_1CD4[0xC];
|
||||
}; // size = 0x1CE0
|
||||
|
||||
EWRAM_DATA struct UnkStruct_20399D4 * gUnknown_20399D4 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399D8 * gUnknown_20399D8 = NULL;
|
||||
@@ -77,9 +91,12 @@ void sub_80C0AB8(void);
|
||||
void sub_80C0B18(void);
|
||||
void sub_80C0B9C(void);
|
||||
void sub_80C0BB0(void);
|
||||
void sub_80C1098(u8 taskId);
|
||||
void sub_80C4AAC(u8 a0);
|
||||
void sub_80C4BE4(void);
|
||||
void sub_80C4C2C(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C4C48(u16 a0);
|
||||
void sub_80C4C5C(u16 a0);
|
||||
void sub_80C4C74(u16 a0, u16 a1);
|
||||
void sub_80C4C88(u16 a0);
|
||||
void sub_80C4C9C(u8 a0, u8 a1);
|
||||
@@ -117,14 +134,17 @@ u16 sub_80C3514(void);
|
||||
u16 sub_80C3580(void);
|
||||
|
||||
#include "data/text/map_section_names.h"
|
||||
|
||||
extern const u16 gUnknown_83EF23C[];
|
||||
extern const u16 gUnknown_83EF2DC[];
|
||||
extern const u32 gUnknown_83EF61C[];
|
||||
extern const u32 gUnknown_83F0580[];
|
||||
extern const u32 gUnknown_83F089C[];
|
||||
extern const u32 gUnknown_83F0AFC[];
|
||||
extern const u32 gUnknown_83F0C0C[];
|
||||
extern const u32 gUnknown_83F0CF0[];
|
||||
extern const u32 gUnknown_83F0F1C[];
|
||||
extern const u32 gUnknown_83F1084[];
|
||||
extern const u32 gUnknown_83F1190[];
|
||||
extern const u32 gUnknown_83F1978[];
|
||||
extern const u32 gUnknown_83F19A0[];
|
||||
extern const struct BgTemplate gUnknown_83F1A50[4];
|
||||
@@ -751,3 +771,75 @@ void sub_80C0E5C(u8 a0)
|
||||
{
|
||||
gUnknown_20399D4->field_479C = a0;
|
||||
}
|
||||
|
||||
void sub_80C0E70(u8 a0, u8 taskId, TaskFunc taskFunc)
|
||||
{
|
||||
gUnknown_20399D8 = AllocZeroed(sizeof(struct UnkStruct_20399D8));
|
||||
if (FlagGet(FLAG_SYS_SEVII_MAP_4567))
|
||||
gUnknown_20399D8->field_1CCC = 3;
|
||||
else if (FlagGet(FLAG_SYS_SEVII_MAP_123))
|
||||
gUnknown_20399D8->field_1CCC = 1;
|
||||
else
|
||||
gUnknown_20399D8->field_1CCC = 0;
|
||||
gUnknown_20399D8->field_18B8 = 0x58;
|
||||
gUnknown_20399D8->field_1CC4 = 0x98;
|
||||
switch (gUnknown_20399D8->field_1CCC)
|
||||
{
|
||||
case 1:
|
||||
LZ77UnCompWram(gUnknown_83F1084, gUnknown_20399D8->field_1000);
|
||||
gUnknown_20399D8->field_1CCE = 6;
|
||||
break;
|
||||
case 2: // never reached
|
||||
LZ77UnCompWram(gUnknown_83F1190, gUnknown_20399D8->field_1000);
|
||||
gUnknown_20399D8->field_1CCE = 4;
|
||||
break;
|
||||
case 3:
|
||||
default:
|
||||
gUnknown_20399D8->field_1CCE = 3;
|
||||
LZ77UnCompWram(gUnknown_83F0F1C, gUnknown_20399D8->field_1000);
|
||||
break;
|
||||
}
|
||||
LZ77UnCompWram(gUnknown_83F0580, gUnknown_20399D8->field_0000);
|
||||
gUnknown_20399D8->field_1CC8 = 0;
|
||||
gUnknown_20399D8->field_1CCA = a0;
|
||||
gUnknown_20399D8->field_1CD0 = taskFunc;
|
||||
gUnknown_20399D8->field_1CCB = sub_80C0E34();
|
||||
sub_80C4AAC(0);
|
||||
sub_80C4E74(gUnknown_8418EB0);
|
||||
gTasks[taskId].func = sub_80C1098;
|
||||
}
|
||||
|
||||
void sub_80C0FE0(void)
|
||||
{
|
||||
sub_80C4BE4();
|
||||
sub_80C4C2C(27, 4, 64);
|
||||
sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
|
||||
}
|
||||
|
||||
bool8 sub_80C1014(void)
|
||||
{
|
||||
if (gUnknown_20399D8->field_1CCD < 16)
|
||||
{
|
||||
sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
|
||||
gUnknown_20399D8->field_1CCD += 2;
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80C1058(void)
|
||||
{
|
||||
if (gUnknown_20399D8->field_1CCD >= 2)
|
||||
{
|
||||
gUnknown_20399D8->field_1CCD -= 2;
|
||||
sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user