Decompile union_room_chat through sub_8020118
This commit is contained in:
@@ -1615,7 +1615,7 @@ u16 RenderText(struct TextPrinter *textPrinter)
|
||||
}
|
||||
}
|
||||
return 2;
|
||||
case 20:
|
||||
case EXT_CTRL_CODE_MIN_LETTER_SPACING:
|
||||
textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++;
|
||||
return 2;
|
||||
case EXT_CTRL_CODE_JPN:
|
||||
|
||||
@@ -66,7 +66,8 @@ struct UnionRoomChat2
|
||||
u16 unk1A;
|
||||
u16 unk1C;
|
||||
u16 unk1E;
|
||||
u8 filler20[0x2148];
|
||||
u8 filler20[0x2];
|
||||
u8 unk22[0x2146];
|
||||
};
|
||||
|
||||
struct Unk82F2C98
|
||||
@@ -75,6 +76,18 @@ struct Unk82F2C98
|
||||
bool32 (* unk4)(u8 *);
|
||||
};
|
||||
|
||||
struct Unk82F2D40
|
||||
{
|
||||
const u8 *unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
u8 unkA;
|
||||
};
|
||||
|
||||
static void sub_801DDD0(struct UnionRoomChat *);
|
||||
static void c2_081284E0(void);
|
||||
static void sub_801DF20(void);
|
||||
@@ -143,14 +156,14 @@ void sub_80201A4(void);
|
||||
bool32 sub_8020368(void);
|
||||
void sub_802093C(void);
|
||||
void sub_8020B80(void);
|
||||
void sub_801FF18(int, u16);
|
||||
static void sub_801FF18(int, u16);
|
||||
static void sub_801FDDC(u8, u8, u8);
|
||||
void sub_8020094(void);
|
||||
static void sub_8020094(void);
|
||||
static void sub_801FEBC(void);
|
||||
void sub_80200C8(void);
|
||||
static void sub_80200C8(void);
|
||||
static void sub_801FEE4(void);
|
||||
void sub_80200EC(u16, u16, u8);
|
||||
void sub_8020118(u16, u8 *, u8, u8, u16);
|
||||
static void sub_80200EC(u16, u16, u8);
|
||||
static void sub_8020118(u16, u8 *, u8, u8, u8);
|
||||
void sub_80209AC(int);
|
||||
void sub_8020420(u16, u8 *, u8);
|
||||
void sub_80209E0(void);
|
||||
@@ -164,6 +177,7 @@ extern const u8 gUnknown_082F2AA8[];
|
||||
extern const struct BgTemplate gUnknown_082F2C60[4];
|
||||
extern const struct WindowTemplate gUnknown_082F2C70[];
|
||||
extern const struct Unk82F2C98 gUnknown_082F2C98[];
|
||||
extern const struct Unk82F2D40 gUnknown_082F2D40[];
|
||||
|
||||
|
||||
void sub_801DD98(void)
|
||||
@@ -2052,3 +2066,114 @@ static s8 sub_801FF08(void)
|
||||
{
|
||||
return Menu_ProcessInput();
|
||||
}
|
||||
|
||||
static void sub_801FF18(int arg0, u16 arg1)
|
||||
{
|
||||
const u8 *str;
|
||||
int windowId;
|
||||
struct WindowTemplate template;
|
||||
template.bg = 0;
|
||||
template.tilemapLeft = 8;
|
||||
template.tilemapTop = 16;
|
||||
template.width = 21;
|
||||
template.height = 4;
|
||||
template.paletteNum = 14;
|
||||
template.baseBlock = 0x6A;
|
||||
if (gUnknown_082F2D40[arg0].unkA)
|
||||
{
|
||||
template.tilemapLeft -= 7;
|
||||
template.width += 7;
|
||||
}
|
||||
|
||||
gUnknown_02022C88->unk1E = AddWindow(&template);
|
||||
windowId = gUnknown_02022C88->unk1E;
|
||||
if (gUnknown_02022C88->unk1E == 0xFF)
|
||||
return;
|
||||
|
||||
if (gUnknown_082F2D40[arg0].unk9)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_02022C88->unk22, gUnknown_082F2D40[arg0].unk0);
|
||||
str = gUnknown_02022C88->unk22;
|
||||
}
|
||||
else
|
||||
{
|
||||
str = gUnknown_082F2D40[arg0].unk0;
|
||||
}
|
||||
|
||||
ChangeBgY(0, arg1 * 256, 0);
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||
PutWindowTilemap(windowId);
|
||||
if (gUnknown_082F2D40[arg0].unk4 == 1)
|
||||
{
|
||||
sub_80989E0(windowId, 0xA, 2);
|
||||
AddTextPrinterParameterized5(
|
||||
windowId,
|
||||
1,
|
||||
str,
|
||||
gUnknown_082F2D40[arg0].unk5 + 8,
|
||||
gUnknown_082F2D40[arg0].unk6 + 8,
|
||||
TEXT_SPEED_FF,
|
||||
NULL,
|
||||
gUnknown_082F2D40[arg0].unk7,
|
||||
gUnknown_082F2D40[arg0].unk8);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8098858(windowId, 0xA, 2);
|
||||
AddTextPrinterParameterized5(
|
||||
windowId,
|
||||
1,
|
||||
str,
|
||||
gUnknown_082F2D40[arg0].unk5,
|
||||
gUnknown_082F2D40[arg0].unk6,
|
||||
TEXT_SPEED_FF,
|
||||
NULL,
|
||||
gUnknown_082F2D40[arg0].unk7,
|
||||
gUnknown_082F2D40[arg0].unk8);
|
||||
}
|
||||
|
||||
gUnknown_02022C88->unk1E = windowId;
|
||||
}
|
||||
|
||||
static void sub_8020094(void)
|
||||
{
|
||||
if (gUnknown_02022C88->unk1E != 0xFF)
|
||||
{
|
||||
ClearStdWindowAndFrameToTransparent(gUnknown_02022C88->unk1E, FALSE);
|
||||
ClearWindowTilemap(gUnknown_02022C88->unk1E);
|
||||
}
|
||||
|
||||
ChangeBgY(0, 0, 0);
|
||||
}
|
||||
|
||||
static void sub_80200C8(void)
|
||||
{
|
||||
if (gUnknown_02022C88->unk1E != 0xFF)
|
||||
{
|
||||
RemoveWindow(gUnknown_02022C88->unk1E);
|
||||
gUnknown_02022C88->unk1E = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80200EC(u16 x, u16 width, u8 fillValue)
|
||||
{
|
||||
FillWindowPixelRect(1, fillValue, x * 8, 1, width * 8, 14);
|
||||
}
|
||||
|
||||
static void sub_8020118(u16 x, u8 *str, u8 fillValue, u8 arg3, u8 arg4)
|
||||
{
|
||||
u8 *str2;
|
||||
u8 sp[38];
|
||||
if (fillValue)
|
||||
sub_80200EC(x, sub_801F198() - x, fillValue);
|
||||
|
||||
sp[0] = fillValue;
|
||||
sp[1] = arg3;
|
||||
sp[2] = arg4;
|
||||
str2 = &sp[4];
|
||||
str2[0] = EXT_CTRL_CODE_BEGIN;
|
||||
str2[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING;
|
||||
str2[2] = 8;
|
||||
StringCopy(&str2[3], str);
|
||||
AddTextPrinterParameterized3(1, 2, x * 8, 1, sp, TEXT_SPEED_FF, str2);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user