mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-04 00:19:12 -04:00
Match sub_801F280
This commit is contained in:
+83
-5
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user