finished dynamic_placeholder_text_util

This commit is contained in:
jiangzhengwenjz
2019-07-06 05:53:42 +08:00
parent 6030086696
commit cc4d2f524c
20 changed files with 270 additions and 337 deletions
+70
View File
@@ -0,0 +1,70 @@
#include "global.h"
#include "text.h"
#include "dynamic_placeholder_text_util.h"
#include "string_util.h"
static EWRAM_DATA const u8 *sStringPointers[8] = {0};
static const u8 sTextColorTable[] =
{
0, 0, 0, 16, 17, 17, 17, 16, 16, 0, 0, 17, 1, 0, 17, 16,
0, 16, 16, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0,
17, 1, 0, 0, 0, 16, 17, 0, 16, 16, 16, 0, 1, 0, 51, 51,
51, 51, 51, 51, 51, 51, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 50,
};
void DynamicPlaceholderTextUtil_Reset(void)
{
const u8 **ptr = sStringPointers;
u8 *fillval = NULL;
const u8 **ptr2 = ptr + (NELEMS(sStringPointers) - 1);
do
{
*ptr2-- = fillval;
}
while ((int)ptr2 >= (int)ptr);
}
void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr)
{
if (idx < NELEMS(sStringPointers))
sStringPointers[idx] = ptr;
}
u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src)
{
while (*src != EOS)
{
if (*src != CHAR_SPECIAL_F7)
{
*dest++ = *src++;
}
else
{
src++;
if (sStringPointers[*src] != NULL)
dest = StringCopy(dest, sStringPointers[*src]);
src++;
}
}
*dest = EOS;
return dest;
}
const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx)
{
return sStringPointers[idx];
}
u8 GetColorFromTextColorTable(u16 graphicId)
{
u32 test = graphicId >> 1;
u32 shift = (graphicId & 1) << 2;
if (test > 0x4B)
return 3;
else
return (sTextColorTable[graphicId >> 1] >> shift) & 0xF;
}
+102 -102
View File
@@ -11,7 +11,7 @@
#include "menu_helpers.h"
#include "window.h"
#include "text_window.h"
#include "unk_text_util.h"
#include "dynamic_placeholder_text_util.h"
#include "event_data.h"
#include "event_scripts.h"
#include "string_util.h"
@@ -3656,9 +3656,9 @@ void QuestLog_AutoGetSpeciesName(u16 a0, u8 * a1, u8 a2)
else
{
if (a0 != SPECIES_EGG)
UnkTextUtil_SetPtrI(a2, gSpeciesNames[a0]);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gSpeciesNames[a0]);
else
UnkTextUtil_SetPtrI(a2, gText_EggNickname);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gText_EggNickname);
}
}
@@ -3949,14 +3949,14 @@ u16 * sub_81144EC(u16 * a0, const u16 * a1)
const u16 * sub_8114518(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memcpy(gStringVar1, (const u8 *)a0 + 5, 7);
sub_8115834(gStringVar1);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A422);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A422);
a0 += 6;
return a0;
}
@@ -3973,14 +3973,14 @@ u16 * sub_8114578(u16 * a0, const u16 * a1)
const u16 * sub_81145A4(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memcpy(gStringVar1, (const u8 *)a0 + 5, 7);
sub_8115834(gStringVar1);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A477);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A477);
a0 += 6;
return a0;
}
@@ -3999,7 +3999,7 @@ u16 * sub_8114604(u16 * a0, const u16 * a1)
const u16 * sub_811464C(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memset(gStringVar2, EOS, 8);
@@ -4010,12 +4010,12 @@ const u16 * sub_811464C(const u16 * a0)
sub_8115834(gStringVar1);
sub_8115834(gStringVar2);
sub_8115834(gStringVar3);
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_SetPtrI(3, gStringVar3);
UnkTextUtil_SetPtrI(4, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A4C6);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A4C6);
a0 += 13;
return a0;
}
@@ -4111,12 +4111,12 @@ const u16 * sub_81148BC(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(20, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1]));
QuestLog_AutoGetSpeciesName(a0[1], NULL, 3);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A566);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A566);
return a0 + 3;
}
@@ -4136,11 +4136,11 @@ const u16 * sub_8114944(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(21, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
QuestLog_AutoGetSpeciesName(a0[1], NULL, 2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5D9);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5D9);
return a0 + 3;
}
@@ -4172,11 +4172,11 @@ const u16 * sub_81149D0(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(22, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
QuestLog_AutoGetSpeciesName(a0[1], NULL, 2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A60A);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A60A);
return a0 + 3;
}
@@ -4199,11 +4199,11 @@ const u16 * sub_8114A4C(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(23, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1]));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A59C);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1]));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A59C);
return (const u16 *)boxIdxs + 1;
}
@@ -4223,10 +4223,10 @@ const u16 * sub_8114AC8(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(24, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5FA);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5FA);
return (const u16 *)boxIdxs + 1;
}
@@ -4246,10 +4246,10 @@ const u16 * sub_8114B34(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(25, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A632);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A632);
return (const u16 *)boxIdxs + 1;
}
@@ -4269,10 +4269,10 @@ const u16 * sub_8114BA0(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(26, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
QuestLog_AutoGetSpeciesName(a0[0], NULL, 0);
UnkTextUtil_SetPtrI(1, GetBoxNamePtr(boxIdxs[0]));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A64F);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A64F);
return (const u16 *)boxIdxs + 1;
}
@@ -4290,13 +4290,13 @@ u16 * sub_8114BE4(u16 * a0, const u16 * a1)
const u16 * sub_8114C0C(const u16 * a0)
{
const u16 *r4 = sub_8113E88(27, a0);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(*((const u8 *)r4 + 0)));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(*((const u8 *)r4 + 0)));
if (*((const u8 *)r4 + 0) == *((const u8 *)r4 + 1))
UnkTextUtil_SetPtrI(1, gUnknown_841A694);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841A694);
else
UnkTextUtil_SetPtrI(1, GetBoxNamePtr(*((const u8 *)r4 + 1)));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A66E);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(*((const u8 *)r4 + 1)));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A66E);
return r4 + 1;
}
@@ -4358,14 +4358,14 @@ const u16 * sub_8114D68(const u16 * a0)
const u8 * r6;
a0 = sub_8113E88(30, a0);
r6 = (const u8 *)a0 + 6;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gTrainers[a0[2]].trainerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[a0[2]].trainerName);
QuestLog_AutoGetSpeciesName(a0[0], 0, 2);
QuestLog_AutoGetSpeciesName(a0[1], 0, 3);
UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF0C);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF0C);
return a0 + 4;
}
@@ -4399,43 +4399,43 @@ const u16 * sub_8114E68(const u16 * a0)
return NULL;
r6 = (const u8 *)a0 + 8;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[2]);
UnkTextUtil_SetPtrI(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
ConvertIntToDecimalStringN(gStringVar2, r6[0], STR_CONV_MODE_LEFT_ALIGN, 3);
UnkTextUtil_SetPtrI(2, gStringVar2);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(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);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gSaveBlock2Ptr->playerName);
if (r6[0] == 0)
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA01);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA01);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA2B);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA2B);
}
else if (r6[1] == 0)
{
if (r6[0] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9A9);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9A9);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9D4);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9D4);
}
else if (r6[0] == 1)
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA76);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA76);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAAA);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAAA);
}
else
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAEC);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAEC);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AB29);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AB29);
}
return (const u16 *)(r6 + 4);
}
@@ -4464,12 +4464,12 @@ 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);
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(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);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_8456ACC[r5[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF3E);
return a0 + 4;
}
@@ -4493,25 +4493,25 @@ const u16 * sub_81150CC(const u16 * a0)
return NULL;
r5 = (const u8 *)a0 + 8;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
switch (gUnknown_203B044.unk_2)
{
case 0:
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gSaveBlock1Ptr->rivalName);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
break;
case 1:
UnkTextUtil_SetPtrI(0, gSaveBlock1Ptr->rivalName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName);
QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
UnkTextUtil_SetPtrI(2, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName);
QuestLog_AutoGetSpeciesName(a0[3], NULL, 3);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A312);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312);
break;
case 2:
UnkTextUtil_SetPtrI(0, gUnknown_8456AD8[r5[0]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A349);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349);
break;
}
return (const u16 *)(r5 + 2);
@@ -4527,21 +4527,21 @@ const u16 * sub_81151DC(const u16 * a0)
{
const u16 * r5 = sub_8113E88(34, a0);
const u8 * r6 = (const u8 *)r5 + 6;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
if (
gTrainers[r5[2]].trainerClass == 0x51
|| gTrainers[r5[2]].trainerClass == 0x59
|| gTrainers[r5[2]].trainerClass == 0x5A
)
UnkTextUtil_SetPtrI(1, GetExpandedPlaceholder(6));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetExpandedPlaceholder(6));
else
UnkTextUtil_SetPtrI(1, gTrainers[r5[2]].trainerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[r5[2]].trainerName);
QuestLog_AutoGetSpeciesName(r5[0], NULL, 2);
QuestLog_AutoGetSpeciesName(r5[1], NULL, 3);
UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF6D);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF6D);
return (const u16 *)(r6 + 2);
}
@@ -4814,17 +4814,17 @@ 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();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r4[0]));
if (r4[1] < 2)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
else
{
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A810);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A810);
}
return (const u16 *)(r7 + 2);
}
@@ -4847,30 +4847,30 @@ const u16 * sub_81155E0(const u16 * a0) {
const u16 *r5 = sub_8113E88(38, a0);
const u8 *r7 = (const u8 *) r5 + 8;
u32 r6 = (r5[2] << 16) + r5[3];
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
if (r7[1] == 0) {
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, ItemId_GetName(r5[0]));
if (r5[1] == 1)
UnkTextUtil_SetPtrI(3, gUnknown_841A8D4);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_841A8D4);
else
{
ConvertIntToDecimalStringN(gStringVar2, r5[1], STR_CONV_MODE_LEFT_ALIGN, 3);
UnkTextUtil_SetPtrI(4, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar3, gUnknown_841A8DD);
UnkTextUtil_SetPtrI(3, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar3, gUnknown_841A8DD);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3);
}
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A858);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A858);
}
else
{
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r5[0]));
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A896);
}
return (const u16 *)(r7 + 2);
}
+2 -2
View File
@@ -18,7 +18,7 @@ extern u8 GetKeypadIconWidth(u8 keypadIconId);
extern void CopyWindowToVram(u8 windowId, u8 mode);
extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
extern void PlaySE(u16 songNum);
extern u8* UnkTextUtil_GetPtrI(u8 a1);
extern u8* DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 a1);
TextFlags gTextFlags;
@@ -1544,7 +1544,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
}
case 0xF7:
if (bufferPointer == NULL)
bufferPointer = UnkTextUtil_GetPtrI(*++str);
bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str);
while (*bufferPointer != 0xFF)
{
glyphWidth = func(*bufferPointer++, isJapanese);
+2 -2
View File
@@ -10,7 +10,7 @@
#include "scanline_effect.h"
#include "m4a.h"
#include "string_util.h"
#include "unk_text_util.h"
#include "dynamic_placeholder_text_util.h"
#include "overworld.h"
#include "sound.h"
#include "menu.h"
@@ -208,7 +208,7 @@ void sub_814F1E4(void)
ChangeBgY(1, 0, 0);
LoadPalette(gUnknown_846F4D0, 0, 0x20);
Menu_LoadStdPalAt(0xf0);
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0xF);
CopyBgTilemapBufferToVram(1);
SetMainCallback2(sub_814F19C);