Match sub_801F280

This commit is contained in:
DizzyEggg
2024-12-16 10:38:11 +01:00
parent 1506b099e8
commit 62ca91f771
5 changed files with 84 additions and 221 deletions
+83 -5
View File
@@ -9,6 +9,7 @@
#include "code_801EE10.h"
#include "code_80118A4.h"
#include "menu_input.h"
#include "string_format.h"
EWRAM_DATA_2 unkStruct_203B270 *gUnknown_203B270 = {0};
@@ -95,7 +96,7 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex
xxx_call_save_unk_text_struct_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6);
sub_8013780(&gUnknown_203B270->input,0);
sub_801F280(1);
sub_801F280(TRUE);
return 1;
}
@@ -147,7 +148,7 @@ u32 sub_801EF38(char param_1)
else {
goto _134;
}
sub_801F280(1);
sub_801F280(TRUE);
return 1;
case INPUT_R_DPAD_UP_BUTTONS:
if (gUnknown_203B270->unk5 == 0) break;
@@ -160,7 +161,7 @@ u32 sub_801EF38(char param_1)
_134:
PlayMenuSoundEffect(2);
}
sub_801F280(1);
sub_801F280(TRUE);
return 1;
case INPUT_R_A_BUTTONS:
if (gUnknown_203B270->unk6 != 0) {
@@ -225,7 +226,7 @@ _134:
}
if (flag) {
_ret:
sub_801F280(1);
sub_801F280(TRUE);
return 1;
}
else
@@ -253,7 +254,7 @@ void sub_801F1B0(bool8 param_1, bool8 param_2)
gUnknown_203B270->input.unk22 = sub_801F3F8();
sub_8013984(&gUnknown_203B270->input);
gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex);
sub_801F280(1);
sub_801F280(TRUE);
if(param_1)
AddMenuCursorSprite(&gUnknown_203B270->input);
}
@@ -273,3 +274,80 @@ void sub_801F214(void)
gUnknown_203B270 = NULL;
}
}
extern void sub_80922B4(u8 *buffer, u8 *string, s32 size);
void sub_801F280(bool8 param_1)
{
int i;
u8 buffer[20];
CallPrepareTextbox_8008C54(gUnknown_203B270->unk50);
sub_80073B8(gUnknown_203B270->unk50);
sub_80922B4(buffer,gUnknown_203B270->pokeStruct->name,10);
strcpy(gFormatBuffer_Monsters[0],buffer);
PrintFormattedStringOnWindow(0xc,0,gUnknown_80DC28C,gUnknown_203B270->unk50,0); // Move: {COLOR_1 YELLOW}{ARG_POKEMON_0){END_COLOR_TEXT_1}
for (i = 0; i < gUnknown_203B270->input.unk1A; i++) {
struct Move *move;
bool8 linkChain;
s32 x, y;
struct unkStruct_80928C0 uStack_30 = {0};
uStack_30.unk4 = 0x6a;
move = &gUnknown_203B270->moves[i];
if (MoveFlagExists(move)) {
if (gUnknown_203B270->isTeamLeader) {
uStack_30.unk0 = 2;
}
else {
uStack_30.unk0 = 4;
}
if (gUnknown_203B270->unk6) {
uStack_30.unk9 = 1;
}
else {
uStack_30.unk9 = 0;
}
if (i >= MAX_MON_MOVES) {
uStack_30.unk8 = 1;
}
sub_80928A0(gFormatBuffer_Items[0],move,&uStack_30);
y = sub_8013800(&gUnknown_203B270->input,i);
linkChain = MoveFlagLinkChain(move);
x = !linkChain ? 0x8 : 0xD;
if (!linkChain && i != 0) {
sub_800792C(gUnknown_203B270->unk50,0xc,y - 2,0x78,7);
}
PrintFormattedStringOnWindow(x,y,gUnknown_80DC2A0,gUnknown_203B270->unk50,0); // {ARG_MOVE_ITEM_0}
}
}
sub_80073E0(gUnknown_203B270->unk50);
if ((gUnknown_203B270->text != NULL) && (param_1)) {
CallPrepareTextbox_8008C54(gUnknown_203B270->unk54);
sub_80073B8(gUnknown_203B270->unk54);
PrintFormattedStringOnWindow(8,0,gUnknown_203B270->text,gUnknown_203B270->unk54,0);
sub_80073E0(gUnknown_203B270->unk54);
}
}
s32 sub_801F3F8(void)
{
Move *move;
int index;
s32 counter;
counter = 0;
for(index = 0; index < 8; index++)
{
move = &gUnknown_203B270->moves[index];
if ((move->moveFlags & MOVE_FLAG_EXISTS)) {
counter++;
}
}
return counter;
}