summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s106
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/region_map.h1
-rw-r--r--src/quest_log.c39
4 files changed, 41 insertions, 106 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 2a6410b3f..1ee1361d6 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,112 +5,6 @@
.text
- thumb_func_start sub_8111FCC
-sub_8111FCC: @ 8111FCC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08112024 @ =gTasks
- adds r5, r1, r0
- ldr r0, _08112028 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0811201E
- ldr r0, _0811202C @ =gUnknown_203AE94
- ldrb r1, [r0]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- beq _0811200E
- ldr r0, _08112030 @ =gStringVar1
- ldr r1, _08112034 @ =gMapHeader
- ldrb r1, [r1, 0x14]
- bl sub_80C4DF8
- ldr r0, _08112038 @ =gStringVar4
- ldr r1, _0811203C @ =gUnknown_841B073
- bl StringExpandPlaceholders
- bl sub_8111D10
-_0811200E:
- strh r4, [r5, 0x8]
- strh r4, [r5, 0xA]
- ldr r0, _08112040 @ =sub_8112044
- str r0, [r5]
- bl player_bitmagic
- bl ScriptContext2_Enable
-_0811201E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08112024: .4byte gTasks
-_08112028: .4byte gPaletteFade
-_0811202C: .4byte gUnknown_203AE94
-_08112030: .4byte gStringVar1
-_08112034: .4byte gMapHeader
-_08112038: .4byte gStringVar4
-_0811203C: .4byte gUnknown_841B073
-_08112040: .4byte sub_8112044
- thumb_func_end sub_8111FCC
-
- thumb_func_start sub_8112044
-sub_8112044: @ 8112044
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0811208C @ =gTasks
- adds r4, r1, r0
- ldr r0, _08112090 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08112076
- ldrh r2, [r4, 0x8]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _08112076
- ldr r0, _08112094 @ =gUnknown_203AE94
- ldrb r1, [r0]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- bne _081120A0
-_08112076:
- bl sub_8111E20
- movs r1, 0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _08112098 @ =sub_81120AC
- str r0, [r4]
- ldr r0, _0811209C @ =gUnknown_203ADFA
- strb r1, [r0]
- b _081120A4
- .align 2, 0
-_0811208C: .4byte gTasks
-_08112090: .4byte gMain
-_08112094: .4byte gUnknown_203AE94
-_08112098: .4byte sub_81120AC
-_0811209C: .4byte gUnknown_203ADFA
-_081120A0:
- adds r0, r2, 0x1
- strh r0, [r4, 0x8]
-_081120A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8112044
-
thumb_func_start sub_81120AC
sub_81120AC: @ 81120AC
push {r4-r6,lr}
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 7e58efb9f..4b5f2de95 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -1,6 +1,7 @@
#ifndef GUARD_GBA_GBA_H
#define GUARD_GBA_GBA_H
+#include <string.h>
#include "defines.h"
#include "io_reg.h"
#include "types.h"
diff --git a/include/region_map.h b/include/region_map.h
index 91384d166..eb84a71b1 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -310,5 +310,6 @@ void CreateRegionMapPlayerIcon(u16 x, u16 y);
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
+void sub_80C4DF8(u8 *, u8);
#endif //GUARD_REGION_MAP_H
diff --git a/src/quest_log.c b/src/quest_log.c
index 2c98ca377..fbf8b018e 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -16,6 +16,7 @@
#include "map_obj_80688E4.h"
#include "field_player_avatar.h"
#include "item.h"
+#include "region_map.h"
#include "wild_encounter.h"
#include "help_system.h"
#include "unk_8159F40.h"
@@ -91,6 +92,8 @@ void sub_8111E84(void);
bool8 sub_8111F60(void);
void sub_8111F8C(u8);
void sub_8111FCC(u8);
+void sub_8112044(u8);
+void sub_81120AC(u8);
void sub_8112364(void);
void sub_8112888(u8);
void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
@@ -111,6 +114,7 @@ void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
extern const u8 gUnknown_841A155[];
+extern const u8 gUnknown_841B073[];
const struct WindowTemplate gUnknown_845661C[3] = {
{ 0, 0, 0, 30, 2, 15, 0x0e9 },
@@ -1231,3 +1235,38 @@ void sub_8111F8C(u8 taskId)
task->func = sub_8111FCC;
}
}
+
+void sub_8111FCC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (!gPaletteFade.active)
+ {
+ if (gUnknown_203AE94.unk_0_6 != 1)
+ {
+ sub_80C4DF8(gStringVar1, gMapHeader.regionMapSectionId);
+ StringExpandPlaceholders(gStringVar4, gUnknown_841B073);
+ sub_8111D10();
+ }
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->func = sub_8112044;
+ player_bitmagic();
+ ScriptContext2_Enable();
+ }
+}
+
+void sub_8112044(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON) || task->data[0] >= 0x7f || gUnknown_203AE94.unk_0_6 == 1)
+ {
+ sub_8111E20();
+ task->data[0] = 0;
+ task->func = sub_81120AC;
+ gUnknown_203ADFA = 0;
+ }
+ else
+ task->data[0]++;
+}