summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-12 15:05:47 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-12 15:05:47 -0400
commit67cbc482982245c8cdd0466f59d73ab89d09b633 (patch)
treed284d7cf47f8605a7114cee70c89d90acb8f7200
parent58f91389a345f8dab7c0da2637f9063a823f495f (diff)
sub_81120AC
-rw-r--r--asm/quest_log.s141
-rw-r--r--include/map_name_popup.h1
-rw-r--r--include/map_obj_lock.h1
-rw-r--r--include/overworld.h2
-rw-r--r--src/quest_log.c54
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;
+ }
+}