decompile ov71_0223CA28 (#603)

This commit is contained in:
scbroede 2025-07-10 14:20:43 -04:00 committed by GitHub
parent e52ade73af
commit 25b7f6f53f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 78 additions and 372 deletions

View File

@ -2,7 +2,6 @@
src/unk_0208A3F4.c
src/overlay107/ov107_02245EB0.c
src/overlay107/ov107_02241AE0.c
src/overlay071/ov71_0223C69C.c
src/overlay065/ov65_0222DCE0.c
src/overlay064/ov64_0222DCE0.c
src/overlay098/ov98_022471C8.c

View File

@ -15,8 +15,8 @@
#include "string_template.h"
#include "text.h"
static void ov71_0223CD64(Window * param0, const u32 param1, const u32 param2, const u32 param3, Strbuf *param4, const u32 param5, const u8 param6, const int param7);
static void ov71_0223CDB0(Window * param0, const u32 param1, const u32 param2, const u32 param3, const Strbuf *param4);
static void ov71_0223CD64(Window *param0, const u32 param1, const u32 param2, const u32 param3, Strbuf *param4, const u32 param5, const u8 param6, const int param7);
static void ov71_0223CDB0(Window *param0, const u32 param1, const u32 param2, const u32 param3, const Strbuf *param4);
static const WindowTemplate Unk_ov71_0223D670[] = {
{ 0x7, 0x2, 0x4, 0x11, 0x2, 0xF, 0x6F },
@ -44,7 +44,7 @@ void ov71_0223C69C(BgConfig *param0, Window *param1)
Bg_FillTilesRange(param0, 7, 0, 1, 0);
}
void ov71_0223C6D4 (Window * param0)
void ov71_0223C6D4(Window *param0)
{
u16 v0;
@ -67,11 +67,11 @@ static const int Unk_ov71_0223D644[] = {
0xA
};
void ov71_0223C6F0 (Window * param0, const TrainerCard * param1)
void ov71_0223C6F0(Window *param0, const TrainerCard *param1)
{
u8 v0;
MessageLoader * v1;
Strbuf* v2;
MessageLoader *v1;
Strbuf *v2;
Window_FillRectWithColor(&param0[0], 0, 0, 0, 17 * 8, 2 * 8);
Window_FillRectWithColor(&param0[1], 0, 0, 0, 17 * 8, 2 * 8);
@ -92,8 +92,8 @@ void ov71_0223C6F0 (Window * param0, const TrainerCard * param1)
}
{
Strbuf* v3 = Strbuf_Init(32, HEAP_ID_25);
StringTemplate * v4 = StringTemplate_New(6, 32, HEAP_ID_25);
Strbuf *v3 = Strbuf_Init(32, HEAP_ID_25);
StringTemplate *v4 = StringTemplate_New(6, 32, HEAP_ID_25);
ov71_0223CD64(&param0[0], (8 * 17), 0, 0, v2, param1->unk_28, 5, 2);
Strbuf_CopyChars(v2, param1->unk_08);
@ -165,363 +165,70 @@ void ov71_0223C6F0 (Window * param0, const TrainerCard * param1)
MessageLoader_Free(v1);
}
// clang-format off
asm void ov71_0223CA28 (Window * param0, const TrainerCard * param1)
void ov71_0223CA28(Window *param0, const TrainerCard *param1)
{
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r6, r0, #0
mov r0, #0xe0
str r0, [sp]
mov r0, #0x20
str r1, [sp, #0x10]
mov r1, #0
str r0, [sp, #4]
add r0, r6, #0
add r0, #0x70
add r2, r1, #0
add r3, r1, #0
bl Window_FillRectWithColor
mov r1, #0
mov r0, #0xe0
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
add r0, r6, #0
add r0, #0x80
add r2, r1, #0
add r3, r1, #0
bl Window_FillRectWithColor
mov r1, #0
mov r0, #0xe0
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
add r0, r6, #0
add r0, #0x90
add r2, r1, #0
add r3, r1, #0
bl Window_FillRectWithColor
mov r1, #0
mov r0, #0xe0
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
add r0, r6, #0
add r0, #0xa0
add r2, r1, #0
add r3, r1, #0
bl Window_FillRectWithColor
mov r2, #0x9a
mov r0, #0
mov r1, #0x1a
lsl r2, r2, #2
mov r3, #0x19
bl MessageLoader_Init
add r7, r0, #0
mov r0, #0x20
mov r1, #0x19
bl Strbuf_Init
add r5, r0, #0
mov r4, #7
_0223CAA4:
ldr r1, = Unk_ov71_0223D644
lsl r2, r4, #2
ldr r1, [r1, r2]
add r0, r7, #0
add r2, r5, #0
bl MessageLoader_GetStrbuf
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, = 0x10200
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
lsl r0, r4, #4
add r0, r6, r0
add r2, r5, #0
add r3, r1, #0
bl Text_AddPrinterWithParamsAndColor
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #0xb
blo _0223CAA4
mov r0, #0x20
mov r1, #0x19
bl Strbuf_Init
str r0, [sp, #0x14]
mov r0, #6
mov r1, #0x20
mov r2, #0x19
bl StringTemplate_New
ldr r1, [sp, #0x10]
add r4, r0, #0
add r1, #0x33
ldrb r1, [r1]
cmp r1, #0
beq _0223CB6E
mov r1, #2
str r1, [sp]
mov r2, #1
str r2, [sp, #4]
ldr r2, [sp, #0x10]
add r3, r1, #0
add r2, #0x32
ldrb r2, [r2]
bl StringTemplate_SetNumber
ldr r2, [sp, #0x10]
add r0, r4, #0
add r2, #0x33
ldrb r2, [r2]
mov r1, #3
bl StringTemplate_SetMonthName
mov r3, #2
ldr r2, [sp, #0x10]
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
add r2, #0x34
ldrb r2, [r2]
add r0, r4, #0
mov r1, #4
bl StringTemplate_SetNumber
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r2, [sp, #0x10]
add r0, r4, #0
ldrh r2, [r2, #0x2c]
mov r1, #0
mov r3, #3
bl StringTemplate_SetNumber
mov r3, #2
ldr r2, [sp, #0x10]
str r3, [sp]
mov r1, #1
str r1, [sp, #4]
add r2, #0x35
ldrb r2, [r2]
add r0, r4, #0
bl StringTemplate_SetNumber
ldr r2, [sp, #0x14]
add r0, r7, #0
mov r1, #0x11
bl MessageLoader_GetStrbuf
ldr r2, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
bl StringTemplate_Format
b _0223CBA6
_0223CB6E:
ldr r2, [sp, #0x14]
add r0, r7, #0
mov r1, #0xc
bl MessageLoader_GetStrbuf
mov r1, #0
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x14]
add r0, r4, #0
add r3, r1, #0
bl StringTemplate_SetStrbuf
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x14]
add r0, r4, #0
mov r1, #1
bl StringTemplate_SetStrbuf
add r0, r7, #0
mov r1, #0x14
add r2, r5, #0
bl MessageLoader_GetStrbuf
_0223CBA6:
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl Font_CalcStrbufWidth
mov r1, #0xe0
sub r3, r1, r0
mov r1, #0
str r1, [sp]
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r6, #0
add r0, #0x70
add r2, r5, #0
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
ldr r2, [sp, #0x14]
add r0, r7, #0
mov r1, #0xf
bl MessageLoader_GetStrbuf
ldr r2, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
bl StringTemplate_Format
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl Font_CalcStrbufWidth
mov r1, #0xe0
sub r3, r1, r0
mov r0, #0x10
str r0, [sp]
mov r1, #0
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r6, #0
add r0, #0x70
add r2, r5, #0
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r2, [sp, #0x10]
add r0, r4, #0
ldr r2, [r2, #0x38]
mov r1, #5
mov r3, #6
bl StringTemplate_SetNumber
ldr r2, [sp, #0x14]
add r0, r7, #0
mov r1, #0x16
bl MessageLoader_GetStrbuf
ldr r2, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
bl StringTemplate_Format
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl Font_CalcStrbufWidth
mov r1, #0xe0
sub r3, r1, r0
mov r1, #0
str r1, [sp]
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r6, #0
add r0, #0x80
add r2, r5, #0
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
add r0, r7, #0
mov r1, #0x12
add r2, r5, #0
bl MessageLoader_GetStrbuf
mov r1, #0
str r1, [sp]
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r6, #0
add r0, #0x90
add r2, r5, #0
mov r3, #0x70
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
mov r2, #0
ldr r0, [sp, #0x10]
str r5, [sp]
ldr r0, [r0, #0x40]
mov r1, #0xe0
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0x90
add r3, r2, #0
bl ov71_0223CD64
add r0, r7, #0
mov r1, #0x13
add r2, r5, #0
bl MessageLoader_GetStrbuf
mov r1, #0
str r1, [sp]
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r6, #0
add r0, #0x90
add r2, r5, #0
mov r3, #0xb0
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
ldr r0, [sp, #0x10]
str r5, [sp]
ldr r0, [r0, #0x3c]
mov r1, #0xe0
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0x90
mov r2, #0x40
mov r3, #0
bl ov71_0223CD64
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r2, [sp, #0x10]
add r0, r4, #0
ldr r2, [r2, #0x44]
mov r1, #5
mov r3, #6
bl StringTemplate_SetNumber
ldr r2, [sp, #0x14]
add r0, r7, #0
mov r1, #0x16
bl MessageLoader_GetStrbuf
ldr r2, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
bl StringTemplate_Format
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl Font_CalcStrbufWidth
mov r1, #0xe0
sub r3, r1, r0
mov r1, #0
str r1, [sp]
ldr r0, = 0x10200
str r1, [sp, #4]
str r0, [sp, #8]
add r6, #0xa0
add r0, r6, #0
add r2, r5, #0
str r1, [sp, #0xc]
bl Text_AddPrinterWithParamsAndColor
ldr r0, [sp, #0x14]
bl Strbuf_Free
add r0, r4, #0
bl StringTemplate_Free
add r0, r5, #0
bl Strbuf_Free
add r0, r7, #0
bl MessageLoader_Free
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
}
// clang-format on
u8 i;
void ov71_0223CD44 (Window * param0, const u8 param1, const u8 param2)
Window_FillRectWithColor(&param0[7], 0, 0, 0, 28 * 8, 4 * 8);
Window_FillRectWithColor(&param0[8], 0, 0, 0, 28 * 8, 2 * 8);
Window_FillRectWithColor(&param0[9], 0, 0, 0, 28 * 8, 2 * 8);
Window_FillRectWithColor(&param0[10], 0, 0, 0, 28 * 8, 2 * 8);
MessageLoader *messageLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0616, HEAP_ID_25);
Strbuf *strbuf = Strbuf_Init(32, HEAP_ID_25);
for (i = 7; i < 11; i++) {
MessageLoader_GetStrbuf(messageLoader, Unk_ov71_0223D644[i], strbuf);
Text_AddPrinterWithParamsAndColor(&param0[i], FONT_SYSTEM, strbuf, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
}
Strbuf *strbuf2 = Strbuf_Init(32, HEAP_ID_25);
StringTemplate *template = StringTemplate_New(6, 32, HEAP_ID_25);
if (param1->unk_33 != 0) {
StringTemplate_SetNumber(template, 2, param1->unk_32, 2, 2, 1);
StringTemplate_SetMonthName(template, 3, param1->unk_33);
StringTemplate_SetNumber(template, 4, param1->unk_34, 2, 2, 1);
StringTemplate_SetNumber(template, 0, param1->unk_2C, 3, 1, 1);
StringTemplate_SetNumber(template, 1, param1->unk_35, 2, 2, 1);
MessageLoader_GetStrbuf(messageLoader, 17, strbuf2);
StringTemplate_Format(template, strbuf, strbuf2);
} else {
MessageLoader_GetStrbuf(messageLoader, 12, strbuf2);
StringTemplate_SetStrbuf(template, 0, strbuf2, 0, FALSE, GAME_LANGUAGE);
StringTemplate_SetStrbuf(template, 1, strbuf2, 0, FALSE, GAME_LANGUAGE);
MessageLoader_GetStrbuf(messageLoader, 20, strbuf);
}
u32 xOffset = 28 * 8 - Font_CalcStrbufWidth(0, strbuf, 0);
Text_AddPrinterWithParamsAndColor(&param0[7], FONT_SYSTEM, strbuf, xOffset, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
MessageLoader_GetStrbuf(messageLoader, 15, strbuf2);
StringTemplate_Format(template, strbuf, strbuf2);
xOffset = 28 * 8 - Font_CalcStrbufWidth(0, strbuf, 0);
Text_AddPrinterWithParamsAndColor(&param0[7], FONT_SYSTEM, strbuf, xOffset, 16, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
StringTemplate_SetNumber(template, 5, param1->unk_38, 6, 0, 1);
MessageLoader_GetStrbuf(messageLoader, 22, strbuf2);
StringTemplate_Format(template, strbuf, strbuf2);
xOffset = 28 * 8 - Font_CalcStrbufWidth(0, strbuf, 0);
Text_AddPrinterWithParamsAndColor(&param0[8], FONT_SYSTEM, strbuf, xOffset, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
MessageLoader_GetStrbuf(messageLoader, 18, strbuf);
Text_AddPrinterWithParamsAndColor(&param0[9], FONT_SYSTEM, strbuf, 14 * 8, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
ov71_0223CD64(&param0[9], 28 * 8, 0, 0, strbuf, param1->unk_40, 4, 1);
MessageLoader_GetStrbuf(messageLoader, 19, strbuf);
Text_AddPrinterWithParamsAndColor(&param0[9], FONT_SYSTEM, strbuf, 22 * 8, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
ov71_0223CD64(&param0[9], 28 * 8, 8 * 8, 0, strbuf, param1->unk_3C, 4, 1);
StringTemplate_SetNumber(template, 5, param1->unk_44, 6, 0, 1);
MessageLoader_GetStrbuf(messageLoader, 22, strbuf2);
StringTemplate_Format(template, strbuf, strbuf2);
xOffset = 28 * 8 - Font_CalcStrbufWidth(0, strbuf, 0);
Text_AddPrinterWithParamsAndColor(&param0[10], FONT_SYSTEM, strbuf, xOffset, 0, 0, TEXT_COLOR(1, 2, 0), NULL);
Strbuf_Free(strbuf2);
StringTemplate_Free(template);
Strbuf_Free(strbuf);
MessageLoader_Free(messageLoader);
}
void ov71_0223CD44(Window *param0, const u8 param1, const u8 param2)
{
u8 v0;
@ -530,7 +237,7 @@ void ov71_0223CD44 (Window * param0, const u8 param1, const u8 param2)
}
}
static void ov71_0223CD64 (Window * param0, const u32 param1, const u32 param2, const u32 param3, Strbuf *param4, const u32 param5, const u8 param6, const int param7)
static void ov71_0223CD64(Window *param0, const u32 param1, const u32 param2, const u32 param3, Strbuf *param4, const u32 param5, const u8 param6, const int param7)
{
u32 v0;
@ -539,13 +246,13 @@ static void ov71_0223CD64 (Window * param0, const u32 param1, const u32 param2,
Text_AddPrinterWithParamsAndColor(param0, FONT_SYSTEM, param4, param1 - (v0 + param2), param3, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
}
static void ov71_0223CDB0 (Window * param0, const u32 param1, const u32 param2, const u32 param3, const Strbuf *param4)
static void ov71_0223CDB0(Window *param0, const u32 param1, const u32 param2, const u32 param3, const Strbuf *param4)
{
u32 v0 = Font_CalcStrbufWidth(FONT_SYSTEM, param4, 0);
Text_AddPrinterWithParamsAndColor(param0, FONT_SYSTEM, param4, param1 - (v0 + param2), param3, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);
}
void ov71_0223CDE8 (Window * param0, const TrainerCard * param1, Strbuf *param2)
void ov71_0223CDE8(Window *param0, const TrainerCard *param1, Strbuf *param2)
{
int v0;
@ -561,10 +268,10 @@ void ov71_0223CDE8 (Window * param0, const TrainerCard * param1, Strbuf *param2)
{
u32 v1;
MessageLoader * v2 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0616, HEAP_ID_25);
Strbuf* v3 = Strbuf_Init(32, HEAP_ID_25);
Strbuf* v4 = Strbuf_Init(32, HEAP_ID_25);
StringTemplate * v5 = StringTemplate_New((1 + 1), 32, HEAP_ID_25);
MessageLoader *v2 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0616, HEAP_ID_25);
Strbuf *v3 = Strbuf_Init(32, HEAP_ID_25);
Strbuf *v4 = Strbuf_Init(32, HEAP_ID_25);
StringTemplate *v5 = StringTemplate_New((1 + 1), 32, HEAP_ID_25);
StringTemplate_SetNumber(v5, 0, PlayTime_GetHours(param1->playTime), 3, 1, 1);
StringTemplate_SetNumber(v5, 1, PlayTime_GetMinutes(param1->playTime), 2, 2, 1);
@ -580,7 +287,7 @@ void ov71_0223CDE8 (Window * param0, const TrainerCard * param1, Strbuf *param2)
}
}
void ov71_0223CECC (Window * param0, const BOOL param1, Strbuf *param2)
void ov71_0223CECC(Window *param0, const BOOL param1, Strbuf *param2)
{
if (param1) {
Text_AddPrinterWithParamsAndColor(param0, FONT_SYSTEM, param2, (207 - 2), 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL);