diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-19 21:32:13 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-19 21:32:13 -0500 |
commit | ccc245601756237b4cd452b421506922be944d21 (patch) | |
tree | 709cf10dc7f5da5038af1f3834784aadfcd6b4e4 | |
parent | c7439253be8a79bfb628640276135c174c8fad11 (diff) |
through sub_81150CC
-rw-r--r-- | asm/quest_log.s | 397 | ||||
-rw-r--r-- | src/quest_log.c | 129 |
2 files changed, 127 insertions, 399 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index a28cba2dc..e6d9448f1 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,403 +5,6 @@ .text - thumb_func_start sub_8114E68 -sub_8114E68: @ 8114E68 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08114E80 @ =gUnknown_8456AA0 - ldrb r1, [r0, 0x1F] - adds r0, r5, 0 - bl sub_8110944 - lsls r0, 24 - cmp r0, 0 - bne _08114E84 - movs r0, 0 - b _08114FAE - .align 2, 0 -_08114E80: .4byte gUnknown_8456AA0 -_08114E84: - adds r6, r5, 0 - adds r6, 0x8 - bl UnkTextUtil_Reset - ldr r4, _08114F00 @ =gStringVar1 - ldrb r1, [r6, 0x2] - adds r0, r4, 0 - bl sub_80C4DF8 - movs r0, 0 - adds r1, r4, 0 - bl UnkTextUtil_SetPtrI - ldrh r0, [r5, 0x4] - movs r1, 0 - movs r2, 0x1 - bl QuestLog_AutoGetSpeciesName - ldr r4, _08114F04 @ =gStringVar2 - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x2 - adds r1, r4, 0 - bl UnkTextUtil_SetPtrI - ldrh r0, [r5, 0x6] - movs r1, 0 - movs r2, 0x3 - bl QuestLog_AutoGetSpeciesName - ldr r4, _08114F08 @ =gStringVar3 - ldrb r1, [r6, 0x1] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x4 - adds r1, r4, 0 - bl UnkTextUtil_SetPtrI - ldr r0, _08114F0C @ =gSaveBlock2Ptr - ldr r1, [r0] - movs r0, 0x5 - bl UnkTextUtil_SetPtrI - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _08114F2C - ldrb r0, [r6, 0x1] - cmp r0, 0x1 - bne _08114F18 - ldr r0, _08114F10 @ =gStringVar4 - ldr r1, _08114F14 @ =gUnknown_841AA01 - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F00: .4byte gStringVar1 -_08114F04: .4byte gStringVar2 -_08114F08: .4byte gStringVar3 -_08114F0C: .4byte gSaveBlock2Ptr -_08114F10: .4byte gStringVar4 -_08114F14: .4byte gUnknown_841AA01 -_08114F18: - ldr r0, _08114F24 @ =gStringVar4 - ldr r1, _08114F28 @ =gUnknown_841AA2B - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F24: .4byte gStringVar4 -_08114F28: .4byte gUnknown_841AA2B -_08114F2C: - ldrb r1, [r6, 0x1] - cmp r1, 0 - bne _08114F5C - cmp r0, 0x1 - bne _08114F48 - ldr r0, _08114F40 @ =gStringVar4 - ldr r1, _08114F44 @ =gUnknown_841A9A9 - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F40: .4byte gStringVar4 -_08114F44: .4byte gUnknown_841A9A9 -_08114F48: - ldr r0, _08114F54 @ =gStringVar4 - ldr r1, _08114F58 @ =gUnknown_841A9D4 - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F54: .4byte gStringVar4 -_08114F58: .4byte gUnknown_841A9D4 -_08114F5C: - cmp r0, 0x1 - bne _08114F8C - cmp r1, 0x1 - bne _08114F78 - ldr r0, _08114F70 @ =gStringVar4 - ldr r1, _08114F74 @ =gUnknown_841AA76 - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F70: .4byte gStringVar4 -_08114F74: .4byte gUnknown_841AA76 -_08114F78: - ldr r0, _08114F84 @ =gStringVar4 - ldr r1, _08114F88 @ =gUnknown_841AAAA - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F84: .4byte gStringVar4 -_08114F88: .4byte gUnknown_841AAAA -_08114F8C: - cmp r1, 0x1 - bne _08114FA4 - ldr r0, _08114F9C @ =gStringVar4 - ldr r1, _08114FA0 @ =gUnknown_841AAEC - bl UnkTextUtil_StringExpandPlaceholders - b _08114FAC - .align 2, 0 -_08114F9C: .4byte gStringVar4 -_08114FA0: .4byte gUnknown_841AAEC -_08114FA4: - ldr r0, _08114FB4 @ =gStringVar4 - ldr r1, _08114FB8 @ =gUnknown_841AB29 - bl UnkTextUtil_StringExpandPlaceholders -_08114FAC: - adds r0, r6, 0x4 -_08114FAE: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08114FB4: .4byte gStringVar4 -_08114FB8: .4byte gUnknown_841AB29 - thumb_func_end sub_8114E68 - - thumb_func_start sub_8114FBC -sub_8114FBC: @ 8114FBC - push {lr} - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x96 - beq _08114FE6 - cmp r0, 0x96 - bgt _08114FD6 - cmp r0, 0x92 - bgt _08114FEA - cmp r0, 0x8F - blt _08114FEA - b _08114FE6 -_08114FD6: - cmp r1, 0xF9 - blt _08114FEA - cmp r1, 0xFA - ble _08114FE6 - movs r0, 0xCD - lsls r0, 1 - cmp r1, r0 - bne _08114FEA -_08114FE6: - movs r0, 0x1 - b _08114FEC -_08114FEA: - movs r0, 0 -_08114FEC: - pop {r1} - bx r1 - thumb_func_end sub_8114FBC - - thumb_func_start sub_8114FF0 -sub_8114FF0: @ 8114FF0 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r1, _08115008 @ =gUnknown_203B048 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x20 - adds r1, r3, 0 - bl sub_8114D18 - pop {r1} - bx r1 - .align 2, 0 -_08115008: .4byte gUnknown_203B048 - thumb_func_end sub_8114FF0 - - thumb_func_start sub_811500C -sub_811500C: @ 811500C - push {r4,r5,lr} - adds r1, r0, 0 - movs r0, 0x20 - bl sub_8113E88 - adds r4, r0, 0 - adds r5, r4, 0x6 - bl UnkTextUtil_Reset - ldrh r0, [r4, 0x4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08115068 @ =gTrainers+0x4 - adds r1, r0 - movs r0, 0 - bl UnkTextUtil_SetPtrI - ldrh r0, [r4] - movs r1, 0 - movs r2, 0x1 - bl QuestLog_AutoGetSpeciesName - ldrh r0, [r4, 0x2] - movs r1, 0 - movs r2, 0x2 - bl QuestLog_AutoGetSpeciesName - ldr r1, _0811506C @ =gUnknown_8456ACC - ldrb r0, [r5, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x3 - bl UnkTextUtil_SetPtrI - ldr r0, _08115070 @ =gStringVar4 - ldr r1, _08115074 @ =gUnknown_841AF3E - bl UnkTextUtil_StringExpandPlaceholders - adds r4, 0x8 - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08115068: .4byte gTrainers+0x4 -_0811506C: .4byte gUnknown_8456ACC -_08115070: .4byte gStringVar4 -_08115074: .4byte gUnknown_841AF3E - thumb_func_end sub_811500C - - thumb_func_start sub_8115078 -sub_8115078: @ 8115078 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _081150B4 @ =gUnknown_8456AA0 - adds r0, 0x21 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8110944 - lsls r0, 24 - cmp r0, 0 - beq _081150C4 - ldr r1, _081150B8 @ =0x00002021 - adds r0, r1, 0 - strh r0, [r4] - ldr r0, _081150BC @ =gUnknown_203AF98 - ldrh r0, [r0] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x6] - ldrb r0, [r5, 0x6] - strb r0, [r4, 0x8] - ldr r1, _081150C0 @ =gUnknown_203B048 - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0xA - b _081150C6 - .align 2, 0 -_081150B4: .4byte gUnknown_8456AA0 -_081150B8: .4byte 0x00002021 -_081150BC: .4byte gUnknown_203AF98 -_081150C0: .4byte gUnknown_203B048 -_081150C4: - movs r0, 0 -_081150C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8115078 - - thumb_func_start sub_81150CC -sub_81150CC: @ 81150CC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _081150E8 @ =gUnknown_8456AA0 - adds r0, 0x21 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8110944 - lsls r0, 24 - cmp r0, 0 - bne _081150EC - movs r0, 0 - b _081151AE - .align 2, 0 -_081150E8: .4byte gUnknown_8456AA0 -_081150EC: - adds r5, r4, 0 - adds r5, 0x8 - bl UnkTextUtil_Reset - ldr r0, _08115108 @ =gUnknown_203B044 - ldrh r0, [r0, 0x2] - cmp r0, 0x1 - beq _08115148 - cmp r0, 0x1 - bgt _0811510C - cmp r0, 0 - beq _08115112 - b _081151AC - .align 2, 0 -_08115108: .4byte gUnknown_203B044 -_0811510C: - cmp r0, 0x2 - beq _08115194 - b _081151AC -_08115112: - ldr r0, _08115134 @ =gSaveBlock2Ptr - ldr r1, [r0] - movs r0, 0 - bl UnkTextUtil_SetPtrI - ldr r0, _08115138 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _0811513C @ =0x00003a4c - adds r1, r0 - movs r0, 0x1 - bl UnkTextUtil_SetPtrI - ldr r0, _08115140 @ =gStringVar4 - ldr r1, _08115144 @ =gUnknown_841A2E1 - bl UnkTextUtil_StringExpandPlaceholders - b _081151AC - .align 2, 0 -_08115134: .4byte gSaveBlock2Ptr -_08115138: .4byte gSaveBlock1Ptr -_0811513C: .4byte 0x00003a4c -_08115140: .4byte gStringVar4 -_08115144: .4byte gUnknown_841A2E1 -_08115148: - ldr r0, _08115180 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _08115184 @ =0x00003a4c - adds r1, r0 - movs r0, 0 - bl UnkTextUtil_SetPtrI - ldrh r0, [r4, 0x4] - movs r1, 0 - movs r2, 0x1 - bl QuestLog_AutoGetSpeciesName - ldr r0, _08115188 @ =gSaveBlock2Ptr - ldr r1, [r0] - movs r0, 0x2 - bl UnkTextUtil_SetPtrI - ldrh r0, [r4, 0x6] - movs r1, 0 - movs r2, 0x3 - bl QuestLog_AutoGetSpeciesName - ldr r0, _0811518C @ =gStringVar4 - ldr r1, _08115190 @ =gUnknown_841A312 - bl UnkTextUtil_StringExpandPlaceholders - b _081151AC - .align 2, 0 -_08115180: .4byte gSaveBlock1Ptr -_08115184: .4byte 0x00003a4c -_08115188: .4byte gSaveBlock2Ptr -_0811518C: .4byte gStringVar4 -_08115190: .4byte gUnknown_841A312 -_08115194: - ldr r1, _081151B4 @ =gUnknown_8456AD8 - ldrb r0, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - bl UnkTextUtil_SetPtrI - ldr r0, _081151B8 @ =gStringVar4 - ldr r1, _081151BC @ =gUnknown_841A349 - bl UnkTextUtil_StringExpandPlaceholders -_081151AC: - adds r0, r5, 0x2 -_081151AE: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081151B4: .4byte gUnknown_8456AD8 -_081151B8: .4byte gStringVar4 -_081151BC: .4byte gUnknown_841A349 - thumb_func_end sub_81150CC - thumb_func_start sub_81151C0 sub_81151C0: @ 81151C0 push {lr} diff --git a/src/quest_log.c b/src/quest_log.c index 593585aac..9bd7d6227 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -462,12 +462,12 @@ void sub_811092C(void) gUnknown_203AE8C(); } -bool8 sub_8110944(void * a0, size_t a1) +bool8 sub_8110944(const void * a0, size_t a1) { void * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568; void * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end; r0 -= a1; - if ((void *)a0 < r2 || (void *)a0 > r0) + if ((const void *)a0 < r2 || (const void *)a0 > r0) return FALSE; return TRUE; } @@ -4390,3 +4390,128 @@ u16 * sub_8114DE8(u16 * a0, const u16 * a1) r5[2] = *((const u8 *)a1 + 4); return (u16 *)(r5 + 4); } + +const u16 * sub_8114E68(const u16 * a0) +{ + const u8 * r6; + if (!sub_8110944(a0, gUnknown_8456AA0[31])) + return NULL; + + r6 = (const u8 *)a0 + 8; + UnkTextUtil_Reset(); + sub_80C4DF8(gStringVar1, r6[2]); + UnkTextUtil_SetPtrI(0, gStringVar1); + QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); + ConvertIntToDecimalStringN(gStringVar2, r6[0], STR_CONV_MODE_LEFT_ALIGN, 3); + UnkTextUtil_SetPtrI(2, gStringVar2); + QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); + ConvertIntToDecimalStringN(gStringVar3, r6[1], STR_CONV_MODE_LEFT_ALIGN, 3); + UnkTextUtil_SetPtrI(4, gStringVar3); + UnkTextUtil_SetPtrI(5, gSaveBlock2Ptr->playerName); + if (r6[0] == 0) + { + if (r6[1] == 1) + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA01); + else + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA2B); + } + else if (r6[1] == 0) + { + if (r6[0] == 1) + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9A9); + else + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9D4); + } + else if (r6[0] == 1) + { + if (r6[1] == 1) + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA76); + else + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAAA); + } + else + { + if (r6[1] == 1) + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAEC); + else + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AB29); + } + return (const u16 *)(r6 + 4); +} + +bool8 sub_8114FBC(u16 a0) +{ + switch (a0) + { + case 0x96: + case 0x8F ... 0x92: + case 0xF9 ... 0xFA: + case 0x19A: + return TRUE; + } + return FALSE; +} + +u16 * sub_8114FF0(u16 * a0, const u16 * a1) +{ + gUnknown_203B048 = TRUE; + return sub_8114D18(32, a0, a1); +} + +const u16 * sub_811500C(const u16 * a0) +{ + const u8 * r5; + a0 = sub_8113E88(32, a0); + r5 = (const u8 *)a0 + 6; + UnkTextUtil_Reset(); + UnkTextUtil_SetPtrI(0, gTrainers[a0[2]].trainerName); + QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); + QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); + UnkTextUtil_SetPtrI(3, gUnknown_8456ACC[r5[1]]); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF3E); + return a0 + 4; +} + +u16 * sub_8115078(u16 * a0, const u16 * a1) +{ + if (!sub_8110944(a0, gUnknown_8456AA0[33])) + return NULL; + a0[0] = 0x2021; + a0[1] = gUnknown_203AF98; + a0[2] = a1[1]; + a0[3] = a1[2]; + *((u8 *)a0 + 8) = *((const u8 *)a1 + 6); + gUnknown_203B048 = TRUE; + return a0 + 5; +} + +const u16 * sub_81150CC(const u16 * a0) +{ + const u8 * r5; + if (!sub_8110944(a0, gUnknown_8456AA0[33])) + return NULL; + + r5 = (const u8 *)a0 + 8; + UnkTextUtil_Reset(); + + switch (gUnknown_203B044.unk_2) + { + case 0: + UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName); + UnkTextUtil_SetPtrI(1, gSaveBlock1Ptr->rivalName); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A2E1); + break; + case 1: + UnkTextUtil_SetPtrI(0, gSaveBlock1Ptr->rivalName); + QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); + UnkTextUtil_SetPtrI(2, gSaveBlock2Ptr->playerName); + QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A312); + break; + case 2: + UnkTextUtil_SetPtrI(0, gUnknown_8456AD8[r5[0]]); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A349); + break; + } + return (const u16 *)(r5 + 2); +} |