Finish converting items over to MenuInputStruct

This commit is contained in:
Seth Barberee 2023-06-28 21:25:13 -07:00
parent db705e9398
commit d18b00758b
14 changed files with 231 additions and 300 deletions

View File

@ -76,8 +76,8 @@ struct MenuInputStruct
/* 0x1A */ s16 unk1A;
/* 0x1C */ s16 unk1C;
/* 0x1E */ s16 unk1E;
/* 0x20 */ u16 unk20;
/* 0x22 */ u16 unk22;
/* 0x20 */ s16 unk20;
/* 0x22 */ s16 unk22;
/* 0x24 */ u16 unk24;
u16 unk26;
/* 0x28 */ struct MenuInputStructSub unk28;

View File

@ -49,13 +49,7 @@ struct PersonalityStruct_203B404
/* 0x0 */ s16 StarterID;
/* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
u8 unk16;
/* 0x18 */ struct MenuInputStruct *unk18; // something menu related (seems to be some struct)
u8 padding[0x30 - 0x1C];
/* 0x30 */ s16 currPartnerSelection;
s16 unk32;
u8 padding2[0x3A - 0x34];
/* 0x3A */ s16 numPartners;
u8 padding3[0x4C - 0x3C];
/* 0x18 */ struct MenuInputStruct input;
u32 unk4C;
/* 0x50 */ struct UnkTextStruct2 *unk50;
/* 0x54 */ struct UnkTextStruct2 unk54[4];

View File

@ -2,16 +2,7 @@ struct unkStruct_203B2E8
{
// size: 0xA8
u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS];
u32 unk8;
u8 fillC[0x20 - 0xC];
s16 unk20;
s16 unk22;
s16 unk24;
s16 unk26;
u16 unk28;
u16 acceptedJobs;
u16 unk2C;
u8 fill2E[0x3C - 0x2E];
struct MenuInputStruct input;
u32 unk3C;
struct UnkTextStruct2 *unk40;
struct UnkTextStruct2 unk44[4];

View File

