diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-12 15:05:47 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-12 15:05:47 -0400 |
commit | 67cbc482982245c8cdd0466f59d73ab89d09b633 (patch) | |
tree | d284d7cf47f8605a7114cee70c89d90acb8f7200 | |
parent | 58f91389a345f8dab7c0da2637f9063a823f495f (diff) |
sub_81120AC
-rw-r--r-- | asm/quest_log.s | 141 | ||||
-rw-r--r-- | include/map_name_popup.h | 1 | ||||
-rw-r--r-- | include/map_obj_lock.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | src/quest_log.c | 54 |
5 files changed, 58 insertions, 141 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 1ee1361d6..9809b1b52 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,147 +5,6 @@ .text - thumb_func_start sub_81120AC -sub_81120AC: @ 81120AC - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081120D0 @ =gTasks+0x8 - adds r6, r0, r1 - movs r0, 0 - ldrsh r1, [r6, r0] - cmp r1, 0x1 - beq _08112110 - cmp r1, 0x1 - bgt _081120D4 - cmp r1, 0 - beq _081120DA - b _08112164 - .align 2, 0 -_081120D0: .4byte gTasks+0x8 -_081120D4: - cmp r1, 0x2 - beq _0811214C - b _08112164 -_081120DA: - ldr r0, _08112104 @ =gUnknown_2031DD8 - strb r1, [r0] - bl sub_8055DC4 - bl sub_811229C - ldr r0, _08112108 @ =gUnknown_203ADFE - ldrb r0, [r0] - ldr r2, _0811210C @ =gUnknown_845661C - ldrb r1, [r2, 0x3] - lsls r1, 3 - str r1, [sp] - ldrb r1, [r2, 0x4] - lsls r1, 3 - str r1, [sp, 0x4] - movs r1, 0xF - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - b _0811215C - .align 2, 0 -_08112104: .4byte gUnknown_2031DD8 -_08112108: .4byte gUnknown_203ADFE -_0811210C: .4byte gUnknown_845661C -_08112110: - adds r0, r5, 0 - bl sub_81121D8 - lsls r0, 24 - cmp r0, 0 - beq _081121B8 - movs r5, 0 -_0811211E: - ldr r4, _08112148 @ =gUnknown_203ADFE - adds r4, r5, r4 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0811211E - movs r0, 0 - strh r0, [r6, 0x2] - b _0811215C - .align 2, 0 -_08112148: .4byte gUnknown_203ADFE -_0811214C: - ldrh r1, [r6, 0x2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x1F - bgt _0811215C - adds r0, r1, 0x1 - strh r0, [r6, 0x2] - b _081121B8 -_0811215C: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _081121B8 -_08112164: - ldr r6, _081121C0 @ =gUnknown_203AE94 - ldrb r1, [r6] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x40 - bne _08112176 - movs r0, 0x1 - bl sub_8098110 -_08112176: - ldr r4, _081121C4 @ =gUnknown_203AE90 - ldr r0, [r4] - ldr r1, _081121C8 @ =gUnknown_20371F8 - movs r2, 0x80 - lsls r2, 2 - bl CpuSet - ldr r0, [r4] - bl Free - movs r4, 0 - str r4, [r6] - bl sub_80696C0 - bl ScriptContext2_Disable - ldr r2, _081121CC @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _081121D0 @ =gUnknown_2036E28 - strb r4, [r0] - movs r0, 0 - bl sub_8082740 - ldr r1, _081121D4 @ =gUnknown_3005ECC - movs r0, 0x1 - strb r0, [r1] - adds r0, r5, 0 - bl DestroyTask -_081121B8: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081121C0: .4byte gUnknown_203AE94 -_081121C4: .4byte gUnknown_203AE90 -_081121C8: .4byte gUnknown_20371F8 -_081121CC: .4byte gTextFlags -_081121D0: .4byte gUnknown_2036E28 -_081121D4: .4byte gUnknown_3005ECC - thumb_func_end sub_81120AC - thumb_func_start sub_81121D8 sub_81121D8: @ 81121D8 push {r4-r7,lr} diff --git a/include/map_name_popup.h b/include/map_name_popup.h index 8a9043a3f..0cb0c49ad 100644 --- a/include/map_name_popup.h +++ b/include/map_name_popup.h @@ -7,5 +7,6 @@ // Exported ROM declarations void HideMapNamePopUpWindow(void); +void sub_8098110(u8); #endif //GUARD_MAP_NAME_POPUP_H diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h index a10648f2f..cf1f714d7 100644 --- a/include/map_obj_lock.h +++ b/include/map_obj_lock.h @@ -7,5 +7,6 @@ bool8 sub_809847C(void); void LockSelectedMapObject(void); void sub_8098630(void); bool8 sub_8098734(void); +void sub_80696C0(void); #endif // GUARD_MAP_OBJ_LOCK_H diff --git a/include/overworld.h b/include/overworld.h index ab3554137..d497ddbe1 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -76,8 +76,10 @@ void sub_8055D5C(struct WarpData *); void sub_80572A8(void); void sub_805726C(void); void sub_8057430(void); +void sub_8055DC4(void); extern u8 gUnknown_2031DD8; +extern u8 gUnknown_2036E28; extern bool8 (* gUnknown_3005024)(void); diff --git a/src/quest_log.c b/src/quest_log.c index fbf8b018e..e7a5a2d5b 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -14,9 +14,11 @@ #include "field_fadetransition.h" #include "field_weather.h" #include "map_obj_80688E4.h" +#include "map_obj_lock.h" #include "field_player_avatar.h" #include "item.h" #include "region_map.h" +#include "map_name_popup.h" #include "wild_encounter.h" #include "help_system.h" #include "unk_8159F40.h" @@ -94,6 +96,8 @@ void sub_8111F8C(u8); void sub_8111FCC(u8); void sub_8112044(u8); void sub_81120AC(u8); +bool8 sub_81121D8(u8); +void sub_811229C(void); void sub_8112364(void); void sub_8112888(u8); void sub_8112940(u8, struct UnkStruct_203AE98 *, u16); @@ -1270,3 +1274,53 @@ void sub_8112044(u8 taskId) else task->data[0]++; } + +void sub_81120AC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 i; + + switch (data[0]) + { + case 0: + gUnknown_2031DD8 = 0; + sub_8055DC4(); + sub_811229C(); + FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8); + data[0]++; + break; + case 1: + if (sub_81121D8(taskId)) + { + for (i = 0; i < 3; i++) + { + ClearWindowTilemap(gUnknown_203ADFE[i]); + CopyWindowToVram(gUnknown_203ADFE[i], 1); + RemoveWindow(gUnknown_203ADFE[i]); + } + data[1] = 0; + data[0]++; + } + break; + case 2: + if (data[1] < 32) + data[1]++; + else + data[0]++; + break; + default: + if (gUnknown_203AE94.unk_0_6 == 1) + sub_8098110(1); + CpuCopy16(gUnknown_203AE90, gUnknown_20371F8, 0x400); + Free(gUnknown_203AE90); + gUnknown_203AE94 = (struct UnkStruct_203AE94){}; + sub_80696C0(); + ScriptContext2_Disable(); + gTextFlags.flag_2 = FALSE; + gUnknown_2036E28 = 0; + sub_8082740(0); + gUnknown_3005ECC = 1; + DestroyTask(taskId); + break; + } +} |