diff --git a/asm/code_803B050.s b/asm/code_803B050.s index da56cba09..9b530ce55 100644 --- a/asm/code_803B050.s +++ b/asm/code_803B050.s @@ -77,7 +77,7 @@ _0803B0C8: ldr r3, [r0, 0x34] adds r1, r2, 0 movs r2, 0xA - bl sub_8013818 + bl CreateMenuOnWindow bl sub_803B204 bl sub_803B284 movs r0, 0x1 diff --git a/include/code_801D9E4.h b/include/code_801D9E4.h deleted file mode 100644 index fdd014a98..000000000 --- a/include/code_801D9E4.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef GUARD_CODE_801D9E4_H -#define GUARD_CODE_801D9E4_H - -#include "structs/menu.h" -#include "structs/str_text.h" - -// size: 0x1C -struct unkStruct_81188F0 -{ - /* 0x0 */ u8 *text1; - /* 0x4 */ u8 *text2; - /* 0x8 */ u8 *text3; - /* 0xC */ u8 *text4[2]; - /* 0x14 */ u32 unk2; - /* 0x18 */ u32 unk3; -}; - -bool8 sub_801D9E4(void); -void sub_801DA58(s16); -u32 sub_801DA78(void); -s16 sub_801DAC0(void); -void sub_801DB0C(void); - -#endif // GUARD_CODE_801D9E4_H diff --git a/include/debug_field_map_window.h b/include/debug_field_map_window.h new file mode 100644 index 000000000..71a692e66 --- /dev/null +++ b/include/debug_field_map_window.h @@ -0,0 +1,13 @@ +#ifndef GUARD_DEBUG_FIELD_MAP_WINDOW_H +#define GUARD_DEBUG_FIELD_MAP_WINDOW_H + +#define DEBUG_INPUT_B_PRESS 2 +#define DEBUG_INPUT_A_PRESS 3 + +bool8 DebugFieldMapWindow_Init(void); +void sub_801DA58(s16); +u32 DebugFieldMapWindow_GetInput(void); +s16 DebugFieldMapWindow_GetCurrentIndex(void); +void DebugFieldMapWindow_Free(void); + +#endif // GUARD_DEBUG_FIELD_MAP_WINDOW_H diff --git a/include/menu_input.h b/include/menu_input.h index 62e1ed41b..c5440ac40 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -32,8 +32,8 @@ s32 sub_80137A8(MenuInputStruct *param_1); void sub_80137B0(MenuInputStruct *param_1, s32 param_2); void sub_80137F8(MenuInputStruct *param_1, u32 param_2); s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId); -void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4); -void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4); +void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId); +void sub_8013848(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId); void sub_8013878(MenuInputStruct *param_1, s32 param_2); bool8 sub_80138B8(MenuInputStruct *param_1, bool8 param_2); bool8 sub_8013938(MenuInputStruct *param_1); diff --git a/include/structs/menu.h b/include/structs/menu.h index 381287a2b..d920e4e64 100644 --- a/include/structs/menu.h +++ b/include/structs/menu.h @@ -20,7 +20,7 @@ typedef struct MenuInputStructSub // size: R=0x34 | NDS=0x32? typedef struct MenuInputStruct { - /* 0x0 */ s32 unk0; + /* 0x0 */ s32 windowId; /* 0x4 */ u16 unk4; /* 0x6 */ s16 firstEntryY; /* 0x8 */ DungeonPos unk8; @@ -30,10 +30,10 @@ typedef struct MenuInputStruct /* 0x14 */ DungeonPos unk14; /* 0x18 */ s16 menuIndex; /* 0x1A */ s16 unk1A; - /* 0x1C */ s16 unk1C; + /* 0x1C */ s16 entriesPerPage; /* 0x1E */ s16 unk1E; /* 0x20 */ s16 unk20; - /* 0x22 */ s16 unk22; + /* 0x22 */ s16 totalEntriesCount; /* 0x24 */ u16 unk24; /* 0x26 */ u16 unk26; /* 0x28 */ MenuInputStructSub unk28; diff --git a/include/structs/str_81188F0.h b/include/structs/str_81188F0.h new file mode 100644 index 000000000..253eb1061 --- /dev/null +++ b/include/structs/str_81188F0.h @@ -0,0 +1,17 @@ +#ifndef GUARD_STR_81188F0_H +#define GUARD_STR_81188F0_H + +// size: 0x1C +struct unkStruct_81188F0 +{ + /* 0x0 */ const u8 *text1; + /* 0x4 */ const u8 *text2; + /* 0x8 */ const u8 *text3; + /* 0xC */ const u8 *text4[2]; + /* 0x14 */ u32 unk2; + /* 0x18 */ u32 unk3; +}; + +extern const struct unkStruct_81188F0 gUnknown_81188F0[]; + +#endif // GUARD_STR_81188F0_H diff --git a/ld_script.ld b/ld_script.ld index 48827a034..f6ef8e25f 100755 --- a/ld_script.ld +++ b/ld_script.ld @@ -120,7 +120,7 @@ SECTIONS { src/iq_skill_info_menu.o(.text); src/code_801C8C4.o(.text); src/code_801D014.o(.text); - src/code_801D9E4.o(.text); + src/debug_field_map_window.o(.text); src/options_menu1.o(.text); src/options_menu2.o(.text); src/hints_menu1.o(.text); @@ -479,7 +479,7 @@ SECTIONS { src/iq_skill_info_menu.o(.rodata); src/code_801C8C4.o(.rodata); src/code_801D014.o(.rodata); - src/code_801D9E4.o(.rodata); + src/debug_field_map_window.o(.rodata); src/options_menu1.o(.rodata); src/options_menu2.o(.rodata); src/hints_menu1.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index 50abf7e12..c39a1de71 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -30,7 +30,7 @@ bool8 CreateAdventureLogScreen(u32 kind) ResetUnusedInputStruct(); ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE); - sub_8013818(&sAdventureLog->s0.input, 0x20, 8, kind); + CreateMenuOnWindow(&sAdventureLog->s0.input, 0x20, 8, kind); sub_8032084(); DisplayAdventureLog(); return TRUE; @@ -100,7 +100,7 @@ static void DisplayAdventureLog(void) sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.winId); for (i = 0; i < sAdventureLog->s0.input.unk1A; i++) { - aa = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.unk1C) + i; + aa = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.entriesPerPage) + i; if (GetAdventureAchievement(aa)) { switch (aa) { diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index 8954129b1..918a4b539 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -41,7 +41,7 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3) sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1); + CreateMenuOnWindow(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1); if (sUnknown_203B248 == sUnknown_203B244->unk0) { sUnknown_203B244->unk4B4.s0.input.menuIndex = sUnknown_203B24C; @@ -106,14 +106,14 @@ u32 sub_801CA08(bool8 a0) u8 sub_801CB24(void) { - return sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + sUnknown_203B244->unk4B4.s0.input.menuIndex]; + return sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.entriesPerPage) + sUnknown_203B244->unk4B4.s0.input.menuIndex]; } void sub_801CB5C(bool8 a0) { ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, FALSE, FALSE); - sUnknown_203B244->unk4B4.s0.input.unk22 = sub_801CE58(); + sUnknown_203B244->unk4B4.s0.input.totalEntriesCount = sub_801CE58(); sub_8013984(&sUnknown_203B244->unk4B4.s0.input); sub_801CC38(); sub_801CCD8(); @@ -160,7 +160,7 @@ void sub_801CCD8(void) sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.unk1E + 1, 2, 7, sUnknown_203B244->unk4B4.s0.winId); for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.unk1A; index++) { - itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + index]; + itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.entriesPerPage) + index]; BufferItemName(buffer, itemID, NULL); y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index); PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.winId, 0); diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c deleted file mode 100644 index b2a40b3dd..000000000 --- a/src/code_801D9E4.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "global.h" -#include "globaldata.h" -#include "constants/input.h" -#include "structs/struct_sub80095e4.h" -#include "music_util.h" -#include "code_801D9E4.h" -#include "ground_main.h" -#include "input.h" -#include "memory.h" -#include "menu_input.h" -#include "text_1.h" -#include "text_2.h" - -EWRAM_INIT static struct struct_Sub80095E4_2 *sUnknown_203B258 = {NULL}; - -extern const struct unkStruct_81188F0 gUnknown_81188F0[10]; - -#include "data/code_801D9E4.h" - -static void sub_801DB54(void); -static void sub_801DBD4(void); - -bool8 sub_801D9E4(void) -{ - sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8); - sUnknown_203B258->s0.winId = 3; - sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.windows.id[3]; - RestoreSavedWindows(&sUnknown_203B258->s0.windows); - sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF88; - sUnknown_203B258->s0.unk38->header = &sUnknown_203B258->header; - ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.winId); - sub_801DB54(); - sub_801DBD4(); - return TRUE; -} - -void sub_801DA58(s16 a0) -{ - s32 cast; - cast = a0; - sub_8013878(&sUnknown_203B258->s0.input, cast); - sub_801DB54(); - sub_801DBD4(); -} - -u32 sub_801DA78(void) -{ - switch (GetKeyPress(&sUnknown_203B258->s0.input)) { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - return 3; - default: - if (sub_80138B8(&sUnknown_203B258->s0.input, 1)) { - sub_801DB54(); - sub_801DBD4(); - return 1; - } - return 0; - } -} - -s16 sub_801DAC0(void) -{ - return (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + sUnknown_203B258->s0.input.menuIndex; -} - -UNUSED static void sub_801DADC(bool8 a0) -{ - sUnknown_203B258->s0.input.unk22 = 229; - sub_8013984(&sUnknown_203B258->s0.input); - sub_801DB54(); - sub_801DBD4(); - if (a0) - AddMenuCursorSprite(&sUnknown_203B258->s0.input); -} - -void sub_801DB0C(void) -{ - if (sUnknown_203B258 != NULL) { - sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF70; - ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); - MemoryFree(sUnknown_203B258); - sUnknown_203B258 = NULL; - } -} - -static void sub_801DB54(void) -{ - sUnknown_203B258->header.count = 1; - sUnknown_203B258->header.currId = 0; - sUnknown_203B258->header.width = 8; - sUnknown_203B258->header.f3 = 0; - - ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); - - SUB_80095E4_CALL(sUnknown_203B258->s0); -} - -static void sub_801DBD4(void) -{ - GroundConversionStruct *temp; - const struct unkStruct_81188F0 *temp2; - s32 x, y, n; - s16 index; - int counter; - - CallPrepareTextbox_8008C54(sUnknown_203B258->s0.winId); - sub_80073B8(sUnknown_203B258->s0.winId); - PrintStringOnWindow(10, 0, sField, sUnknown_203B258->s0.winId, 0); // Field - - x = (sUnknown_203B258->header.width * 8) - 2; - n = sUnknown_203B258->s0.input.unk1E + 1; - sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.winId); - - // This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. It can be removed if you don't care about matching. - if (x) { counter = 0; } - - for (counter = 0; counter < sUnknown_203B258->s0.input.unk1A; counter++) { - index = (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + counter; - temp = &gGroundConversion_811BAF4[index]; - temp2 = &gUnknown_81188F0[temp->unk4]; - - y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter); - PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.winId, 0); - - y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter); - PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.winId, 0); - } - - sub_80073E0(sUnknown_203B258->s0.winId); -} diff --git a/src/code_801EE10.c b/src/code_801EE10.c index 579a96fb9..d82659c96 100644 --- a/src/code_801EE10.c +++ b/src/code_801EE10.c @@ -95,7 +95,7 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex sub_8012D08(&gUnknown_203B270->windows.id[gUnknown_203B270->unk50],iVar8); ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B270->windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6); + CreateMenuOnWindow(&gUnknown_203B270->input,iVar5,iVar5,param_6); sub_8013780(&gUnknown_203B270->input,0); sub_801F280(TRUE); return 1; @@ -252,7 +252,7 @@ void sub_801F1B0(bool8 param_1, bool8 param_2) gUnknown_203B270->unk4 = param_2; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B270->windows, TRUE, TRUE); - gUnknown_203B270->input.unk22 = sub_801F3F8(); + gUnknown_203B270->input.totalEntriesCount = sub_801F3F8(); sub_8013984(&gUnknown_203B270->input); gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex); sub_801F280(TRUE); diff --git a/src/code_801F428.c b/src/code_801F428.c index 8878c1858..77b642714 100644 --- a/src/code_801F428.c +++ b/src/code_801F428.c @@ -64,7 +64,7 @@ bool8 sub_801F428(s16 index, s32 param_2) gUnknown_203B274->s348.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2); + CreateMenuOnWindow(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2); sub_801F690(); sub_801F700(); return TRUE; @@ -104,7 +104,7 @@ u32 sub_801F520(u8 param_1) 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]; + return gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.entriesPerPage + gUnknown_203B274->s348.s0.input.menuIndex]; } void sub_801F5F0(bool8 r0) @@ -148,7 +148,7 @@ void sub_801F700(void) PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.winId,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]); + sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.entriesPerPage + index]); y = GetMenuEntryYCoord(&gUnknown_203B274->s348.s0.input, index); PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.winId,0); } diff --git a/src/code_801F808.c b/src/code_801F808.c index 43bb8fa92..20ad3840c 100644 --- a/src/code_801F808.c +++ b/src/code_801F808.c @@ -66,7 +66,7 @@ bool8 sub_801F808(u16 *moveIDs) { if(gUnknown_203B278->moveIDs[index - 1] != 0) break; } - sub_8013818(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C); + CreateMenuOnWindow(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C); sub_801317C(&gUnknown_203B278->unkC8); sub_801F918(0); return 1; diff --git a/src/code_8023144.c b/src/code_8023144.c index d7fbe641c..447b2dac4 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -60,7 +60,7 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3) sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3); ResetUnusedInputStruct(); ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index); + CreateMenuOnWindow(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index); gUnknown_3001B5C->s35C.s0.input.menuIndex = gUnknown_203B29C; gUnknown_3001B5C->s35C.s0.input.unk1E = gUnknown_203B29E; sub_8013984(&gUnknown_3001B5C->s35C.s0.input); @@ -107,7 +107,7 @@ u32 sub_8023278(bool8 a0) s16 sub_802331C(void) { - return gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.unk1C) + gUnknown_3001B5C->s35C.s0.input.menuIndex]; + return gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + gUnknown_3001B5C->s35C.s0.input.menuIndex]; } void sub_8023354(bool8 cursorSprite) @@ -167,7 +167,7 @@ static void sub_80234BC(void) for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.unk1A; i++) { y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i); - species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.unk1C) + i]; + species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + i]; GetFriendAreaCapacity2(GetFriendArea(species), &auStack_2c, FALSE, FALSE); color = COLOR_WHITE_2; if (auStack_2c.hasFriendArea) diff --git a/src/code_8024458.c b/src/code_8024458.c index 4c414fdd4..18b982642 100644 --- a/src/code_8024458.c +++ b/src/code_8024458.c @@ -95,7 +95,7 @@ static void sub_8024604(void) sUnknown_203B2AC->unk34[1] = 3; sUnknown_203B2AC->unk34[2] = 5; - sub_8013818(&sUnknown_203B2AC->input, 3, 1, sUnknown_203B2AC->unkE0); + CreateMenuOnWindow(&sUnknown_203B2AC->input, 3, 1, sUnknown_203B2AC->unkE0); iVar3 = &sUnknown_203B2AC->unk4C; pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2AC->speciesNum]; SetMonSummaryInfo(iVar3, pokeStruct, sub_80023E4(7)); diff --git a/src/code_8072F3C.c b/src/code_8072F3C.c index 2bc55138c..834c19d34 100644 --- a/src/code_8072F3C.c +++ b/src/code_8072F3C.c @@ -92,7 +92,7 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3) sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2); ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0); + CreateMenuOnWindow(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0); sub_802F9C0(); sub_802FA50(); return 1; @@ -105,7 +105,7 @@ u32 sub_802F848(s16 param_1) param_1_32 = param_1; // cast needed - for( index = 0; index < gUnknown_203B314->sBC.s0.input.unk22; index++ ) { + for( index = 0; index < gUnknown_203B314->sBC.s0.input.totalEntriesCount; index++ ) { if (gUnknown_203B314->unk0[index] == param_1_32) { sub_8013878(&gUnknown_203B314->sBC.s0.input,index); sub_802F9C0(); @@ -151,12 +151,12 @@ u32 sub_802F8A0(u8 r0) s16 sub_802F90C(void) { - return gUnknown_203B314->unk0[(gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C) + gUnknown_203B314->sBC.s0.input.menuIndex]; + return gUnknown_203B314->unk0[(gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.entriesPerPage) + gUnknown_203B314->sBC.s0.input.menuIndex]; } void sub_802F938(u8 r0) { - gUnknown_203B314->sBC.s0.input.unk22 = sub_802FBF4(); + gUnknown_203B314->sBC.s0.input.totalEntriesCount = sub_802FBF4(); sub_8013984(&gUnknown_203B314->sBC.s0.input); sub_802F9C0(); sub_802FA50(); @@ -204,7 +204,7 @@ void sub_802FA50(void) for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++) { y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter); - index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter; + index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter; sVar1 = gUnknown_203B314->unk0[index]; if (gUnknown_203B314->unk5C[index] != 0) { PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.winId,0); @@ -219,7 +219,7 @@ void sub_802FA50(void) for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++) { y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter); - text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter]); + text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter]); PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0); } } diff --git a/src/data/code_801D9E4.h b/src/data/code_801D9E4.h deleted file mode 100644 index 05aa19e53..000000000 --- a/src/data/code_801D9E4.h +++ /dev/null @@ -1,19 +0,0 @@ -static const WindowTemplate sUnknown_80DBF70 = { - 0, - 3, - 0, 0, - 0, 0, - 0, 0, - NULL -}; - -static const WindowTemplate sUnknown_80DBF88 = { - 0, - 6, - 2, 2, - 24, 17, - 17, 0, - NULL -}; - -ALIGNED(4) static const u8 sField[] = _("Field"); diff --git a/src/debug_field_map.c b/src/debug_field_map.c index 85b042a16..12ab82a44 100644 --- a/src/debug_field_map.c +++ b/src/debug_field_map.c @@ -1,8 +1,8 @@ #include "global.h" #include "globaldata.h" +#include "debug_field_map_window.h" #include "music_util.h" #include "code_800558C.h" -#include "code_801D9E4.h" #include "code_8099360.h" #include "code_800C9CC.h" #include "graphics_memory.h" @@ -31,17 +31,17 @@ extern s32 sub_809CFE8(u16 param_1); extern PixelPos SetVecFromDirectionSpeed(s8 r1, u32 r2); extern void sub_809D158(s32, PixelPos*); -UNUSED static void sub_80993F0(void) +UNUSED static void DebugMapViewer(void) { PixelPos currPos; - s32 r10 = 0; + s32 mapId = 0; ResetSoundEffectCounters(); FadeOutAllMusic(16); gUnknown_2026E4E = 0x808; UpdateFadeInTile(0); sub_80095CC(0, 0x14); - ShowWindows(NULL, TRUE, TRUE); // TODO: Create a Hide/Reset Windows macro/static inline + ShowWindows(NULL, TRUE, TRUE); sub_8009408(0, 20); sub_8099648(); sub_809975C(); @@ -52,38 +52,39 @@ UNUSED static void sub_80993F0(void) while (1) { bool8 quitMapView; PixelPos pixPos1, pixPos2; - PixelPos pixPos3; + PixelPos boundary; - if (sub_801D9E4()) { - sub_801DA58(r10); + if (DebugFieldMapWindow_Init()) { + sub_801DA58(mapId); while (1) { sub_8005838(NULL, 0); sub_8012A18(0); - switch (sub_801DA78()) { - case 3: - r10 = sub_801DAC0(); + switch (DebugFieldMapWindow_GetInput()) { + case DEBUG_INPUT_A_PRESS: + mapId = DebugFieldMapWindow_GetCurrentIndex(); break; - case 2: - r10 = -1; + case DEBUG_INPUT_B_PRESS: + mapId = -1; break; default: continue; + } break; } } else { - r10 = -1; + mapId = -1; } - sub_801DB0C(); - if (r10 == -1) + DebugFieldMapWindow_Free(); + if (mapId == -1) break; ShowWindows(NULL, TRUE, TRUE); GroundMap_Reset(); sub_809D0BC(); - GroundMap_Select(r10); + GroundMap_Select(mapId); sub_80A579C(&pixPos1, &pixPos2); pixPos1.y += 0xC00; pixPos2.y += 0xC00; @@ -91,8 +92,8 @@ UNUSED static void sub_80993F0(void) pixPos1.y -= 0x400; pixPos2.x += 0x400; pixPos2.y += 0x400; - pixPos3.x = pixPos2.x - pixPos1.x; - pixPos3.y = pixPos2.y - pixPos1.y; + boundary.x = pixPos2.x - pixPos1.x; + boundary.y = pixPos2.y - pixPos1.y; currPos.x = 0; currPos.y = 0; sub_80999E8(4); @@ -121,15 +122,15 @@ UNUSED static void sub_80993F0(void) if (currPos.x < 0) { currPos.x = 0; } - else if (currPos.x >= pixPos3.x) { - currPos.x = pixPos3.x - 1; + else if (currPos.x >= boundary.x) { + currPos.x = boundary.x - 1; } if (currPos.y < 0) { currPos.y = 0; } - else if (currPos.y >= pixPos3.y) { - currPos.y = pixPos3.y - 1; + else if (currPos.y >= boundary.y) { + currPos.y = boundary.y - 1; } } pixPos4.x = pixPos1.x + currPos.x; diff --git a/src/debug_field_map_window.c b/src/debug_field_map_window.c new file mode 100644 index 000000000..f9ee211e7 --- /dev/null +++ b/src/debug_field_map_window.c @@ -0,0 +1,146 @@ +#include "global.h" +#include "globaldata.h" +#include "debug_field_map_window.h" +#include "constants/input.h" +#include "structs/struct_sub80095e4.h" +#include "music_util.h" +#include "ground_main.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "text_1.h" +#include "text_2.h" +#include "structs/str_81188F0.h" + +EWRAM_INIT static struct struct_Sub80095E4_2 *sDebugWindow = {NULL}; + +static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY; + +static const WindowTemplate sUnknown_80DBF88 = { + 0, + 6, + 2, 2, + 24, 17, + 17, 0, + NULL +}; + +static void sub_801DB54(void); +static void sub_801DBD4(void); + +#define WINDOW_ID_DEBUG 3 + +bool8 DebugFieldMapWindow_Init(void) +{ + sDebugWindow = MemoryAlloc(sizeof(*sDebugWindow), 8); + sDebugWindow->s0.winId = WINDOW_ID_DEBUG; + sDebugWindow->s0.unk38 = &sDebugWindow->s0.windows.id[WINDOW_ID_DEBUG]; + RestoreSavedWindows(&sDebugWindow->s0.windows); + sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sUnknown_80DBF88; + sDebugWindow->s0.unk38->header = &sDebugWindow->header; + ResetUnusedInputStruct(); + ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); + CreateMenuOnWindow(&sDebugWindow->s0.input, 229, 10, sDebugWindow->s0.winId); + sub_801DB54(); + sub_801DBD4(); + return TRUE; +} + +void sub_801DA58(s16 a0) +{ + s32 cast; + cast = a0; + sub_8013878(&sDebugWindow->s0.input, cast); + sub_801DB54(); + sub_801DBD4(); +} + +u32 DebugFieldMapWindow_GetInput(void) +{ + switch (GetKeyPress(&sDebugWindow->s0.input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return DEBUG_INPUT_B_PRESS; + case INPUT_A_BUTTON: + return DEBUG_INPUT_A_PRESS; + default: + if (sub_80138B8(&sDebugWindow->s0.input, 1)) { + sub_801DB54(); + sub_801DBD4(); + return 1; + } + return 0; + } +} + +s16 DebugFieldMapWindow_GetCurrentIndex(void) +{ + return (sDebugWindow->s0.input.unk1E * sDebugWindow->s0.input.entriesPerPage) + sDebugWindow->s0.input.menuIndex; +} + +UNUSED static void sub_801DADC(bool8 a0) +{ + sDebugWindow->s0.input.totalEntriesCount = 229; + sub_8013984(&sDebugWindow->s0.input); + sub_801DB54(); + sub_801DBD4(); + if (a0) + AddMenuCursorSprite(&sDebugWindow->s0.input); +} + +void DebugFieldMapWindow_Free(void) +{ + if (sDebugWindow != NULL) { + sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sDummyWinTemplate; + ResetUnusedInputStruct(); + ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); + FREE_AND_SET_NULL(sDebugWindow); + } +} + +static void sub_801DB54(void) +{ + sDebugWindow->header.count = 1; + sDebugWindow->header.currId = 0; + sDebugWindow->header.width = 8; + sDebugWindow->header.f3 = 0; + + ResetUnusedInputStruct(); + ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); + + SUB_80095E4_CALL(sDebugWindow->s0); +} + +static void sub_801DBD4(void) +{ + GroundConversionStruct *temp; + const struct unkStruct_81188F0 *temp2; + s32 x, y, n; + s16 index; + int counter; + + CallPrepareTextbox_8008C54(sDebugWindow->s0.winId); + sub_80073B8(sDebugWindow->s0.winId); + PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->s0.winId, 0); + + x = (sDebugWindow->header.width * 8) - 2; + n = sDebugWindow->s0.input.unk1E + 1; + sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->s0.winId); + + // This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. It can be removed if you don't care about matching. + if (x) { counter = 0; } + + for (counter = 0; counter < sDebugWindow->s0.input.unk1A; counter++) { + index = (sDebugWindow->s0.input.unk1E * sDebugWindow->s0.input.entriesPerPage) + counter; + temp = &gGroundConversion_811BAF4[index]; + temp2 = &gUnknown_81188F0[temp->unk4]; + + y = GetMenuEntryYCoord(&sDebugWindow->s0.input, counter); + PrintStringOnWindow(8, y, temp2->text1, sDebugWindow->s0.winId, 0); + + y = GetMenuEntryYCoord(&sDebugWindow->s0.input, counter); + PrintStringOnWindow(62, y, temp->text, sDebugWindow->s0.winId, 0); + } + + sub_80073E0(sDebugWindow->s0.winId); +} diff --git a/src/dungeon_8067A80.c b/src/dungeon_8067A80.c index 91db0e047..0247d097a 100644 --- a/src/dungeon_8067A80.c +++ b/src/dungeon_8067A80.c @@ -123,7 +123,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3) sub_8067F00(a0, a3, gUnknown_202F30C, a2, a1); gDungeonMenu.unk1A = min(a2, 8); gDungeonMenu.menuIndex = r10; - gDungeonMenu.unk1C = 8; + gDungeonMenu.entriesPerPage = 8; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -131,7 +131,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); sub_80137B0(&gDungeonMenu, 0); while (1) { @@ -423,11 +423,11 @@ void sub_806806C(PokemonStruct1 *a0) gDungeonMenu.unk20 = 4; gDungeonMenu.unk1A = 0; gDungeonMenu.menuIndex = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); DungeonShowWindows(&spTxtStruct, 1); diff --git a/src/dungeon_main.c b/src/dungeon_main.c index 4da5c41ff..9c7ae6e93 100644 --- a/src/dungeon_main.c +++ b/src/dungeon_main.c @@ -1534,13 +1534,13 @@ static void PrintOnMainMenu(bool8 printAll) gDungeonMenu.menuIndex = 0; gDungeonMenu.unk1A = 5; - gDungeonMenu.unk1C = 5; + gDungeonMenu.entriesPerPage = 5; gDungeonMenu.unk1E = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 2; gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; gDungeonMenu.unk14.x = 0; sub_801317C(&gDungeonMenu.unk28); sub_80137B0(&gDungeonMenu, 0x38); diff --git a/src/dungeon_menu_items.c b/src/dungeon_menu_items.c index 020762598..2c237916c 100644 --- a/src/dungeon_menu_items.c +++ b/src/dungeon_menu_items.c @@ -395,7 +395,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b gDungeonMenu.unk1E = a0; gDungeonMenu.unk20 = sUnknown_202F258; gDungeonMenu.unk4 = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; gDungeonMenu.unk14.x = 0; sub_801317C(&gDungeonMenu.unk28); gDungeon->unk181e8.unk18212 = 0; @@ -406,7 +406,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b windows->id[0].height = 0x10; header->width = 0xC; gDungeonMenu.firstEntryY = 0x10; - gDungeonMenu.unk1C = 0xA; + gDungeonMenu.entriesPerPage = 0xA; gDungeon->unk181e8.unk18212 = 1; break; case 2: @@ -414,7 +414,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b windows->id[0].height = 4; header->width = 6; gDungeonMenu.firstEntryY = 0x12; - gDungeonMenu.unk1C = 1; + gDungeonMenu.entriesPerPage = 1; break; case 3: default: @@ -422,7 +422,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b windows->id[0].height = 4; header->width = 0xC; gDungeonMenu.firstEntryY = 0x12; - gDungeonMenu.unk1C = 1; + gDungeonMenu.entriesPerPage = 1; break; } diff --git a/src/dungeon_menu_moves.c b/src/dungeon_menu_moves.c index 9149cd0c0..612a2e2ab 100644 --- a/src/dungeon_menu_moves.c +++ b/src/dungeon_menu_moves.c @@ -440,13 +440,13 @@ static void ShowMovesMenuWindows(Entity *entity, EntityInfo *entInfo, bool8 redC gDungeonMenu.menuIndex = sChosenMoveSlotId; gDungeonMenu.unk1A = movesCount; - gDungeonMenu.unk1C = 4; + gDungeonMenu.entriesPerPage = 4; gDungeonMenu.unk1E = arg6; gDungeonMenu.unk20 = arg7; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows->id[0].height = windows->id[0].unk10 = sub_80095E4(4, 0xC) + 2; @@ -633,11 +633,11 @@ static void ShowMovesInfoWindow(Move *moves, s32 firstMoveId, s32 movesCount) gDungeonMenu.unk14.x = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); gDungeonMenu.menuIndex = 0; gDungeonMenu.unk1A = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; DungeonShowWindows(&windows, TRUE); statusesCount = unk_PrintMoveDescription(currId, &moves[firstMoveId + currId], 0, statuses); while (1) { @@ -722,10 +722,10 @@ void ShowStatusDescriptionMenu(const StatusText *status, MenuInputStructSub *men gDungeonMenu.unk14.x = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; gDungeonMenu.menuIndex = 0; gDungeonMenu.unk1A = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; sub_801317C(menuSub); } @@ -1115,7 +1115,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W gDungeonMenu.menuIndex = sChosenMoveSlotId; gDungeonMenu.unk1A = count; - gDungeonMenu.unk1C = count; + gDungeonMenu.entriesPerPage = count; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -1123,7 +1123,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows->id[0].height = windows->id[0].unk10 = sub_80095E4(count, 12) + 2; header->width = 14; diff --git a/src/dungeon_menu_others.c b/src/dungeon_menu_others.c index 75bb67ffa..bb49e03e1 100644 --- a/src/dungeon_menu_others.c +++ b/src/dungeon_menu_others.c @@ -477,7 +477,7 @@ static void PrintOthersMenuOptions(void) gDungeonMenu.menuIndex = sOthersCursorId; optionsCount = (gDungeon->unk644.canRecruit) ? OTHERS_COUNT : OTHERS_COUNT - 1; gDungeonMenu.unk1A = optionsCount; - gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.entriesPerPage = optionsCount; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -485,7 +485,7 @@ static void PrintOthersMenuOptions(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 18; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; @@ -540,7 +540,7 @@ static void PrintQuickSaveMenuOptions(void) gDungeonMenu.menuIndex = 0; optionsCount = 2; gDungeonMenu.unk1A = optionsCount; - gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.entriesPerPage = optionsCount; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -548,7 +548,7 @@ static void PrintQuickSaveMenuOptions(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 18; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; @@ -593,7 +593,7 @@ static void PrintGameOptions(void) gDungeonMenu.menuIndex = 0; optionsCount = 3; gDungeonMenu.unk1A = optionsCount; - gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.entriesPerPage = optionsCount; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -601,7 +601,7 @@ static void PrintGameOptions(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 12; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; @@ -648,7 +648,7 @@ static void PrintDungeonOptions(void) header.f3 = 0; gDungeonMenu.unk1A = DUNGEON_OPTIONS_COUNT; - gDungeonMenu.unk1C = DUNGEON_OPTIONS_COUNT; + gDungeonMenu.entriesPerPage = DUNGEON_OPTIONS_COUNT; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -656,7 +656,7 @@ static void PrintDungeonOptions(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 24; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(DUNGEON_OPTIONS_COUNT, 12) + 2; @@ -739,7 +739,7 @@ static void PrintOthersOptions(void) header.f3 = 0; gDungeonMenu.unk1A = OTHERS_OPTIONS_COUNT; - gDungeonMenu.unk1C = OTHERS_OPTIONS_COUNT; + gDungeonMenu.entriesPerPage = OTHERS_OPTIONS_COUNT; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -747,7 +747,7 @@ static void PrintOthersOptions(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 24; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(OTHERS_OPTIONS_COUNT, 12) + 2; @@ -911,7 +911,7 @@ static void PrintHintsMenu(void) header.f3 = 0; gDungeonMenu.menuIndex = 0; gDungeonMenu.unk1A = HINTS_COUNT_RED_VERSION; - gDungeonMenu.unk1C = HINTS_COUNT_RED_VERSION; + gDungeonMenu.entriesPerPage = HINTS_COUNT_RED_VERSION; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -919,7 +919,7 @@ static void PrintHintsMenu(void) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 12; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT_RED_VERSION, 12) + 2; @@ -966,11 +966,11 @@ static void ShowChosenHintWindow(s32 hintId) gDungeonMenu.unk20 = HINTS_COUNT_RED_VERSION; gDungeonMenu.unk1A = 0; gDungeonMenu.menuIndex = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); windows.id[0].width = 24; windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT, 12) + 2; diff --git a/src/dungeon_menu_recruitment.c b/src/dungeon_menu_recruitment.c index bc42b5ad8..86acf024a 100644 --- a/src/dungeon_menu_recruitment.c +++ b/src/dungeon_menu_recruitment.c @@ -102,13 +102,13 @@ void ShowRecruitmentSearchMenu(void) DungeonShowWindows(&sRecruitmentSearchWindows, TRUE); gDungeonMenu.unk1A = 0; gDungeonMenu.menuIndex = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; gDungeonMenu.unk1E = currTabId; gDungeonMenu.unk20 = 2; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); sScrollId = 0; sScrollFlags = 0; diff --git a/src/dungeon_menu_team.c b/src/dungeon_menu_team.c index 506356385..fe4c0775e 100644 --- a/src/dungeon_menu_team.c +++ b/src/dungeon_menu_team.c @@ -345,7 +345,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp sTeamWindowHeader.f3 = 0; gDungeonMenu.menuIndex = gTeamMenuChosenId; gDungeonMenu.unk1A = count; - gDungeonMenu.unk1C = count; + gDungeonMenu.entriesPerPage = count; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -353,7 +353,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); r0 = sub_80095E4(count, 0); if (r10) { @@ -534,7 +534,7 @@ void ShowDungeonTacticsMenu(ActionContainer *a0) break; } gDungeonMenu.unk1A = i; - gDungeonMenu.unk1C = 8; + gDungeonMenu.entriesPerPage = 8; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; @@ -542,7 +542,7 @@ void ShowDungeonTacticsMenu(ActionContainer *a0) gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14.x = 0; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); sub_80137B0(&gDungeonMenu, 0); gDungeonMenu.menuIndex = menuIndex; @@ -797,11 +797,11 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) gDungeonMenu.unk14.x = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; - gDungeonMenu.unk0 = 0; + gDungeonMenu.windowId = 0; sub_801317C(&gDungeonMenu.unk28); gDungeonMenu.menuIndex = 0; gDungeonMenu.unk1A = 0; - gDungeonMenu.unk1C = 0; + gDungeonMenu.entriesPerPage = 0; if (subWindowIds[currSubWindowId] == SUB_WINDOW_STATUS) { s32 i; @@ -815,7 +815,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) if (i != 0) { hasStatusProblems = TRUE; gDungeonMenu.unk1A = i; - gDungeonMenu.unk1C = 8; + gDungeonMenu.entriesPerPage = 8; sub_80137B0(&gDungeonMenu, 0); } gDungeonMenu.menuIndex = r8; @@ -832,7 +832,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) if (i != 0) { hasIqSkills = TRUE; gDungeonMenu.unk1A = i; - gDungeonMenu.unk1C = 8; + gDungeonMenu.entriesPerPage = 8; sub_80137B0(&gDungeonMenu, 0); } gDungeonMenu.menuIndex = r8; diff --git a/src/dungeon_submenu.c b/src/dungeon_submenu.c index 2bb84b53b..4387d8bbd 100644 --- a/src/dungeon_submenu.c +++ b/src/dungeon_submenu.c @@ -37,13 +37,13 @@ void CreateDungeonMenuSubWindow(WindowTemplate *mainWindow, s32 subWindowX) windows.id[0].unk0 = 0x80; gDungeonMenu.menuIndex = 0; - gDungeonMenu.unk1C = gDungeonSubMenuItemsCount; + gDungeonMenu.entriesPerPage = gDungeonSubMenuItemsCount; gDungeonMenu.unk1A = gDungeonSubMenuItemsCount; gDungeonMenu.unk1E = 0; gDungeonMenu.unk20 = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 0; - gDungeonMenu.unk0 = 1; + gDungeonMenu.windowId = 1; gDungeonMenu.unkC = 0; gDungeonMenu.unkE = 0; gDungeonMenu.unk14 = gDungeonMenu.unk8; @@ -52,7 +52,7 @@ void CreateDungeonMenuSubWindow(WindowTemplate *mainWindow, s32 subWindowX) windows.id[1].pos.x = subWindowX; windows.id[1].width = 28 - subWindowX; - windows.id[1].height = windows.id[1].unk10 = sub_80095E4(gDungeonMenu.unk1C, 0); + windows.id[1].height = windows.id[1].unk10 = sub_80095E4(gDungeonMenu.entriesPerPage, 0); DungeonShowWindows(&windows, FALSE); sub_80137B0(&gDungeonMenu, windows.id[1].height * 8); sub_80073B8(1); diff --git a/src/friend_areas_map_util.c b/src/friend_areas_map_util.c index e14303604..b841234c0 100644 --- a/src/friend_areas_map_util.c +++ b/src/friend_areas_map_util.c @@ -325,12 +325,12 @@ void FriendAreasMap_PrintAvailableSubAreas(void) header.f3 = 0; menuInput->menuIndex = 0; menuInput->unk1A = count; - menuInput->unk1C = count; + menuInput->entriesPerPage = count; menuInput->unk1E = 0; menuInput->unk20 = 0; menuInput->unk4 = 0; menuInput->firstEntryY = 16; - menuInput->unk0 = 0; + menuInput->windowId = 0; menuInput->unkC = 0; menuInput->unkE = 0; menuInput->unk14.x = 0; @@ -338,7 +338,7 @@ void FriendAreasMap_PrintAvailableSubAreas(void) menuInput->unk8.x = 8; menuInput->unk8.y = 8; sub_801317C(&menuInput->unk28); - var = sub_80095E4(menuInput->unk1C, 0); + var = sub_80095E4(menuInput->entriesPerPage, 0); windows.id[0].unk10 = windows.id[0].height = var + 2; sub_80137B0(menuInput, var * 8); diff --git a/src/friend_list.c b/src/friend_list.c index c0d7ac6b7..9ed836a19 100644 --- a/src/friend_list.c +++ b/src/friend_list.c @@ -112,7 +112,7 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10) sub_8012D08(sFriendList->unk358.s0.unk38, r10); ResetUnusedInputStruct(); ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE); - sub_8013818(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId); + CreateMenuOnWindow(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId); if (gUnknown_203B2A0 == sFriendList->unk0) { sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8; sFriendList->unk358.s0.input.unk1E = gUnknown_203B2AA; @@ -159,14 +159,14 @@ u32 FriendList_HandleInput(bool8 a0) s32 FriendList_GetCurrId(void) { - return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex]; + return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + sFriendList->unk358.s0.input.menuIndex]; } void sub_8023B7C(bool8 addCursor) { ResetUnusedInputStruct(); ShowWindows(&sFriendList->unk358.s0.windows, FALSE, FALSE); - sFriendList->unk358.s0.input.unk22 = sub_8023BD8(); + sFriendList->unk358.s0.input.totalEntriesCount = sub_8023BD8(); sub_8013984(&sFriendList->unk358.s0.input); SetUpWindowHeader(); FriendList_ShowWindow(); @@ -259,7 +259,7 @@ void FriendList_ShowWindow(void) } for (i = 0; i < sFriendList->unk358.s0.input.unk1A; i++) { - s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + i]; + s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + i]; PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id]; u8 color = 7; @@ -468,7 +468,7 @@ UNUSED static PokemonStruct1 *sub_80243E8(void) { u8 buffer[40]; u8 nameBuffer[20]; - PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex]]; + PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + sFriendList->unk358.s0.input.menuIndex]]; StrncpyCustom(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); sprintfStatic(buffer, "%s", nameBuffer); diff --git a/src/ground_bg.c b/src/ground_bg.c index 14b8d8f35..9d8969e22 100644 --- a/src/ground_bg.c +++ b/src/ground_bg.c @@ -6,7 +6,7 @@ #include "memory.h" #include "file_system.h" #include "code_8002774.h" -#include "code_801D9E4.h" +#include "structs/str_81188F0.h" #include "code_8004AA0.h" #include "graphics_memory.h" #include "debug.h" @@ -16,7 +16,6 @@ // This file most likely deals with map loading and writing to VRAM. It even has a custom decompression function. -extern const struct unkStruct_81188F0 gUnknown_81188F0[10]; extern const FileArchive gGroundFileArchive; void sub_80A456C(GroundBg *groundBg, s32 id, const PixelPos *srcPos); diff --git a/src/hints_menu1.c b/src/hints_menu1.c index de9bbcf90..3dbe9884c 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -30,7 +30,7 @@ bool8 sub_801E3F0(u32 a0) sub_8012D08(sUnknown_203B264->unk38, 10); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B264->input, 5, 10, a0); + CreateMenuOnWindow(&sUnknown_203B264->input, 5, 10, a0); sub_801E594(); DrawHintSelectionMenu(); return TRUE; @@ -68,7 +68,7 @@ u32 sub_801E474(bool8 a0) s32 GetChosenHintIndex(void) { - return (sUnknown_203B264->input.unk1E * sUnknown_203B264->input.unk1C) + sUnknown_203B264->input.menuIndex; + return (sUnknown_203B264->input.unk1E * sUnknown_203B264->input.entriesPerPage) + sUnknown_203B264->input.menuIndex; } void CreateHintSelectionScreen(bool8 cursorSprite) diff --git a/src/hints_menu2.c b/src/hints_menu2.c index 8dfb20c9f..f28112592 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -28,7 +28,7 @@ bool8 CreateHintDisplayScreen(u32 index) sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->header; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId); + CreateMenuOnWindow(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId); sUnknown_203B268->s0.input.unk1E = index; sub_801E714(); diff --git a/src/iq_skill_list_menu.c b/src/iq_skill_list_menu.c index 126cff3be..750b06bf5 100644 --- a/src/iq_skill_list_menu.c +++ b/src/iq_skill_list_menu.c @@ -38,7 +38,7 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2) sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2); ResetUnusedInputStruct(); ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); - sub_8013818(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index); + CreateMenuOnWindow(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index); sub_801C440(); BuildIQSkillList(); return TRUE; @@ -73,14 +73,14 @@ u32 HandleIQSkillListMenuInput(bool8 a0) s32 GetIQSkillSelection(void) { - return (sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + sIQSkillListMenu->s24.s0.input.menuIndex; + return (sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.entriesPerPage) + sIQSkillListMenu->s24.s0.input.menuIndex; } void RedrawIQSkillListMenu(bool8 addCursor) { ResetUnusedInputStruct(); ShowWindows(&sIQSkillListMenu->s24.s0.windows, FALSE, FALSE); - sIQSkillListMenu->s24.s0.input.unk22 = sIQSkillListMenu->numIQSkills; + sIQSkillListMenu->s24.s0.input.totalEntriesCount = sIQSkillListMenu->numIQSkills; sub_8013984(&sIQSkillListMenu->s24.s0.input); sub_801C440(); BuildIQSkillList(); @@ -131,7 +131,7 @@ void BuildIQSkillList(void) sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.unk1E + 1, 1, 7, sIQSkillListMenu->s24.s0.winId); for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.unk1A; counter++) { - skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + counter]; + skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.entriesPerPage) + counter]; y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.s0.input, counter); strncpy(gFormatBuffer_Items[1], GetIQSkillName(skillIndex), 80); diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index 91795f912..3deefa5ca 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -33,7 +33,7 @@ bool8 sub_8019E40(u32 r0) gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->header; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0); + CreateMenuOnWindow(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0); gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218; sub_8013984(&gUnknown_203B214->s0.input); sub_801A064(); @@ -82,7 +82,7 @@ u32 sub_8019EDC(bool8 r0) // arm9.bin::02025798 u8 sub_8019FB0(void) { - return (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + (u8)gUnknown_203B214->s0.input.menuIndex; + return (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.entriesPerPage) + (u8)gUnknown_203B214->s0.input.menuIndex; } // arm9.bin::02025738 @@ -90,7 +90,7 @@ void sub_8019FCC(bool8 r0) { ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B214->s0.windows, FALSE, FALSE); - gUnknown_203B214->s0.input.unk22 = CountKecleonShopItems(); + gUnknown_203B214->s0.input.totalEntriesCount = CountKecleonShopItems(); sub_8013984(&gUnknown_203B214->s0.input); sub_801A064(); sub_801A0D8(); @@ -139,7 +139,7 @@ void sub_801A0D8(void) PrintStringOnWindow((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.winId, 0); for (index = 0; index < gUnknown_203B214->s0.input.unk1A; index++) { - temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + index; + temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.entriesPerPage) + index; heldItem = GetKecleonShopItem(temp_calc); item.id = heldItem->id; item.quantity = heldItem->quantity; diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index f758b31c1..32756b3b0 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -33,7 +33,7 @@ bool8 sub_801A20C(u32 r0) gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->header; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0); + CreateMenuOnWindow(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0); gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220; sub_8013984(&gUnknown_203B21C->s0.input); sub_801A430(); @@ -82,7 +82,7 @@ u32 sub_801A2A8(bool8 r0) // arm9.bin::02025CC4 u8 sub_801A37C(void) { - return (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + gUnknown_203B21C->s0.input.menuIndex; + return (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.entriesPerPage) + gUnknown_203B21C->s0.input.menuIndex; } // arm9.bin::02025C64 @@ -90,7 +90,7 @@ void sub_801A398(bool8 r0) { ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B21C->s0.windows, FALSE, FALSE); - gUnknown_203B21C->s0.input.unk22 = CountKecleonWareItems(); + gUnknown_203B21C->s0.input.totalEntriesCount = CountKecleonWareItems(); sub_8013984(&gUnknown_203B21C->s0.input); sub_801A430(); sub_801A4A4(); @@ -139,7 +139,7 @@ void sub_801A4A4(void) PrintStringOnWindow(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.winId, 0); for (index = 0; index < gUnknown_203B21C->s0.input.unk1A; index++) { - temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + index; + temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.entriesPerPage) + index; heldItem = GetKecleonWareItem(temp_calc); item.id = heldItem->id; item.quantity = heldItem->quantity; diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index 7d42e6a2a..6498a782d 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -60,7 +60,7 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4) sub_8099690(1); ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2); + CreateMenuOnWindow(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2); gUnknown_203B224->unk54.s0.input.menuIndex = gUnknown_203B228; gUnknown_203B224->unk54.s0.input.unk1E = gUnknown_203B22A; sub_8013984(&gUnknown_203B224->unk54.s0.input); @@ -155,7 +155,7 @@ u32 sub_801A6E8(bool8 param_1) // arm9.bin::02026934 s32 sub_801A8AC(void) { - return (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.unk1C) + gUnknown_203B224->unk54.s0.input.menuIndex; + return (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.entriesPerPage) + gUnknown_203B224->unk54.s0.input.menuIndex; } // arm9.bin::020268C0 @@ -165,7 +165,7 @@ void sub_801A8D0(bool8 r0) ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B224->unk54.s0.windows, FALSE, FALSE); FillInventoryGaps(); - gUnknown_203B224->unk54.s0.input.unk22 = GetNumberOfFilledInventorySlots(); + gUnknown_203B224->unk54.s0.input.totalEntriesCount = GetNumberOfFilledInventorySlots(); sub_8013984(&gUnknown_203B224->unk54.s0.input); sub_801A998(); sub_801A9E0(); @@ -217,7 +217,7 @@ void sub_801A9E0(void) PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.winId, 0); for (r7 = 0; r7 < gUnknown_203B224->unk54.s0.input.unk1A; r7++) { - teamItemIndex = (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.unk1C) + r7; + teamItemIndex = (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.entriesPerPage) + r7; item = gTeamInventoryRef->teamItems[teamItemIndex]; switch (gUnknown_203B224->unk0) { diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index e0e427168..bd7c16c50 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -43,7 +43,7 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3) sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3); ResetUnusedInputStruct(); ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE); - sub_8013818(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1); + CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1); sub_80304C8(); MakuhitaDojo_DrawCourseList(); return TRUE; @@ -76,12 +76,12 @@ u32 sub_80303AC(bool8 param_1) s16 sub_8030418(void) { - return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C) + sMakuhitaDojoWork2->s30.s0.input.menuIndex]; + return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage) + sMakuhitaDojoWork2->s30.s0.input.menuIndex]; } UNUSED static void sub_8030444(bool8 a0) { - sMakuhitaDojoWork2->s30.s0.input.unk22 = sub_8030668(); + sMakuhitaDojoWork2->s30.s0.input.totalEntriesCount = sub_8030668(); sub_8013984(&sMakuhitaDojoWork2->s30.s0.input); sub_80304C8(); MakuhitaDojo_DrawCourseList(); @@ -126,7 +126,7 @@ static void MakuhitaDojo_DrawCourseList(void) sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.winId); for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.unk1A; i++) { - iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C + i]; + iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage + i]; dungeonIndex = sub_80A2740(iVar6); mazeIndex = sub_80A2668(iVar6); diff --git a/src/menu_input.c b/src/menu_input.c index f8f0868b2..7af601e1d 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -242,37 +242,37 @@ void sub_8012CAC(WindowTemplate *a0, const MenuItem *a1) sub_8012D08(a0, count); } -void sub_8012D08(WindowTemplate *param_1, s32 param_2) +void sub_8012D08(WindowTemplate *winTemplate, s32 param_2) { s32 sVar2; s16 sVar3; sVar2 = (s16) sub_80095E4(param_2, 12); - if (param_1->type == WINDOW_TYPE_WITH_HEADER) + if (winTemplate->type == WINDOW_TYPE_WITH_HEADER) sVar2 = (s16)(sVar2 + 2); sVar3 = sVar2; - param_1->height = sVar3; - param_1->unk10 = sVar3; + winTemplate->height = sVar3; + winTemplate->unk10 = sVar3; } -void sub_8012D34(WindowTemplate *param_1, s32 param_2) +void sub_8012D34(WindowTemplate *winTemplate, s32 param_2) { s32 sVar2; s16 sVar3; sVar2 = (s16) sub_8009614(param_2, 24); - if (param_1->type == WINDOW_TYPE_WITH_HEADER) + if (winTemplate->type == WINDOW_TYPE_WITH_HEADER) sVar2 = (s16)(sVar2 + 2); sVar3 = sVar2; - param_1->height = sVar3; - param_1->unk10 = sVar3; + winTemplate->height = sVar3; + winTemplate->unk10 = sVar3; } // arm9.bin::0201C26C -void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index) +void sub_8012D60(MenuStruct *menu, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index) { const u8 *textPtr; s32 counter; @@ -282,14 +282,14 @@ void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo counter = 0; menuIndex = -1; iVar1 = 0; - param_1->index = index; - param_1->menuItems = menuItems; - param_1->menuTextColorArray = colorArray; + menu->index = index; + menu->menuItems = menuItems; + menu->menuTextColorArray = colorArray; if (colorArray == NULL) - param_1->menuTextColorArray = gDefaultMenuTextColors; + menu->menuTextColorArray = gDefaultMenuTextColors; - param_1->unkC = param_4; + menu->unkC = param_4; textPtr = menuItems->text; if (textPtr) { @@ -309,17 +309,17 @@ void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo if (menuIndex < 0) menuIndex = iVar1; - sub_8013134(¶m_1->input, counter, index); - param_1->input.menuIndex = menuIndex; - sub_80137B0(¶m_1->input, 0); + sub_8013134(&menu->input, counter, index); + menu->input.menuIndex = menuIndex; + sub_80137B0(&menu->input, 0); - param_1->unk4C = TRUE; - param_1->unk4D = TRUE; - param_1->unk4E = TRUE; - param_1->menuAction = -1; + menu->unk4C = TRUE; + menu->unk4D = TRUE; + menu->unk4E = TRUE; + menu->menuAction = -1; } -void sub_8012E04(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index) +void sub_8012E04(MenuStruct *menu, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index) { const u8 *textPtr; s32 counter; @@ -350,31 +350,31 @@ void sub_8012E04(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo if (menuIndex < 0) menuIndex = iVar1; - sub_8013134(¶m_1->input, counter, index); - param_1->input.menuIndex = menuIndex; - sub_80137B0(¶m_1->input, 0); + sub_8013134(&menu->input, counter, index); + menu->input.menuIndex = menuIndex; + sub_80137B0(&menu->input, 0); - param_1->index = index; - param_1->menuTextColorArray = colorArray; + menu->index = index; + menu->menuTextColorArray = colorArray; if (colorArray == NULL) - param_1->menuTextColorArray = gDefaultMenuTextColors; + menu->menuTextColorArray = gDefaultMenuTextColors; - param_1->unkC = param_4; - param_1->menuItems = menuItems; - param_1->unk4E = FALSE; - param_1->unk4C = TRUE; - param_1->unk4D = TRUE; - param_1->menuAction = -1; + menu->unkC = param_4; + menu->menuItems = menuItems; + menu->unk4E = FALSE; + menu->unk4C = TRUE; + menu->unk4D = TRUE; + menu->menuAction = -1; } -void sub_8012EA4(MenuStruct *param_1, bool8 r1) +void sub_8012EA4(MenuStruct *menu, bool8 r1) { - param_1->unk4C = r1; - param_1->unk4D = TRUE; - sub_8012EBC(param_1); + menu->unk4C = r1; + menu->unk4D = TRUE; + sub_8012EBC(menu); } -void sub_8012EBC(MenuStruct *param_1) +void sub_8012EBC(MenuStruct *menu) { s32 x; s32 y; @@ -389,21 +389,21 @@ void sub_8012EBC(MenuStruct *param_1) u8 buffer[256]; Window *window; - if (param_1->unk4D) { - sub_80073B8(param_1->index); - index = param_1->index; + if (menu->unk4D) { + sub_80073B8(menu->index); + index = menu->index; window = &gWindows[index]; if (window->type == WINDOW_TYPE_WITH_HEADER) { WindowTemplate *windowTemplate = &winTemplates.id[index]; RestoreSavedWindows(&winTemplates); - x = GetStringLineWidth(param_1->unk0); - PrintFormattedStringOnWindow(((windowTemplate->header->width * 8 - x) / 2) + 8, 0, param_1->unk0, param_1->index, 0); + x = GetStringLineWidth(menu->unk0); + PrintFormattedStringOnWindow(((windowTemplate->header->width * 8 - x) / 2) + 8, 0, menu->unk0, menu->index, 0); } - colorArray = param_1->menuTextColorArray; - menuItemsPtr = param_1->menuItems; - _puVar2 = param_1->unkC; + colorArray = menu->menuTextColorArray; + menuItemsPtr = menu->menuItems; + _puVar2 = menu->unkC; counter = 0; if (menuItemsPtr->text != NULL) { @@ -422,141 +422,141 @@ void sub_8012EBC(MenuStruct *param_1) color = colorArray[0]; // Use the default white sprintfStatic(buffer,gUnknown_80D4828, color, textPtr); - y = GetMenuEntryYCoord(¶m_1->input, counter); - PrintFormattedStringOnWindow(8, y, buffer, param_1->index, 0); + y = GetMenuEntryYCoord(&menu->input, counter); + PrintFormattedStringOnWindow(8, y, buffer, menu->index, 0); menuItemsPtr++; counter++; } while (menuItemsPtr->text != NULL); } - sub_80073E0(param_1->index); - param_1->unk4D = FALSE; + sub_80073E0(menu->index); + menu->unk4D = FALSE; } - if (param_1->unk4E) { - if (param_1->unk4C) - AddMenuCursorSprite(¶m_1->input); + if (menu->unk4E) { + if (menu->unk4C) + AddMenuCursorSprite(&menu->input); else - sub_8013660(¶m_1->input); + sub_8013660(&menu->input); } } -bool8 sub_8012FD8(MenuStruct *param_1) +bool8 sub_8012FD8(MenuStruct *menu) { u32 prevMenuIndex; s32 index; const MenuItem *item; - prevMenuIndex = param_1->input.menuIndex; + prevMenuIndex = menu->input.menuIndex; - if (param_1->unk4C) { - switch (GetKeyPress(¶m_1->input)) { + if (menu->unk4C) { + switch (GetKeyPress(&menu->input)) { case INPUT_DPAD_DOWN: - MoveMenuCursorDown(¶m_1->input); - if (prevMenuIndex != param_1->input.menuIndex) + MoveMenuCursorDown(&menu->input); + if (prevMenuIndex != menu->input.menuIndex) PlayMenuSoundEffect(3); break; case INPUT_DPAD_UP: - MoveMenuCursorUp(¶m_1->input); - if (prevMenuIndex != param_1->input.menuIndex) + MoveMenuCursorUp(&menu->input); + if (prevMenuIndex != menu->input.menuIndex) PlayMenuSoundEffect(3); break; case INPUT_A_BUTTON: - index = sub_80137A8(¶m_1->input); - item = ¶m_1->menuItems[index]; + index = sub_80137A8(&menu->input); + item = &menu->menuItems[index]; - if (item->menuAction > -1 && (param_1->unkC == NULL || param_1->unkC[index] != 1)) { - param_1->menuAction = item->menuAction; - ++param_1; --param_1; - param_1->unk4C = FALSE; - param_1->input.unk24 = 0; + if (item->menuAction > -1 && (menu->unkC == NULL || menu->unkC[index] != 1)) { + menu->menuAction = item->menuAction; + ++menu; --menu; + menu->unk4C = FALSE; + menu->input.unk24 = 0; } else { PlayMenuSoundEffect(2); break; } - if (param_1->unkC != NULL && param_1->unkC[index] == 2) + if (menu->unkC != NULL && menu->unkC[index] == 2) PlayMenuSoundEffect(2); else PlayMenuSoundEffect(0); break; case INPUT_B_BUTTON: - if (param_1->menuItems[param_1->input.unk1A].menuAction > -1) { - param_1->menuAction = param_1->menuItems[param_1->input.unk1A].menuAction; - param_1->unk4C = FALSE; + if (menu->menuItems[menu->input.unk1A].menuAction > -1) { + menu->menuAction = menu->menuItems[menu->input.unk1A].menuAction; + menu->unk4C = FALSE; PlayMenuSoundEffect(1); } break; } } - sub_8012EBC(param_1); - return param_1->unk4C; + sub_8012EBC(menu); + return menu->unk4C; } -bool8 sub_80130A8(MenuStruct *param_1) +bool8 sub_80130A8(MenuStruct *menu) { s32 index; const MenuItem *menuItem; - if (param_1->unk4C) { - switch (GetKeyPress(¶m_1->input)) + if (menu->unk4C) { + switch (GetKeyPress(&menu->input)) { case INPUT_A_BUTTON: - index = sub_80137A8(¶m_1->input); - menuItem = ¶m_1->menuItems[index]; - param_1->menuAction = menuItem->menuAction; - param_1->unk4C = FALSE; - param_1->input.unk24 = 0; + index = sub_80137A8(&menu->input); + menuItem = &menu->menuItems[index]; + menu->menuAction = menuItem->menuAction; + menu->unk4C = FALSE; + menu->input.unk24 = 0; PlayMenuSoundEffect(0); break; case INPUT_B_BUTTON: - if (param_1->menuItems[param_1->input.unk1A].menuAction > -1) { - param_1->menuAction = param_1->menuItems[param_1->input.unk1A].menuAction; - param_1->unk4C = FALSE; + if (menu->menuItems[menu->input.unk1A].menuAction > -1) { + menu->menuAction = menu->menuItems[menu->input.unk1A].menuAction; + menu->unk4C = FALSE; PlayMenuSoundEffect(0); } break; } } - sub_8012EBC(param_1); - return param_1->unk4C; + sub_8012EBC(menu); + return menu->unk4C; } -bool8 sub_8013114(MenuStruct *param_1, s32 *menuAction) +bool8 sub_8013114(MenuStruct *menu, s32 *menuAction) { - if (param_1->unk4C) + if (menu->unk4C) return TRUE; if (menuAction != NULL) - *menuAction = param_1->menuAction; + *menuAction = menu->menuAction; return FALSE; } -static void sub_8013134(MenuInputStruct *param_1, u32 menuItemCounter, u32 windowId) +static void sub_8013134(MenuInputStruct *menuInput, u32 menuItemCounter, u32 windowId) { Window *window = &gWindows[windowId]; - param_1->unk0 = windowId; - param_1->menuIndex = 0; - param_1->unk1A = menuItemCounter; - param_1->unk1C = menuItemCounter; - param_1->unk1E = 0; - param_1->unk4 = 0; + menuInput->windowId = windowId; + menuInput->menuIndex = 0; + menuInput->unk1A = menuItemCounter; + menuInput->entriesPerPage = menuItemCounter; + menuInput->unk1E = 0; + menuInput->unk4 = 0; if (window->type == WINDOW_TYPE_WITH_HEADER) - param_1->firstEntryY = 16; + menuInput->firstEntryY = 16; else - param_1->firstEntryY = 2; + menuInput->firstEntryY = 2; - param_1->unkC = 0; - param_1->unkE = 0; - param_1->unk14.x = 0; - param_1->unk24 = 0; - sub_801317C(¶m_1->unk28); + menuInput->unkC = 0; + menuInput->unkE = 0; + menuInput->unk14.x = 0; + menuInput->unk24 = 0; + sub_801317C(&menuInput->unk28); } // arm9.bin::0201BD28 @@ -574,20 +574,20 @@ void sub_801317C(MenuInputStructSub *param_1) } // arm9.bin::0201BD18 -void AddMenuCursorSprite(MenuInputStruct *param_1) +void AddMenuCursorSprite(MenuInputStruct *menuInput) { - AddMenuCursorSprite_(param_1, 0); + AddMenuCursorSprite_(menuInput, 0); } // arm9.bin::0201B978 -void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1) +void AddMenuCursorSprite_(MenuInputStruct *menuInput, u8 *a1) { struct SpriteOAM sp = {0}; - if (a0->unk1A > 0) { - UpdateMenuCursorSpriteCoords(a0); + if (menuInput->unk1A > 0) { + UpdateMenuCursorSpriteCoords(menuInput); - if (!(a0->unk24 & 8)) { + if (!(menuInput->unk24 & 8)) { SpriteSetAffine1(&sp, 0); SpriteSetAffine2(&sp, 0); SpriteSetObjMode(&sp, 0); @@ -601,18 +601,18 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1) SpriteSetPalNum(&sp, 15); SpriteSetUnk6_0(&sp, 0); SpriteSetUnk6_1(&sp, 0); - SpriteSetX(&sp, a0->unk8.x); - SpriteSetY(&sp, a0->unk8.y + 1); + SpriteSetX(&sp, menuInput->unk8.x); + SpriteSetY(&sp, menuInput->unk8.y + 1); AddSprite(&sp, 0xFF, 0, 0); } } - sub_8013470(a0); - if (a0->unk14.x != 0) - sub_801332C(&a0->unk14); + sub_8013470(menuInput); + if (menuInput->unk14.x != 0) + sub_801332C(&menuInput->unk14); - a0->unk24++; + menuInput->unk24++; // More here in NDS } @@ -692,108 +692,104 @@ static void sub_8013470(MenuInputStruct *a0) } } -void sub_8013660(MenuInputStruct *param_1) +void sub_8013660(MenuInputStruct *menuInput) { - if (0 < param_1->unk1A) { - UpdateMenuCursorSpriteCoords(param_1); - sub_801332C(¶m_1->unk8); + if (0 < menuInput->unk1A) { + UpdateMenuCursorSpriteCoords(menuInput); + sub_801332C(&menuInput->unk8); } } // arm9.bin::0201B14C -void UpdateMenuCursorSpriteCoords(MenuInputStruct *param_1) +void UpdateMenuCursorSpriteCoords(MenuInputStruct *menuInput) { - s32 index; - Window *window; - - index = param_1->unk0; - window = &gWindows[index]; - param_1->unk8.x = window->x * 8 + param_1->unk4; - param_1->unk8.y = window->y * 8 + GetMenuEntryYCoord(param_1, param_1->menuIndex); + Window *window = &gWindows[menuInput->windowId]; + menuInput->unk8.x = window->x * 8 + menuInput->unk4; + menuInput->unk8.y = window->y * 8 + GetMenuEntryYCoord(menuInput, menuInput->menuIndex); } -void MoveMenuCursorDown(MenuInputStruct *param_1) +void MoveMenuCursorDown(MenuInputStruct *menuInput) { - param_1->unk24 = 0; + menuInput->unk24 = 0; - if (param_1->unk1A < 1) - param_1->menuIndex = 0; + if (menuInput->unk1A < 1) + menuInput->menuIndex = 0; else { - param_1->menuIndex++; + menuInput->menuIndex++; - if (param_1->menuIndex >= param_1->unk1A) - param_1->menuIndex = 0; + if (menuInput->menuIndex >= menuInput->unk1A) + menuInput->menuIndex = 0; } } -void MoveMenuCursorDownWrapAround(MenuInputStruct *param_1, u8 param_2) +void MoveMenuCursorDownWrapAround(MenuInputStruct *menuInput, u8 param_2) { - param_1->unk24 = 0; + menuInput->unk24 = 0; - if (param_1->unk1A < 1) - param_1->menuIndex = 0; + if (menuInput->unk1A < 1) + menuInput->menuIndex = 0; else { - param_1->menuIndex++; + menuInput->menuIndex++; - if (param_1->menuIndex >= param_1->unk1A) { + if (menuInput->menuIndex >= menuInput->unk1A) { if (param_2 != 0) - param_1->menuIndex = 0; + menuInput->menuIndex = 0; else - param_1->menuIndex = param_1->unk1A - 1; + menuInput->menuIndex = menuInput->unk1A - 1; } } } -void MoveMenuCursorUp(MenuInputStruct *param_1) +void MoveMenuCursorUp(MenuInputStruct *menuInput) { - param_1->unk24 = 0; + menuInput->unk24 = 0; - if (param_1->unk1A < 1) - param_1->menuIndex = 0; + if (menuInput->unk1A < 1) + menuInput->menuIndex = 0; else { - param_1->menuIndex--; + menuInput->menuIndex--; - if (param_1->menuIndex < 0) - param_1->menuIndex = param_1->unk1A - 1; + if (menuInput->menuIndex < 0) + menuInput->menuIndex = menuInput->unk1A - 1; } } -void MoveMenuCursorUpWrapAround(MenuInputStruct *param_1, u8 param_2) +void MoveMenuCursorUpWrapAround(MenuInputStruct *menuInput, u8 param_2) { - param_1->unk24 = 0; + menuInput->unk24 = 0; - if (param_1->unk1A < 1) - param_1->menuIndex = 0; + if (menuInput->unk1A < 1) + menuInput->menuIndex = 0; else { - param_1->menuIndex--; + menuInput->menuIndex--; - if (param_1->menuIndex < 0) { + if (menuInput->menuIndex < 0) { if (param_2 != 0) - param_1->menuIndex = param_1->unk1A - 1; + menuInput->menuIndex = menuInput->unk1A - 1; else - param_1->menuIndex = 0; + menuInput->menuIndex = 0; } } } -void sub_8013780(MenuInputStruct *param_1, s32 param_2) +void sub_8013780(MenuInputStruct *menuInput, s32 param_2) { if (param_2 < 0) - param_1->menuIndex = 0; - else if (param_2 >= param_1->unk1A) - param_1->menuIndex = param_1->unk1A - 1; + menuInput->menuIndex = 0; + else if (param_2 >= menuInput->unk1A) + menuInput->menuIndex = menuInput->unk1A - 1; else - param_1->menuIndex = param_2; + menuInput->menuIndex = param_2; - param_1->unk24 = 0; + menuInput->unk24 = 0; } -s32 sub_80137A8(MenuInputStruct *param_1) +s32 sub_80137A8(MenuInputStruct *menuInput) { - return param_1->menuIndex; + return menuInput->menuIndex; } -void sub_80137B0(MenuInputStruct *param_1, s32 param_2) +void sub_80137B0(MenuInputStruct *menuInput, s32 param_2) { s32 iVar1; s32 iVar2; @@ -802,197 +798,195 @@ void sub_80137B0(MenuInputStruct *param_1, s32 param_2) iVar2 = param_2 << 8; } else { - if (gWindows[param_1->unk0].type == WINDOW_TYPE_WITH_HEADER) + if (gWindows[menuInput->windowId].type == WINDOW_TYPE_WITH_HEADER) iVar1 = 16; else iVar1 = 0; - iVar2 = (gWindows[param_1->unk0].height * 8 - iVar1) << 8; + iVar2 = (gWindows[menuInput->windowId].height * 8 - iVar1) << 8; } - param_1->unk10 = iVar2 / param_1->unk1C; + menuInput->unk10 = iVar2 / menuInput->entriesPerPage; } -void sub_80137F8(MenuInputStruct *param_1, u32 param_2) +void sub_80137F8(MenuInputStruct *menuInput, u32 param_2) { - param_1->unk10 = param_2 << 8; + menuInput->unk10 = param_2 << 8; } // arm9.bin::0201AF70 -s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId) +s32 GetMenuEntryYCoord(MenuInputStruct *menuInput, s32 entryId) { - s32 firstY = menu->firstEntryY; - s32 iVar1 = entryId * menu->unk10; + s32 firstY = menuInput->firstEntryY; + s32 iVar1 = entryId * menuInput->unk10; return firstY + (iVar1 / 256); } -void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4) +void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId) { - param_1->unk0 = param_4; - param_1->unk22 = param_2; - param_1->unk1C = param_3; - param_1->unk14.x = 0; - param_1->unk24 = 0; - param_1->menuIndex = 0; - param_1->unk1E = 0; + menuInput->windowId = windowId; + menuInput->totalEntriesCount = totalCount; + menuInput->entriesPerPage = perPageCount; + menuInput->unk14.x = 0; + menuInput->unk24 = 0; + menuInput->menuIndex = 0; + menuInput->unk1E = 0; - sub_801317C(¶m_1->unk28); - sub_8013984(param_1); - sub_80137F8(param_1, 12); + sub_801317C(&menuInput->unk28); + sub_8013984(menuInput); + sub_80137F8(menuInput, 12); } -void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4) +void sub_8013848(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId) { - param_1->unk0 = param_4; - param_1->unk22 = param_2; - param_1->unk1C = param_3; - param_1->unk14.x = 0; - param_1->unk24 = 0; - param_1->menuIndex = 0; - param_1->unk1E = 0; + menuInput->windowId = windowId; + menuInput->totalEntriesCount = totalCount; + menuInput->entriesPerPage = perPageCount; + menuInput->unk14.x = 0; + menuInput->unk24 = 0; + menuInput->menuIndex = 0; + menuInput->unk1E = 0; - sub_801317C(¶m_1->unk28); - sub_8013984(param_1); - sub_80137F8(param_1, 24); + sub_801317C(&menuInput->unk28); + sub_8013984(menuInput); + sub_80137F8(menuInput, 24); } -void sub_8013878(MenuInputStruct *param_1, s32 param_2) +void sub_8013878(MenuInputStruct *menuInput, s32 param_2) { if (param_2 < 0) param_2 = 0; - else if (param_2 >= param_1->unk22) - param_2 = param_1->unk22 - 1; + else if (param_2 >= menuInput->totalEntriesCount) + param_2 = menuInput->totalEntriesCount - 1; - param_1->unk1E = param_2 / param_1->unk1C; - param_1->menuIndex = param_2 % param_1->unk1C; - param_1->unk24 = 0; - sub_8013984(param_1); + menuInput->unk1E = param_2 / menuInput->entriesPerPage; + menuInput->menuIndex = param_2 % menuInput->entriesPerPage; + menuInput->unk24 = 0; + sub_8013984(menuInput); } -bool8 sub_80138B8(MenuInputStruct *param_1, bool8 param_2) +bool8 sub_80138B8(MenuInputStruct *menuInput, bool8 param_2) { s32 sVar1; s32 oldIndex; - sVar1 = param_1->unk1E; - oldIndex = param_1->menuIndex; - AddMenuCursorSprite(param_1); + sVar1 = menuInput->unk1E; + oldIndex = menuInput->menuIndex; + AddMenuCursorSprite(menuInput); if (param_2) { - switch (GetKeyPress(param_1)) { + switch (GetKeyPress(menuInput)) { case INPUT_DPAD_UP: - MoveMenuCursorUp(param_1); - if (oldIndex != param_1->menuIndex) + MoveMenuCursorUp(menuInput); + if (oldIndex != menuInput->menuIndex) PlayMenuSoundEffect(3); break; case INPUT_DPAD_DOWN: - MoveMenuCursorDown(param_1); - if (oldIndex != param_1->menuIndex) + MoveMenuCursorDown(menuInput); + if (oldIndex != menuInput->menuIndex) PlayMenuSoundEffect(3); break; case INPUT_DPAD_LEFT: - sub_8013A7C(param_1); + sub_8013A7C(menuInput); break; case INPUT_DPAD_RIGHT: - sub_8013A54(param_1); + sub_8013A54(menuInput); break; } } - if (sVar1 != param_1->unk1E) { + if (sVar1 != menuInput->unk1E) { PlayMenuSoundEffect(4); return TRUE; } return FALSE; } -bool8 sub_8013938(MenuInputStruct *param_1) +bool8 sub_8013938(MenuInputStruct *menuInput) { s32 sVar1; - sVar1 = param_1->unk1E; - param_1->unk1A = 0; - param_1->unk14.x = 0; - AddMenuCursorSprite(param_1); + sVar1 = menuInput->unk1E; + menuInput->unk1A = 0; + menuInput->unk14.x = 0; + AddMenuCursorSprite(menuInput); - switch (GetKeyPress(param_1)) { + switch (GetKeyPress(menuInput)) { case INPUT_DPAD_LEFT: - sub_8013A7C(param_1); + sub_8013A7C(menuInput); break; case INPUT_DPAD_RIGHT: - sub_8013A54(param_1); + sub_8013A54(menuInput); break; } - if (sVar1 != param_1->unk1E) { + if (sVar1 != menuInput->unk1E) { PlayMenuSoundEffect(4); return TRUE; } return FALSE; } -void sub_8013984(MenuInputStruct *param_1) +void sub_8013984(MenuInputStruct *menuInput) { s32 iVar2; - s32 iVar4; Window *window; - iVar4 = param_1->unk0; - window = &gWindows[iVar4]; + window = &gWindows[menuInput->windowId]; - if (param_1->unk1C == 0) - param_1->unk1C++; + if (menuInput->entriesPerPage == 0) + menuInput->entriesPerPage++; - param_1->unk20 = param_1->unk22 / param_1->unk1C; - iVar2 = param_1->unk22 % param_1->unk1C; + menuInput->unk20 = menuInput->totalEntriesCount / menuInput->entriesPerPage; + iVar2 = menuInput->totalEntriesCount % menuInput->entriesPerPage; if (iVar2 != 0) - param_1->unk20++; + menuInput->unk20++; - if (param_1->unk1E > param_1->unk20 - 1) - param_1->unk1E = param_1->unk20 - 1; + if (menuInput->unk1E > menuInput->unk20 - 1) + menuInput->unk1E = menuInput->unk20 - 1; - if (param_1->unk1E != param_1->unk20 - 1 || param_1->unk22 % param_1->unk1C == 0) - param_1->unk1A = param_1->unk1C; + if (menuInput->unk1E != menuInput->unk20 - 1 || menuInput->totalEntriesCount % menuInput->entriesPerPage == 0) + menuInput->unk1A = menuInput->entriesPerPage; else - param_1->unk1A = param_1->unk22 % param_1->unk1C; + menuInput->unk1A = menuInput->totalEntriesCount % menuInput->entriesPerPage; - if (param_1->menuIndex > param_1->unk1A - 1) - param_1->menuIndex = param_1->unk1A - 1; + if (menuInput->menuIndex > menuInput->unk1A - 1) + menuInput->menuIndex = menuInput->unk1A - 1; - param_1->unk4 = 0; + menuInput->unk4 = 0; if (window->type== WINDOW_TYPE_WITH_HEADER) - param_1->firstEntryY = 16; + menuInput->firstEntryY = 16; else - param_1->firstEntryY = 0; + menuInput->firstEntryY = 0; - if (param_1->unk20 < 2) - param_1->unkC = 0; + if (menuInput->unk20 < 2) + menuInput->unkC = 0; else - param_1->unkC = (window->x + window->width - 2) * 8; + menuInput->unkC = (window->x + window->width - 2) * 8; - param_1->unkE = (window->y + 1) * 8 - 2; + menuInput->unkE = (window->y + 1) * 8 - 2; } -void sub_8013A54(MenuInputStruct *param_1) +void sub_8013A54(MenuInputStruct *menuInput) { - if (param_1->unk1E < param_1->unk20 - 1) - param_1->unk1E++; + if (menuInput->unk1E < menuInput->unk20 - 1) + menuInput->unk1E++; else - param_1->unk1E = 0; + menuInput->unk1E = 0; - sub_8013984(param_1); + sub_8013984(menuInput); } -void sub_8013A7C(MenuInputStruct *param_1) +void sub_8013A7C(MenuInputStruct *menuInput) { - if (param_1->unk1E < 1) - param_1->unk1E = param_1->unk20 - 1; + if (menuInput->unk1E < 1) + menuInput->unk1E = menuInput->unk20 - 1; else - param_1->unk1E--; + menuInput->unk1E--; - sub_8013984(param_1); + sub_8013984(menuInput); } void sub_8013AA0(unkStructFor8013AA0 *a0) diff --git a/src/options_menu2.c b/src/options_menu2.c index 01b8d506a..7bf785a97 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -30,7 +30,7 @@ bool8 sub_801E198(GameOptions *optionsMenu) sub_8012D08(sUnknown_203B260->unk48, 1); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B260->unk4C, TRUE, TRUE); - sub_8013818(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44); + CreateMenuOnWindow(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44); nullsub_38(); CreateOptionsMenu(); return TRUE; diff --git a/src/personality_test2.c b/src/personality_test2.c index 625210cac..b8a066e0f 100644 --- a/src/personality_test2.c +++ b/src/personality_test2.c @@ -49,7 +49,7 @@ void CreatePartnerSelectionMenu(s16 starterID) gUnknown_203B404->s18.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId); + CreateMenuOnWindow(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); } @@ -80,7 +80,7 @@ u16 HandlePartnerSelectionInput(void) UNUSED static void sub_803CE34(bool8 cursorSprite) { - gUnknown_203B404->s18.s0.input.unk22 = GetValidPartners(); + gUnknown_203B404->s18.s0.input.totalEntriesCount = GetValidPartners(); sub_8013984(&gUnknown_203B404->s18.s0.input); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index 2799db4ff..ee06c5874 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -46,7 +46,7 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2) ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0); + CreateMenuOnWindow(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0); sUnknown_203B2CC->s38.input.menuIndex = sUnknown_203B2D0; sUnknown_203B2CC->s38.input.unk1E = sUnknown_203B2D2; @@ -87,7 +87,7 @@ u32 sub_802B720(bool8 a0) u8 GetPokemonNewsIndex(void) { - return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + sUnknown_203B2CC->s38.input.menuIndex]; + return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.entriesPerPage) + sUnknown_203B2CC->s38.input.menuIndex]; } void sub_802B7D0(bool8 cursorSprite) @@ -95,7 +95,7 @@ void sub_802B7D0(bool8 cursorSprite) ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2CC->s38.windows, FALSE, FALSE); - sUnknown_203B2CC->s38.input.unk22 = GetNumPKMNNews(); + sUnknown_203B2CC->s38.input.totalEntriesCount = GetNumPKMNNews(); sub_8013984(&sUnknown_203B2CC->s38.input); sub_802B880(); CreatePKMNNewsMenu(); @@ -141,7 +141,7 @@ static void CreatePKMNNewsMenu(void) for (index = 0; index < sUnknown_203B2CC->s38.input.unk1A; index++) { y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index); - new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + index; + new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.entriesPerPage) + index; mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index]; sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId); sub_802BC7C(); diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index 1d547a5aa..d331d8d7a 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -83,7 +83,7 @@ u32 sub_802BDEC(bool8 a0) u8 sub_802BE74(void) { - return sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + sUnknown_203B2D8->unk4.s0.input.menuIndex]; + return sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + sUnknown_203B2D8->unk4.s0.input.menuIndex]; } void sub_802BE94(bool8 cursorSprite) @@ -91,7 +91,7 @@ void sub_802BE94(bool8 cursorSprite) ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, FALSE, FALSE); - sUnknown_203B2D8->unk4.s0.input.unk22 = CountEmptyMailSlots(); + sUnknown_203B2D8->unk4.s0.input.totalEntriesCount = CountEmptyMailSlots(); sub_8013984(&sUnknown_203B2D8->unk4.s0.input); sub_802BF30(); CreateMailMenu(); @@ -134,7 +134,7 @@ void CreateMailMenu(void) PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.winId, 0); for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.unk1A; i++) { - mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + i]); + mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + i]); local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId; local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i); diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index 45d7a4c36..c96c924d0 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -37,7 +37,7 @@ bool8 sub_80211AC(u32 mode, u32 a1) sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.header; ResetUnusedInputStruct(); ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); - sub_8013818(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1); + CreateMenuOnWindow(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1); if (sUnknown_203B284 == sWigglytuffShop1Work->mode) { sWigglytuffShop1Work->s40.s0.input.menuIndex = sUnknown_203B288; @@ -82,14 +82,14 @@ u32 sub_8021274(bool8 a0) u8 sub_802132C(void) { - return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + sWigglytuffShop1Work->s40.s0.input.menuIndex]; + return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + sWigglytuffShop1Work->s40.s0.input.menuIndex]; } void sub_8021354(bool8 cursorSprite) { ResetUnusedInputStruct(); ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, FALSE, FALSE); - sWigglytuffShop1Work->s40.s0.input.unk22 = sub_8021664(); + sWigglytuffShop1Work->s40.s0.input.totalEntriesCount = sub_8021664(); sub_8013984(&sWigglytuffShop1Work->s40.s0.input); sub_8021410(); sub_8021494(); @@ -138,7 +138,7 @@ void sub_8021494(void) sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.winId); for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.unk1A; i++) { - friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + i]; + friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + i]; if (sWigglytuffShop1Work->mode == 2) { WriteFriendAreaName(buffer1, friendAreaIndex, TRUE); diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 2379f86f6..c22ed0bb6 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -99,7 +99,7 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3) sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3); ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1); + CreateMenuOnWindow(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1); sub_80308A0(); sub_803092C(); return 1; @@ -137,12 +137,12 @@ u32 sub_8030768(u8 r0) u8 sub_80307EC(void) { - return gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + gUnknown_203B320->s28.s0.input.menuIndex]; + return gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.entriesPerPage) + gUnknown_203B320->s28.s0.input.menuIndex]; } void sub_8030810(u8 r0) { - gUnknown_203B320->s28.s0.input.unk22 = sub_8030A74(); + gUnknown_203B320->s28.s0.input.totalEntriesCount = sub_8030A74(); sub_8013984(&gUnknown_203B320->s28.s0.input); sub_80308A0(); @@ -199,7 +199,7 @@ void sub_803092C(void) sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.unk1E + 1,1,7,gUnknown_203B320->s28.s0.winId); for (index = 0; index < gUnknown_203B320->s28.s0.input.unk1A; index++) { - mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + index]); + mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.entriesPerPage) + index]); local.unk0[0] = gUnknown_203B320->s28.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index); local.mailTitleType = 7; diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 89927c4f7..825b6e297 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -78,14 +78,14 @@ u32 sub_802C1E4(bool8 a0) u8 sub_802C26C(void) { - return gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + gUnknown_203B2E0->unk8.s0.input.menuIndex]; + return gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + gUnknown_203B2E0->unk8.s0.input.menuIndex]; } void sub_802C28C(bool8 cursorSprite) { ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, FALSE, FALSE); - gUnknown_203B2E0->unk8.s0.input.unk22 = CountPelipperBoardSlots(); + gUnknown_203B2E0->unk8.s0.input.totalEntriesCount = CountPelipperBoardSlots(); sub_8013984(&gUnknown_203B2E0->unk8.s0.input); sub_802C328(); DrawPelipperBoardJobMenu(); @@ -137,7 +137,7 @@ void DrawPelipperBoardJobMenu(void) sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk8.s0.winId); for (i = 0; i < gUnknown_203B2E0->unk8.s0.input.unk1A; i++) { - slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + i]); + slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + i]); mail = GetPelipperBoardSlotInfo(slotIndex); local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i); diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index ddedd5b51..ba316ec75 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -80,14 +80,14 @@ u32 sub_802C598(bool8 a0) u8 GetPelipperBoardSlotIndex(void) { - return gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + gUnknown_203B2E8->unk8.s0.input.menuIndex]; + return gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + gUnknown_203B2E8->unk8.s0.input.menuIndex]; } void sub_802C640(bool8 cursorSprite) { ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, FALSE, FALSE); - gUnknown_203B2E8->unk8.s0.input.unk22 = CountAcceptedJobs(); + gUnknown_203B2E8->unk8.s0.input.totalEntriesCount = CountAcceptedJobs(); sub_8013984(&gUnknown_203B2E8->unk8.s0.input); sub_802C6DC(); DrawJobListMenu(); @@ -138,7 +138,7 @@ void DrawJobListMenu(void) sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk8.s0.winId); for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.unk1A; i++) { - mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + i]); + mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + i]); local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i); sub_803B35C(mail, &local); diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index 4166e777d..314886bd0 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -64,7 +64,7 @@ u32 sub_802CE5C(bool8 a0) u8 sub_802CEBC(void) { - return (sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + sUnknown_203B2F4->s0.input.menuIndex; + return (sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.entriesPerPage) + sUnknown_203B2F4->s0.input.menuIndex; } void sub_802CED8(bool8 cursorSprite) @@ -118,7 +118,7 @@ void sub_802CFD0(void) sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.unk1E + 1, 2, 7, sUnknown_203B2F4->s0.winId); for (r5 = 0; r5 < sUnknown_203B2F4->s0.input.unk1A; r5++) { - iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + r5); + iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.entriesPerPage) + r5); local.unk0[0] = sUnknown_203B2F4->s0.winId; local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5); diff --git a/src/world_map.c b/src/world_map.c index 7665fe396..5e287806e 100644 --- a/src/world_map.c +++ b/src/world_map.c @@ -552,12 +552,12 @@ static bool8 PlayerEnterDungeonPrompt_Async(u8 *str) menuInput.menuIndex = 1; menuInput.unk1A = 2; - menuInput.unk1C = 2; + menuInput.entriesPerPage = 2; menuInput.unk1E = 0; menuInput.unk20 = 0; menuInput.unk4 = 0; menuInput.firstEntryY = 0; - menuInput.unk0 = 1; + menuInput.windowId = 1; menuInput.unkC = 0; menuInput.unkE = 0; menuInput.unk14.x = 0; diff --git a/sym_ewram_init.txt b/sym_ewram_init.txt index 4b1edfb43..dde3c7dd1 100644 --- a/sym_ewram_init.txt +++ b/sym_ewram_init.txt @@ -42,7 +42,7 @@ .include "src/iq_skill_info_menu.o" .include "src/code_801C8C4.o" .include "src/code_801D014.o" -.include "src/code_801D9E4.o" +.include "src/debug_field_map_window.o" .include "src/options_menu1.o" .include "src/options_menu2.o" .include "src/hints_menu1.o"