summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s270
-rw-r--r--data/data_83FECCC.s5
-rw-r--r--data/quest_log.s23
-rw-r--r--ld_script.txt1
-rw-r--r--src/quest_log.c122
5 files changed, 124 insertions, 297 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 72ba6e0bc..f5992a824 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,276 +5,6 @@
.text
- thumb_func_start sub_811539C
-sub_811539C: @ 811539C
- ldr r1, _081153A4 @ =gUnknown_203B04B
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_081153A4: .4byte gUnknown_203B04B
- thumb_func_end sub_811539C
-
- thumb_func_start sub_81153A8
-sub_81153A8: @ 81153A8
- push {lr}
- adds r2, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x23
- beq _081153C4
- ldr r1, _081153C0 @ =gUnknown_203B04A
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- b _081153DE
- .align 2, 0
-_081153C0: .4byte gUnknown_203B04A
-_081153C4:
- ldr r3, _081153D8 @ =gUnknown_203B04A
- ldrb r1, [r3]
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- cmp r1, r0
- beq _081153DC
- strb r0, [r3]
- movs r0, 0x1
- b _081153DE
- .align 2, 0
-_081153D8: .4byte gUnknown_203B04A
-_081153DC:
- movs r0, 0
-_081153DE:
- pop {r1}
- bx r1
- thumb_func_end sub_81153A8
-
- thumb_func_start sub_81153E4
-sub_81153E4: @ 81153E4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x23
- bne _08115408
- ldrb r0, [r1, 0x1]
- ldr r1, _08115400 @ =gUnknown_203B04B
- cmp r0, 0x20
- bne _08115404
- ldrb r0, [r1]
- cmp r0, 0
- bne _08115404
- movs r0, 0
- b _0811540A
- .align 2, 0
-_08115400: .4byte gUnknown_203B04B
-_08115404:
- movs r0, 0
- strb r0, [r1]
-_08115408:
- movs r0, 0x1
-_0811540A:
- pop {r1}
- bx r1
- thumb_func_end sub_81153E4
-
- thumb_func_start sub_8115410
-sub_8115410: @ 8115410
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0x24
- adds r1, r2, 0
- bl sub_8113DE0
- adds r2, r0, 0
- cmp r2, 0
- bne _08115428
- movs r0, 0
- b _08115454
-_08115428:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r3, r2, 0x2
- ldrb r0, [r4, 0x2]
- strb r0, [r2, 0x2]
- ldrb r0, [r4, 0x3]
- strb r0, [r3, 0x1]
- ldrb r0, [r2, 0x2]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0811544C
- ldr r1, _08115448 @ =gUnknown_203B048
- movs r0, 0x2
- b _08115450
- .align 2, 0
-_08115448: .4byte gUnknown_203B048
-_0811544C:
- ldr r1, _0811545C @ =gUnknown_203B048
- movs r0, 0x1
-_08115450:
- strb r0, [r1]
- adds r0, r3, 0x2
-_08115454:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811545C: .4byte gUnknown_203B048
- thumb_func_end sub_8115410
-
- thumb_func_start sub_8115460
-sub_8115460: @ 8115460
- push {r4,r5,lr}
- adds r1, r0, 0
- movs r0, 0x24
- bl sub_8113E88
- adds r4, r0, 0
- adds r5, r4, 0x2
- ldrh r0, [r4]
- ldr r1, _0811549C @ =gStringVar1
- movs r2, 0
- bl QuestLog_AutoGetSpeciesName
- ldrb r0, [r5, 0x1]
- cmp r0, 0xFF
- beq _08115486
- ldr r0, _081154A0 @ =gStringVar2
- ldrb r1, [r5, 0x1]
- bl sub_80C4DF8
-_08115486:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x7
- bne _081154B4
- ldrb r0, [r5, 0x1]
- cmp r0, 0x58
- bne _081154AC
- ldr r0, _081154A4 @ =gStringVar3
- ldr r1, _081154A8 @ =gUnknown_841B09F
- bl StringCopy
- b _081154B4
- .align 2, 0
-_0811549C: .4byte gStringVar1
-_081154A0: .4byte gStringVar2
-_081154A4: .4byte gStringVar3
-_081154A8: .4byte gUnknown_841B09F
-_081154AC:
- ldr r0, _081154CC @ =gStringVar3
- ldr r1, _081154D0 @ =gUnknown_8418C1B
- bl StringCopy
-_081154B4:
- ldr r0, _081154D4 @ =gStringVar4
- ldr r2, _081154D8 @ =gUnknown_8456C20
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringExpandPlaceholders
- adds r0, r5, 0x2
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081154CC: .4byte gStringVar3
-_081154D0: .4byte gUnknown_8418C1B
-_081154D4: .4byte gStringVar4
-_081154D8: .4byte gUnknown_8456C20
- thumb_func_end sub_8115460
-
- thumb_func_start sub_81154DC
-sub_81154DC: @ 81154DC
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0x25
- adds r1, r2, 0
- bl sub_8113DE0
- adds r2, r0, 0
- cmp r2, 0
- beq _0811550E
- ldrh r0, [r4, 0x4]
- strh r0, [r2]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x2]
- ldr r1, [r4]
- lsrs r0, r1, 16
- strh r0, [r2, 0x4]
- strh r1, [r2, 0x6]
- ldrb r0, [r4, 0x8]
- strb r0, [r2, 0x8]
- movs r0, 0x1
- strb r0, [r2, 0x9]
- adds r0, r2, 0
- adds r0, 0xA
- b _08115510
-_0811550E:
- movs r0, 0
-_08115510:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81154DC
-
- thumb_func_start sub_8115518
-sub_8115518: @ 8115518
- push {r4-r7,lr}
- adds r1, r0, 0
- movs r0, 0x25
- bl sub_8113E88
- adds r4, r0, 0
- adds r7, r4, 0
- adds r7, 0x8
- ldrh r0, [r4, 0x4]
- lsls r0, 16
- ldrh r1, [r4, 0x6]
- adds r6, r0, r1
- bl UnkTextUtil_Reset
- ldr r5, _08115564 @ =gStringVar1
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl sub_80C4DF8
- movs r0, 0
- adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
- ldrh r0, [r4]
- bl ItemId_GetItem
- adds r1, r0, 0
- movs r0, 0x1
- bl UnkTextUtil_SetPtrI
- ldrh r0, [r4, 0x2]
- cmp r0, 0x1
- bhi _08115570
- ldr r0, _08115568 @ =gStringVar4
- ldr r1, _0811556C @ =gUnknown_841A7DD
- bl UnkTextUtil_StringExpandPlaceholders
- b _0811558E
- .align 2, 0
-_08115564: .4byte gStringVar1
-_08115568: .4byte gStringVar4
-_0811556C: .4byte gUnknown_841A7DD
-_08115570:
- ldr r4, _08115598 @ =gStringVar2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- movs r0, 0x2
- adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
- ldr r0, _0811559C @ =gStringVar4
- ldr r1, _081155A0 @ =gUnknown_841A810
- bl UnkTextUtil_StringExpandPlaceholders
-_0811558E:
- adds r0, r7, 0x2
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08115598: .4byte gStringVar2
-_0811559C: .4byte gStringVar4
-_081155A0: .4byte gUnknown_841A810
- thumb_func_end sub_8115518
-
thumb_func_start sub_81155A4
sub_81155A4: @ 81155A4
push {r4,lr}
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index bdcf0a201..2ce441e4e 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -1265,7 +1265,10 @@ gUnknown_84189EE:: @ 84189EE
.incbin "baserom.gba", 0x4189EE, 0x22D
gUnknown_8418C1B:: @ 8418C1B
- .incbin "baserom.gba", 0x418C1B, 0x68
+ .string "POKéMON CENTER$"
+
+gUnknown_8418C2A:: @ 8418C2A
+ .incbin "baserom.gba", 0x418C2A, 0x59
gUnknown_8418C83:: @ 8418C83
.incbin "baserom.gba", 0x418C83, 0x56
diff --git a/data/quest_log.s b/data/quest_log.s
deleted file mode 100644
index a4d3dd16c..000000000
--- a/data/quest_log.s
+++ /dev/null
@@ -1,23 +0,0 @@
- .section .rodata
-
-gUnknown_8456C50:: @ 8456C50
- .2byte 0x0891
- .2byte 0x0892
- .2byte 0x0893
- .2byte 0x0894
- .2byte 0x0895
- .2byte 0x0896
- .2byte 0x0897
- .2byte 0x0898
- .2byte 0x0899
- .2byte 0x089a
- .2byte 0x089b
- .2byte 0x089c
- .2byte 0x089d
- .2byte 0x089e
- .2byte 0x089f
- .2byte 0x08a0
- .2byte 0x08a1
- .2byte 0x0000
-
-
diff --git a/ld_script.txt b/ld_script.txt
index 28abe99ca..2087ea35b 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -371,7 +371,6 @@ SECTIONS {
src/save.o(.rodata);
data/data_83FECCC.o(.rodata);
src/quest_log.o(.rodata);
- data/quest_log.o(.rodata);
data/data_83FECCC.o(.rodata.8456C74);
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
diff --git a/src/quest_log.c b/src/quest_log.c
index d88bc04a4..eac9486d2 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -272,8 +272,8 @@ const u16 * sub_8115700(const u16 *);
u16 * sub_81157DC(u16 *, const u16 *);
const u16 * sub_8115800(const u16 *);
void sub_8115834(u8 *);
-bool8 sub_81153A8(u16, void*);
-bool8 sub_81153E4(u16, void*);
+bool8 sub_81153A8(u16, u16 *);
+bool8 sub_81153E4(u16, u16 *);
extern const u8 gUnknown_841A155[];
extern const u8 gUnknown_841A16F[];
@@ -400,6 +400,7 @@ extern const u8 gUnknown_841B246[];
extern const u8 gUnknown_841B25B[];
extern const u8 gUnknown_841B268[];
extern const u8 gUnknown_841B277[];
+extern const u8 gUnknown_8418C1B[];
const struct WindowTemplate gUnknown_845661C[3] = {
@@ -4730,3 +4731,120 @@ const u16 * sub_81152BC(const u16 * a0)
return (const u16 *)(r5_2 + 2);
}
+
+void sub_811539C(void)
+{
+ gUnknown_203B04B = TRUE;
+}
+
+bool8 sub_81153A8(u16 a0, u16 * a1)
+{
+ if (a0 != 35)
+ {
+ gUnknown_203B04A = 0;
+ return TRUE;
+ }
+ if (gUnknown_203B04A == *((u8 *)a1 + 1) + 1)
+ return FALSE;
+ gUnknown_203B04A = *((u8 *)a1 + 1) + 1;
+ return TRUE;
+}
+
+bool8 sub_81153E4(u16 a0, u16 * a1)
+{
+ if (a0 != 35)
+ return TRUE;
+ if (*((u8 *)a1 + 1) == 32 && gUnknown_203B04B == 0)
+ return FALSE;
+ gUnknown_203B04B = 0;
+ return TRUE;
+}
+
+u16 * sub_8115410(u16 * a0, const u16 * a1)
+{
+ u8 * r3;
+ a0 = sub_8113DE0(36, a0);
+ if (a0 == NULL)
+ return NULL;
+ a0[0] = a1[0];
+ r3 = (u8 *)a0 + 2;
+ r3[0] = *((const u8 *)a1 + 2);
+ r3[1] = *((const u8 *)a1 + 3);
+ if (r3[0] == 7 || r3[0] == 8)
+ gUnknown_203B048 = 2;
+ else
+ gUnknown_203B048 = 1;
+ return (u16 *)(r3 + 2);
+}
+
+const u16 * sub_8115460(const u16 * a0)
+{
+ const u16 * r4 = sub_8113E88(36, a0);
+ const u8 * r5 = (const u8 *)r4 + 2;
+ QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0);
+ if (r5[1] != 0xFF)
+ sub_80C4DF8(gStringVar2, r5[1]);
+ if (r5[0] == 7)
+ {
+ if (r5[1] == 0x58)
+ StringCopy(gStringVar3, gUnknown_841B09F);
+ else
+ StringCopy(gStringVar3, gUnknown_8418C1B);
+ }
+ StringExpandPlaceholders(gStringVar4, gUnknown_8456C20[r5[0]]);
+ return (const u16 *)(r5 + 2);
+}
+
+u16 * sub_81154DC(u16 * a0, const u16 * a1)
+{
+ a0 = sub_8113DE0(37, a0);
+ if (a0 == NULL)
+ return NULL;
+ a0[0] = a1[2];
+ a0[1] = a1[3];
+ a0[2] = *((const u32 *)a1) >> 16;
+ a0[3] = *((const u32 *)a1);
+ *((u8 *)a0 + 8) = *((const u8 *)a1 + 8);
+ *((u8 *)a0 + 9) = 1;
+ return a0 + 5;
+}
+
+const u16 * sub_8115518(const u16 * a0)
+{
+ const u16 * r4 = sub_8113E88(37, a0);
+ const u8 * r7 = (const u8 *)r4 + 8;
+ u32 r6 = (r4[2] << 16) + r4[3];
+ UnkTextUtil_Reset();
+ sub_80C4DF8(gStringVar1, r7[0]);
+ UnkTextUtil_SetPtrI(0, gStringVar1);
+ UnkTextUtil_SetPtrI(1, ItemId_GetItem(r4[0])->name);
+ if (r4[1] < 2)
+ UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
+ UnkTextUtil_SetPtrI(2, gStringVar2);
+ UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A810);
+ }
+ return (const u16 *)(r7 + 2);
+}
+
+const u16 gUnknown_8456C50[] = {
+ 0x0891,
+ 0x0892,
+ 0x0893,
+ 0x0894,
+ 0x0895,
+ 0x0896,
+ 0x0897,
+ 0x0898,
+ 0x0899,
+ 0x089a,
+ 0x089b,
+ 0x089c,
+ 0x089d,
+ 0x089e,
+ 0x089f,
+ 0x08a0,
+ 0x08a1
+};