split out menu input asm and rename UnkInputStruct to MenuInputStruct

This commit is contained in:
Seth Barberee
2023-06-26 20:48:18 -07:00
parent 852f4b9eff
commit db705e9398
19 changed files with 1338 additions and 1352 deletions

File diff suppressed because it is too large Load Diff

1213
asm/menu_input.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -48,7 +48,7 @@ struct UnusedInputStruct
/* 0x2A..0x2B - padding */
};
struct UnkInputStructSub
struct MenuInputStructSub
{
u8 unk0;
/* 0x1 */ u8 a_button;
@@ -60,7 +60,7 @@ struct UnkInputStructSub
s16 unkA;
};
struct UnkInputStruct
struct MenuInputStruct
{
s32 unk0;
/* 0x4 */ u16 unk4;
@@ -77,10 +77,10 @@ struct UnkInputStruct
/* 0x1C */ s16 unk1C;
/* 0x1E */ s16 unk1E;
/* 0x20 */ u16 unk20;
/* 0x20 */ u16 unk22;
/* 0x22 */ u16 unk22;
/* 0x24 */ u16 unk24;
u16 unk26;
/* 0x28 */ struct UnkInputStructSub unk28;
/* 0x28 */ struct MenuInputStructSub unk28;
};

View File

@@ -42,7 +42,7 @@ struct unkStruct_203B224
// size: 0xF4
u32 unk0;
u32 unk4[INVENTORY_SIZE];
/* 0x54 */ struct UnkInputStruct input;
/* 0x54 */ struct MenuInputStruct input;
u32 unk88;
struct UnkTextStruct2 *unk8C;
struct UnkTextStruct2 unk90[4];

View File

@@ -17,7 +17,7 @@ struct MenuStruct
const u32 *menuTextColorArray;
u16 *unkC;
/* 0x10 */ s32 index;
/* 0x14 */ struct UnkInputStruct input;
/* 0x14 */ struct MenuInputStruct input;
/* 0x48 */ s32 menuAction;
bool8 unk4C;
bool8 unk4D;

View File

@@ -49,7 +49,7 @@ struct PersonalityStruct_203B404
/* 0x0 */ s16 StarterID;
/* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
u8 unk16;
/* 0x18 */ struct UnkInputStruct *unk18; // something menu related (seems to be some struct)
/* 0x18 */ struct MenuInputStruct *unk18; // something menu related (seems to be some struct)
u8 padding[0x30 - 0x1C];
/* 0x30 */ s16 currPartnerSelection;
s16 unk32;

View File

@@ -1,13 +1,7 @@
#include "menu.h"
struct unkStruct_203B2F4
{
u8 fill0[0x18];
u8 unk18;
u8 unk19;
s16 unk1A;
s16 unk1C;
s16 unk1E;
u8 fill20[0x34 - 0x20];
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];

View File

