mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-26 12:05:17 -05:00
164 lines
4.6 KiB
C
164 lines
4.6 KiB
C
#include "global.h"
|
|
#include "globaldata.h"
|
|
#include "code_80118A4.h"
|
|
#include "code_800D090.h"
|
|
#include "input.h"
|
|
#include "memory.h"
|
|
#include "menu_input.h"
|
|
#include "moves.h"
|
|
#include "pokemon.h"
|
|
#include "text.h"
|
|
#include "structs/struct_sub80095e4.h"
|
|
|
|
struct unkStruct_203B274
|
|
{
|
|
// size: 0x3e8
|
|
PokemonStruct1 *pokeStruct;
|
|
unkStruct_808E218_arg *unk4;
|
|
unkStruct_808E218_arg unk8;
|
|
struct_Sub80095E4_2 s348;
|
|
};
|
|
EWRAM_DATA_2 struct unkStruct_203B274 *gUnknown_203B274 = {0};
|
|
|
|
extern u8 gFormatBuffer_Monsters[];
|
|
|
|
static const UnkTextStruct2 sUnknown_80DC2AC = {
|
|
0, 0, 0, 0,
|
|
3,
|
|
0, 0,
|
|
0, 0,
|
|
0, 0,
|
|
NULL
|
|
};
|
|
static const UnkTextStruct2 sUnknown_80DC2C4 = {
|
|
0, 0, 0, 0,
|
|
6,
|
|
2, 2,
|
|
0xF, 4,
|
|
6, 0,
|
|
NULL
|
|
};
|
|
|
|
|
|
ALIGNED(4) const u8 gUnknown_80DC2DC[] = _("Moves Page: %d/%d ");
|
|
|
|
u32 sub_801F7E4(void);
|
|
void sub_801F690(void);
|
|
void sub_801F700(void);
|
|
|
|
|
|
bool8 sub_801F428(s16 index, s32 param_2)
|
|
{
|
|
s32 index_s32 = index;
|
|
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
|
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
|
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
|
gUnknown_203B274->s348.s0.unk34 = param_2;
|
|
gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34];
|
|
RestoreUnkTextStruct_8006518(gUnknown_203B274->s348.s0.unk3C);
|
|
gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4;
|
|
gUnknown_203B274->s348.s0.unk38->unk14 = &gUnknown_203B274->s348.unk9C;
|
|
gUnknown_203B274->s348.unk9C.f0 = 1;
|
|
gUnknown_203B274->s348.unk9C.f1 = 0;
|
|
gUnknown_203B274->s348.unk9C.f2 = 0xC;
|
|
gUnknown_203B274->s348.unk9C.f3 = 0;
|
|
ResetUnusedInputStruct();
|
|
xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE);
|
|
sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
|
|
sub_801F690();
|
|
sub_801F700();
|
|
return TRUE;
|
|
}
|
|
|
|
u32 sub_801F520(u8 param_1)
|
|
{
|
|
if (param_1 == 0) {
|
|
sub_8013660(&gUnknown_203B274->s348.s0.input);
|
|
return 0;
|
|
}
|
|
else {
|
|
switch(GetKeyPress(&gUnknown_203B274->s348.s0.input))
|
|
{
|
|
case 2:
|
|
PlayMenuSoundEffect(1);
|
|
return 2;
|
|
case 1:
|
|
PlayMenuSoundEffect(0);
|
|
return 3;
|
|
case 4:
|
|
PlayMenuSoundEffect(4);
|
|
return 4;
|
|
default:
|
|
break;
|
|
}
|
|
if (sub_80138B8(&gUnknown_203B274->s348.s0.input,1) != 0) {
|
|
sub_801F690();
|
|
sub_801F700();
|
|
return 1;
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
u16 sub_801F5B4(void)
|
|
{
|
|
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + gUnknown_203B274->s348.s0.input.menuIndex];
|
|
}
|
|
|
|
void sub_801F5F0(bool8 r0)
|
|
{
|
|
ResetUnusedInputStruct();
|
|
xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, FALSE, FALSE);
|
|
sub_8013984(&gUnknown_203B274->s348.s0.input);
|
|
sub_801F690();
|
|
sub_801F700();
|
|
if(r0)
|
|
AddMenuCursorSprite(&gUnknown_203B274->s348.s0.input);
|
|
}
|
|
|
|
void sub_801F63C(void)
|
|
{
|
|
if(gUnknown_203B274 != NULL)
|
|
{
|
|
gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC;
|
|
ResetUnusedInputStruct();
|
|
xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE);
|
|
MemoryFree(gUnknown_203B274);
|
|
gUnknown_203B274 = NULL;
|
|
}
|
|
}
|
|
|
|
void sub_801F690(void)
|
|
{
|
|
SUB_80095E4_CALL(gUnknown_203B274->s348.s0);
|
|
}
|
|
|
|
void sub_801F700(void)
|
|
{
|
|
u32 y;
|
|
int index;
|
|
u8 buffer2 [48];
|
|
u8 buffer1 [128];
|
|
|
|
CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.unk34);
|
|
sub_80073B8(gUnknown_203B274->s348.s0.unk34);
|
|
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.unk1E + 1,gUnknown_203B274->s348.s0.input.unk20); // Moves Page: %d/%d
|
|
PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.unk34,0);
|
|
for(index = 0; index < gUnknown_203B274->s348.s0.input.unk1A; index++)
|
|
{
|
|
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + index]);
|
|
y = sub_8013800(&gUnknown_203B274->s348.s0.input, index);
|
|
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.unk34,0);
|
|
}
|
|
sub_80073E0(gUnknown_203B274->s348.s0.unk34);
|
|
}
|
|
|
|
u32 sub_801F7E4(void)
|
|
{
|
|
sub_808E218(gUnknown_203B274->unk4, gUnknown_203B274->pokeStruct);
|
|
return gUnknown_203B274->unk4->count;
|
|
}
|
|
|