diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-21 07:55:42 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-21 07:55:42 -0500 |
commit | eb98d02443e7433dd594e35e92edda3b8fa5d499 (patch) | |
tree | b3bfe14993fdab797e096e0c59354ff32432fe50 | |
parent | 374352c3cf1c307ecd7d4cedcd1b7815a3e9e4bf (diff) |
through sub_8115518; finish quest_log rodata
-rw-r--r-- | asm/quest_log.s | 270 | ||||
-rw-r--r-- | data/data_83FECCC.s | 5 | ||||
-rw-r--r-- | data/quest_log.s | 23 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/quest_log.c | 122 |
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 +}; |