@@ -94,6 +94,7 @@ SECTIONS {
src/code_8012A18.o(.text);
src/more_input.o(.text);
src/menu_input.o(.text);
asm/menu_input.o(.text);
asm/code_80130A8.o(.text);
src/code_8012A18_1.o(.text);
src/felicity_bank.o(.text);

View File

@@ -8,7 +8,7 @@
struct AdventureLog
{
// size: 0xA0
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
@@ -42,10 +42,10 @@ const u8 fill_adven[] = "pksdir0";
void sub_8032084();
void DisplayAdventureLog();
extern void sub_8013818(void *, u32, u32, u32);
extern bool8 sub_8013938(struct UnkInputStruct *);
extern void sub_8013660(struct UnkInputStruct *);
extern bool8 sub_8013938(struct MenuInputStruct *);
extern void sub_8013660(struct MenuInputStruct *);
extern void PlayMenuSoundEffect(u32);
extern u32 GetKeyPress(struct UnkInputStruct *);
extern u32 GetKeyPress(struct MenuInputStruct *);
extern bool8 sub_8097710(u8);
extern s16 sub_80978B8();

View File

@@ -34,17 +34,7 @@ struct unkStruct_203B23C
/* 0x4 */ struct PokemonStruct *pokeStruct;
/* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS];
/* 0x20 */ s32 numIQSkills;
/* 0x24 */ u32 unk24;
u8 fill28[0x3C - 0x28];
s16 unk3C;
s16 unk3E;
s16 unk40;
s16 unk42;
s16 unk44;
s16 unk46;
u8 fill48[0x52 - 0x48];
u8 unk52;
u8 fill52[0x58 - 0x53];
/* 0x24 */ struct MenuInputStruct input;
u32 unk58;
/* 0x5C */ struct UnkTextStruct2 *unk5C;
/* 0x60 */ struct UnkTextStruct2 unk60[4];
@@ -77,15 +67,7 @@ struct unkStruct_203B244
u32 unk0;
u8 itemIDs[NUMBER_OF_ITEM_IDS];
u32 unkF4[NUMBER_OF_ITEM_IDS];
u32 unk4B4;
u8 fill4B8[0x4CC - 0x4B8];
s16 unk4CC;
s16 unk4CE;
s16 unk4D0;
s16 unk4D2;
s16 unk4D4;
s16 itemCount;
u8 fill4D8[0x4E8 - 0x4D8];
struct MenuInputStruct input;
u32 unk4E8;
struct UnkTextStruct2 * unk4EC;
struct UnkTextStruct2 unk4F0[4];
@@ -161,9 +143,9 @@ extern u8 *gUnknown_80D4970[];
void sub_8007B7C(s32, s32, s32, s32, s32);
extern bool8 sub_801CF14(s32);
extern void sub_8013818(u32 *, u32, u32, u32);
extern void sub_8013818(struct MenuInputStruct *, u32, u32, u32);
extern u32 sub_801CE58(void);
extern void sub_8013984(void *);
extern void sub_8013984(struct MenuInputStruct *);
extern void sub_801CC38(void);
extern void sub_801CCD8(void);
extern void sub_801CF94(void);
@@ -183,14 +165,14 @@ extern void sub_8013C68(u32 *);
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
extern char * GetIQSkillName(u8 r0);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern s32 sub_8013800(u32 *, s32);
extern s32 sub_8013800(struct MenuInputStruct *, s32);
extern u32 sub_80095E4(s16, u32);
extern void sub_801C440(void);
extern void sub_801C4C8(void);
extern void AddMenuCursorSprite(u32 *);
extern u8 sub_80138B8(u32 *, u32);
extern void sub_8013660(u32 *);
extern s32 GetKeyPress(u32 *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern u8 sub_80138B8(struct MenuInputStruct *, u32);
extern void sub_8013660(struct MenuInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern bool8 HasNoAvailIQSkills(s16 species);
extern u32 sub_801C674(void);
extern void sub_801C6B4(void);
@@ -441,7 +423,7 @@ bool8 sub_801C244(s16 species, u32 index, u32 param_3)
sub_8012D08(gUnknown_203B23C->unk5C,param_3);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B23C->unk60,1,1);
sub_8013818(&gUnknown_203B23C->unk24,gUnknown_203B23C->numIQSkills,param_3,index);
sub_8013818(&gUnknown_203B23C->input,gUnknown_203B23C->numIQSkills,param_3,index);
sub_801C440();
sub_801C4C8();
return TRUE;
@@ -452,10 +434,10 @@ u32 sub_801C308(u8 r0)
{
if(r0 == 0)
{
sub_8013660(&gUnknown_203B23C->unk24);
sub_8013660(&gUnknown_203B23C->input);
return 0;
}
switch(GetKeyPress(&gUnknown_203B23C->unk24))
switch(GetKeyPress(&gUnknown_203B23C->input))
{
case 2:
PlayMenuSoundEffect(1);
@@ -467,7 +449,7 @@ u32 sub_801C308(u8 r0)
PlayMenuSoundEffect(4);
return 4;
default:
if(sub_80138B8(&gUnknown_203B23C->unk24, 1) != 0)
if(sub_80138B8(&gUnknown_203B23C->input, 1) != 0)
{
sub_801C440();
sub_801C4C8();
@@ -480,19 +462,19 @@ u32 sub_801C308(u8 r0)
s32 sub_801C390(void)
{
return (gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40) + gUnknown_203B23C->unk3C;
return (gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C) + gUnknown_203B23C->input.menuIndex;
}
void sub_801C3B0(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B23C->unk60, 0, 0);
gUnknown_203B23C->unk46 = gUnknown_203B23C->numIQSkills;
sub_8013984(&gUnknown_203B23C->unk24);
gUnknown_203B23C->input.unk22 = gUnknown_203B23C->numIQSkills;
sub_8013984(&gUnknown_203B23C->input);
sub_801C440();
sub_801C4C8();
if(r0)
AddMenuCursorSprite(&gUnknown_203B23C->unk24);
AddMenuCursorSprite(&gUnknown_203B23C->input);
}
void sub_801C3F8(void)
@@ -513,13 +495,13 @@ void sub_801C440(void)
{
u16 sVar2;
gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk44;
gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk42;
gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk24.unk20;
gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk24.unk1E;
gUnknown_203B23C->unkC2 = 0xA;
gUnknown_203B23C->unkC3 = 0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B23C->unk60, 1, 1);
sVar2 = sub_80095E4(gUnknown_203B23C->unk3E, 0xc) + 2;
sVar2 = sub_80095E4(gUnknown_203B23C->unk24.unk1A, 0xc) + 2;
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unkE = sVar2;
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unk10 = sVar2;
ResetUnusedInputStruct();
@@ -607,18 +589,18 @@ void sub_801C4C8(void)
sub_8008C54(gUnknown_203B23C->unk58);
sub_80073B8(gUnknown_203B23C->unk58);
x = gUnknown_203B23C->unk42 * 8;
x = gUnknown_203B23C->input.unk1E * 8;
x2 = x;
x2 += 10;
xxx_call_draw_string(x2,0,gUnknown_80DBE08,gUnknown_203B23C->unk58,0);
x += 4;
x2 = x + gUnknown_203B23C->unkC2 * 8;
sub_8012BC4(x2,0,gUnknown_203B23C->unk42 + 1,1,7,
sub_8012BC4(x2,0,gUnknown_203B23C->input.unk1E + 1,1,7,
gUnknown_203B23C->unk58);
for (counter = 0; counter < gUnknown_203B23C->unk3E; counter++) {
for (counter = 0; counter < gUnknown_203B23C->input.unk1A; counter++) {
skillIndex = gUnknown_203B23C->iqSkills
[gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40 + counter];
y = sub_8013800(&gUnknown_203B23C->unk24,counter);
[gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C + counter];
y = sub_8013800(&gUnknown_203B23C->input,counter);
strncpy(gUnknown_202DEA8,GetIQSkillName(skillIndex),0x50);
if (IsIQSkillSet((u8 *)&gUnknown_203B23C->pokeStruct->IQSkills,1 << skillIndex)) {
strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE14);
@@ -805,11 +787,11 @@ bool8 sub_801C8C4(s32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3,
sub_8012D08(gUnknown_203B244->unk4EC, param_4);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B244->unk4F0,1,1);
sub_8013818(&gUnknown_203B244->unk4B4, sub_801CE58(), param_4, param_2);
sub_8013818(&gUnknown_203B244->input, sub_801CE58(), param_4, param_2);
if (gUnknown_203B248 == gUnknown_203B244->unk0) {
gUnknown_203B244->unk4CC = gUnknown_203B24C;
gUnknown_203B244->unk4D2 = gUnknown_203B24E;
sub_8013984(&gUnknown_203B244->unk4B4);
gUnknown_203B244->input.menuIndex = gUnknown_203B24C;
gUnknown_203B244->input.unk1E = gUnknown_203B24E;
sub_8013984(&gUnknown_203B244->input);
}
sub_801CC38();
sub_801CCD8();
@@ -824,10 +806,10 @@ bool8 sub_801CA08(u8 param_1)
u32 flag;
if (param_1 == 0) {
sub_8013660(&gUnknown_203B244->unk4B4);
sub_8013660(&gUnknown_203B244->input);
return 0;
}
switch(GetKeyPress(&(gUnknown_203B244->unk4B4)))
switch(GetKeyPress(&(gUnknown_203B244->input)))
{
case 2:
PlayMenuSoundEffect(1);
@@ -842,7 +824,7 @@ bool8 sub_801CA08(u8 param_1)
if ((temp = sub_801CFE0(index), flag = FALSE, temp != 0) || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag != 0 ) {
PlayMenuSoundEffect(6);
gUnknown_203B244->unkF4[index] = gUnknown_203B244->unkF4[index] ^ 1;
sub_80138B8(&gUnknown_203B244->unk4B4,0);
sub_80138B8(&gUnknown_203B244->input,0);
sub_801CCD8();
return 1;
}
@@ -856,7 +838,7 @@ bool8 sub_801CA08(u8 param_1)
return 4;
default:
_0801CAF2:
if (sub_80138B8(&gUnknown_203B244->unk4B4,1) != 0) {
if (sub_80138B8(&gUnknown_203B244->input,1) != 0) {
sub_801CC38();
sub_801CCD8();
return 1;
@@ -869,19 +851,19 @@ _0801CAF2:
}
u8 sub_801CB24(void) {
return gUnknown_203B244->itemIDs[(gUnknown_203B244->unk4D2 * gUnknown_203B244->unk4D0) + gUnknown_203B244->unk4CC];
return gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + gUnknown_203B244->input.menuIndex];
}
void sub_801CB5C(u8 r0) {
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B244->unk4F0, 0, 0);
gUnknown_203B244->itemCount = sub_801CE58();
sub_8013984(&gUnknown_203B244->unk4B4);
gUnknown_203B244->input.unk22 = sub_801CE58();
sub_8013984(&gUnknown_203B244->input);
sub_801CC38();
sub_801CCD8();
if(r0)
{
AddMenuCursorSprite(&gUnknown_203B244->unk4B4);
AddMenuCursorSprite(&gUnknown_203B244->input);
}
}
@@ -889,8 +871,8 @@ void sub_801CBB8(void) {
if(gUnknown_203B244 != NULL)
{
gUnknown_203B248 = gUnknown_203B244->unk0;
gUnknown_203B24C = gUnknown_203B244->unk4CC;
gUnknown_203B24E = gUnknown_203B244->unk4D2;
gUnknown_203B24C = gUnknown_203B244->input.menuIndex;
gUnknown_203B24E = gUnknown_203B244->input.unk1E;
gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE3C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B244->unk4F0, 1, 1);
@@ -989,17 +971,17 @@ void sub_801CCD8(void)
sub_80073B8(gUnknown_203B244->unk4E8);
xxx_call_draw_string(10,0,gUnknown_80DBE6C,gUnknown_203B244->unk4E8,0);
sub_8012BC4(gUnknown_203B244->unk550[2] * 8 + 4,0,
gUnknown_203B244->unk4D2 + 1,2,7,gUnknown_203B244->unk4E8);
for(index = 0; index < gUnknown_203B244->unk4CE; index++) {
uVar3 = gUnknown_203B244->itemIDs[(gUnknown_203B244->unk4D2 * gUnknown_203B244->unk4D0) + index];
gUnknown_203B244->input.unk1E + 1,2,7,gUnknown_203B244->unk4E8);
for(index = 0; index < gUnknown_203B244->input.unk1A; index++) {
uVar3 = gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + index];
sub_8090DC4(buffer,uVar3,0);
y = sub_8013800(&gUnknown_203B244->unk4B4,index);
y = sub_8013800(&gUnknown_203B244->input,index);
xxx_call_draw_string(8,y,buffer,gUnknown_203B244->unk4E8,0);
y2 = sub_8013800(&gUnknown_203B244->unk4B4,index);
y2 = sub_8013800(&gUnknown_203B244->input,index);
sub_8012BC4((gUnknown_203B244->unk4EC->unkC << 3) - 2,y2,
gTeamInventory_203B460->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8);
if ((sub_801CFE0(uVar3) & 1) != 0) {
sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->unk4B4,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10);
sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->input,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10);
}
}
sub_80073E0(gUnknown_203B244->unk4E8);

View File

@@ -14,7 +14,7 @@ struct Hints
struct unkStruct_203B268
{
// size: 0xA0
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
@@ -24,7 +24,7 @@ struct unkStruct_203B268
struct unkStruct_203B264
{
// size: 0x9C
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
@@ -57,9 +57,9 @@ extern void sub_8008C54(u32);
void DrawHintSelectionMenu(void);
void sub_801E594(void);
void sub_8013984(void *);
void AddMenuCursorSprite(struct UnkInputStruct *);
extern u8 sub_80138B8(struct UnkInputStruct *, u32);
extern void sub_8013660(struct UnkInputStruct *);
void AddMenuCursorSprite(struct MenuInputStruct *);
extern u8 sub_80138B8(struct MenuInputStruct *, u32);
extern void sub_8013660(struct MenuInputStruct *);
extern void sub_8012D08(struct UnkTextStruct2 *, u32);
u32 sub_801E3F0(u32 r0)

View File

@@ -15,7 +15,7 @@ struct unkStruct_203B31C
{
// Size: 0xD0
s16 unk0[NUM_DUNGEON_MAZE];
struct UnkInputStruct unk30;
struct MenuInputStruct unk30;
u32 unk64;
struct UnkTextStruct2 *unk68;
struct UnkTextStruct2 unk6C[4];
@@ -66,7 +66,7 @@ extern bool8 IsMazeCompleted(s32);
extern s32 sub_8030668(void);
extern void sub_8013984(void *);
extern void sub_80304C8();
extern void AddMenuCursorSprite(struct UnkInputStruct *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern void DrawDojoCourseList(void);
extern u8 sub_80138B8(void *, u32);

View File

@@ -17,26 +17,26 @@ extern struct UnkTextStruct1 gUnknown_2027370[4];
extern u8 gUnknown_80D4828[];
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(struct UnkInputStruct *);
extern u32 sub_80137A8(struct UnkInputStruct *);
void MoveMenuCursorUp(struct UnkInputStruct *);
void MoveMenuCursorDown(struct UnkInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern u32 sub_80137A8(struct MenuInputStruct *);
void MoveMenuCursorUp(struct MenuInputStruct *);
void MoveMenuCursorDown(struct MenuInputStruct *);
extern void sub_80073B8(u32);
extern s32 sub_8008ED0(const u8 *);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern s32 sub_8013800(struct UnkInputStruct *, s32);
extern s32 sub_8013800(struct MenuInputStruct *, s32);
extern void sub_80073E0(u32);
extern void sub_8013660(struct UnkInputStruct *);
void AddMenuCursorSprite(struct UnkInputStruct *);
void AddMenuCursorSprite_(struct UnkInputStruct *, u32);
extern void sub_8013660(struct MenuInputStruct *);
void AddMenuCursorSprite(struct MenuInputStruct *);
void AddMenuCursorSprite_(struct MenuInputStruct *, u32);
void sub_8012EBC(struct MenuStruct *param_1);
extern void sub_8013134(struct UnkInputStruct *, u32, u32);
extern void sub_80137B0(struct UnkInputStruct *, u32);
extern void sub_8013134(struct MenuInputStruct *, u32, u32);
extern void sub_80137B0(struct MenuInputStruct *, u32);
extern s16 sub_8009614(u32, u32);
extern u32 ReturnIntFromChar2(u8);
struct unkChar *GetCharacter(u32);
extern void xxx_call_draw_char(u32, u32, u32, u32, u32);
extern void sub_801317C(struct UnkInputStructSub *);
extern void sub_801317C(struct MenuInputStructSub *);
extern void nullsub_7(u16 *);
const u32 gDefaultMenuTextColors[] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED };
@@ -461,7 +461,7 @@ bool8 sub_8013114(struct MenuStruct *param_1, s32 *menuAction)
return FALSE;
}
void sub_8013134(struct UnkInputStruct *param_1, u32 menuItemCounter, u32 index) {
void sub_8013134(struct MenuInputStruct *param_1, u32 menuItemCounter, u32 index) {
struct UnkTextStruct1 *temp;
@@ -491,7 +491,7 @@ void sub_8013134(struct UnkInputStruct *param_1, u32 menuItemCounter, u32 index)
sub_801317C(&param_1->unk28);
}
void sub_801317C(struct UnkInputStructSub *param_1)
void sub_801317C(struct MenuInputStructSub *param_1)
{
param_1->unk0 = 0;
param_1->a_button = 0;
@@ -504,7 +504,7 @@ void sub_801317C(struct UnkInputStructSub *param_1)
ResetUnusedInputStruct();
}
void AddMenuCursorSprite(struct UnkInputStruct *param_1)
void AddMenuCursorSprite(struct MenuInputStruct *param_1)
{
AddMenuCursorSprite_(param_1, 0);
}

View File

@@ -3,10 +3,10 @@
#include "input.h"
extern void nullsub_34(struct UnkInputStructSub *r0);
extern void nullsub_34(struct MenuInputStructSub *r0);
u32 sub_8012AE8(void);
u32 sub_8012A64(struct UnkInputStructSub *r0, u32 r1)
u32 sub_8012A64(struct MenuInputStructSub *r0, u32 r1)
{
if(r0 == NULL)
{
@@ -32,7 +32,7 @@ u32 sub_8012A64(struct UnkInputStructSub *r0, u32 r1)
}
}
u32 GetKeyPress(struct UnkInputStruct *r0)
u32 GetKeyPress(struct MenuInputStruct *r0)
{
if(r0 != NULL)
{

View File

@@ -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 UnkInputStruct **r0, s32, u32, u32);
extern void sub_8013818(struct MenuInputStruct **r0, s32, u32, u32);
extern u32 GetKeyPress(struct UnkInputStruct **r0);
extern u8 sub_80138B8(struct UnkInputStruct **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 UnkInputStruct **r0);
u32 sub_8013800(struct UnkInputStruct **r0, u32);
extern void AddMenuCursorSprite(struct UnkInputStruct **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);

View File

@@ -14,7 +14,7 @@ struct unkStruct_203B2CC
{
// size: 0xD4;
u8 receivedNewsletters[NUM_POKEMON_NEWS];
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk6C;
struct UnkTextStruct2 *unk70;
struct UnkTextStruct2 unk74[4];
@@ -41,7 +41,7 @@ struct unkStruct_203B2D8
{
// size: 0xA4
u8 unk0[4];
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk38;
struct UnkTextStruct2 *unk3C;
struct UnkTextStruct2 unk40[4];
@@ -158,9 +158,9 @@ extern void CreatePKMNNewsMenu(void);
extern void sub_8013818(void *, u32, u32, u32);
extern u8 sub_80138B8(void *, u32);
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(struct UnkInputStruct *);
extern void sub_8013660(struct UnkInputStruct *);
extern void AddMenuCursorSprite(struct UnkInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern void sub_8013660(struct MenuInputStruct *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern void sub_802BCC4(void);
extern void sub_802BB14(u32);
extern void sub_801317C(u32 *);
@@ -168,7 +168,7 @@ extern u8 HasNoMailinMailbox(void);
extern void sub_802BF30(void);
extern void CreateMailMenu(void);
extern s32 CountEmptyMailSlots(void);
extern void sub_8013848(struct UnkInputStruct*, s32, u32, u32);
extern void sub_8013848(struct MenuInputStruct*, s32, u32, u32);
void sub_802BB28(void);
extern void sub_802BB98(void);
extern void sub_802BC08(void);
@@ -184,8 +184,8 @@ extern void sub_80073E0(u32);
extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern void sub_803B6B0(u32, u32, u32, u32);
extern s32 sub_8013800(struct UnkInputStruct *, s32);
extern void sub_8013984(struct UnkInputStruct *);
extern s32 sub_8013800(struct MenuInputStruct *, s32);
extern void sub_8013984(struct MenuInputStruct *);
extern struct PokemonStruct *sub_808D3BC(void);
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);

View File

@@ -29,7 +29,7 @@ EWRAM_DATA_2 struct PostOfficeHelper *gPostOfficeHelper = {0};
struct unkStruct_203B330
{
// size: 0x78
struct UnkInputStructSub input;
struct MenuInputStructSub input;
u8 unkC;
u8 dungeonIndex;
u8 fillE[2];
@@ -178,7 +178,7 @@ extern u8 gAvailablePokemonNames[];
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32);
extern u32 sub_8012A64(struct UnkInputStructSub *, u32);
extern u32 sub_8012A64(struct MenuInputStructSub *, u32);
extern void PlayMenuSoundEffect(u32);
extern void sub_8031A84();
extern void DisplayMissionObjectives();

View File

@@ -12,21 +12,21 @@
bool8 IsMailSlotEmpty(u8);
extern void sub_8013984(void *);
extern void sub_8013848(struct UnkInputStruct *, s32, u32, u32);
extern void sub_8013848(struct MenuInputStruct *, s32, u32, u32);
extern s32 CountPelipperBoardSlots(void);
extern void sub_802C328(void);
extern void DrawPelipperBoardJobMenu(void);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013660(struct UnkInputStruct *);
extern s32 GetKeyPress(struct UnkInputStruct *);
extern bool8 sub_80138B8(struct UnkInputStruct *, u32);
extern void AddMenuCursorSprite(struct UnkInputStruct *);
extern void sub_8013660(struct MenuInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern bool8 sub_80138B8(struct MenuInputStruct *, u32);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern u8 HasNoPelipperBoardJobs(void);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern s32 sub_8013800(struct UnkInputStruct *, s32);
extern s32 sub_8013800(struct MenuInputStruct *, s32);
extern struct WonderMail *GetPelipperBoardSlotInfo(u32);
extern void sub_803B35C(struct WonderMail *, u32 *);
extern u8 gBulletinBoardText[];
@@ -39,7 +39,7 @@ struct unkStruct_203B2D8
{
// size: 0xA4
u8 unk0[4];
struct UnkInputStruct input;
struct MenuInputStruct input;
u32 unk38;
struct UnkTextStruct2 *unk3C;
struct UnkTextStruct2 unk40[4];
@@ -52,7 +52,7 @@ struct unkStruct_203B2E0
{
// size: 0xA8
u8 unk0[0x8];
struct UnkInputStruct input;
struct MenuInputStruct input;
s32 unk3C;
struct UnkTextStruct2 *unk40;
struct UnkTextStruct2 unk44[4];

View File

@@ -154,17 +154,17 @@ extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern void CreateRescueTitle(struct unkStruct_802C39C *);
extern s32 sub_8013800(void *, u32);
extern s32 sub_8013800(struct MenuInputStruct *, u32);
extern u8 gUnknown_80DFDBC[];
extern void sub_802CF5C(void);
extern void sub_802CFD0(void);
extern void sub_8013984(void *);
extern void AddMenuCursorSprite(void *);
extern u8 sub_80138B8(void *, u32);
extern void sub_8013660(void *);
extern u32 GetKeyPress(void *);
extern void sub_8013984(struct MenuInputStruct *);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
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_8013848(void *, s32, u32, u32);
extern void sub_8013848(struct MenuInputStruct *, s32, u32, u32);
extern void sub_802DF24(void);
extern void SetJobListState(u32);
@@ -375,7 +375,7 @@ bool8 sub_802CDD4(u32 r0)
sub_8012D34(gUnknown_203B2F4->unk38, 4);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F4->unk3C, 1, 1);
sub_8013848(gUnknown_203B2F4, 5, 4, r0);
sub_8013848(&gUnknown_203B2F4->input, 5, 4, r0);
sub_802CF5C();
sub_802CFD0();
return TRUE;
@@ -385,12 +385,12 @@ u32 sub_802CE5C(u8 r0)
{
if(r0 == 0)
{
sub_8013660(gUnknown_203B2F4);
sub_8013660(&gUnknown_203B2F4->input);
return 0;
}
else
{
switch(GetKeyPress(gUnknown_203B2F4))
switch(GetKeyPress(&gUnknown_203B2F4->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@@ -398,7 +398,7 @@ u32 sub_802CE5C(u8 r0)
case INPUT_A_BUTTON:
return 3;
default:
if(sub_80138B8(gUnknown_203B2F4, 1) != 0)
if(sub_80138B8(&gUnknown_203B2F4->input, 1) != 0)
{
sub_802CF5C();
sub_802CFD0();
@@ -414,18 +414,18 @@ u32 sub_802CE5C(u8 r0)
u8 sub_802CEBC(void)
{
return (gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C) + gUnknown_203B2F4->unk18;
return (gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C) + gUnknown_203B2F4->input.menuIndex;
}
void sub_802CED8(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F4->unk3C, 0, 0);
sub_8013984(gUnknown_203B2F4);
sub_8013984(&gUnknown_203B2F4->input);
sub_802CF5C();
sub_802CFD0();
if(r0)
AddMenuCursorSprite(gUnknown_203B2F4);
AddMenuCursorSprite(&gUnknown_203B2F4->input);
}
void sub_802CF14(void)
@@ -510,17 +510,17 @@ void sub_802CFD0(void)
sub_8008C54(gUnknown_203B2F4->unk34);
sub_80073B8(gUnknown_203B2F4->unk34);
r5 = r4 = gUnknown_203B2F4->unk1E * 8 + 10;
r5 = r4 = gUnknown_203B2F4->input.unk1E * 8 + 10;
xxx_call_draw_string(r5,0,gUnknown_80DFDBC,gUnknown_203B2F4->unk34,0); // RESCUE EVENT
r4 -= 6;
r5 = r4 + (gUnknown_203B2F4->unk9C[2] * 8);
sub_8012BC4(r5,0,gUnknown_203B2F4->unk1E + 1,2,7,gUnknown_203B2F4->unk34);
sub_8012BC4(r5,0,gUnknown_203B2F4->input.unk1E + 1,2,7,gUnknown_203B2F4->unk34);
for(r5 = 0; r5 < gUnknown_203B2F4->unk1A; r5++)
for(r5 = 0; r5 < gUnknown_203B2F4->input.unk1A; r5++)
{
iVar1 = sub_803B344(gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C + r5);
iVar1 = sub_803B344(gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C + r5);
local.unk0[0] = gUnknown_203B2F4->unk34;
local.y = sub_8013800(gUnknown_203B2F4, r5);
local.y = sub_8013800(&gUnknown_203B2F4->input, r5);
sub_803B35C(&iVar1->mail,&local);
local.unk43 = 1;
local.unk4C = iVar1->unk14;