diff options
-rw-r--r-- | asm/quest_log.s | 106 | ||||
-rw-r--r-- | include/gba/gba.h | 1 | ||||
-rw-r--r-- | include/region_map.h | 1 | ||||
-rw-r--r-- | src/quest_log.c | 39 |
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]++; +} |