summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-11 10:13:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-11 10:13:08 -0400
commit230f58b77dae53c2934cafbff6ef96807232a9d0 (patch)
tree7eb2f07a4b8184fa062b2078ae3a12272d54bbe5
parent7e35bd4266a9573a6fbc6d73efb5175a44ba5b93 (diff)
through sub_8110E20
-rw-r--r--asm/quest_log.s128
-rw-r--r--include/global.h23
-rw-r--r--src/quest_log.c32
3 files changed, 51 insertions, 132 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index f97ef90eb..22d19fab9 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -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}
diff --git a/include/global.h b/include/global.h
index 1655ac4e3..f1efeb4e0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -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;
diff --git a/src/quest_log.c b/src/quest_log.c
index 782e0efe4..08b504057 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -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);
+}