summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s101
-rw-r--r--include/overworld.h1
-rw-r--r--include/palette.h2
-rw-r--r--include/save.h1
-rw-r--r--src/quest_log.c43
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;
+}