through sub_811175C
This commit is contained in:
-280
@@ -5,286 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8111688
|
||||
sub_8111688: @ 8111688
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x8
|
||||
movs r5, 0
|
||||
ldr r0, _081116CC @ =gSaveBlock1Ptr
|
||||
mov r8, r0
|
||||
ldr r7, _081116D0 @ =0x0000063a
|
||||
_08111698:
|
||||
ldr r1, _081116D4 @ =0x000040aa
|
||||
adds r0, r5, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl VarGet
|
||||
lsls r1, r5, 1
|
||||
add r1, sp
|
||||
strh r0, [r1]
|
||||
movs r4, 0
|
||||
adds r6, r5, 0x1
|
||||
adds r3, r1, 0
|
||||
lsls r5, 4
|
||||
_081116B2:
|
||||
ldrh r0, [r3]
|
||||
movs r2, 0x1
|
||||
ands r2, r0
|
||||
cmp r2, 0
|
||||
beq _081116D8
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r1, r5, r4
|
||||
adds r0, r7
|
||||
adds r0, r1
|
||||
movs r1, 0x1E
|
||||
strb r1, [r0]
|
||||
b _081116E4
|
||||
.align 2, 0
|
||||
_081116CC: .4byte gSaveBlock1Ptr
|
||||
_081116D0: .4byte 0x0000063a
|
||||
_081116D4: .4byte 0x000040aa
|
||||
_081116D8:
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r1, r5, r4
|
||||
adds r0, r7
|
||||
adds r0, r1
|
||||
strb r2, [r0]
|
||||
_081116E4:
|
||||
ldrh r0, [r3]
|
||||
lsrs r0, 1
|
||||
strh r0, [r3]
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
cmp r4, 0xF
|
||||
bls _081116B2
|
||||
lsls r0, r6, 16
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x3
|
||||
bls _08111698
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8111688
|
||||
|
||||
thumb_func_start sub_8111708
|
||||
sub_8111708: @ 8111708
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x1C
|
||||
ldr r0, _08111754 @ =0x000040ae
|
||||
bl VarGet
|
||||
ldr r4, _08111758 @ =gSaveBlock1Ptr
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x32]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0811174A
|
||||
movs r0, 0x4
|
||||
ldrsb r0, [r1, r0]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldrb r1, [r1, 0x5]
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
bl get_mapheader_by_bank_and_number
|
||||
mov r1, sp
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
ldr r1, [r4]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x12]
|
||||
strh r0, [r1, 0x32]
|
||||
_0811174A:
|
||||
add sp, 0x1C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08111754: .4byte 0x000040ae
|
||||
_08111758: .4byte gSaveBlock1Ptr
|
||||
thumb_func_end sub_8111708
|
||||
|
||||
thumb_func_start sub_811175C
|
||||
sub_811175C: @ 811175C
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
mov r8, r1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
movs r6, 0
|
||||
mov r9, r6
|
||||
movs r2, 0x80
|
||||
lsls r2, 1
|
||||
mov r0, r8
|
||||
movs r1, 0
|
||||
bl memset
|
||||
movs r7, 0
|
||||
ldr r2, _081117B8 @ =gUnknown_203AE0C
|
||||
movs r1, 0
|
||||
_08111780:
|
||||
lsls r0, r7, 2
|
||||
adds r0, r2
|
||||
str r1, [r0]
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
cmp r7, 0x1F
|
||||
bls _08111780
|
||||
ldr r1, _081117BC @ =gSaveBlock1Ptr
|
||||
movs r0, 0xCD
|
||||
lsls r0, 3
|
||||
muls r0, r4
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
ldr r1, _081117C0 @ =0x00001868
|
||||
adds r4, r0, r1
|
||||
movs r7, 0
|
||||
_081117A2:
|
||||
ldrh r0, [r4]
|
||||
ldr r1, _081117C4 @ =0x00000fff
|
||||
ands r1, r0
|
||||
cmp r1, 0x29
|
||||
bls _081117AE
|
||||
b _081118AC
|
||||
_081117AE:
|
||||
lsls r0, r1, 2
|
||||
ldr r1, _081117C8 @ =_081117CC
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_081117B8: .4byte gUnknown_203AE0C
|
||||
_081117BC: .4byte gSaveBlock1Ptr
|
||||
_081117C0: .4byte 0x00001868
|
||||
_081117C4: .4byte 0x00000fff
|
||||
_081117C8: .4byte _081117CC
|
||||
.align 2, 0
|
||||
_081117CC:
|
||||
.4byte _08111874
|
||||
.4byte _08111880
|
||||
.4byte _08111880
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _081118AC
|
||||
.4byte _0811188C
|
||||
.4byte _081118AC
|
||||
.4byte _08111898
|
||||
_08111874:
|
||||
lsls r1, r6, 3
|
||||
add r1, r8
|
||||
adds r0, r4, 0
|
||||
bl sub_8113D08
|
||||
b _081118A2
|
||||
_08111880:
|
||||
lsls r1, r6, 3
|
||||
add r1, r8
|
||||
adds r0, r4, 0
|
||||
bl sub_8113D94
|
||||
b _081118A2
|
||||
_0811188C:
|
||||
lsls r1, r6, 3
|
||||
add r1, r8
|
||||
adds r0, r4, 0
|
||||
bl sub_8113C20
|
||||
b _081118A2
|
||||
_08111898:
|
||||
lsls r1, r6, 3
|
||||
add r1, r8
|
||||
adds r0, r4, 0
|
||||
bl sub_8113C8C
|
||||
_081118A2:
|
||||
adds r4, r0, 0
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
b _081118D2
|
||||
_081118AC:
|
||||
mov r0, r9
|
||||
lsls r1, r0, 2
|
||||
ldr r5, _081118F0 @ =gUnknown_203AE0C
|
||||
adds r1, r5
|
||||
adds r0, r4, 0
|
||||
bl sub_8113A78
|
||||
adds r4, r0, 0
|
||||
mov r1, r9
|
||||
cmp r1, 0
|
||||
bne _081118C8
|
||||
ldr r0, [r5]
|
||||
bl sub_8113ABC
|
||||
_081118C8:
|
||||
mov r0, r9
|
||||
adds r0, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r9, r0
|
||||
_081118D2:
|
||||
cmp r4, 0
|
||||
beq _081118E2
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
cmp r7, 0x1F
|
||||
bhi _081118E2
|
||||
b _081117A2
|
||||
_081118E2:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081118F0: .4byte gUnknown_203AE0C
|
||||
thumb_func_end sub_811175C
|
||||
|
||||
thumb_func_start sub_81118F4
|
||||
sub_81118F4: @ 81118F4
|
||||
push {lr}
|
||||
|
||||
+2
-2
@@ -496,8 +496,8 @@ struct QuestLog
|
||||
/*0x0148*/ u8 unk_148[0x120];
|
||||
/*0x02c8*/ u8 unk_268[0x200];
|
||||
/*0x0468*/ struct QuestLogNPCData npcData[64];
|
||||
/*0x0568*/ u8 filler_568[0x100];
|
||||
/*0x0668*/ u8 end[0];
|
||||
/*0x0568*/ u16 unk_568[0x80];
|
||||
/*0x0668*/ u16 end[0];
|
||||
};
|
||||
|
||||
#define MAP_OBJECTS_COUNT 16
|
||||
|
||||
+96
-11
@@ -41,7 +41,7 @@ EWRAM_DATA u8 gUnknown_203ADFA = 0;
|
||||
EWRAM_DATA u16 gUnknown_203ADFC = 0;
|
||||
EWRAM_DATA u8 gUnknown_203ADFE[3];
|
||||
EWRAM_DATA void * gUnknown_203AE04 = NULL;
|
||||
EWRAM_DATA void * gUnknown_203AE08 = NULL;
|
||||
EWRAM_DATA u16 * gUnknown_203AE08 = NULL;
|
||||
EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL};
|
||||
EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0;
|
||||
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
|
||||
@@ -65,7 +65,12 @@ u16 sub_8111618(void);
|
||||
u16 sub_811164C(void);
|
||||
void sub_8111688(void);
|
||||
void sub_811175C(u8, struct UnkStruct_203AE98 *);
|
||||
void sub_81118F4(s8);
|
||||
void * sub_8113D08(void *, struct UnkStruct_203AE98 *);
|
||||
void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
|
||||
void * sub_8113C20(void *, struct UnkStruct_203AE98 *);
|
||||
void * sub_8113C8C(void *, struct UnkStruct_203AE98 *);
|
||||
void * sub_8113A78(void *, void **);
|
||||
void sub_8113ABC(void *);
|
||||
void sub_81138F8(void);
|
||||
void sub_8111AD8(void);
|
||||
void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
|
||||
@@ -75,6 +80,7 @@ void sub_8113BD8(void);
|
||||
void * sub_8113BF4(void *);
|
||||
void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
|
||||
void * sub_8113CC8(void *, struct UnkStruct_203AE98 *);
|
||||
void sub_81118F4(s8);
|
||||
|
||||
extern const u8 gUnknown_841A155[];
|
||||
|
||||
@@ -94,7 +100,7 @@ void sub_8110840(void * a0)
|
||||
if (gUnknown_203ADFA != 0)
|
||||
{
|
||||
if (gUnknown_203AE08)
|
||||
gUnknown_203AE08 += r1;
|
||||
gUnknown_203AE08 = (void *)gUnknown_203AE08 + r1;
|
||||
if (gUnknown_203ADFA == 2)
|
||||
{
|
||||
int r3;
|
||||
@@ -111,7 +117,7 @@ void sub_811089C(void)
|
||||
gUnknown_203ADF8 = 0;
|
||||
gUnknown_203ADFA = 0;
|
||||
gUnknown_203AE8C = 0;
|
||||
gUnknown_203AE08 = 0;
|
||||
gUnknown_203AE08 = NULL;
|
||||
gUnknown_203AE04 = 0;
|
||||
sub_8113BD8();
|
||||
sub_81138F8();
|
||||
@@ -134,20 +140,20 @@ void sub_811092C(void)
|
||||
gUnknown_203AE8C();
|
||||
}
|
||||
|
||||
bool8 sub_8110944(u8 * a0, size_t a1)
|
||||
bool8 sub_8110944(void * a0, size_t a1)
|
||||
{
|
||||
u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568;
|
||||
u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
|
||||
void * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568;
|
||||
void * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
|
||||
r0 -= a1;
|
||||
if (a0 < r2 || a0 > r0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8110988(u8 * a0, size_t a1)
|
||||
bool8 sub_8110988(void * a0, size_t a1)
|
||||
{
|
||||
u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568;
|
||||
u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
|
||||
void * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568;
|
||||
void * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
|
||||
r0 -= a1;
|
||||
if (a0 < r2 || a0 > r0)
|
||||
return FALSE;
|
||||
@@ -209,7 +215,7 @@ void sub_8110AEC(u16 a0)
|
||||
|
||||
sub_81108F0(gUnknown_203ADF8);
|
||||
sub_8113B88();
|
||||
gUnknown_203AE08 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568;
|
||||
gUnknown_203AE08 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568;
|
||||
if ((a0 >= 12 && a0 < 20) || a0 == 35)
|
||||
gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 = 2;
|
||||
else
|
||||
@@ -798,3 +804,82 @@ u16 sub_811164C(void)
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
void sub_8111688(void)
|
||||
{
|
||||
u16 i, j;
|
||||
u16 sp0[4];
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
sp0[i] = VarGet(VAR_0x40AA + i);
|
||||
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (sp0[i] & 1)
|
||||
gSaveBlock1Ptr->trainerRematches[16 * i + j] = 30;
|
||||
else
|
||||
gSaveBlock1Ptr->trainerRematches[16 * i + j] = 0;
|
||||
sp0[i] >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8111708(void)
|
||||
{
|
||||
struct MapHeader sp0;
|
||||
|
||||
gSaveBlock1Ptr->mapDataId = VarGet(VAR_0x40AE);
|
||||
if (gSaveBlock1Ptr->mapDataId == 0)
|
||||
{
|
||||
sp0 = *get_mapheader_by_bank_and_number(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
|
||||
gSaveBlock1Ptr->mapDataId = sp0.mapDataId;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
|
||||
{
|
||||
u16 i;
|
||||
u16 *r4;
|
||||
u16 r6 = 0;
|
||||
u16 r9 = 0;
|
||||
|
||||
memset(a1, 0, 32 * sizeof(struct UnkStruct_203AE98));
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
gUnknown_203AE0C[i] = NULL;
|
||||
}
|
||||
|
||||
r4 = gSaveBlock1Ptr->questLog[a0].unk_568;
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
switch (*r4 & 0xFFF)
|
||||
{
|
||||
case 0:
|
||||
r4 = sub_8113D08(r4, &a1[r6]);
|
||||
r6++;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
r4 = sub_8113D94(r4, &a1[r6]);
|
||||
r6++;
|
||||
break;
|
||||
case 39:
|
||||
r4 = sub_8113C20(r4, &a1[r6]);
|
||||
r6++;
|
||||
break;
|
||||
case 41:
|
||||
r4 = sub_8113C8C(r4, &a1[r6]);
|
||||
r6++;
|
||||
break;
|
||||
default:
|
||||
r4 = sub_8113A78(r4, &gUnknown_203AE0C[r9]);
|
||||
if (r9 == 0)
|
||||
sub_8113ABC(gUnknown_203AE0C[0]);
|
||||
r9++;
|
||||
break;
|
||||
}
|
||||
if (r4 == NULL)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user