through sub_8110E20

This commit is contained in:
PikalaxALT
2018-10-11 10:13:08 -04:00
parent 7e35bd4266
commit 230f58b77d
3 changed files with 51 additions and 132 deletions
-128
View File
@@ -5,134 +5,6 @@
.text
thumb_func_start sub_8110D48
sub_8110D48: @ 8110D48
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, _08110D90 @ =gSaveBlock1Ptr
movs r1, 0xCD
lsls r1, 3
muls r1, r0
movs r0, 0x98
lsls r0, 5
adds r1, r0
ldr r0, [r4]
adds r5, r0, r1
movs r1, 0xEE
lsls r1, 4
adds r0, r1
movs r2, 0xA4
lsls r2, 1
adds r1, r5, r2
movs r2, 0x90
bl CpuSet
ldr r0, [r4]
movs r1, 0x80
lsls r1, 5
adds r0, r1
movs r2, 0x9A
lsls r2, 2
adds r1, r5, r2
movs r2, 0x80
lsls r2, 1
bl CpuSet
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08110D90: .4byte gSaveBlock1Ptr
thumb_func_end sub_8110D48
thumb_func_start sub_8110D94
sub_8110D94: @ 8110D94
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r4, 0
ldr r0, _08110E14 @ =gSaveBlock1Ptr
mov r10, r0
ldr r1, _08110E18 @ =0x0000063a
mov r9, r1
movs r2, 0x1
mov r8, r2
_08110DAE:
lsls r1, r4, 1
mov r7, sp
adds r2, r7, r1
movs r0, 0
strh r0, [r2]
movs r3, 0
adds r6, r1, 0
adds r0, r4, 0x1
str r0, [sp, 0x8]
mov r1, r10
ldr r0, [r1]
mov r7, r9
adds r5, r0, r7
lsls r1, r4, 4
_08110DCA:
adds r0, r1, r3
adds r0, r5, r0
ldrb r0, [r0]
cmp r0, 0
beq _08110DDE
mov r0, r8
lsls r0, r3
ldrh r7, [r2]
adds r0, r7
strh r0, [r2]
_08110DDE:
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0xF
bls _08110DCA
ldr r1, _08110E1C @ =0x000040aa
adds r0, r4, r1
lsls r0, 16
lsrs r0, 16
mov r2, sp
adds r1, r2, r6
ldrh r1, [r1]
bl VarSet
ldr r7, [sp, 0x8]
lsls r0, r7, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _08110DAE
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08110E14: .4byte gSaveBlock1Ptr
_08110E18: .4byte 0x0000063a
_08110E1C: .4byte 0x000040aa
thumb_func_end sub_8110D94
thumb_func_start sub_8110E20
sub_8110E20: @ 8110E20
push {lr}
ldr r0, _08110E34 @ =0x000040ae
ldr r1, _08110E38 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldrh r1, [r1, 0x32]
bl VarSet
pop {r0}
bx r0
.align 2, 0
_08110E34: .4byte 0x000040ae
_08110E38: .4byte gSaveBlock1Ptr
thumb_func_end sub_8110E20
thumb_func_start sub_8110E3C
sub_8110E3C: @ 8110E3C
push {lr}
+19 -4
View File
@@ -492,7 +492,9 @@ struct QuestLog
/*0x0003*/ s8 unk_003;
/*0x0004*/ s16 unk_004;
/*0x0006*/ s16 unk_006;
/*0x0008*/ u8 filler_008[0x460];
/*0x0008*/ u8 filler_008[0x140];
/*0x0148*/ u8 unk_148[0x120];
/*0x02c8*/ u8 unk_268[0x200];
/*0x0468*/ struct QuestLogNPCData npcData[64];
/*0x0568*/ u8 filler_568[0x100];
/*0x0668*/ u8 end[0];
@@ -500,7 +502,7 @@ struct QuestLog
#define MAP_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 300
#define FLAGS_COUNT 288 // 300
#define VARS_COUNT 256
#define MAIL_COUNT 16
@@ -512,13 +514,26 @@ struct SaveBlock1
/*0x14*/ struct WarpData warp2;
/*0x1C*/ struct WarpData lastHealLocation;
/*0x24*/ struct WarpData warp4;
/*0x002C*/ u8 filler2C[0x60C];
/*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
/*0x2F*/ u8 filler_2F;
/*0x30*/ u8 flashLevel;
/*0x32*/ u16 mapDataId;
/*0x34*/ u16 mapView[0x100];
/*0x234*/ u8 playerPartyCount;
/*0x238*/ struct Pokemon playerParty[PARTY_SIZE];
/*0x490*/ u32 money;
/*0x494*/ u16 coins;
/*0x496*/ u16 registeredItem; // registered for use with SELECT button
/*0x498*/ u8 filler_0498[0x1a0];
/*0x638*/ u8 trainerRematchStepCounter;
u8 filler_639;
/*0x63a*/ u8 trainerRematches[100];
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
/*0x0EE0*/ u8 fillerEE0[0x420];
/*0x0EE0*/ u8 flags[FLAGS_COUNT];
/*0x1000*/ u16 vars[VARS_COUNT];
/*0x1200*/ u8 filler1200[0x100];
/*0x1300*/ struct QuestLog questLog[4];
/*0x2ca0*/ u8 filler2CA0[0x7c0];
/*0x3460*/ struct MysteryEventStruct unk_3460;
+32
View File
@@ -392,3 +392,35 @@ void sub_8110BE8(u8 a0)
"\t.pool");
}
#endif // NONMATCHING
void sub_8110D48(u8 a0)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
CpuCopy16(gSaveBlock1Ptr->flags, questLog->unk_148, 0x120);
CpuCopy16(gSaveBlock1Ptr->vars, questLog->unk_268, 0x200);
}
void sub_8110D94(void)
{
u16 i, j;
u16 sp0[4];
for (i = 0; i < 4; i++)
{
sp0[i] = 0;
for (j = 0; j < 16; j++)
{
if (gSaveBlock1Ptr->trainerRematches[16 * i + j])
{
sp0[i] += (1 << j);
}
}
VarSet(VAR_0x40AA + i, sp0[i]);
}
}
void sub_8110E20(void)
{
VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapDataId);
}