diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-11 10:13:08 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-11 10:13:08 -0400 |
commit | 230f58b77dae53c2934cafbff6ef96807232a9d0 (patch) | |
tree | 7eb2f07a4b8184fa062b2078ae3a12272d54bbe5 | |
parent | 7e35bd4266a9573a6fbc6d73efb5175a44ba5b93 (diff) |
through sub_8110E20
-rw-r--r-- | asm/quest_log.s | 128 | ||||
-rw-r--r-- | include/global.h | 23 | ||||
-rw-r--r-- | src/quest_log.c | 32 |
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); +} |