diff options
-rw-r--r-- | asm/quest_log.s | 101 | ||||
-rw-r--r-- | include/overworld.h | 1 | ||||
-rw-r--r-- | include/palette.h | 2 | ||||
-rw-r--r-- | include/save.h | 1 | ||||
-rw-r--r-- | src/quest_log.c | 43 |
5 files changed, 46 insertions, 102 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 82816d861..b9ac6668c 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,107 +5,6 @@ .text - thumb_func_start sub_81118F4 -sub_81118F4: @ 81118F4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x1 - bl fade_screen - ldr r1, _0811190C @ =gUnknown_203AE8C - ldr r0, _08111910 @ =sub_8111914 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0811190C: .4byte gUnknown_203AE8C -_08111910: .4byte sub_8111914 - thumb_func_end sub_81118F4 - - thumb_func_start sub_8111914 -sub_8111914: @ 8111914 - push {lr} - ldr r0, _08111960 @ =gUnknown_2037AB8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811197A - bl ScriptContext2_Enable - ldr r1, _08111964 @ =gUnknown_203ADF8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _08111970 - ldr r0, _08111968 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r2, [r1] - movs r1, 0xCD - lsls r1, 3 - muls r1, r2 - adds r0, r1 - movs r1, 0x98 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08111970 - ldr r1, _0811196C @ =gUnknown_203ADF9 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - bl sub_8111368 - b _0811197A - .align 2, 0 -_08111960: .4byte gUnknown_2037AB8 -_08111964: .4byte gUnknown_203ADF8 -_08111968: .4byte gSaveBlock1Ptr -_0811196C: .4byte gUnknown_203ADF9 -_08111970: - ldr r1, _08111980 @ =gUnknown_3005E88 - movs r0, 0 - strb r0, [r1] - bl sub_8111984 -_0811197A: - pop {r0} - bx r0 - .align 2, 0 -_08111980: .4byte gUnknown_3005E88 - thumb_func_end sub_8111914 - - thumb_func_start sub_8111984 -sub_8111984: @ 8111984 - push {lr} - bl sub_806E6FC - bl ResetSaveCounters - movs r0, 0 - bl sub_80DA4FC - ldr r0, _081119B4 @ =sub_8057430 - bl SetMainCallback2 - ldr r1, _081119B8 @ =gUnknown_3005024 - ldr r0, _081119BC @ =sub_8111F60 - str r0, [r1] - bl FreeAllWindowBuffers - ldr r1, _081119C0 @ =gUnknown_203ADFA - movs r0, 0x3 - strb r0, [r1] - ldr r1, _081119C4 @ =gUnknown_203AE8C - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081119B4: .4byte sub_8057430 -_081119B8: .4byte gUnknown_3005024 -_081119BC: .4byte sub_8111F60 -_081119C0: .4byte gUnknown_203ADFA -_081119C4: .4byte gUnknown_203AE8C - thumb_func_end sub_8111984 - thumb_func_start sub_81119C8 sub_81119C8: @ 81119C8 push {lr} diff --git a/include/overworld.h b/include/overworld.h index ab9e114ef..ab3554137 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -75,6 +75,7 @@ void sub_8056938(void); void sub_8055D5C(struct WarpData *); void sub_80572A8(void); void sub_805726C(void); +void sub_8057430(void); extern u8 gUnknown_2031DD8; diff --git a/include/palette.h b/include/palette.h index d3bcd2271..ffdc0496d 100644 --- a/include/palette.h +++ b/include/palette.h @@ -68,4 +68,6 @@ void BeginHardwarePaletteFade(u8, u8, u8, u8, u8); void BlendPalettes(u32, u8, u16); void BlendPalettesUnfaded(u32, u8, u16); +extern struct PaletteFadeControl gUnknown_2037AB8; + #endif // GUARD_PALETTE_H diff --git a/include/save.h b/include/save.h index 3bd1ff8cf..80c2bf804 100644 --- a/include/save.h +++ b/include/save.h @@ -93,5 +93,6 @@ u16 sub_815355C(void); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); +void sub_80DA4FC(u8); #endif // GUARD_SAVE_H diff --git a/src/quest_log.c b/src/quest_log.c index da918be79..b7e38ef40 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -12,11 +12,13 @@ #include "script.h" #include "overworld.h" #include "field_fadetransition.h" +#include "field_weather.h" #include "item.h" #include "wild_encounter.h" #include "help_system.h" #include "unk_8159F40.h" #include "pokemon_storage_system.h" +#include "save.h" #include "quest_log.h" u8 gUnknown_3005E88; @@ -65,6 +67,10 @@ 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_8111914(void); +void sub_8111984(void); +bool8 sub_8111F60(void); void * sub_8113D08(void *, struct UnkStruct_203AE98 *); void * sub_8113D94(void *, struct UnkStruct_203AE98 *); void * sub_8113C20(void *, struct UnkStruct_203AE98 *); @@ -80,7 +86,6 @@ 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[]; @@ -883,3 +888,39 @@ void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) break; } } + +void sub_81118F4(s8 a0) +{ + fade_screen(1, a0); + gUnknown_203AE8C = sub_8111914; +} + +void sub_8111914(void) +{ + if (!gUnknown_2037AB8.active) + { + ScriptContext2_Enable(); + if (++gUnknown_203ADF8 < 4 && gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000) + { + gUnknown_203ADF9--; + sub_8111368(); + } + else + { + gUnknown_3005E88 = 0; + sub_8111984(); + } + } +} + +void sub_8111984(void) +{ + sub_806E6FC(); + ResetSaveCounters(); + sub_80DA4FC(0); + SetMainCallback2(sub_8057430); + gUnknown_3005024 = sub_8111F60; + FreeAllWindowBuffers(); + gUnknown_203ADFA = 3; + gUnknown_203AE8C = NULL; +} |