From 30bdeee51e50f34a56a4141228a02eabe9e45dc9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 13 Jun 2025 12:10:16 +0200 Subject: [PATCH] more menu --- asm/code_803B050.s | 4 +- include/code_801C8C4.h | 4 +- include/code_8023144.h | 4 +- include/debug_field_map_window.h | 2 +- include/friend_list.h | 5 +- include/iq_skill_list_menu.h | 4 +- include/makuhita_dojo2.h | 4 +- include/menu_input.h | 5 +- include/personality_test2.h | 4 +- include/pokemon_news1.h | 4 +- include/pokemon_news3.h | 4 +- include/structs/menu.h | 69 ++++++++++++++++- include/structs/struct_sub80095e4.h | 73 ------------------ include/text_3.h | 4 +- include/wigglytuff_shop1.h | 4 +- include/wonder_mail_802C10C.h | 4 +- src/adventure_log.c | 64 ++++++++-------- src/code_801C8C4.c | 77 +++++++++---------- src/code_801F428.c | 56 +++++++------- src/code_801F808.c | 2 +- src/code_8023144.c | 73 +++++++++--------- src/code_8072F3C.c | 80 ++++++++++---------- src/code_809A560.c | 1 + src/debug_field_map.c | 2 +- src/debug_field_map_window.c | 113 ++++++++++++++-------------- src/debug_menu2.c | 1 + src/dungeon_main.c | 3 +- src/dungeon_menu_moves.c | 4 +- src/dungeon_menu_others.c | 14 ++-- src/dungeon_menu_team.c | 21 +++--- src/dungeon_submenu.c | 2 +- src/friend_areas_map_util.c | 2 +- src/friend_list.c | 74 +++++++++--------- src/hints_menu1.c | 26 +++---- src/hints_menu2.c | 44 +++++------ src/iq_skill_list_menu.c | 64 ++++++++-------- src/kecleon_bros2.c | 70 ++++++++--------- src/kecleon_bros3.c | 70 ++++++++--------- src/kecleon_bros4.c | 98 ++++++++++++------------ src/makuhita_dojo2.c | 58 +++++++------- src/menu_input.c | 82 ++++++++++---------- src/personality_test2.c | 56 +++++++------- src/pokemon_news1.c | 28 +++---- src/pokemon_news3.c | 68 ++++++++--------- src/text_3.c | 30 ++++---- src/wigglytuff_shop1.c | 72 +++++++++--------- src/wonder_mail_3_mid.c | 2 +- src/wonder_mail_4.c | 68 ++++++++--------- src/wonder_mail_802C10C.c | 70 ++++++++--------- src/wonder_mail_802C4C8.c | 70 ++++++++--------- src/wonder_mail_802CDD4.c | 66 ++++++++-------- 51 files changed, 911 insertions(+), 918 deletions(-) delete mode 100644 include/structs/struct_sub80095e4.h diff --git a/asm/code_803B050.s b/asm/code_803B050.s index 08d559d63..a9c57ff6e 100644 --- a/asm/code_803B050.s +++ b/asm/code_803B050.s @@ -98,7 +98,7 @@ sub_803B100: asrs r1, 16 ldr r0, _0803B11C ldr r0, [r0] - bl sub_8013878 + bl MoveMenuToEntryId bl sub_803B204 bl sub_803B284 pop {r0} @@ -258,7 +258,7 @@ sub_803B204: movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC - bl sub_80095E4 + bl CalcEntriesTotalHeight adds r0, 0x2 lsls r0, 16 ldr r2, [r4] diff --git a/include/code_801C8C4.h b/include/code_801C8C4.h index 94500c8be..644fec15f 100644 --- a/include/code_801C8C4.h +++ b/include/code_801C8C4.h @@ -4,7 +4,7 @@ #include "constants/item.h" #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0x554 struct unkStruct_203B244 @@ -12,7 +12,7 @@ struct unkStruct_203B244 u32 unk0; /* 0x4 */ u8 itemIDs[NUMBER_OF_ITEM_IDS]; u32 unkF4[NUMBER_OF_ITEM_IDS]; - /* 0x4B4 */ struct_Sub80095E4_2 unk4B4; + /* 0x4B4 */ MenuHeaderWindow unk4B4; }; bool8 sub_801C8C4(s32, s32, DungeonPos *, u32); diff --git a/include/code_8023144.h b/include/code_8023144.h index 43530a5c8..85651bee1 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -3,7 +3,7 @@ #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0x3FC typedef struct unkStruct_3001B5C @@ -14,7 +14,7 @@ typedef struct unkStruct_3001B5C s16 unkC[420]; u8 unk354; u8 fill355[0x35C - 0x355]; - /* 0x35C */ struct_Sub80095E4_2 s35C; + /* 0x35C */ MenuHeaderWindow s35C; } unkStruct_3001B5C; bool8 sub_8023144(s32, s32 index, DungeonPos *sub, u32); diff --git a/include/debug_field_map_window.h b/include/debug_field_map_window.h index c107cc56a..702c00e55 100644 --- a/include/debug_field_map_window.h +++ b/include/debug_field_map_window.h @@ -7,7 +7,7 @@ #define DEBUG_INPUT_A_PRESS 3 bool8 DebugFieldMapWindow_Init(void); -void sub_801DA58(s16); +void DebugFieldMapWindow_MoveMenuTo(s16); u32 DebugFieldMapWindow_GetInput(void); s16 DebugFieldMapWindow_GetCurrentIndex(void); void DebugFieldMapWindow_Free(void); diff --git a/include/friend_list.h b/include/friend_list.h index e071edc9c..b65491433 100644 --- a/include/friend_list.h +++ b/include/friend_list.h @@ -1,7 +1,8 @@ #ifndef GUARD_FRIEND_LIST_H #define GUARD_FRIEND_LIST_H -#include "structs/struct_sub80095e4.h" +#include "structs/str_position.h" +#include "structs/menu.h" struct unkStruct_3001B60 { @@ -17,7 +18,7 @@ struct unkStruct_3001B60 u8 unk18; s16 unk1A[NUM_MONSTERS]; u8 unk354; - struct_Sub80095E4_2 unk358; + MenuHeaderWindow unk358; }; bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10); diff --git a/include/iq_skill_list_menu.h b/include/iq_skill_list_menu.h index a33dd9d25..1e8ffe465 100644 --- a/include/iq_skill_list_menu.h +++ b/include/iq_skill_list_menu.h @@ -5,7 +5,7 @@ #include "structs/menu.h" #include "pokemon.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0xC4 struct IQSkillListMenu @@ -14,7 +14,7 @@ struct IQSkillListMenu /* 0x4 */ PokemonStruct1 *pokeStruct; /* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS]; /* 0x20 */ s32 numIQSkills; - /* 0x24 */ struct_Sub80095E4_2 s24; + /* 0x24 */ MenuHeaderWindow s24; }; bool8 HasNoAvailIQSkills(s16 species); diff --git a/include/makuhita_dojo2.h b/include/makuhita_dojo2.h index 12bef4ce5..7cf0ec7f6 100644 --- a/include/makuhita_dojo2.h +++ b/include/makuhita_dojo2.h @@ -4,13 +4,13 @@ #include "constants/dungeon.h" #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0xD0 typedef struct MakuhitaDojoWork2 { s16 unk0[NUM_DUNGEON_MAZE]; - /* 0x30 */ struct_Sub80095E4_2 s30; + /* 0x30 */ MenuHeaderWindow s30; } MakuhitaDojoWork2; bool8 MakuhitaDojo_ReturnFalse(void); diff --git a/include/menu_input.h b/include/menu_input.h index 04a7ab795..5a9932c1e 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -29,11 +29,10 @@ void MoveMenuCursorUp(MenuInputStruct *param_1); void MoveMenuCursorUpWrapAround(MenuInputStruct *param_1, u8 param_2); void sub_8013780(MenuInputStruct *param_1, s32 param_2); 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 CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId); -void CreateMenuOnWindow2(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId); -void sub_8013878(MenuInputStruct *param_1, s32 param_2); +void CreateMenuOnWindowTwoLinesEntry(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId); +void MoveMenuToEntryId(MenuInputStruct *param_1, s32 param_2); bool8 MenuCursorUpdate(MenuInputStruct *param_1, bool8 param_2); bool8 MenuCursorUpdateOnlyLeftRight(MenuInputStruct *param_1); void MenuUpdatePagesData(MenuInputStruct * param_1); diff --git a/include/personality_test2.h b/include/personality_test2.h index 321f69c50..7d7152b17 100644 --- a/include/personality_test2.h +++ b/include/personality_test2.h @@ -4,7 +4,7 @@ #include "constants/personality_test.h" #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // Size: 0xB8 struct PersonalityStruct_203B404 @@ -12,7 +12,7 @@ struct PersonalityStruct_203B404 /* 0x0 */ s16 StarterID; /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; u8 unk16; - /* 0x18 */ struct_Sub80095E4_2 s18; + /* 0x18 */ MenuHeaderWindow s18; }; void CreatePartnerSelectionMenu(s16 starterID); diff --git a/include/pokemon_news1.h b/include/pokemon_news1.h index 893698879..a746e90eb 100644 --- a/include/pokemon_news1.h +++ b/include/pokemon_news1.h @@ -4,13 +4,13 @@ #include "constants/wonder_mail.h" #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0xD4; struct unkStruct_203B2CC { /* 0x0 */ u8 receivedNewsletters[NUM_POKEMON_NEWS]; - /* 0x38 */ struct_Sub80095E4 s38; + /* 0x38 */ MenuWindow s38; }; u8 GetPokemonNewsIndex(void); diff --git a/include/pokemon_news3.h b/include/pokemon_news3.h index d14e07f10..2010d31f9 100644 --- a/include/pokemon_news3.h +++ b/include/pokemon_news3.h @@ -2,13 +2,13 @@ #define GUARD_POKEMON_NEWS3_H #include "structs/menu.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0xA4 struct unkStruct_203B2D8 { u8 unk0[4]; - /* 0x4 */ struct_Sub80095E4_2 unk4; + /* 0x4 */ MenuHeaderWindow unk4; }; void CreateMailMenu(void); diff --git a/include/structs/menu.h b/include/structs/menu.h index 56e23d594..a2ceac914 100644 --- a/include/structs/menu.h +++ b/include/structs/menu.h @@ -17,6 +17,9 @@ typedef struct TouchScreenMenuInput /* R=0x8 | B=0x6 */ DungeonPos unk8; } TouchScreenMenuInput; +#define DEFAULT_MENU_ENTRY_HEIGHT 12 +#define TWO_LINES_MENU_ENTRY_HEIGHT 24 + // size: R=0x34 | NDS=0x32? typedef struct MenuInputStruct { @@ -25,7 +28,7 @@ typedef struct MenuInputStruct /* 0x6 */ s16 firstEntryY; /* 0x8 */ DungeonPos cursorArrowPos; /* 0xC */ DungeonPos leftRightArrowsPos; - /* 0x10 */ u32 unk10; + /* 0x10 */ s32 entryHeight; // Either 12, or 24 when each entry has text on two lines. /* 0x14 */ DungeonPos unk14; /* 0x18 */ s16 menuIndex; /* 0x1A */ s16 currPageEntries; @@ -78,4 +81,68 @@ typedef struct unkStructFor8013AA0 SpriteOAM unk28; } unkStructFor8013AA0; +// Used for creating windows with an input menu. +// size: R=0x9C | B=? +typedef struct MenuWindow +{ + /* 0x0 */ MenuInputStruct input; + /* 0x34 */ u32 menuWinId; + /* 0x38 */ WindowTemplate *menuWindow; + /* 0x3C */ WindowTemplates windows; +} MenuWindow; + +// Same as above, but has one additional WindowHeader field. +// size: R=0xA0 | B=0x9C? +typedef struct MenuHeaderWindow +{ + /* 0x0 */ MenuWindow m; // short name so it's easier to write. 'm' standing for 'menu' or 'menuWindow' + /* 0x9C */ WindowHeader header; +} MenuHeaderWindow; + +// These macros are used for updating menu windows, as the last page can have less entries than other pages, so the window's height needs to reflect that. +// Note: In order to get matching ASM, this macro had to be created. +// It's probable the code below is not exactly how it was originally written, but it generates the same asm. +#define UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, _newHeight) \ +{ \ + UNUSED s32 new10; \ + s16 newHeight; \ + s16 newHeightVal = (_newHeight); \ + UNUSED s32 dummyMatch = newHeightVal; \ + UNUSED s16 oldHeight = (ptr).windows.id[(ptr).menuWinId].height; \ + dummyMatch = 0; \ + new10 = newHeightVal + 2; \ + newHeight = newHeightVal; \ + \ + (ptr).windows.id[(ptr).menuWinId].height = newHeight; \ + (ptr).windows.id[(ptr).menuWinId].unk10 = newHeightVal + 2; \ + \ + ResetUnusedInputStruct(); \ + ShowWindows(&(ptr).windows, TRUE, TRUE); \ +} + +#define UPDATE_MENU_WINDOW_HEIGHT(ptr) \ +{ \ + UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, CalcEntriesTotalHeight((ptr).input.currPageEntries, DEFAULT_MENU_ENTRY_HEIGHT) + 2) \ +} + +// For Windows where height is the same as entries height. +#define UPDATE_MENU_WINDOW_HEIGHT_2(ptr) \ +{ \ + s32 newHeightVal = CalcEntriesTotalHeight((ptr).input.currPageEntries, DEFAULT_MENU_ENTRY_HEIGHT) + 2; \ + UNUSED s16 oldHeight = (ptr).windows.id[(ptr).menuWinId].height; \ + s16 newHeight = newHeightVal; \ + \ + (ptr).windows.id[(ptr).menuWinId].height = newHeight; \ + (ptr).windows.id[(ptr).menuWinId].unk10 = newHeight; \ + \ + ResetUnusedInputStruct(); \ + ShowWindows(&(ptr).windows, TRUE, TRUE); \ +} + +// For menu windows with two lines entries(for example job mail) +#define UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(ptr) \ +{ \ + UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, CalcTwoLinesEntriesTotalHeight((ptr).input.currPageEntries, TWO_LINES_MENU_ENTRY_HEIGHT) + 2) \ +} + #endif // GUARD_MENU_H diff --git a/include/structs/struct_sub80095e4.h b/include/structs/struct_sub80095e4.h deleted file mode 100644 index e98539edd..000000000 --- a/include/structs/struct_sub80095e4.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef GUARD_struct_sub80095e4_H -#define GUARD_struct_sub80095e4_H - -#include "structs/menu.h" -#include "structs/str_text.h" - -#include "text_1.h" -#include "text_3.h" - -// Struct related with sub_80095E4 -// size: R=0x9C | B=? -typedef struct struct_Sub80095E4 -{ - /* 0x0 */ MenuInputStruct input; - /* 0x34 */ u32 winId; - /* 0x38 */ WindowTemplate *unk38; - /* 0x3C */ WindowTemplates windows; -} struct_Sub80095E4; - -// Has 1 additional array -// size: R=0xA0 | B=0x9C? -typedef struct struct_Sub80095E4_2 -{ - /* 0x0 */ struct_Sub80095E4 s0; // s as in 'struct' ; decided to go against unk as to not have `->unk0->unk3C` - /* 0x9C */ WindowHeader header; -} struct_Sub80095E4_2; - -// Note: In order to get matching ASM, this macro had to be created. -// It's probable the code below is not exactly how it was originally written, but it generates the same asm. -#define SUB_8009_MATCH(ptr, _a0) \ -{ \ - UNUSED s32 new10; \ - s16 newE; \ - s16 a0 = (_a0); \ - UNUSED s32 a0_ = a0; \ - UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \ - a0_ = 0; \ - new10 = a0 + 2; \ - newE = a0; \ - \ - (ptr).windows.id[(ptr).winId].height = newE; \ - (ptr).windows.id[(ptr).winId].unk10 = a0 + 2; \ - \ - ResetUnusedInputStruct(); \ - ShowWindows(&(ptr).windows, TRUE, TRUE); \ -} - -#define SUB_80095E4_CALL(ptr) \ -{ \ - SUB_8009_MATCH(ptr, sub_80095E4((ptr).input.currPageEntries, 12) + 2) \ -} - -// For sub_801C440 and sub_8023420 where unkE and unk10 are the same. -#define SUB_80095E4_CALL_2(ptr) \ -{ \ - s32 a0 = sub_80095E4((ptr).input.currPageEntries, 12) + 2; \ - UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \ - s16 newE = a0; \ - \ - (ptr).windows.id[(ptr).winId].height = newE; \ - (ptr).windows.id[(ptr).winId].unk10 = newE; \ - \ - ResetUnusedInputStruct(); \ - ShowWindows(&(ptr).windows, TRUE, TRUE); \ -} - -// sub_802BF30 and sub_802C328 use a different function call, and 24 instead of 12 -#define SUB_8009614_CALL(ptr) \ -{ \ - SUB_8009_MATCH(ptr, sub_8009614((ptr).input.currPageEntries, 24) + 2) \ -} - -#endif // GUARD_struct_sub80095e4_H diff --git a/include/text_3.h b/include/text_3.h index 519e04438..4106ff585 100644 --- a/include/text_3.h +++ b/include/text_3.h @@ -34,8 +34,8 @@ void sub_8009388(void); void sub_8009408(s32 from, s32 to); void sub_8009524(s32 windowId); void sub_80095CC(s32 a0, s32 a1); -s32 sub_80095E4(s32 a0, s32 a1); -s32 sub_8009614(s32 a0, s32 a1); +s32 CalcEntriesTotalHeight(s32 entriesCount, s32 entryHeight); +s32 CalcTwoLinesEntriesTotalHeight(s32 entriesCount, s32 entryHeight); const u8 *xxx_handle_format_global(const u8 *str, UnkDrawStringStruct *unkStrPtr); #endif // GUARD_TEXT_3_H diff --git a/include/wigglytuff_shop1.h b/include/wigglytuff_shop1.h index 85691d8de..0b7daeb9a 100644 --- a/include/wigglytuff_shop1.h +++ b/include/wigglytuff_shop1.h @@ -4,13 +4,13 @@ #include "constants/friend_area.h" #include "structs/menu.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" typedef struct WigglytuffShop1Work { /* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS]; /* 0x3C */ u32 mode; - struct_Sub80095E4_2 s40; + MenuHeaderWindow s40; } WigglytuffShop1Work; diff --git a/include/wonder_mail_802C10C.h b/include/wonder_mail_802C10C.h index f5fc66b23..6abcb4c05 100644 --- a/include/wonder_mail_802C10C.h +++ b/include/wonder_mail_802C10C.h @@ -3,13 +3,13 @@ #include "constants/mailbox.h" #include "structs/menu.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" // size: 0xA8 struct unkStruct_203B2E0 { u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS]; - /* 0x8 */ struct_Sub80095E4_2 unk8; + /* 0x8 */ MenuHeaderWindow unk8; }; void DrawPelipperBoardJobMenu(void); diff --git a/src/adventure_log.c b/src/adventure_log.c index a304333d8..5d906da90 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "constants/input.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "adventure_log.h" #include "music_util.h" #include "code_8097670.h" @@ -12,7 +12,7 @@ #include "text_1.h" #include "text_2.h" -static EWRAM_INIT struct_Sub80095E4_2 *sAdventureLog = { NULL }; +static EWRAM_INIT MenuHeaderWindow *sAdventureLog = { NULL }; #include "data/adventure_log.h" @@ -22,15 +22,15 @@ static void sub_8032084(); bool8 CreateAdventureLogScreen(u32 kind) { sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8); - sAdventureLog->s0.winId = kind; - sAdventureLog->s0.unk38 = &sAdventureLog->s0.windows.id[kind]; - RestoreSavedWindows(&sAdventureLog->s0.windows); - sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E2008; - sAdventureLog->s0.unk38->header = &sAdventureLog->header; + sAdventureLog->m.menuWinId = kind; + sAdventureLog->m.menuWindow = &sAdventureLog->m.windows.id[kind]; + RestoreSavedWindows(&sAdventureLog->m.windows); + sAdventureLog->m.windows.id[sAdventureLog->m.menuWinId] = sUnknown_80E2008; + sAdventureLog->m.menuWindow->header = &sAdventureLog->header; ResetUnusedInputStruct(); - ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sAdventureLog->s0.input, 0x20, 8, kind); + ShowWindows(&sAdventureLog->m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sAdventureLog->m.input, 0x20, 8, kind); sub_8032084(); DisplayAdventureLog(); return TRUE; @@ -39,11 +39,11 @@ bool8 CreateAdventureLogScreen(u32 kind) u32 HandleAdventureLogInput(bool8 a0) { if (!a0) { - sub_8013660(&sAdventureLog->s0.input); + sub_8013660(&sAdventureLog->m.input); return 0; } - switch (GetKeyPress(&sAdventureLog->s0.input)) { + switch (GetKeyPress(&sAdventureLog->m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -51,7 +51,7 @@ u32 HandleAdventureLogInput(bool8 a0) PlayMenuSoundEffect(0); return 3; default: - if (MenuCursorUpdateOnlyLeftRight(&sAdventureLog->s0.input)) { + if (MenuCursorUpdateOnlyLeftRight(&sAdventureLog->m.input)) { sub_8032084(); DisplayAdventureLog(); return 1; @@ -63,9 +63,9 @@ u32 HandleAdventureLogInput(bool8 a0) void CleanAdventureLogScreen(void) { if (sAdventureLog != NULL) { - sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E1FF0; + sAdventureLog->m.windows.id[sAdventureLog->m.menuWinId] = sUnknown_80E1FF0; ResetUnusedInputStruct(); - ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE); + ShowWindows(&sAdventureLog->m.windows, TRUE, TRUE); MemoryFree(sAdventureLog); sAdventureLog = NULL; } @@ -73,12 +73,12 @@ void CleanAdventureLogScreen(void) static void sub_8032084(void) { - sAdventureLog->header.count = sAdventureLog->s0.input.pagesCount; - sAdventureLog->header.currId = sAdventureLog->s0.input.currPage; + sAdventureLog->header.count = sAdventureLog->m.input.pagesCount; + sAdventureLog->header.currId = sAdventureLog->m.input.currPage; sAdventureLog->header.width = 11; sAdventureLog->header.f3 = 0; - SUB_80095E4_CALL(sAdventureLog->s0); + UPDATE_MENU_WINDOW_HEIGHT(sAdventureLog->m); } static void DisplayAdventureLog(void) @@ -88,50 +88,50 @@ static void DisplayAdventureLog(void) s32 r6; // r6 u8 aa; - CallPrepareTextbox_8008C54(sAdventureLog->s0.winId); - sub_80073B8(sAdventureLog->s0.winId); - r4 = sAdventureLog->s0.input.currPage * 8; + CallPrepareTextbox_8008C54(sAdventureLog->m.menuWinId); + sub_80073B8(sAdventureLog->m.menuWinId); + r4 = sAdventureLog->m.input.currPage * 8; r6 = r4; r6 += 10; - PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.winId, 0); + PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->m.menuWinId, 0); r4 += 4; r6 = r4 + (sAdventureLog->header.width * 8); - sub_8012BC4(r6, 0, sAdventureLog->s0.input.currPage + 1, 1, 7, sAdventureLog->s0.winId); + sub_8012BC4(r6, 0, sAdventureLog->m.input.currPage + 1, 1, 7, sAdventureLog->m.menuWinId); - for (i = 0; i < sAdventureLog->s0.input.currPageEntries; i++) { - aa = (sAdventureLog->s0.input.currPage * sAdventureLog->s0.input.entriesPerPage) + i; + for (i = 0; i < sAdventureLog->m.input.currPageEntries; i++) { + aa = (sAdventureLog->m.input.currPage * sAdventureLog->m.input.entriesPerPage) + i; if (GetAdventureAchievement(aa)) { switch (aa) { case AA_NUM_FLOORS_EXPLORED: { s32 v1 = GetAdventureFloorsExplored(); gFormatArgs[0] = (s16)v1; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } case AA_NUM_MOVES_LEARNED: { s32 v2 = GetAdventureMovesLearned(); gFormatArgs[0] = (s16)v2; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } case AA_NUM_THIEVING_SUCCESSES: { s32 v3 = GetThievingSuccesses(); gFormatArgs[0] = (s16)v3; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } case AA_NUM_FRIEND_RESCUE_SUCCESSES: { s32 v4 = GetFriendRescueSuccesses(); gFormatArgs[0] = v4; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } case AA_NUM_POKEMON_EVOLVED: { s32 v5 = GetAdventureNumEvolved(); gFormatArgs[0] = v5; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } case AA_NUM_POKEMON_JOINED: { @@ -140,14 +140,14 @@ static void DisplayAdventureLog(void) // fallthrough } default: { - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0); break; } } } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), sPlaceholder, sAdventureLog->m.menuWinId, 0); } - sub_80073E0(sAdventureLog->s0.winId); + sub_80073E0(sAdventureLog->m.menuWinId); } diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index 26ea0c2bb..4b8c20390 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -8,6 +8,7 @@ #include "menu_input.h" #include "text_1.h" #include "text_2.h" +#include "text_3.h" EWRAM_INIT static struct unkStruct_203B244 *sUnknown_203B244 = { NULL }; EWRAM_INIT static u32 sUnknown_203B248 = {0}; @@ -29,24 +30,24 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3) sUnknown_203B244->unk0 = a0; sub_801CF94(); - sUnknown_203B244->unk4B4.s0.winId = a1; - sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.windows.id[a1]; - RestoreSavedWindows(&sUnknown_203B244->unk4B4.s0.windows); - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE54; - sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.header; + sUnknown_203B244->unk4B4.m.menuWinId = a1; + sUnknown_203B244->unk4B4.m.menuWindow = &sUnknown_203B244->unk4B4.m.windows.id[a1]; + RestoreSavedWindows(&sUnknown_203B244->unk4B4.m.windows); + sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId] = sUnknown_80DBE54; + sUnknown_203B244->unk4B4.m.menuWindow->header = &sUnknown_203B244->unk4B4.header; if (a2 != NULL) - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId].pos = *a2; + sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId].pos = *a2; - sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3); + sub_8012D08(sUnknown_203B244->unk4B4.m.menuWindow, a3); ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1); + ShowWindows(&sUnknown_203B244->unk4B4.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sUnknown_203B244->unk4B4.m.input, sub_801CE58(), a3, a1); if (sUnknown_203B248 == sUnknown_203B244->unk0) { - sUnknown_203B244->unk4B4.s0.input.menuIndex = sUnknown_203B24C; - sUnknown_203B244->unk4B4.s0.input.currPage = sUnknown_203B24E; - MenuUpdatePagesData(&sUnknown_203B244->unk4B4.s0.input); + sUnknown_203B244->unk4B4.m.input.menuIndex = sUnknown_203B24C; + sUnknown_203B244->unk4B4.m.input.currPage = sUnknown_203B24E; + MenuUpdatePagesData(&sUnknown_203B244->unk4B4.m.input); } sub_801CC38(); @@ -61,11 +62,11 @@ u32 sub_801CA08(bool8 a0) u32 flag; if (a0 == FALSE) { - sub_8013660(&sUnknown_203B244->unk4B4.s0.input); + sub_8013660(&sUnknown_203B244->unk4B4.m.input); return 0; } - switch (GetKeyPress(&sUnknown_203B244->unk4B4.s0.input)) { + switch (GetKeyPress(&sUnknown_203B244->unk4B4.m.input)) { case 2: PlayMenuSoundEffect(1); return 2; @@ -83,7 +84,7 @@ u32 sub_801CA08(bool8 a0) if (temp != 0 || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag) { PlayMenuSoundEffect(6); sUnknown_203B244->unkF4[index] = sUnknown_203B244->unkF4[index] ^ 1; - MenuCursorUpdate(&sUnknown_203B244->unk4B4.s0.input,0); + MenuCursorUpdate(&sUnknown_203B244->unk4B4.m.input,0); sub_801CCD8(); return 1; } @@ -95,7 +96,7 @@ u32 sub_801CA08(bool8 a0) return 4; default: _0801CAF2: - if (MenuCursorUpdate(&sUnknown_203B244->unk4B4.s0.input, 1)) { + if (MenuCursorUpdate(&sUnknown_203B244->unk4B4.m.input, 1)) { sub_801CC38(); sub_801CCD8(); return 1; @@ -106,31 +107,31 @@ u32 sub_801CA08(bool8 a0) u8 sub_801CB24(void) { - return sUnknown_203B244->itemIDs[GET_CURRENT_MENU_ENTRY(sUnknown_203B244->unk4B4.s0.input)]; + return sUnknown_203B244->itemIDs[GET_CURRENT_MENU_ENTRY(sUnknown_203B244->unk4B4.m.input)]; } void sub_801CB5C(bool8 a0) { ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, FALSE, FALSE); - sUnknown_203B244->unk4B4.s0.input.totalEntriesCount = sub_801CE58(); - MenuUpdatePagesData(&sUnknown_203B244->unk4B4.s0.input); + ShowWindows(&sUnknown_203B244->unk4B4.m.windows, FALSE, FALSE); + sUnknown_203B244->unk4B4.m.input.totalEntriesCount = sub_801CE58(); + MenuUpdatePagesData(&sUnknown_203B244->unk4B4.m.input); sub_801CC38(); sub_801CCD8(); if (a0) - AddMenuCursorSprite(&sUnknown_203B244->unk4B4.s0.input); + AddMenuCursorSprite(&sUnknown_203B244->unk4B4.m.input); } void sub_801CBB8(void) { if (sUnknown_203B244 != NULL) { sUnknown_203B248 = sUnknown_203B244->unk0; - sUnknown_203B24C = sUnknown_203B244->unk4B4.s0.input.menuIndex; - sUnknown_203B24E = sUnknown_203B244->unk4B4.s0.input.currPage; - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE3C; + sUnknown_203B24C = sUnknown_203B244->unk4B4.m.input.menuIndex; + sUnknown_203B24E = sUnknown_203B244->unk4B4.m.input.currPage; + sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId] = sUnknown_80DBE3C; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE); + ShowWindows(&sUnknown_203B244->unk4B4.m.windows, TRUE, TRUE); MemoryFree(sUnknown_203B244); sUnknown_203B244 = NULL; } @@ -143,7 +144,7 @@ static void sub_801CC38(void) sUnknown_203B244->unk4B4.header.width = 12; sUnknown_203B244->unk4B4.header.f3 = 0; - SUB_80095E4_CALL(sUnknown_203B244->unk4B4.s0); + UPDATE_MENU_WINDOW_HEIGHT(sUnknown_203B244->unk4B4.m); } void sub_801CCD8(void) @@ -154,24 +155,24 @@ void sub_801CCD8(void) s32 index; u8 buffer[80]; - CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.winId); - sub_80073B8(sUnknown_203B244->unk4B4.s0.winId); - PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.winId, 0); - sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.currPage + 1, 2, 7, sUnknown_203B244->unk4B4.s0.winId); + CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.m.menuWinId); + sub_80073B8(sUnknown_203B244->unk4B4.m.menuWinId); + PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.m.menuWinId, 0); + sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.m.input.currPage + 1, 2, 7, sUnknown_203B244->unk4B4.m.menuWinId); - for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.currPageEntries; index++) { - itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.currPage * sUnknown_203B244->unk4B4.s0.input.entriesPerPage) + index]; + for(index = 0; index < sUnknown_203B244->unk4B4.m.input.currPageEntries; index++) { + itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.m.input.currPage * sUnknown_203B244->unk4B4.m.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); - y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index); - sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.winId); + y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index); + PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.m.menuWinId, 0); + y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index); + sub_8012BC4((sUnknown_203B244->unk4B4.m.menuWindow->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.m.menuWinId); if (sub_801CFE0(itemID) & 1) - sub_8007B7C(sUnknown_203B244->unk4B4.s0.winId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10); + sub_8007B7C(sUnknown_203B244->unk4B4.m.menuWinId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index), (sUnknown_203B244->unk4B4.m.menuWindow->width - 1) * 8, 10); } - sub_80073E0(sUnknown_203B244->unk4B4.s0.winId); + sub_80073E0(sUnknown_203B244->unk4B4.m.menuWinId); } static u32 sub_801CE58(void) diff --git a/src/code_801F428.c b/src/code_801F428.c index 376c43173..096a80931 100644 --- a/src/code_801F428.c +++ b/src/code_801F428.c @@ -1,6 +1,6 @@ #include "global.h" #include "globaldata.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "code_800D090.h" #include "music_util.h" #include "input.h" @@ -17,7 +17,7 @@ struct unkStruct_203B274 PokemonStruct1 *pokeStruct; unkStruct_808E218_arg *unk4; unkStruct_808E218_arg unk8; - struct_Sub80095E4_2 s348; + MenuHeaderWindow s348; }; EWRAM_INIT struct unkStruct_203B274 *gUnknown_203B274 = {NULL}; @@ -53,18 +53,18 @@ bool8 sub_801F428(s16 index, s32 param_2) gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8); gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32]; gUnknown_203B274->unk4 = &gUnknown_203B274->unk8; - gUnknown_203B274->s348.s0.winId = param_2; - gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId]; - RestoreSavedWindows(&gUnknown_203B274->s348.s0.windows); - gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2C4; - gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.header; + gUnknown_203B274->s348.m.menuWinId = param_2; + gUnknown_203B274->s348.m.menuWindow = &gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId]; + RestoreSavedWindows(&gUnknown_203B274->s348.m.windows); + gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId] = sUnknown_80DC2C4; + gUnknown_203B274->s348.m.menuWindow->header = &gUnknown_203B274->s348.header; gUnknown_203B274->s348.header.count = 1; gUnknown_203B274->s348.header.currId = 0; gUnknown_203B274->s348.header.width = 0xC; gUnknown_203B274->s348.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2); + ShowWindows(&gUnknown_203B274->s348.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B274->s348.m.input, sub_801F7E4(), 4, param_2); sub_801F690(); sub_801F700(); return TRUE; @@ -73,11 +73,11 @@ bool8 sub_801F428(s16 index, s32 param_2) u32 sub_801F520(u8 param_1) { if (param_1 == 0) { - sub_8013660(&gUnknown_203B274->s348.s0.input); + sub_8013660(&gUnknown_203B274->s348.m.input); return 0; } else { - switch(GetKeyPress(&gUnknown_203B274->s348.s0.input)) + switch(GetKeyPress(&gUnknown_203B274->s348.m.input)) { case 2: PlayMenuSoundEffect(1); @@ -91,7 +91,7 @@ u32 sub_801F520(u8 param_1) default: break; } - if (MenuCursorUpdate(&gUnknown_203B274->s348.s0.input,1) != 0) { + if (MenuCursorUpdate(&gUnknown_203B274->s348.m.input,1) != 0) { sub_801F690(); sub_801F700(); return 1; @@ -104,27 +104,27 @@ u32 sub_801F520(u8 param_1) u16 sub_801F5B4(void) { - return gUnknown_203B274->unk4->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B274->s348.s0.input)]; + return gUnknown_203B274->unk4->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B274->s348.m.input)]; } void sub_801F5F0(bool8 r0) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B274->s348.s0.windows, FALSE, FALSE); - MenuUpdatePagesData(&gUnknown_203B274->s348.s0.input); + ShowWindows(&gUnknown_203B274->s348.m.windows, FALSE, FALSE); + MenuUpdatePagesData(&gUnknown_203B274->s348.m.input); sub_801F690(); sub_801F700(); if(r0) - AddMenuCursorSprite(&gUnknown_203B274->s348.s0.input); + AddMenuCursorSprite(&gUnknown_203B274->s348.m.input); } void sub_801F63C(void) { if(gUnknown_203B274 != NULL) { - gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2AC; + gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId] = sUnknown_80DC2AC; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B274->s348.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B274); gUnknown_203B274 = NULL; } @@ -132,7 +132,7 @@ void sub_801F63C(void) void sub_801F690(void) { - SUB_80095E4_CALL(gUnknown_203B274->s348.s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B274->s348.m); } void sub_801F700(void) @@ -142,17 +142,17 @@ void sub_801F700(void) u8 buffer2 [48]; u8 buffer1 [128]; - CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.winId); - sub_80073B8(gUnknown_203B274->s348.s0.winId); - sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.currPage + 1,gUnknown_203B274->s348.s0.input.pagesCount); // Moves Page: %d/%d - PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.winId,0); - for(index = 0; index < gUnknown_203B274->s348.s0.input.currPageEntries; index++) + CallPrepareTextbox_8008C54(gUnknown_203B274->s348.m.menuWinId); + sub_80073B8(gUnknown_203B274->s348.m.menuWinId); + sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.m.input.currPage + 1,gUnknown_203B274->s348.m.input.pagesCount); // Moves Page: %d/%d + PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.m.menuWinId,0); + for(index = 0; index < gUnknown_203B274->s348.m.input.currPageEntries; index++) { - sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.currPage * 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); + sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.m.input.currPage * gUnknown_203B274->s348.m.input.entriesPerPage + index]); + y = GetMenuEntryYCoord(&gUnknown_203B274->s348.m.input, index); + PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.m.menuWinId,0); } - sub_80073E0(gUnknown_203B274->s348.s0.winId); + sub_80073E0(gUnknown_203B274->s348.m.menuWinId); } u32 sub_801F7E4(void) diff --git a/src/code_801F808.c b/src/code_801F808.c index 6f49bc69e..771086e33 100644 --- a/src/code_801F808.c +++ b/src/code_801F808.c @@ -12,7 +12,7 @@ #include "text_1.h" #include "text_2.h" -// TODO: UNIFY WITH struct_Sub80095E4 +// TODO: UNIFY WITH MenuWindow struct unkStruct_203B278 { /* 0x0 */ s32 state; diff --git a/src/code_8023144.c b/src/code_8023144.c index f34ec6916..1647a483b 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -13,6 +13,7 @@ #include "pokemon_3.h" #include "text_1.h" #include "text_2.h" +#include "text_3.h" EWRAM_INIT static u32 gUnknown_203B298 = {1}; EWRAM_INIT static u16 gUnknown_203B29C = {0}; @@ -47,23 +48,23 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3) gUnknown_3001B5C->unk0 = param_1_u8; gUnknown_3001B5C->unk4 = gUnknown_203B298; - gUnknown_3001B5C->s35C.s0.winId = index; - gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.windows.id[index]; - RestoreSavedWindows(&gUnknown_3001B5C->s35C.s0.windows); - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC91C; + gUnknown_3001B5C->s35C.m.menuWinId = index; + gUnknown_3001B5C->s35C.m.menuWindow = &gUnknown_3001B5C->s35C.m.windows.id[index]; + RestoreSavedWindows(&gUnknown_3001B5C->s35C.m.windows); + gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId] = sUnknown_80DC91C; - gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.header; + gUnknown_3001B5C->s35C.m.menuWindow->header = &gUnknown_3001B5C->s35C.header; if (sub != NULL) - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId].pos = *sub; + gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId].pos = *sub; - sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3); + sub_8012D08(gUnknown_3001B5C->s35C.m.menuWindow, a3); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index); - gUnknown_3001B5C->s35C.s0.input.menuIndex = gUnknown_203B29C; - gUnknown_3001B5C->s35C.s0.input.currPage = gUnknown_203B29E; - MenuUpdatePagesData(&gUnknown_3001B5C->s35C.s0.input); + ShowWindows(&gUnknown_3001B5C->s35C.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_3001B5C->s35C.m.input, sub_80236A4(), a3, index); + gUnknown_3001B5C->s35C.m.input.menuIndex = gUnknown_203B29C; + gUnknown_3001B5C->s35C.m.input.currPage = gUnknown_203B29E; + MenuUpdatePagesData(&gUnknown_3001B5C->s35C.m.input); sub_8023420(); sub_80234BC(); return TRUE; @@ -75,11 +76,11 @@ u32 sub_8023278(bool8 a0) u32 temp; if (!a0) { - sub_8013660(&gUnknown_3001B5C->s35C.s0.input); + sub_8013660(&gUnknown_3001B5C->s35C.m.input); return 0; } - switch (GetKeyPress(&gUnknown_3001B5C->s35C.s0.input)) { + switch (GetKeyPress(&gUnknown_3001B5C->s35C.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -95,7 +96,7 @@ u32 sub_8023278(bool8 a0) sub_80236A4(); break; default: - if (MenuCursorUpdate(&gUnknown_3001B5C->s35C.s0.input, 1) == 0) + if (MenuCursorUpdate(&gUnknown_3001B5C->s35C.m.input, 1) == 0) return 0; break; } @@ -107,30 +108,30 @@ u32 sub_8023278(bool8 a0) s16 sub_802331C(void) { - return gUnknown_3001B5C->unkC[GET_CURRENT_MENU_ENTRY(gUnknown_3001B5C->s35C.s0.input)]; + return gUnknown_3001B5C->unkC[GET_CURRENT_MENU_ENTRY(gUnknown_3001B5C->s35C.m.input)]; } void sub_8023354(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, FALSE, FALSE); - MenuUpdatePagesData(&gUnknown_3001B5C->s35C.s0.input); + ShowWindows(&gUnknown_3001B5C->s35C.m.windows, FALSE, FALSE); + MenuUpdatePagesData(&gUnknown_3001B5C->s35C.m.input); sub_8023420(); sub_80234BC(); if (cursorSprite) - AddMenuCursorSprite(&gUnknown_3001B5C->s35C.s0.input); + AddMenuCursorSprite(&gUnknown_3001B5C->s35C.m.input); } void sub_80233A0(void) { if (gUnknown_3001B5C != NULL) { gUnknown_203B298 = gUnknown_3001B5C->unk4; - gUnknown_203B29C = gUnknown_3001B5C->s35C.s0.input.menuIndex; - gUnknown_203B29E = gUnknown_3001B5C->s35C.s0.input.currPage; - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC904; + gUnknown_203B29C = gUnknown_3001B5C->s35C.m.input.menuIndex; + gUnknown_203B29E = gUnknown_3001B5C->s35C.m.input.currPage; + gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId] = sUnknown_80DC904; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_3001B5C->s35C.m.windows, TRUE, TRUE); MemoryFree(gUnknown_3001B5C); gUnknown_3001B5C = NULL; } @@ -143,7 +144,7 @@ static void sub_8023420(void) gUnknown_3001B5C->s35C.header.width = 12; gUnknown_3001B5C->s35C.header.f3 = 0; - SUB_80095E4_CALL_2(gUnknown_3001B5C->s35C.s0); + UPDATE_MENU_WINDOW_HEIGHT_2(gUnknown_3001B5C->s35C.m); } static void sub_80234BC(void) @@ -159,15 +160,15 @@ static void sub_80234BC(void) u8 buffer1[100]; FriendAreaCapacity auStack_2c; - CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.winId); - sub_80073B8(gUnknown_3001B5C->s35C.s0.winId); - PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.winId, 0); + CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.m.menuWinId); + sub_80073B8(gUnknown_3001B5C->s35C.m.menuWinId); + PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.m.menuWinId, 0); - sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.currPage + 1, 2, 7, gUnknown_3001B5C->s35C.s0.winId); + sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.m.input.currPage + 1, 2, 7, gUnknown_3001B5C->s35C.m.menuWinId); - for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.currPageEntries; i++) { - y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i); - species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.currPage * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + i]; + for (i = 0; i < gUnknown_3001B5C->s35C.m.input.currPageEntries; i++) { + y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.m.input, i); + species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.m.input.currPage * gUnknown_3001B5C->s35C.m.input.entriesPerPage) + i]; GetFriendAreaCapacity2(GetFriendArea(species), &auStack_2c, FALSE, FALSE); color = COLOR_WHITE_2; if (auStack_2c.hasFriendArea) @@ -175,26 +176,26 @@ static void sub_80234BC(void) iVar4 = GetDexInternalNo(species, 0); cVar2 = (iVar4 % 10) + 48; - DrawCharOnWindowWidth12(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(20, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId); if (9 < iVar4) { iVar4 /= 10; cVar2 = (iVar4 % 10) + 48; - DrawCharOnWindowWidth12(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(13, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId); if (9 < iVar4) { uVar3 = iVar4 / 10; cVar2 = (uVar3 % 10) + 48; - DrawCharOnWindowWidth12(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(6, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId); } } sub_808D930(buffer1,species); sprintfStatic(buffer2, sFmtColoredString, color, buffer1); - PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.winId, 0); + PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.m.menuWinId, 0); } - sub_80073E0(gUnknown_3001B5C->s35C.s0.winId); + sub_80073E0(gUnknown_3001B5C->s35C.m.menuWinId); } static u32 sub_80236A4(void) diff --git a/src/code_8072F3C.c b/src/code_8072F3C.c index c7b4037ae..a8d459382 100644 --- a/src/code_8072F3C.c +++ b/src/code_8072F3C.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "constants/input.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "code_80958E8.h" #include "code_80A26CC.h" @@ -24,7 +24,7 @@ struct unkStruct_203B314 u8 unkB9; u8 unkBA; u8 unkBB; - struct struct_Sub80095E4_2 sBC; + struct MenuHeaderWindow sBC; }; EWRAM_INIT struct unkStruct_203B314 *gUnknown_203B314 = {NULL}; @@ -75,24 +75,24 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3) gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 8); gUnknown_203B314->unkB8 = r3; - gUnknown_203B314->sBC.s0.winId = r0; - gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId]; - RestoreSavedWindows(&gUnknown_203B314->sBC.s0.windows); + gUnknown_203B314->sBC.m.menuWinId = r0; + gUnknown_203B314->sBC.m.menuWindow = &gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId]; + RestoreSavedWindows(&gUnknown_203B314->sBC.m.windows); if (r3 != 0) - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E072C; + gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E072C; else - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E0714; + gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E0714; - gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.header; + gUnknown_203B314->sBC.m.menuWindow->header = &gUnknown_203B314->sBC.header; if (r1 != 0) - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId].pos = *r1; + gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId].pos = *r1; - sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2); + sub_8012D08(gUnknown_203B314->sBC.m.menuWindow, r2); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0); + ShowWindows(&gUnknown_203B314->sBC.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B314->sBC.m.input, sub_802FBF4(), r2, r0); sub_802F9C0(); sub_802FA50(); return 1; @@ -105,15 +105,15 @@ u32 sub_802F848(s16 param_1) param_1_32 = param_1; // cast needed - for( index = 0; index < gUnknown_203B314->sBC.s0.input.totalEntriesCount; index++ ) { + for( index = 0; index < gUnknown_203B314->sBC.m.input.totalEntriesCount; index++ ) { if (gUnknown_203B314->unk0[index] == param_1_32) { - sub_8013878(&gUnknown_203B314->sBC.s0.input,index); + MoveMenuToEntryId(&gUnknown_203B314->sBC.m.input,index); sub_802F9C0(); sub_802FA50(); return 1; } } - sub_8013878(&gUnknown_203B314->sBC.s0.input,0); + MoveMenuToEntryId(&gUnknown_203B314->sBC.m.input,0); return 0; } @@ -121,12 +121,12 @@ u32 sub_802F8A0(u8 r0) { if(r0 == 0) { - sub_8013660(&gUnknown_203B314->sBC.s0.input); + sub_8013660(&gUnknown_203B314->sBC.m.input); return 0; } else { - switch(GetKeyPress(&gUnknown_203B314->sBC.s0.input)) + switch(GetKeyPress(&gUnknown_203B314->sBC.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); @@ -135,7 +135,7 @@ u32 sub_802F8A0(u8 r0) PlayMenuSoundEffect(0); return 3; default: - if(MenuCursorUpdate(&gUnknown_203B314->sBC.s0.input, 1) != 0) + if(MenuCursorUpdate(&gUnknown_203B314->sBC.m.input, 1) != 0) { sub_802F9C0(); sub_802FA50(); @@ -151,27 +151,27 @@ u32 sub_802F8A0(u8 r0) s16 sub_802F90C(void) { - return gUnknown_203B314->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B314->sBC.s0.input)]; + return gUnknown_203B314->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B314->sBC.m.input)]; } void sub_802F938(u8 r0) { - gUnknown_203B314->sBC.s0.input.totalEntriesCount = sub_802FBF4(); - MenuUpdatePagesData(&gUnknown_203B314->sBC.s0.input); + gUnknown_203B314->sBC.m.input.totalEntriesCount = sub_802FBF4(); + MenuUpdatePagesData(&gUnknown_203B314->sBC.m.input); sub_802F9C0(); sub_802FA50(); if(r0 != 0) - AddMenuCursorSprite(&gUnknown_203B314->sBC.s0.input); + AddMenuCursorSprite(&gUnknown_203B314->sBC.m.input); } void sub_802F974(void) { if(gUnknown_203B314 != NULL) { - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E06FC; + gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E06FC; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B314->sBC.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B314); gUnknown_203B314 = NULL; } @@ -184,7 +184,7 @@ void sub_802F9C0(void) gUnknown_203B314->sBC.header.width = 8; gUnknown_203B314->sBC.header.f3 = 0; - SUB_80095E4_CALL(gUnknown_203B314->sBC.s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B314->sBC.m); } void sub_802FA50(void) @@ -196,34 +196,34 @@ void sub_802FA50(void) int index; int counter; - CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.winId); - sub_80073B8(gUnknown_203B314->sBC.s0.winId); - PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.winId,0); - sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.currPage + 1,2,7,gUnknown_203B314->sBC.s0.winId); + CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.m.menuWinId); + sub_80073B8(gUnknown_203B314->sBC.m.menuWinId); + PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.m.menuWinId,0); + sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.m.input.currPage + 1,2,7,gUnknown_203B314->sBC.m.menuWinId); if (gUnknown_203B314->unkB8 != 0) { - for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.currPageEntries; counter++) + for(counter = 0; counter < gUnknown_203B314->sBC.m.input.currPageEntries; counter++) { - y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter); - index = gUnknown_203B314->sBC.s0.input.currPage * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter; + y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.m.input,counter); + index = gUnknown_203B314->sBC.m.input.currPage * gUnknown_203B314->sBC.m.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); + PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.m.menuWinId,0); } else if (gUnknown_203B314->unk8A[index] != 0) { - PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.winId,0); + PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.m.menuWinId,0); } - PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.winId,0); + PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.m.menuWinId,0); } } else { - for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.currPageEntries; counter++) + for(counter = 0; counter < gUnknown_203B314->sBC.m.input.currPageEntries; counter++) { - y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter); - text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.currPage * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter]); - PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0); + y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.m.input,counter); + text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.m.input.currPage * gUnknown_203B314->sBC.m.input.entriesPerPage + counter]); + PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.m.menuWinId,0); } } - sub_80073E0(gUnknown_203B314->sBC.s0.winId); + sub_80073E0(gUnknown_203B314->sBC.m.menuWinId); } static inline void sub_802FBF4_sub(u8 *test, s32 counter) diff --git a/src/code_809A560.c b/src/code_809A560.c index 292f076cc..9f837f135 100644 --- a/src/code_809A560.c +++ b/src/code_809A560.c @@ -28,6 +28,7 @@ #include "string_format.h" #include "text_1.h" #include "text_2.h" +#include "text_3.h" #include "wigglytuff_shop1.h" #include "wigglytuff_shop3.h" #include "wonder_mail.h" diff --git a/src/debug_field_map.c b/src/debug_field_map.c index 12ab82a44..8d1ef7ed3 100644 --- a/src/debug_field_map.c +++ b/src/debug_field_map.c @@ -55,7 +55,7 @@ UNUSED static void DebugMapViewer(void) PixelPos boundary; if (DebugFieldMapWindow_Init()) { - sub_801DA58(mapId); + DebugFieldMapWindow_MoveMenuTo(mapId); while (1) { sub_8005838(NULL, 0); sub_8012A18(0); diff --git a/src/debug_field_map_window.c b/src/debug_field_map_window.c index faf299aa1..67179914d 100644 --- a/src/debug_field_map_window.c +++ b/src/debug_field_map_window.c @@ -2,7 +2,7 @@ #include "globaldata.h" #include "debug_field_map_window.h" #include "constants/input.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "ground_main.h" #include "input.h" @@ -12,61 +12,62 @@ #include "text_2.h" #include "structs/str_81188F0.h" -EWRAM_INIT static struct struct_Sub80095E4_2 *sDebugWindow = {NULL}; +EWRAM_INIT static struct MenuHeaderWindow *sDebugWindow = {NULL}; static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY; -static const WindowTemplate sUnknown_80DBF88 = { - 0, - 6, - 2, 2, - 24, 17, - 17, 0, - NULL +static const WindowTemplate sDebugWindowTemplate = { + .unk0 = 0, + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 24, + .height = 17, + .unk10 = 17, + .unk12 = 0, + .header = NULL, }; -static void sub_801DB54(void); -static void sub_801DBD4(void); +static void ShowWindowsWithHeader(void); +static void PrintCurrentPageText(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; + sDebugWindow->m.menuWinId = WINDOW_ID_DEBUG; + sDebugWindow->m.menuWindow = &sDebugWindow->m.windows.id[WINDOW_ID_DEBUG]; + RestoreSavedWindows(&sDebugWindow->m.windows); + sDebugWindow->m.windows.id[sDebugWindow->m.menuWinId] = sDebugWindowTemplate; + sDebugWindow->m.menuWindow->header = &sDebugWindow->header; ResetUnusedInputStruct(); - ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sDebugWindow->s0.input, 229, 10, sDebugWindow->s0.winId); - sub_801DB54(); - sub_801DBD4(); + ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sDebugWindow->m.input, 229, 10, sDebugWindow->m.menuWinId); + ShowWindowsWithHeader(); + PrintCurrentPageText(); return TRUE; } -void sub_801DA58(s16 a0) +void DebugFieldMapWindow_MoveMenuTo(s16 entryId_) { - s32 cast; - cast = a0; - sub_8013878(&sDebugWindow->s0.input, cast); - sub_801DB54(); - sub_801DBD4(); + s32 entryId = entryId_; + MoveMenuToEntryId(&sDebugWindow->m.input, entryId); + ShowWindowsWithHeader(); + PrintCurrentPageText(); } u32 DebugFieldMapWindow_GetInput(void) { - switch (GetKeyPress(&sDebugWindow->s0.input)) { + switch (GetKeyPress(&sDebugWindow->m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return DEBUG_INPUT_B_PRESS; case INPUT_A_BUTTON: return DEBUG_INPUT_A_PRESS; default: - if (MenuCursorUpdate(&sDebugWindow->s0.input, TRUE)) { - sub_801DB54(); - sub_801DBD4(); + if (MenuCursorUpdate(&sDebugWindow->m.input, TRUE)) { + ShowWindowsWithHeader(); + PrintCurrentPageText(); return DEBUG_INPUT_DPAD; } return DEBUG_INPUT_NOTHING; @@ -75,30 +76,30 @@ u32 DebugFieldMapWindow_GetInput(void) s16 DebugFieldMapWindow_GetCurrentIndex(void) { - return GET_CURRENT_MENU_ENTRY(sDebugWindow->s0.input); + return GET_CURRENT_MENU_ENTRY(sDebugWindow->m.input); } -UNUSED static void sub_801DADC(bool8 a0) +UNUSED static void ShowDebugFieldMapWindow(bool8 addCursorSprite) { - sDebugWindow->s0.input.totalEntriesCount = 229; - MenuUpdatePagesData(&sDebugWindow->s0.input); - sub_801DB54(); - sub_801DBD4(); - if (a0) - AddMenuCursorSprite(&sDebugWindow->s0.input); + sDebugWindow->m.input.totalEntriesCount = 229; + MenuUpdatePagesData(&sDebugWindow->m.input); + ShowWindowsWithHeader(); + PrintCurrentPageText(); + if (addCursorSprite) + AddMenuCursorSprite(&sDebugWindow->m.input); } void DebugFieldMapWindow_Free(void) { if (sDebugWindow != NULL) { - sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sDummyWinTemplate; + sDebugWindow->m.windows.id[sDebugWindow->m.menuWinId] = sDummyWinTemplate; ResetUnusedInputStruct(); - ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); + ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE); FREE_AND_SET_NULL(sDebugWindow); } } -static void sub_801DB54(void) +static void ShowWindowsWithHeader(void) { sDebugWindow->header.count = 1; sDebugWindow->header.currId = 0; @@ -106,12 +107,12 @@ static void sub_801DB54(void) sDebugWindow->header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE); + ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE); - SUB_80095E4_CALL(sDebugWindow->s0); + UPDATE_MENU_WINDOW_HEIGHT(sDebugWindow->m); } -static void sub_801DBD4(void) +static void PrintCurrentPageText(void) { GroundConversionStruct *temp; const struct unkStruct_81188F0 *temp2; @@ -119,28 +120,28 @@ static void sub_801DBD4(void) s16 index; int counter; - CallPrepareTextbox_8008C54(sDebugWindow->s0.winId); - sub_80073B8(sDebugWindow->s0.winId); - PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->s0.winId, 0); + CallPrepareTextbox_8008C54(sDebugWindow->m.menuWinId); + sub_80073B8(sDebugWindow->m.menuWinId); + PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->m.menuWinId, 0); x = (sDebugWindow->header.width * 8) - 2; - n = sDebugWindow->s0.input.currPage + 1; - sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->s0.winId); + n = sDebugWindow->m.input.currPage + 1; + sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->m.menuWinId); // 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.currPageEntries; counter++) { - index = (sDebugWindow->s0.input.currPage * sDebugWindow->s0.input.entriesPerPage) + counter; + for (counter = 0; counter < sDebugWindow->m.input.currPageEntries; counter++) { + index = (sDebugWindow->m.input.currPage * sDebugWindow->m.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->m.input, counter); + PrintStringOnWindow(8, y, temp2->text1, sDebugWindow->m.menuWinId, 0); - y = GetMenuEntryYCoord(&sDebugWindow->s0.input, counter); - PrintStringOnWindow(62, y, temp->text, sDebugWindow->s0.winId, 0); + y = GetMenuEntryYCoord(&sDebugWindow->m.input, counter); + PrintStringOnWindow(62, y, temp->text, sDebugWindow->m.menuWinId, 0); } - sub_80073E0(sDebugWindow->s0.winId); + sub_80073E0(sDebugWindow->m.menuWinId); } diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 2e7c27ac0..8ab50b925 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -10,6 +10,7 @@ #include "string_format.h" #include "text_1.h" #include "text_2.h" +#include "text_3.h" static EWRAM_INIT unkStruct_203B3F0 *sUnknown_203B3F0 = {NULL}; diff --git a/src/dungeon_main.c b/src/dungeon_main.c index 5e0987c4a..d7543378a 100644 --- a/src/dungeon_main.c +++ b/src/dungeon_main.c @@ -8,7 +8,8 @@ #include "structs/map.h" #include "structs/str_dungeon.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_1.h" +#include "text_3.h" #include "bg_control.h" #include "dungeon_move_util.h" #include "code_800D090.h" diff --git a/src/dungeon_menu_moves.c b/src/dungeon_menu_moves.c index 5d3b1e70b..bd124cde2 100644 --- a/src/dungeon_menu_moves.c +++ b/src/dungeon_menu_moves.c @@ -449,7 +449,7 @@ static void ShowMovesMenuWindows(Entity *entity, EntityInfo *entInfo, bool8 redC gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); - windows->id[0].height = windows->id[0].unk10 = sub_80095E4(4, 0xC) + 2; + windows->id[0].height = windows->id[0].unk10 = CalcEntriesTotalHeight(4, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header->width = 13; windows->id[0].pos.x = 2; windows->id[1] = windows->id[3]; @@ -1125,7 +1125,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W gDungeonMenu.unk14.x = 0; gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); - windows->id[0].height = windows->id[0].unk10 = sub_80095E4(count, 12) + 2; + windows->id[0].height = windows->id[0].unk10 = CalcEntriesTotalHeight(count, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header->width = 14; windows->id[0].pos.x = 2; windows->id[1] = windows->id[3]; diff --git a/src/dungeon_menu_others.c b/src/dungeon_menu_others.c index 906ef798f..a0564ea3e 100644 --- a/src/dungeon_menu_others.c +++ b/src/dungeon_menu_others.c @@ -488,7 +488,7 @@ static void PrintOthersMenuOptions(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 18; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -551,7 +551,7 @@ static void PrintQuickSaveMenuOptions(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 18; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -604,7 +604,7 @@ static void PrintGameOptions(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 12; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -659,7 +659,7 @@ static void PrintDungeonOptions(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 24; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(DUNGEON_OPTIONS_COUNT, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(DUNGEON_OPTIONS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -750,7 +750,7 @@ static void PrintOthersOptions(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 24; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(OTHERS_OPTIONS_COUNT, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(OTHERS_OPTIONS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -922,7 +922,7 @@ static void PrintHintsMenu(void) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 12; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT_RED_VERSION, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(HINTS_COUNT_RED_VERSION, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); @@ -973,7 +973,7 @@ static void ShowChosenHintWindow(s32 hintId) gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); windows.id[0].width = 24; - windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT, 12) + 2; + windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(HINTS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2; header.width = 10; windows.id[0].pos.x = 2; DungeonShowWindows(&windows, TRUE); diff --git a/src/dungeon_menu_team.c b/src/dungeon_menu_team.c index c9ff88020..3e8670944 100644 --- a/src/dungeon_menu_team.c +++ b/src/dungeon_menu_team.c @@ -4,7 +4,8 @@ #include "structs/map.h" #include "structs/str_dungeon.h" #include "structs/str_text.h" -#include "structs/struct_sub80095e4.h" +#include "text_1.h" +#include "text_3.h" #include "code_800D090.h" #include "code_801602C.h" #include "code_801B3C0.h" @@ -306,12 +307,12 @@ bool8 ShowDungeonTeamMenu(Entity *a0) static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemplates *windows, bool8 a2) { - s32 r0; + s32 height; DungeonPos pos; s32 i; s32 count = 0; - bool8 r10 = (windows->id[0].type == WINDOW_TYPE_WITH_HEADER); + bool8 withHeader = (windows->id[0].type == WINDOW_TYPE_WITH_HEADER); sub_8069D18(&pos, GetLeader()); for (i = 0; i < MAX_TEAM_MEMBERS; i++) { @@ -349,18 +350,18 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp gDungeonMenu.currPage = 0; gDungeonMenu.pagesCount = 0; gDungeonMenu.unk4 = 0; - gDungeonMenu.firstEntryY = (r10 != FALSE) * 16; + gDungeonMenu.firstEntryY = (withHeader != FALSE) * 16; gDungeonMenu.leftRightArrowsPos.x = 0; gDungeonMenu.leftRightArrowsPos.y = 0; gDungeonMenu.unk14.x = 0; gDungeonMenu.windowId = 0; ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen); - r0 = sub_80095E4(count, 0); - if (r10) { - r0 += 2; + height = CalcEntriesTotalHeight(count, 0); + if (withHeader) { + height += 2; } - windows->id[0].unk10 = r0; - windows->id[0].height = r0; + windows->id[0].unk10 = height; + windows->id[0].height = height; sTeamWindowHeader.width = 8; if (a2) { windows->id[1] = windows->id[3]; @@ -369,7 +370,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp DungeonShowWindows(windows, 1); sub_80137B0(&gDungeonMenu, 0); sub_80073B8(0); - if (r10) { + if (withHeader) { PrintFormattedStringOnWindow(0xC, 0, _("$t"), 0, 0); } diff --git a/src/dungeon_submenu.c b/src/dungeon_submenu.c index 02a87036e..5a88ec3c4 100644 --- a/src/dungeon_submenu.c +++ b/src/dungeon_submenu.c @@ -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.entriesPerPage, 0); + windows.id[1].height = windows.id[1].unk10 = CalcEntriesTotalHeight(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 afa64bcf5..3869a9798 100644 --- a/src/friend_areas_map_util.c +++ b/src/friend_areas_map_util.c @@ -338,7 +338,7 @@ void FriendAreasMap_PrintAvailableSubAreas(void) menuInput->cursorArrowPos.x = 8; menuInput->cursorArrowPos.y = 8; ResetTouchScreenMenuInput(&menuInput->touchScreen); - var = sub_80095E4(menuInput->entriesPerPage, 0); + var = CalcEntriesTotalHeight(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 764ba1938..b10b58742 100644 --- a/src/friend_list.c +++ b/src/friend_list.c @@ -101,22 +101,22 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10) sFriendList->unk354 = 0; } - sFriendList->unk358.s0.winId = windowId; - sFriendList->unk358.s0.unk38 = &sFriendList->unk358.s0.windows.id[windowId]; - RestoreSavedWindows(&sFriendList->unk358.s0.windows); - sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sUnknown_80DC968; - sFriendList->unk358.s0.unk38->header = &sFriendList->unk358.header; + sFriendList->unk358.m.menuWinId = windowId; + sFriendList->unk358.m.menuWindow = &sFriendList->unk358.m.windows.id[windowId]; + RestoreSavedWindows(&sFriendList->unk358.m.windows); + sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId] = sUnknown_80DC968; + sFriendList->unk358.m.menuWindow->header = &sFriendList->unk358.header; if (pos != NULL) { - sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId].pos = *pos; + sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId].pos = *pos; } - sub_8012D08(sFriendList->unk358.s0.unk38, r10); + sub_8012D08(sFriendList->unk358.m.menuWindow, r10); ResetUnusedInputStruct(); - ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId); + ShowWindows(&sFriendList->unk358.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sFriendList->unk358.m.input, sub_8023F8C(), r10, windowId); if (gUnknown_203B2A0 == sFriendList->unk0) { - sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8; - sFriendList->unk358.s0.input.currPage = gUnknown_203B2AA; - MenuUpdatePagesData(&sFriendList->unk358.s0.input); + sFriendList->unk358.m.input.menuIndex = gUnknown_203B2A8; + sFriendList->unk358.m.input.currPage = gUnknown_203B2AA; + MenuUpdatePagesData(&sFriendList->unk358.m.input); } SetUpWindowHeader(); FriendList_ShowWindow(); @@ -126,11 +126,11 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10) u32 FriendList_HandleInput(bool8 a0) { if (!a0) { - sub_8013660(&sFriendList->unk358.s0.input); + sub_8013660(&sFriendList->unk358.m.input); return 0; } - switch (GetKeyPress(&sFriendList->unk358.s0.input)) { + switch (GetKeyPress(&sFriendList->unk358.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -148,7 +148,7 @@ u32 FriendList_HandleInput(bool8 a0) FriendList_ShowWindow(); return 1; default: - if (MenuCursorUpdate(&sFriendList->unk358.s0.input, TRUE)) { + if (MenuCursorUpdate(&sFriendList->unk358.m.input, TRUE)) { SetUpWindowHeader(); FriendList_ShowWindow(); return 1; @@ -159,19 +159,19 @@ u32 FriendList_HandleInput(bool8 a0) s32 FriendList_GetCurrId(void) { - return sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.s0.input)]; + return sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.m.input)]; } void sub_8023B7C(bool8 addCursor) { ResetUnusedInputStruct(); - ShowWindows(&sFriendList->unk358.s0.windows, FALSE, FALSE); - sFriendList->unk358.s0.input.totalEntriesCount = sub_8023BD8(); - MenuUpdatePagesData(&sFriendList->unk358.s0.input); + ShowWindows(&sFriendList->unk358.m.windows, FALSE, FALSE); + sFriendList->unk358.m.input.totalEntriesCount = sub_8023BD8(); + MenuUpdatePagesData(&sFriendList->unk358.m.input); SetUpWindowHeader(); FriendList_ShowWindow(); if (addCursor) { - AddMenuCursorSprite(&sFriendList->unk358.s0.input); + AddMenuCursorSprite(&sFriendList->unk358.m.input); } } @@ -197,11 +197,11 @@ void FriendList_Free(void) if (sFriendList != NULL) { gUnknown_203B2A0 = sFriendList->unk0; gUnknown_203B2A4 = sFriendList->sortMethod; - gUnknown_203B2A8 = sFriendList->unk358.s0.input.menuIndex; - gUnknown_203B2AA = sFriendList->unk358.s0.input.currPage; - sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sDummyWinTemplate; + gUnknown_203B2A8 = sFriendList->unk358.m.input.menuIndex; + gUnknown_203B2AA = sFriendList->unk358.m.input.currPage; + sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId] = sDummyWinTemplate; ResetUnusedInputStruct(); - ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE); + ShowWindows(&sFriendList->unk358.m.windows, TRUE, TRUE); MemoryFree(sFriendList); sFriendList = NULL; } @@ -229,7 +229,7 @@ static void SetUpWindowHeader(void) break; } - SUB_80095E4_CALL_2(sFriendList->unk358.s0); + UPDATE_MENU_WINDOW_HEIGHT_2(sFriendList->unk358.m); } void FriendList_ShowWindow(void) @@ -239,27 +239,27 @@ void FriendList_ShowWindow(void) u8 nameTxtBuff[POKEMON_NAME_LENGTH * 2]; u8 txtBuff3[20]; - CallPrepareTextbox_8008C54(sFriendList->unk358.s0.winId); - sub_80073B8(sFriendList->unk358.s0.winId); + CallPrepareTextbox_8008C54(sFriendList->unk358.m.menuWinId); + sub_80073B8(sFriendList->unk358.m.menuWinId); switch (sFriendList->unk0) { case 2: sub_80920D8(winTxtBuff); - PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.s0.winId, '\0'); + PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.m.menuWinId, '\0'); break; case 4: - PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.s0.winId, '\0'); + PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.m.menuWinId, '\0'); x = (sFriendList->unk358.header.width * 8) + 4; - sub_8012BC4(x, 0, sFriendList->unk358.s0.input.currPage + 1, 2, 7, sFriendList->unk358.s0.winId); + sub_8012BC4(x, 0, sFriendList->unk358.m.input.currPage + 1, 2, 7, sFriendList->unk358.m.menuWinId); break; default: - PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.s0.winId, '\0'); + PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.m.menuWinId, '\0'); x = (sFriendList->unk358.header.width * 8) + 4; - sub_8012BC4(x, 0, sFriendList->unk358.s0.input.currPage + 1, 2, 7, sFriendList->unk358.s0.winId); + sub_8012BC4(x, 0, sFriendList->unk358.m.input.currPage + 1, 2, 7, sFriendList->unk358.m.menuWinId); break; } - for (i = 0; i < sFriendList->unk358.s0.input.currPageEntries; i++) { - s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.currPage * sFriendList->unk358.s0.input.entriesPerPage) + i]; + for (i = 0; i < sFriendList->unk358.m.input.currPageEntries; i++) { + s32 id = sFriendList->unk1A[(sFriendList->unk358.m.input.currPage * sFriendList->unk358.m.input.entriesPerPage) + i]; PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id]; u8 color = 7; @@ -294,9 +294,9 @@ void FriendList_ShowWindow(void) StrncpyCustom(nameTxtBuff, pokePtr->name, POKEMON_NAME_LENGTH); sub_808D930(txtBuff3, pokePtr->speciesNum); sprintfStatic(winTxtBuff, _("{color}%c%s{reset}"), color, nameTxtBuff); - PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.s0.input, i), winTxtBuff, sFriendList->unk358.s0.winId, '\0'); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.m.input, i), winTxtBuff, sFriendList->unk358.m.menuWinId, '\0'); } - sub_80073E0(sFriendList->unk358.s0.winId); + sub_80073E0(sFriendList->unk358.m.menuWinId); } static s32 sub_8023F8C(void) @@ -468,7 +468,7 @@ UNUSED static PokemonStruct1 *sub_80243E8(void) { u8 buffer[40]; u8 nameBuffer[20]; - PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.s0.input)]]; + PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.m.input)]]; StrncpyCustom(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); sprintfStatic(buffer, "%s", nameBuffer); diff --git a/src/hints_menu1.c b/src/hints_menu1.c index 5848f207b..dceeb3f47 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -1,6 +1,6 @@ #include "global.h" #include "globaldata.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "common_strings.h" #include "hints_menu1.h" @@ -10,7 +10,7 @@ #include "text_1.h" #include "text_2.h" -static EWRAM_INIT struct_Sub80095E4 *sUnknown_203B264 = {NULL}; +static EWRAM_INIT MenuWindow *sUnknown_203B264 = {NULL}; #include "data/hints_menu1.h" @@ -23,11 +23,11 @@ bool8 sub_801E3F0(u32 a0) if (sUnknown_203B264 == NULL) sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8); - sUnknown_203B264->winId = a0; - sUnknown_203B264->unk38 = &sUnknown_203B264->windows.id[a0]; + sUnknown_203B264->menuWinId = a0; + sUnknown_203B264->menuWindow = &sUnknown_203B264->windows.id[a0]; RestoreSavedWindows(&sUnknown_203B264->windows); - sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0BC; - sub_8012D08(sUnknown_203B264->unk38, 10); + sUnknown_203B264->windows.id[sUnknown_203B264->menuWinId] = sUnknown_80DC0BC; + sub_8012D08(sUnknown_203B264->menuWindow, 10); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE); CreateMenuOnWindow(&sUnknown_203B264->input, 5, 10, a0); @@ -86,7 +86,7 @@ void CreateHintSelectionScreen(bool8 cursorSprite) void sub_801E54C(void) { if (sUnknown_203B264 != NULL) { - sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0A0; + sUnknown_203B264->windows.id[sUnknown_203B264->menuWinId] = sUnknown_80DC0A0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE); MemoryFree(sUnknown_203B264); @@ -96,7 +96,7 @@ void sub_801E54C(void) static void sub_801E594(void) { - SUB_80095E4_CALL(*sUnknown_203B264); + UPDATE_MENU_WINDOW_HEIGHT(*sUnknown_203B264); } static void DrawHintSelectionMenu(void) @@ -104,14 +104,14 @@ static void DrawHintSelectionMenu(void) s32 hintIndex; s32 y; - CallPrepareTextbox_8008C54(sUnknown_203B264->winId); - sub_80073B8(sUnknown_203B264->winId); - PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->winId, 0); + CallPrepareTextbox_8008C54(sUnknown_203B264->menuWinId); + sub_80073B8(sUnknown_203B264->menuWinId); + PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->menuWinId, 0); for (hintIndex = 0; hintIndex < HINT_MAX; hintIndex++) { y = GetMenuEntryYCoord(&sUnknown_203B264->input, hintIndex); - PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->winId, 0); + PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->menuWinId, 0); } - sub_80073E0(sUnknown_203B264->winId); + sub_80073E0(sUnknown_203B264->menuWinId); } diff --git a/src/hints_menu2.c b/src/hints_menu2.c index d1ef1c5bc..627e8995a 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -1,6 +1,6 @@ #include "global.h" #include "globaldata.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "common_strings.h" #include "hints_menu2.h" @@ -9,7 +9,7 @@ #include "menu_input.h" #include "text_1.h" -static EWRAM_INIT struct_Sub80095E4_2 *sUnknown_203B268 = {NULL}; +static EWRAM_INIT MenuHeaderWindow *sUnknown_203B268 = {NULL}; #include "data/hints_menu2.h" @@ -20,16 +20,16 @@ static void sub_801E76C(void); bool8 CreateHintDisplayScreen(u32 index) { - sUnknown_203B268 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); - sUnknown_203B268->s0.winId = 0; - sUnknown_203B268->s0.unk38 = &sUnknown_203B268->s0.windows.id[0]; - RestoreSavedWindows(&sUnknown_203B268->s0.windows); - sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0FC; - sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->header; + sUnknown_203B268 = MemoryAlloc(sizeof(MenuHeaderWindow), 8); + sUnknown_203B268->m.menuWinId = 0; + sUnknown_203B268->m.menuWindow = &sUnknown_203B268->m.windows.id[0]; + RestoreSavedWindows(&sUnknown_203B268->m.windows); + sUnknown_203B268->m.windows.id[sUnknown_203B268->m.menuWinId] = sUnknown_80DC0FC; + sUnknown_203B268->m.menuWindow->header = &sUnknown_203B268->header; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId); - sUnknown_203B268->s0.input.currPage = index; + ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sUnknown_203B268->m.input, 5, 1, sUnknown_203B268->m.menuWinId); + sUnknown_203B268->m.input.currPage = index; sub_801E714(); return TRUE; @@ -37,7 +37,7 @@ bool8 CreateHintDisplayScreen(u32 index) u32 HandleHintDisplayScreenInput(void) { - switch (GetKeyPress(&sUnknown_203B268->s0.input)) { + switch (GetKeyPress(&sUnknown_203B268->m.input)) { case 2: PlayMenuSoundEffect(1); return 2; @@ -45,7 +45,7 @@ u32 HandleHintDisplayScreenInput(void) PlayMenuSoundEffect(0); return 3; default: - if (MenuCursorUpdateOnlyLeftRight(&sUnknown_203B268->s0.input)) { + if (MenuCursorUpdateOnlyLeftRight(&sUnknown_203B268->m.input)) { sub_801E714(); return 1; } @@ -62,9 +62,9 @@ static void sub_801E714(void) void DestroyHintDisplayScreen(void) { if (sUnknown_203B268 != NULL) { - sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0E4; + sUnknown_203B268->m.windows.id[sUnknown_203B268->m.menuWinId] = sUnknown_80DC0E4; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); + ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE); MemoryFree(sUnknown_203B268); sUnknown_203B268 = NULL; } @@ -72,18 +72,18 @@ void DestroyHintDisplayScreen(void) static void sub_801E76C(void) { - sUnknown_203B268->header.count = sUnknown_203B268->s0.input.pagesCount; - sUnknown_203B268->header.currId = sUnknown_203B268->s0.input.currPage; + sUnknown_203B268->header.count = sUnknown_203B268->m.input.pagesCount; + sUnknown_203B268->header.currId = sUnknown_203B268->m.input.currPage; sUnknown_203B268->header.width = 15; sUnknown_203B268->header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); + ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE); } static void DisplayChosenHint(void) { - sub_80073B8(sUnknown_203B268->s0.winId); - PrintStringOnWindow((sUnknown_203B268->s0.input.currPage * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.currPage].heading, sUnknown_203B268->s0.winId, 0); - PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.currPage].body, sUnknown_203B268->s0.winId, 0); - sub_80073E0(sUnknown_203B268->s0.winId); + sub_80073B8(sUnknown_203B268->m.menuWinId); + PrintStringOnWindow((sUnknown_203B268->m.input.currPage * 8) + 16, 0, gCommonHints[sUnknown_203B268->m.input.currPage].heading, sUnknown_203B268->m.menuWinId, 0); + PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->m.input.currPage].body, sUnknown_203B268->m.menuWinId, 0); + sub_80073E0(sUnknown_203B268->m.menuWinId); } diff --git a/src/iq_skill_list_menu.c b/src/iq_skill_list_menu.c index 32e002e99..e66ed7726 100644 --- a/src/iq_skill_list_menu.c +++ b/src/iq_skill_list_menu.c @@ -30,15 +30,15 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2) sIQSkillListMenu->species = species_s32; sIQSkillListMenu->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; sIQSkillListMenu->numIQSkills = GetNumAvailableIQSkills(sIQSkillListMenu->iqSkills, sIQSkillListMenu->pokeStruct->IQ); - sIQSkillListMenu->s24.s0.winId = index; - sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.windows.id[index]; - RestoreSavedWindows(&sIQSkillListMenu->s24.s0.windows); - sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDF0; - sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.header; - sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2); + sIQSkillListMenu->s24.m.menuWinId = index; + sIQSkillListMenu->s24.m.menuWindow = &sIQSkillListMenu->s24.m.windows.id[index]; + RestoreSavedWindows(&sIQSkillListMenu->s24.m.windows); + sIQSkillListMenu->s24.m.windows.id[sIQSkillListMenu->s24.m.menuWinId] = sUnknown_80DBDF0; + sIQSkillListMenu->s24.m.menuWindow->header = &sIQSkillListMenu->s24.header; + sub_8012D08(sIQSkillListMenu->s24.m.menuWindow, a2); ResetUnusedInputStruct(); - ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index); + ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sIQSkillListMenu->s24.m.input, sIQSkillListMenu->numIQSkills, a2, index); sub_801C440(); BuildIQSkillList(); return TRUE; @@ -47,11 +47,11 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2) u32 HandleIQSkillListMenuInput(bool8 a0) { if (!a0) { - sub_8013660(&sIQSkillListMenu->s24.s0.input); + sub_8013660(&sIQSkillListMenu->s24.m.input); return 0; } - switch (GetKeyPress(&sIQSkillListMenu->s24.s0.input)) { + switch (GetKeyPress(&sIQSkillListMenu->s24.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -62,7 +62,7 @@ u32 HandleIQSkillListMenuInput(bool8 a0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&sIQSkillListMenu->s24.s0.input, 1) != 0) { + if (MenuCursorUpdate(&sIQSkillListMenu->s24.m.input, 1) != 0) { sub_801C440(); BuildIQSkillList(); return 1; @@ -73,28 +73,28 @@ u32 HandleIQSkillListMenuInput(bool8 a0) s32 GetIQSkillSelection(void) { - return GET_CURRENT_MENU_ENTRY(sIQSkillListMenu->s24.s0.input); + return GET_CURRENT_MENU_ENTRY(sIQSkillListMenu->s24.m.input); } void RedrawIQSkillListMenu(bool8 addCursor) { ResetUnusedInputStruct(); - ShowWindows(&sIQSkillListMenu->s24.s0.windows, FALSE, FALSE); - sIQSkillListMenu->s24.s0.input.totalEntriesCount = sIQSkillListMenu->numIQSkills; - MenuUpdatePagesData(&sIQSkillListMenu->s24.s0.input); + ShowWindows(&sIQSkillListMenu->s24.m.windows, FALSE, FALSE); + sIQSkillListMenu->s24.m.input.totalEntriesCount = sIQSkillListMenu->numIQSkills; + MenuUpdatePagesData(&sIQSkillListMenu->s24.m.input); sub_801C440(); BuildIQSkillList(); if (addCursor) - AddMenuCursorSprite(&sIQSkillListMenu->s24.s0.input); + AddMenuCursorSprite(&sIQSkillListMenu->s24.m.input); } void CleanIQSkillListMenu(void) { if (sIQSkillListMenu != NULL) { - sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDD8; + sIQSkillListMenu->s24.m.windows.id[sIQSkillListMenu->s24.m.menuWinId] = sUnknown_80DBDD8; ResetUnusedInputStruct(); - ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); + ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE); MemoryFree(sIQSkillListMenu); sIQSkillListMenu = NULL; } @@ -102,13 +102,13 @@ void CleanIQSkillListMenu(void) static void sub_801C440(void) { - sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.s0.input.pagesCount; - sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.s0.input.currPage; + sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.m.input.pagesCount; + sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.m.input.currPage; sIQSkillListMenu->s24.header.width = 10; sIQSkillListMenu->s24.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); - SUB_80095E4_CALL_2(sIQSkillListMenu->s24.s0); + ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE); + UPDATE_MENU_WINDOW_HEIGHT_2(sIQSkillListMenu->s24.m); } void BuildIQSkillList(void) @@ -119,21 +119,21 @@ void BuildIQSkillList(void) u32 skillIndex; s32 counter; - CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.winId); - sub_80073B8(sIQSkillListMenu->s24.s0.winId); - x = sIQSkillListMenu->s24.s0.input.currPage * 8; + CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.m.menuWinId); + sub_80073B8(sIQSkillListMenu->s24.m.menuWinId); + x = sIQSkillListMenu->s24.m.input.currPage * 8; x2 = x; x2 += 10; - PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.winId, 0); + PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.m.menuWinId, 0); x += 4; x2 = x + sIQSkillListMenu->s24.header.width * 8; - sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.currPage + 1, 1, 7, sIQSkillListMenu->s24.s0.winId); + sub_8012BC4(x2, 0, sIQSkillListMenu->s24.m.input.currPage + 1, 1, 7, sIQSkillListMenu->s24.m.menuWinId); - for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.currPageEntries; counter++) { - skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.currPage * sIQSkillListMenu->s24.s0.input.entriesPerPage) + counter]; + for (counter = 0; counter < sIQSkillListMenu->s24.m.input.currPageEntries; counter++) { + skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.m.input.currPage * sIQSkillListMenu->s24.m.input.entriesPerPage) + counter]; - y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.s0.input, counter); + y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.m.input, counter); strncpy(gFormatBuffer_Items[1], GetIQSkillName(skillIndex), 80); if (IsIQSkillSet(&sIQSkillListMenu->pokeStruct->IQSkills, 1 << skillIndex)) @@ -141,10 +141,10 @@ void BuildIQSkillList(void) else strcpy(gFormatBuffer_Items[1] - 80, sUnknown_80DBE18); - PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.winId, 0); + PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.m.menuWinId, 0); } - sub_80073E0(sIQSkillListMenu->s24.s0.winId); + sub_80073E0(sIQSkillListMenu->s24.m.menuWinId); } bool8 HasNoAvailIQSkills(s16 species) diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index ed0e6473a..089cb7a05 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "constants/input.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "code_800D090.h" #include "music_util.h" #include "input.h" @@ -12,7 +12,7 @@ #include "text_1.h" #include "text_2.h" -static EWRAM_INIT struct_Sub80095E4_2 *gUnknown_203B214 = {NULL}; +static EWRAM_INIT MenuHeaderWindow *gUnknown_203B214 = {NULL}; static EWRAM_INIT u16 gUnknown_203B218 = {0}; #include "data/kecleon_bros2.h" @@ -26,16 +26,16 @@ bool8 sub_8019E40(u32 r0) return FALSE; gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8); - gUnknown_203B214->s0.winId = r0; - gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId]; - RestoreSavedWindows(&gUnknown_203B214->s0.windows); - gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8CC; - gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->header; + gUnknown_203B214->m.menuWinId = r0; + gUnknown_203B214->m.menuWindow = &gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId]; + RestoreSavedWindows(&gUnknown_203B214->m.windows); + gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId] = sUnknown_80DB8CC; + gUnknown_203B214->m.menuWindow->header = &gUnknown_203B214->header; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0); - gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218; - MenuUpdatePagesData(&gUnknown_203B214->s0.input); + ShowWindows(&gUnknown_203B214->m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B214->m.input, CountKecleonShopItems(), 10, r0); + gUnknown_203B214->m.input.menuIndex = gUnknown_203B218; + MenuUpdatePagesData(&gUnknown_203B214->m.input); sub_801A064(); sub_801A0D8(); return TRUE; @@ -48,11 +48,11 @@ u32 sub_8019EDC(bool8 r0) BulkItem *item; if (!r0) { - sub_8013660(&gUnknown_203B214->s0.input); + sub_8013660(&gUnknown_203B214->m.input); return 0; } - switch (GetKeyPress(&gUnknown_203B214->s0.input)) { + switch (GetKeyPress(&gUnknown_203B214->m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -70,7 +70,7 @@ u32 sub_8019EDC(bool8 r0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&gUnknown_203B214->s0.input, 1) != FALSE) { + if (MenuCursorUpdate(&gUnknown_203B214->m.input, 1) != FALSE) { sub_801A064(); sub_801A0D8(); return 1; @@ -82,30 +82,30 @@ u32 sub_8019EDC(bool8 r0) // arm9.bin::02025798 u8 sub_8019FB0(void) { - return GET_CURRENT_MENU_ENTRY(gUnknown_203B214->s0.input); + return GET_CURRENT_MENU_ENTRY(gUnknown_203B214->m.input); } // arm9.bin::02025738 void sub_8019FCC(bool8 r0) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B214->s0.windows, FALSE, FALSE); - gUnknown_203B214->s0.input.totalEntriesCount = CountKecleonShopItems(); - MenuUpdatePagesData(&gUnknown_203B214->s0.input); + ShowWindows(&gUnknown_203B214->m.windows, FALSE, FALSE); + gUnknown_203B214->m.input.totalEntriesCount = CountKecleonShopItems(); + MenuUpdatePagesData(&gUnknown_203B214->m.input); sub_801A064(); sub_801A0D8(); if (r0) - AddMenuCursorSprite(&gUnknown_203B214->s0.input); + AddMenuCursorSprite(&gUnknown_203B214->m.input); } // arm9.bin::020256A8 void sub_801A010(void) { if (gUnknown_203B214 != NULL) { - gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex; - gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8B4; + gUnknown_203B218 = gUnknown_203B214->m.input.menuIndex; + gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId] = sUnknown_80DB8B4; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B214->m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B214); gUnknown_203B214 = NULL; } @@ -113,12 +113,12 @@ void sub_801A010(void) static void sub_801A064(void) { - gUnknown_203B214->header.count = gUnknown_203B214->s0.input.pagesCount; - gUnknown_203B214->header.currId = gUnknown_203B214->s0.input.currPage; + gUnknown_203B214->header.count = gUnknown_203B214->m.input.pagesCount; + gUnknown_203B214->header.currId = gUnknown_203B214->m.input.currPage; gUnknown_203B214->header.width = 10; gUnknown_203B214->header.f3 = 0; - SUB_80095E4_CALL(gUnknown_203B214->s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B214->m); } // arm9.bin::02025480 @@ -134,12 +134,12 @@ void sub_801A0D8(void) Item item; u8 temp_calc; - CallPrepareTextbox_8008C54(gUnknown_203B214->s0.winId); - sub_80073B8(gUnknown_203B214->s0.winId); - PrintStringOnWindow((gUnknown_203B214->s0.input.currPage * 8) + 10, 0, sGoods, gUnknown_203B214->s0.winId, 0); + CallPrepareTextbox_8008C54(gUnknown_203B214->m.menuWinId); + sub_80073B8(gUnknown_203B214->m.menuWinId); + PrintStringOnWindow((gUnknown_203B214->m.input.currPage * 8) + 10, 0, sGoods, gUnknown_203B214->m.menuWinId, 0); - for (index = 0; index < gUnknown_203B214->s0.input.currPageEntries; index++) { - temp_calc = (gUnknown_203B214->s0.input.currPage * gUnknown_203B214->s0.input.entriesPerPage) + index; + for (index = 0; index < gUnknown_203B214->m.input.currPageEntries; index++) { + temp_calc = (gUnknown_203B214->m.input.currPage * gUnknown_203B214->m.input.entriesPerPage) + index; heldItem = GetKecleonShopItem(temp_calc); item.id = heldItem->id; item.quantity = heldItem->quantity; @@ -152,15 +152,15 @@ void sub_801A0D8(void) buyPrice = GetStackBuyPrice(&item); if (buyPrice <= gTeamInventoryRef->teamMoney) { - y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index); - PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.winId, 0); + y = GetMenuEntryYCoord(&gUnknown_203B214->m.input, index); + PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->m.menuWinId, 0); } else { sprintfStatic(auStack112, sFmtRed, auStack204); - y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index); - PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.winId, 0); + y = GetMenuEntryYCoord(&gUnknown_203B214->m.input, index); + PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->m.menuWinId, 0); } } - sub_80073E0(gUnknown_203B214->s0.winId); + sub_80073E0(gUnknown_203B214->m.menuWinId); } diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index b72b70b29..31306fe36 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "constants/input.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "code_800D090.h" #include "music_util.h" #include "input.h" @@ -12,7 +12,7 @@ #include "text_1.h" #include "text_2.h" -static EWRAM_INIT struct_Sub80095E4_2 *gUnknown_203B21C = {NULL}; +static EWRAM_INIT MenuHeaderWindow *gUnknown_203B21C = {NULL}; static EWRAM_INIT u16 gUnknown_203B220 = {0}; #include "data/kecleon_bros3.h" @@ -26,16 +26,16 @@ bool8 sub_801A20C(u32 r0) return FALSE; gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8); - gUnknown_203B21C->s0.winId = r0; - gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId]; - RestoreSavedWindows(&gUnknown_203B21C->s0.windows); - gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB914; - gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->header; + gUnknown_203B21C->m.menuWinId = r0; + gUnknown_203B21C->m.menuWindow = &gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId]; + RestoreSavedWindows(&gUnknown_203B21C->m.windows); + gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId] = sUnknown_80DB914; + gUnknown_203B21C->m.menuWindow->header = &gUnknown_203B21C->header; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0); - gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220; - MenuUpdatePagesData(&gUnknown_203B21C->s0.input); + ShowWindows(&gUnknown_203B21C->m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B21C->m.input, CountKecleonWareItems(), 10, r0); + gUnknown_203B21C->m.input.menuIndex = gUnknown_203B220; + MenuUpdatePagesData(&gUnknown_203B21C->m.input); sub_801A430(); sub_801A4A4(); return TRUE; @@ -47,11 +47,11 @@ u32 sub_801A2A8(bool8 r0) BulkItem *item; if (!r0) { - sub_8013660(&gUnknown_203B21C->s0.input); + sub_8013660(&gUnknown_203B21C->m.input); return 0; } - switch (GetKeyPress(&gUnknown_203B21C->s0.input)) { + switch (GetKeyPress(&gUnknown_203B21C->m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -70,7 +70,7 @@ u32 sub_801A2A8(bool8 r0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&gUnknown_203B21C->s0.input, 1) != 0) { + if (MenuCursorUpdate(&gUnknown_203B21C->m.input, 1) != 0) { sub_801A430(); sub_801A4A4(); return 1; @@ -82,30 +82,30 @@ u32 sub_801A2A8(bool8 r0) // arm9.bin::02025CC4 u8 sub_801A37C(void) { - return GET_CURRENT_MENU_ENTRY(gUnknown_203B21C->s0.input); + return GET_CURRENT_MENU_ENTRY(gUnknown_203B21C->m.input); } // arm9.bin::02025C64 void sub_801A398(bool8 r0) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B21C->s0.windows, FALSE, FALSE); - gUnknown_203B21C->s0.input.totalEntriesCount = CountKecleonWareItems(); - MenuUpdatePagesData(&gUnknown_203B21C->s0.input); + ShowWindows(&gUnknown_203B21C->m.windows, FALSE, FALSE); + gUnknown_203B21C->m.input.totalEntriesCount = CountKecleonWareItems(); + MenuUpdatePagesData(&gUnknown_203B21C->m.input); sub_801A430(); sub_801A4A4(); if (r0) - AddMenuCursorSprite(&gUnknown_203B21C->s0.input); + AddMenuCursorSprite(&gUnknown_203B21C->m.input); } // arm9.bin::02025BD4 void sub_801A3DC(void) { if (gUnknown_203B21C != NULL) { - gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex; - gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB8FC; + gUnknown_203B220 = gUnknown_203B21C->m.input.menuIndex; + gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId] = sUnknown_80DB8FC; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B21C->m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B21C); gUnknown_203B21C = NULL; } @@ -113,12 +113,12 @@ void sub_801A3DC(void) static void sub_801A430(void) { - gUnknown_203B21C->header.count = gUnknown_203B21C->s0.input.pagesCount; - gUnknown_203B21C->header.currId = gUnknown_203B21C->s0.input.currPage; + gUnknown_203B21C->header.count = gUnknown_203B21C->m.input.pagesCount; + gUnknown_203B21C->header.currId = gUnknown_203B21C->m.input.currPage; gUnknown_203B21C->header.width = 10; gUnknown_203B21C->header.f3 = 0; - SUB_80095E4_CALL(gUnknown_203B21C->s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B21C->m); } // arm9.bin::020259AC @@ -134,12 +134,12 @@ void sub_801A4A4(void) Item item; u8 temp_calc; - CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.winId); - sub_80073B8(gUnknown_203B21C->s0.winId); - PrintStringOnWindow(gUnknown_203B21C->s0.input.currPage * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.winId, 0); + CallPrepareTextbox_8008C54(gUnknown_203B21C->m.menuWinId); + sub_80073B8(gUnknown_203B21C->m.menuWinId); + PrintStringOnWindow(gUnknown_203B21C->m.input.currPage * 8 + 10, 0, sGoods, gUnknown_203B21C->m.menuWinId, 0); - for (index = 0; index < gUnknown_203B21C->s0.input.currPageEntries; index++) { - temp_calc = (gUnknown_203B21C->s0.input.currPage * gUnknown_203B21C->s0.input.entriesPerPage) + index; + for (index = 0; index < gUnknown_203B21C->m.input.currPageEntries; index++) { + temp_calc = (gUnknown_203B21C->m.input.currPage * gUnknown_203B21C->m.input.entriesPerPage) + index; heldItem = GetKecleonWareItem(temp_calc); item.id = heldItem->id; item.quantity = heldItem->quantity; @@ -152,15 +152,15 @@ void sub_801A4A4(void) buyPrice = GetStackBuyPrice(&item); if (buyPrice <= gTeamInventoryRef->teamMoney) { - y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index); - PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.winId, 0); + y = GetMenuEntryYCoord(&gUnknown_203B21C->m.input, index); + PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->m.menuWinId, 0); } else { sprintfStatic(buffer2, sFmtRed, buffer1); - y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index); - PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.winId, 0); + y = GetMenuEntryYCoord(&gUnknown_203B21C->m.input, index); + PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->m.menuWinId, 0); } } - sub_80073E0(gUnknown_203B21C->s0.winId); + sub_80073E0(gUnknown_203B21C->m.menuWinId); } diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index e6a346d91..40187af42 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -3,7 +3,7 @@ #include "constants/input.h" #include "constants/item.h" #include "structs/menu.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "code_800D090.h" #include "music_util.h" #include "code_8099360.h" @@ -21,7 +21,7 @@ typedef struct unkStruct_203B224 { /* 0x0 */ u32 unk0; /* 0x4 */ u32 unk4[INVENTORY_SIZE]; - /* 0x54 */ struct_Sub80095E4_2 unk54; + /* 0x54 */ MenuHeaderWindow unk54; } unkStruct_203B224; static EWRAM_INIT unkStruct_203B224 *gUnknown_203B224 = {NULL}; @@ -47,23 +47,23 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4) gUnknown_203B224->unk0 = param_1; FillInventoryGaps(); sub_801AE84(); - gUnknown_203B224->unk54.s0.winId = param_2; - gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.windows.id[param_2]; - RestoreSavedWindows(&gUnknown_203B224->unk54.s0.windows); - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB95C; - gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.header; + gUnknown_203B224->unk54.m.menuWinId = param_2; + gUnknown_203B224->unk54.m.menuWindow = &gUnknown_203B224->unk54.m.windows.id[param_2]; + RestoreSavedWindows(&gUnknown_203B224->unk54.m.windows); + gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId] = sUnknown_80DB95C; + gUnknown_203B224->unk54.m.menuWindow->header = &gUnknown_203B224->unk54.header; if (param_3 != NULL) - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId].pos = *param_3; + gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId].pos = *param_3; - sub_8012D08(gUnknown_203B224->unk54.s0.unk38, param_4); + sub_8012D08(gUnknown_203B224->unk54.m.menuWindow, param_4); sub_8099690(1); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2); - gUnknown_203B224->unk54.s0.input.menuIndex = gUnknown_203B228; - gUnknown_203B224->unk54.s0.input.currPage = gUnknown_203B22A; - MenuUpdatePagesData(&gUnknown_203B224->unk54.s0.input); + ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B224->unk54.m.input, GetNumberOfFilledInventorySlots(), param_4, param_2); + gUnknown_203B224->unk54.m.input.menuIndex = gUnknown_203B228; + gUnknown_203B224->unk54.m.input.currPage = gUnknown_203B22A; + MenuUpdatePagesData(&gUnknown_203B224->unk54.m.input); sub_801A998(); sub_801A9E0(); return TRUE; @@ -76,11 +76,11 @@ u32 sub_801A6E8(bool8 param_1) Item item; if (param_1 == FALSE) { - sub_8013660(&gUnknown_203B224->unk54.s0.input); + sub_8013660(&gUnknown_203B224->unk54.m.input); return 0; } - switch (GetKeyPress(&gUnknown_203B224->unk54.s0.input)) { + switch (GetKeyPress(&gUnknown_203B224->unk54.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -125,7 +125,7 @@ u32 sub_801A6E8(bool8 param_1) if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index)) { PlayMenuSoundEffect(6); gUnknown_203B224->unk4[index] ^= 1; - MenuCursorUpdate(&gUnknown_203B224->unk54.s0.input, 0); + MenuCursorUpdate(&gUnknown_203B224->unk54.m.input, 0); sub_801A9E0(); return 1; } @@ -141,7 +141,7 @@ u32 sub_801A6E8(bool8 param_1) // NOTE: fallthrough needed here default: _0801A87C: - if (MenuCursorUpdate(&gUnknown_203B224->unk54.s0.input, 1) != FALSE) { + if (MenuCursorUpdate(&gUnknown_203B224->unk54.m.input, 1) != FALSE) { sub_801A998(); sub_801A9E0(); return 1; @@ -155,7 +155,7 @@ u32 sub_801A6E8(bool8 param_1) // arm9.bin::02026934 s32 sub_801A8AC(void) { - return GET_CURRENT_MENU_ENTRY(gUnknown_203B224->unk54.s0.input); + return GET_CURRENT_MENU_ENTRY(gUnknown_203B224->unk54.m.input); } // arm9.bin::020268C0 @@ -163,26 +163,26 @@ void sub_801A8D0(bool8 r0) { sub_8099690(1); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B224->unk54.s0.windows, FALSE, FALSE); + ShowWindows(&gUnknown_203B224->unk54.m.windows, FALSE, FALSE); FillInventoryGaps(); - gUnknown_203B224->unk54.s0.input.totalEntriesCount = GetNumberOfFilledInventorySlots(); - MenuUpdatePagesData(&gUnknown_203B224->unk54.s0.input); + gUnknown_203B224->unk54.m.input.totalEntriesCount = GetNumberOfFilledInventorySlots(); + MenuUpdatePagesData(&gUnknown_203B224->unk54.m.input); sub_801A998(); sub_801A9E0(); if (r0) - AddMenuCursorSprite(&gUnknown_203B224->unk54.s0.input); + AddMenuCursorSprite(&gUnknown_203B224->unk54.m.input); } // arm9.bin::02026818 void sub_801A928(void) { if (gUnknown_203B224 != NULL) { - gUnknown_203B228 = gUnknown_203B224->unk54.s0.input.menuIndex; - gUnknown_203B22A = gUnknown_203B224->unk54.s0.input.currPage; - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB944; + gUnknown_203B228 = gUnknown_203B224->unk54.m.input.menuIndex; + gUnknown_203B22A = gUnknown_203B224->unk54.m.input.currPage; + gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId] = sUnknown_80DB944; sub_8099690(0); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B224); gUnknown_203B224 = NULL; } @@ -190,12 +190,12 @@ void sub_801A928(void) static void sub_801A998(void) { - gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.s0.input.pagesCount; - gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.s0.input.currPage; + gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.m.input.pagesCount; + gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.m.input.currPage; gUnknown_203B224->unk54.header.width = 11; gUnknown_203B224->unk54.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE); } // arm9.bin::020262DC @@ -207,23 +207,23 @@ void sub_801A9E0(void) u8 buf1[80]; // sp4 Item item; // spC8 - CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.winId); - sub_80073B8(gUnknown_203B224->unk54.s0.winId); - x = gUnknown_203B224->unk54.s0.input.currPage * 8 + 10; + CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.m.menuWinId); + sub_80073B8(gUnknown_203B224->unk54.m.menuWinId); + x = gUnknown_203B224->unk54.m.input.currPage * 8 + 10; - if (gUnknown_203B224->unk54.s0.input.currPage == 0) - PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.winId, 0); + if (gUnknown_203B224->unk54.m.input.currPage == 0) + PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.m.menuWinId, 0); else - PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.m.menuWinId, 0); - for (r7 = 0; r7 < gUnknown_203B224->unk54.s0.input.currPageEntries; r7++) { - teamItemIndex = (gUnknown_203B224->unk54.s0.input.currPage * gUnknown_203B224->unk54.s0.input.entriesPerPage) + r7; + for (r7 = 0; r7 < gUnknown_203B224->unk54.m.input.currPageEntries; r7++) { + teamItemIndex = (gUnknown_203B224->unk54.m.input.currPage * gUnknown_203B224->unk54.m.input.entriesPerPage) + r7; item = gTeamInventoryRef->teamItems[teamItemIndex]; switch (gUnknown_203B224->unk0) { case 0: { sub_8090E14(buf1, &item, 0); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0); break; } case 1: @@ -236,7 +236,7 @@ void sub_801A9E0(void) item.flags = 1; sub_8090E14(buf1, &item, &thing); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0); break; } case 3: { @@ -249,10 +249,10 @@ void sub_801A9E0(void) sub_8090E14(buf1, &item, &thing); if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex)) - PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input,r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0); else { strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0); } break; } @@ -270,15 +270,15 @@ void sub_801A9E0(void) if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) { sprintfStatic(buf2, sFmtRed, buf1); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf2, gUnknown_203B224->unk54.m.menuWinId, 0); } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0); } else { sub_8090E14(buf1, &item, 0); strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0); } break; } @@ -293,20 +293,20 @@ void sub_801A9E0(void) sub_8090E14(buf1, &item, &thing); if (IsGummiItem(item.id)) - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0); else { strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0); } break; } } if (sub_801AED0(teamItemIndex) & 1) - sub_8007B7C(gUnknown_203B224->unk54.s0.winId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10); + sub_8007B7C(gUnknown_203B224->unk54.m.menuWinId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), (gUnknown_203B224->unk54.m.menuWindow->width - 2) * 8, 10); } - sub_80073E0(gUnknown_203B224->unk54.s0.winId); + sub_80073E0(gUnknown_203B224->unk54.m.menuWinId); } // arm9.bin::02026234 diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index 10d6bd53a..39a7cc209 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -31,19 +31,19 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3) if (sMakuhitaDojoWork2 == NULL) sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8); - sMakuhitaDojoWork2->s30.s0.winId = param_1; - sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.windows.id[param_1]; - RestoreSavedWindows(&sMakuhitaDojoWork2->s30.s0.windows); - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E0804; - sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.header; + sMakuhitaDojoWork2->s30.m.menuWinId = param_1; + sMakuhitaDojoWork2->s30.m.menuWindow = &sMakuhitaDojoWork2->s30.m.windows.id[param_1]; + RestoreSavedWindows(&sMakuhitaDojoWork2->s30.m.windows); + sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId] = sUnknown_80E0804; + sMakuhitaDojoWork2->s30.m.menuWindow->header = &sMakuhitaDojoWork2->s30.header; if (param_2 != NULL) - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId].pos = *param_2; + sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId].pos = *param_2; - sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3); + sub_8012D08(sMakuhitaDojoWork2->s30.m.menuWindow, param_3); ResetUnusedInputStruct(); - ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1); + ShowWindows(&sMakuhitaDojoWork2->s30.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.m.input, sub_8030668(), param_3, param_1); sub_80304C8(); MakuhitaDojo_DrawCourseList(); return TRUE; @@ -52,11 +52,11 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3) u32 sub_80303AC(bool8 param_1) { if (param_1 == FALSE) { - sub_8013660(&sMakuhitaDojoWork2->s30.s0.input); + sub_8013660(&sMakuhitaDojoWork2->s30.m.input); return 0; } - switch (GetKeyPress(&sMakuhitaDojoWork2->s30.s0.input)) { + switch (GetKeyPress(&sMakuhitaDojoWork2->s30.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -64,7 +64,7 @@ u32 sub_80303AC(bool8 param_1) PlayMenuSoundEffect(0); return 3; default: - if (MenuCursorUpdate(&sMakuhitaDojoWork2->s30.s0.input, 1)) { + if (MenuCursorUpdate(&sMakuhitaDojoWork2->s30.m.input, 1)) { sub_80304C8(); MakuhitaDojo_DrawCourseList(); return 1; @@ -76,25 +76,25 @@ u32 sub_80303AC(bool8 param_1) s16 sub_8030418(void) { - return sMakuhitaDojoWork2->unk0[GET_CURRENT_MENU_ENTRY(sMakuhitaDojoWork2->s30.s0.input)]; + return sMakuhitaDojoWork2->unk0[GET_CURRENT_MENU_ENTRY(sMakuhitaDojoWork2->s30.m.input)]; } UNUSED static void sub_8030444(bool8 a0) { - sMakuhitaDojoWork2->s30.s0.input.totalEntriesCount = sub_8030668(); - MenuUpdatePagesData(&sMakuhitaDojoWork2->s30.s0.input); + sMakuhitaDojoWork2->s30.m.input.totalEntriesCount = sub_8030668(); + MenuUpdatePagesData(&sMakuhitaDojoWork2->s30.m.input); sub_80304C8(); MakuhitaDojo_DrawCourseList(); if (a0) - AddMenuCursorSprite(&sMakuhitaDojoWork2->s30.s0.input); + AddMenuCursorSprite(&sMakuhitaDojoWork2->s30.m.input); } void sub_8030480(void) { if (sMakuhitaDojoWork2 != NULL) { - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E07EC; + sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId] = sUnknown_80E07EC; ResetUnusedInputStruct(); - ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE); + ShowWindows(&sMakuhitaDojoWork2->s30.m.windows, TRUE, TRUE); MemoryFree(sMakuhitaDojoWork2); sMakuhitaDojoWork2 = NULL; } @@ -107,7 +107,7 @@ static void sub_80304C8(void) sMakuhitaDojoWork2->s30.header.width = 8; sMakuhitaDojoWork2->s30.header.f3 = 0; - SUB_80095E4_CALL(sMakuhitaDojoWork2->s30.s0); + UPDATE_MENU_WINDOW_HEIGHT(sMakuhitaDojoWork2->s30.m); } static void MakuhitaDojo_DrawCourseList(void) @@ -120,27 +120,27 @@ static void MakuhitaDojo_DrawCourseList(void) s32 i; u8 buffer[256]; - CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.winId); - sub_80073B8(sMakuhitaDojoWork2->s30.s0.winId); - PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.winId, 0); - sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.currPage + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.winId); + CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.m.menuWinId); + sub_80073B8(sMakuhitaDojoWork2->s30.m.menuWinId); + PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.m.menuWinId, 0); + sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.m.input.currPage + 1, 2, 7, sMakuhitaDojoWork2->s30.m.menuWinId); - for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.currPageEntries; i++) { - iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.currPage * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage + i]; + for (i = 0; i < sMakuhitaDojoWork2->s30.m.input.currPageEntries; i++) { + iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.m.input.currPage * sMakuhitaDojoWork2->s30.m.input.entriesPerPage + i]; dungeonIndex = sub_80A2740(iVar6); mazeIndex = sub_80A2668(iVar6); - y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.s0.input, i); + y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.m.input, i); color = COLOR_WHITE_2; // COLOR_WHITE again? if ((bool8)IsMazeCompleted(mazeIndex)) { - PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.winId, 0); + PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.m.menuWinId, 0); color = COLOR_GREEN; } sprintfStatic(buffer, sFmtColor, color, GetDungeonName1(dungeonIndex)); - PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.winId, 0); + PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.m.menuWinId, 0); } - sub_80073E0(sMakuhitaDojoWork2->s30.s0.winId); + sub_80073E0(sMakuhitaDojoWork2->s30.m.menuWinId); } static s32 sub_8030668(void) diff --git a/src/menu_input.c b/src/menu_input.c index ce155842e..c898272da 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -1,16 +1,16 @@ #include "global.h" #include "globaldata.h" -#include "structs/axdata.h" -#include "structs/struct_sub80095e4.h" +#include "menu_input.h" +#include "text_3.h" #include "code_800D090.h" #include "music_util.h" #include "constants/colors.h" #include "constants/input.h" #include "input.h" -#include "menu_input.h" #include "sprite.h" #include "string_format.h" #include "text_2.h" +#include "text_1.h" #include "text_util.h" #include "util.h" @@ -230,12 +230,12 @@ void sub_8012CAC(WindowTemplate *a0, const MenuItem *a1) sub_8012D08(a0, count); } -void sub_8012D08(WindowTemplate *winTemplate, s32 param_2) +void sub_8012D08(WindowTemplate *winTemplate, s32 entriesCount) { s32 sVar2; s16 sVar3; - sVar2 = (s16) sub_80095E4(param_2, 12); + sVar2 = (s16) CalcEntriesTotalHeight(entriesCount, DEFAULT_MENU_ENTRY_HEIGHT); if (winTemplate->type == WINDOW_TYPE_WITH_HEADER) sVar2 = (s16)(sVar2 + 2); @@ -244,19 +244,18 @@ void sub_8012D08(WindowTemplate *winTemplate, s32 param_2) winTemplate->unk10 = sVar3; } -void sub_8012D34(WindowTemplate *winTemplate, s32 param_2) +void sub_8012D34(WindowTemplate *winTemplate, s32 entriesCount) { s32 sVar2; s16 sVar3; - sVar2 = (s16) sub_8009614(param_2, 24); + sVar2 = (s16) CalcTwoLinesEntriesTotalHeight(entriesCount, TWO_LINES_MENU_ENTRY_HEIGHT); if (winTemplate->type == WINDOW_TYPE_WITH_HEADER) sVar2 = (s16)(sVar2 + 2); sVar3 = sVar2; winTemplate->height = sVar3; winTemplate->unk10 = sVar3; - } // arm9.bin::0201C26C @@ -794,62 +793,57 @@ void sub_80137B0(MenuInputStruct *menuInput, s32 param_2) iVar2 = (gWindows[menuInput->windowId].height * 8 - iVar1) << 8; } - menuInput->unk10 = iVar2 / menuInput->entriesPerPage; + menuInput->entryHeight = iVar2 / menuInput->entriesPerPage; } -void sub_80137F8(MenuInputStruct *menuInput, u32 param_2) +static void SetEntryHeight(MenuInputStruct *menuInput, s32 height) { - menuInput->unk10 = param_2 << 8; + menuInput->entryHeight = height * 256; } // arm9.bin::0201AF70 s32 GetMenuEntryYCoord(MenuInputStruct *menuInput, s32 entryId) { s32 firstY = menuInput->firstEntryY; - s32 iVar1 = entryId * menuInput->unk10; + s32 height = entryId * menuInput->entryHeight; - return firstY + (iVar1 / 256); + return firstY + (height / 256); +} + +static inline void CreateMenuOnWindowInternal(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId, s32 entryHeight) +{ + menuInput->windowId = windowId; + menuInput->totalEntriesCount = totalCount; + menuInput->entriesPerPage = perPageCount; + menuInput->unk14.x = 0; + menuInput->unk24 = 0; + menuInput->menuIndex = 0; + menuInput->currPage = 0; + + ResetTouchScreenMenuInput(&menuInput->touchScreen); + MenuUpdatePagesData(menuInput); + SetEntryHeight(menuInput, entryHeight); } void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId) { - menuInput->windowId = windowId; - menuInput->totalEntriesCount = totalCount; - menuInput->entriesPerPage = perPageCount; - menuInput->unk14.x = 0; - menuInput->unk24 = 0; - menuInput->menuIndex = 0; - menuInput->currPage = 0; - - ResetTouchScreenMenuInput(&menuInput->touchScreen); - MenuUpdatePagesData(menuInput); - sub_80137F8(menuInput, 12); + CreateMenuOnWindowInternal(menuInput, totalCount, perPageCount, windowId, DEFAULT_MENU_ENTRY_HEIGHT); } -void CreateMenuOnWindow2(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId) +void CreateMenuOnWindowTwoLinesEntry(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId) { - menuInput->windowId = windowId; - menuInput->totalEntriesCount = totalCount; - menuInput->entriesPerPage = perPageCount; - menuInput->unk14.x = 0; - menuInput->unk24 = 0; - menuInput->menuIndex = 0; - menuInput->currPage = 0; - - ResetTouchScreenMenuInput(&menuInput->touchScreen); - MenuUpdatePagesData(menuInput); - sub_80137F8(menuInput, 24); + CreateMenuOnWindowInternal(menuInput, totalCount, perPageCount, windowId, TWO_LINES_MENU_ENTRY_HEIGHT); } -void sub_8013878(MenuInputStruct *menuInput, s32 param_2) +void MoveMenuToEntryId(MenuInputStruct *menuInput, s32 entryId) { - if (param_2 < 0) - param_2 = 0; - else if (param_2 >= menuInput->totalEntriesCount) - param_2 = menuInput->totalEntriesCount - 1; + if (entryId < 0) + entryId = 0; + else if (entryId >= menuInput->totalEntriesCount) + entryId = menuInput->totalEntriesCount - 1; - menuInput->currPage = param_2 / menuInput->entriesPerPage; - menuInput->menuIndex = param_2 % menuInput->entriesPerPage; + menuInput->currPage = entryId / menuInput->entriesPerPage; + menuInput->menuIndex = entryId % menuInput->entriesPerPage; menuInput->unk24 = 0; MenuUpdatePagesData(menuInput); } @@ -1191,6 +1185,6 @@ void sub_80140B4(WindowTemplates *a0) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_WINDOWS; i++) a0->id[i] = gUnknown_80D47C8[i]; } diff --git a/src/personality_test2.c b/src/personality_test2.c index 817b7f673..12183e53e 100644 --- a/src/personality_test2.c +++ b/src/personality_test2.c @@ -33,23 +33,23 @@ void CreatePartnerSelectionMenu(s16 starterID) sub_803CEAC(); gUnknown_203B404->StarterID = starterID_s32; - gUnknown_203B404->s18.s0.winId = 0; - gUnknown_203B404->s18.s0.unk38 = &gUnknown_203B404->s18.s0.windows.id[0]; + gUnknown_203B404->s18.m.menuWinId = 0; + gUnknown_203B404->s18.m.menuWindow = &gUnknown_203B404->s18.m.windows.id[0]; - gUnknown_203B404->s18.s0.windows.id[0] = gUnknown_80F4290; - gUnknown_203B404->s18.s0.windows.id[1] = gUnknown_80F42A8; - gUnknown_203B404->s18.s0.windows.id[2] = gUnknown_80F4278; - gUnknown_203B404->s18.s0.windows.id[3] = gUnknown_80F4278; + gUnknown_203B404->s18.m.windows.id[0] = gUnknown_80F4290; + gUnknown_203B404->s18.m.windows.id[1] = gUnknown_80F42A8; + gUnknown_203B404->s18.m.windows.id[2] = gUnknown_80F4278; + gUnknown_203B404->s18.m.windows.id[3] = gUnknown_80F4278; - gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.header; + gUnknown_203B404->s18.m.menuWindow->header = &gUnknown_203B404->s18.header; gUnknown_203B404->s18.header.count = 1; gUnknown_203B404->s18.header.currId = 0; gUnknown_203B404->s18.header.width = 6; gUnknown_203B404->s18.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId); + ShowWindows(&gUnknown_203B404->s18.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B404->s18.m.input, GetValidPartners(), 10, gUnknown_203B404->s18.m.menuWinId); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); } @@ -58,18 +58,18 @@ u16 HandlePartnerSelectionInput(void) { s32 partnerID; - partnerID = gUnknown_203B404->s18.s0.input.menuIndex; + partnerID = gUnknown_203B404->s18.m.input.menuIndex; gUnknown_203B404->unk16 = 0; - if (GetKeyPress(&gUnknown_203B404->s18.s0.input) == INPUT_A_BUTTON) { + if (GetKeyPress(&gUnknown_203B404->s18.m.input) == INPUT_A_BUTTON) { PlayMenuSoundEffect(0); - return gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.s0.input.menuIndex]; + return gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.m.input.menuIndex]; } - if (MenuCursorUpdate(&gUnknown_203B404->s18.s0.input, TRUE)) + if (MenuCursorUpdate(&gUnknown_203B404->s18.m.input, TRUE)) RedrawPartnerSelectionMenu(); - if (partnerID != gUnknown_203B404->s18.s0.input.menuIndex) + if (partnerID != gUnknown_203B404->s18.m.input.menuIndex) PersonalityTest_DisplayPartnerSprite(); if (gUnknown_203B404->unk16 != 0) { @@ -80,20 +80,20 @@ u16 HandlePartnerSelectionInput(void) UNUSED static void sub_803CE34(bool8 cursorSprite) { - gUnknown_203B404->s18.s0.input.totalEntriesCount = GetValidPartners(); - MenuUpdatePagesData(&gUnknown_203B404->s18.s0.input); + gUnknown_203B404->s18.m.input.totalEntriesCount = GetValidPartners(); + MenuUpdatePagesData(&gUnknown_203B404->s18.m.input); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); if (cursorSprite) - AddMenuCursorSprite(&gUnknown_203B404->s18.s0.input); + AddMenuCursorSprite(&gUnknown_203B404->s18.m.input); } void sub_803CE6C(void) { - gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.winId] = gUnknown_80F4278; + gUnknown_203B404->s18.m.windows.id[gUnknown_203B404->s18.m.menuWinId] = gUnknown_80F4278; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B404->s18.m.windows, TRUE, TRUE); sub_803CECC(); } @@ -122,20 +122,20 @@ static void RedrawPartnerSelectionMenu(void) const u8 *monName; s32 monCounter; - SUB_80095E4_CALL(gUnknown_203B404->s18.s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B404->s18.m); - CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.winId); - sub_80073B8(gUnknown_203B404->s18.s0.winId); - PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.winId, 0); + CallPrepareTextbox_8008C54(gUnknown_203B404->s18.m.menuWinId); + sub_80073B8(gUnknown_203B404->s18.m.menuWinId); + PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.m.menuWinId, 0); monCounter = 0; - while (monCounter < gUnknown_203B404->s18.s0.input.currPageEntries) { - yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.s0.input, monCounter); + while (monCounter < gUnknown_203B404->s18.m.input.currPageEntries) { + yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.m.input, monCounter); monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]); - PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.winId, 0); + PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.m.menuWinId, 0); monCounter++; } - sub_80073E0(gUnknown_203B404->s18.s0.winId); + sub_80073E0(gUnknown_203B404->s18.m.menuWinId); gUnknown_203B404->unk16 = 1; } @@ -147,7 +147,7 @@ static void PersonalityTest_DisplayPartnerSprite(void) const u8 *gfx; s32 emotionId; - partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.s0.input.menuIndex]; + partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.m.input.menuIndex]; CallPrepareTextbox_8008C54(1); sub_80073B8(1); faceFile = GetDialogueSpriteDataPtr(partnerID); diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index 1926093d0..de29d0131 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -32,17 +32,17 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2) if (sUnknown_203B2CC == NULL) sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8); - sUnknown_203B2CC->s38.winId = a0; - sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.windows.id[a0]; + sUnknown_203B2CC->s38.menuWinId = a0; + sUnknown_203B2CC->s38.menuWindow = &sUnknown_203B2CC->s38.windows.id[a0]; RestoreSavedWindows(&sUnknown_203B2CC->s38.windows); - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBEC; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId] = sUnknown_80DFBEC; if (a1 != NULL) - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId].pos = *a1; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId].pos = *a1; - sub_8012D08(sUnknown_203B2CC->s38.unk38, a2); + sub_8012D08(sUnknown_203B2CC->s38.menuWindow, a2); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE); @@ -111,7 +111,7 @@ void sub_802B81C(void) sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.currPage; - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBD0; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId] = sUnknown_80DFBD0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE); @@ -123,7 +123,7 @@ void sub_802B81C(void) static void sub_802B880(void) { - SUB_80095E4_CALL(sUnknown_203B2CC->s38); + UPDATE_MENU_WINDOW_HEIGHT(sUnknown_203B2CC->s38); } static void CreatePKMNNewsMenu(void) @@ -133,22 +133,22 @@ static void CreatePKMNNewsMenu(void) s32 new_index; u8 mailIndex; - CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.winId); - sub_80073B8(sUnknown_203B2CC->s38.winId); - PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.winId, 0); + CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.menuWinId); + sub_80073B8(sUnknown_203B2CC->s38.menuWinId); + PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.menuWinId, 0); - sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.currPage + 1, 2, 7, sUnknown_203B2CC->s38.winId); + sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.currPage + 1, 2, 7, sUnknown_203B2CC->s38.menuWinId); for (index = 0; index < sUnknown_203B2CC->s38.input.currPageEntries; index++) { y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index); new_index = (sUnknown_203B2CC->s38.input.currPage * sUnknown_203B2CC->s38.input.entriesPerPage) + index; mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index]; - sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId); + sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.menuWinId); sub_802BC7C(); - PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.winId, 0); + PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.menuWinId, 0); } - sub_80073E0(sUnknown_203B2CC->s38.winId); + sub_80073E0(sUnknown_203B2CC->s38.menuWinId); } static s32 GetNumPKMNNews(void) diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index db428c6f4..e18c2be7b 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -34,21 +34,21 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2) if (sUnknown_203B2D8 == NULL) sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8); - sUnknown_203B2D8->unk4.s0.winId = a0; - sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.windows.id[a0]; - RestoreSavedWindows(&sUnknown_203B2D8->unk4.s0.windows); - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC74; - sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.header; + sUnknown_203B2D8->unk4.m.menuWinId = a0; + sUnknown_203B2D8->unk4.m.menuWindow = &sUnknown_203B2D8->unk4.m.windows.id[a0]; + RestoreSavedWindows(&sUnknown_203B2D8->unk4.m.windows); + sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId] = sUnknown_80DFC74; + sUnknown_203B2D8->unk4.m.menuWindow->header = &sUnknown_203B2D8->unk4.header; if (a1 != NULL) - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId].pos = *a1; + sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId].pos = *a1; - sub_8012D34(sUnknown_203B2D8->unk4.s0.unk38, a2); + sub_8012D34(sUnknown_203B2D8->unk4.m.menuWindow, a2); ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE); - CreateMenuOnWindow2(&sUnknown_203B2D8->unk4.s0.input, CountEmptyMailSlots(), a2, a0); - sUnknown_203B2D8->unk4.s0.input.menuIndex = sUnknown_203B2DC; - MenuUpdatePagesData(&sUnknown_203B2D8->unk4.s0.input); + ShowWindows(&sUnknown_203B2D8->unk4.m.windows, TRUE, TRUE); + CreateMenuOnWindowTwoLinesEntry(&sUnknown_203B2D8->unk4.m.input, CountEmptyMailSlots(), a2, a0); + sUnknown_203B2D8->unk4.m.input.menuIndex = sUnknown_203B2DC; + MenuUpdatePagesData(&sUnknown_203B2D8->unk4.m.input); sub_802BF30(); CreateMailMenu(); return TRUE; @@ -57,11 +57,11 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2) u32 sub_802BDEC(bool8 a0) { if (!a0) { - sub_8013660(&sUnknown_203B2D8->unk4.s0.input); + sub_8013660(&sUnknown_203B2D8->unk4.m.input); return 0; } - switch (GetKeyPress(&sUnknown_203B2D8->unk4.s0.input)) { + switch (GetKeyPress(&sUnknown_203B2D8->unk4.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -72,7 +72,7 @@ u32 sub_802BDEC(bool8 a0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&sUnknown_203B2D8->unk4.s0.input, 1)) { + if (MenuCursorUpdate(&sUnknown_203B2D8->unk4.m.input, 1)) { sub_802BF30(); CreateMailMenu(); return 1; @@ -83,30 +83,30 @@ u32 sub_802BDEC(bool8 a0) u8 sub_802BE74(void) { - return sUnknown_203B2D8->unk0[GET_CURRENT_MENU_ENTRY(sUnknown_203B2D8->unk4.s0.input)]; + return sUnknown_203B2D8->unk0[GET_CURRENT_MENU_ENTRY(sUnknown_203B2D8->unk4.m.input)]; } void sub_802BE94(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, FALSE, FALSE); + ShowWindows(&sUnknown_203B2D8->unk4.m.windows, FALSE, FALSE); - sUnknown_203B2D8->unk4.s0.input.totalEntriesCount = CountEmptyMailSlots(); - MenuUpdatePagesData(&sUnknown_203B2D8->unk4.s0.input); + sUnknown_203B2D8->unk4.m.input.totalEntriesCount = CountEmptyMailSlots(); + MenuUpdatePagesData(&sUnknown_203B2D8->unk4.m.input); sub_802BF30(); CreateMailMenu(); if (cursorSprite) - AddMenuCursorSprite(&sUnknown_203B2D8->unk4.s0.input); + AddMenuCursorSprite(&sUnknown_203B2D8->unk4.m.input); } void sub_802BEDC(void) { if (sUnknown_203B2D8 != NULL) { - sUnknown_203B2DC = sUnknown_203B2D8->unk4.s0.input.menuIndex; - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC5C; + sUnknown_203B2DC = sUnknown_203B2D8->unk4.m.input.menuIndex; + sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId] = sUnknown_80DFC5C; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE); + ShowWindows(&sUnknown_203B2D8->unk4.m.windows, TRUE, TRUE); MemoryFree(sUnknown_203B2D8); sUnknown_203B2D8 = NULL; } @@ -118,7 +118,7 @@ static void sub_802BF30(void) sUnknown_203B2D8->unk4.header.currId = 0; sUnknown_203B2D8->unk4.header.width = 12; sUnknown_203B2D8->unk4.header.f3 = 0; - SUB_8009614_CALL(sUnknown_203B2D8->unk4.s0); + UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(sUnknown_203B2D8->unk4.m); } void CreateMailMenu(void) @@ -129,21 +129,21 @@ void CreateMailMenu(void) unkStruct_802C39C local; u8 buffer[128]; - CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.winId); - sub_80073B8(sUnknown_203B2D8->unk4.s0.winId); - PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.currPage * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.winId, 0); + CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.m.menuWinId); + sub_80073B8(sUnknown_203B2D8->unk4.m.menuWinId); + PrintStringOnWindow((sUnknown_203B2D8->unk4.m.input.currPage * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.m.menuWinId, 0); - for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.currPageEntries; i++) { - mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.currPage * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + i]); - local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId; - local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i); + for (i = 0; i < sUnknown_203B2D8->unk4.m.input.currPageEntries; i++) { + mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.m.input.currPage * sUnknown_203B2D8->unk4.m.input.entriesPerPage) + i]); + local.unk0[0] = sUnknown_203B2D8->unk4.m.menuWinId; + local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.m.input, i); if (mail->mailType == MAIL_TYPE_UNK1) { - y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i); - sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.winId); + y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.m.input, i); + sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.m.menuWinId); PrintPokeNameToBuffer(gFormatBuffer_Monsters[0], GetPlayerPokemonStruct()); sprintfStatic(buffer, GetPokemonMailHeadline(mail->dungeonSeed.location.floor), gFormatBuffer_Monsters[0]); - PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.winId, 0); + PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.m.menuWinId, 0); } else { sub_803B35C(mail, &local); @@ -154,7 +154,7 @@ void CreateMailMenu(void) } } - sub_80073E0(sUnknown_203B2D8->unk4.s0.winId); + sub_80073E0(sUnknown_203B2D8->unk4.m.menuWinId); } static s32 CountEmptyMailSlots(void) diff --git a/src/text_3.c b/src/text_3.c index 2b26f9192..0d3668bdd 100644 --- a/src/text_3.c +++ b/src/text_3.c @@ -487,32 +487,30 @@ UNUSED static void nullsub_174(void) #endif // arm9.bin::02003278 -s32 sub_80095E4(s32 a0, s32 a1) +s32 CalcEntriesTotalHeight(s32 entriesCount, s32 entryHeight) { - s32 r1; + s32 totalHeight; - if (a1 == 0) - a1 = 10; - r1 = a0 * a1; + if (entryHeight == 0) + entryHeight = 10; + totalHeight = entriesCount * entryHeight; - if ((r1 % 8) != 0) - return (r1 / 8) + 1; + if ((totalHeight % 8) != 0) + return (totalHeight / 8) + 1; else - return r1 / 8; + return totalHeight / 8; } // arm9.bin::02003238 -// Same as sub_80095E4 except it doesn't check for a1 == 0 -s32 sub_8009614(s32 a0, s32 a1) +// Same as CalcEntriesTotalHeight except it doesn't check for entryHeight == 0. Only called for menu windows which use TWO_LINES_MENU_ENTRY_HEIGHT +s32 CalcTwoLinesEntriesTotalHeight(s32 entriesCount, s32 entryHeight) { - s32 r1; + s32 totalHeight = entriesCount * entryHeight; - r1 = a0 * a1; - - if ((r1 % 8) != 0) - return (r1 / 8) + 1; + if ((totalHeight % 8) != 0) + return (totalHeight / 8) + 1; else - return r1 / 8; + return totalHeight / 8; } // arm9.bin::02003158 diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index 6f08d936e..ea3d3f2d5 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -30,19 +30,19 @@ bool8 sub_80211AC(u32 mode, u32 a1) sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8); sWigglytuffShop1Work->mode = mode; - sWigglytuffShop1Work->s40.s0.winId = a1; - sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId]; - RestoreSavedWindows(&sWigglytuffShop1Work->s40.s0.windows); - sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC47C; - sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.header; + sWigglytuffShop1Work->s40.m.menuWinId = a1; + sWigglytuffShop1Work->s40.m.menuWindow = &sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId]; + RestoreSavedWindows(&sWigglytuffShop1Work->s40.m.windows); + sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId] = sUnknown_80DC47C; + sWigglytuffShop1Work->s40.m.menuWindow->header = &sWigglytuffShop1Work->s40.header; ResetUnusedInputStruct(); - ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1); + ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&sWigglytuffShop1Work->s40.m.input, sub_8021664(), 10, a1); if (sUnknown_203B284 == sWigglytuffShop1Work->mode) { - sWigglytuffShop1Work->s40.s0.input.menuIndex = sUnknown_203B288; - sWigglytuffShop1Work->s40.s0.input.currPage = sUnknown_203B28A; - MenuUpdatePagesData(&sWigglytuffShop1Work->s40.s0.input); + sWigglytuffShop1Work->s40.m.input.menuIndex = sUnknown_203B288; + sWigglytuffShop1Work->s40.m.input.currPage = sUnknown_203B28A; + MenuUpdatePagesData(&sWigglytuffShop1Work->s40.m.input); } sub_8021410(); @@ -53,11 +53,11 @@ bool8 sub_80211AC(u32 mode, u32 a1) u32 sub_8021274(bool8 a0) { if (!a0) { - sub_8013660(&sWigglytuffShop1Work->s40.s0.input); + sub_8013660(&sWigglytuffShop1Work->s40.m.input); return 0; } - switch (GetKeyPress(&sWigglytuffShop1Work->s40.s0.input)) { + switch (GetKeyPress(&sWigglytuffShop1Work->s40.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -71,7 +71,7 @@ u32 sub_8021274(bool8 a0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&sWigglytuffShop1Work->s40.s0.input, 1) != 0) { + if (MenuCursorUpdate(&sWigglytuffShop1Work->s40.m.input, 1) != 0) { sub_8021410(); sub_8021494(); return 1; @@ -82,31 +82,31 @@ u32 sub_8021274(bool8 a0) u8 sub_802132C(void) { - return sWigglytuffShop1Work->friendAreas[GET_CURRENT_MENU_ENTRY(sWigglytuffShop1Work->s40.s0.input)]; + return sWigglytuffShop1Work->friendAreas[GET_CURRENT_MENU_ENTRY(sWigglytuffShop1Work->s40.m.input)]; } void sub_8021354(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, FALSE, FALSE); - sWigglytuffShop1Work->s40.s0.input.totalEntriesCount = sub_8021664(); - MenuUpdatePagesData(&sWigglytuffShop1Work->s40.s0.input); + ShowWindows(&sWigglytuffShop1Work->s40.m.windows, FALSE, FALSE); + sWigglytuffShop1Work->s40.m.input.totalEntriesCount = sub_8021664(); + MenuUpdatePagesData(&sWigglytuffShop1Work->s40.m.input); sub_8021410(); sub_8021494(); if (cursorSprite) - AddMenuCursorSprite(&sWigglytuffShop1Work->s40.s0.input); + AddMenuCursorSprite(&sWigglytuffShop1Work->s40.m.input); } void sub_80213A0(void) { if (sWigglytuffShop1Work) { sUnknown_203B284 = sWigglytuffShop1Work->mode; - sUnknown_203B288 = sWigglytuffShop1Work->s40.s0.input.menuIndex; - sUnknown_203B28A = sWigglytuffShop1Work->s40.s0.input.currPage; - sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC464; + sUnknown_203B288 = sWigglytuffShop1Work->s40.m.input.menuIndex; + sUnknown_203B28A = sWigglytuffShop1Work->s40.m.input.currPage; + sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId] = sUnknown_80DC464; ResetUnusedInputStruct(); - ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); + ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE); MemoryFree(sWigglytuffShop1Work); sWigglytuffShop1Work = NULL; } @@ -119,9 +119,9 @@ static void sub_8021410(void) sWigglytuffShop1Work->s40.header.width = 12; sWigglytuffShop1Work->s40.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); + ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE); - SUB_80095E4_CALL(sWigglytuffShop1Work->s40.s0); + UPDATE_MENU_WINDOW_HEIGHT(sWigglytuffShop1Work->s40.m); } void sub_8021494(void) @@ -131,38 +131,38 @@ void sub_8021494(void) u8 buffer1[80]; u8 buffer2[80]; - CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.winId); - sub_80073B8(sWigglytuffShop1Work->s40.s0.winId); - PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.winId, 0); + CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.m.menuWinId); + sub_80073B8(sWigglytuffShop1Work->s40.m.menuWinId); + PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.m.menuWinId, 0); - sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.currPage + 1, 1, 7, sWigglytuffShop1Work->s40.s0.winId); + sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.m.input.currPage + 1, 1, 7, sWigglytuffShop1Work->s40.m.menuWinId); - for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.currPageEntries; i++) { - friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.currPage * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + i]; + for (i = 0; i < sWigglytuffShop1Work->s40.m.input.currPageEntries; i++) { + friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.m.input.currPage * sWigglytuffShop1Work->s40.m.input.entriesPerPage) + i]; if (sWigglytuffShop1Work->mode == 2) { WriteFriendAreaName(buffer1, friendAreaIndex, TRUE); if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney) - PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.winId, 0); + PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer1, sWigglytuffShop1Work->s40.m.menuWinId, 0); else { sprintfStatic(buffer2, sFmtRedString, buffer1); - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer2, sWigglytuffShop1Work->s40.m.menuWinId, 0); } } else if (sWigglytuffShop1Work->mode == 0) { if (gFriendAreas[friendAreaIndex] == TRUE) - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.m.menuWinId, 0); else { sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex)); - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer2, sWigglytuffShop1Work->s40.m.menuWinId, 0); } } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.m.menuWinId, 0); } - sub_80073E0(sWigglytuffShop1Work->s40.s0.winId); + sub_80073E0(sWigglytuffShop1Work->s40.m.menuWinId); } static s32 sub_8021664(void) diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 8ddca1b4f..413b09e72 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "structs/str_802C39C.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "code_802DE84.h" #include "code_803B050.h" #include "common_strings.h" diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 1b11e160d..e59aa9d5b 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -3,7 +3,7 @@ #include "constants/input.h" #include "constants/wonder_mail.h" #include "structs/str_802C39C.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "code_8094F88.h" #include "input.h" @@ -21,7 +21,7 @@ struct unkStruct_203B320 // size: 0xC4 u8 unk0[0x20]; u32 wonderMailType; - struct_Sub80095E4_2 s28; + MenuHeaderWindow s28; }; static EWRAM_INIT struct unkStruct_203B320 *gUnknown_203B320 = {NULL}; @@ -85,21 +85,21 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3) gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 8); gUnknown_203B320->wonderMailType = wonderMailType; - gUnknown_203B320->s28.s0.winId = r1; + gUnknown_203B320->s28.m.menuWinId = r1; - gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId]; - RestoreSavedWindows(&gUnknown_203B320->s28.s0.windows); + gUnknown_203B320->s28.m.menuWindow = &gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId]; + RestoreSavedWindows(&gUnknown_203B320->s28.m.windows); - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E0854; - gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.header; + gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId] = gUnknown_80E0854; + gUnknown_203B320->s28.m.menuWindow->header = &gUnknown_203B320->s28.header; if (r2 != 0) - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId].pos = *r2; + gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId].pos = *r2; - sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3); + sub_8012D08(gUnknown_203B320->s28.m.menuWindow, r3); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); - CreateMenuOnWindow(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1); + ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE); + CreateMenuOnWindow(&gUnknown_203B320->s28.m.input, sub_8030A74(), r3, r1); sub_80308A0(); sub_803092C(); return 1; @@ -109,10 +109,10 @@ u32 sub_8030768(u8 r0) { if(r0 == 0) { - sub_8013660(&gUnknown_203B320->s28.s0.input); + sub_8013660(&gUnknown_203B320->s28.m.input); return 0; } - switch(GetKeyPress(&gUnknown_203B320->s28.s0.input)) + switch(GetKeyPress(&gUnknown_203B320->s28.m.input)) { case INPUT_START_BUTTON: PlayMenuSoundEffect(4); @@ -124,7 +124,7 @@ u32 sub_8030768(u8 r0) PlayMenuSoundEffect(0); return 3; default: - if(MenuCursorUpdate(&gUnknown_203B320->s28.s0.input, TRUE) != 0) + if(MenuCursorUpdate(&gUnknown_203B320->s28.m.input, TRUE) != 0) { sub_80308A0(); sub_803092C(); @@ -137,27 +137,27 @@ u32 sub_8030768(u8 r0) u8 sub_80307EC(void) { - return gUnknown_203B320->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B320->s28.s0.input)]; + return gUnknown_203B320->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B320->s28.m.input)]; } void sub_8030810(u8 r0) { - gUnknown_203B320->s28.s0.input.totalEntriesCount = sub_8030A74(); - MenuUpdatePagesData(&gUnknown_203B320->s28.s0.input); + gUnknown_203B320->s28.m.input.totalEntriesCount = sub_8030A74(); + MenuUpdatePagesData(&gUnknown_203B320->s28.m.input); sub_80308A0(); sub_803092C(); if(r0 != 0) - AddMenuCursorSprite(&gUnknown_203B320->s28.s0.input); + AddMenuCursorSprite(&gUnknown_203B320->s28.m.input); } void sub_803084C(void) { if(gUnknown_203B320 != NULL) { - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E083C; + gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId] = gUnknown_80E083C; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B320); gUnknown_203B320 = NULL; } @@ -170,14 +170,14 @@ u8 *sub_8030894(void) void sub_80308A0(void) { - gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.s0.input.pagesCount; - gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.s0.input.currPage; + gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.m.input.pagesCount; + gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.m.input.currPage; gUnknown_203B320->s28.header.width = 12; gUnknown_203B320->s28.header.f3 = 0; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE); - SUB_80095E4_CALL(gUnknown_203B320->s28.s0); + UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B320->s28.m); } void sub_803092C(void) @@ -188,20 +188,20 @@ void sub_803092C(void) s32 index; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.winId); - sub_80073B8(gUnknown_203B320->s28.s0.winId); - r4 = gUnknown_203B320->s28.s0.input.currPage * 8; + CallPrepareTextbox_8008C54(gUnknown_203B320->s28.m.menuWinId); + sub_80073B8(gUnknown_203B320->s28.m.menuWinId); + r4 = gUnknown_203B320->s28.m.input.currPage * 8; r5 = r4; r5 += 10; - PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.winId,0); + PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.m.menuWinId,0); r4 += 4; r5 = r4 + gUnknown_203B320->s28.header.width * 8; - sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.currPage + 1,1,7,gUnknown_203B320->s28.s0.winId); + sub_8012BC4(r5,0,gUnknown_203B320->s28.m.input.currPage + 1,1,7,gUnknown_203B320->s28.m.menuWinId); - for (index = 0; index < gUnknown_203B320->s28.s0.input.currPageEntries; index++) { - mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.currPage * gUnknown_203B320->s28.s0.input.entriesPerPage) + index]); - local.unk0[0] = gUnknown_203B320->s28.s0.winId; - local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index); + for (index = 0; index < gUnknown_203B320->s28.m.input.currPageEntries; index++) { + mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.m.input.currPage * gUnknown_203B320->s28.m.input.entriesPerPage) + index]); + local.unk0[0] = gUnknown_203B320->s28.m.menuWinId; + local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.m.input,index); local.mailTitleType = 7; local.mailMissionType = MISSION_TYPE_FRIEND_RESCUE; local.mailStatus = MAIL_STATUS_SUSPENDED; @@ -232,7 +232,7 @@ void sub_803092C(void) } CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B320->s28.s0.winId); + sub_80073E0(gUnknown_203B320->s28.m.menuWinId); } s32 sub_8030A74(void) diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 390e45ccb..84de4d660 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -28,22 +28,22 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2) if (gUnknown_203B2E0 == NULL) gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); - gUnknown_203B2E0->unk8.s0.winId = a0; - gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.windows.id[a0]; - RestoreSavedWindows(&gUnknown_203B2E0->unk8.s0.windows); + gUnknown_203B2E0->unk8.m.menuWinId = a0; + gUnknown_203B2E0->unk8.m.menuWindow = &gUnknown_203B2E0->unk8.m.windows.id[a0]; + RestoreSavedWindows(&gUnknown_203B2E0->unk8.m.windows); - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFCB4; - gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.header; + gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId] = sUnknown_80DFCB4; + gUnknown_203B2E0->unk8.m.menuWindow->header = &gUnknown_203B2E0->unk8.header; if (a1 != NULL) - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId].pos = *a1; + gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId].pos = *a1; - sub_8012D34(gUnknown_203B2E0->unk8.s0.unk38, a2); + sub_8012D34(gUnknown_203B2E0->unk8.m.menuWindow, a2); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE); - CreateMenuOnWindow2(&gUnknown_203B2E0->unk8.s0.input, CountPelipperBoardSlots(), a2, a0); - gUnknown_203B2E0->unk8.s0.input.menuIndex = gUnknown_203B2E4; - MenuUpdatePagesData(&gUnknown_203B2E0->unk8.s0.input); + ShowWindows(&gUnknown_203B2E0->unk8.m.windows, TRUE, TRUE); + CreateMenuOnWindowTwoLinesEntry(&gUnknown_203B2E0->unk8.m.input, CountPelipperBoardSlots(), a2, a0); + gUnknown_203B2E0->unk8.m.input.menuIndex = gUnknown_203B2E4; + MenuUpdatePagesData(&gUnknown_203B2E0->unk8.m.input); sub_802C328(); DrawPelipperBoardJobMenu(); return TRUE; @@ -52,11 +52,11 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2) u32 sub_802C1E4(bool8 a0) { if (!a0) { - sub_8013660(&gUnknown_203B2E0->unk8.s0.input); + sub_8013660(&gUnknown_203B2E0->unk8.m.input); return 0; } - switch (GetKeyPress(&gUnknown_203B2E0->unk8.s0.input)) { + switch (GetKeyPress(&gUnknown_203B2E0->unk8.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -67,7 +67,7 @@ u32 sub_802C1E4(bool8 a0) PlayMenuSoundEffect(4); return 4; default: - if (MenuCursorUpdate(&gUnknown_203B2E0->unk8.s0.input, 1)) { + if (MenuCursorUpdate(&gUnknown_203B2E0->unk8.m.input, 1)) { sub_802C328(); DrawPelipperBoardJobMenu(); return 1; @@ -78,29 +78,29 @@ u32 sub_802C1E4(bool8 a0) u8 sub_802C26C(void) { - return gUnknown_203B2E0->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E0->unk8.s0.input)]; + return gUnknown_203B2E0->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E0->unk8.m.input)]; } void sub_802C28C(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, FALSE, FALSE); - gUnknown_203B2E0->unk8.s0.input.totalEntriesCount = CountPelipperBoardSlots(); - MenuUpdatePagesData(&gUnknown_203B2E0->unk8.s0.input); + ShowWindows(&gUnknown_203B2E0->unk8.m.windows, FALSE, FALSE); + gUnknown_203B2E0->unk8.m.input.totalEntriesCount = CountPelipperBoardSlots(); + MenuUpdatePagesData(&gUnknown_203B2E0->unk8.m.input); sub_802C328(); DrawPelipperBoardJobMenu(); if (cursorSprite) - AddMenuCursorSprite(&gUnknown_203B2E0->unk8.s0.input); + AddMenuCursorSprite(&gUnknown_203B2E0->unk8.m.input); } void sub_802C2D4(void) { if (gUnknown_203B2E0 != NULL) { - gUnknown_203B2E4 = gUnknown_203B2E0->unk8.s0.input.menuIndex; - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFC9C; + gUnknown_203B2E4 = gUnknown_203B2E0->unk8.m.input.menuIndex; + gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId] = sUnknown_80DFC9C; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B2E0->unk8.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B2E0); gUnknown_203B2E0 = NULL; } @@ -108,12 +108,12 @@ void sub_802C2D4(void) static void sub_802C328(void) { - gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.s0.input.pagesCount; - gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.s0.input.currPage; + gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.m.input.pagesCount; + gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.m.input.currPage; gUnknown_203B2E0->unk8.header.width = 12; gUnknown_203B2E0->unk8.header.f3 = 0; - SUB_8009614_CALL(gUnknown_203B2E0->unk8.s0); + UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(gUnknown_203B2E0->unk8.m); } void DrawPelipperBoardJobMenu(void) @@ -125,22 +125,22 @@ void DrawPelipperBoardJobMenu(void) s32 i; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.winId); - sub_80073B8(gUnknown_203B2E0->unk8.s0.winId); - iVar4 = gUnknown_203B2E0->unk8.s0.input.currPage * 8; + CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.m.menuWinId); + sub_80073B8(gUnknown_203B2E0->unk8.m.menuWinId); + iVar4 = gUnknown_203B2E0->unk8.m.input.currPage * 8; x = iVar4; x += 10; - PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.winId, 0); + PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.m.menuWinId, 0); iVar4 += 4; x = iVar4 + (gUnknown_203B2E0->unk8.header.width * 8); - sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.currPage + 1, 2, 7, gUnknown_203B2E0->unk8.s0.winId); + sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.m.input.currPage + 1, 2, 7, gUnknown_203B2E0->unk8.m.menuWinId); - for (i = 0; i < gUnknown_203B2E0->unk8.s0.input.currPageEntries; i++) { - slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.currPage * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + i]); + for (i = 0; i < gUnknown_203B2E0->unk8.m.input.currPageEntries; i++) { + slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.m.input.currPage * gUnknown_203B2E0->unk8.m.input.entriesPerPage) + i]); mail = GetPelipperBoardSlotInfo(slotIndex); - local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId; - local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i); + local.unk0[0] = gUnknown_203B2E0->unk8.m.menuWinId; + local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.m.input, i); sub_803B35C(mail, &local); if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex))) @@ -149,7 +149,7 @@ void DrawPelipperBoardJobMenu(void) CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B2E0->unk8.s0.winId); + sub_80073E0(gUnknown_203B2E0->unk8.m.menuWinId); } static s32 CountPelipperBoardSlots(void) diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index 664b2f94f..f526b1653 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -30,22 +30,22 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2) return FALSE; gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); - gUnknown_203B2E8->unk8.s0.winId = a0; - gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.windows.id[a0]; - RestoreSavedWindows(&gUnknown_203B2E8->unk8.s0.windows); + gUnknown_203B2E8->unk8.m.menuWinId = a0; + gUnknown_203B2E8->unk8.m.menuWindow = &gUnknown_203B2E8->unk8.m.windows.id[a0]; + RestoreSavedWindows(&gUnknown_203B2E8->unk8.m.windows); - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCFC; - gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.header; + gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId] = sUnknown_80DFCFC; + gUnknown_203B2E8->unk8.m.menuWindow->header = &gUnknown_203B2E8->unk8.header; if (a1 != NULL) - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId].pos = *a1; + gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId].pos = *a1; - sub_8012D34(gUnknown_203B2E8->unk8.s0.unk38, a2); + sub_8012D34(gUnknown_203B2E8->unk8.m.menuWindow, a2); ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE); - CreateMenuOnWindow2(&gUnknown_203B2E8->unk8.s0.input, CountAcceptedJobs(), a2, a0); - gUnknown_203B2E8->unk8.s0.input.menuIndex = gUnknown_203B2EC; - MenuUpdatePagesData(&gUnknown_203B2E8->unk8.s0.input); + ShowWindows(&gUnknown_203B2E8->unk8.m.windows, TRUE, TRUE); + CreateMenuOnWindowTwoLinesEntry(&gUnknown_203B2E8->unk8.m.input, CountAcceptedJobs(), a2, a0); + gUnknown_203B2E8->unk8.m.input.menuIndex = gUnknown_203B2EC; + MenuUpdatePagesData(&gUnknown_203B2E8->unk8.m.input); sub_802C6DC(); DrawJobListMenu(); return TRUE; @@ -54,11 +54,11 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2) u32 sub_802C598(bool8 a0) { if (!a0) { - sub_8013660(&gUnknown_203B2E8->unk8.s0.input); + sub_8013660(&gUnknown_203B2E8->unk8.m.input); return 0; } - switch (GetKeyPress(&gUnknown_203B2E8->unk8.s0.input)) { + switch (GetKeyPress(&gUnknown_203B2E8->unk8.m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; @@ -70,7 +70,7 @@ u32 sub_802C598(bool8 a0) return 4; } - if (MenuCursorUpdate(&gUnknown_203B2E8->unk8.s0.input, 1)) { + if (MenuCursorUpdate(&gUnknown_203B2E8->unk8.m.input, 1)) { sub_802C6DC(); DrawJobListMenu(); return 1; @@ -80,29 +80,29 @@ u32 sub_802C598(bool8 a0) u8 GetPelipperBoardSlotIndex(void) { - return gUnknown_203B2E8->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E8->unk8.s0.input)]; + return gUnknown_203B2E8->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E8->unk8.m.input)]; } void sub_802C640(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, FALSE, FALSE); - gUnknown_203B2E8->unk8.s0.input.totalEntriesCount = CountAcceptedJobs(); - MenuUpdatePagesData(&gUnknown_203B2E8->unk8.s0.input); + ShowWindows(&gUnknown_203B2E8->unk8.m.windows, FALSE, FALSE); + gUnknown_203B2E8->unk8.m.input.totalEntriesCount = CountAcceptedJobs(); + MenuUpdatePagesData(&gUnknown_203B2E8->unk8.m.input); sub_802C6DC(); DrawJobListMenu(); if (cursorSprite) - AddMenuCursorSprite(&gUnknown_203B2E8->unk8.s0.input); + AddMenuCursorSprite(&gUnknown_203B2E8->unk8.m.input); } void sub_802C688(void) { if (gUnknown_203B2E8 != NULL) { - gUnknown_203B2EC = gUnknown_203B2E8->unk8.s0.input.menuIndex; - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCE4; + gUnknown_203B2EC = gUnknown_203B2E8->unk8.m.input.menuIndex; + gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId] = sUnknown_80DFCE4; ResetUnusedInputStruct(); - ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE); + ShowWindows(&gUnknown_203B2E8->unk8.m.windows, TRUE, TRUE); MemoryFree(gUnknown_203B2E8); gUnknown_203B2E8 = NULL; } @@ -110,12 +110,12 @@ void sub_802C688(void) static void sub_802C6DC(void) { - gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.s0.input.pagesCount; - gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.s0.input.currPage; + gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.m.input.pagesCount; + gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.m.input.currPage; gUnknown_203B2E8->unk8.header.width = 12; gUnknown_203B2E8->unk8.header.f3 = 0; - SUB_8009614_CALL(gUnknown_203B2E8->unk8.s0); + UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(gUnknown_203B2E8->unk8.m); } void DrawJobListMenu(void) @@ -126,26 +126,26 @@ void DrawJobListMenu(void) s32 x; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.winId); - sub_80073B8(gUnknown_203B2E8->unk8.s0.winId); - r4 = gUnknown_203B2E8->unk8.s0.input.currPage * 8; + CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.m.menuWinId); + sub_80073B8(gUnknown_203B2E8->unk8.m.menuWinId); + r4 = gUnknown_203B2E8->unk8.m.input.currPage * 8; x = r4; x += 10; - PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.winId, 0); + PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.m.menuWinId, 0); r4 += 4; x = r4 + (gUnknown_203B2E8->unk8.header.width * 8); - sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.currPage + 1, 2, 7, gUnknown_203B2E8->unk8.s0.winId); + sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.m.input.currPage + 1, 2, 7, gUnknown_203B2E8->unk8.m.menuWinId); - for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.currPageEntries; i++) { - mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.currPage * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + i]); - local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId; - local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i); + for (i = 0; i < gUnknown_203B2E8->unk8.m.input.currPageEntries; i++) { + mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.m.input.currPage * gUnknown_203B2E8->unk8.m.input.entriesPerPage) + i]); + local.unk0[0] = gUnknown_203B2E8->unk8.m.menuWinId; + local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.m.input, i); sub_803B35C(mail, &local); CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B2E8->unk8.s0.winId); + sub_80073E0(gUnknown_203B2E8->unk8.m.menuWinId); } static s32 CountAcceptedJobs(void) diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index f608aa422..d441e2eda 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -3,7 +3,7 @@ #include "constants/input.h" #include "structs/str_802C39C.h" #include "structs/str_wonder_mail.h" -#include "structs/struct_sub80095e4.h" +#include "text_3.h" #include "music_util.h" #include "code_803B050.h" #include "input.h" @@ -14,7 +14,7 @@ #include "text_2.h" #include "wonder_mail_802CDD4.h" -static EWRAM_INIT struct_Sub80095E4_2 *sUnknown_203B2F4 = {NULL}; +static EWRAM_INIT MenuHeaderWindow *sUnknown_203B2F4 = {NULL}; #include "data/wonder_mail_802CDD4.h" @@ -23,17 +23,17 @@ static void sub_802CF5C(void); bool8 sub_802CDD4(u32 a0) { if (sUnknown_203B2F4 == NULL) - sUnknown_203B2F4 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); + sUnknown_203B2F4 = MemoryAlloc(sizeof(MenuHeaderWindow), 8); - sUnknown_203B2F4->s0.winId = a0; - sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId]; - RestoreSavedWindows(&sUnknown_203B2F4->s0.windows); - sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFDA4; - sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->header; - sub_8012D34(sUnknown_203B2F4->s0.unk38, 4); + sUnknown_203B2F4->m.menuWinId = a0; + sUnknown_203B2F4->m.menuWindow = &sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId]; + RestoreSavedWindows(&sUnknown_203B2F4->m.windows); + sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId] = sUnknown_80DFDA4; + sUnknown_203B2F4->m.menuWindow->header = &sUnknown_203B2F4->header; + sub_8012D34(sUnknown_203B2F4->m.menuWindow, 4); ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE); - CreateMenuOnWindow2(&sUnknown_203B2F4->s0.input, 5, 4, a0); + ShowWindows(&sUnknown_203B2F4->m.windows, TRUE, TRUE); + CreateMenuOnWindowTwoLinesEntry(&sUnknown_203B2F4->m.input, 5, 4, a0); sub_802CF5C(); sub_802CFD0(); return TRUE; @@ -42,18 +42,18 @@ bool8 sub_802CDD4(u32 a0) u32 sub_802CE5C(bool8 a0) { if (!a0) { - sub_8013660(&sUnknown_203B2F4->s0.input); + sub_8013660(&sUnknown_203B2F4->m.input); return 0; } - switch (GetKeyPress(&sUnknown_203B2F4->s0.input)) { + switch (GetKeyPress(&sUnknown_203B2F4->m.input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); return 2; case INPUT_A_BUTTON: return 3; default: - if (MenuCursorUpdate(&sUnknown_203B2F4->s0.input, TRUE)) { + if (MenuCursorUpdate(&sUnknown_203B2F4->m.input, TRUE)) { sub_802CF5C(); sub_802CFD0(); return 1; @@ -64,27 +64,27 @@ u32 sub_802CE5C(bool8 a0) u8 sub_802CEBC(void) { - return GET_CURRENT_MENU_ENTRY(sUnknown_203B2F4->s0.input); + return GET_CURRENT_MENU_ENTRY(sUnknown_203B2F4->m.input); } void sub_802CED8(bool8 cursorSprite) { ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2F4->s0.windows, FALSE, FALSE); - MenuUpdatePagesData(&sUnknown_203B2F4->s0.input); + ShowWindows(&sUnknown_203B2F4->m.windows, FALSE, FALSE); + MenuUpdatePagesData(&sUnknown_203B2F4->m.input); sub_802CF5C(); sub_802CFD0(); if (cursorSprite) - AddMenuCursorSprite(&sUnknown_203B2F4->s0.input); + AddMenuCursorSprite(&sUnknown_203B2F4->m.input); } void sub_802CF14(void) { if (sUnknown_203B2F4 != NULL) { - sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFD8C; + sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId] = sUnknown_80DFD8C; ResetUnusedInputStruct(); - ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE); + ShowWindows(&sUnknown_203B2F4->m.windows, TRUE, TRUE); MemoryFree(sUnknown_203B2F4); sUnknown_203B2F4 = NULL; } @@ -92,12 +92,12 @@ void sub_802CF14(void) static void sub_802CF5C(void) { - sUnknown_203B2F4->header.count = sUnknown_203B2F4->s0.input.pagesCount; - sUnknown_203B2F4->header.currId = sUnknown_203B2F4->s0.input.currPage; + sUnknown_203B2F4->header.count = sUnknown_203B2F4->m.input.pagesCount; + sUnknown_203B2F4->header.currId = sUnknown_203B2F4->m.input.currPage; sUnknown_203B2F4->header.width = 12; sUnknown_203B2F4->header.f3 = 0; - SUB_8009614_CALL(sUnknown_203B2F4->s0); + UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(sUnknown_203B2F4->m); } void sub_802CFD0(void) @@ -107,21 +107,21 @@ void sub_802CFD0(void) s32 r5; s32 r4; - CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.winId); - sub_80073B8(sUnknown_203B2F4->s0.winId); + CallPrepareTextbox_8008C54(sUnknown_203B2F4->m.menuWinId); + sub_80073B8(sUnknown_203B2F4->m.menuWinId); - r5 = r4 = (sUnknown_203B2F4->s0.input.currPage * 8) + 10; - PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.winId, 0); + r5 = r4 = (sUnknown_203B2F4->m.input.currPage * 8) + 10; + PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->m.menuWinId, 0); r4 -= 6; r5 = r4 + (sUnknown_203B2F4->header.width * 8); - sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.currPage + 1, 2, 7, sUnknown_203B2F4->s0.winId); + sub_8012BC4(r5, 0, sUnknown_203B2F4->m.input.currPage + 1, 2, 7, sUnknown_203B2F4->m.menuWinId); - for (r5 = 0; r5 < sUnknown_203B2F4->s0.input.currPageEntries; r5++) { - iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.currPage * sUnknown_203B2F4->s0.input.entriesPerPage) + r5); + for (r5 = 0; r5 < sUnknown_203B2F4->m.input.currPageEntries; r5++) { + iVar1 = sub_803B344((sUnknown_203B2F4->m.input.currPage * sUnknown_203B2F4->m.input.entriesPerPage) + r5); - local.unk0[0] = sUnknown_203B2F4->s0.winId; - local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5); + local.unk0[0] = sUnknown_203B2F4->m.menuWinId; + local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->m.input, r5); sub_803B35C(&iVar1->mail, &local); local.unk43 = 1; @@ -129,5 +129,5 @@ void sub_802CFD0(void) CreateRescueTitle(&local); } - sub_80073E0(sUnknown_203B2F4->s0.winId); + sub_80073E0(sUnknown_203B2F4->m.menuWinId); }