diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 21:17:43 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 21:17:43 -0400 |
commit | d1381d8b77ee691cc5dc1fe1fdcb158e7524283a (patch) | |
tree | 3d338bc3fceafd05af7bbcf4e7e3a92669f83902 | |
parent | 10fff9c6f2d29899952d1751d3de827e7e98bb60 (diff) |
Start decompiling quest_log.o
-rw-r--r-- | asm/quest_log.s | 87 | ||||
-rw-r--r-- | include/global.h | 9 | ||||
-rw-r--r-- | include/quest_log.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/quest_log.c | 43 |
5 files changed, 56 insertions, 88 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 9b7c29ccc..cc5c32e64 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,93 +5,6 @@ .text - thumb_func_start sub_8110840 -sub_8110840: @ 8110840 - push {lr} - ldr r1, _08110888 @ =gSaveBlock1Ptr - ldr r1, [r1] - subs r1, r0 - ldr r2, _0811088C @ =gUnknown_203AE04 - ldr r0, [r2] - cmp r0, 0 - beq _08110854 - adds r0, r1 - str r0, [r2] -_08110854: - ldr r0, _08110890 @ =gUnknown_203ADFA - ldrb r2, [r0] - cmp r2, 0 - beq _08110882 - ldr r3, _08110894 @ =gUnknown_203AE08 - ldr r0, [r3] - cmp r0, 0 - beq _08110868 - adds r0, r1 - str r0, [r3] -_08110868: - cmp r2, 0x2 - bne _08110882 - ldr r2, _08110898 @ =gUnknown_203AE0C - movs r3, 0x1F -_08110870: - ldr r0, [r2] - cmp r0, 0 - beq _0811087A - adds r0, r1 - str r0, [r2] -_0811087A: - adds r2, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _08110870 -_08110882: - pop {r0} - bx r0 - .align 2, 0 -_08110888: .4byte gSaveBlock1Ptr -_0811088C: .4byte gUnknown_203AE04 -_08110890: .4byte gUnknown_203ADFA -_08110894: .4byte gUnknown_203AE08 -_08110898: .4byte gUnknown_203AE0C - thumb_func_end sub_8110840 - - thumb_func_start sub_811089C -sub_811089C: @ 811089C - push {lr} - ldr r0, _081108D8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 5 - adds r0, r1 - movs r2, 0xCD - lsls r2, 5 - movs r1, 0 - bl memset - ldr r0, _081108DC @ =gUnknown_203ADF8 - movs r1, 0 - strb r1, [r0] - ldr r0, _081108E0 @ =gUnknown_203ADFA - strb r1, [r0] - ldr r0, _081108E4 @ =gUnknown_203AE8C - movs r1, 0 - str r1, [r0] - ldr r0, _081108E8 @ =gUnknown_203AE08 - str r1, [r0] - ldr r0, _081108EC @ =gUnknown_203AE04 - str r1, [r0] - bl sub_8113BD8 - bl sub_81138F8 - pop {r0} - bx r0 - .align 2, 0 -_081108D8: .4byte gSaveBlock1Ptr -_081108DC: .4byte gUnknown_203ADF8 -_081108E0: .4byte gUnknown_203ADFA -_081108E4: .4byte gUnknown_203AE8C -_081108E8: .4byte gUnknown_203AE08 -_081108EC: .4byte gUnknown_203AE04 - thumb_func_end sub_811089C - thumb_func_start sub_81108F0 sub_81108F0: @ 81108F0 push {lr} diff --git a/include/global.h b/include/global.h index 11a79ebe8..791eb2dbf 100644 --- a/include/global.h +++ b/include/global.h @@ -474,6 +474,11 @@ struct MysteryEventStruct u8 unk_1; }; +struct QuestLog +{ + /*0x0000*/ u8 filler_0000[0x19a0]; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 300 @@ -494,7 +499,9 @@ struct SaveBlock1 /*0x63a*/ u8 trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; - /*0x0EE0*/ u8 fillerEE0[0x2580]; + /*0x0EE0*/ u8 fillerEE0[0x420]; + /*0x1300*/ struct QuestLog questLog; + /*0x2ca0*/ u8 filler2CA0[0x7c0]; /*0x3460*/ struct MysteryEventStruct unk_3460; /*0x3464*/ u8 filler_3464[0x1b8]; /*0x361C*/ struct RamScript ramScript; diff --git a/include/quest_log.h b/include/quest_log.h new file mode 100644 index 000000000..015f4966e --- /dev/null +++ b/include/quest_log.h @@ -0,0 +1,4 @@ +#ifndef GUARD_QUEST_LOG_H +#define GUARD_QUEST_LOG_H + +#endif //GUARD_QUEST_LOG_H diff --git a/ld_script.txt b/ld_script.txt index 70084ef0e..0cd3d6202 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -222,6 +222,7 @@ SECTIONS { asm/item_pc.o(.text); asm/mailbox_pc.o(.text); asm/menu.o(.text); + src/quest_log.o(.text); asm/quest_log.o(.text); asm/link_rfu_3.o(.text); asm/pokemon_special_anim.o(.text); diff --git a/src/quest_log.c b/src/quest_log.c new file mode 100644 index 000000000..00b79516d --- /dev/null +++ b/src/quest_log.c @@ -0,0 +1,43 @@ +#include "global.h" +#include "quest_log.h" + +EWRAM_DATA u8 gUnknown_203ADF8 = 0; +EWRAM_DATA u8 gUnknown_203ADFA = 0; +EWRAM_DATA void * gUnknown_203AE04 = NULL; +EWRAM_DATA void * gUnknown_203AE08 = NULL; +EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL}; +EWRAM_DATA u32 gUnknown_203AE8C = 0; + +void sub_8113BD8(void); +void sub_81138F8(void); + +void sub_8110840(void * a0) +{ + size_t r1 = (void *)gSaveBlock1Ptr - a0; + if (gUnknown_203AE04) + gUnknown_203AE04 += r1; + if (gUnknown_203ADFA != 0) + { + if (gUnknown_203AE08) + gUnknown_203AE08 += r1; + if (gUnknown_203ADFA == 2) + { + int r3; + for (r3 = 0; r3 < 0x20; r3++) + if (gUnknown_203AE0C[r3]) + gUnknown_203AE0C[r3] += r1; + } + } +} + +void sub_811089C(void) +{ + gSaveBlock1Ptr->questLog = (struct QuestLog){}; + gUnknown_203ADF8 = 0; + gUnknown_203ADFA = 0; + gUnknown_203AE8C = 0; + gUnknown_203AE08 = 0; + gUnknown_203AE04 = 0; + sub_8113BD8(); + sub_81138F8(); +} |