@ -18,14 +18,7 @@
struct unkStruct_203B258
{
// size: 0xA0
u8 fill0[0x18];
u16 unk18;
u16 unk1A;
s16 unk1C;
s16 unk1E;
s16 unk20;
u16 unk22;
u8 unk24[0x34 - 0x24];
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
@ -36,15 +29,15 @@ extern struct unkStruct_203B258 *gUnknown_203B258;
extern struct UnkTextStruct2 gUnknown_80DBF88;
extern struct UnkTextStruct2 gUnknown_80DBF70;
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8013878(void *, s32);
extern u8 sub_80138B8(void *, u32);
extern u32 GetKeyPress(void *);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern void sub_8013878(struct MenuInputStruct *, s32);
extern u8 sub_80138B8(struct MenuInputStruct *, u32);
extern u32 GetKeyPress(struct MenuInputStruct *);
extern void PlayMenuSoundEffect(u32);
extern void sub_801DB54();
extern void sub_801DBD4();
extern void sub_8013984(void *);
extern void AddMenuCursorSprite(void *);
extern void sub_8013984(struct MenuInputStruct *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern u32 sub_801BF48(void);
extern void sub_801BF98(void);
@ -531,7 +524,7 @@ u32 sub_801D9E4(void)
gUnknown_203B258->unk38->unk14 = gUnknown_203B258->unk9C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B258->unk3C,1,1);
sub_8013818(gUnknown_203B258,0xe5,10,gUnknown_203B258->unk34);
sub_8013818(&gUnknown_203B258->input,0xe5,10,gUnknown_203B258->unk34);
sub_801DB54();
sub_801DBD4();
return 1;
@ -541,14 +534,14 @@ void sub_801DA58(s16 param_0)
{
s32 cast;
cast = param_0;
sub_8013878(gUnknown_203B258, cast);
sub_8013878(&gUnknown_203B258->input, cast);
sub_801DB54();
sub_801DBD4();
}
u32 sub_801DA78(void)
{
switch(GetKeyPress(gUnknown_203B258))
switch(GetKeyPress(&gUnknown_203B258->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -556,7 +549,7 @@ u32 sub_801DA78(void)
case INPUT_A_BUTTON:
return 3;
default:
if(sub_80138B8(gUnknown_203B258, 1) != 0)
if(sub_80138B8(&gUnknown_203B258->input, 1) != 0)
{
sub_801DB54();
sub_801DBD4();
@ -570,17 +563,17 @@ u32 sub_801DA78(void)
s16 sub_801DAC0(void)
{
return (gUnknown_203B258->unk1E * gUnknown_203B258->unk1C) + gUnknown_203B258->unk18;
return (gUnknown_203B258->input.unk1E * gUnknown_203B258->input.unk1C) + gUnknown_203B258->input.menuIndex;
}
void sub_801DADC(u8 r0)
{
gUnknown_203B258->unk22 = 0xE5;
sub_8013984(gUnknown_203B258);
gUnknown_203B258->input.unk22 = 0xE5;
sub_8013984(&gUnknown_203B258->input);
sub_801DB54();
sub_801DBD4();
if(r0)
AddMenuCursorSprite(gUnknown_203B258);
AddMenuCursorSprite(&gUnknown_203B258->input);
}
void sub_801DB0C(void)

View File

@ -8,10 +8,7 @@
struct unkStruct_203B2AC
{
u8 unk0[0x1E];
s16 unk1E;
s16 unk20;
u8 unk22[0x34 - 0x22];
struct MenuInputStruct input;
u32 unk34[3];
u8 unk40[0x48 - 0x40];
s16 speciesNum;
@ -48,15 +45,15 @@ extern struct unkStruct_3001B60 *gUnknown_3001B60;
extern struct UnkTextStruct2 gUnknown_80DC9B0;
extern struct UnkTextStruct2 gUnknown_80DC9C8;
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern bool8 sub_80023E4(u32);
extern void sub_808FF20(u32 *, struct PokemonStruct *, bool8);
extern void CreatePokemonInfoTabScreen(u32, s16, u32 *, u32 *, u32);
extern s32 GetKeyPress(void *);
extern bool8 sub_8013938(void *);
extern s32 GetKeyPress(struct MenuInputStruct*);
extern bool8 sub_8013938(struct MenuInputStruct*);
extern void sub_802452C(void);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013984(void *);
extern void sub_8013984(struct MenuInputStruct*);
void sub_80922B4(u8 *buffer, u8 *string, s32 size);
bool8 ComparePokemonNames(s16 a1, s16 a2);
@ -237,13 +234,13 @@ bool8 sub_8024458(s16 speciesNum, s32 param_2)
gUnknown_203B2AC->unk148[2] = 10;
sub_8024604();
sub_802452C();
sub_8013984(gUnknown_203B2AC);
sub_8013984(&gUnknown_203B2AC->input);
return TRUE;
}
u8 sub_80244E4(void)
{
switch(GetKeyPress(gUnknown_203B2AC))
switch(GetKeyPress(&gUnknown_203B2AC->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -252,7 +249,7 @@ u8 sub_80244E4(void)
PlayMenuSoundEffect(0);
return 3;
default:
if (sub_8013938(gUnknown_203B2AC) != 0) {
if (sub_8013938(&gUnknown_203B2AC->input) != 0) {
sub_802452C();
return 1;
}
@ -282,8 +279,8 @@ void sub_802453C(void)
void sub_8024588(void)
{
gUnknown_203B2AC->unk148[0] = gUnknown_203B2AC->unk20;
gUnknown_203B2AC->unk148[1] = gUnknown_203B2AC->unk1E;
gUnknown_203B2AC->unk148[0] = gUnknown_203B2AC->input.unk20;
gUnknown_203B2AC->unk148[1] = gUnknown_203B2AC->input.unk1E;
gUnknown_203B2AC->unk148[3] = 0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2AC->unkE8,1,1);
@ -292,8 +289,8 @@ void sub_8024588(void)
void sub_80245D0(void)
{
CreatePokemonInfoTabScreen
(gUnknown_203B2AC->unk34[gUnknown_203B2AC->unk1E],
gUnknown_203B2AC->unk1E,&gUnknown_203B2AC->unk4C,
(gUnknown_203B2AC->unk34[gUnknown_203B2AC->input.unk1E],
gUnknown_203B2AC->input.unk1E,&gUnknown_203B2AC->unk4C,
&gUnknown_203B2AC->unkB0,gUnknown_203B2AC->unkE0);
}
@ -305,7 +302,7 @@ void sub_8024604(void)
gUnknown_203B2AC->unk34[0] = 2;
gUnknown_203B2AC->unk34[1] = 3;
gUnknown_203B2AC->unk34[2] = 5;
sub_8013818(gUnknown_203B2AC,3,1,gUnknown_203B2AC->unkE0);
sub_8013818(&gUnknown_203B2AC->input,3,1,gUnknown_203B2AC->unkE0);
iVar3 = &gUnknown_203B2AC->unk4C;
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->speciesNum];
sub_808FF20(iVar3,pokeStruct, sub_80023E4(7));

View File

@ -15,14 +15,7 @@ struct unkStruct_203B274
struct PokemonStruct *pokeStruct;
struct unkStruct_808E218_arg *unk4;
struct unkStruct_808E218_arg unk8;
u32 unk348;
u8 fill34C[0x360 - 0x34C];
s16 unk360;
s16 unk362;
s16 unk364;
s16 unk366;
s16 unk368;
u8 fill36A[0x37C - 0x36A];
struct MenuInputStruct input;
s32 unk37C;
struct UnkTextStruct2 *unk380;
struct UnkTextStruct2 unk384[4];
@ -34,17 +27,17 @@ extern struct UnkTextStruct2 gUnknown_80DC2AC;
extern u8 gUnknown_80DC2DC[];
extern void sub_8013818(u32 *, u32, u32, u32);
extern s32 GetKeyPress(void *);
extern void sub_8013660(void *);
extern void AddMenuCursorSprite(void *);
extern u8 sub_80138B8(u32 *, u32);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern s32 GetKeyPress(struct MenuInputStruct*);
extern void sub_8013660(struct MenuInputStruct*);
extern void AddMenuCursorSprite(struct MenuInputStruct*);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013984(void *);
extern void sub_8013984(struct MenuInputStruct*);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern s32 sub_8013800(u32 *, s32);
extern s32 sub_8013800(struct MenuInputStruct*, s32);
extern void xxx_call_draw_string(s32, s32, u8 *, s32, s32);
u32 sub_801F7E4(void);
@ -85,7 +78,7 @@ bool8 sub_801F428(s16 index, s32 param_2) {
gUnknown_203B274->unk3E4[3] = 0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B274->unk384, 1, 1);
sub_8013818(&gUnknown_203B274->unk348, sub_801F7E4(), 4, param_2);
sub_8013818(&gUnknown_203B274->input, sub_801F7E4(), 4, param_2);
sub_801F690();
sub_801F700();
return 1;
@ -94,11 +87,11 @@ bool8 sub_801F428(s16 index, s32 param_2) {
u32 sub_801F520(u8 param_1)
{
if (param_1 == 0) {
sub_8013660(&gUnknown_203B274->unk348);
sub_8013660(&gUnknown_203B274->input);
return 0;
}
else {
switch(GetKeyPress(&gUnknown_203B274->unk348))
switch(GetKeyPress(&gUnknown_203B274->input))
{
case 2:
PlayMenuSoundEffect(1);
@ -112,7 +105,7 @@ u32 sub_801F520(u8 param_1)
default:
break;
}
if (sub_80138B8(&gUnknown_203B274->unk348,1) != 0) {
if (sub_80138B8(&gUnknown_203B274->input,1) != 0) {
sub_801F690();
sub_801F700();
return 1;
@ -125,18 +118,18 @@ u32 sub_801F520(u8 param_1)
u16 sub_801F5B4(void)
{
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->unk366 * gUnknown_203B274->unk364 + gUnknown_203B274->unk360];
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + gUnknown_203B274->input.menuIndex];
}
void sub_801F5F0(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B274->unk384, 0, 0);
sub_8013984(&gUnknown_203B274->unk348);
sub_8013984(&gUnknown_203B274->input);
sub_801F690();
sub_801F700();
if(r0)
AddMenuCursorSprite(&gUnknown_203B274->unk348);
AddMenuCursorSprite(&gUnknown_203B274->input);
}
void sub_801F63C(void)
@ -216,12 +209,12 @@ void sub_801F700(void)
sub_8008C54(gUnknown_203B274->unk37C);
sub_80073B8(gUnknown_203B274->unk37C);
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->unk366 + 1,gUnknown_203B274->unk368); // Moves Page: %d/%d
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->input.unk1E + 1,gUnknown_203B274->input.unk20); // Moves Page: %d/%d
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->unk37C,0);
for(index = 0; index < gUnknown_203B274->unk362; index++)
for(index = 0; index < gUnknown_203B274->input.unk1A; index++)
{
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->unk366 * gUnknown_203B274->unk364 + index]);
y = sub_8013800(&gUnknown_203B274->unk348, index);
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + index]);
y = sub_8013800(&gUnknown_203B274->input, index);
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->unk37C,0);
}
sub_80073E0(gUnknown_203B274->unk37C);

View File

@ -22,13 +22,7 @@ struct unkStruct_3001B5C
u8 fill14[0x354 - 0x14];
u8 unk354;
u8 fill355[0x35C - 0x355];
u8 unk35C;
u8 fill35D[0x374 - 0x35D];
s16 unk374;
s16 unk376;
s16 unk378;
s16 unk37A;
u8 fill37C[0x390 - 0x37C];
struct MenuInputStruct input;
u32 unk390;
struct UnkTextStruct2 *unk394;
struct UnkTextStruct2 unk398[4];
@ -48,16 +42,16 @@ void sub_80237E0(void);
extern bool8 sub_8098134(s32);
extern void sub_8023730(void);
extern u8 sub_8023704(u8);
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8013984(u8 *);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern void sub_8013984(struct MenuInputStruct*);
extern void sub_8023420(void);
extern void sub_80234BC(void);
extern u32 sub_80236A4(void);
extern u8 sub_80138B8(void *, u32);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(void *);
extern void sub_8013660(void *);
extern void AddMenuCursorSprite(void *);
extern s32 GetKeyPress(struct MenuInputStruct*);
extern void sub_8013660(struct MenuInputStruct*);
extern void AddMenuCursorSprite(struct MenuInputStruct*);
struct unkStruct_203B294
{
@ -336,10 +330,10 @@ bool8 sub_8023144(s32 param_1, s32 index, struct UnkTextStruct2_sub *sub, u32 pa
sub_8012D08(gUnknown_3001B5C->unk394,param_4);
ResetUnusedInputStruct();
sub_800641C(gUnknown_3001B5C->unk398,1,1);
sub_8013818(&gUnknown_3001B5C->unk35C,sub_80236A4(),param_4,index);
gUnknown_3001B5C->unk374 = gUnknown_203B29C;
gUnknown_3001B5C->unk37A = gUnknown_203B29E;
sub_8013984(&gUnknown_3001B5C->unk35C);
sub_8013818(&gUnknown_3001B5C->input,sub_80236A4(),param_4,index);
gUnknown_3001B5C->input.menuIndex = gUnknown_203B29C;
gUnknown_3001B5C->input.unk1E = gUnknown_203B29E;
sub_8013984(&gUnknown_3001B5C->input);
sub_8023420();
sub_80234BC();
return 1;
@ -352,10 +346,10 @@ u8 sub_8023278(u8 param_1)
u32 temp;
if (param_1 == 0) {
sub_8013660(&gUnknown_3001B5C->unk35C);
sub_8013660(&gUnknown_3001B5C->input);
return 0;
}
switch(GetKeyPress(&gUnknown_3001B5C->unk35C))
switch(GetKeyPress(&gUnknown_3001B5C->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -372,7 +366,7 @@ u8 sub_8023278(u8 param_1)
sub_80236A4();
break;
default:
if (sub_80138B8(&gUnknown_3001B5C->unk35C, 1) == 0) {
if (sub_80138B8(&gUnknown_3001B5C->input, 1) == 0) {
return 0;
}
break;
@ -384,18 +378,18 @@ u8 sub_8023278(u8 param_1)
s16 sub_802331C(void)
{
return gUnknown_3001B5C->unkC[gUnknown_3001B5C->unk37A * gUnknown_3001B5C->unk378 + gUnknown_3001B5C->unk374];
return gUnknown_3001B5C->unkC[gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C + gUnknown_3001B5C->input.menuIndex];
}
void sub_8023354(u8 param_1)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_3001B5C->unk398,0,0);
sub_8013984(&gUnknown_3001B5C->unk35C);
sub_8013984(&gUnknown_3001B5C->input);
sub_8023420();
sub_80234BC();
if (param_1 != 0) {
AddMenuCursorSprite(&gUnknown_3001B5C->unk35C);
AddMenuCursorSprite(&gUnknown_3001B5C->input);
}
}
@ -404,8 +398,8 @@ void sub_80233A0(void)
{
if (gUnknown_3001B5C != NULL) {
gUnknown_203B298 = gUnknown_3001B5C->unk4;
gUnknown_203B29C = gUnknown_3001B5C->unk374;
gUnknown_203B29E = gUnknown_3001B5C->unk37A;
gUnknown_203B29C = gUnknown_3001B5C->input.menuIndex;
gUnknown_203B29E = gUnknown_3001B5C->input.unk1E;
gUnknown_3001B5C->unk398[gUnknown_3001B5C->unk390] = gUnknown_80DC904;
ResetUnusedInputStruct();
sub_800641C(gUnknown_3001B5C->unk398,1,1);
@ -526,11 +520,11 @@ void sub_80234BC(void)
sub_80073B8(gUnknown_3001B5C->unk390);
xxx_call_draw_string(10,0,gUnknown_80DC934,gUnknown_3001B5C->unk390,0); // Pokemon
sub_8012BC4(gUnknown_3001B5C->unk3F8[2] * 8 + 4,0,
gUnknown_3001B5C->unk37A + 1,2,7,gUnknown_3001B5C->unk390);
for(index = 0; index < gUnknown_3001B5C->unk376; index++)
gUnknown_3001B5C->input.unk1E + 1,2,7,gUnknown_3001B5C->unk390);
for(index = 0; index < gUnknown_3001B5C->input.unk1A; index++)
{
y = sub_8013800(&gUnknown_3001B5C->unk35C,index);
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->unk37A * gUnknown_3001B5C->unk378 + index)];
y = sub_8013800(&gUnknown_3001B5C->input,index);
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->input.unk1E * gUnknown_3001B5C->input.unk1C + index)];
sub_8092638(GetFriendArea(species),&auStack_2c,0,0);
color = 7;
if (auStack_2c.unk4 != 0) {

View File

@ -42,9 +42,9 @@ extern struct Hints gGameHints[MAX_HINTS];
extern u8 gUnknown_80DC0D4[MAX_HINTS];
extern void sub_801E714(void);
extern void sub_8013818(void *, u32, u32, u32);
extern bool8 sub_8013938(void *);
extern s32 GetKeyPress(void *);
extern void sub_8013818(struct MenuInputStruct *, u32, u32, u32);
extern bool8 sub_8013938(struct MenuInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern void PlayMenuSoundEffect(u32);
extern void sub_801E714(void);
extern void sub_801E76C(void);
@ -52,11 +52,11 @@ extern void DisplayChosenHint(void);
extern void xxx_call_draw_string(s32, u32, u8 *, u32, u32);
extern void sub_80073E0(u32);
extern void sub_80073B8(u32);
extern s32 sub_8013800(void *, u32);
extern s32 sub_8013800(struct MenuInputStruct *, u32);
extern void sub_8008C54(u32);
void DrawHintSelectionMenu(void);
void sub_801E594(void);
void sub_8013984(void *);
void sub_8013984(struct MenuInputStruct *);
void AddMenuCursorSprite(struct MenuInputStruct *);
extern u8 sub_80138B8(struct MenuInputStruct *, u32);
extern void sub_8013660(struct MenuInputStruct *);
@ -73,7 +73,7 @@ u32 sub_801E3F0(u32 r0)
sub_8012D08(gUnknown_203B264->unk38, 0xA);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B264->unk3C, 1, 1);
sub_8013818(gUnknown_203B264, 0x5, 0xA, r0);
sub_8013818(&gUnknown_203B264->input, 0x5, 0xA, r0);
sub_801E594();
DrawHintSelectionMenu();
return 1;
@ -118,7 +118,7 @@ void CreateHintSelectionScreen(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B264->unk3C, 0, 0);
sub_8013984(gUnknown_203B264);
sub_8013984(&gUnknown_203B264->input);
sub_801E594();
DrawHintSelectionMenu();
if(r0)
@ -191,7 +191,7 @@ void DrawHintSelectionMenu(void)
xxx_call_draw_string(16, 0, gUnknown_80DC0D4, gUnknown_203B264->unk34, 0);
for(hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++)
{
y = sub_8013800(gUnknown_203B264, hintIndex);
y = sub_8013800(&gUnknown_203B264->input, hintIndex);
xxx_call_draw_string(10, y, gGameHints[hintIndex].heading, gUnknown_203B264->unk34, 0);
}
sub_80073E0(gUnknown_203B264->unk34);
@ -207,7 +207,7 @@ u32 CreateHintDisplayScreen(u32 index)
gUnknown_203B268->unk38->unk14 = gUnknown_203B268->unk9C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B268->unk3C, 1, 1);
sub_8013818(gUnknown_203B268, 5, 1, gUnknown_203B268->unk34);
sub_8013818(&gUnknown_203B268->input, 5, 1, gUnknown_203B268->unk34);
gUnknown_203B268->input.unk1E = index;
sub_801E714();
@ -216,7 +216,7 @@ u32 CreateHintDisplayScreen(u32 index)
u32 HandleHintDisplayScreenInput(void)
{
switch(GetKeyPress(gUnknown_203B268))
switch(GetKeyPress(&gUnknown_203B268->input))
{
case 2:
PlayMenuSoundEffect(1);
@ -225,7 +225,7 @@ u32 HandleHintDisplayScreenInput(void)
PlayMenuSoundEffect(0);
return 3;
default:
if(sub_8013938(gUnknown_203B268)){
if(sub_8013938(&gUnknown_203B268->input)){
sub_801E714();
return 1;
}

View File

@ -45,7 +45,7 @@ extern void DrawTeamMoneyBox(u32);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern s32 sub_8013800(void *, u32);
extern s32 sub_8013800(struct MenuInputStruct *, u32);
extern void xxx_call_draw_string(s32 x, s32, u8 *, u32, u32);
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
extern s32 sub_801AED0(s32);
@ -64,14 +64,7 @@ extern struct unkStruct_203B224 *gUnknown_203B224;
struct unkStruct_203B214
{;
// size: 0xA0
u8 fill0[0x18];
u16 unk18;
s16 unk1A;
s16 unk1C;
s16 unk1E;
s16 unk20;
u16 shopItemCount;
u8 fill24[0x34 - 0x24];
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
@ -81,14 +74,14 @@ struct unkStruct_203B214
extern struct unkStruct_203B214 *gUnknown_203B214;
extern struct unkStruct_203B214 *gUnknown_203B21C;
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8013818(struct MenuInputStruct *, u32, u32, u32);
extern u8 sub_8019FB0(void);
extern u8 sub_80138B8(void *, u32);
extern u8 sub_80138B8(struct MenuInputStruct *, u32);
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(void *);
extern void sub_8013660(void *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern void sub_8013660(struct MenuInputStruct *);
extern struct UnkTextStruct2 gUnknown_80DB8CC;
extern struct UnkTextStruct2 gUnknown_80DB8B4;
@ -98,10 +91,10 @@ extern struct UnkTextStruct2 gUnknown_80DB95C;
extern const struct UnkTextStruct2 gUnknown_80DB914;
extern void sub_801A430(void);
extern void sub_801A4A4(void);
extern void sub_8013984(u8 *);
extern void sub_8013984(struct MenuInputStruct*);
extern void sub_801A064(void);
extern void sub_801A0D8(void);
extern void AddMenuCursorSprite(void *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern u8 sub_801A37C(void);
extern void sub_801A010(void);
@ -616,9 +609,9 @@ u32 sub_8019E40(u32 r0)
gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B214->unk3C, 1, 1);
sub_8013818(gUnknown_203B214, CountKecleonShopItems(), 0xA, r0);
gUnknown_203B214->unk18 = gUnknown_203B218;
sub_8013984((u8 *)gUnknown_203B214);
sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 0xA, r0);
gUnknown_203B214->input.menuIndex = gUnknown_203B218;
sub_8013984(&gUnknown_203B214->input);
sub_801A064();
sub_801A0D8();
return 1;
@ -632,12 +625,12 @@ u32 sub_8019EDC(u8 r0)
if(r0 == 0)
{
sub_8013660(gUnknown_203B214);
sub_8013660(&gUnknown_203B214->input);
return 0;
}
else
{
switch(GetKeyPress(gUnknown_203B214))
switch(GetKeyPress(&gUnknown_203B214->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -659,7 +652,7 @@ u32 sub_8019EDC(u8 r0)
PlayMenuSoundEffect(4);
return 4;
default:
if(sub_80138B8(gUnknown_203B214, 1) != 0)
if(sub_80138B8(&gUnknown_203B214->input, 1) != 0)
{
sub_801A064();
sub_801A0D8();
@ -675,26 +668,26 @@ u32 sub_8019EDC(u8 r0)
u8 sub_8019FB0(void)
{
return (gUnknown_203B214->unk1E * gUnknown_203B214->unk1C) + (u8)gUnknown_203B214->unk18;
return (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + (u8)gUnknown_203B214->input.menuIndex;
}
void sub_8019FCC(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B214->unk3C, 0, 0);
gUnknown_203B214->shopItemCount = CountKecleonShopItems();
sub_8013984((u8 *)gUnknown_203B214);
gUnknown_203B214->input.unk22 = CountKecleonShopItems();
sub_8013984(&gUnknown_203B214->input);
sub_801A064();
sub_801A0D8();
if(r0)
AddMenuCursorSprite(gUnknown_203B214);
AddMenuCursorSprite(&gUnknown_203B214->input);
}
void sub_801A010(void)
{
if(gUnknown_203B214 != NULL)
{
gUnknown_203B218 = gUnknown_203B214->unk18;
gUnknown_203B218 = gUnknown_203B214->input.menuIndex;
gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = gUnknown_80DB8B4;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B214->unk3C, 1, 1);
@ -775,18 +768,14 @@ void sub_801A0D8(void)
struct Item item;
u8 temp_calc;
// Needed for the shifts..
u32 index_shift;
u32 quantity_shift;
sub_8008C54(gUnknown_203B214->unk34);
sub_80073B8(gUnknown_203B214->unk34);
xxx_call_draw_string(gUnknown_203B214->unk1E * 8 + 10,0,gUnknown_80DB8E4,
xxx_call_draw_string(gUnknown_203B214->input.unk1E * 8 + 10,0,gUnknown_80DB8E4,
gUnknown_203B214->unk34,0);
for(index = 0; index < gUnknown_203B214->unk1A; index++)
for(index = 0; index < gUnknown_203B214->input.unk1A; index++)
{
temp_calc = (gUnknown_203B214->unk1E * gUnknown_203B214->unk1C) + index;
temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index;
heldItem = GetKecleonShopItem(temp_calc);
item.id = heldItem->id;
item.quantity = heldItem->quantity;
@ -798,12 +787,12 @@ void sub_801A0D8(void)
sub_8090E14(auStack204,&item,&local_7c);
buyPrice = GetStackBuyPrice(&item);
if (buyPrice <= gTeamInventory_203B460->teamMoney) {
y = sub_8013800(gUnknown_203B214,index);
y = sub_8013800(&gUnknown_203B214->input,index);
xxx_call_draw_string(8,y,auStack204,gUnknown_203B214->unk34,0);
}
else {
sprintfStatic(auStack112,gUnknown_80DB8EC,auStack204);
y = sub_8013800(gUnknown_203B214,index);
y = sub_8013800(&gUnknown_203B214->input,index);
xxx_call_draw_string(8,y,auStack112,gUnknown_203B214->unk34,0);
}
}
@ -826,9 +815,9 @@ u32 sub_801A20C(u32 r0)
gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B21C->unk3C, 1, 1);
sub_8013818(gUnknown_203B21C, CountKecleonWareItems(), 0xA, r0);
gUnknown_203B21C->unk18 = gUnknown_203B220;
sub_8013984((u8 *)gUnknown_203B21C);
sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 0xA, r0);
gUnknown_203B21C->input.menuIndex = gUnknown_203B220;
sub_8013984(&gUnknown_203B21C->input);
sub_801A430();
sub_801A4A4();
return 1;
@ -842,12 +831,12 @@ u32 sub_801A2A8(u8 r0)
if(r0 == 0)
{
sub_8013660(gUnknown_203B21C);
sub_8013660(&gUnknown_203B21C->input);
return 0;
}
else
{
switch(GetKeyPress(gUnknown_203B21C))
switch(GetKeyPress(&gUnknown_203B21C->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -871,7 +860,7 @@ u32 sub_801A2A8(u8 r0)
PlayMenuSoundEffect(4);
return 4;
default:
if(sub_80138B8(gUnknown_203B21C, 1) != 0)
if(sub_80138B8(&gUnknown_203B21C->input, 1) != 0)
{
sub_801A430();
sub_801A4A4();
@ -887,26 +876,26 @@ u32 sub_801A2A8(u8 r0)
u8 sub_801A37C(void)
{
return (gUnknown_203B21C->unk1E * gUnknown_203B21C->unk1C) + gUnknown_203B21C->unk18;
return (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + gUnknown_203B21C->input.menuIndex;
}
void sub_801A398(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B21C->unk3C, 0, 0);
gUnknown_203B21C->shopItemCount = CountKecleonWareItems();
sub_8013984((u8 *)gUnknown_203B21C);
gUnknown_203B21C->input.unk22 = CountKecleonWareItems();
sub_8013984(&gUnknown_203B21C->input);
sub_801A430();
sub_801A4A4();
if(r0)
AddMenuCursorSprite(gUnknown_203B21C);
AddMenuCursorSprite(&gUnknown_203B21C->input);
}
void sub_801A3DC(void)
{
if(gUnknown_203B21C != NULL)
{
gUnknown_203B220 = gUnknown_203B21C->unk18;
gUnknown_203B220 = gUnknown_203B21C->input.menuIndex;
gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB8FC;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B21C->unk3C, 1, 1);
@ -986,18 +975,14 @@ void sub_801A4A4(void)
struct Item item;
u8 temp_calc;
// Needed for the shifts..
u32 index_shift;
u32 quantity_shift;
sub_8008C54(gUnknown_203B21C->unk34);
sub_80073B8(gUnknown_203B21C->unk34);
xxx_call_draw_string(gUnknown_203B21C->unk1E * 8 + 10,0,gUnknown_80DB92C,
xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10,0,gUnknown_80DB92C,
gUnknown_203B21C->unk34,0);
for(index = 0; index < gUnknown_203B21C->unk1A; index++)
for(index = 0; index < gUnknown_203B21C->input.unk1A; index++)
{
temp_calc = (gUnknown_203B21C->unk1E * gUnknown_203B21C->unk1C) + index;
temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index;
heldItem = GetKecleonWareItem(temp_calc);
item.id = heldItem->id;
item.quantity = heldItem->quantity;
@ -1006,15 +991,15 @@ void sub_801A4A4(void)
local_7c.unk4 = 0;
local_7c.unk6 = 0x58;
local_7c.unk8 = 1;
sub_8090E14(buffer1,(struct Item *)&item,&local_7c);
buyPrice = GetStackBuyPrice((struct Item *)&item);
sub_8090E14(buffer1,&item,&local_7c);
buyPrice = GetStackBuyPrice(&item);
if (buyPrice <= gTeamInventory_203B460->teamMoney) {
y = sub_8013800(gUnknown_203B21C,index);
y = sub_8013800(&gUnknown_203B21C->input,index);
xxx_call_draw_string(8,y,buffer1,gUnknown_203B21C->unk34,0);
}
else {
sprintfStatic(buffer2,gUnknown_80DB934,buffer1);
y = sub_8013800(gUnknown_203B21C,index);
y = sub_8013800(&gUnknown_203B21C->input,index);
xxx_call_draw_string(8,y,buffer2,gUnknown_203B21C->unk34,0);
}
}
@ -1052,7 +1037,7 @@ u32 sub_801A5D8(u32 param_1,int param_2,struct UnkTextStruct2_sub *param_3,u32 p
sub_8013818(&gUnknown_203B224->input,GetNumberOfFilledInventorySlots(),param_4,param_2);
gUnknown_203B224->input.menuIndex = gUnknown_203B228;
gUnknown_203B224->input.unk1E = gUnknown_203B22A;
sub_8013984((u8 *)&gUnknown_203B224->input);
sub_8013984(&gUnknown_203B224->input);
sub_801A998();
sub_801A9E0();
return 1;
@ -1152,11 +1137,11 @@ void sub_801A8D0(u8 r0)
sub_800641C(gUnknown_203B224->unk90, 0, 0);
FillInventoryGaps();
gUnknown_203B224->input.unk22 = GetNumberOfFilledInventorySlots();
sub_8013984((u8 *)&gUnknown_203B224->input);
sub_8013984(&gUnknown_203B224->input);
sub_801A998();
sub_801A9E0();
if(r0)
AddMenuCursorSprite((u8 *)&gUnknown_203B224->input);
AddMenuCursorSprite(&gUnknown_203B224->input);
}
void sub_801A928(void)

View File

@ -15,7 +15,7 @@ struct unkStruct_203B31C
{
// Size: 0xD0
s16 unk0[NUM_DUNGEON_MAZE];
struct MenuInputStruct unk30;
struct MenuInputStruct input;
u32 unk64;
struct UnkTextStruct2 *unk68;
struct UnkTextStruct2 unk6C[4];
@ -193,7 +193,7 @@ bool8 sub_80302E8(int param_1, struct UnkTextStruct2_sub *param_2, u32 param_3)
sub_8012D08(gUnknown_203B31C->unk68,param_3);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B31C->unk6C,1,1);
sub_8013818(&gUnknown_203B31C->unk30,sub_8030668(),param_3,param_1);
sub_8013818(&gUnknown_203B31C->input,sub_8030668(),param_3,param_1);
sub_80304C8();
DrawDojoCourseList();
return 1;
@ -203,10 +203,10 @@ bool8 sub_80302E8(int param_1, struct UnkTextStruct2_sub *param_2, u32 param_3)
u32 sub_80303AC(u8 param_1)
{
if (param_1 == 0) {
sub_8013660(&gUnknown_203B31C->unk30);
sub_8013660(&gUnknown_203B31C->input);
return 0;
}
switch(GetKeyPress(&gUnknown_203B31C->unk30))
switch(GetKeyPress(&gUnknown_203B31C->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -215,7 +215,7 @@ u32 sub_80303AC(u8 param_1)
PlayMenuSoundEffect(0);
return 3;
default:
if (sub_80138B8(&gUnknown_203B31C->unk30, 1)) {
if (sub_80138B8(&gUnknown_203B31C->input, 1)) {
sub_80304C8();
DrawDojoCourseList();
return 1;
@ -226,16 +226,16 @@ u32 sub_80303AC(u8 param_1)
}
s16 sub_8030418(void) {
return gUnknown_203B31C->unk0[(gUnknown_203B31C->unk30.unk1E * gUnknown_203B31C->unk30.unk1C) + gUnknown_203B31C->unk30.menuIndex];
return gUnknown_203B31C->unk0[(gUnknown_203B31C->input.unk1E * gUnknown_203B31C->input.unk1C) + gUnknown_203B31C->input.menuIndex];
}
void sub_8030444(u8 r0) {
gUnknown_203B31C->unk30.unk22 = sub_8030668();
sub_8013984(&gUnknown_203B31C->unk30);
gUnknown_203B31C->input.unk22 = sub_8030668();
sub_8013984(&gUnknown_203B31C->input);
sub_80304C8();
DrawDojoCourseList();
if(r0)
AddMenuCursorSprite(&gUnknown_203B31C->unk30);
AddMenuCursorSprite(&gUnknown_203B31C->input);
}
void sub_8030480(void) {
@ -323,15 +323,15 @@ void DrawDojoCourseList(void)
sub_80073B8(gUnknown_203B31C->unk64);
xxx_call_draw_string(10,0,gMakuhitaDojoHeader,gUnknown_203B31C->unk64,0); // Courses
sub_8012BC4(gUnknown_203B31C->unkCC[2] * 8 + 4,0,
gUnknown_203B31C->unk30.unk1E + 1,2,7,gUnknown_203B31C->unk64);
for (index = 0; index < gUnknown_203B31C->unk30.unk1A; index++)
gUnknown_203B31C->input.unk1E + 1,2,7,gUnknown_203B31C->unk64);
for (index = 0; index < gUnknown_203B31C->input.unk1A; index++)
{
iVar6 = gUnknown_203B31C->unk0[gUnknown_203B31C->unk30.unk1E * gUnknown_203B31C->unk30.unk1C + index];
iVar6 = gUnknown_203B31C->unk0[gUnknown_203B31C->input.unk1E * gUnknown_203B31C->input.unk1C + index];
dungeonIndex = sub_80A2740(iVar6);
mazeIndex = sub_80A2668(iVar6);
y = sub_8013800(&gUnknown_203B31C->unk30, index);
y = sub_8013800(&gUnknown_203B31C->input, index);
color = COLOR_WHITE_2; // COLOR_WHITE again?
if (IsMazeCompleted(mazeIndex)) {
xxx_call_draw_string(8,y,gUnknown_80E0824,gUnknown_203B31C->unk64,0); // Draw Star symbol

View File

@ -1,4 +1,5 @@
#include "global.h"
#include "input.h"
#include "personality_test.h"
#include "constants/emotions.h"
#include "constants/input.h"
@ -6,7 +7,6 @@
#include "random.h"
#include "file_system.h"
#include "pokemon.h"
#include "input.h"
#include "save.h"
#include "memory.h"
#include "game_options.h"
@ -62,16 +62,16 @@ extern void sub_800836C(u32, u8 *r0, u32);
extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray);
extern void RedrawPartnerSelectionMenu(void);
extern void sub_8013818(struct MenuInputStruct **r0, s32, u32, u32);
extern void sub_8013818(struct MenuInputStruct *r0, s32, u32, u32);
extern u32 GetKeyPress(struct MenuInputStruct **r0);
extern u8 sub_80138B8(struct MenuInputStruct **r0, u32);
extern u32 GetKeyPress(struct MenuInputStruct *r0);
extern u8 sub_80138B8(struct MenuInputStruct *r0, u32);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013984(struct MenuInputStruct **r0);
u32 sub_8013800(struct MenuInputStruct **r0, u32);
extern void AddMenuCursorSprite(struct MenuInputStruct **r0);
extern void sub_8013984(struct MenuInputStruct *r0);
u32 sub_8013800(struct MenuInputStruct *r0, u32);
extern void AddMenuCursorSprite(struct MenuInputStruct *r0);
extern void xxx_call_draw_string(u32 x, u32 y, const char *text, u32, u32);
extern u32 sub_80095E4(s16, u32);
@ -791,7 +791,7 @@ void CreatePartnerSelectionMenu(s16 starterID)
gUnknown_203B404->unkb4[3] = 0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B404->unk54, 1, 1);
sub_8013818(&gUnknown_203B404->unk18, GetValidPartners(), 0xA, gUnknown_203B404->unk4C);
sub_8013818(&gUnknown_203B404->input, GetValidPartners(), 0xA, gUnknown_203B404->unk4C);
RedrawPartnerSelectionMenu();
PersonalityTest_DisplayPartnerSprite();
}
@ -801,17 +801,17 @@ u16 HandlePartnerSelectionInput(void)
{
s32 partnerID;
partnerID = gUnknown_203B404->currPartnerSelection;
partnerID = gUnknown_203B404->input.menuIndex;
gUnknown_203B404->unk16 = 0;
if (GetKeyPress(&gUnknown_203B404->unk18) == INPUT_A_BUTTON) {
if (GetKeyPress(&gUnknown_203B404->input) == INPUT_A_BUTTON) {
PlayMenuSoundEffect(0);
return gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection];
return gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex];
}
else {
if (sub_80138B8(&gUnknown_203B404->unk18, 1) != '\0') {
if (sub_80138B8(&gUnknown_203B404->input, 1) != '\0') {
RedrawPartnerSelectionMenu();
}
if (partnerID != gUnknown_203B404->currPartnerSelection) {
if (partnerID != gUnknown_203B404->input.menuIndex) {
PersonalityTest_DisplayPartnerSprite();
}
if (gUnknown_203B404->unk16 != '\0') {
@ -825,12 +825,12 @@ u16 HandlePartnerSelectionInput(void)
void sub_803CE34(u8 param_1)
{
gUnknown_203B404->numPartners = GetValidPartners();
sub_8013984(&gUnknown_203B404->unk18);
gUnknown_203B404->input.unk22 = GetValidPartners();
sub_8013984(&gUnknown_203B404->input);
RedrawPartnerSelectionMenu();
PersonalityTest_DisplayPartnerSprite();
if (param_1 != 0) {
AddMenuCursorSprite(&gUnknown_203B404->unk18);
AddMenuCursorSprite(&gUnknown_203B404->input);
}
}
@ -1006,7 +1006,7 @@ void PersonalityTest_DisplayPartnerSprite(void)
u8 *r6;
u32 faceIndex;
partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection];
partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex];
sub_8008C54(1);
sub_80073B8(1);
faceFile = GetDialogueSpriteDataPtr(partnerID);

View File

@ -98,23 +98,23 @@ extern void sub_802CAA4(void);
extern u8 IsJobSlotEmpty(u8);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_8013C68(u32 *);
extern void sub_8013C68(struct MenuInputStruct*);
extern void sub_80073E0(u32);
extern struct WonderMail* GetJobSlotInfo(u8);
extern s32 sub_8013800(void *, u32);
extern s32 sub_8013800(struct MenuInputStruct*, u32);
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *);
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
extern void CreateRescueTitle(struct unkStruct_802C39C *);
extern void sub_8013984(u32 *);
extern void sub_8013984(struct MenuInputStruct*);
extern void sub_802C6DC(void);
extern void DrawJobListMenu(void);
extern void AddMenuCursorSprite(u32 *);
extern u8 sub_80138B8(void *, u32);
extern s32 GetKeyPress(void *);
extern void AddMenuCursorSprite(struct MenuInputStruct*);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern s32 GetKeyPress(struct MenuInputStruct*);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013660(void *);
extern void sub_8013848(u32 *, s32, u32, u32);
extern void sub_8013848(struct MenuInputStruct*, s32, u32, u32);
extern bool8 IsPelipperBoardSlotEmpty(u8);
extern void SetJobListState(u32);
extern void sub_802CC00(void);
@ -176,9 +176,9 @@ bool8 sub_802C4C8(int param_1,struct UnkTextStruct2_sub *param_2,u32 param_3)
sub_8012D34(gUnknown_203B2E8->unk40,param_3);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2E8->unk44,1,1);
sub_8013848(&gUnknown_203B2E8->unk8,CountAcceptedJobs(),param_3,param_1);
gUnknown_203B2E8->unk20 = gUnknown_203B2EC;
sub_8013984(&gUnknown_203B2E8->unk8);
sub_8013848(&gUnknown_203B2E8->input,CountAcceptedJobs(),param_3,param_1);
gUnknown_203B2E8->input.menuIndex = gUnknown_203B2EC;
sub_8013984(&gUnknown_203B2E8->input);
sub_802C6DC();
DrawJobListMenu();
return TRUE;
@ -188,11 +188,11 @@ bool8 sub_802C4C8(int param_1,struct UnkTextStruct2_sub *param_2,u32 param_3)
u32 sub_802C598(u8 param_1)
{
if (param_1 == '\0') {
sub_8013660(&gUnknown_203B2E8->unk8);
sub_8013660(&gUnknown_203B2E8->input);
return 0;
}
else {
switch(GetKeyPress(&gUnknown_203B2E8->unk8))
switch(GetKeyPress(&gUnknown_203B2E8->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -204,7 +204,7 @@ u32 sub_802C598(u8 param_1)
PlayMenuSoundEffect(4);
return 4;
}
if (sub_80138B8(&gUnknown_203B2E8->unk8, 1) != '\0') {
if (sub_80138B8(&gUnknown_203B2E8->input, 1) != '\0') {
sub_802C6DC();
DrawJobListMenu();
return 1;
@ -217,26 +217,26 @@ u32 sub_802C598(u8 param_1)
u8 GetPelipperBoardSlotIndex(void)
{
return gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + gUnknown_203B2E8->unk20];
return gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C + gUnknown_203B2E8->input.menuIndex];
}
void sub_802C640(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2E8->unk44, 0, 0);
gUnknown_203B2E8->acceptedJobs = CountAcceptedJobs();
sub_8013984(&gUnknown_203B2E8->unk8);
gUnknown_203B2E8->input.unk22 = CountAcceptedJobs();
sub_8013984(&gUnknown_203B2E8->input);
sub_802C6DC();
DrawJobListMenu();
if(r0)
AddMenuCursorSprite(&gUnknown_203B2E8->unk8);
AddMenuCursorSprite(&gUnknown_203B2E8->input);
}
void sub_802C688(void)
{
if(gUnknown_203B2E8 != NULL)
{
gUnknown_203B2EC = gUnknown_203B2E8->unk20;
gUnknown_203B2EC = gUnknown_203B2E8->input.menuIndex;
gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCE4;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2E8->unk44, 1, 1);
@ -315,19 +315,19 @@ void DrawJobListMenu(void)
sub_8008C54(gUnknown_203B2E8->unk3C);
sub_80073B8(gUnknown_203B2E8->unk3C);
r4 = gUnknown_203B2E8->unk26 * 8;
r4 = gUnknown_203B2E8->input.unk1E * 8;
r5 = r4;
r5 += 10;
xxx_call_draw_string(r5,0,gUnknown_80DFD14,gUnknown_203B2E8->unk3C,0); // "Job List"
r4 += 4;
r5 = r4 + gUnknown_203B2E8->unkA4[2] * 8;
sub_8012BC4(r5,0,gUnknown_203B2E8->unk26 + 1,2,7,gUnknown_203B2E8->unk3C);
sub_8012BC4(r5,0,gUnknown_203B2E8->input.unk1E + 1,2,7,gUnknown_203B2E8->unk3C);
for(index = 0; index < gUnknown_203B2E8->unk22; index++)
for(index = 0; index < gUnknown_203B2E8->input.unk1A; index++)
{
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + index]);
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C + index]);
local.unk0[0] = gUnknown_203B2E8->unk3C;
local.y = sub_8013800(&gUnknown_203B2E8->unk8,index);
local.y = sub_8013800(&gUnknown_203B2E8->input,index);
sub_803B35C(mail,&local);
CreateRescueTitle(&local);
}

View File

@ -69,15 +69,7 @@ struct unkStruct_203B314
u8 unkB9;
u8 unkBA;
u8 unkBB;
u32 unkBC;
u8 fillC0[0xD4 - 0xC0];
s16 unkD4;
s16 unkD6;
s16 unkD8;
s16 unkDA;
s16 unkDC;
s16 unkDE;
u8 fillDF[0xF0 - 0xE0];
struct MenuInputStruct input;
u32 unkF0;
struct UnkTextStruct2 *unkF4;
struct UnkTextStruct2 unkF8[4];
@ -103,12 +95,12 @@ enum FriendRewardStates {
extern u8 sub_802FCF0(u32);
extern void sub_802F9C0(void);
extern void sub_802FA50(void);
extern void sub_8013818(u32 *, u32, u32, u32);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern u32 sub_802FBF4(void);
extern void sub_8013878(u32 *, s32);
extern void sub_8013878(struct MenuInputStruct *, s32);
extern void AddMenuCursorSprite(u32 *);
extern void sub_8013984(u32 *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern void sub_8013984(struct MenuInputStruct *);
extern void SetRewardSceneState(u32);
extern void sub_802EFEC(u32);
extern void sub_802F148(void);
@ -134,9 +126,9 @@ extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_802F6FC(void);
extern void ProceedToNextRewardSceneState(void);
extern u8 sub_80138B8(u32 *, u32);
extern void sub_8013660(u32 *);
extern u32 GetKeyPress(u32 *);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern void sub_8013660(struct MenuInputStruct *);
extern u32 GetKeyPress(struct MenuInputStruct *);
extern void PlayMenuSoundEffect(u32);
extern void sub_802F300(void);
extern void PlaySound(u32);
@ -145,7 +137,7 @@ extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32);
extern u32 sub_801B60C(u32, u8, u8);
extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
void HandleMissionReward(void);
extern s32 sub_8013800(u32 *, s32);
extern s32 sub_8013800(struct MenuInputStruct *, s32);
extern void xxx_call_draw_string(s32, s32, const u8 *, s32, s32);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
@ -754,7 +746,7 @@ u32 sub_802F73C(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2, u8 r3)
sub_8012D08(gUnknown_203B314->unkF4, r2);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B314->unkF8, 1, 1);
sub_8013818(&gUnknown_203B314->unkBC, sub_802FBF4(), r2, r0);
sub_8013818(&gUnknown_203B314->input, sub_802FBF4(), r2, r0);
sub_802F9C0();
sub_802FA50();
return 1;
@ -768,15 +760,15 @@ u32 sub_802F848(s16 param_1)
param_1_32 = param_1; // cast needed
for( index = 0; index < gUnknown_203B314->unkDE; index++ ) {
for( index = 0; index < gUnknown_203B314->input.unk22; index++ ) {
if (gUnknown_203B314->unk0[index] == param_1_32) {
sub_8013878(&gUnknown_203B314->unkBC,index);
sub_8013878(&gUnknown_203B314->input,index);
sub_802F9C0();
sub_802FA50();
return 1;
}
}
sub_8013878(&gUnknown_203B314->unkBC,0);
sub_8013878(&gUnknown_203B314->input,0);
return 0;
}
@ -784,12 +776,12 @@ u32 sub_802F8A0(u8 r0)
{
if(r0 == 0)
{
sub_8013660(&gUnknown_203B314->unkBC);
sub_8013660(&gUnknown_203B314->input);
return 0;
}
else
{
switch(GetKeyPress(&gUnknown_203B314->unkBC))
switch(GetKeyPress(&gUnknown_203B314->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -798,7 +790,7 @@ u32 sub_802F8A0(u8 r0)
PlayMenuSoundEffect(0);
return 3;
default:
if(sub_80138B8(&gUnknown_203B314->unkBC, 1) != 0)
if(sub_80138B8(&gUnknown_203B314->input, 1) != 0)
{
sub_802F9C0();
sub_802FA50();
@ -814,18 +806,18 @@ u32 sub_802F8A0(u8 r0)
s16 sub_802F90C(void)
{
return gUnknown_203B314->unk0[(gUnknown_203B314->unkDA * gUnknown_203B314->unkD8) + gUnknown_203B314->unkD4];
return gUnknown_203B314->unk0[(gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C) + gUnknown_203B314->input.menuIndex];
}
void sub_802F938(u8 r0)
{
gUnknown_203B314->unkDE = sub_802FBF4();
sub_8013984(&gUnknown_203B314->unkBC);
gUnknown_203B314->input.unk22 = sub_802FBF4();
sub_8013984(&gUnknown_203B314->input);
sub_802F9C0();
sub_802FA50();
if(r0 != 0)
AddMenuCursorSprite(&gUnknown_203B314->unkBC);
AddMenuCursorSprite(&gUnknown_203B314->input);
}
void sub_802F974(void)
@ -925,12 +917,12 @@ void sub_802FA50(void)
sub_8008C54(gUnknown_203B314->unkF0);
sub_80073B8(gUnknown_203B314->unkF0);
xxx_call_draw_string(10,0,gUnknown_80E0744,gUnknown_203B314->unkF0,0);
sub_8012BC4(gUnknown_203B314->unk158[2] * 8 + 4,0,gUnknown_203B314->unkDA + 1,2,7,gUnknown_203B314->unkF0);
sub_8012BC4(gUnknown_203B314->unk158[2] * 8 + 4,0,gUnknown_203B314->input.unk1E + 1,2,7,gUnknown_203B314->unkF0);
if (gUnknown_203B314->unkB8 != 0) {
for(counter = 0; counter < gUnknown_203B314->unkD6; counter++)
for(counter = 0; counter < gUnknown_203B314->input.unk1A; counter++)
{
y = sub_8013800(&gUnknown_203B314->unkBC,counter);
index = gUnknown_203B314->unkDA * gUnknown_203B314->unkD8 + counter;
y = sub_8013800(&gUnknown_203B314->input,counter);
index = gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C + counter;
sVar1 = gUnknown_203B314->unk0[index];
if (gUnknown_203B314->unk5C[index] != 0) {
xxx_call_draw_string(10,y,gUnknown_80E0750,gUnknown_203B314->unkF0,0);
@ -942,10 +934,10 @@ void sub_802FA50(void)
}
}
else {
for(counter = 0; counter < gUnknown_203B314->unkD6; counter++)
for(counter = 0; counter < gUnknown_203B314->input.unk1A; counter++)
{
y2 = sub_8013800(&gUnknown_203B314->unkBC,counter);
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->unkDA * gUnknown_203B314->unkD8 + counter]);
y2 = sub_8013800(&gUnknown_203B314->input,counter);
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C + counter]);
xxx_call_draw_string(8,y2,text,gUnknown_203B314->unkF0,0);
}
}

View File

@ -15,15 +15,7 @@ struct unkStruct_203B320
// size: 0xC4
u8 unk0[0x20];
u32 wonderMailType;
u32 unk24;
u8 fill28[0x3C - 0x28];
s16 unk3C;
s16 unk3E;
s16 unk40;
s16 unk42;
s16 unk44;
s16 unk46;
u8 fill48[0x58 - 0x48];
struct MenuInputStruct input;
u32 unk58;
struct UnkTextStruct2 *unk5C;
struct UnkTextStruct2 unk60[4];
@ -88,15 +80,15 @@ extern s32 sub_8030A74(void);
extern void sub_80308A0(void);
extern void sub_803092C(void);
extern void sub_8012D08(struct UnkTextStruct2 *, s32);
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern u8 sub_80138B8(u32 *, u32);
extern void sub_8013660(u32 *);
extern s32 GetKeyPress(u32 *);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern void sub_8013660(struct MenuInputStruct*);
extern s32 GetKeyPress(struct MenuInputStruct*);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013984(u32 *);
extern void AddMenuCursorSprite(u32 *);
extern s32 sub_8013800(void *, u32);
extern void sub_8013984(struct MenuInputStruct*);
extern void AddMenuCursorSprite(struct MenuInputStruct*);
extern s32 sub_8013800(struct MenuInputStruct*, u32);
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
@ -126,7 +118,7 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, struct UnkTextStruct2_sub *r2, u32 r
sub_8012D08(gUnknown_203B320->unk5C, r3);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B320->unk60, 1, 1);
sub_8013818(&gUnknown_203B320->unk24, sub_8030A74(), r3, r1);
sub_8013818(&gUnknown_203B320->input, sub_8030A74(), r3, r1);
sub_80308A0();
sub_803092C();
return 1;
@ -136,10 +128,10 @@ u32 sub_8030768(u8 r0)
{
if(r0 == 0)
{
sub_8013660(&gUnknown_203B320->unk24);
sub_8013660(&gUnknown_203B320->input);
return 0;
}
switch(GetKeyPress(&gUnknown_203B320->unk24))
switch(GetKeyPress(&gUnknown_203B320->input))
{
case INPUT_START_BUTTON:
PlayMenuSoundEffect(4);
@ -151,7 +143,7 @@ u32 sub_8030768(u8 r0)
PlayMenuSoundEffect(0);
return 3;
default:
if(sub_80138B8(&gUnknown_203B320->unk24, 1) != 0)
if(sub_80138B8(&gUnknown_203B320->input, 1) != 0)
{
sub_80308A0();
sub_803092C();
@ -164,18 +156,18 @@ u32 sub_8030768(u8 r0)
u8 sub_80307EC(void)
{
return gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + gUnknown_203B320->unk3C];
return gUnknown_203B320->unk0[(gUnknown_203B320->input.unk1E * gUnknown_203B320->input.unk1C) + gUnknown_203B320->input.menuIndex];
}
void sub_8030810(u8 r0)
{
gUnknown_203B320->unk46 = sub_8030A74();
sub_8013984(&gUnknown_203B320->unk24);
gUnknown_203B320->input.unk22 = sub_8030A74();
sub_8013984(&gUnknown_203B320->input);
sub_80308A0();
sub_803092C();
if(r0 != 0)
AddMenuCursorSprite(&gUnknown_203B320->unk24);
AddMenuCursorSprite(&gUnknown_203B320->input);
}
void sub_803084C()
@ -275,18 +267,18 @@ void sub_803092C(void)
sub_8008C54(gUnknown_203B320->unk58);
sub_80073B8(gUnknown_203B320->unk58);
r4 = gUnknown_203B320->unk42 * 8;
r4 = gUnknown_203B320->input.unk1E * 8;
r5 = r4;
r5 += 10;
xxx_call_draw_string(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->unk58,0);
r4 += 4;
r5 = r4 + gUnknown_203B320->unkC0[2] * 8;
sub_8012BC4(r5,0,gUnknown_203B320->unk42 + 1,1,7,gUnknown_203B320->unk58);
sub_8012BC4(r5,0,gUnknown_203B320->input.unk1E + 1,1,7,gUnknown_203B320->unk58);
for (index = 0; index < gUnknown_203B320->unk3E; index++) {
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + index]);
for (index = 0; index < gUnknown_203B320->input.unk1A; index++) {
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->input.unk1E * gUnknown_203B320->input.unk1C) + index]);
local.unk0[0] = gUnknown_203B320->unk58;
local.y = sub_8013800(&gUnknown_203B320->unk24,index);
local.y = sub_8013800(&gUnknown_203B320->input,index);
local.unk40 = 7;
local.unk42 = 0;
local.unk44 = 0;